1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package compute provides access to the Compute Engine API.
8//
9// For product documentation, see: https://developers.google.com/compute/docs/reference/latest/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/compute/v0.alpha"
16//   ...
17//   ctx := context.Background()
18//   computeService, err := compute.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package compute // import "google.golang.org/api/compute/v0.alpha"
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:alpha"
79const apiName = "compute"
80const apiVersion = "alpha"
81const basePath = "https://compute.googleapis.com/compute/alpha/projects/"
82
83// OAuth2 scopes used by this API.
84const (
85	// View and manage your data across Google Cloud Platform services
86	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
87
88	// View and manage your Google Compute Engine resources
89	ComputeScope = "https://www.googleapis.com/auth/compute"
90
91	// View your Google Compute Engine resources
92	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
93
94	// Manage your data and permissions in Google Cloud Storage
95	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
96
97	// View your data in Google Cloud Storage
98	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
99
100	// Manage your data in Google Cloud Storage
101	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
102)
103
104// NewService creates a new Service.
105func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
106	scopesOption := option.WithScopes(
107		"https://www.googleapis.com/auth/cloud-platform",
108		"https://www.googleapis.com/auth/compute",
109		"https://www.googleapis.com/auth/compute.readonly",
110		"https://www.googleapis.com/auth/devstorage.full_control",
111		"https://www.googleapis.com/auth/devstorage.read_only",
112		"https://www.googleapis.com/auth/devstorage.read_write",
113	)
114	// NOTE: prepend, so we don't override user-specified scopes.
115	opts = append([]option.ClientOption{scopesOption}, opts...)
116	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
117	client, endpoint, err := htransport.NewClient(ctx, opts...)
118	if err != nil {
119		return nil, err
120	}
121	s, err := New(client)
122	if err != nil {
123		return nil, err
124	}
125	if endpoint != "" {
126		s.BasePath = endpoint
127	}
128	return s, nil
129}
130
131// New creates a new Service. It uses the provided http.Client for requests.
132//
133// Deprecated: please use NewService instead.
134// To provide a custom HTTP client, use option.WithHTTPClient.
135// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
136func New(client *http.Client) (*Service, error) {
137	if client == nil {
138		return nil, errors.New("client is nil")
139	}
140	s := &Service{client: client, BasePath: basePath}
141	s.AcceleratorTypes = NewAcceleratorTypesService(s)
142	s.Addresses = NewAddressesService(s)
143	s.Autoscalers = NewAutoscalersService(s)
144	s.BackendBuckets = NewBackendBucketsService(s)
145	s.BackendServices = NewBackendServicesService(s)
146	s.DiskTypes = NewDiskTypesService(s)
147	s.Disks = NewDisksService(s)
148	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
149	s.Firewalls = NewFirewallsService(s)
150	s.ForwardingRules = NewForwardingRulesService(s)
151	s.GlobalAddresses = NewGlobalAddressesService(s)
152	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
153	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
154	s.GlobalOperations = NewGlobalOperationsService(s)
155	s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s)
156	s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s)
157	s.HealthChecks = NewHealthChecksService(s)
158	s.HttpHealthChecks = NewHttpHealthChecksService(s)
159	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
160	s.Images = NewImagesService(s)
161	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
162	s.InstanceGroups = NewInstanceGroupsService(s)
163	s.InstanceTemplates = NewInstanceTemplatesService(s)
164	s.Instances = NewInstancesService(s)
165	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
166	s.InterconnectLocations = NewInterconnectLocationsService(s)
167	s.Interconnects = NewInterconnectsService(s)
168	s.LicenseCodes = NewLicenseCodesService(s)
169	s.Licenses = NewLicensesService(s)
170	s.MachineImages = NewMachineImagesService(s)
171	s.MachineTypes = NewMachineTypesService(s)
172	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
173	s.Networks = NewNetworksService(s)
174	s.NodeGroups = NewNodeGroupsService(s)
175	s.NodeTemplates = NewNodeTemplatesService(s)
176	s.NodeTypes = NewNodeTypesService(s)
177	s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s)
178	s.PacketMirrorings = NewPacketMirroringsService(s)
179	s.Projects = NewProjectsService(s)
180	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
181	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
182	s.RegionAutoscalers = NewRegionAutoscalersService(s)
183	s.RegionBackendServices = NewRegionBackendServicesService(s)
184	s.RegionCommitments = NewRegionCommitmentsService(s)
185	s.RegionDiskTypes = NewRegionDiskTypesService(s)
186	s.RegionDisks = NewRegionDisksService(s)
187	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
188	s.RegionHealthChecks = NewRegionHealthChecksService(s)
189	s.RegionInPlaceSnapshots = NewRegionInPlaceSnapshotsService(s)
190	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
191	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
192	s.RegionInstances = NewRegionInstancesService(s)
193	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
194	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
195	s.RegionOperations = NewRegionOperationsService(s)
196	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
197	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
198	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
199	s.RegionUrlMaps = NewRegionUrlMapsService(s)
200	s.Regions = NewRegionsService(s)
201	s.Reservations = NewReservationsService(s)
202	s.ResourcePolicies = NewResourcePoliciesService(s)
203	s.Routers = NewRoutersService(s)
204	s.Routes = NewRoutesService(s)
205	s.SecurityPolicies = NewSecurityPoliciesService(s)
206	s.ServiceAttachments = NewServiceAttachmentsService(s)
207	s.Snapshots = NewSnapshotsService(s)
208	s.SslCertificates = NewSslCertificatesService(s)
209	s.SslPolicies = NewSslPoliciesService(s)
210	s.Subnetworks = NewSubnetworksService(s)
211	s.TargetGrpcProxies = NewTargetGrpcProxiesService(s)
212	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
213	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
214	s.TargetInstances = NewTargetInstancesService(s)
215	s.TargetPools = NewTargetPoolsService(s)
216	s.TargetSslProxies = NewTargetSslProxiesService(s)
217	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
218	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
219	s.UrlMaps = NewUrlMapsService(s)
220	s.VpnGateways = NewVpnGatewaysService(s)
221	s.VpnTunnels = NewVpnTunnelsService(s)
222	s.ZoneInPlaceSnapshots = NewZoneInPlaceSnapshotsService(s)
223	s.ZoneOperations = NewZoneOperationsService(s)
224	s.Zones = NewZonesService(s)
225	return s, nil
226}
227
228type Service struct {
229	client    *http.Client
230	BasePath  string // API endpoint base URL
231	UserAgent string // optional additional User-Agent fragment
232
233	AcceleratorTypes *AcceleratorTypesService
234
235	Addresses *AddressesService
236
237	Autoscalers *AutoscalersService
238
239	BackendBuckets *BackendBucketsService
240
241	BackendServices *BackendServicesService
242
243	DiskTypes *DiskTypesService
244
245	Disks *DisksService
246
247	ExternalVpnGateways *ExternalVpnGatewaysService
248
249	Firewalls *FirewallsService
250
251	ForwardingRules *ForwardingRulesService
252
253	GlobalAddresses *GlobalAddressesService
254
255	GlobalForwardingRules *GlobalForwardingRulesService
256
257	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
258
259	GlobalOperations *GlobalOperationsService
260
261	GlobalOrganizationOperations *GlobalOrganizationOperationsService
262
263	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService
264
265	HealthChecks *HealthChecksService
266
267	HttpHealthChecks *HttpHealthChecksService
268
269	HttpsHealthChecks *HttpsHealthChecksService
270
271	Images *ImagesService
272
273	InstanceGroupManagers *InstanceGroupManagersService
274
275	InstanceGroups *InstanceGroupsService
276
277	InstanceTemplates *InstanceTemplatesService
278
279	Instances *InstancesService
280
281	InterconnectAttachments *InterconnectAttachmentsService
282
283	InterconnectLocations *InterconnectLocationsService
284
285	Interconnects *InterconnectsService
286
287	LicenseCodes *LicenseCodesService
288
289	Licenses *LicensesService
290
291	MachineImages *MachineImagesService
292
293	MachineTypes *MachineTypesService
294
295	NetworkEndpointGroups *NetworkEndpointGroupsService
296
297	Networks *NetworksService
298
299	NodeGroups *NodeGroupsService
300
301	NodeTemplates *NodeTemplatesService
302
303	NodeTypes *NodeTypesService
304
305	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService
306
307	PacketMirrorings *PacketMirroringsService
308
309	Projects *ProjectsService
310
311	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService
312
313	PublicDelegatedPrefixes *PublicDelegatedPrefixesService
314
315	RegionAutoscalers *RegionAutoscalersService
316
317	RegionBackendServices *RegionBackendServicesService
318
319	RegionCommitments *RegionCommitmentsService
320
321	RegionDiskTypes *RegionDiskTypesService
322
323	RegionDisks *RegionDisksService
324
325	RegionHealthCheckServices *RegionHealthCheckServicesService
326
327	RegionHealthChecks *RegionHealthChecksService
328
329	RegionInPlaceSnapshots *RegionInPlaceSnapshotsService
330
331	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
332
333	RegionInstanceGroups *RegionInstanceGroupsService
334
335	RegionInstances *RegionInstancesService
336
337	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService
338
339	RegionNotificationEndpoints *RegionNotificationEndpointsService
340
341	RegionOperations *RegionOperationsService
342
343	RegionSslCertificates *RegionSslCertificatesService
344
345	RegionTargetHttpProxies *RegionTargetHttpProxiesService
346
347	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
348
349	RegionUrlMaps *RegionUrlMapsService
350
351	Regions *RegionsService
352
353	Reservations *ReservationsService
354
355	ResourcePolicies *ResourcePoliciesService
356
357	Routers *RoutersService
358
359	Routes *RoutesService
360
361	SecurityPolicies *SecurityPoliciesService
362
363	ServiceAttachments *ServiceAttachmentsService
364
365	Snapshots *SnapshotsService
366
367	SslCertificates *SslCertificatesService
368
369	SslPolicies *SslPoliciesService
370
371	Subnetworks *SubnetworksService
372
373	TargetGrpcProxies *TargetGrpcProxiesService
374
375	TargetHttpProxies *TargetHttpProxiesService
376
377	TargetHttpsProxies *TargetHttpsProxiesService
378
379	TargetInstances *TargetInstancesService
380
381	TargetPools *TargetPoolsService
382
383	TargetSslProxies *TargetSslProxiesService
384
385	TargetTcpProxies *TargetTcpProxiesService
386
387	TargetVpnGateways *TargetVpnGatewaysService
388
389	UrlMaps *UrlMapsService
390
391	VpnGateways *VpnGatewaysService
392
393	VpnTunnels *VpnTunnelsService
394
395	ZoneInPlaceSnapshots *ZoneInPlaceSnapshotsService
396
397	ZoneOperations *ZoneOperationsService
398
399	Zones *ZonesService
400}
401
402func (s *Service) userAgent() string {
403	if s.UserAgent == "" {
404		return googleapi.UserAgent
405	}
406	return googleapi.UserAgent + " " + s.UserAgent
407}
408
409func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
410	rs := &AcceleratorTypesService{s: s}
411	return rs
412}
413
414type AcceleratorTypesService struct {
415	s *Service
416}
417
418func NewAddressesService(s *Service) *AddressesService {
419	rs := &AddressesService{s: s}
420	return rs
421}
422
423type AddressesService struct {
424	s *Service
425}
426
427func NewAutoscalersService(s *Service) *AutoscalersService {
428	rs := &AutoscalersService{s: s}
429	return rs
430}
431
432type AutoscalersService struct {
433	s *Service
434}
435
436func NewBackendBucketsService(s *Service) *BackendBucketsService {
437	rs := &BackendBucketsService{s: s}
438	return rs
439}
440
441type BackendBucketsService struct {
442	s *Service
443}
444
445func NewBackendServicesService(s *Service) *BackendServicesService {
446	rs := &BackendServicesService{s: s}
447	return rs
448}
449
450type BackendServicesService struct {
451	s *Service
452}
453
454func NewDiskTypesService(s *Service) *DiskTypesService {
455	rs := &DiskTypesService{s: s}
456	return rs
457}
458
459type DiskTypesService struct {
460	s *Service
461}
462
463func NewDisksService(s *Service) *DisksService {
464	rs := &DisksService{s: s}
465	return rs
466}
467
468type DisksService struct {
469	s *Service
470}
471
472func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
473	rs := &ExternalVpnGatewaysService{s: s}
474	return rs
475}
476
477type ExternalVpnGatewaysService struct {
478	s *Service
479}
480
481func NewFirewallsService(s *Service) *FirewallsService {
482	rs := &FirewallsService{s: s}
483	return rs
484}
485
486type FirewallsService struct {
487	s *Service
488}
489
490func NewForwardingRulesService(s *Service) *ForwardingRulesService {
491	rs := &ForwardingRulesService{s: s}
492	return rs
493}
494
495type ForwardingRulesService struct {
496	s *Service
497}
498
499func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
500	rs := &GlobalAddressesService{s: s}
501	return rs
502}
503
504type GlobalAddressesService struct {
505	s *Service
506}
507
508func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
509	rs := &GlobalForwardingRulesService{s: s}
510	return rs
511}
512
513type GlobalForwardingRulesService struct {
514	s *Service
515}
516
517func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
518	rs := &GlobalNetworkEndpointGroupsService{s: s}
519	return rs
520}
521
522type GlobalNetworkEndpointGroupsService struct {
523	s *Service
524}
525
526func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
527	rs := &GlobalOperationsService{s: s}
528	return rs
529}
530
531type GlobalOperationsService struct {
532	s *Service
533}
534
535func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
536	rs := &GlobalOrganizationOperationsService{s: s}
537	return rs
538}
539
540type GlobalOrganizationOperationsService struct {
541	s *Service
542}
543
544func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
545	rs := &GlobalPublicDelegatedPrefixesService{s: s}
546	return rs
547}
548
549type GlobalPublicDelegatedPrefixesService struct {
550	s *Service
551}
552
553func NewHealthChecksService(s *Service) *HealthChecksService {
554	rs := &HealthChecksService{s: s}
555	return rs
556}
557
558type HealthChecksService struct {
559	s *Service
560}
561
562func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
563	rs := &HttpHealthChecksService{s: s}
564	return rs
565}
566
567type HttpHealthChecksService struct {
568	s *Service
569}
570
571func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
572	rs := &HttpsHealthChecksService{s: s}
573	return rs
574}
575
576type HttpsHealthChecksService struct {
577	s *Service
578}
579
580func NewImagesService(s *Service) *ImagesService {
581	rs := &ImagesService{s: s}
582	return rs
583}
584
585type ImagesService struct {
586	s *Service
587}
588
589func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
590	rs := &InstanceGroupManagersService{s: s}
591	return rs
592}
593
594type InstanceGroupManagersService struct {
595	s *Service
596}
597
598func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
599	rs := &InstanceGroupsService{s: s}
600	return rs
601}
602
603type InstanceGroupsService struct {
604	s *Service
605}
606
607func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
608	rs := &InstanceTemplatesService{s: s}
609	return rs
610}
611
612type InstanceTemplatesService struct {
613	s *Service
614}
615
616func NewInstancesService(s *Service) *InstancesService {
617	rs := &InstancesService{s: s}
618	return rs
619}
620
621type InstancesService struct {
622	s *Service
623}
624
625func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
626	rs := &InterconnectAttachmentsService{s: s}
627	return rs
628}
629
630type InterconnectAttachmentsService struct {
631	s *Service
632}
633
634func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
635	rs := &InterconnectLocationsService{s: s}
636	return rs
637}
638
639type InterconnectLocationsService struct {
640	s *Service
641}
642
643func NewInterconnectsService(s *Service) *InterconnectsService {
644	rs := &InterconnectsService{s: s}
645	return rs
646}
647
648type InterconnectsService struct {
649	s *Service
650}
651
652func NewLicenseCodesService(s *Service) *LicenseCodesService {
653	rs := &LicenseCodesService{s: s}
654	return rs
655}
656
657type LicenseCodesService struct {
658	s *Service
659}
660
661func NewLicensesService(s *Service) *LicensesService {
662	rs := &LicensesService{s: s}
663	return rs
664}
665
666type LicensesService struct {
667	s *Service
668}
669
670func NewMachineImagesService(s *Service) *MachineImagesService {
671	rs := &MachineImagesService{s: s}
672	return rs
673}
674
675type MachineImagesService struct {
676	s *Service
677}
678
679func NewMachineTypesService(s *Service) *MachineTypesService {
680	rs := &MachineTypesService{s: s}
681	return rs
682}
683
684type MachineTypesService struct {
685	s *Service
686}
687
688func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
689	rs := &NetworkEndpointGroupsService{s: s}
690	return rs
691}
692
693type NetworkEndpointGroupsService struct {
694	s *Service
695}
696
697func NewNetworksService(s *Service) *NetworksService {
698	rs := &NetworksService{s: s}
699	return rs
700}
701
702type NetworksService struct {
703	s *Service
704}
705
706func NewNodeGroupsService(s *Service) *NodeGroupsService {
707	rs := &NodeGroupsService{s: s}
708	return rs
709}
710
711type NodeGroupsService struct {
712	s *Service
713}
714
715func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
716	rs := &NodeTemplatesService{s: s}
717	return rs
718}
719
720type NodeTemplatesService struct {
721	s *Service
722}
723
724func NewNodeTypesService(s *Service) *NodeTypesService {
725	rs := &NodeTypesService{s: s}
726	return rs
727}
728
729type NodeTypesService struct {
730	s *Service
731}
732
733func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService {
734	rs := &OrganizationSecurityPoliciesService{s: s}
735	return rs
736}
737
738type OrganizationSecurityPoliciesService struct {
739	s *Service
740}
741
742func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
743	rs := &PacketMirroringsService{s: s}
744	return rs
745}
746
747type PacketMirroringsService struct {
748	s *Service
749}
750
751func NewProjectsService(s *Service) *ProjectsService {
752	rs := &ProjectsService{s: s}
753	return rs
754}
755
756type ProjectsService struct {
757	s *Service
758}
759
760func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
761	rs := &PublicAdvertisedPrefixesService{s: s}
762	return rs
763}
764
765type PublicAdvertisedPrefixesService struct {
766	s *Service
767}
768
769func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
770	rs := &PublicDelegatedPrefixesService{s: s}
771	return rs
772}
773
774type PublicDelegatedPrefixesService struct {
775	s *Service
776}
777
778func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
779	rs := &RegionAutoscalersService{s: s}
780	return rs
781}
782
783type RegionAutoscalersService struct {
784	s *Service
785}
786
787func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
788	rs := &RegionBackendServicesService{s: s}
789	return rs
790}
791
792type RegionBackendServicesService struct {
793	s *Service
794}
795
796func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
797	rs := &RegionCommitmentsService{s: s}
798	return rs
799}
800
801type RegionCommitmentsService struct {
802	s *Service
803}
804
805func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
806	rs := &RegionDiskTypesService{s: s}
807	return rs
808}
809
810type RegionDiskTypesService struct {
811	s *Service
812}
813
814func NewRegionDisksService(s *Service) *RegionDisksService {
815	rs := &RegionDisksService{s: s}
816	return rs
817}
818
819type RegionDisksService struct {
820	s *Service
821}
822
823func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
824	rs := &RegionHealthCheckServicesService{s: s}
825	return rs
826}
827
828type RegionHealthCheckServicesService struct {
829	s *Service
830}
831
832func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
833	rs := &RegionHealthChecksService{s: s}
834	return rs
835}
836
837type RegionHealthChecksService struct {
838	s *Service
839}
840
841func NewRegionInPlaceSnapshotsService(s *Service) *RegionInPlaceSnapshotsService {
842	rs := &RegionInPlaceSnapshotsService{s: s}
843	return rs
844}
845
846type RegionInPlaceSnapshotsService struct {
847	s *Service
848}
849
850func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
851	rs := &RegionInstanceGroupManagersService{s: s}
852	return rs
853}
854
855type RegionInstanceGroupManagersService struct {
856	s *Service
857}
858
859func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
860	rs := &RegionInstanceGroupsService{s: s}
861	return rs
862}
863
864type RegionInstanceGroupsService struct {
865	s *Service
866}
867
868func NewRegionInstancesService(s *Service) *RegionInstancesService {
869	rs := &RegionInstancesService{s: s}
870	return rs
871}
872
873type RegionInstancesService struct {
874	s *Service
875}
876
877func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
878	rs := &RegionNetworkEndpointGroupsService{s: s}
879	return rs
880}
881
882type RegionNetworkEndpointGroupsService struct {
883	s *Service
884}
885
886func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
887	rs := &RegionNotificationEndpointsService{s: s}
888	return rs
889}
890
891type RegionNotificationEndpointsService struct {
892	s *Service
893}
894
895func NewRegionOperationsService(s *Service) *RegionOperationsService {
896	rs := &RegionOperationsService{s: s}
897	return rs
898}
899
900type RegionOperationsService struct {
901	s *Service
902}
903
904func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
905	rs := &RegionSslCertificatesService{s: s}
906	return rs
907}
908
909type RegionSslCertificatesService struct {
910	s *Service
911}
912
913func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
914	rs := &RegionTargetHttpProxiesService{s: s}
915	return rs
916}
917
918type RegionTargetHttpProxiesService struct {
919	s *Service
920}
921
922func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
923	rs := &RegionTargetHttpsProxiesService{s: s}
924	return rs
925}
926
927type RegionTargetHttpsProxiesService struct {
928	s *Service
929}
930
931func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
932	rs := &RegionUrlMapsService{s: s}
933	return rs
934}
935
936type RegionUrlMapsService struct {
937	s *Service
938}
939
940func NewRegionsService(s *Service) *RegionsService {
941	rs := &RegionsService{s: s}
942	return rs
943}
944
945type RegionsService struct {
946	s *Service
947}
948
949func NewReservationsService(s *Service) *ReservationsService {
950	rs := &ReservationsService{s: s}
951	return rs
952}
953
954type ReservationsService struct {
955	s *Service
956}
957
958func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
959	rs := &ResourcePoliciesService{s: s}
960	return rs
961}
962
963type ResourcePoliciesService struct {
964	s *Service
965}
966
967func NewRoutersService(s *Service) *RoutersService {
968	rs := &RoutersService{s: s}
969	return rs
970}
971
972type RoutersService struct {
973	s *Service
974}
975
976func NewRoutesService(s *Service) *RoutesService {
977	rs := &RoutesService{s: s}
978	return rs
979}
980
981type RoutesService struct {
982	s *Service
983}
984
985func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
986	rs := &SecurityPoliciesService{s: s}
987	return rs
988}
989
990type SecurityPoliciesService struct {
991	s *Service
992}
993
994func NewServiceAttachmentsService(s *Service) *ServiceAttachmentsService {
995	rs := &ServiceAttachmentsService{s: s}
996	return rs
997}
998
999type ServiceAttachmentsService struct {
1000	s *Service
1001}
1002
1003func NewSnapshotsService(s *Service) *SnapshotsService {
1004	rs := &SnapshotsService{s: s}
1005	return rs
1006}
1007
1008type SnapshotsService struct {
1009	s *Service
1010}
1011
1012func NewSslCertificatesService(s *Service) *SslCertificatesService {
1013	rs := &SslCertificatesService{s: s}
1014	return rs
1015}
1016
1017type SslCertificatesService struct {
1018	s *Service
1019}
1020
1021func NewSslPoliciesService(s *Service) *SslPoliciesService {
1022	rs := &SslPoliciesService{s: s}
1023	return rs
1024}
1025
1026type SslPoliciesService struct {
1027	s *Service
1028}
1029
1030func NewSubnetworksService(s *Service) *SubnetworksService {
1031	rs := &SubnetworksService{s: s}
1032	return rs
1033}
1034
1035type SubnetworksService struct {
1036	s *Service
1037}
1038
1039func NewTargetGrpcProxiesService(s *Service) *TargetGrpcProxiesService {
1040	rs := &TargetGrpcProxiesService{s: s}
1041	return rs
1042}
1043
1044type TargetGrpcProxiesService struct {
1045	s *Service
1046}
1047
1048func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
1049	rs := &TargetHttpProxiesService{s: s}
1050	return rs
1051}
1052
1053type TargetHttpProxiesService struct {
1054	s *Service
1055}
1056
1057func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
1058	rs := &TargetHttpsProxiesService{s: s}
1059	return rs
1060}
1061
1062type TargetHttpsProxiesService struct {
1063	s *Service
1064}
1065
1066func NewTargetInstancesService(s *Service) *TargetInstancesService {
1067	rs := &TargetInstancesService{s: s}
1068	return rs
1069}
1070
1071type TargetInstancesService struct {
1072	s *Service
1073}
1074
1075func NewTargetPoolsService(s *Service) *TargetPoolsService {
1076	rs := &TargetPoolsService{s: s}
1077	return rs
1078}
1079
1080type TargetPoolsService struct {
1081	s *Service
1082}
1083
1084func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
1085	rs := &TargetSslProxiesService{s: s}
1086	return rs
1087}
1088
1089type TargetSslProxiesService struct {
1090	s *Service
1091}
1092
1093func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1094	rs := &TargetTcpProxiesService{s: s}
1095	return rs
1096}
1097
1098type TargetTcpProxiesService struct {
1099	s *Service
1100}
1101
1102func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1103	rs := &TargetVpnGatewaysService{s: s}
1104	return rs
1105}
1106
1107type TargetVpnGatewaysService struct {
1108	s *Service
1109}
1110
1111func NewUrlMapsService(s *Service) *UrlMapsService {
1112	rs := &UrlMapsService{s: s}
1113	return rs
1114}
1115
1116type UrlMapsService struct {
1117	s *Service
1118}
1119
1120func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1121	rs := &VpnGatewaysService{s: s}
1122	return rs
1123}
1124
1125type VpnGatewaysService struct {
1126	s *Service
1127}
1128
1129func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1130	rs := &VpnTunnelsService{s: s}
1131	return rs
1132}
1133
1134type VpnTunnelsService struct {
1135	s *Service
1136}
1137
1138func NewZoneInPlaceSnapshotsService(s *Service) *ZoneInPlaceSnapshotsService {
1139	rs := &ZoneInPlaceSnapshotsService{s: s}
1140	return rs
1141}
1142
1143type ZoneInPlaceSnapshotsService struct {
1144	s *Service
1145}
1146
1147func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1148	rs := &ZoneOperationsService{s: s}
1149	return rs
1150}
1151
1152type ZoneOperationsService struct {
1153	s *Service
1154}
1155
1156func NewZonesService(s *Service) *ZonesService {
1157	rs := &ZonesService{s: s}
1158	return rs
1159}
1160
1161type ZonesService struct {
1162	s *Service
1163}
1164
1165// AcceleratorConfig: A specification of the type and number of
1166// accelerator cards attached to the instance.
1167type AcceleratorConfig struct {
1168	// AcceleratorCount: The number of the guest accelerator cards exposed
1169	// to this instance.
1170	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1171
1172	// AcceleratorType: Full or partial URL of the accelerator type resource
1173	// to attach to this instance. For example:
1174	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1175	// p100 If you are creating an instance template, specify only the
1176	// accelerator name. See GPUs on Compute Engine for a full list of
1177	// accelerator types.
1178	AcceleratorType string `json:"acceleratorType,omitempty"`
1179
1180	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1181	// unconditionally include in API requests. By default, fields with
1182	// empty values are omitted from API requests. However, any non-pointer,
1183	// non-interface field appearing in ForceSendFields will be sent to the
1184	// server regardless of whether the field is empty or not. This may be
1185	// used to include empty fields in Patch requests.
1186	ForceSendFields []string `json:"-"`
1187
1188	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1189	// include in API requests with the JSON null value. By default, fields
1190	// with empty values are omitted from API requests. However, any field
1191	// with an empty value appearing in NullFields will be sent to the
1192	// server as null. It is an error if a field in this list has a
1193	// non-empty value. This may be used to include null fields in Patch
1194	// requests.
1195	NullFields []string `json:"-"`
1196}
1197
1198func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1199	type NoMethod AcceleratorConfig
1200	raw := NoMethod(*s)
1201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1202}
1203
1204// AcceleratorType: Represents an Accelerator Type resource.
1205//
1206// Google Cloud Platform provides graphics processing units
1207// (accelerators) that you can add to VM instances to improve or
1208// accelerate performance when working with intensive workloads. For
1209// more information, read GPUs on Compute Engine. (== resource_for
1210// {$api_version}.acceleratorTypes ==)
1211type AcceleratorType struct {
1212	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1213	// format.
1214	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1215
1216	// Deprecated: [Output Only] The deprecation status associated with this
1217	// accelerator type.
1218	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1219
1220	// Description: [Output Only] An optional textual description of the
1221	// resource.
1222	Description string `json:"description,omitempty"`
1223
1224	// Id: [Output Only] The unique identifier for the resource. This
1225	// identifier is defined by the server.
1226	Id uint64 `json:"id,omitempty,string"`
1227
1228	// Kind: [Output Only] The type of the resource. Always
1229	// compute#acceleratorType for accelerator types.
1230	Kind string `json:"kind,omitempty"`
1231
1232	// MaximumCardsPerInstance: [Output Only] Maximum accelerator cards
1233	// allowed per instance.
1234	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1235
1236	// Name: [Output Only] Name of the resource.
1237	Name string `json:"name,omitempty"`
1238
1239	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
1240	// resource.
1241	SelfLink string `json:"selfLink,omitempty"`
1242
1243	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
1244	// resource id.
1245	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
1246
1247	// Zone: [Output Only] The name of the zone where the accelerator type
1248	// resides, such as us-central1-a. You must specify this field as part
1249	// of the HTTP request URL. It is not settable as a field in the request
1250	// body.
1251	Zone string `json:"zone,omitempty"`
1252
1253	// ServerResponse contains the HTTP response code and headers from the
1254	// server.
1255	googleapi.ServerResponse `json:"-"`
1256
1257	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1258	// to unconditionally include in API requests. By default, fields with
1259	// empty values are omitted from API requests. However, any non-pointer,
1260	// non-interface field appearing in ForceSendFields will be sent to the
1261	// server regardless of whether the field is empty or not. This may be
1262	// used to include empty fields in Patch requests.
1263	ForceSendFields []string `json:"-"`
1264
1265	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1266	// include in API requests with the JSON null value. By default, fields
1267	// with empty values are omitted from API requests. However, any field
1268	// with an empty value appearing in NullFields will be sent to the
1269	// server as null. It is an error if a field in this list has a
1270	// non-empty value. This may be used to include null fields in Patch
1271	// requests.
1272	NullFields []string `json:"-"`
1273}
1274
1275func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1276	type NoMethod AcceleratorType
1277	raw := NoMethod(*s)
1278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1279}
1280
1281type AcceleratorTypeAggregatedList struct {
1282	// Id: [Output Only] Unique identifier for the resource; defined by the
1283	// server.
1284	Id string `json:"id,omitempty"`
1285
1286	// Items: A list of AcceleratorTypesScopedList resources.
1287	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1288
1289	// Kind: [Output Only] Type of resource. Always
1290	// compute#acceleratorTypeAggregatedList for aggregated lists of
1291	// accelerator types.
1292	Kind string `json:"kind,omitempty"`
1293
1294	// NextPageToken: [Output Only] This token allows you to get the next
1295	// page of results for list requests. If the number of results is larger
1296	// than maxResults, use the nextPageToken as a value for the query
1297	// parameter pageToken in the next list request. Subsequent list
1298	// requests will have their own nextPageToken to continue paging through
1299	// the results.
1300	NextPageToken string `json:"nextPageToken,omitempty"`
1301
1302	// SelfLink: [Output Only] Server-defined URL for this resource.
1303	SelfLink string `json:"selfLink,omitempty"`
1304
1305	// Unreachables: [Output Only] Unreachable resources.
1306	Unreachables []string `json:"unreachables,omitempty"`
1307
1308	// Warning: [Output Only] Informational warning message.
1309	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1310
1311	// ServerResponse contains the HTTP response code and headers from the
1312	// server.
1313	googleapi.ServerResponse `json:"-"`
1314
1315	// ForceSendFields is a list of field names (e.g. "Id") to
1316	// unconditionally include in API requests. By default, fields with
1317	// empty values are omitted from API requests. However, any non-pointer,
1318	// non-interface field appearing in ForceSendFields will be sent to the
1319	// server regardless of whether the field is empty or not. This may be
1320	// used to include empty fields in Patch requests.
1321	ForceSendFields []string `json:"-"`
1322
1323	// NullFields is a list of field names (e.g. "Id") to include in API
1324	// requests with the JSON null value. By default, fields with empty
1325	// values are omitted from API requests. However, any field with an
1326	// empty value appearing in NullFields will be sent to the server as
1327	// null. It is an error if a field in this list has a non-empty value.
1328	// This may be used to include null fields in Patch requests.
1329	NullFields []string `json:"-"`
1330}
1331
1332func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1333	type NoMethod AcceleratorTypeAggregatedList
1334	raw := NoMethod(*s)
1335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1336}
1337
1338// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1339// warning message.
1340type AcceleratorTypeAggregatedListWarning struct {
1341	// Code: [Output Only] A warning code, if applicable. For example,
1342	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1343	// the response.
1344	//
1345	// Possible values:
1346	//   "CLEANUP_FAILED"
1347	//   "DEPRECATED_RESOURCE_USED"
1348	//   "DEPRECATED_TYPE_USED"
1349	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1350	//   "EXPERIMENTAL_TYPE_USED"
1351	//   "EXTERNAL_API_WARNING"
1352	//   "FIELD_VALUE_OVERRIDEN"
1353	//   "INJECTED_KERNELS_DEPRECATED"
1354	//   "MISSING_TYPE_DEPENDENCY"
1355	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1356	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1357	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1358	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1359	//   "NEXT_HOP_NOT_RUNNING"
1360	//   "NOT_CRITICAL_ERROR"
1361	//   "NO_RESULTS_ON_PAGE"
1362	//   "PARTIAL_SUCCESS"
1363	//   "REQUIRED_TOS_AGREEMENT"
1364	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1365	//   "RESOURCE_NOT_DELETED"
1366	//   "SCHEMA_VALIDATION_IGNORED"
1367	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1368	//   "UNDECLARED_PROPERTIES"
1369	//   "UNREACHABLE"
1370	Code string `json:"code,omitempty"`
1371
1372	// Data: [Output Only] Metadata about this warning in key: value format.
1373	// For example:
1374	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1375	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1376
1377	// Message: [Output Only] A human-readable description of the warning
1378	// code.
1379	Message string `json:"message,omitempty"`
1380
1381	// ForceSendFields is a list of field names (e.g. "Code") to
1382	// unconditionally include in API requests. By default, fields with
1383	// empty values are omitted from API requests. However, any non-pointer,
1384	// non-interface field appearing in ForceSendFields will be sent to the
1385	// server regardless of whether the field is empty or not. This may be
1386	// used to include empty fields in Patch requests.
1387	ForceSendFields []string `json:"-"`
1388
1389	// NullFields is a list of field names (e.g. "Code") to include in API
1390	// requests with the JSON null value. By default, fields with empty
1391	// values are omitted from API requests. However, any field with an
1392	// empty value appearing in NullFields will be sent to the server as
1393	// null. It is an error if a field in this list has a non-empty value.
1394	// This may be used to include null fields in Patch requests.
1395	NullFields []string `json:"-"`
1396}
1397
1398func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1399	type NoMethod AcceleratorTypeAggregatedListWarning
1400	raw := NoMethod(*s)
1401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1402}
1403
1404type AcceleratorTypeAggregatedListWarningData struct {
1405	// Key: [Output Only] A key that provides more detail on the warning
1406	// being returned. For example, for warnings where there are no results
1407	// in a list request for a particular zone, this key might be scope and
1408	// the key value might be the zone name. Other examples might be a key
1409	// indicating a deprecated resource and a suggested replacement, or a
1410	// warning about invalid network settings (for example, if an instance
1411	// attempts to perform IP forwarding but is not enabled for IP
1412	// forwarding).
1413	Key string `json:"key,omitempty"`
1414
1415	// Value: [Output Only] A warning data value corresponding to the key.
1416	Value string `json:"value,omitempty"`
1417
1418	// ForceSendFields is a list of field names (e.g. "Key") to
1419	// unconditionally include in API requests. By default, fields with
1420	// empty values are omitted from API requests. However, any non-pointer,
1421	// non-interface field appearing in ForceSendFields will be sent to the
1422	// server regardless of whether the field is empty or not. This may be
1423	// used to include empty fields in Patch requests.
1424	ForceSendFields []string `json:"-"`
1425
1426	// NullFields is a list of field names (e.g. "Key") to include in API
1427	// requests with the JSON null value. By default, fields with empty
1428	// values are omitted from API requests. However, any field with an
1429	// empty value appearing in NullFields will be sent to the server as
1430	// null. It is an error if a field in this list has a non-empty value.
1431	// This may be used to include null fields in Patch requests.
1432	NullFields []string `json:"-"`
1433}
1434
1435func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1436	type NoMethod AcceleratorTypeAggregatedListWarningData
1437	raw := NoMethod(*s)
1438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1439}
1440
1441// AcceleratorTypeList: Contains a list of accelerator types.
1442type AcceleratorTypeList struct {
1443	// Id: [Output Only] Unique identifier for the resource; defined by the
1444	// server.
1445	Id string `json:"id,omitempty"`
1446
1447	// Items: A list of AcceleratorType resources.
1448	Items []*AcceleratorType `json:"items,omitempty"`
1449
1450	// Kind: [Output Only] Type of resource. Always
1451	// compute#acceleratorTypeList for lists of accelerator types.
1452	Kind string `json:"kind,omitempty"`
1453
1454	// NextPageToken: [Output Only] This token allows you to get the next
1455	// page of results for list requests. If the number of results is larger
1456	// than maxResults, use the nextPageToken as a value for the query
1457	// parameter pageToken in the next list request. Subsequent list
1458	// requests will have their own nextPageToken to continue paging through
1459	// the results.
1460	NextPageToken string `json:"nextPageToken,omitempty"`
1461
1462	// SelfLink: [Output Only] Server-defined URL for this resource.
1463	SelfLink string `json:"selfLink,omitempty"`
1464
1465	// Warning: [Output Only] Informational warning message.
1466	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1467
1468	// ServerResponse contains the HTTP response code and headers from the
1469	// server.
1470	googleapi.ServerResponse `json:"-"`
1471
1472	// ForceSendFields is a list of field names (e.g. "Id") to
1473	// unconditionally include in API requests. By default, fields with
1474	// empty values are omitted from API requests. However, any non-pointer,
1475	// non-interface field appearing in ForceSendFields will be sent to the
1476	// server regardless of whether the field is empty or not. This may be
1477	// used to include empty fields in Patch requests.
1478	ForceSendFields []string `json:"-"`
1479
1480	// NullFields is a list of field names (e.g. "Id") to include in API
1481	// requests with the JSON null value. By default, fields with empty
1482	// values are omitted from API requests. However, any field with an
1483	// empty value appearing in NullFields will be sent to the server as
1484	// null. It is an error if a field in this list has a non-empty value.
1485	// This may be used to include null fields in Patch requests.
1486	NullFields []string `json:"-"`
1487}
1488
1489func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1490	type NoMethod AcceleratorTypeList
1491	raw := NoMethod(*s)
1492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1493}
1494
1495// AcceleratorTypeListWarning: [Output Only] Informational warning
1496// message.
1497type AcceleratorTypeListWarning struct {
1498	// Code: [Output Only] A warning code, if applicable. For example,
1499	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1500	// the response.
1501	//
1502	// Possible values:
1503	//   "CLEANUP_FAILED"
1504	//   "DEPRECATED_RESOURCE_USED"
1505	//   "DEPRECATED_TYPE_USED"
1506	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1507	//   "EXPERIMENTAL_TYPE_USED"
1508	//   "EXTERNAL_API_WARNING"
1509	//   "FIELD_VALUE_OVERRIDEN"
1510	//   "INJECTED_KERNELS_DEPRECATED"
1511	//   "MISSING_TYPE_DEPENDENCY"
1512	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1513	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1514	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1515	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1516	//   "NEXT_HOP_NOT_RUNNING"
1517	//   "NOT_CRITICAL_ERROR"
1518	//   "NO_RESULTS_ON_PAGE"
1519	//   "PARTIAL_SUCCESS"
1520	//   "REQUIRED_TOS_AGREEMENT"
1521	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1522	//   "RESOURCE_NOT_DELETED"
1523	//   "SCHEMA_VALIDATION_IGNORED"
1524	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1525	//   "UNDECLARED_PROPERTIES"
1526	//   "UNREACHABLE"
1527	Code string `json:"code,omitempty"`
1528
1529	// Data: [Output Only] Metadata about this warning in key: value format.
1530	// For example:
1531	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1532	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1533
1534	// Message: [Output Only] A human-readable description of the warning
1535	// code.
1536	Message string `json:"message,omitempty"`
1537
1538	// ForceSendFields is a list of field names (e.g. "Code") to
1539	// unconditionally include in API requests. By default, fields with
1540	// empty values are omitted from API requests. However, any non-pointer,
1541	// non-interface field appearing in ForceSendFields will be sent to the
1542	// server regardless of whether the field is empty or not. This may be
1543	// used to include empty fields in Patch requests.
1544	ForceSendFields []string `json:"-"`
1545
1546	// NullFields is a list of field names (e.g. "Code") to include in API
1547	// requests with the JSON null value. By default, fields with empty
1548	// values are omitted from API requests. However, any field with an
1549	// empty value appearing in NullFields will be sent to the server as
1550	// null. It is an error if a field in this list has a non-empty value.
1551	// This may be used to include null fields in Patch requests.
1552	NullFields []string `json:"-"`
1553}
1554
1555func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1556	type NoMethod AcceleratorTypeListWarning
1557	raw := NoMethod(*s)
1558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1559}
1560
1561type AcceleratorTypeListWarningData struct {
1562	// Key: [Output Only] A key that provides more detail on the warning
1563	// being returned. For example, for warnings where there are no results
1564	// in a list request for a particular zone, this key might be scope and
1565	// the key value might be the zone name. Other examples might be a key
1566	// indicating a deprecated resource and a suggested replacement, or a
1567	// warning about invalid network settings (for example, if an instance
1568	// attempts to perform IP forwarding but is not enabled for IP
1569	// forwarding).
1570	Key string `json:"key,omitempty"`
1571
1572	// Value: [Output Only] A warning data value corresponding to the key.
1573	Value string `json:"value,omitempty"`
1574
1575	// ForceSendFields is a list of field names (e.g. "Key") to
1576	// unconditionally include in API requests. By default, fields with
1577	// empty values are omitted from API requests. However, any non-pointer,
1578	// non-interface field appearing in ForceSendFields will be sent to the
1579	// server regardless of whether the field is empty or not. This may be
1580	// used to include empty fields in Patch requests.
1581	ForceSendFields []string `json:"-"`
1582
1583	// NullFields is a list of field names (e.g. "Key") to include in API
1584	// requests with the JSON null value. By default, fields with empty
1585	// values are omitted from API requests. However, any field with an
1586	// empty value appearing in NullFields will be sent to the server as
1587	// null. It is an error if a field in this list has a non-empty value.
1588	// This may be used to include null fields in Patch requests.
1589	NullFields []string `json:"-"`
1590}
1591
1592func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1593	type NoMethod AcceleratorTypeListWarningData
1594	raw := NoMethod(*s)
1595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1596}
1597
1598type AcceleratorTypesScopedList struct {
1599	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1600	// in this scope.
1601	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1602
1603	// Warning: [Output Only] An informational warning that appears when the
1604	// accelerator types list is empty.
1605	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1606
1607	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1608	// unconditionally include in API requests. By default, fields with
1609	// empty values are omitted from API requests. However, any non-pointer,
1610	// non-interface field appearing in ForceSendFields will be sent to the
1611	// server regardless of whether the field is empty or not. This may be
1612	// used to include empty fields in Patch requests.
1613	ForceSendFields []string `json:"-"`
1614
1615	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1616	// include in API requests with the JSON null value. By default, fields
1617	// with empty values are omitted from API requests. However, any field
1618	// with an empty value appearing in NullFields will be sent to the
1619	// server as null. It is an error if a field in this list has a
1620	// non-empty value. This may be used to include null fields in Patch
1621	// requests.
1622	NullFields []string `json:"-"`
1623}
1624
1625func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1626	type NoMethod AcceleratorTypesScopedList
1627	raw := NoMethod(*s)
1628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1629}
1630
1631// AcceleratorTypesScopedListWarning: [Output Only] An informational
1632// warning that appears when the accelerator types list is empty.
1633type AcceleratorTypesScopedListWarning struct {
1634	// Code: [Output Only] A warning code, if applicable. For example,
1635	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1636	// the response.
1637	//
1638	// Possible values:
1639	//   "CLEANUP_FAILED"
1640	//   "DEPRECATED_RESOURCE_USED"
1641	//   "DEPRECATED_TYPE_USED"
1642	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1643	//   "EXPERIMENTAL_TYPE_USED"
1644	//   "EXTERNAL_API_WARNING"
1645	//   "FIELD_VALUE_OVERRIDEN"
1646	//   "INJECTED_KERNELS_DEPRECATED"
1647	//   "MISSING_TYPE_DEPENDENCY"
1648	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1649	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1650	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1651	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1652	//   "NEXT_HOP_NOT_RUNNING"
1653	//   "NOT_CRITICAL_ERROR"
1654	//   "NO_RESULTS_ON_PAGE"
1655	//   "PARTIAL_SUCCESS"
1656	//   "REQUIRED_TOS_AGREEMENT"
1657	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1658	//   "RESOURCE_NOT_DELETED"
1659	//   "SCHEMA_VALIDATION_IGNORED"
1660	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1661	//   "UNDECLARED_PROPERTIES"
1662	//   "UNREACHABLE"
1663	Code string `json:"code,omitempty"`
1664
1665	// Data: [Output Only] Metadata about this warning in key: value format.
1666	// For example:
1667	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1668	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1669
1670	// Message: [Output Only] A human-readable description of the warning
1671	// code.
1672	Message string `json:"message,omitempty"`
1673
1674	// ForceSendFields is a list of field names (e.g. "Code") to
1675	// unconditionally include in API requests. By default, fields with
1676	// empty values are omitted from API requests. However, any non-pointer,
1677	// non-interface field appearing in ForceSendFields will be sent to the
1678	// server regardless of whether the field is empty or not. This may be
1679	// used to include empty fields in Patch requests.
1680	ForceSendFields []string `json:"-"`
1681
1682	// NullFields is a list of field names (e.g. "Code") to include in API
1683	// requests with the JSON null value. By default, fields with empty
1684	// values are omitted from API requests. However, any field with an
1685	// empty value appearing in NullFields will be sent to the server as
1686	// null. It is an error if a field in this list has a non-empty value.
1687	// This may be used to include null fields in Patch requests.
1688	NullFields []string `json:"-"`
1689}
1690
1691func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1692	type NoMethod AcceleratorTypesScopedListWarning
1693	raw := NoMethod(*s)
1694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1695}
1696
1697type AcceleratorTypesScopedListWarningData struct {
1698	// Key: [Output Only] A key that provides more detail on the warning
1699	// being returned. For example, for warnings where there are no results
1700	// in a list request for a particular zone, this key might be scope and
1701	// the key value might be the zone name. Other examples might be a key
1702	// indicating a deprecated resource and a suggested replacement, or a
1703	// warning about invalid network settings (for example, if an instance
1704	// attempts to perform IP forwarding but is not enabled for IP
1705	// forwarding).
1706	Key string `json:"key,omitempty"`
1707
1708	// Value: [Output Only] A warning data value corresponding to the key.
1709	Value string `json:"value,omitempty"`
1710
1711	// ForceSendFields is a list of field names (e.g. "Key") to
1712	// unconditionally include in API requests. By default, fields with
1713	// empty values are omitted from API requests. However, any non-pointer,
1714	// non-interface field appearing in ForceSendFields will be sent to the
1715	// server regardless of whether the field is empty or not. This may be
1716	// used to include empty fields in Patch requests.
1717	ForceSendFields []string `json:"-"`
1718
1719	// NullFields is a list of field names (e.g. "Key") to include in API
1720	// requests with the JSON null value. By default, fields with empty
1721	// values are omitted from API requests. However, any field with an
1722	// empty value appearing in NullFields will be sent to the server as
1723	// null. It is an error if a field in this list has a non-empty value.
1724	// This may be used to include null fields in Patch requests.
1725	NullFields []string `json:"-"`
1726}
1727
1728func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1729	type NoMethod AcceleratorTypesScopedListWarningData
1730	raw := NoMethod(*s)
1731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1732}
1733
1734// AccessConfig: An access configuration attached to an instance's
1735// network interface. Only one access config per instance is supported.
1736type AccessConfig struct {
1737	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1738	// for access configs.
1739	Kind string `json:"kind,omitempty"`
1740
1741	// Name: The name of this access configuration. The default and
1742	// recommended name is External NAT, but you can use any arbitrary
1743	// string, such as My external IP or Network Access.
1744	Name string `json:"name,omitempty"`
1745
1746	// NatIP: An external IP address associated with this instance. Specify
1747	// an unused static external IP address available to the project or
1748	// leave this field undefined to use an IP from a shared ephemeral IP
1749	// address pool. If you specify a static external IP address, it must
1750	// live in the same region as the zone of the instance.
1751	NatIP string `json:"natIP,omitempty"`
1752
1753	// NetworkTier: This signifies the networking tier used for configuring
1754	// this access configuration and can only take the following values:
1755	// PREMIUM, STANDARD.
1756	//
1757	// If an AccessConfig is specified without a valid external IP address,
1758	// an ephemeral IP will be created with this networkTier.
1759	//
1760	// If an AccessConfig with a valid external IP address is specified, it
1761	// must match that of the networkTier associated with the Address
1762	// resource owning that IP.
1763	//
1764	// Possible values:
1765	//   "PREMIUM"
1766	//   "SELECT"
1767	//   "STANDARD"
1768	NetworkTier string `json:"networkTier,omitempty"`
1769
1770	// PublicDnsName: [Output Only] The public DNS domain name for the
1771	// instance.
1772	PublicDnsName string `json:"publicDnsName,omitempty"`
1773
1774	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1775	// You can set this field only if the `setPublicPtr` field is enabled.
1776	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1777
1778	// SetPublicDns: Specifies whether a public DNS 'A' record should be
1779	// created for the external IP address of this access configuration.
1780	SetPublicDns bool `json:"setPublicDns,omitempty"`
1781
1782	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1783	// created to map the external IP address of the instance to a DNS
1784	// domain name.
1785	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1786
1787	// Type: The type of configuration. The default and only option is
1788	// ONE_TO_ONE_NAT.
1789	//
1790	// Possible values:
1791	//   "ONE_TO_ONE_NAT" (default)
1792	Type string `json:"type,omitempty"`
1793
1794	// ForceSendFields is a list of field names (e.g. "Kind") to
1795	// unconditionally include in API requests. By default, fields with
1796	// empty values are omitted from API requests. However, any non-pointer,
1797	// non-interface field appearing in ForceSendFields will be sent to the
1798	// server regardless of whether the field is empty or not. This may be
1799	// used to include empty fields in Patch requests.
1800	ForceSendFields []string `json:"-"`
1801
1802	// NullFields is a list of field names (e.g. "Kind") to include in API
1803	// requests with the JSON null value. By default, fields with empty
1804	// values are omitted from API requests. However, any field with an
1805	// empty value appearing in NullFields will be sent to the server as
1806	// null. It is an error if a field in this list has a non-empty value.
1807	// This may be used to include null fields in Patch requests.
1808	NullFields []string `json:"-"`
1809}
1810
1811func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1812	type NoMethod AccessConfig
1813	raw := NoMethod(*s)
1814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1815}
1816
1817// Address: Use global external addresses for GFE-based external HTTP(S)
1818// load balancers in Premium Tier.
1819//
1820// Use global internal addresses for reserved peering network
1821// range.
1822//
1823// Use regional external addresses for the following resources:
1824//
1825// - External IP addresses for VM instances - Regional external
1826// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1827// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1828// gateways (both Classic and HA)
1829//
1830// Use regional internal IP addresses for subnet IP ranges (primary and
1831// secondary). This includes:
1832//
1833// - Internal IP addresses for VM instances - Alias IP ranges of VM
1834// instances (/32 only) - Regional internal forwarding rules - Internal
1835// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1836// addresses - Cloud DNS inbound forwarding IP addresses
1837//
1838// For more information, read reserved IP address.
1839//
1840// (== resource_for {$api_version}.addresses ==) (== resource_for
1841// {$api_version}.globalAddresses ==)
1842type Address struct {
1843	// Address: The static IP address represented by this resource.
1844	Address string `json:"address,omitempty"`
1845
1846	// AddressType: The type of address to reserve, either INTERNAL or
1847	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1848	//
1849	// Possible values:
1850	//   "DNS_FORWARDING"
1851	//   "EXTERNAL"
1852	//   "INTERNAL"
1853	//   "UNSPECIFIED_TYPE"
1854	AddressType string `json:"addressType,omitempty"`
1855
1856	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1857	// format.
1858	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1859
1860	// Description: An optional description of this resource. Provide this
1861	// field when you create the resource.
1862	Description string `json:"description,omitempty"`
1863
1864	// Id: [Output Only] The unique identifier for the resource. This
1865	// identifier is defined by the server.
1866	Id uint64 `json:"id,omitempty,string"`
1867
1868	// IpVersion: The IP version that will be used by this address. Valid
1869	// options are IPV4 or IPV6. This can only be specified for a global
1870	// address.
1871	//
1872	// Possible values:
1873	//   "IPV4"
1874	//   "IPV6"
1875	//   "UNSPECIFIED_VERSION"
1876	IpVersion string `json:"ipVersion,omitempty"`
1877
1878	// Kind: [Output Only] Type of the resource. Always compute#address for
1879	// addresses.
1880	Kind string `json:"kind,omitempty"`
1881
1882	// LabelFingerprint: A fingerprint for the labels being applied to this
1883	// Address, which is essentially a hash of the labels set used for
1884	// optimistic locking. The fingerprint is initially generated by Compute
1885	// Engine and changes after every request to modify or update labels.
1886	// You must always provide an up-to-date fingerprint hash in order to
1887	// update or change labels, otherwise the request will fail with error
1888	// 412 conditionNotMet.
1889	//
1890	// To see the latest fingerprint, make a get() request to retrieve an
1891	// Address.
1892	LabelFingerprint string `json:"labelFingerprint,omitempty"`
1893
1894	// Labels: Labels for this resource. These can only be added or modified
1895	// by the setLabels method. Each label key/value pair must comply with
1896	// RFC1035. Label values may be empty.
1897	Labels map[string]string `json:"labels,omitempty"`
1898
1899	// Name: Name of the resource. Provided by the client when the resource
1900	// is created. The name must be 1-63 characters long, and comply with
1901	// RFC1035. Specifically, the name must be 1-63 characters long and
1902	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1903	// character must be a lowercase letter, and all following characters
1904	// (except for the last character) must be a dash, lowercase letter, or
1905	// digit. The last character must be a lowercase letter or digit.
1906	Name string `json:"name,omitempty"`
1907
1908	// Network: The URL of the network in which to reserve the address. This
1909	// field can only be used with INTERNAL type with the VPC_PEERING
1910	// purpose.
1911	Network string `json:"network,omitempty"`
1912
1913	// NetworkTier: This signifies the networking tier used for configuring
1914	// this address and can only take the following values: PREMIUM or
1915	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1916	// forwarding rules can be either Premium or Standard Tier. Standard
1917	// Tier addresses applied to regional forwarding rules can be used with
1918	// any external load balancer. Regional forwarding rules in Premium Tier
1919	// can only be used with a network load balancer.
1920	//
1921	// If this field is not specified, it is assumed to be PREMIUM.
1922	//
1923	// Possible values:
1924	//   "PREMIUM"
1925	//   "SELECT"
1926	//   "STANDARD"
1927	NetworkTier string `json:"networkTier,omitempty"`
1928
1929	// PrefixLength: The prefix length if the resource reprensents an IP
1930	// range.
1931	PrefixLength int64 `json:"prefixLength,omitempty"`
1932
1933	// Purpose: The purpose of this resource, which can be one of the
1934	// following values:
1935	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1936	// IP ranges, internal load balancers, and similar resources.
1937	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1938	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1939	// networks.
1940	// - `NAT_AUTO` for addresses that are external IP addresses
1941	// automatically reserved for Cloud NAT.
1942	//
1943	// Possible values:
1944	//   "DNS_RESOLVER"
1945	//   "GCE_ENDPOINT"
1946	//   "NAT_AUTO"
1947	//   "PRIVATE_SERVICE_CONNECT"
1948	//   "SHARED_LOADBALANCER_VIP"
1949	//   "VPC_PEERING"
1950	Purpose string `json:"purpose,omitempty"`
1951
1952	// Region: [Output Only] The URL of the region where the regional
1953	// address resides. This field is not applicable to global addresses.
1954	// You must specify this field as part of the HTTP request URL.
1955	Region string `json:"region,omitempty"`
1956
1957	// SelfLink: [Output Only] Server-defined URL for the resource.
1958	SelfLink string `json:"selfLink,omitempty"`
1959
1960	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
1961	// with the resource id.
1962	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
1963
1964	// Status: [Output Only] The status of the address, which can be one of
1965	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1966	// currently in the process of being reserved. A RESERVED address is
1967	// currently reserved and available to use. An IN_USE address is
1968	// currently being used by another resource and is not available.
1969	//
1970	// Possible values:
1971	//   "IN_USE"
1972	//   "RESERVED"
1973	//   "RESERVING"
1974	Status string `json:"status,omitempty"`
1975
1976	// Subnetwork: The URL of the subnetwork in which to reserve the
1977	// address. If an IP address is specified, it must be within the
1978	// subnetwork's IP range. This field can only be used with INTERNAL type
1979	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1980	Subnetwork string `json:"subnetwork,omitempty"`
1981
1982	// Users: [Output Only] The URLs of the resources that are using this
1983	// address.
1984	Users []string `json:"users,omitempty"`
1985
1986	// ServerResponse contains the HTTP response code and headers from the
1987	// server.
1988	googleapi.ServerResponse `json:"-"`
1989
1990	// ForceSendFields is a list of field names (e.g. "Address") to
1991	// unconditionally include in API requests. By default, fields with
1992	// empty values are omitted from API requests. However, any non-pointer,
1993	// non-interface field appearing in ForceSendFields will be sent to the
1994	// server regardless of whether the field is empty or not. This may be
1995	// used to include empty fields in Patch requests.
1996	ForceSendFields []string `json:"-"`
1997
1998	// NullFields is a list of field names (e.g. "Address") to include in
1999	// API requests with the JSON null value. By default, fields with empty
2000	// values are omitted from API requests. However, any field with an
2001	// empty value appearing in NullFields will be sent to the server as
2002	// null. It is an error if a field in this list has a non-empty value.
2003	// This may be used to include null fields in Patch requests.
2004	NullFields []string `json:"-"`
2005}
2006
2007func (s *Address) MarshalJSON() ([]byte, error) {
2008	type NoMethod Address
2009	raw := NoMethod(*s)
2010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2011}
2012
2013type AddressAggregatedList struct {
2014	// Id: [Output Only] Unique identifier for the resource; defined by the
2015	// server.
2016	Id string `json:"id,omitempty"`
2017
2018	// Items: A list of AddressesScopedList resources.
2019	Items map[string]AddressesScopedList `json:"items,omitempty"`
2020
2021	// Kind: [Output Only] Type of resource. Always
2022	// compute#addressAggregatedList for aggregated lists of addresses.
2023	Kind string `json:"kind,omitempty"`
2024
2025	// NextPageToken: [Output Only] This token allows you to get the next
2026	// page of results for list requests. If the number of results is larger
2027	// than maxResults, use the nextPageToken as a value for the query
2028	// parameter pageToken in the next list request. Subsequent list
2029	// requests will have their own nextPageToken to continue paging through
2030	// the results.
2031	NextPageToken string `json:"nextPageToken,omitempty"`
2032
2033	// SelfLink: [Output Only] Server-defined URL for this resource.
2034	SelfLink string `json:"selfLink,omitempty"`
2035
2036	// Unreachables: [Output Only] Unreachable resources.
2037	Unreachables []string `json:"unreachables,omitempty"`
2038
2039	// Warning: [Output Only] Informational warning message.
2040	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
2041
2042	// ServerResponse contains the HTTP response code and headers from the
2043	// server.
2044	googleapi.ServerResponse `json:"-"`
2045
2046	// ForceSendFields is a list of field names (e.g. "Id") to
2047	// unconditionally include in API requests. By default, fields with
2048	// empty values are omitted from API requests. However, any non-pointer,
2049	// non-interface field appearing in ForceSendFields will be sent to the
2050	// server regardless of whether the field is empty or not. This may be
2051	// used to include empty fields in Patch requests.
2052	ForceSendFields []string `json:"-"`
2053
2054	// NullFields is a list of field names (e.g. "Id") to include in API
2055	// requests with the JSON null value. By default, fields with empty
2056	// values are omitted from API requests. However, any field with an
2057	// empty value appearing in NullFields will be sent to the server as
2058	// null. It is an error if a field in this list has a non-empty value.
2059	// This may be used to include null fields in Patch requests.
2060	NullFields []string `json:"-"`
2061}
2062
2063func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
2064	type NoMethod AddressAggregatedList
2065	raw := NoMethod(*s)
2066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2067}
2068
2069// AddressAggregatedListWarning: [Output Only] Informational warning
2070// message.
2071type AddressAggregatedListWarning struct {
2072	// Code: [Output Only] A warning code, if applicable. For example,
2073	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2074	// the response.
2075	//
2076	// Possible values:
2077	//   "CLEANUP_FAILED"
2078	//   "DEPRECATED_RESOURCE_USED"
2079	//   "DEPRECATED_TYPE_USED"
2080	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2081	//   "EXPERIMENTAL_TYPE_USED"
2082	//   "EXTERNAL_API_WARNING"
2083	//   "FIELD_VALUE_OVERRIDEN"
2084	//   "INJECTED_KERNELS_DEPRECATED"
2085	//   "MISSING_TYPE_DEPENDENCY"
2086	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2087	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2088	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2089	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2090	//   "NEXT_HOP_NOT_RUNNING"
2091	//   "NOT_CRITICAL_ERROR"
2092	//   "NO_RESULTS_ON_PAGE"
2093	//   "PARTIAL_SUCCESS"
2094	//   "REQUIRED_TOS_AGREEMENT"
2095	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2096	//   "RESOURCE_NOT_DELETED"
2097	//   "SCHEMA_VALIDATION_IGNORED"
2098	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2099	//   "UNDECLARED_PROPERTIES"
2100	//   "UNREACHABLE"
2101	Code string `json:"code,omitempty"`
2102
2103	// Data: [Output Only] Metadata about this warning in key: value format.
2104	// For example:
2105	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2106	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
2107
2108	// Message: [Output Only] A human-readable description of the warning
2109	// code.
2110	Message string `json:"message,omitempty"`
2111
2112	// ForceSendFields is a list of field names (e.g. "Code") to
2113	// unconditionally include in API requests. By default, fields with
2114	// empty values are omitted from API requests. However, any non-pointer,
2115	// non-interface field appearing in ForceSendFields will be sent to the
2116	// server regardless of whether the field is empty or not. This may be
2117	// used to include empty fields in Patch requests.
2118	ForceSendFields []string `json:"-"`
2119
2120	// NullFields is a list of field names (e.g. "Code") to include in API
2121	// requests with the JSON null value. By default, fields with empty
2122	// values are omitted from API requests. However, any field with an
2123	// empty value appearing in NullFields will be sent to the server as
2124	// null. It is an error if a field in this list has a non-empty value.
2125	// This may be used to include null fields in Patch requests.
2126	NullFields []string `json:"-"`
2127}
2128
2129func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2130	type NoMethod AddressAggregatedListWarning
2131	raw := NoMethod(*s)
2132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2133}
2134
2135type AddressAggregatedListWarningData struct {
2136	// Key: [Output Only] A key that provides more detail on the warning
2137	// being returned. For example, for warnings where there are no results
2138	// in a list request for a particular zone, this key might be scope and
2139	// the key value might be the zone name. Other examples might be a key
2140	// indicating a deprecated resource and a suggested replacement, or a
2141	// warning about invalid network settings (for example, if an instance
2142	// attempts to perform IP forwarding but is not enabled for IP
2143	// forwarding).
2144	Key string `json:"key,omitempty"`
2145
2146	// Value: [Output Only] A warning data value corresponding to the key.
2147	Value string `json:"value,omitempty"`
2148
2149	// ForceSendFields is a list of field names (e.g. "Key") to
2150	// unconditionally include in API requests. By default, fields with
2151	// empty values are omitted from API requests. However, any non-pointer,
2152	// non-interface field appearing in ForceSendFields will be sent to the
2153	// server regardless of whether the field is empty or not. This may be
2154	// used to include empty fields in Patch requests.
2155	ForceSendFields []string `json:"-"`
2156
2157	// NullFields is a list of field names (e.g. "Key") to include in API
2158	// requests with the JSON null value. By default, fields with empty
2159	// values are omitted from API requests. However, any field with an
2160	// empty value appearing in NullFields will be sent to the server as
2161	// null. It is an error if a field in this list has a non-empty value.
2162	// This may be used to include null fields in Patch requests.
2163	NullFields []string `json:"-"`
2164}
2165
2166func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2167	type NoMethod AddressAggregatedListWarningData
2168	raw := NoMethod(*s)
2169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2170}
2171
2172// AddressList: Contains a list of addresses.
2173type AddressList struct {
2174	// Id: [Output Only] Unique identifier for the resource; defined by the
2175	// server.
2176	Id string `json:"id,omitempty"`
2177
2178	// Items: A list of Address resources.
2179	Items []*Address `json:"items,omitempty"`
2180
2181	// Kind: [Output Only] Type of resource. Always compute#addressList for
2182	// lists of addresses.
2183	Kind string `json:"kind,omitempty"`
2184
2185	// NextPageToken: [Output Only] This token allows you to get the next
2186	// page of results for list requests. If the number of results is larger
2187	// than maxResults, use the nextPageToken as a value for the query
2188	// parameter pageToken in the next list request. Subsequent list
2189	// requests will have their own nextPageToken to continue paging through
2190	// the results.
2191	NextPageToken string `json:"nextPageToken,omitempty"`
2192
2193	// SelfLink: [Output Only] Server-defined URL for this resource.
2194	SelfLink string `json:"selfLink,omitempty"`
2195
2196	// Warning: [Output Only] Informational warning message.
2197	Warning *AddressListWarning `json:"warning,omitempty"`
2198
2199	// ServerResponse contains the HTTP response code and headers from the
2200	// server.
2201	googleapi.ServerResponse `json:"-"`
2202
2203	// ForceSendFields is a list of field names (e.g. "Id") to
2204	// unconditionally include in API requests. By default, fields with
2205	// empty values are omitted from API requests. However, any non-pointer,
2206	// non-interface field appearing in ForceSendFields will be sent to the
2207	// server regardless of whether the field is empty or not. This may be
2208	// used to include empty fields in Patch requests.
2209	ForceSendFields []string `json:"-"`
2210
2211	// NullFields is a list of field names (e.g. "Id") to include in API
2212	// requests with the JSON null value. By default, fields with empty
2213	// values are omitted from API requests. However, any field with an
2214	// empty value appearing in NullFields will be sent to the server as
2215	// null. It is an error if a field in this list has a non-empty value.
2216	// This may be used to include null fields in Patch requests.
2217	NullFields []string `json:"-"`
2218}
2219
2220func (s *AddressList) MarshalJSON() ([]byte, error) {
2221	type NoMethod AddressList
2222	raw := NoMethod(*s)
2223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2224}
2225
2226// AddressListWarning: [Output Only] Informational warning message.
2227type AddressListWarning struct {
2228	// Code: [Output Only] A warning code, if applicable. For example,
2229	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2230	// the response.
2231	//
2232	// Possible values:
2233	//   "CLEANUP_FAILED"
2234	//   "DEPRECATED_RESOURCE_USED"
2235	//   "DEPRECATED_TYPE_USED"
2236	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2237	//   "EXPERIMENTAL_TYPE_USED"
2238	//   "EXTERNAL_API_WARNING"
2239	//   "FIELD_VALUE_OVERRIDEN"
2240	//   "INJECTED_KERNELS_DEPRECATED"
2241	//   "MISSING_TYPE_DEPENDENCY"
2242	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2243	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2244	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2245	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2246	//   "NEXT_HOP_NOT_RUNNING"
2247	//   "NOT_CRITICAL_ERROR"
2248	//   "NO_RESULTS_ON_PAGE"
2249	//   "PARTIAL_SUCCESS"
2250	//   "REQUIRED_TOS_AGREEMENT"
2251	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2252	//   "RESOURCE_NOT_DELETED"
2253	//   "SCHEMA_VALIDATION_IGNORED"
2254	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2255	//   "UNDECLARED_PROPERTIES"
2256	//   "UNREACHABLE"
2257	Code string `json:"code,omitempty"`
2258
2259	// Data: [Output Only] Metadata about this warning in key: value format.
2260	// For example:
2261	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2262	Data []*AddressListWarningData `json:"data,omitempty"`
2263
2264	// Message: [Output Only] A human-readable description of the warning
2265	// code.
2266	Message string `json:"message,omitempty"`
2267
2268	// ForceSendFields is a list of field names (e.g. "Code") to
2269	// unconditionally include in API requests. By default, fields with
2270	// empty values are omitted from API requests. However, any non-pointer,
2271	// non-interface field appearing in ForceSendFields will be sent to the
2272	// server regardless of whether the field is empty or not. This may be
2273	// used to include empty fields in Patch requests.
2274	ForceSendFields []string `json:"-"`
2275
2276	// NullFields is a list of field names (e.g. "Code") to include in API
2277	// requests with the JSON null value. By default, fields with empty
2278	// values are omitted from API requests. However, any field with an
2279	// empty value appearing in NullFields will be sent to the server as
2280	// null. It is an error if a field in this list has a non-empty value.
2281	// This may be used to include null fields in Patch requests.
2282	NullFields []string `json:"-"`
2283}
2284
2285func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2286	type NoMethod AddressListWarning
2287	raw := NoMethod(*s)
2288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2289}
2290
2291type AddressListWarningData struct {
2292	// Key: [Output Only] A key that provides more detail on the warning
2293	// being returned. For example, for warnings where there are no results
2294	// in a list request for a particular zone, this key might be scope and
2295	// the key value might be the zone name. Other examples might be a key
2296	// indicating a deprecated resource and a suggested replacement, or a
2297	// warning about invalid network settings (for example, if an instance
2298	// attempts to perform IP forwarding but is not enabled for IP
2299	// forwarding).
2300	Key string `json:"key,omitempty"`
2301
2302	// Value: [Output Only] A warning data value corresponding to the key.
2303	Value string `json:"value,omitempty"`
2304
2305	// ForceSendFields is a list of field names (e.g. "Key") to
2306	// unconditionally include in API requests. By default, fields with
2307	// empty values are omitted from API requests. However, any non-pointer,
2308	// non-interface field appearing in ForceSendFields will be sent to the
2309	// server regardless of whether the field is empty or not. This may be
2310	// used to include empty fields in Patch requests.
2311	ForceSendFields []string `json:"-"`
2312
2313	// NullFields is a list of field names (e.g. "Key") to include in API
2314	// requests with the JSON null value. By default, fields with empty
2315	// values are omitted from API requests. However, any field with an
2316	// empty value appearing in NullFields will be sent to the server as
2317	// null. It is an error if a field in this list has a non-empty value.
2318	// This may be used to include null fields in Patch requests.
2319	NullFields []string `json:"-"`
2320}
2321
2322func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2323	type NoMethod AddressListWarningData
2324	raw := NoMethod(*s)
2325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2326}
2327
2328type AddressesScopedList struct {
2329	// Addresses: [Output Only] A list of addresses contained in this scope.
2330	Addresses []*Address `json:"addresses,omitempty"`
2331
2332	// Warning: [Output Only] Informational warning which replaces the list
2333	// of addresses when the list is empty.
2334	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2335
2336	// ForceSendFields is a list of field names (e.g. "Addresses") to
2337	// unconditionally include in API requests. By default, fields with
2338	// empty values are omitted from API requests. However, any non-pointer,
2339	// non-interface field appearing in ForceSendFields will be sent to the
2340	// server regardless of whether the field is empty or not. This may be
2341	// used to include empty fields in Patch requests.
2342	ForceSendFields []string `json:"-"`
2343
2344	// NullFields is a list of field names (e.g. "Addresses") to include in
2345	// API requests with the JSON null value. By default, fields with empty
2346	// values are omitted from API requests. However, any field with an
2347	// empty value appearing in NullFields will be sent to the server as
2348	// null. It is an error if a field in this list has a non-empty value.
2349	// This may be used to include null fields in Patch requests.
2350	NullFields []string `json:"-"`
2351}
2352
2353func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2354	type NoMethod AddressesScopedList
2355	raw := NoMethod(*s)
2356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2357}
2358
2359// AddressesScopedListWarning: [Output Only] Informational warning which
2360// replaces the list of addresses when the list is empty.
2361type AddressesScopedListWarning struct {
2362	// Code: [Output Only] A warning code, if applicable. For example,
2363	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2364	// the response.
2365	//
2366	// Possible values:
2367	//   "CLEANUP_FAILED"
2368	//   "DEPRECATED_RESOURCE_USED"
2369	//   "DEPRECATED_TYPE_USED"
2370	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2371	//   "EXPERIMENTAL_TYPE_USED"
2372	//   "EXTERNAL_API_WARNING"
2373	//   "FIELD_VALUE_OVERRIDEN"
2374	//   "INJECTED_KERNELS_DEPRECATED"
2375	//   "MISSING_TYPE_DEPENDENCY"
2376	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2377	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2378	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2379	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2380	//   "NEXT_HOP_NOT_RUNNING"
2381	//   "NOT_CRITICAL_ERROR"
2382	//   "NO_RESULTS_ON_PAGE"
2383	//   "PARTIAL_SUCCESS"
2384	//   "REQUIRED_TOS_AGREEMENT"
2385	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2386	//   "RESOURCE_NOT_DELETED"
2387	//   "SCHEMA_VALIDATION_IGNORED"
2388	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2389	//   "UNDECLARED_PROPERTIES"
2390	//   "UNREACHABLE"
2391	Code string `json:"code,omitempty"`
2392
2393	// Data: [Output Only] Metadata about this warning in key: value format.
2394	// For example:
2395	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2396	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2397
2398	// Message: [Output Only] A human-readable description of the warning
2399	// code.
2400	Message string `json:"message,omitempty"`
2401
2402	// ForceSendFields is a list of field names (e.g. "Code") to
2403	// unconditionally include in API requests. By default, fields with
2404	// empty values are omitted from API requests. However, any non-pointer,
2405	// non-interface field appearing in ForceSendFields will be sent to the
2406	// server regardless of whether the field is empty or not. This may be
2407	// used to include empty fields in Patch requests.
2408	ForceSendFields []string `json:"-"`
2409
2410	// NullFields is a list of field names (e.g. "Code") to include in API
2411	// requests with the JSON null value. By default, fields with empty
2412	// values are omitted from API requests. However, any field with an
2413	// empty value appearing in NullFields will be sent to the server as
2414	// null. It is an error if a field in this list has a non-empty value.
2415	// This may be used to include null fields in Patch requests.
2416	NullFields []string `json:"-"`
2417}
2418
2419func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2420	type NoMethod AddressesScopedListWarning
2421	raw := NoMethod(*s)
2422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2423}
2424
2425type AddressesScopedListWarningData struct {
2426	// Key: [Output Only] A key that provides more detail on the warning
2427	// being returned. For example, for warnings where there are no results
2428	// in a list request for a particular zone, this key might be scope and
2429	// the key value might be the zone name. Other examples might be a key
2430	// indicating a deprecated resource and a suggested replacement, or a
2431	// warning about invalid network settings (for example, if an instance
2432	// attempts to perform IP forwarding but is not enabled for IP
2433	// forwarding).
2434	Key string `json:"key,omitempty"`
2435
2436	// Value: [Output Only] A warning data value corresponding to the key.
2437	Value string `json:"value,omitempty"`
2438
2439	// ForceSendFields is a list of field names (e.g. "Key") to
2440	// unconditionally include in API requests. By default, fields with
2441	// empty values are omitted from API requests. However, any non-pointer,
2442	// non-interface field appearing in ForceSendFields will be sent to the
2443	// server regardless of whether the field is empty or not. This may be
2444	// used to include empty fields in Patch requests.
2445	ForceSendFields []string `json:"-"`
2446
2447	// NullFields is a list of field names (e.g. "Key") to include in API
2448	// requests with the JSON null value. By default, fields with empty
2449	// values are omitted from API requests. However, any field with an
2450	// empty value appearing in NullFields will be sent to the server as
2451	// null. It is an error if a field in this list has a non-empty value.
2452	// This may be used to include null fields in Patch requests.
2453	NullFields []string `json:"-"`
2454}
2455
2456func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2457	type NoMethod AddressesScopedListWarningData
2458	raw := NoMethod(*s)
2459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2460}
2461
2462// AliasIpRange: An alias IP range attached to an instance's network
2463// interface.
2464type AliasIpRange struct {
2465	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2466	// IP CIDR range must belong to the specified subnetwork and cannot
2467	// contain IP addresses reserved by system or used by other network
2468	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2469	// a netmask (such as /24) or a CIDR-formatted string (such as
2470	// 10.1.2.0/24).
2471	IpCidrRange string `json:"ipCidrRange,omitempty"`
2472
2473	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2474	// which to allocate an IP alias range. If not specified, the primary
2475	// range of the subnetwork is used.
2476	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2477
2478	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2479	// unconditionally include in API requests. By default, fields with
2480	// empty values are omitted from API requests. However, any non-pointer,
2481	// non-interface field appearing in ForceSendFields will be sent to the
2482	// server regardless of whether the field is empty or not. This may be
2483	// used to include empty fields in Patch requests.
2484	ForceSendFields []string `json:"-"`
2485
2486	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2487	// in API requests with the JSON null value. By default, fields with
2488	// empty values are omitted from API requests. However, any field with
2489	// an empty value appearing in NullFields will be sent to the server as
2490	// null. It is an error if a field in this list has a non-empty value.
2491	// This may be used to include null fields in Patch requests.
2492	NullFields []string `json:"-"`
2493}
2494
2495func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2496	type NoMethod AliasIpRange
2497	raw := NoMethod(*s)
2498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2499}
2500
2501type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2502	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2503	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2504
2505	// Interface: Specifies the disk interface to use for attaching this
2506	// disk, which is either SCSI or NVME. The default is SCSI. For
2507	// performance characteristics of SCSI over NVMe, see Local SSD
2508	// performance.
2509	//
2510	// Possible values:
2511	//   "NVDIMM"
2512	//   "NVME"
2513	//   "SCSI"
2514	Interface string `json:"interface,omitempty"`
2515
2516	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2517	// unconditionally include in API requests. By default, fields with
2518	// empty values are omitted from API requests. However, any non-pointer,
2519	// non-interface field appearing in ForceSendFields will be sent to the
2520	// server regardless of whether the field is empty or not. This may be
2521	// used to include empty fields in Patch requests.
2522	ForceSendFields []string `json:"-"`
2523
2524	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2525	// API requests with the JSON null value. By default, fields with empty
2526	// values are omitted from API requests. However, any field with an
2527	// empty value appearing in NullFields will be sent to the server as
2528	// null. It is an error if a field in this list has a non-empty value.
2529	// This may be used to include null fields in Patch requests.
2530	NullFields []string `json:"-"`
2531}
2532
2533func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2534	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2535	raw := NoMethod(*s)
2536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2537}
2538
2539// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2540// of the SKU instances being reserved.
2541type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2542	// GuestAccelerators: Specifies accelerator type and count.
2543	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2544
2545	// LocalSsds: Specifies amount of local ssd to reserve with each
2546	// instance. The type of disk is local-ssd.
2547	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2548
2549	// LocationHint: An opaque location hint used to place the allocation
2550	// close to other resources. This field is for use by internal tools
2551	// that use the public API.
2552	LocationHint string `json:"locationHint,omitempty"`
2553
2554	// LongTermRelease: Compute Engine Long Term Release. When specified,
2555	// VMs that have this policy become long term release (internal: stable
2556	// fleet) VMs.
2557	//
2558	// For all VM shapes, this should result in fewer disruptions due to
2559	// software updates and greater predictability via 1 week extended
2560	// notifications.
2561	//
2562	// For GPU VMs, this should also result in an 2 week uptime guarantee.
2563	// See go/stable-fleet-gpus-design for more details.
2564	LongTermRelease bool `json:"longTermRelease,omitempty"`
2565
2566	// MachineType: Specifies type of machine (name only) which has fixed
2567	// number of vCPUs and fixed amount of memory. This also includes
2568	// specifying custom machine type following
2569	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2570	MachineType string `json:"machineType,omitempty"`
2571
2572	// MinCpuPlatform: Minimum cpu platform the reservation.
2573	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2574
2575	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2576	// to unconditionally include in API requests. By default, fields with
2577	// empty values are omitted from API requests. However, any non-pointer,
2578	// non-interface field appearing in ForceSendFields will be sent to the
2579	// server regardless of whether the field is empty or not. This may be
2580	// used to include empty fields in Patch requests.
2581	ForceSendFields []string `json:"-"`
2582
2583	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2584	// include in API requests with the JSON null value. By default, fields
2585	// with empty values are omitted from API requests. However, any field
2586	// with an empty value appearing in NullFields will be sent to the
2587	// server as null. It is an error if a field in this list has a
2588	// non-empty value. This may be used to include null fields in Patch
2589	// requests.
2590	NullFields []string `json:"-"`
2591}
2592
2593func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2594	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2595	raw := NoMethod(*s)
2596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2597}
2598
2599// AllocationSpecificSKUReservation: This reservation type allows to pre
2600// allocate specific instance configuration.
2601type AllocationSpecificSKUReservation struct {
2602	// Count: Specifies the number of resources that are allocated.
2603	Count int64 `json:"count,omitempty,string"`
2604
2605	// InUseCount: [Output Only] Indicates how many instances are in use.
2606	InUseCount int64 `json:"inUseCount,omitempty,string"`
2607
2608	// InstanceProperties: The instance properties for the reservation.
2609	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2610
2611	// ForceSendFields is a list of field names (e.g. "Count") to
2612	// unconditionally include in API requests. By default, fields with
2613	// empty values are omitted from API requests. However, any non-pointer,
2614	// non-interface field appearing in ForceSendFields will be sent to the
2615	// server regardless of whether the field is empty or not. This may be
2616	// used to include empty fields in Patch requests.
2617	ForceSendFields []string `json:"-"`
2618
2619	// NullFields is a list of field names (e.g. "Count") to include in API
2620	// requests with the JSON null value. By default, fields with empty
2621	// values are omitted from API requests. However, any field with an
2622	// empty value appearing in NullFields will be sent to the server as
2623	// null. It is an error if a field in this list has a non-empty value.
2624	// This may be used to include null fields in Patch requests.
2625	NullFields []string `json:"-"`
2626}
2627
2628func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2629	type NoMethod AllocationSpecificSKUReservation
2630	raw := NoMethod(*s)
2631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2632}
2633
2634// AttachedDisk: An instance-attached disk resource.
2635type AttachedDisk struct {
2636	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2637	// instance is deleted (but not when the disk is detached from the
2638	// instance).
2639	AutoDelete bool `json:"autoDelete,omitempty"`
2640
2641	// Boot: Indicates that this is a boot disk. The virtual machine will
2642	// use the first partition of the disk for its root filesystem.
2643	Boot bool `json:"boot,omitempty"`
2644
2645	// DeviceName: Specifies a unique device name of your choice that is
2646	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2647	// system running within the instance. This name can be used to
2648	// reference the device for mounting, resizing, and so on, from within
2649	// the instance.
2650	//
2651	// If not specified, the server chooses a default device name to apply
2652	// to this disk, in the form persistent-disk-x, where x is a number
2653	// assigned by Google Compute Engine. This field is only applicable for
2654	// persistent disks.
2655	DeviceName string `json:"deviceName,omitempty"`
2656
2657	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2658	// customer-supplied encryption key.
2659	//
2660	// If you are creating a new disk, this field encrypts the new disk
2661	// using an encryption key that you provide. If you are attaching an
2662	// existing disk that is already encrypted, this field decrypts the disk
2663	// using the customer-supplied encryption key.
2664	//
2665	// If you encrypt a disk using a customer-supplied key, you must provide
2666	// the same key again when you attempt to use this resource at a later
2667	// time. For example, you must provide the key when you create a
2668	// snapshot or an image from the disk or when you attach the disk to a
2669	// virtual machine instance.
2670	//
2671	// If you do not provide an encryption key, then the disk will be
2672	// encrypted using an automatically generated key and you do not need to
2673	// provide a key to use the disk later.
2674	//
2675	// Instance templates do not store customer-supplied encryption keys, so
2676	// you cannot use your own keys to encrypt disks in a managed instance
2677	// group.
2678	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2679
2680	// DiskSizeGb: The size of the disk in GB.
2681	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2682
2683	// GuestOsFeatures: A list of features to enable on the guest operating
2684	// system. Applicable only for bootable images. Read  Enabling guest
2685	// operating system features to see a list of available options.
2686	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2687
2688	// Index: [Output Only] A zero-based index to this disk, where 0 is
2689	// reserved for the boot disk. If you have many disks attached to an
2690	// instance, each disk would have a unique index number.
2691	Index int64 `json:"index,omitempty"`
2692
2693	// InitializeParams: [Input Only] Specifies the parameters for a new
2694	// disk that will be created alongside the new instance. Use
2695	// initialization parameters to create boot disks or local SSDs attached
2696	// to the new instance.
2697	//
2698	// This property is mutually exclusive with the source property; you can
2699	// only define one or the other, but not both.
2700	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2701
2702	// Interface: Specifies the disk interface to use for attaching this
2703	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2704	// disks must always use SCSI and the request will fail if you attempt
2705	// to attach a persistent disk in any other format than SCSI. Local SSDs
2706	// can use either NVME or SCSI. For performance characteristics of SCSI
2707	// over NVMe, see Local SSD performance.
2708	//
2709	// Possible values:
2710	//   "NVDIMM"
2711	//   "NVME"
2712	//   "SCSI"
2713	Interface string `json:"interface,omitempty"`
2714
2715	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2716	// for attached disks.
2717	Kind string `json:"kind,omitempty"`
2718
2719	// Licenses: [Output Only] Any valid publicly visible licenses.
2720	Licenses []string `json:"licenses,omitempty"`
2721
2722	// Mode: The mode in which to attach this disk, either READ_WRITE or
2723	// READ_ONLY. If not specified, the default is to attach the disk in
2724	// READ_WRITE mode.
2725	//
2726	// Possible values:
2727	//   "READ_ONLY"
2728	//   "READ_WRITE"
2729	Mode string `json:"mode,omitempty"`
2730
2731	// SavedState: For LocalSSD disks on VM Instances in STOPPED or
2732	// SUSPENDED state, this field is set to PRESERVED if the LocalSSD data
2733	// has been saved to a persistent location by customer request. (see the
2734	// discard_local_ssd option on Stop/Suspend). Read-only in the api.
2735	//
2736	// Possible values:
2737	//   "DISK_SAVED_STATE_UNSPECIFIED"
2738	//   "PRESERVED"
2739	SavedState string `json:"savedState,omitempty"`
2740
2741	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2742	// stored on disk
2743	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2744
2745	// Source: Specifies a valid partial or full URL to an existing
2746	// Persistent Disk resource. When creating a new instance, one of
2747	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2748	// disks.source is required except for local SSD.
2749	//
2750	// If desired, you can also attach existing non-root persistent disks
2751	// using this property. This field is only applicable for persistent
2752	// disks.
2753	//
2754	// Note that for InstanceTemplate, specify the disk name, not the URL
2755	// for the disk.
2756	Source string `json:"source,omitempty"`
2757
2758	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2759	// If not specified, the default is PERSISTENT.
2760	//
2761	// Possible values:
2762	//   "PERSISTENT"
2763	//   "SCRATCH"
2764	Type string `json:"type,omitempty"`
2765
2766	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2767	// unconditionally include in API requests. By default, fields with
2768	// empty values are omitted from API requests. However, any non-pointer,
2769	// non-interface field appearing in ForceSendFields will be sent to the
2770	// server regardless of whether the field is empty or not. This may be
2771	// used to include empty fields in Patch requests.
2772	ForceSendFields []string `json:"-"`
2773
2774	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2775	// API requests with the JSON null value. By default, fields with empty
2776	// values are omitted from API requests. However, any field with an
2777	// empty value appearing in NullFields will be sent to the server as
2778	// null. It is an error if a field in this list has a non-empty value.
2779	// This may be used to include null fields in Patch requests.
2780	NullFields []string `json:"-"`
2781}
2782
2783func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2784	type NoMethod AttachedDisk
2785	raw := NoMethod(*s)
2786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2787}
2788
2789// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2790// for a new disk that will be created alongside the new instance. Use
2791// initialization parameters to create boot disks or local SSDs attached
2792// to the new instance.
2793//
2794// This property is mutually exclusive with the source property; you can
2795// only define one or the other, but not both.
2796type AttachedDiskInitializeParams struct {
2797	// Description: An optional description. Provide this property when
2798	// creating the disk.
2799	Description string `json:"description,omitempty"`
2800
2801	// DiskName: Specifies the disk name. If not specified, the default is
2802	// to use the name of the instance. If a disk with the same name already
2803	// exists in the given region, the existing disk is attached to the new
2804	// instance and the new disk is not created.
2805	DiskName string `json:"diskName,omitempty"`
2806
2807	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2808	// must be at least 10 GB. If you specify a sourceImage, which is
2809	// required for boot disks, the default size is the size of the
2810	// sourceImage. If you do not specify a sourceImage, the default disk
2811	// size is 500 GB.
2812	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2813
2814	// DiskType: Specifies the disk type to use to create the instance. If
2815	// not specified, the default is pd-standard, specified using the full
2816	// URL. For
2817	// example:
2818	// https://www.googleapis.com/compute/v1/projects/project/zones/
2819	// zone/diskTypes/pd-standard
2820	//
2821	//
2822	// Other values include pd-ssd and local-ssd. If you define this field,
2823	// you can provide either the full or partial URL. For example, the
2824	// following are valid values:
2825	// -
2826	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2827	// - projects/project/zones/zone/diskTypes/diskType
2828	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2829	// is the name of the disk type, not URL.
2830	DiskType string `json:"diskType,omitempty"`
2831
2832	// GuestOsFeatures: A list of features to enable on the guest operating
2833	// system. Applicable only for bootable images. Read  Enabling guest
2834	// operating system features to see a list of available options.
2835	//
2836	// Guest OS features are applied by merging
2837	// initializeParams.guestOsFeatures and disks.guestOsFeatures
2838	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2839
2840	// Labels: Labels to apply to this disk. These can be later modified by
2841	// the disks.setLabels method. This field is only applicable for
2842	// persistent disks.
2843	Labels map[string]string `json:"labels,omitempty"`
2844
2845	// OnUpdateAction: Specifies which action to take on instance update
2846	// with this disk. Default is to use the existing disk.
2847	//
2848	// Possible values:
2849	//   "RECREATE_DISK"
2850	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2851	//   "USE_EXISTING_DISK"
2852	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2853
2854	// ReplicaZones: URLs of the zones where the disk should be replicated
2855	// to. Only applicable for regional resources.
2856	ReplicaZones []string `json:"replicaZones,omitempty"`
2857
2858	// ResourcePolicies: Resource policies applied to this disk for
2859	// automatic snapshot creations. Specified using the full or partial
2860	// URL. For instance template, specify only the resource policy name.
2861	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2862
2863	// SourceImage: The source image to create this disk. When creating a
2864	// new instance, one of initializeParams.sourceImage or
2865	// initializeParams.sourceSnapshot or disks.source is required except
2866	// for local SSD.
2867	//
2868	// To create a disk with one of the public operating system images,
2869	// specify the image by its family name. For example, specify
2870	// family/debian-9 to use the latest Debian 9
2871	// image:
2872	// projects/debian-cloud/global/images/family/debian-9
2873	//
2874	//
2875	// Alternati
2876	// vely, use a specific version of a public operating system
2877	// image:
2878	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2879	//
2880	//
2881	//
2882	// To create a disk with a custom image that you created, specify the
2883	// image name in the following
2884	// format:
2885	// global/images/my-custom-image
2886	//
2887	//
2888	// You can also specify a custom image by its image family, which
2889	// returns the latest version of the image in that family. Replace the
2890	// image name with
2891	// family/family-name:
2892	// global/images/family/my-image-family
2893	//
2894	//
2895	// If the source image is deleted later, this field will not be set.
2896	SourceImage string `json:"sourceImage,omitempty"`
2897
2898	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2899	// source image. Required if the source image is protected by a
2900	// customer-supplied encryption key.
2901	//
2902	// Instance templates do not store customer-supplied encryption keys, so
2903	// you cannot create disks for instances in a managed instance group if
2904	// the source images are encrypted with your own keys.
2905	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2906
2907	// SourceSnapshot: The source snapshot to create this disk. When
2908	// creating a new instance, one of initializeParams.sourceSnapshot or
2909	// initializeParams.sourceImage or disks.source is required except for
2910	// local SSD.
2911	//
2912	// To create a disk with a snapshot that you created, specify the
2913	// snapshot name in the following
2914	// format:
2915	// global/snapshots/my-backup
2916	//
2917	//
2918	// If the source snapshot is deleted later, this field will not be set.
2919	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2920
2921	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2922	// the source snapshot.
2923	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2924
2925	// ForceSendFields is a list of field names (e.g. "Description") to
2926	// unconditionally include in API requests. By default, fields with
2927	// empty values are omitted from API requests. However, any non-pointer,
2928	// non-interface field appearing in ForceSendFields will be sent to the
2929	// server regardless of whether the field is empty or not. This may be
2930	// used to include empty fields in Patch requests.
2931	ForceSendFields []string `json:"-"`
2932
2933	// NullFields is a list of field names (e.g. "Description") to include
2934	// in API requests with the JSON null value. By default, fields with
2935	// empty values are omitted from API requests. However, any field with
2936	// an empty value appearing in NullFields will be sent to the server as
2937	// null. It is an error if a field in this list has a non-empty value.
2938	// This may be used to include null fields in Patch requests.
2939	NullFields []string `json:"-"`
2940}
2941
2942func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2943	type NoMethod AttachedDiskInitializeParams
2944	raw := NoMethod(*s)
2945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2946}
2947
2948// AuditConfig: Specifies the audit configuration for a service. The
2949// configuration determines which permission types are logged, and what
2950// identities, if any, are exempted from logging. An AuditConfig must
2951// have one or more AuditLogConfigs.
2952//
2953// If there are AuditConfigs for both `allServices` and a specific
2954// service, the union of the two AuditConfigs is used for that service:
2955// the log_types specified in each AuditConfig are enabled, and the
2956// exempted_members in each AuditLogConfig are exempted.
2957//
2958// Example Policy with multiple AuditConfigs:
2959//
2960// { "audit_configs": [ { "service": "allServices" "audit_log_configs":
2961// [ { "log_type": "DATA_READ", "exempted_members": [
2962// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE", }, {
2963// "log_type": "ADMIN_READ", } ] }, { "service":
2964// "sampleservice.googleapis.com" "audit_log_configs": [ { "log_type":
2965// "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [
2966// "user:aliya@example.com" ] } ] } ] }
2967//
2968// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2969// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2970// logging, and aliya@example.com from DATA_WRITE logging.
2971type AuditConfig struct {
2972	// AuditLogConfigs: The configuration for logging of each type of
2973	// permission.
2974	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2975
2976	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2977
2978	// Service: Specifies a service that will be enabled for audit logging.
2979	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2980	// `allServices` is a special value that covers all services.
2981	Service string `json:"service,omitempty"`
2982
2983	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2984	// unconditionally include in API requests. By default, fields with
2985	// empty values are omitted from API requests. However, any non-pointer,
2986	// non-interface field appearing in ForceSendFields will be sent to the
2987	// server regardless of whether the field is empty or not. This may be
2988	// used to include empty fields in Patch requests.
2989	ForceSendFields []string `json:"-"`
2990
2991	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2992	// include in API requests with the JSON null value. By default, fields
2993	// with empty values are omitted from API requests. However, any field
2994	// with an empty value appearing in NullFields will be sent to the
2995	// server as null. It is an error if a field in this list has a
2996	// non-empty value. This may be used to include null fields in Patch
2997	// requests.
2998	NullFields []string `json:"-"`
2999}
3000
3001func (s *AuditConfig) MarshalJSON() ([]byte, error) {
3002	type NoMethod AuditConfig
3003	raw := NoMethod(*s)
3004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3005}
3006
3007// AuditLogConfig: Provides the configuration for logging a type of
3008// permissions. Example:
3009//
3010// { "audit_log_configs": [ { "log_type": "DATA_READ",
3011// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
3012// "DATA_WRITE", } ] }
3013//
3014// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
3015// jose@example.com from DATA_READ logging.
3016type AuditLogConfig struct {
3017	// ExemptedMembers: Specifies the identities that do not cause logging
3018	// for this type of permission. Follows the same format of
3019	// [Binding.members][].
3020	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
3021
3022	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
3023
3024	// LogType: The log type that this config enables.
3025	//
3026	// Possible values:
3027	//   "ADMIN_READ"
3028	//   "DATA_READ"
3029	//   "DATA_WRITE"
3030	//   "LOG_TYPE_UNSPECIFIED"
3031	LogType string `json:"logType,omitempty"`
3032
3033	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
3034	// unconditionally include in API requests. By default, fields with
3035	// empty values are omitted from API requests. However, any non-pointer,
3036	// non-interface field appearing in ForceSendFields will be sent to the
3037	// server regardless of whether the field is empty or not. This may be
3038	// used to include empty fields in Patch requests.
3039	ForceSendFields []string `json:"-"`
3040
3041	// NullFields is a list of field names (e.g. "ExemptedMembers") to
3042	// include in API requests with the JSON null value. By default, fields
3043	// with empty values are omitted from API requests. However, any field
3044	// with an empty value appearing in NullFields will be sent to the
3045	// server as null. It is an error if a field in this list has a
3046	// non-empty value. This may be used to include null fields in Patch
3047	// requests.
3048	NullFields []string `json:"-"`
3049}
3050
3051func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
3052	type NoMethod AuditLogConfig
3053	raw := NoMethod(*s)
3054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3055}
3056
3057// AuthenticationPolicy: [Deprecated] The authentication settings for
3058// the backend service. The authentication settings for the backend
3059// service.
3060type AuthenticationPolicy struct {
3061	// Origins: List of authentication methods that can be used for origin
3062	// authentication. Similar to peers, these will be evaluated in order
3063	// the first valid one will be used to set origin identity. If none of
3064	// these methods pass, the request will be rejected with authentication
3065	// failed error (401). Leave the list empty if origin authentication is
3066	// not required.
3067	Origins []*OriginAuthenticationMethod `json:"origins,omitempty"`
3068
3069	// Peers: List of authentication methods that can be used for peer
3070	// authentication. They will be evaluated in order the first valid one
3071	// will be used to set peer identity. If none of these methods pass, the
3072	// request will be rejected with authentication failed error (401).
3073	// Leave the list empty if peer authentication is not required.
3074	Peers []*PeerAuthenticationMethod `json:"peers,omitempty"`
3075
3076	// PrincipalBinding: Define whether peer or origin identity should be
3077	// used for principal. Default value is USE_PEER. If peer (or origin)
3078	// identity is not available, either because peer/origin authentication
3079	// is not defined, or failed, principal will be left unset. In other
3080	// words, binding rule does not affect the decision to accept or reject
3081	// request. This field can be set to one of the following: USE_PEER:
3082	// Principal will be set to the identity from peer authentication.
3083	// USE_ORIGIN: Principal will be set to the identity from origin
3084	// authentication.
3085	//
3086	// Possible values:
3087	//   "INVALID"
3088	//   "USE_ORIGIN"
3089	//   "USE_PEER"
3090	PrincipalBinding string `json:"principalBinding,omitempty"`
3091
3092	// ServerTlsContext: Configures the mechanism to obtain server-side
3093	// security certificates and identity information.
3094	ServerTlsContext *TlsContext `json:"serverTlsContext,omitempty"`
3095
3096	// ForceSendFields is a list of field names (e.g. "Origins") to
3097	// unconditionally include in API requests. By default, fields with
3098	// empty values are omitted from API requests. However, any non-pointer,
3099	// non-interface field appearing in ForceSendFields will be sent to the
3100	// server regardless of whether the field is empty or not. This may be
3101	// used to include empty fields in Patch requests.
3102	ForceSendFields []string `json:"-"`
3103
3104	// NullFields is a list of field names (e.g. "Origins") to include in
3105	// API requests with the JSON null value. By default, fields with empty
3106	// values are omitted from API requests. However, any field with an
3107	// empty value appearing in NullFields will be sent to the server as
3108	// null. It is an error if a field in this list has a non-empty value.
3109	// This may be used to include null fields in Patch requests.
3110	NullFields []string `json:"-"`
3111}
3112
3113func (s *AuthenticationPolicy) MarshalJSON() ([]byte, error) {
3114	type NoMethod AuthenticationPolicy
3115	raw := NoMethod(*s)
3116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3117}
3118
3119// AuthorizationConfig: [Deprecated] Authorization configuration
3120// provides service-level and method-level access control for a service.
3121// control for a service.
3122type AuthorizationConfig struct {
3123	// Policies: List of RbacPolicies.
3124	Policies []*RbacPolicy `json:"policies,omitempty"`
3125
3126	// ForceSendFields is a list of field names (e.g. "Policies") to
3127	// unconditionally include in API requests. By default, fields with
3128	// empty values are omitted from API requests. However, any non-pointer,
3129	// non-interface field appearing in ForceSendFields will be sent to the
3130	// server regardless of whether the field is empty or not. This may be
3131	// used to include empty fields in Patch requests.
3132	ForceSendFields []string `json:"-"`
3133
3134	// NullFields is a list of field names (e.g. "Policies") to include in
3135	// API requests with the JSON null value. By default, fields with empty
3136	// values are omitted from API requests. However, any field with an
3137	// empty value appearing in NullFields will be sent to the server as
3138	// null. It is an error if a field in this list has a non-empty value.
3139	// This may be used to include null fields in Patch requests.
3140	NullFields []string `json:"-"`
3141}
3142
3143func (s *AuthorizationConfig) MarshalJSON() ([]byte, error) {
3144	type NoMethod AuthorizationConfig
3145	raw := NoMethod(*s)
3146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3147}
3148
3149// AuthorizationLoggingOptions: Authorization-related information used
3150// by Cloud Audit Logging.
3151type AuthorizationLoggingOptions struct {
3152	// PermissionType: The type of the permission that was checked.
3153	//
3154	// Possible values:
3155	//   "ADMIN_READ"
3156	//   "ADMIN_WRITE"
3157	//   "DATA_READ"
3158	//   "DATA_WRITE"
3159	//   "PERMISSION_TYPE_UNSPECIFIED"
3160	PermissionType string `json:"permissionType,omitempty"`
3161
3162	// ForceSendFields is a list of field names (e.g. "PermissionType") to
3163	// unconditionally include in API requests. By default, fields with
3164	// empty values are omitted from API requests. However, any non-pointer,
3165	// non-interface field appearing in ForceSendFields will be sent to the
3166	// server regardless of whether the field is empty or not. This may be
3167	// used to include empty fields in Patch requests.
3168	ForceSendFields []string `json:"-"`
3169
3170	// NullFields is a list of field names (e.g. "PermissionType") to
3171	// include in API requests with the JSON null value. By default, fields
3172	// with empty values are omitted from API requests. However, any field
3173	// with an empty value appearing in NullFields will be sent to the
3174	// server as null. It is an error if a field in this list has a
3175	// non-empty value. This may be used to include null fields in Patch
3176	// requests.
3177	NullFields []string `json:"-"`
3178}
3179
3180func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
3181	type NoMethod AuthorizationLoggingOptions
3182	raw := NoMethod(*s)
3183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3184}
3185
3186// Autoscaler: Represents an Autoscaler resource.
3187//
3188// Google Compute Engine has two Autoscaler resources:
3189//
3190// * [Global](/compute/docs/reference/rest/{$api_version}/autoscalers) *
3191// [Regional](/compute/docs/reference/rest/{$api_version}/regionAutoscale
3192// rs)
3193//
3194// Use autoscalers to automatically add or delete instances from a
3195// managed instance group according to your defined autoscaling policy.
3196// For more information, read Autoscaling Groups of Instances.
3197//
3198// For zonal managed instance groups resource, use the autoscaler
3199// resource.
3200//
3201// For regional managed instance groups, use the regionAutoscalers
3202// resource. (== resource_for {$api_version}.autoscalers ==) (==
3203// resource_for {$api_version}.regionAutoscalers ==)
3204type Autoscaler struct {
3205	// AutoscalingPolicy: The configuration parameters for the autoscaling
3206	// algorithm. You can define one or more of the policies for an
3207	// autoscaler: cpuUtilization, customMetricUtilizations, and
3208	// loadBalancingUtilization.
3209	//
3210	// If none of these are specified, the default will be to autoscale
3211	// based on cpuUtilization to 0.6 or 60%.
3212	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
3213
3214	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3215	// format.
3216	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3217
3218	// Description: An optional description of this resource. Provide this
3219	// property when you create the resource.
3220	Description string `json:"description,omitempty"`
3221
3222	// Id: [Output Only] The unique identifier for the resource. This
3223	// identifier is defined by the server.
3224	Id uint64 `json:"id,omitempty,string"`
3225
3226	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
3227	// for autoscalers.
3228	Kind string `json:"kind,omitempty"`
3229
3230	// Name: Name of the resource. Provided by the client when the resource
3231	// is created. The name must be 1-63 characters long, and comply with
3232	// RFC1035. Specifically, the name must be 1-63 characters long and
3233	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3234	// the first character must be a lowercase letter, and all following
3235	// characters must be a dash, lowercase letter, or digit, except the
3236	// last character, which cannot be a dash.
3237	Name string `json:"name,omitempty"`
3238
3239	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3240	// instances) computed by autoscaler. Autoscaler calculates recommended
3241	// MIG size even when autoscaling policy mode is different from ON. This
3242	// field is empty when autoscaler is not connected to the existing
3243	// managed instance group or autoscaler did not generate its prediction.
3244	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3245
3246	// Region: [Output Only] URL of the region where the instance group
3247	// resides (for autoscalers living in regional scope).
3248	Region string `json:"region,omitempty"`
3249
3250	// SelfLink: [Output Only] Server-defined URL for the resource.
3251	SelfLink string `json:"selfLink,omitempty"`
3252
3253	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
3254	// with the resource id.
3255	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
3256
3257	// Status: [Output Only] The status of the autoscaler configuration.
3258	// Current set of possible values:
3259	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
3260	//
3261	// - DELETING: Configuration is being deleted.
3262	// - ACTIVE: Configuration is acknowledged to be effective. Some
3263	// warnings might be present in the statusDetails field.
3264	// - ERROR: Configuration has errors. Actionable for users. Details are
3265	// present in the statusDetails field.  New values might be added in the
3266	// future.
3267	//
3268	// Possible values:
3269	//   "ACTIVE"
3270	//   "DELETING"
3271	//   "ERROR"
3272	//   "PENDING"
3273	Status string `json:"status,omitempty"`
3274
3275	// StatusDetails: [Output Only] Human-readable details about the current
3276	// state of the autoscaler. Read the documentation for Commonly returned
3277	// status messages for examples of status messages you might encounter.
3278	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3279
3280	// Target: URL of the managed instance group that this autoscaler will
3281	// scale.
3282	Target string `json:"target,omitempty"`
3283
3284	// Zone: [Output Only] URL of the zone where the instance group resides
3285	// (for autoscalers living in zonal scope).
3286	Zone string `json:"zone,omitempty"`
3287
3288	// ServerResponse contains the HTTP response code and headers from the
3289	// server.
3290	googleapi.ServerResponse `json:"-"`
3291
3292	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3293	// to unconditionally include in API requests. By default, fields with
3294	// empty values are omitted from API requests. However, any non-pointer,
3295	// non-interface field appearing in ForceSendFields will be sent to the
3296	// server regardless of whether the field is empty or not. This may be
3297	// used to include empty fields in Patch requests.
3298	ForceSendFields []string `json:"-"`
3299
3300	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3301	// include in API requests with the JSON null value. By default, fields
3302	// with empty values are omitted from API requests. However, any field
3303	// with an empty value appearing in NullFields will be sent to the
3304	// server as null. It is an error if a field in this list has a
3305	// non-empty value. This may be used to include null fields in Patch
3306	// requests.
3307	NullFields []string `json:"-"`
3308}
3309
3310func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3311	type NoMethod Autoscaler
3312	raw := NoMethod(*s)
3313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3314}
3315
3316type AutoscalerAggregatedList struct {
3317	// Id: [Output Only] Unique identifier for the resource; defined by the
3318	// server.
3319	Id string `json:"id,omitempty"`
3320
3321	// Items: A list of AutoscalersScopedList resources.
3322	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3323
3324	// Kind: [Output Only] Type of resource. Always
3325	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3326	Kind string `json:"kind,omitempty"`
3327
3328	// NextPageToken: [Output Only] This token allows you to get the next
3329	// page of results for list requests. If the number of results is larger
3330	// than maxResults, use the nextPageToken as a value for the query
3331	// parameter pageToken in the next list request. Subsequent list
3332	// requests will have their own nextPageToken to continue paging through
3333	// the results.
3334	NextPageToken string `json:"nextPageToken,omitempty"`
3335
3336	// SelfLink: [Output Only] Server-defined URL for this resource.
3337	SelfLink string `json:"selfLink,omitempty"`
3338
3339	// Unreachables: [Output Only] Unreachable resources.
3340	Unreachables []string `json:"unreachables,omitempty"`
3341
3342	// Warning: [Output Only] Informational warning message.
3343	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3344
3345	// ServerResponse contains the HTTP response code and headers from the
3346	// server.
3347	googleapi.ServerResponse `json:"-"`
3348
3349	// ForceSendFields is a list of field names (e.g. "Id") to
3350	// unconditionally include in API requests. By default, fields with
3351	// empty values are omitted from API requests. However, any non-pointer,
3352	// non-interface field appearing in ForceSendFields will be sent to the
3353	// server regardless of whether the field is empty or not. This may be
3354	// used to include empty fields in Patch requests.
3355	ForceSendFields []string `json:"-"`
3356
3357	// NullFields is a list of field names (e.g. "Id") to include in API
3358	// requests with the JSON null value. By default, fields with empty
3359	// values are omitted from API requests. However, any field with an
3360	// empty value appearing in NullFields will be sent to the server as
3361	// null. It is an error if a field in this list has a non-empty value.
3362	// This may be used to include null fields in Patch requests.
3363	NullFields []string `json:"-"`
3364}
3365
3366func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3367	type NoMethod AutoscalerAggregatedList
3368	raw := NoMethod(*s)
3369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3370}
3371
3372// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3373// message.
3374type AutoscalerAggregatedListWarning struct {
3375	// Code: [Output Only] A warning code, if applicable. For example,
3376	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3377	// the response.
3378	//
3379	// Possible values:
3380	//   "CLEANUP_FAILED"
3381	//   "DEPRECATED_RESOURCE_USED"
3382	//   "DEPRECATED_TYPE_USED"
3383	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3384	//   "EXPERIMENTAL_TYPE_USED"
3385	//   "EXTERNAL_API_WARNING"
3386	//   "FIELD_VALUE_OVERRIDEN"
3387	//   "INJECTED_KERNELS_DEPRECATED"
3388	//   "MISSING_TYPE_DEPENDENCY"
3389	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3390	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3391	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3392	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3393	//   "NEXT_HOP_NOT_RUNNING"
3394	//   "NOT_CRITICAL_ERROR"
3395	//   "NO_RESULTS_ON_PAGE"
3396	//   "PARTIAL_SUCCESS"
3397	//   "REQUIRED_TOS_AGREEMENT"
3398	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3399	//   "RESOURCE_NOT_DELETED"
3400	//   "SCHEMA_VALIDATION_IGNORED"
3401	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3402	//   "UNDECLARED_PROPERTIES"
3403	//   "UNREACHABLE"
3404	Code string `json:"code,omitempty"`
3405
3406	// Data: [Output Only] Metadata about this warning in key: value format.
3407	// For example:
3408	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3409	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3410
3411	// Message: [Output Only] A human-readable description of the warning
3412	// code.
3413	Message string `json:"message,omitempty"`
3414
3415	// ForceSendFields is a list of field names (e.g. "Code") to
3416	// unconditionally include in API requests. By default, fields with
3417	// empty values are omitted from API requests. However, any non-pointer,
3418	// non-interface field appearing in ForceSendFields will be sent to the
3419	// server regardless of whether the field is empty or not. This may be
3420	// used to include empty fields in Patch requests.
3421	ForceSendFields []string `json:"-"`
3422
3423	// NullFields is a list of field names (e.g. "Code") to include in API
3424	// requests with the JSON null value. By default, fields with empty
3425	// values are omitted from API requests. However, any field with an
3426	// empty value appearing in NullFields will be sent to the server as
3427	// null. It is an error if a field in this list has a non-empty value.
3428	// This may be used to include null fields in Patch requests.
3429	NullFields []string `json:"-"`
3430}
3431
3432func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3433	type NoMethod AutoscalerAggregatedListWarning
3434	raw := NoMethod(*s)
3435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3436}
3437
3438type AutoscalerAggregatedListWarningData struct {
3439	// Key: [Output Only] A key that provides more detail on the warning
3440	// being returned. For example, for warnings where there are no results
3441	// in a list request for a particular zone, this key might be scope and
3442	// the key value might be the zone name. Other examples might be a key
3443	// indicating a deprecated resource and a suggested replacement, or a
3444	// warning about invalid network settings (for example, if an instance
3445	// attempts to perform IP forwarding but is not enabled for IP
3446	// forwarding).
3447	Key string `json:"key,omitempty"`
3448
3449	// Value: [Output Only] A warning data value corresponding to the key.
3450	Value string `json:"value,omitempty"`
3451
3452	// ForceSendFields is a list of field names (e.g. "Key") to
3453	// unconditionally include in API requests. By default, fields with
3454	// empty values are omitted from API requests. However, any non-pointer,
3455	// non-interface field appearing in ForceSendFields will be sent to the
3456	// server regardless of whether the field is empty or not. This may be
3457	// used to include empty fields in Patch requests.
3458	ForceSendFields []string `json:"-"`
3459
3460	// NullFields is a list of field names (e.g. "Key") to include in API
3461	// requests with the JSON null value. By default, fields with empty
3462	// values are omitted from API requests. However, any field with an
3463	// empty value appearing in NullFields will be sent to the server as
3464	// null. It is an error if a field in this list has a non-empty value.
3465	// This may be used to include null fields in Patch requests.
3466	NullFields []string `json:"-"`
3467}
3468
3469func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3470	type NoMethod AutoscalerAggregatedListWarningData
3471	raw := NoMethod(*s)
3472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3473}
3474
3475// AutoscalerList: Contains a list of Autoscaler resources.
3476type AutoscalerList struct {
3477	// Id: [Output Only] Unique identifier for the resource; defined by the
3478	// server.
3479	Id string `json:"id,omitempty"`
3480
3481	// Items: A list of Autoscaler resources.
3482	Items []*Autoscaler `json:"items,omitempty"`
3483
3484	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3485	// for lists of autoscalers.
3486	Kind string `json:"kind,omitempty"`
3487
3488	// NextPageToken: [Output Only] This token allows you to get the next
3489	// page of results for list requests. If the number of results is larger
3490	// than maxResults, use the nextPageToken as a value for the query
3491	// parameter pageToken in the next list request. Subsequent list
3492	// requests will have their own nextPageToken to continue paging through
3493	// the results.
3494	NextPageToken string `json:"nextPageToken,omitempty"`
3495
3496	// SelfLink: [Output Only] Server-defined URL for this resource.
3497	SelfLink string `json:"selfLink,omitempty"`
3498
3499	// Warning: [Output Only] Informational warning message.
3500	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3501
3502	// ServerResponse contains the HTTP response code and headers from the
3503	// server.
3504	googleapi.ServerResponse `json:"-"`
3505
3506	// ForceSendFields is a list of field names (e.g. "Id") to
3507	// unconditionally include in API requests. By default, fields with
3508	// empty values are omitted from API requests. However, any non-pointer,
3509	// non-interface field appearing in ForceSendFields will be sent to the
3510	// server regardless of whether the field is empty or not. This may be
3511	// used to include empty fields in Patch requests.
3512	ForceSendFields []string `json:"-"`
3513
3514	// NullFields is a list of field names (e.g. "Id") to include in API
3515	// requests with the JSON null value. By default, fields with empty
3516	// values are omitted from API requests. However, any field with an
3517	// empty value appearing in NullFields will be sent to the server as
3518	// null. It is an error if a field in this list has a non-empty value.
3519	// This may be used to include null fields in Patch requests.
3520	NullFields []string `json:"-"`
3521}
3522
3523func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3524	type NoMethod AutoscalerList
3525	raw := NoMethod(*s)
3526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3527}
3528
3529// AutoscalerListWarning: [Output Only] Informational warning message.
3530type AutoscalerListWarning struct {
3531	// Code: [Output Only] A warning code, if applicable. For example,
3532	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3533	// the response.
3534	//
3535	// Possible values:
3536	//   "CLEANUP_FAILED"
3537	//   "DEPRECATED_RESOURCE_USED"
3538	//   "DEPRECATED_TYPE_USED"
3539	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3540	//   "EXPERIMENTAL_TYPE_USED"
3541	//   "EXTERNAL_API_WARNING"
3542	//   "FIELD_VALUE_OVERRIDEN"
3543	//   "INJECTED_KERNELS_DEPRECATED"
3544	//   "MISSING_TYPE_DEPENDENCY"
3545	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3546	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3547	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3548	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3549	//   "NEXT_HOP_NOT_RUNNING"
3550	//   "NOT_CRITICAL_ERROR"
3551	//   "NO_RESULTS_ON_PAGE"
3552	//   "PARTIAL_SUCCESS"
3553	//   "REQUIRED_TOS_AGREEMENT"
3554	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3555	//   "RESOURCE_NOT_DELETED"
3556	//   "SCHEMA_VALIDATION_IGNORED"
3557	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3558	//   "UNDECLARED_PROPERTIES"
3559	//   "UNREACHABLE"
3560	Code string `json:"code,omitempty"`
3561
3562	// Data: [Output Only] Metadata about this warning in key: value format.
3563	// For example:
3564	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3565	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3566
3567	// Message: [Output Only] A human-readable description of the warning
3568	// code.
3569	Message string `json:"message,omitempty"`
3570
3571	// ForceSendFields is a list of field names (e.g. "Code") to
3572	// unconditionally include in API requests. By default, fields with
3573	// empty values are omitted from API requests. However, any non-pointer,
3574	// non-interface field appearing in ForceSendFields will be sent to the
3575	// server regardless of whether the field is empty or not. This may be
3576	// used to include empty fields in Patch requests.
3577	ForceSendFields []string `json:"-"`
3578
3579	// NullFields is a list of field names (e.g. "Code") to include in API
3580	// requests with the JSON null value. By default, fields with empty
3581	// values are omitted from API requests. However, any field with an
3582	// empty value appearing in NullFields will be sent to the server as
3583	// null. It is an error if a field in this list has a non-empty value.
3584	// This may be used to include null fields in Patch requests.
3585	NullFields []string `json:"-"`
3586}
3587
3588func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3589	type NoMethod AutoscalerListWarning
3590	raw := NoMethod(*s)
3591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3592}
3593
3594type AutoscalerListWarningData struct {
3595	// Key: [Output Only] A key that provides more detail on the warning
3596	// being returned. For example, for warnings where there are no results
3597	// in a list request for a particular zone, this key might be scope and
3598	// the key value might be the zone name. Other examples might be a key
3599	// indicating a deprecated resource and a suggested replacement, or a
3600	// warning about invalid network settings (for example, if an instance
3601	// attempts to perform IP forwarding but is not enabled for IP
3602	// forwarding).
3603	Key string `json:"key,omitempty"`
3604
3605	// Value: [Output Only] A warning data value corresponding to the key.
3606	Value string `json:"value,omitempty"`
3607
3608	// ForceSendFields is a list of field names (e.g. "Key") to
3609	// unconditionally include in API requests. By default, fields with
3610	// empty values are omitted from API requests. However, any non-pointer,
3611	// non-interface field appearing in ForceSendFields will be sent to the
3612	// server regardless of whether the field is empty or not. This may be
3613	// used to include empty fields in Patch requests.
3614	ForceSendFields []string `json:"-"`
3615
3616	// NullFields is a list of field names (e.g. "Key") to include in API
3617	// requests with the JSON null value. By default, fields with empty
3618	// values are omitted from API requests. However, any field with an
3619	// empty value appearing in NullFields will be sent to the server as
3620	// null. It is an error if a field in this list has a non-empty value.
3621	// This may be used to include null fields in Patch requests.
3622	NullFields []string `json:"-"`
3623}
3624
3625func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3626	type NoMethod AutoscalerListWarningData
3627	raw := NoMethod(*s)
3628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3629}
3630
3631type AutoscalerStatusDetails struct {
3632	// Message: The status message.
3633	Message string `json:"message,omitempty"`
3634
3635	// Type: The type of error, warning, or notice returned. Current set of
3636	// possible values:
3637	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3638	// group are unhealthy (not in RUNNING state).
3639	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3640	// attached to the instance group.
3641	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3642	// greater than maxNumReplicas.
3643	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3644	// samples are not exported often enough to be a credible base for
3645	// autoscaling.
3646	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3647	// does not exist or does not have the necessary labels.
3648	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3649	// maxNumReplicas. This means the autoscaler cannot add or remove
3650	// instances from the instance group.
3651	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3652	// receive any data from the custom metric configured for autoscaling.
3653	//
3654	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3655	// configured to scale based on a load balancing signal but the instance
3656	// group has not received any requests from the load balancer.
3657	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3658	// instances in the group won't change automatically. The autoscaling
3659	// configuration is preserved.
3660	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up"
3661	// mode. The autoscaler can add instances but not remove any.
3662	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3663	// autoscaled because it has more than one backend service attached to
3664	// it.
3665	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3666	// the necessary resources, such as CPU or number of instances.
3667	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3668	// autoscalers: there is a resource stockout in the chosen region.
3669	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3670	// not exist.
3671	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3672	// Autoscaling does not work with an HTTP/S load balancer that has been
3673	// configured for maxRate.
3674	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3675	// resource stockout in the chosen zone. For regional autoscalers: in at
3676	// least one of the zones you're using there is a resource stockout.
3677	// New values might be added in the future. Some of the values might not
3678	// be available in all API versions.
3679	//
3680	// Possible values:
3681	//   "ALL_INSTANCES_UNHEALTHY"
3682	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3683	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3684	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3685	//   "CUSTOM_METRIC_INVALID"
3686	//   "MIN_EQUALS_MAX"
3687	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3688	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3689	//   "MODE_OFF"
3690	//   "MODE_ONLY_UP"
3691	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3692	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3693	//   "REGION_RESOURCE_STOCKOUT"
3694	//   "SCALING_TARGET_DOES_NOT_EXIST"
3695	//   "UNKNOWN"
3696	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3697	//   "ZONE_RESOURCE_STOCKOUT"
3698	Type string `json:"type,omitempty"`
3699
3700	// ForceSendFields is a list of field names (e.g. "Message") to
3701	// unconditionally include in API requests. By default, fields with
3702	// empty values are omitted from API requests. However, any non-pointer,
3703	// non-interface field appearing in ForceSendFields will be sent to the
3704	// server regardless of whether the field is empty or not. This may be
3705	// used to include empty fields in Patch requests.
3706	ForceSendFields []string `json:"-"`
3707
3708	// NullFields is a list of field names (e.g. "Message") to include in
3709	// API requests with the JSON null value. By default, fields with empty
3710	// values are omitted from API requests. However, any field with an
3711	// empty value appearing in NullFields will be sent to the server as
3712	// null. It is an error if a field in this list has a non-empty value.
3713	// This may be used to include null fields in Patch requests.
3714	NullFields []string `json:"-"`
3715}
3716
3717func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3718	type NoMethod AutoscalerStatusDetails
3719	raw := NoMethod(*s)
3720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3721}
3722
3723type AutoscalersScopedList struct {
3724	// Autoscalers: [Output Only] A list of autoscalers contained in this
3725	// scope.
3726	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3727
3728	// Warning: [Output Only] Informational warning which replaces the list
3729	// of autoscalers when the list is empty.
3730	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3731
3732	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3733	// unconditionally include in API requests. By default, fields with
3734	// empty values are omitted from API requests. However, any non-pointer,
3735	// non-interface field appearing in ForceSendFields will be sent to the
3736	// server regardless of whether the field is empty or not. This may be
3737	// used to include empty fields in Patch requests.
3738	ForceSendFields []string `json:"-"`
3739
3740	// NullFields is a list of field names (e.g. "Autoscalers") to include
3741	// in API requests with the JSON null value. By default, fields with
3742	// empty values are omitted from API requests. However, any field with
3743	// an empty value appearing in NullFields will be sent to the server as
3744	// null. It is an error if a field in this list has a non-empty value.
3745	// This may be used to include null fields in Patch requests.
3746	NullFields []string `json:"-"`
3747}
3748
3749func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3750	type NoMethod AutoscalersScopedList
3751	raw := NoMethod(*s)
3752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3753}
3754
3755// AutoscalersScopedListWarning: [Output Only] Informational warning
3756// which replaces the list of autoscalers when the list is empty.
3757type AutoscalersScopedListWarning struct {
3758	// Code: [Output Only] A warning code, if applicable. For example,
3759	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3760	// the response.
3761	//
3762	// Possible values:
3763	//   "CLEANUP_FAILED"
3764	//   "DEPRECATED_RESOURCE_USED"
3765	//   "DEPRECATED_TYPE_USED"
3766	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3767	//   "EXPERIMENTAL_TYPE_USED"
3768	//   "EXTERNAL_API_WARNING"
3769	//   "FIELD_VALUE_OVERRIDEN"
3770	//   "INJECTED_KERNELS_DEPRECATED"
3771	//   "MISSING_TYPE_DEPENDENCY"
3772	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3773	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3774	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3775	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3776	//   "NEXT_HOP_NOT_RUNNING"
3777	//   "NOT_CRITICAL_ERROR"
3778	//   "NO_RESULTS_ON_PAGE"
3779	//   "PARTIAL_SUCCESS"
3780	//   "REQUIRED_TOS_AGREEMENT"
3781	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3782	//   "RESOURCE_NOT_DELETED"
3783	//   "SCHEMA_VALIDATION_IGNORED"
3784	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3785	//   "UNDECLARED_PROPERTIES"
3786	//   "UNREACHABLE"
3787	Code string `json:"code,omitempty"`
3788
3789	// Data: [Output Only] Metadata about this warning in key: value format.
3790	// For example:
3791	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3792	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3793
3794	// Message: [Output Only] A human-readable description of the warning
3795	// code.
3796	Message string `json:"message,omitempty"`
3797
3798	// ForceSendFields is a list of field names (e.g. "Code") to
3799	// unconditionally include in API requests. By default, fields with
3800	// empty values are omitted from API requests. However, any non-pointer,
3801	// non-interface field appearing in ForceSendFields will be sent to the
3802	// server regardless of whether the field is empty or not. This may be
3803	// used to include empty fields in Patch requests.
3804	ForceSendFields []string `json:"-"`
3805
3806	// NullFields is a list of field names (e.g. "Code") to include in API
3807	// requests with the JSON null value. By default, fields with empty
3808	// values are omitted from API requests. However, any field with an
3809	// empty value appearing in NullFields will be sent to the server as
3810	// null. It is an error if a field in this list has a non-empty value.
3811	// This may be used to include null fields in Patch requests.
3812	NullFields []string `json:"-"`
3813}
3814
3815func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3816	type NoMethod AutoscalersScopedListWarning
3817	raw := NoMethod(*s)
3818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3819}
3820
3821type AutoscalersScopedListWarningData struct {
3822	// Key: [Output Only] A key that provides more detail on the warning
3823	// being returned. For example, for warnings where there are no results
3824	// in a list request for a particular zone, this key might be scope and
3825	// the key value might be the zone name. Other examples might be a key
3826	// indicating a deprecated resource and a suggested replacement, or a
3827	// warning about invalid network settings (for example, if an instance
3828	// attempts to perform IP forwarding but is not enabled for IP
3829	// forwarding).
3830	Key string `json:"key,omitempty"`
3831
3832	// Value: [Output Only] A warning data value corresponding to the key.
3833	Value string `json:"value,omitempty"`
3834
3835	// ForceSendFields is a list of field names (e.g. "Key") to
3836	// unconditionally include in API requests. By default, fields with
3837	// empty values are omitted from API requests. However, any non-pointer,
3838	// non-interface field appearing in ForceSendFields will be sent to the
3839	// server regardless of whether the field is empty or not. This may be
3840	// used to include empty fields in Patch requests.
3841	ForceSendFields []string `json:"-"`
3842
3843	// NullFields is a list of field names (e.g. "Key") to include in API
3844	// requests with the JSON null value. By default, fields with empty
3845	// values are omitted from API requests. However, any field with an
3846	// empty value appearing in NullFields will be sent to the server as
3847	// null. It is an error if a field in this list has a non-empty value.
3848	// This may be used to include null fields in Patch requests.
3849	NullFields []string `json:"-"`
3850}
3851
3852func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3853	type NoMethod AutoscalersScopedListWarningData
3854	raw := NoMethod(*s)
3855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3856}
3857
3858// AutoscalingPolicy: Cloud Autoscaler policy.
3859type AutoscalingPolicy struct {
3860	// CoolDownPeriodSec: The number of seconds that the autoscaler should
3861	// wait before it starts collecting information from a new instance.
3862	// This prevents the autoscaler from collecting information when the
3863	// instance is initializing, during which the collected usage would not
3864	// be reliable. The default time autoscaler waits is 60
3865	// seconds.
3866	//
3867	// Virtual machine initialization times might vary because of numerous
3868	// factors. We recommend that you test how long an instance may take to
3869	// initialize. To do this, create an instance and time the startup
3870	// process.
3871	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3872
3873	// CpuUtilization: Defines the CPU utilization policy that allows the
3874	// autoscaler to scale based on the average CPU utilization of a managed
3875	// instance group.
3876	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3877
3878	// CustomMetricUtilizations: Configuration parameters of autoscaling
3879	// based on a custom metric.
3880	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3881
3882	// LoadBalancingUtilization: Configuration parameters of autoscaling
3883	// based on load balancer.
3884	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3885
3886	// MaxNumReplicas: The maximum number of instances that the autoscaler
3887	// can scale up to. This is required when creating or updating an
3888	// autoscaler. The maximum number of replicas should not be lower than
3889	// minimal number of replicas.
3890	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3891
3892	// MinNumReplicas: The minimum number of replicas that the autoscaler
3893	// can scale down to. This cannot be less than 0. If not provided,
3894	// autoscaler will choose a default value depending on maximum number of
3895	// instances allowed.
3896	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3897
3898	// Mode: Defines operating mode for this policy.
3899	//
3900	// Possible values:
3901	//   "OFF"
3902	//   "ON"
3903	//   "ONLY_SCALE_OUT"
3904	//   "ONLY_UP"
3905	Mode string `json:"mode,omitempty"`
3906
3907	// QueueBasedScaling: Configuration parameters of autoscaling based on
3908	// queuing system.
3909	QueueBasedScaling *AutoscalingPolicyQueueBasedScaling `json:"queueBasedScaling,omitempty"`
3910
3911	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
3912
3913	ScaleInControl *AutoscalingPolicyScaleInControl `json:"scaleInControl,omitempty"`
3914
3915	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3916	// to unconditionally include in API requests. By default, fields with
3917	// empty values are omitted from API requests. However, any non-pointer,
3918	// non-interface field appearing in ForceSendFields will be sent to the
3919	// server regardless of whether the field is empty or not. This may be
3920	// used to include empty fields in Patch requests.
3921	ForceSendFields []string `json:"-"`
3922
3923	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3924	// include in API requests with the JSON null value. By default, fields
3925	// with empty values are omitted from API requests. However, any field
3926	// with an empty value appearing in NullFields will be sent to the
3927	// server as null. It is an error if a field in this list has a
3928	// non-empty value. This may be used to include null fields in Patch
3929	// requests.
3930	NullFields []string `json:"-"`
3931}
3932
3933func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3934	type NoMethod AutoscalingPolicy
3935	raw := NoMethod(*s)
3936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3937}
3938
3939// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3940type AutoscalingPolicyCpuUtilization struct {
3941	// PredictiveMethod: Indicates which method of prediction is used for
3942	// CPU utilization metric, if any. Current set of possible values: *
3943	// NONE: No predictions are made based on the scaling metric when
3944	// calculating the number of VM instances. * STANDARD: Standard
3945	// predictive autoscaling predicts the future values of the scaling
3946	// metric and then scales a MIG to ensure that new VM instances are
3947	// ready in time to cover the predicted peak. New values might be added
3948	// in the future. Some of the values might not be available in all API
3949	// versions.
3950	//
3951	// Possible values:
3952	//   "NONE"
3953	//   "PREDICTIVE_METHOD_UNSPECIFIED"
3954	//   "STANDARD"
3955	PredictiveMethod string `json:"predictiveMethod,omitempty"`
3956
3957	// UtilizationTarget: The target CPU utilization that the autoscaler
3958	// should maintain. Must be a float value in the range (0, 1]. If not
3959	// specified, the default is 0.6.
3960	//
3961	// If the CPU level is below the target utilization, the autoscaler
3962	// scales down the number of instances until it reaches the minimum
3963	// number of instances you specified or until the average CPU of your
3964	// instances reaches the target utilization.
3965	//
3966	// If the average CPU is above the target utilization, the autoscaler
3967	// scales up until it reaches the maximum number of instances you
3968	// specified or until the average utilization reaches the target
3969	// utilization.
3970	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3971
3972	// ForceSendFields is a list of field names (e.g. "PredictiveMethod") to
3973	// unconditionally include in API requests. By default, fields with
3974	// empty values are omitted from API requests. However, any non-pointer,
3975	// non-interface field appearing in ForceSendFields will be sent to the
3976	// server regardless of whether the field is empty or not. This may be
3977	// used to include empty fields in Patch requests.
3978	ForceSendFields []string `json:"-"`
3979
3980	// NullFields is a list of field names (e.g. "PredictiveMethod") to
3981	// include in API requests with the JSON null value. By default, fields
3982	// with empty values are omitted from API requests. However, any field
3983	// with an empty value appearing in NullFields will be sent to the
3984	// server as null. It is an error if a field in this list has a
3985	// non-empty value. This may be used to include null fields in Patch
3986	// requests.
3987	NullFields []string `json:"-"`
3988}
3989
3990func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3991	type NoMethod AutoscalingPolicyCpuUtilization
3992	raw := NoMethod(*s)
3993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3994}
3995
3996func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3997	type NoMethod AutoscalingPolicyCpuUtilization
3998	var s1 struct {
3999		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4000		*NoMethod
4001	}
4002	s1.NoMethod = (*NoMethod)(s)
4003	if err := json.Unmarshal(data, &s1); err != nil {
4004		return err
4005	}
4006	s.UtilizationTarget = float64(s1.UtilizationTarget)
4007	return nil
4008}
4009
4010// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
4011// policy.
4012type AutoscalingPolicyCustomMetricUtilization struct {
4013	// Filter: A filter string, compatible with a Stackdriver Monitoring
4014	// filter string for TimeSeries.list API call. This filter is used to
4015	// select a specific TimeSeries for the purpose of autoscaling and to
4016	// determine whether the metric is exporting per-instance or per-group
4017	// data.
4018	//
4019	// For the filter to be valid for autoscaling purposes, the following
4020	// rules apply:
4021	// - You can only use the AND operator for joining selectors.
4022	// - You can only use direct equality comparison operator (=) without
4023	// any functions for each selector.
4024	// - You can specify the metric in both the filter string and in the
4025	// metric field. However, if specified in both places, the metric must
4026	// be identical.
4027	// - The monitored resource type determines what kind of values are
4028	// expected for the metric. If it is a gce_instance, the autoscaler
4029	// expects the metric to include a separate TimeSeries for each instance
4030	// in a group. In such a case, you cannot filter on resource labels.
4031	// If the resource type is any other value, the autoscaler expects this
4032	// metric to contain values that apply to the entire autoscaled instance
4033	// group and resource label filtering can be performed to point
4034	// autoscaler at the correct TimeSeries to scale upon. This is called a
4035	// per-group metric for the purpose of autoscaling.
4036	//
4037	// If not specified, the type defaults to gce_instance.
4038	//
4039	// You should provide a filter that is selective enough to pick just one
4040	// TimeSeries for the autoscaled group or for each of the instances (if
4041	// you are using gce_instance resource type). If multiple TimeSeries are
4042	// returned upon the query execution, the autoscaler will sum their
4043	// respective values to obtain its scaling value.
4044	Filter string `json:"filter,omitempty"`
4045
4046	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
4047	// The metric cannot have negative values.
4048	//
4049	// The metric must have a value type of INT64 or DOUBLE.
4050	Metric string `json:"metric,omitempty"`
4051
4052	// SingleInstanceAssignment: If scaling is based on a per-group metric
4053	// value that represents the total amount of work to be done or resource
4054	// usage, set this value to an amount assigned for a single instance of
4055	// the scaled group. Autoscaler will keep the number of instances
4056	// proportional to the value of this metric, the metric itself should
4057	// not change value due to group resizing.
4058	//
4059	// A good metric to use with the target is for example
4060	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
4061	// custom metric exporting the total number of requests coming to your
4062	// instances.
4063	//
4064	// A bad example would be a metric exporting an average or median
4065	// latency, since this value can't include a chunk assignable to a
4066	// single instance, it could be better used with utilization_target
4067	// instead.
4068	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
4069
4070	// UtilizationTarget: The target value of the metric that autoscaler
4071	// should maintain. This must be a positive value. A utilization metric
4072	// scales number of virtual machines handling requests to increase or
4073	// decrease proportionally to the metric.
4074	//
4075	// For example, a good metric to use as a utilization_target is
4076	// compute.googleapis.com/instance/network/received_bytes_count. The
4077	// autoscaler will work to keep this value constant for each of the
4078	// instances.
4079	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4080
4081	// UtilizationTargetType: Defines how target utilization value is
4082	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
4083	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
4084	//
4085	// Possible values:
4086	//   "DELTA_PER_MINUTE"
4087	//   "DELTA_PER_SECOND"
4088	//   "GAUGE"
4089	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
4090
4091	// ForceSendFields is a list of field names (e.g. "Filter") to
4092	// unconditionally include in API requests. By default, fields with
4093	// empty values are omitted from API requests. However, any non-pointer,
4094	// non-interface field appearing in ForceSendFields will be sent to the
4095	// server regardless of whether the field is empty or not. This may be
4096	// used to include empty fields in Patch requests.
4097	ForceSendFields []string `json:"-"`
4098
4099	// NullFields is a list of field names (e.g. "Filter") to include in API
4100	// requests with the JSON null value. By default, fields with empty
4101	// values are omitted from API requests. However, any field with an
4102	// empty value appearing in NullFields will be sent to the server as
4103	// null. It is an error if a field in this list has a non-empty value.
4104	// This may be used to include null fields in Patch requests.
4105	NullFields []string `json:"-"`
4106}
4107
4108func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
4109	type NoMethod AutoscalingPolicyCustomMetricUtilization
4110	raw := NoMethod(*s)
4111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4112}
4113
4114func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
4115	type NoMethod AutoscalingPolicyCustomMetricUtilization
4116	var s1 struct {
4117		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
4118		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
4119		*NoMethod
4120	}
4121	s1.NoMethod = (*NoMethod)(s)
4122	if err := json.Unmarshal(data, &s1); err != nil {
4123		return err
4124	}
4125	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
4126	s.UtilizationTarget = float64(s1.UtilizationTarget)
4127	return nil
4128}
4129
4130// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
4131// of autoscaling based on load balancing.
4132type AutoscalingPolicyLoadBalancingUtilization struct {
4133	// UtilizationTarget: Fraction of backend capacity utilization (set in
4134	// HTTP(S) load balancing configuration) that autoscaler should
4135	// maintain. Must be a positive float value. If not defined, the default
4136	// is 0.8.
4137	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4138
4139	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
4140	// to unconditionally include in API requests. By default, fields with
4141	// empty values are omitted from API requests. However, any non-pointer,
4142	// non-interface field appearing in ForceSendFields will be sent to the
4143	// server regardless of whether the field is empty or not. This may be
4144	// used to include empty fields in Patch requests.
4145	ForceSendFields []string `json:"-"`
4146
4147	// NullFields is a list of field names (e.g. "UtilizationTarget") to
4148	// include in API requests with the JSON null value. By default, fields
4149	// with empty values are omitted from API requests. However, any field
4150	// with an empty value appearing in NullFields will be sent to the
4151	// server as null. It is an error if a field in this list has a
4152	// non-empty value. This may be used to include null fields in Patch
4153	// requests.
4154	NullFields []string `json:"-"`
4155}
4156
4157func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
4158	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4159	raw := NoMethod(*s)
4160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4161}
4162
4163func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
4164	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4165	var s1 struct {
4166		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4167		*NoMethod
4168	}
4169	s1.NoMethod = (*NoMethod)(s)
4170	if err := json.Unmarshal(data, &s1); err != nil {
4171		return err
4172	}
4173	s.UtilizationTarget = float64(s1.UtilizationTarget)
4174	return nil
4175}
4176
4177// AutoscalingPolicyQueueBasedScaling: Configuration parameters of
4178// autoscaling based on queuing system.
4179type AutoscalingPolicyQueueBasedScaling struct {
4180	// AcceptableBacklogPerInstance: Scaling based on the average number of
4181	// tasks in the queue per each active instance. The autoscaler keeps the
4182	// average number of tasks per instance below this number, based on data
4183	// collected in the last couple of minutes. The autoscaler will also
4184	// take into account incoming tasks when calculating when to scale.
4185	AcceptableBacklogPerInstance float64 `json:"acceptableBacklogPerInstance,omitempty"`
4186
4187	// CloudPubSub: Configuration for Cloud Pub/Sub subscription queue.
4188	CloudPubSub *AutoscalingPolicyQueueBasedScalingCloudPubSub `json:"cloudPubSub,omitempty"`
4189
4190	// SingleWorkerThroughputPerSec: The scaling algorithm will also
4191	// calculate throughput estimates on its own; if you explicitly provide
4192	// this value, the autoscaler will take into account your value as well
4193	// as automatic estimates when deciding how to scale.
4194	SingleWorkerThroughputPerSec float64 `json:"singleWorkerThroughputPerSec,omitempty"`
4195
4196	// ForceSendFields is a list of field names (e.g.
4197	// "AcceptableBacklogPerInstance") to unconditionally include in API
4198	// requests. By default, fields with empty values are omitted from API
4199	// requests. However, any non-pointer, non-interface field appearing in
4200	// ForceSendFields will be sent to the server regardless of whether the
4201	// field is empty or not. This may be used to include empty fields in
4202	// Patch requests.
4203	ForceSendFields []string `json:"-"`
4204
4205	// NullFields is a list of field names (e.g.
4206	// "AcceptableBacklogPerInstance") to include in API requests with the
4207	// JSON null value. By default, fields with empty values are omitted
4208	// from API requests. However, any field with an empty value appearing
4209	// in NullFields will be sent to the server as null. It is an error if a
4210	// field in this list has a non-empty value. This may be used to include
4211	// null fields in Patch requests.
4212	NullFields []string `json:"-"`
4213}
4214
4215func (s *AutoscalingPolicyQueueBasedScaling) MarshalJSON() ([]byte, error) {
4216	type NoMethod AutoscalingPolicyQueueBasedScaling
4217	raw := NoMethod(*s)
4218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4219}
4220
4221func (s *AutoscalingPolicyQueueBasedScaling) UnmarshalJSON(data []byte) error {
4222	type NoMethod AutoscalingPolicyQueueBasedScaling
4223	var s1 struct {
4224		AcceptableBacklogPerInstance gensupport.JSONFloat64 `json:"acceptableBacklogPerInstance"`
4225		SingleWorkerThroughputPerSec gensupport.JSONFloat64 `json:"singleWorkerThroughputPerSec"`
4226		*NoMethod
4227	}
4228	s1.NoMethod = (*NoMethod)(s)
4229	if err := json.Unmarshal(data, &s1); err != nil {
4230		return err
4231	}
4232	s.AcceptableBacklogPerInstance = float64(s1.AcceptableBacklogPerInstance)
4233	s.SingleWorkerThroughputPerSec = float64(s1.SingleWorkerThroughputPerSec)
4234	return nil
4235}
4236
4237// AutoscalingPolicyQueueBasedScalingCloudPubSub: Configuration
4238// parameters for scaling based on Cloud Pub/Sub subscription queue.
4239type AutoscalingPolicyQueueBasedScalingCloudPubSub struct {
4240	// Subscription: Cloud Pub/Sub subscription used for scaling. Provide
4241	// the partial URL (starting with projects/) or just the subscription
4242	// name. The subscription must be assigned to the topic specified in
4243	// topicName and must be in a pull configuration. The subscription must
4244	// belong to the same project as the Autoscaler.
4245	Subscription string `json:"subscription,omitempty"`
4246
4247	// Topic: Cloud Pub/Sub topic used for scaling. Provide the partial URL
4248	// or partial URL (starting with projects/) or just the topic name. The
4249	// topic must belong to the same project as the Autoscaler resource.
4250	Topic string `json:"topic,omitempty"`
4251
4252	// ForceSendFields is a list of field names (e.g. "Subscription") to
4253	// unconditionally include in API requests. By default, fields with
4254	// empty values are omitted from API requests. However, any non-pointer,
4255	// non-interface field appearing in ForceSendFields will be sent to the
4256	// server regardless of whether the field is empty or not. This may be
4257	// used to include empty fields in Patch requests.
4258	ForceSendFields []string `json:"-"`
4259
4260	// NullFields is a list of field names (e.g. "Subscription") to include
4261	// in API requests with the JSON null value. By default, fields with
4262	// empty values are omitted from API requests. However, any field with
4263	// an empty value appearing in NullFields will be sent to the server as
4264	// null. It is an error if a field in this list has a non-empty value.
4265	// This may be used to include null fields in Patch requests.
4266	NullFields []string `json:"-"`
4267}
4268
4269func (s *AutoscalingPolicyQueueBasedScalingCloudPubSub) MarshalJSON() ([]byte, error) {
4270	type NoMethod AutoscalingPolicyQueueBasedScalingCloudPubSub
4271	raw := NoMethod(*s)
4272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4273}
4274
4275// AutoscalingPolicyScaleDownControl: Configuration that allows for
4276// slower scale down so that even if Autoscaler recommends an abrupt
4277// scale down of a MIG, it will be throttled as specified by the
4278// parameters below.
4279type AutoscalingPolicyScaleDownControl struct {
4280	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can
4281	// be deducted from the peak recommendation during the window autoscaler
4282	// looks at when computing recommendations. Possibly all these VMs can
4283	// be deleted at once so user service needs to be prepared to lose that
4284	// many VMs in one step.
4285	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
4286
4287	// TimeWindowSec: How long back autoscaling should look when computing
4288	// recommendations to include directives regarding slower scale down, as
4289	// described above.
4290	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4291
4292	// ForceSendFields is a list of field names (e.g.
4293	// "MaxScaledDownReplicas") to unconditionally include in API requests.
4294	// By default, fields with empty values are omitted from API requests.
4295	// However, any non-pointer, non-interface field appearing in
4296	// ForceSendFields will be sent to the server regardless of whether the
4297	// field is empty or not. This may be used to include empty fields in
4298	// Patch requests.
4299	ForceSendFields []string `json:"-"`
4300
4301	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
4302	// include in API requests with the JSON null value. By default, fields
4303	// with empty values are omitted from API requests. However, any field
4304	// with an empty value appearing in NullFields will be sent to the
4305	// server as null. It is an error if a field in this list has a
4306	// non-empty value. This may be used to include null fields in Patch
4307	// requests.
4308	NullFields []string `json:"-"`
4309}
4310
4311func (s *AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
4312	type NoMethod AutoscalingPolicyScaleDownControl
4313	raw := NoMethod(*s)
4314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4315}
4316
4317// AutoscalingPolicyScaleInControl: Configuration that allows for slower
4318// scale in so that even if Autoscaler recommends an abrupt scale in of
4319// a MIG, it will be throttled as specified by the parameters below.
4320type AutoscalingPolicyScaleInControl struct {
4321	// MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be
4322	// deducted from the peak recommendation during the window autoscaler
4323	// looks at when computing recommendations. Possibly all these VMs can
4324	// be deleted at once so user service needs to be prepared to lose that
4325	// many VMs in one step.
4326	MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"`
4327
4328	// TimeWindowSec: How long back autoscaling should look when computing
4329	// recommendations to include directives regarding slower scale in, as
4330	// described above.
4331	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4332
4333	// ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas")
4334	// to unconditionally include in API requests. By default, fields with
4335	// empty values are omitted from API requests. However, any non-pointer,
4336	// non-interface field appearing in ForceSendFields will be sent to the
4337	// server regardless of whether the field is empty or not. This may be
4338	// used to include empty fields in Patch requests.
4339	ForceSendFields []string `json:"-"`
4340
4341	// NullFields is a list of field names (e.g. "MaxScaledInReplicas") to
4342	// include in API requests with the JSON null value. By default, fields
4343	// with empty values are omitted from API requests. However, any field
4344	// with an empty value appearing in NullFields will be sent to the
4345	// server as null. It is an error if a field in this list has a
4346	// non-empty value. This may be used to include null fields in Patch
4347	// requests.
4348	NullFields []string `json:"-"`
4349}
4350
4351func (s *AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) {
4352	type NoMethod AutoscalingPolicyScaleInControl
4353	raw := NoMethod(*s)
4354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4355}
4356
4357// Backend: Message containing information of one individual backend.
4358type Backend struct {
4359	// BalancingMode: Specifies the balancing mode for the backend.
4360	//
4361	// When choosing a balancing mode, you need to consider the
4362	// loadBalancingScheme, and protocol for the backend service, as well as
4363	// the type of backend (instance group or NEG).
4364	//
4365	//
4366	// - If the load balancing mode is CONNECTION, then the load is spread
4367	// based on how many concurrent connections the backend can handle.
4368	// You can use the CONNECTION balancing mode if the protocol for the
4369	// backend service is SSL, TCP, or UDP.
4370	//
4371	// If the loadBalancingScheme for the backend service is EXTERNAL (SSL
4372	// Proxy and TCP Proxy load balancers), you must also specify exactly
4373	// one of the following parameters: maxConnections (except for regional
4374	// managed instance groups), maxConnectionsPerInstance, or
4375	// maxConnectionsPerEndpoint.
4376	//
4377	// If the loadBalancingScheme for the backend service is INTERNAL
4378	// (internal TCP/UDP load balancers), you cannot specify any additional
4379	// parameters.
4380	//
4381	// - If the load balancing mode is RATE, the load is spread based on the
4382	// rate of HTTP requests per second (RPS).
4383	// You can use the RATE balancing mode if the protocol for the backend
4384	// service is HTTP or HTTPS. You must specify exactly one of the
4385	// following parameters: maxRate (except for regional managed instance
4386	// groups), maxRatePerInstance, or maxRatePerEndpoint.
4387	//
4388	// - If the load balancing mode is UTILIZATION, the load is spread based
4389	// on the backend utilization of instances in an instance group.
4390	// You can use the UTILIZATION balancing mode if the loadBalancingScheme
4391	// of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or
4392	// INTERNAL_MANAGED and the backends are instance groups. There are no
4393	// restrictions on the backend service protocol.
4394	//
4395	// Possible values:
4396	//   "CONNECTION"
4397	//   "RATE"
4398	//   "UTILIZATION"
4399	BalancingMode string `json:"balancingMode,omitempty"`
4400
4401	// CapacityScaler: A multiplier applied to the group's maximum servicing
4402	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
4403	// 1, which means the group will serve up to 100% of its configured
4404	// capacity (depending on balancingMode). A setting of 0 means the group
4405	// is completely drained, offering 0% of its available Capacity. Valid
4406	// range is [0.0,1.0].
4407	//
4408	// This cannot be used for internal load balancing.
4409	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4410
4411	// Description: An optional description of this resource. Provide this
4412	// property when you create the resource.
4413	Description string `json:"description,omitempty"`
4414
4415	// Failover: This field designates whether this is a failover backend.
4416	// More than one failover backend can be configured for a given
4417	// BackendService.
4418	Failover bool `json:"failover,omitempty"`
4419
4420	// Group: The fully-qualified URL of an instance group or network
4421	// endpoint group (NEG) resource. The type of backend that a backend
4422	// service supports depends on the backend service's
4423	// loadBalancingScheme.
4424	//
4425	//
4426	// - When the loadBalancingScheme for the backend service is EXTERNAL,
4427	// INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either
4428	// an instance group or a NEG. The backends on the backend service must
4429	// be either all instance groups or all NEGs. You cannot mix instance
4430	// group and NEG backends on the same backend service.
4431	//
4432	//
4433	// - When the loadBalancingScheme for the backend service is INTERNAL,
4434	// the backend must be an instance group in the same region as the
4435	// backend service. NEGs are not supported.
4436	//
4437	// You must use the fully-qualified URL (starting with
4438	// https://www.googleapis.com/) to specify the instance group or NEG.
4439	// Partial URLs are not supported.
4440	Group string `json:"group,omitempty"`
4441
4442	// MaxConnections: Defines a target maximum number of simultaneous
4443	// connections that the backend can handle. Valid for network endpoint
4444	// group and instance group backends (except for regional managed
4445	// instance groups). If the backend's balancingMode is UTILIZATION, this
4446	// is an optional parameter. If the backend's balancingMode is
4447	// CONNECTION, and backend is attached to a backend service whose
4448	// loadBalancingScheme is EXTERNAL, you must specify either this
4449	// parameter, maxConnectionsPerInstance, or
4450	// maxConnectionsPerEndpoint.
4451	//
4452	// Not available if the backend's balancingMode is RATE. If the
4453	// loadBalancingScheme is INTERNAL, then maxConnections is not
4454	// supported, even though the backend requires a balancing mode of
4455	// CONNECTION.
4456	MaxConnections int64 `json:"maxConnections,omitempty"`
4457
4458	// MaxConnectionsPerEndpoint: Defines a target maximum number of
4459	// simultaneous connections for an endpoint of a NEG. This is multiplied
4460	// by the number of endpoints in the NEG to implicitly calculate a
4461	// maximum number of target maximum simultaneous connections for the
4462	// NEG. If the backend's balancingMode is CONNECTION, and the backend is
4463	// attached to a backend service whose loadBalancingScheme is EXTERNAL,
4464	// you must specify either this parameter, maxConnections, or
4465	// maxConnectionsPerInstance.
4466	//
4467	// Not available if the backend's balancingMode is RATE. Internal
4468	// TCP/UDP load balancing does not support setting
4469	// maxConnectionsPerEndpoint even though its backends require a
4470	// balancing mode of CONNECTION.
4471	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4472
4473	// MaxConnectionsPerInstance: Defines a target maximum number of
4474	// simultaneous connections for a single VM in a backend instance group.
4475	// This is multiplied by the number of instances in the instance group
4476	// to implicitly calculate a target maximum number of simultaneous
4477	// connections for the whole instance group. If the backend's
4478	// balancingMode is UTILIZATION, this is an optional parameter. If the
4479	// backend's balancingMode is CONNECTION, and backend is attached to a
4480	// backend service whose loadBalancingScheme is EXTERNAL, you must
4481	// specify either this parameter, maxConnections, or
4482	// maxConnectionsPerEndpoint.
4483	//
4484	// Not available if the backend's balancingMode is RATE. Internal
4485	// TCP/UDP load balancing does not support setting
4486	// maxConnectionsPerInstance even though its backends require a
4487	// balancing mode of CONNECTION.
4488	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4489
4490	// MaxRate: Defines a maximum number of HTTP requests per second (RPS)
4491	// that the backend can handle. Valid for network endpoint group and
4492	// instance group backends (except for regional managed instance
4493	// groups). Must not be defined if the backend is a managed instance
4494	// group that uses autoscaling based on load balancing.
4495	//
4496	// If the backend's balancingMode is UTILIZATION, this is an optional
4497	// parameter. If the backend's balancingMode is RATE, you must specify
4498	// maxRate, maxRatePerInstance, or maxRatePerEndpoint.
4499	//
4500	// Not available if the backend's balancingMode is CONNECTION.
4501	MaxRate int64 `json:"maxRate,omitempty"`
4502
4503	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4504	// (RPS) for an endpoint of a NEG. This is multiplied by the number of
4505	// endpoints in the NEG to implicitly calculate a target maximum rate
4506	// for the NEG.
4507	//
4508	// If the backend's balancingMode is RATE, you must specify either this
4509	// parameter, maxRate (except for regional managed instance groups), or
4510	// maxRatePerInstance.
4511	//
4512	// Not available if the backend's balancingMode is CONNECTION.
4513	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4514
4515	// MaxRatePerInstance: Defines a maximum target for requests per second
4516	// (RPS) for a single VM in a backend instance group. This is multiplied
4517	// by the number of instances in the instance group to implicitly
4518	// calculate a target maximum rate for the whole instance group.
4519	//
4520	// If the backend's balancingMode is UTILIZATION, this is an optional
4521	// parameter. If the backend's balancingMode is RATE, you must specify
4522	// either this parameter, maxRate (except for regional managed instance
4523	// groups), or maxRatePerEndpoint.
4524	//
4525	// Not available if the backend's balancingMode is CONNECTION.
4526	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4527
4528	// MaxUtilization: Defines the maximum average backend utilization of a
4529	// backend VM in an instance group. The valid range is [0.0, 1.0]. This
4530	// is an optional parameter if the backend's balancingMode is
4531	// UTILIZATION.
4532	//
4533	// This parameter can be used in conjunction with maxRate,
4534	// maxRatePerInstance, maxConnections (except for regional managed
4535	// instance groups), or maxConnectionsPerInstance.
4536	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4537
4538	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4539	// unconditionally include in API requests. By default, fields with
4540	// empty values are omitted from API requests. However, any non-pointer,
4541	// non-interface field appearing in ForceSendFields will be sent to the
4542	// server regardless of whether the field is empty or not. This may be
4543	// used to include empty fields in Patch requests.
4544	ForceSendFields []string `json:"-"`
4545
4546	// NullFields is a list of field names (e.g. "BalancingMode") to include
4547	// in API requests with the JSON null value. By default, fields with
4548	// empty values are omitted from API requests. However, any field with
4549	// an empty value appearing in NullFields will be sent to the server as
4550	// null. It is an error if a field in this list has a non-empty value.
4551	// This may be used to include null fields in Patch requests.
4552	NullFields []string `json:"-"`
4553}
4554
4555func (s *Backend) MarshalJSON() ([]byte, error) {
4556	type NoMethod Backend
4557	raw := NoMethod(*s)
4558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4559}
4560
4561func (s *Backend) UnmarshalJSON(data []byte) error {
4562	type NoMethod Backend
4563	var s1 struct {
4564		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4565		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4566		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4567		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4568		*NoMethod
4569	}
4570	s1.NoMethod = (*NoMethod)(s)
4571	if err := json.Unmarshal(data, &s1); err != nil {
4572		return err
4573	}
4574	s.CapacityScaler = float64(s1.CapacityScaler)
4575	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4576	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4577	s.MaxUtilization = float64(s1.MaxUtilization)
4578	return nil
4579}
4580
4581// BackendBucket: Represents a Cloud Storage Bucket resource.
4582//
4583// This Cloud Storage bucket resource is referenced by a URL map of a
4584// load balancer. For more information, read Backend Buckets.
4585type BackendBucket struct {
4586	// BucketName: Cloud Storage bucket name.
4587	BucketName string `json:"bucketName,omitempty"`
4588
4589	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4590	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4591
4592	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4593	// format.
4594	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4595
4596	// Description: An optional textual description of the resource;
4597	// provided by the client when the resource is created.
4598	Description string `json:"description,omitempty"`
4599
4600	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4601	EnableCdn bool `json:"enableCdn,omitempty"`
4602
4603	// Id: [Output Only] Unique identifier for the resource; defined by the
4604	// server.
4605	Id uint64 `json:"id,omitempty,string"`
4606
4607	// Kind: Type of the resource.
4608	Kind string `json:"kind,omitempty"`
4609
4610	// Name: Name of the resource. Provided by the client when the resource
4611	// is created. The name must be 1-63 characters long, and comply with
4612	// RFC1035. Specifically, the name must be 1-63 characters long and
4613	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4614	// the first character must be a lowercase letter, and all following
4615	// characters must be a dash, lowercase letter, or digit, except the
4616	// last character, which cannot be a dash.
4617	Name string `json:"name,omitempty"`
4618
4619	// SelfLink: [Output Only] Server-defined URL for the resource.
4620	SelfLink string `json:"selfLink,omitempty"`
4621
4622	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
4623	// with the resource id.
4624	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
4625
4626	// ServerResponse contains the HTTP response code and headers from the
4627	// server.
4628	googleapi.ServerResponse `json:"-"`
4629
4630	// ForceSendFields is a list of field names (e.g. "BucketName") to
4631	// unconditionally include in API requests. By default, fields with
4632	// empty values are omitted from API requests. However, any non-pointer,
4633	// non-interface field appearing in ForceSendFields will be sent to the
4634	// server regardless of whether the field is empty or not. This may be
4635	// used to include empty fields in Patch requests.
4636	ForceSendFields []string `json:"-"`
4637
4638	// NullFields is a list of field names (e.g. "BucketName") to include in
4639	// API requests with the JSON null value. By default, fields with empty
4640	// values are omitted from API requests. However, any field with an
4641	// empty value appearing in NullFields will be sent to the server as
4642	// null. It is an error if a field in this list has a non-empty value.
4643	// This may be used to include null fields in Patch requests.
4644	NullFields []string `json:"-"`
4645}
4646
4647func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4648	type NoMethod BackendBucket
4649	raw := NoMethod(*s)
4650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4651}
4652
4653// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4654// for a backend bucket.
4655type BackendBucketCdnPolicy struct {
4656	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4657	// signed URL request will be considered fresh. After this time period,
4658	// the response will be revalidated before being served. Defaults to 1hr
4659	// (3600s). When serving responses to signed URL requests, Cloud CDN
4660	// will internally behave as though all responses from this backend had
4661	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4662	// existing Cache-Control header. The actual headers served in responses
4663	// will not be altered.
4664	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4665
4666	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4667	// request URLs.
4668	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4669
4670	// ForceSendFields is a list of field names (e.g.
4671	// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
4672	// requests. By default, fields with empty values are omitted from API
4673	// requests. However, any non-pointer, non-interface field appearing in
4674	// ForceSendFields will be sent to the server regardless of whether the
4675	// field is empty or not. This may be used to include empty fields in
4676	// Patch requests.
4677	ForceSendFields []string `json:"-"`
4678
4679	// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
4680	// to include in API requests with the JSON null value. By default,
4681	// fields with empty values are omitted from API requests. However, any
4682	// field with an empty value appearing in NullFields will be sent to the
4683	// server as null. It is an error if a field in this list has a
4684	// non-empty value. This may be used to include null fields in Patch
4685	// requests.
4686	NullFields []string `json:"-"`
4687}
4688
4689func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4690	type NoMethod BackendBucketCdnPolicy
4691	raw := NoMethod(*s)
4692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4693}
4694
4695// BackendBucketList: Contains a list of BackendBucket resources.
4696type BackendBucketList struct {
4697	// Id: [Output Only] Unique identifier for the resource; defined by the
4698	// server.
4699	Id string `json:"id,omitempty"`
4700
4701	// Items: A list of BackendBucket resources.
4702	Items []*BackendBucket `json:"items,omitempty"`
4703
4704	// Kind: Type of resource.
4705	Kind string `json:"kind,omitempty"`
4706
4707	// NextPageToken: [Output Only] This token allows you to get the next
4708	// page of results for list requests. If the number of results is larger
4709	// than maxResults, use the nextPageToken as a value for the query
4710	// parameter pageToken in the next list request. Subsequent list
4711	// requests will have their own nextPageToken to continue paging through
4712	// the results.
4713	NextPageToken string `json:"nextPageToken,omitempty"`
4714
4715	// SelfLink: [Output Only] Server-defined URL for this resource.
4716	SelfLink string `json:"selfLink,omitempty"`
4717
4718	// Warning: [Output Only] Informational warning message.
4719	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4720
4721	// ServerResponse contains the HTTP response code and headers from the
4722	// server.
4723	googleapi.ServerResponse `json:"-"`
4724
4725	// ForceSendFields is a list of field names (e.g. "Id") to
4726	// unconditionally include in API requests. By default, fields with
4727	// empty values are omitted from API requests. However, any non-pointer,
4728	// non-interface field appearing in ForceSendFields will be sent to the
4729	// server regardless of whether the field is empty or not. This may be
4730	// used to include empty fields in Patch requests.
4731	ForceSendFields []string `json:"-"`
4732
4733	// NullFields is a list of field names (e.g. "Id") to include in API
4734	// requests with the JSON null value. By default, fields with empty
4735	// values are omitted from API requests. However, any field with an
4736	// empty value appearing in NullFields will be sent to the server as
4737	// null. It is an error if a field in this list has a non-empty value.
4738	// This may be used to include null fields in Patch requests.
4739	NullFields []string `json:"-"`
4740}
4741
4742func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4743	type NoMethod BackendBucketList
4744	raw := NoMethod(*s)
4745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4746}
4747
4748// BackendBucketListWarning: [Output Only] Informational warning
4749// message.
4750type BackendBucketListWarning struct {
4751	// Code: [Output Only] A warning code, if applicable. For example,
4752	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4753	// the response.
4754	//
4755	// Possible values:
4756	//   "CLEANUP_FAILED"
4757	//   "DEPRECATED_RESOURCE_USED"
4758	//   "DEPRECATED_TYPE_USED"
4759	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4760	//   "EXPERIMENTAL_TYPE_USED"
4761	//   "EXTERNAL_API_WARNING"
4762	//   "FIELD_VALUE_OVERRIDEN"
4763	//   "INJECTED_KERNELS_DEPRECATED"
4764	//   "MISSING_TYPE_DEPENDENCY"
4765	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4766	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4767	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4768	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4769	//   "NEXT_HOP_NOT_RUNNING"
4770	//   "NOT_CRITICAL_ERROR"
4771	//   "NO_RESULTS_ON_PAGE"
4772	//   "PARTIAL_SUCCESS"
4773	//   "REQUIRED_TOS_AGREEMENT"
4774	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4775	//   "RESOURCE_NOT_DELETED"
4776	//   "SCHEMA_VALIDATION_IGNORED"
4777	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4778	//   "UNDECLARED_PROPERTIES"
4779	//   "UNREACHABLE"
4780	Code string `json:"code,omitempty"`
4781
4782	// Data: [Output Only] Metadata about this warning in key: value format.
4783	// For example:
4784	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4785	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4786
4787	// Message: [Output Only] A human-readable description of the warning
4788	// code.
4789	Message string `json:"message,omitempty"`
4790
4791	// ForceSendFields is a list of field names (e.g. "Code") to
4792	// unconditionally include in API requests. By default, fields with
4793	// empty values are omitted from API requests. However, any non-pointer,
4794	// non-interface field appearing in ForceSendFields will be sent to the
4795	// server regardless of whether the field is empty or not. This may be
4796	// used to include empty fields in Patch requests.
4797	ForceSendFields []string `json:"-"`
4798
4799	// NullFields is a list of field names (e.g. "Code") to include in API
4800	// requests with the JSON null value. By default, fields with empty
4801	// values are omitted from API requests. However, any field with an
4802	// empty value appearing in NullFields will be sent to the server as
4803	// null. It is an error if a field in this list has a non-empty value.
4804	// This may be used to include null fields in Patch requests.
4805	NullFields []string `json:"-"`
4806}
4807
4808func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4809	type NoMethod BackendBucketListWarning
4810	raw := NoMethod(*s)
4811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4812}
4813
4814type BackendBucketListWarningData struct {
4815	// Key: [Output Only] A key that provides more detail on the warning
4816	// being returned. For example, for warnings where there are no results
4817	// in a list request for a particular zone, this key might be scope and
4818	// the key value might be the zone name. Other examples might be a key
4819	// indicating a deprecated resource and a suggested replacement, or a
4820	// warning about invalid network settings (for example, if an instance
4821	// attempts to perform IP forwarding but is not enabled for IP
4822	// forwarding).
4823	Key string `json:"key,omitempty"`
4824
4825	// Value: [Output Only] A warning data value corresponding to the key.
4826	Value string `json:"value,omitempty"`
4827
4828	// ForceSendFields is a list of field names (e.g. "Key") to
4829	// unconditionally include in API requests. By default, fields with
4830	// empty values are omitted from API requests. However, any non-pointer,
4831	// non-interface field appearing in ForceSendFields will be sent to the
4832	// server regardless of whether the field is empty or not. This may be
4833	// used to include empty fields in Patch requests.
4834	ForceSendFields []string `json:"-"`
4835
4836	// NullFields is a list of field names (e.g. "Key") to include in API
4837	// requests with the JSON null value. By default, fields with empty
4838	// values are omitted from API requests. However, any field with an
4839	// empty value appearing in NullFields will be sent to the server as
4840	// null. It is an error if a field in this list has a non-empty value.
4841	// This may be used to include null fields in Patch requests.
4842	NullFields []string `json:"-"`
4843}
4844
4845func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4846	type NoMethod BackendBucketListWarningData
4847	raw := NoMethod(*s)
4848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4849}
4850
4851// BackendService: Represents a Backend Service resource.
4852//
4853// A backend service contains configuration values for Google Cloud
4854// Platform load balancing services.
4855//
4856// Backend services in Google Compute Engine can be either regionally or
4857// globally scoped.
4858//
4859// *
4860// [Global](/compute/docs/reference/rest/{$api_version}/backendServices)
4861// *
4862// [Regional](/compute/docs/reference/rest/{$api_version}/regionBackendSe
4863// rvices)
4864//
4865// For more information, read Backend Services.
4866//
4867// (== resource_for {$api_version}.backendService ==)
4868type BackendService struct {
4869	// AffinityCookieTtlSec: If set to 0, the cookie is non-persistent and
4870	// lasts only until the end of the browser session (or equivalent). The
4871	// maximum allowed value is one day (86,400).
4872	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4873
4874	// Backends: The list of backends that serve this BackendService.
4875	Backends []*Backend `json:"backends,omitempty"`
4876
4877	// CdnPolicy: Cloud CDN configuration for this BackendService.
4878	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4879
4880	// CircuitBreakers: Settings controlling the volume of connections to a
4881	// backend service. If not set, this feature is considered
4882	// disabled.
4883	//
4884	// This field is applicable to either:
4885	// - A regional backend service with the service_protocol set to HTTP,
4886	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4887	//
4888	// - A global backend service with the load_balancing_scheme set to
4889	// INTERNAL_SELF_MANAGED.
4890	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4891
4892	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4893
4894	// ConsistentHash: Consistent Hash-based load balancing can be used to
4895	// provide soft session affinity based on HTTP headers, cookies or other
4896	// properties. This load balancing policy is applicable only for HTTP
4897	// connections. The affinity to a particular destination host will be
4898	// lost when one or more hosts are added/removed from the destination
4899	// service. This field specifies parameters that control consistent
4900	// hashing. This field is only applicable when localityLbPolicy is set
4901	// to MAGLEV or RING_HASH.
4902	//
4903	// This field is applicable to either:
4904	// - A regional backend service with the service_protocol set to HTTP,
4905	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4906	//
4907	// - A global backend service with the load_balancing_scheme set to
4908	// INTERNAL_SELF_MANAGED.
4909	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4910
4911	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4912	// format.
4913	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4914
4915	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4916	// add to proxied requests.
4917	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4918
4919	// Description: An optional description of this resource. Provide this
4920	// property when you create the resource.
4921	Description string `json:"description,omitempty"`
4922
4923	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4924	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4925	// HTTP or HTTPS.
4926	EnableCDN bool `json:"enableCDN,omitempty"`
4927
4928	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4929	// Balancing. Requires at least one backend instance group to be defined
4930	// as a backup (failover) backend.
4931	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4932
4933	// Fingerprint: Fingerprint of this resource. A hash of the contents
4934	// stored in this object. This field is used in optimistic locking. This
4935	// field will be ignored when inserting a BackendService. An up-to-date
4936	// fingerprint must be provided in order to update the BackendService,
4937	// otherwise the request will fail with error 412 conditionNotMet.
4938	//
4939	// To see the latest fingerprint, make a get() request to retrieve a
4940	// BackendService.
4941	Fingerprint string `json:"fingerprint,omitempty"`
4942
4943	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
4944	// (legacy), or httpsHealthChecks (legacy) resource for health checking
4945	// this backend service. Not all backend services support legacy health
4946	// checks. See  Load balancer guide. Currently at most one health check
4947	// can be specified. Backend services with instance group or zonal NEG
4948	// backends must have a health check. Backend services with internet NEG
4949	// backends must not have a health check. A health check must
4950	HealthChecks []string `json:"healthChecks,omitempty"`
4951
4952	Iap *BackendServiceIAP `json:"iap,omitempty"`
4953
4954	// Id: [Output Only] The unique identifier for the resource. This
4955	// identifier is defined by the server.
4956	Id uint64 `json:"id,omitempty,string"`
4957
4958	// Kind: [Output Only] Type of resource. Always compute#backendService
4959	// for backend services.
4960	Kind string `json:"kind,omitempty"`
4961
4962	// LoadBalancingScheme: Specifies the load balancer type. Choose
4963	// EXTERNAL for load balancers that receive traffic from external
4964	// clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose
4965	// INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose
4966	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4967	// for one type of load balancing cannot be used with another. For more
4968	// information, refer to Choosing a load balancer.
4969	//
4970	// Possible values:
4971	//   "EXTERNAL"
4972	//   "INTERNAL"
4973	//   "INTERNAL_MANAGED"
4974	//   "INTERNAL_SELF_MANAGED"
4975	//   "INVALID_LOAD_BALANCING_SCHEME"
4976	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4977
4978	// LocalityLbPolicy: The load balancing algorithm used within the scope
4979	// of the locality. The possible values are:
4980	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
4981	// is selected in round robin order. This is the default.
4982	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
4983	// hosts and picks the host which has fewer active requests.
4984	// - RING_HASH: The ring/modulo hash load balancer implements consistent
4985	// hashing to backends. The algorithm has the property that the
4986	// addition/removal of a host from a set of N hosts only affects 1/N of
4987	// the requests.
4988	// - RANDOM: The load balancer selects a random healthy host.
4989	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
4990	// connection metadata, i.e., connections are opened to the same address
4991	// as the destination address of the incoming connection before the
4992	// connection was redirected to the load balancer.
4993	// - MAGLEV: used as a drop in replacement for the ring hash load
4994	// balancer. Maglev is not as stable as ring hash but has faster table
4995	// lookup build times and host selection times. For more information
4996	// about Maglev, refer to https://ai.google/research/pubs/pub44824
4997	//
4998	//
4999	// This field is applicable to either:
5000	// - A regional backend service with the service_protocol set to HTTP,
5001	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5002	//
5003	// - A global backend service with the load_balancing_scheme set to
5004	// INTERNAL_SELF_MANAGED.
5005	//
5006	// If sessionAffinity is not NONE, and this field is not set to >MAGLEV
5007	// or RING_HASH, session affinity settings will not take effect.
5008	//
5009	// Possible values:
5010	//   "INVALID_LB_POLICY"
5011	//   "LEAST_REQUEST"
5012	//   "MAGLEV"
5013	//   "ORIGINAL_DESTINATION"
5014	//   "RANDOM"
5015	//   "RING_HASH"
5016	//   "ROUND_ROBIN"
5017	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
5018
5019	// LogConfig: This field denotes the logging options for the load
5020	// balancer traffic served by this backend service. If logging is
5021	// enabled, logs will be exported to Stackdriver.
5022	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
5023
5024	// Name: Name of the resource. Provided by the client when the resource
5025	// is created. The name must be 1-63 characters long, and comply with
5026	// RFC1035. Specifically, the name must be 1-63 characters long and
5027	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
5028	// the first character must be a lowercase letter, and all following
5029	// characters must be a dash, lowercase letter, or digit, except the
5030	// last character, which cannot be a dash.
5031	Name string `json:"name,omitempty"`
5032
5033	// Network: The URL of the network to which this backend service
5034	// belongs. This field can only be spcified when the load balancing
5035	// scheme is set to INTERNAL.
5036	Network string `json:"network,omitempty"`
5037
5038	// OutlierDetection: Settings controlling the eviction of unhealthy
5039	// hosts from the load balancing pool for the backend service. If not
5040	// set, this feature is considered disabled.
5041	//
5042	// This field is applicable to either:
5043	// - A regional backend service with the service_protocol set to HTTP,
5044	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5045	//
5046	// - A global backend service with the load_balancing_scheme set to
5047	// INTERNAL_SELF_MANAGED.
5048	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
5049
5050	// Port: Deprecated in favor of portName. The TCP port to connect on the
5051	// backend. The default value is 80.
5052	//
5053	// This cannot be used if the loadBalancingScheme is INTERNAL (Internal
5054	// TCP/UDP Load Balancing).
5055	Port int64 `json:"port,omitempty"`
5056
5057	// PortName: A named port on a backend instance group representing the
5058	// port for communication to the backend VMs in that group. Required
5059	// when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or
5060	// INTERNAL_SELF_MANAGED and the backends are instance groups. The named
5061	// port must be defined on each backend instance group. This parameter
5062	// has no meaning if the backends are NEGs.
5063	//
5064	//
5065	//
5066	// Must be omitted when the loadBalancingScheme is INTERNAL (Internal
5067	// TCP/UDP Load Blaancing).
5068	PortName string `json:"portName,omitempty"`
5069
5070	// Protocol: The protocol this BackendService uses to communicate with
5071	// backends.
5072	//
5073	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, or UDP. depending
5074	// on the chosen load balancer or Traffic Director configuration. Refer
5075	// to the documentation for the load balancer or for Traffic Director
5076	// for more information.
5077	//
5078	// Possible values:
5079	//   "GRPC"
5080	//   "HTTP"
5081	//   "HTTP2"
5082	//   "HTTPS"
5083	//   "SSL"
5084	//   "TCP"
5085	//   "UDP"
5086	Protocol string `json:"protocol,omitempty"`
5087
5088	// Region: [Output Only] URL of the region where the regional backend
5089	// service resides. This field is not applicable to global backend
5090	// services. You must specify this field as part of the HTTP request
5091	// URL. It is not settable as a field in the request body.
5092	Region string `json:"region,omitempty"`
5093
5094	// SecurityPolicy: [Output Only] The resource URL for the security
5095	// policy associated with this backend service.
5096	SecurityPolicy string `json:"securityPolicy,omitempty"`
5097
5098	// SecuritySettings: This field specifies the security policy that
5099	// applies to this backend service. This field is applicable to either:
5100	//
5101	// - A regional backend service with the service_protocol set to HTTP,
5102	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5103	//
5104	// - A global backend service with the load_balancing_scheme set to
5105	// INTERNAL_SELF_MANAGED.
5106	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
5107
5108	// SelfLink: [Output Only] Server-defined URL for the resource.
5109	SelfLink string `json:"selfLink,omitempty"`
5110
5111	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
5112	// with the resource id.
5113	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
5114
5115	// SessionAffinity: Type of session affinity to use. The default is
5116	// NONE. Session affinity is not applicable if the --protocol is
5117	// UDP.
5118	//
5119	// When the loadBalancingScheme is EXTERNAL, possible values are NONE,
5120	// CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the
5121	// protocol is HTTP or HTTPS.
5122	//
5123	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
5124	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
5125	//
5126	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
5127	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
5128	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
5129	//
5130	// Possible values:
5131	//   "CLIENT_IP"
5132	//   "CLIENT_IP_NO_DESTINATION"
5133	//   "CLIENT_IP_PORT_PROTO"
5134	//   "CLIENT_IP_PROTO"
5135	//   "GENERATED_COOKIE"
5136	//   "HEADER_FIELD"
5137	//   "HTTP_COOKIE"
5138	//   "NONE"
5139	SessionAffinity string `json:"sessionAffinity,omitempty"`
5140
5141	// TimeoutSec: The backend service timeout has a different meaning
5142	// depending on the type of load balancer. For more information read,
5143	// Backend service settings The default is 30 seconds.
5144	TimeoutSec int64 `json:"timeoutSec,omitempty"`
5145
5146	// ServerResponse contains the HTTP response code and headers from the
5147	// server.
5148	googleapi.ServerResponse `json:"-"`
5149
5150	// ForceSendFields is a list of field names (e.g.
5151	// "AffinityCookieTtlSec") to unconditionally include in API requests.
5152	// By default, fields with empty values are omitted from API requests.
5153	// However, any non-pointer, non-interface field appearing in
5154	// ForceSendFields will be sent to the server regardless of whether the
5155	// field is empty or not. This may be used to include empty fields in
5156	// Patch requests.
5157	ForceSendFields []string `json:"-"`
5158
5159	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
5160	// include in API requests with the JSON null value. By default, fields
5161	// with empty values are omitted from API requests. However, any field
5162	// with an empty value appearing in NullFields will be sent to the
5163	// server as null. It is an error if a field in this list has a
5164	// non-empty value. This may be used to include null fields in Patch
5165	// requests.
5166	NullFields []string `json:"-"`
5167}
5168
5169func (s *BackendService) MarshalJSON() ([]byte, error) {
5170	type NoMethod BackendService
5171	raw := NoMethod(*s)
5172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5173}
5174
5175// BackendServiceAggregatedList: Contains a list of
5176// BackendServicesScopedList.
5177type BackendServiceAggregatedList struct {
5178	// Id: [Output Only] Unique identifier for the resource; defined by the
5179	// server.
5180	Id string `json:"id,omitempty"`
5181
5182	// Items: A list of BackendServicesScopedList resources.
5183	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
5184
5185	// Kind: Type of resource.
5186	Kind string `json:"kind,omitempty"`
5187
5188	// NextPageToken: [Output Only] This token allows you to get the next
5189	// page of results for list requests. If the number of results is larger
5190	// than maxResults, use the nextPageToken as a value for the query
5191	// parameter pageToken in the next list request. Subsequent list
5192	// requests will have their own nextPageToken to continue paging through
5193	// the results.
5194	NextPageToken string `json:"nextPageToken,omitempty"`
5195
5196	// SelfLink: [Output Only] Server-defined URL for this resource.
5197	SelfLink string `json:"selfLink,omitempty"`
5198
5199	// Unreachables: [Output Only] Unreachable resources.
5200	Unreachables []string `json:"unreachables,omitempty"`
5201
5202	// Warning: [Output Only] Informational warning message.
5203	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
5204
5205	// ServerResponse contains the HTTP response code and headers from the
5206	// server.
5207	googleapi.ServerResponse `json:"-"`
5208
5209	// ForceSendFields is a list of field names (e.g. "Id") to
5210	// unconditionally include in API requests. By default, fields with
5211	// empty values are omitted from API requests. However, any non-pointer,
5212	// non-interface field appearing in ForceSendFields will be sent to the
5213	// server regardless of whether the field is empty or not. This may be
5214	// used to include empty fields in Patch requests.
5215	ForceSendFields []string `json:"-"`
5216
5217	// NullFields is a list of field names (e.g. "Id") to include in API
5218	// requests with the JSON null value. By default, fields with empty
5219	// values are omitted from API requests. However, any field with an
5220	// empty value appearing in NullFields will be sent to the server as
5221	// null. It is an error if a field in this list has a non-empty value.
5222	// This may be used to include null fields in Patch requests.
5223	NullFields []string `json:"-"`
5224}
5225
5226func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5227	type NoMethod BackendServiceAggregatedList
5228	raw := NoMethod(*s)
5229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5230}
5231
5232// BackendServiceAggregatedListWarning: [Output Only] Informational
5233// warning message.
5234type BackendServiceAggregatedListWarning struct {
5235	// Code: [Output Only] A warning code, if applicable. For example,
5236	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5237	// the response.
5238	//
5239	// Possible values:
5240	//   "CLEANUP_FAILED"
5241	//   "DEPRECATED_RESOURCE_USED"
5242	//   "DEPRECATED_TYPE_USED"
5243	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5244	//   "EXPERIMENTAL_TYPE_USED"
5245	//   "EXTERNAL_API_WARNING"
5246	//   "FIELD_VALUE_OVERRIDEN"
5247	//   "INJECTED_KERNELS_DEPRECATED"
5248	//   "MISSING_TYPE_DEPENDENCY"
5249	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5250	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5251	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5252	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5253	//   "NEXT_HOP_NOT_RUNNING"
5254	//   "NOT_CRITICAL_ERROR"
5255	//   "NO_RESULTS_ON_PAGE"
5256	//   "PARTIAL_SUCCESS"
5257	//   "REQUIRED_TOS_AGREEMENT"
5258	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5259	//   "RESOURCE_NOT_DELETED"
5260	//   "SCHEMA_VALIDATION_IGNORED"
5261	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5262	//   "UNDECLARED_PROPERTIES"
5263	//   "UNREACHABLE"
5264	Code string `json:"code,omitempty"`
5265
5266	// Data: [Output Only] Metadata about this warning in key: value format.
5267	// For example:
5268	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5269	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5270
5271	// Message: [Output Only] A human-readable description of the warning
5272	// code.
5273	Message string `json:"message,omitempty"`
5274
5275	// ForceSendFields is a list of field names (e.g. "Code") to
5276	// unconditionally include in API requests. By default, fields with
5277	// empty values are omitted from API requests. However, any non-pointer,
5278	// non-interface field appearing in ForceSendFields will be sent to the
5279	// server regardless of whether the field is empty or not. This may be
5280	// used to include empty fields in Patch requests.
5281	ForceSendFields []string `json:"-"`
5282
5283	// NullFields is a list of field names (e.g. "Code") to include in API
5284	// requests with the JSON null value. By default, fields with empty
5285	// values are omitted from API requests. However, any field with an
5286	// empty value appearing in NullFields will be sent to the server as
5287	// null. It is an error if a field in this list has a non-empty value.
5288	// This may be used to include null fields in Patch requests.
5289	NullFields []string `json:"-"`
5290}
5291
5292func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5293	type NoMethod BackendServiceAggregatedListWarning
5294	raw := NoMethod(*s)
5295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5296}
5297
5298type BackendServiceAggregatedListWarningData struct {
5299	// Key: [Output Only] A key that provides more detail on the warning
5300	// being returned. For example, for warnings where there are no results
5301	// in a list request for a particular zone, this key might be scope and
5302	// the key value might be the zone name. Other examples might be a key
5303	// indicating a deprecated resource and a suggested replacement, or a
5304	// warning about invalid network settings (for example, if an instance
5305	// attempts to perform IP forwarding but is not enabled for IP
5306	// forwarding).
5307	Key string `json:"key,omitempty"`
5308
5309	// Value: [Output Only] A warning data value corresponding to the key.
5310	Value string `json:"value,omitempty"`
5311
5312	// ForceSendFields is a list of field names (e.g. "Key") to
5313	// unconditionally include in API requests. By default, fields with
5314	// empty values are omitted from API requests. However, any non-pointer,
5315	// non-interface field appearing in ForceSendFields will be sent to the
5316	// server regardless of whether the field is empty or not. This may be
5317	// used to include empty fields in Patch requests.
5318	ForceSendFields []string `json:"-"`
5319
5320	// NullFields is a list of field names (e.g. "Key") to include in API
5321	// requests with the JSON null value. By default, fields with empty
5322	// values are omitted from API requests. However, any field with an
5323	// empty value appearing in NullFields will be sent to the server as
5324	// null. It is an error if a field in this list has a non-empty value.
5325	// This may be used to include null fields in Patch requests.
5326	NullFields []string `json:"-"`
5327}
5328
5329func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5330	type NoMethod BackendServiceAggregatedListWarningData
5331	raw := NoMethod(*s)
5332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5333}
5334
5335// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5336// for a backend service.
5337type BackendServiceCdnPolicy struct {
5338	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5339	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5340
5341	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5342	// signed URL request will be considered fresh. After this time period,
5343	// the response will be revalidated before being served. Defaults to 1hr
5344	// (3600s). When serving responses to signed URL requests, Cloud CDN
5345	// will internally behave as though all responses from this backend had
5346	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5347	// existing Cache-Control header. The actual headers served in responses
5348	// will not be altered.
5349	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5350
5351	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5352	// request URLs.
5353	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5354
5355	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
5356	// unconditionally include in API requests. By default, fields with
5357	// empty values are omitted from API requests. However, any non-pointer,
5358	// non-interface field appearing in ForceSendFields will be sent to the
5359	// server regardless of whether the field is empty or not. This may be
5360	// used to include empty fields in Patch requests.
5361	ForceSendFields []string `json:"-"`
5362
5363	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
5364	// include in API requests with the JSON null value. By default, fields
5365	// with empty values are omitted from API requests. However, any field
5366	// with an empty value appearing in NullFields will be sent to the
5367	// server as null. It is an error if a field in this list has a
5368	// non-empty value. This may be used to include null fields in Patch
5369	// requests.
5370	NullFields []string `json:"-"`
5371}
5372
5373func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5374	type NoMethod BackendServiceCdnPolicy
5375	raw := NoMethod(*s)
5376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5377}
5378
5379// BackendServiceFailoverPolicy: Applicable only to Failover for
5380// Internal TCP/UDP Load Balancing. On failover or failback, this field
5381// indicates whether connection draining will be honored. GCP has a
5382// fixed connection draining timeout of 10 minutes. A setting of true
5383// terminates existing TCP connections to the active pool during
5384// failover and failback, immediately draining traffic. A setting of
5385// false allows existing TCP connections to persist, even on VMs no
5386// longer in the active pool, for up to the duration of the connection
5387// draining timeout (10 minutes).
5388type BackendServiceFailoverPolicy struct {
5389	// DisableConnectionDrainOnFailover: This can be set to true only if the
5390	// protocol is TCP.
5391	//
5392	// The default is false.
5393	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5394
5395	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
5396	// TCP/UDP Load Balancing. If set to true, connections to the load
5397	// balancer are dropped when all primary and all backup backend VMs are
5398	// unhealthy. If set to false, connections are distributed among all
5399	// primary VMs when all primary and all backup backend VMs are
5400	// unhealthy.
5401	//
5402	// The default is false.
5403	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5404
5405	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
5406	// Balancing. The value of the field must be in the range [0, 1]. If the
5407	// value is 0, the load balancer performs a failover when the number of
5408	// healthy primary VMs equals zero. For all other values, the load
5409	// balancer performs a failover when the total number of healthy primary
5410	// VMs is less than this ratio.
5411	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5412
5413	// ForceSendFields is a list of field names (e.g.
5414	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5415	// requests. By default, fields with empty values are omitted from API
5416	// requests. However, any non-pointer, non-interface field appearing in
5417	// ForceSendFields will be sent to the server regardless of whether the
5418	// field is empty or not. This may be used to include empty fields in
5419	// Patch requests.
5420	ForceSendFields []string `json:"-"`
5421
5422	// NullFields is a list of field names (e.g.
5423	// "DisableConnectionDrainOnFailover") to include in API requests with
5424	// the JSON null value. By default, fields with empty values are omitted
5425	// from API requests. However, any field with an empty value appearing
5426	// in NullFields will be sent to the server as null. It is an error if a
5427	// field in this list has a non-empty value. This may be used to include
5428	// null fields in Patch requests.
5429	NullFields []string `json:"-"`
5430}
5431
5432func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5433	type NoMethod BackendServiceFailoverPolicy
5434	raw := NoMethod(*s)
5435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5436}
5437
5438func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5439	type NoMethod BackendServiceFailoverPolicy
5440	var s1 struct {
5441		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5442		*NoMethod
5443	}
5444	s1.NoMethod = (*NoMethod)(s)
5445	if err := json.Unmarshal(data, &s1); err != nil {
5446		return err
5447	}
5448	s.FailoverRatio = float64(s1.FailoverRatio)
5449	return nil
5450}
5451
5452type BackendServiceGroupHealth struct {
5453	// Annotations: Metadata defined as annotations on the network endpoint
5454	// group.
5455	Annotations map[string]string `json:"annotations,omitempty"`
5456
5457	// HealthStatus: Health state of the backend instances or endpoints in
5458	// requested instance or network endpoint group, determined based on
5459	// configured health checks.
5460	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5461
5462	// Kind: [Output Only] Type of resource. Always
5463	// compute#backendServiceGroupHealth for the health of backend services.
5464	Kind string `json:"kind,omitempty"`
5465
5466	// ServerResponse contains the HTTP response code and headers from the
5467	// server.
5468	googleapi.ServerResponse `json:"-"`
5469
5470	// ForceSendFields is a list of field names (e.g. "Annotations") to
5471	// unconditionally include in API requests. By default, fields with
5472	// empty values are omitted from API requests. However, any non-pointer,
5473	// non-interface field appearing in ForceSendFields will be sent to the
5474	// server regardless of whether the field is empty or not. This may be
5475	// used to include empty fields in Patch requests.
5476	ForceSendFields []string `json:"-"`
5477
5478	// NullFields is a list of field names (e.g. "Annotations") to include
5479	// in API requests with the JSON null value. By default, fields with
5480	// empty values are omitted from API requests. However, any field with
5481	// an empty value appearing in NullFields will be sent to the server as
5482	// null. It is an error if a field in this list has a non-empty value.
5483	// This may be used to include null fields in Patch requests.
5484	NullFields []string `json:"-"`
5485}
5486
5487func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5488	type NoMethod BackendServiceGroupHealth
5489	raw := NoMethod(*s)
5490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5491}
5492
5493// BackendServiceIAP: Identity-Aware Proxy
5494type BackendServiceIAP struct {
5495	Enabled bool `json:"enabled,omitempty"`
5496
5497	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5498
5499	// Oauth2ClientInfo: [Input Only] OAuth client info required to generate
5500	// client id to be used for IAP.
5501	Oauth2ClientInfo *BackendServiceIAPOAuth2ClientInfo `json:"oauth2ClientInfo,omitempty"`
5502
5503	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5504
5505	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5506	// field oauth2_client_secret above.
5507	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5508
5509	// ForceSendFields is a list of field names (e.g. "Enabled") to
5510	// unconditionally include in API requests. By default, fields with
5511	// empty values are omitted from API requests. However, any non-pointer,
5512	// non-interface field appearing in ForceSendFields will be sent to the
5513	// server regardless of whether the field is empty or not. This may be
5514	// used to include empty fields in Patch requests.
5515	ForceSendFields []string `json:"-"`
5516
5517	// NullFields is a list of field names (e.g. "Enabled") to include in
5518	// API requests with the JSON null value. By default, fields with empty
5519	// values are omitted from API requests. However, any field with an
5520	// empty value appearing in NullFields will be sent to the server as
5521	// null. It is an error if a field in this list has a non-empty value.
5522	// This may be used to include null fields in Patch requests.
5523	NullFields []string `json:"-"`
5524}
5525
5526func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5527	type NoMethod BackendServiceIAP
5528	raw := NoMethod(*s)
5529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5530}
5531
5532type BackendServiceIAPOAuth2ClientInfo struct {
5533	// ApplicationName: Application name to be used in OAuth consent screen.
5534	ApplicationName string `json:"applicationName,omitempty"`
5535
5536	// ClientName: Name of the client to be generated. Optional - If not
5537	// provided, the name will be autogenerated by the backend.
5538	ClientName string `json:"clientName,omitempty"`
5539
5540	// DeveloperEmailAddress: Developer's information to be used in OAuth
5541	// consent screen.
5542	DeveloperEmailAddress string `json:"developerEmailAddress,omitempty"`
5543
5544	// ForceSendFields is a list of field names (e.g. "ApplicationName") to
5545	// unconditionally include in API requests. By default, fields with
5546	// empty values are omitted from API requests. However, any non-pointer,
5547	// non-interface field appearing in ForceSendFields will be sent to the
5548	// server regardless of whether the field is empty or not. This may be
5549	// used to include empty fields in Patch requests.
5550	ForceSendFields []string `json:"-"`
5551
5552	// NullFields is a list of field names (e.g. "ApplicationName") to
5553	// include in API requests with the JSON null value. By default, fields
5554	// with empty values are omitted from API requests. However, any field
5555	// with an empty value appearing in NullFields will be sent to the
5556	// server as null. It is an error if a field in this list has a
5557	// non-empty value. This may be used to include null fields in Patch
5558	// requests.
5559	NullFields []string `json:"-"`
5560}
5561
5562func (s *BackendServiceIAPOAuth2ClientInfo) MarshalJSON() ([]byte, error) {
5563	type NoMethod BackendServiceIAPOAuth2ClientInfo
5564	raw := NoMethod(*s)
5565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5566}
5567
5568// BackendServiceList: Contains a list of BackendService resources.
5569type BackendServiceList struct {
5570	// Id: [Output Only] Unique identifier for the resource; defined by the
5571	// server.
5572	Id string `json:"id,omitempty"`
5573
5574	// Items: A list of BackendService resources.
5575	Items []*BackendService `json:"items,omitempty"`
5576
5577	// Kind: [Output Only] Type of resource. Always
5578	// compute#backendServiceList for lists of backend services.
5579	Kind string `json:"kind,omitempty"`
5580
5581	// NextPageToken: [Output Only] This token allows you to get the next
5582	// page of results for list requests. If the number of results is larger
5583	// than maxResults, use the nextPageToken as a value for the query
5584	// parameter pageToken in the next list request. Subsequent list
5585	// requests will have their own nextPageToken to continue paging through
5586	// the results.
5587	NextPageToken string `json:"nextPageToken,omitempty"`
5588
5589	// SelfLink: [Output Only] Server-defined URL for this resource.
5590	SelfLink string `json:"selfLink,omitempty"`
5591
5592	// Warning: [Output Only] Informational warning message.
5593	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5594
5595	// ServerResponse contains the HTTP response code and headers from the
5596	// server.
5597	googleapi.ServerResponse `json:"-"`
5598
5599	// ForceSendFields is a list of field names (e.g. "Id") to
5600	// unconditionally include in API requests. By default, fields with
5601	// empty values are omitted from API requests. However, any non-pointer,
5602	// non-interface field appearing in ForceSendFields will be sent to the
5603	// server regardless of whether the field is empty or not. This may be
5604	// used to include empty fields in Patch requests.
5605	ForceSendFields []string `json:"-"`
5606
5607	// NullFields is a list of field names (e.g. "Id") to include in API
5608	// requests with the JSON null value. By default, fields with empty
5609	// values are omitted from API requests. However, any field with an
5610	// empty value appearing in NullFields will be sent to the server as
5611	// null. It is an error if a field in this list has a non-empty value.
5612	// This may be used to include null fields in Patch requests.
5613	NullFields []string `json:"-"`
5614}
5615
5616func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5617	type NoMethod BackendServiceList
5618	raw := NoMethod(*s)
5619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5620}
5621
5622// BackendServiceListWarning: [Output Only] Informational warning
5623// message.
5624type BackendServiceListWarning struct {
5625	// Code: [Output Only] A warning code, if applicable. For example,
5626	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5627	// the response.
5628	//
5629	// Possible values:
5630	//   "CLEANUP_FAILED"
5631	//   "DEPRECATED_RESOURCE_USED"
5632	//   "DEPRECATED_TYPE_USED"
5633	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5634	//   "EXPERIMENTAL_TYPE_USED"
5635	//   "EXTERNAL_API_WARNING"
5636	//   "FIELD_VALUE_OVERRIDEN"
5637	//   "INJECTED_KERNELS_DEPRECATED"
5638	//   "MISSING_TYPE_DEPENDENCY"
5639	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5640	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5641	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5642	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5643	//   "NEXT_HOP_NOT_RUNNING"
5644	//   "NOT_CRITICAL_ERROR"
5645	//   "NO_RESULTS_ON_PAGE"
5646	//   "PARTIAL_SUCCESS"
5647	//   "REQUIRED_TOS_AGREEMENT"
5648	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5649	//   "RESOURCE_NOT_DELETED"
5650	//   "SCHEMA_VALIDATION_IGNORED"
5651	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5652	//   "UNDECLARED_PROPERTIES"
5653	//   "UNREACHABLE"
5654	Code string `json:"code,omitempty"`
5655
5656	// Data: [Output Only] Metadata about this warning in key: value format.
5657	// For example:
5658	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5659	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5660
5661	// Message: [Output Only] A human-readable description of the warning
5662	// code.
5663	Message string `json:"message,omitempty"`
5664
5665	// ForceSendFields is a list of field names (e.g. "Code") to
5666	// unconditionally include in API requests. By default, fields with
5667	// empty values are omitted from API requests. However, any non-pointer,
5668	// non-interface field appearing in ForceSendFields will be sent to the
5669	// server regardless of whether the field is empty or not. This may be
5670	// used to include empty fields in Patch requests.
5671	ForceSendFields []string `json:"-"`
5672
5673	// NullFields is a list of field names (e.g. "Code") to include in API
5674	// requests with the JSON null value. By default, fields with empty
5675	// values are omitted from API requests. However, any field with an
5676	// empty value appearing in NullFields will be sent to the server as
5677	// null. It is an error if a field in this list has a non-empty value.
5678	// This may be used to include null fields in Patch requests.
5679	NullFields []string `json:"-"`
5680}
5681
5682func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5683	type NoMethod BackendServiceListWarning
5684	raw := NoMethod(*s)
5685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5686}
5687
5688type BackendServiceListWarningData struct {
5689	// Key: [Output Only] A key that provides more detail on the warning
5690	// being returned. For example, for warnings where there are no results
5691	// in a list request for a particular zone, this key might be scope and
5692	// the key value might be the zone name. Other examples might be a key
5693	// indicating a deprecated resource and a suggested replacement, or a
5694	// warning about invalid network settings (for example, if an instance
5695	// attempts to perform IP forwarding but is not enabled for IP
5696	// forwarding).
5697	Key string `json:"key,omitempty"`
5698
5699	// Value: [Output Only] A warning data value corresponding to the key.
5700	Value string `json:"value,omitempty"`
5701
5702	// ForceSendFields is a list of field names (e.g. "Key") to
5703	// unconditionally include in API requests. By default, fields with
5704	// empty values are omitted from API requests. However, any non-pointer,
5705	// non-interface field appearing in ForceSendFields will be sent to the
5706	// server regardless of whether the field is empty or not. This may be
5707	// used to include empty fields in Patch requests.
5708	ForceSendFields []string `json:"-"`
5709
5710	// NullFields is a list of field names (e.g. "Key") to include in API
5711	// requests with the JSON null value. By default, fields with empty
5712	// values are omitted from API requests. However, any field with an
5713	// empty value appearing in NullFields will be sent to the server as
5714	// null. It is an error if a field in this list has a non-empty value.
5715	// This may be used to include null fields in Patch requests.
5716	NullFields []string `json:"-"`
5717}
5718
5719func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5720	type NoMethod BackendServiceListWarningData
5721	raw := NoMethod(*s)
5722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5723}
5724
5725// BackendServiceLogConfig: The available logging options for the load
5726// balancer traffic served by this backend service.
5727type BackendServiceLogConfig struct {
5728	// Enable: This field denotes whether to enable logging for the load
5729	// balancer traffic served by this backend service.
5730	Enable bool `json:"enable,omitempty"`
5731
5732	// SampleRate: This field can only be specified if logging is enabled
5733	// for this backend service. The value of the field must be in [0, 1].
5734	// This configures the sampling rate of requests to the load balancer
5735	// where 1.0 means all logged requests are reported and 0.0 means no
5736	// logged requests are reported. The default value is 1.0.
5737	SampleRate float64 `json:"sampleRate,omitempty"`
5738
5739	// ForceSendFields is a list of field names (e.g. "Enable") to
5740	// unconditionally include in API requests. By default, fields with
5741	// empty values are omitted from API requests. However, any non-pointer,
5742	// non-interface field appearing in ForceSendFields will be sent to the
5743	// server regardless of whether the field is empty or not. This may be
5744	// used to include empty fields in Patch requests.
5745	ForceSendFields []string `json:"-"`
5746
5747	// NullFields is a list of field names (e.g. "Enable") to include in API
5748	// requests with the JSON null value. By default, fields with empty
5749	// values are omitted from API requests. However, any field with an
5750	// empty value appearing in NullFields will be sent to the server as
5751	// null. It is an error if a field in this list has a non-empty value.
5752	// This may be used to include null fields in Patch requests.
5753	NullFields []string `json:"-"`
5754}
5755
5756func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
5757	type NoMethod BackendServiceLogConfig
5758	raw := NoMethod(*s)
5759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5760}
5761
5762func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
5763	type NoMethod BackendServiceLogConfig
5764	var s1 struct {
5765		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
5766		*NoMethod
5767	}
5768	s1.NoMethod = (*NoMethod)(s)
5769	if err := json.Unmarshal(data, &s1); err != nil {
5770		return err
5771	}
5772	s.SampleRate = float64(s1.SampleRate)
5773	return nil
5774}
5775
5776type BackendServiceReference struct {
5777	BackendService string `json:"backendService,omitempty"`
5778
5779	// ForceSendFields is a list of field names (e.g. "BackendService") to
5780	// unconditionally include in API requests. By default, fields with
5781	// empty values are omitted from API requests. However, any non-pointer,
5782	// non-interface field appearing in ForceSendFields will be sent to the
5783	// server regardless of whether the field is empty or not. This may be
5784	// used to include empty fields in Patch requests.
5785	ForceSendFields []string `json:"-"`
5786
5787	// NullFields is a list of field names (e.g. "BackendService") to
5788	// include in API requests with the JSON null value. By default, fields
5789	// with empty values are omitted from API requests. However, any field
5790	// with an empty value appearing in NullFields will be sent to the
5791	// server as null. It is an error if a field in this list has a
5792	// non-empty value. This may be used to include null fields in Patch
5793	// requests.
5794	NullFields []string `json:"-"`
5795}
5796
5797func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
5798	type NoMethod BackendServiceReference
5799	raw := NoMethod(*s)
5800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5801}
5802
5803type BackendServicesScopedList struct {
5804	// BackendServices: A list of BackendServices contained in this scope.
5805	BackendServices []*BackendService `json:"backendServices,omitempty"`
5806
5807	// Warning: Informational warning which replaces the list of backend
5808	// services when the list is empty.
5809	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
5810
5811	// ForceSendFields is a list of field names (e.g. "BackendServices") to
5812	// unconditionally include in API requests. By default, fields with
5813	// empty values are omitted from API requests. However, any non-pointer,
5814	// non-interface field appearing in ForceSendFields will be sent to the
5815	// server regardless of whether the field is empty or not. This may be
5816	// used to include empty fields in Patch requests.
5817	ForceSendFields []string `json:"-"`
5818
5819	// NullFields is a list of field names (e.g. "BackendServices") to
5820	// include in API requests with the JSON null value. By default, fields
5821	// with empty values are omitted from API requests. However, any field
5822	// with an empty value appearing in NullFields will be sent to the
5823	// server as null. It is an error if a field in this list has a
5824	// non-empty value. This may be used to include null fields in Patch
5825	// requests.
5826	NullFields []string `json:"-"`
5827}
5828
5829func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
5830	type NoMethod BackendServicesScopedList
5831	raw := NoMethod(*s)
5832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5833}
5834
5835// BackendServicesScopedListWarning: Informational warning which
5836// replaces the list of backend services when the list is empty.
5837type BackendServicesScopedListWarning struct {
5838	// Code: [Output Only] A warning code, if applicable. For example,
5839	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5840	// the response.
5841	//
5842	// Possible values:
5843	//   "CLEANUP_FAILED"
5844	//   "DEPRECATED_RESOURCE_USED"
5845	//   "DEPRECATED_TYPE_USED"
5846	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5847	//   "EXPERIMENTAL_TYPE_USED"
5848	//   "EXTERNAL_API_WARNING"
5849	//   "FIELD_VALUE_OVERRIDEN"
5850	//   "INJECTED_KERNELS_DEPRECATED"
5851	//   "MISSING_TYPE_DEPENDENCY"
5852	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5853	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5854	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5855	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5856	//   "NEXT_HOP_NOT_RUNNING"
5857	//   "NOT_CRITICAL_ERROR"
5858	//   "NO_RESULTS_ON_PAGE"
5859	//   "PARTIAL_SUCCESS"
5860	//   "REQUIRED_TOS_AGREEMENT"
5861	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5862	//   "RESOURCE_NOT_DELETED"
5863	//   "SCHEMA_VALIDATION_IGNORED"
5864	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5865	//   "UNDECLARED_PROPERTIES"
5866	//   "UNREACHABLE"
5867	Code string `json:"code,omitempty"`
5868
5869	// Data: [Output Only] Metadata about this warning in key: value format.
5870	// For example:
5871	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5872	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
5873
5874	// Message: [Output Only] A human-readable description of the warning
5875	// code.
5876	Message string `json:"message,omitempty"`
5877
5878	// ForceSendFields is a list of field names (e.g. "Code") to
5879	// unconditionally include in API requests. By default, fields with
5880	// empty values are omitted from API requests. However, any non-pointer,
5881	// non-interface field appearing in ForceSendFields will be sent to the
5882	// server regardless of whether the field is empty or not. This may be
5883	// used to include empty fields in Patch requests.
5884	ForceSendFields []string `json:"-"`
5885
5886	// NullFields is a list of field names (e.g. "Code") to include in API
5887	// requests with the JSON null value. By default, fields with empty
5888	// values are omitted from API requests. However, any field with an
5889	// empty value appearing in NullFields will be sent to the server as
5890	// null. It is an error if a field in this list has a non-empty value.
5891	// This may be used to include null fields in Patch requests.
5892	NullFields []string `json:"-"`
5893}
5894
5895func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
5896	type NoMethod BackendServicesScopedListWarning
5897	raw := NoMethod(*s)
5898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5899}
5900
5901type BackendServicesScopedListWarningData struct {
5902	// Key: [Output Only] A key that provides more detail on the warning
5903	// being returned. For example, for warnings where there are no results
5904	// in a list request for a particular zone, this key might be scope and
5905	// the key value might be the zone name. Other examples might be a key
5906	// indicating a deprecated resource and a suggested replacement, or a
5907	// warning about invalid network settings (for example, if an instance
5908	// attempts to perform IP forwarding but is not enabled for IP
5909	// forwarding).
5910	Key string `json:"key,omitempty"`
5911
5912	// Value: [Output Only] A warning data value corresponding to the key.
5913	Value string `json:"value,omitempty"`
5914
5915	// ForceSendFields is a list of field names (e.g. "Key") to
5916	// unconditionally include in API requests. By default, fields with
5917	// empty values are omitted from API requests. However, any non-pointer,
5918	// non-interface field appearing in ForceSendFields will be sent to the
5919	// server regardless of whether the field is empty or not. This may be
5920	// used to include empty fields in Patch requests.
5921	ForceSendFields []string `json:"-"`
5922
5923	// NullFields is a list of field names (e.g. "Key") to include in API
5924	// requests with the JSON null value. By default, fields with empty
5925	// values are omitted from API requests. However, any field with an
5926	// empty value appearing in NullFields will be sent to the server as
5927	// null. It is an error if a field in this list has a non-empty value.
5928	// This may be used to include null fields in Patch requests.
5929	NullFields []string `json:"-"`
5930}
5931
5932func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
5933	type NoMethod BackendServicesScopedListWarningData
5934	raw := NoMethod(*s)
5935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5936}
5937
5938type BfdPacket struct {
5939	// AuthenticationPresent: The Authentication Present bit of the BFD
5940	// packet. This is specified in section 4.1 of RFC5880
5941	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
5942
5943	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
5944	// packet. This is specified in section 4.1 of RFC5880
5945	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
5946
5947	// Demand: The demand bit of the BFD packet. This is specified in
5948	// section 4.1 of RFC5880
5949	Demand bool `json:"demand,omitempty"`
5950
5951	// Diagnostic: The diagnostic code specifies the local system's reason
5952	// for the last change in session state. This allows remote systems to
5953	// determine the reason that the previous session failed, for example.
5954	// These diagnostic codes are specified in section 4.1 of RFC5880
5955	//
5956	// Possible values:
5957	//   "ADMINISTRATIVELY_DOWN"
5958	//   "CONCATENATED_PATH_DOWN"
5959	//   "CONTROL_DETECTION_TIME_EXPIRED"
5960	//   "DIAGNOSTIC_UNSPECIFIED"
5961	//   "ECHO_FUNCTION_FAILED"
5962	//   "FORWARDING_PLANE_RESET"
5963	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5964	//   "NO_DIAGNOSTIC"
5965	//   "PATH_DOWN"
5966	//   "REVERSE_CONCATENATED_PATH_DOWN"
5967	Diagnostic string `json:"diagnostic,omitempty"`
5968
5969	// Final: The Final bit of the BFD packet. This is specified in section
5970	// 4.1 of RFC5880
5971	Final bool `json:"final,omitempty"`
5972
5973	// Length: The length of the BFD Control packet in bytes. This is
5974	// specified in section 4.1 of RFC5880
5975	Length int64 `json:"length,omitempty"`
5976
5977	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the
5978	// BFD packet. This is specified in section 4.1 of RFC5880
5979	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
5980
5981	// MinRxIntervalMs: The Required Min RX Interval value in the BFD
5982	// packet. This is specified in section 4.1 of RFC5880
5983	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
5984
5985	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet.
5986	// This is specified in section 4.1 of RFC5880
5987	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
5988
5989	// Multiplier: The detection time multiplier of the BFD packet. This is
5990	// specified in section 4.1 of RFC5880
5991	Multiplier int64 `json:"multiplier,omitempty"`
5992
5993	// Multipoint: The multipoint bit of the BFD packet. This is specified
5994	// in section 4.1 of RFC5880
5995	Multipoint bool `json:"multipoint,omitempty"`
5996
5997	// MyDiscriminator: The My Discriminator value in the BFD packet. This
5998	// is specified in section 4.1 of RFC5880
5999	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
6000
6001	// Poll: The Poll bit of the BFD packet. This is specified in section
6002	// 4.1 of RFC5880
6003	Poll bool `json:"poll,omitempty"`
6004
6005	// State: The current BFD session state as seen by the transmitting
6006	// system. These states are specified in section 4.1 of RFC5880
6007	//
6008	// Possible values:
6009	//   "ADMIN_DOWN"
6010	//   "DOWN"
6011	//   "INIT"
6012	//   "STATE_UNSPECIFIED"
6013	//   "UP"
6014	State string `json:"state,omitempty"`
6015
6016	// Version: The version number of the BFD protocol, as specified in
6017	// section 4.1 of RFC5880.
6018	Version int64 `json:"version,omitempty"`
6019
6020	// YourDiscriminator: The Your Discriminator value in the BFD packet.
6021	// This is specified in section 4.1 of RFC5880
6022	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
6023
6024	// ForceSendFields is a list of field names (e.g.
6025	// "AuthenticationPresent") to unconditionally include in API requests.
6026	// By default, fields with empty values are omitted from API requests.
6027	// However, any non-pointer, non-interface field appearing in
6028	// ForceSendFields will be sent to the server regardless of whether the
6029	// field is empty or not. This may be used to include empty fields in
6030	// Patch requests.
6031	ForceSendFields []string `json:"-"`
6032
6033	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
6034	// include in API requests with the JSON null value. By default, fields
6035	// with empty values are omitted from API requests. However, any field
6036	// with an empty value appearing in NullFields will be sent to the
6037	// server as null. It is an error if a field in this list has a
6038	// non-empty value. This may be used to include null fields in Patch
6039	// requests.
6040	NullFields []string `json:"-"`
6041}
6042
6043func (s *BfdPacket) MarshalJSON() ([]byte, error) {
6044	type NoMethod BfdPacket
6045	raw := NoMethod(*s)
6046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6047}
6048
6049// BfdStatus: Next free: 15
6050type BfdStatus struct {
6051	// BfdSessionInitializationMode: The BFD session initialization mode for
6052	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
6053	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
6054	// will wait for the peer router to initiate the BFD session for this
6055	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.
6056	//
6057	// Possible values:
6058	//   "ACTIVE"
6059	//   "DISABLED"
6060	//   "PASSIVE"
6061	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
6062
6063	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
6064	// update.
6065	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
6066
6067	// ControlPacketCounts: Control packet counts for the current BFD
6068	// session.
6069	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
6070
6071	// ControlPacketIntervals: Inter-packet time interval statistics for
6072	// control packets.
6073	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
6074
6075	// EchoPacketCounts: Echo packet counts for the current BFD session.
6076	EchoPacketCounts *BfdStatusPacketCounts `json:"echoPacketCounts,omitempty"`
6077
6078	// EchoPacketIntervals: Inter-packet time interval statistics for echo
6079	// packets.
6080	EchoPacketIntervals []*PacketIntervals `json:"echoPacketIntervals,omitempty"`
6081
6082	// LocalDiagnostic: The diagnostic code specifies the local system's
6083	// reason for the last change in session state. This allows remote
6084	// systems to determine the reason that the previous session failed, for
6085	// example. These diagnostic codes are specified in section 4.1 of
6086	// RFC5880
6087	//
6088	// Possible values:
6089	//   "ADMINISTRATIVELY_DOWN"
6090	//   "CONCATENATED_PATH_DOWN"
6091	//   "CONTROL_DETECTION_TIME_EXPIRED"
6092	//   "DIAGNOSTIC_UNSPECIFIED"
6093	//   "ECHO_FUNCTION_FAILED"
6094	//   "FORWARDING_PLANE_RESET"
6095	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
6096	//   "NO_DIAGNOSTIC"
6097	//   "PATH_DOWN"
6098	//   "REVERSE_CONCATENATED_PATH_DOWN"
6099	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
6100
6101	// LocalState: The current BFD session state as seen by the transmitting
6102	// system. These states are specified in section 4.1 of RFC5880
6103	//
6104	// Possible values:
6105	//   "ADMIN_DOWN"
6106	//   "DOWN"
6107	//   "INIT"
6108	//   "STATE_UNSPECIFIED"
6109	//   "UP"
6110	LocalState string `json:"localState,omitempty"`
6111
6112	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for
6113	// control packets.
6114	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
6115
6116	// NegotiatedLocalEchoTxIntervalMs: Negotiated transmit interval for
6117	// echo packets.
6118	NegotiatedLocalEchoTxIntervalMs int64 `json:"negotiatedLocalEchoTxIntervalMs,omitempty"`
6119
6120	// RxPacket: The most recent Rx control packet for this BFD session.
6121	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
6122
6123	// TxPacket: The most recent Tx control packet for this BFD session.
6124	TxPacket *BfdPacket `json:"txPacket,omitempty"`
6125
6126	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session
6127	// is not up.
6128	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
6129
6130	// UsingEchoMode: Indicates if echo mode is currently being used.
6131	UsingEchoMode bool `json:"usingEchoMode,omitempty"`
6132
6133	// ForceSendFields is a list of field names (e.g.
6134	// "BfdSessionInitializationMode") to unconditionally include in API
6135	// requests. By default, fields with empty values are omitted from API
6136	// requests. However, any non-pointer, non-interface field appearing in
6137	// ForceSendFields will be sent to the server regardless of whether the
6138	// field is empty or not. This may be used to include empty fields in
6139	// Patch requests.
6140	ForceSendFields []string `json:"-"`
6141
6142	// NullFields is a list of field names (e.g.
6143	// "BfdSessionInitializationMode") to include in API requests with the
6144	// JSON null value. By default, fields with empty values are omitted
6145	// from API requests. However, any field with an empty value appearing
6146	// in NullFields will be sent to the server as null. It is an error if a
6147	// field in this list has a non-empty value. This may be used to include
6148	// null fields in Patch requests.
6149	NullFields []string `json:"-"`
6150}
6151
6152func (s *BfdStatus) MarshalJSON() ([]byte, error) {
6153	type NoMethod BfdStatus
6154	raw := NoMethod(*s)
6155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6156}
6157
6158type BfdStatusPacketCounts struct {
6159	// NumRx: Number of packets received since the beginning of the current
6160	// BFD session.
6161	NumRx int64 `json:"numRx,omitempty"`
6162
6163	// NumRxRejected: Number of packets received that were rejected because
6164	// of errors since the beginning of the current BFD session.
6165	NumRxRejected int64 `json:"numRxRejected,omitempty"`
6166
6167	// NumRxSuccessful: Number of packets received that were successfully
6168	// processed since the beginning of the current BFD session.
6169	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
6170
6171	// NumTx: Number of packets transmitted since the beginning of the
6172	// current BFD session.
6173	NumTx int64 `json:"numTx,omitempty"`
6174
6175	// ForceSendFields is a list of field names (e.g. "NumRx") to
6176	// unconditionally include in API requests. By default, fields with
6177	// empty values are omitted from API requests. However, any non-pointer,
6178	// non-interface field appearing in ForceSendFields will be sent to the
6179	// server regardless of whether the field is empty or not. This may be
6180	// used to include empty fields in Patch requests.
6181	ForceSendFields []string `json:"-"`
6182
6183	// NullFields is a list of field names (e.g. "NumRx") to include in API
6184	// requests with the JSON null value. By default, fields with empty
6185	// values are omitted from API requests. However, any field with an
6186	// empty value appearing in NullFields will be sent to the server as
6187	// null. It is an error if a field in this list has a non-empty value.
6188	// This may be used to include null fields in Patch requests.
6189	NullFields []string `json:"-"`
6190}
6191
6192func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
6193	type NoMethod BfdStatusPacketCounts
6194	raw := NoMethod(*s)
6195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6196}
6197
6198// Binding: Associates `members` with a `role`.
6199type Binding struct {
6200	// Condition: The condition that is associated with this binding. NOTE:
6201	// An unsatisfied condition will not allow user access via current
6202	// binding. Different bindings, including their conditions, are examined
6203	// independently.
6204	Condition *Expr `json:"condition,omitempty"`
6205
6206	// Members: Specifies the identities requesting access for a Cloud
6207	// Platform resource. `members` can have the following values:
6208	//
6209	// * `allUsers`: A special identifier that represents anyone who is on
6210	// the internet; with or without a Google account.
6211	//
6212	// * `allAuthenticatedUsers`: A special identifier that represents
6213	// anyone who is authenticated with a Google account or a service
6214	// account.
6215	//
6216	// * `user:{emailid}`: An email address that represents a specific
6217	// Google account. For example, `alice@example.com` .
6218	//
6219	//
6220	//
6221	// * `serviceAccount:{emailid}`: An email address that represents a
6222	// service account. For example,
6223	// `my-other-app@appspot.gserviceaccount.com`.
6224	//
6225	// * `group:{emailid}`: An email address that represents a Google group.
6226	// For example, `admins@example.com`.
6227	//
6228	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
6229	// unique identifier) representing a user that has been recently
6230	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
6231	// If the user is recovered, this value reverts to `user:{emailid}` and
6232	// the recovered user retains the role in the binding.
6233	//
6234	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
6235	// (plus unique identifier) representing a service account that has been
6236	// recently deleted. For example,
6237	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
6238	// If the service account is undeleted, this value reverts to
6239	// `serviceAccount:{emailid}` and the undeleted service account retains
6240	// the role in the binding.
6241	//
6242	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
6243	// unique identifier) representing a Google group that has been recently
6244	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
6245	// If the group is recovered, this value reverts to `group:{emailid}`
6246	// and the recovered group retains the role in the binding.
6247	//
6248	//
6249	//
6250	// * `domain:{domain}`: The G Suite domain (primary) that represents all
6251	// the users of that domain. For example, `google.com` or `example.com`.
6252	Members []string `json:"members,omitempty"`
6253
6254	// Role: Role that is assigned to `members`. For example,
6255	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6256	Role string `json:"role,omitempty"`
6257
6258	// ForceSendFields is a list of field names (e.g. "Condition") to
6259	// unconditionally include in API requests. By default, fields with
6260	// empty values are omitted from API requests. However, any non-pointer,
6261	// non-interface field appearing in ForceSendFields will be sent to the
6262	// server regardless of whether the field is empty or not. This may be
6263	// used to include empty fields in Patch requests.
6264	ForceSendFields []string `json:"-"`
6265
6266	// NullFields is a list of field names (e.g. "Condition") to include in
6267	// API requests with the JSON null value. By default, fields with empty
6268	// values are omitted from API requests. However, any field with an
6269	// empty value appearing in NullFields will be sent to the server as
6270	// null. It is an error if a field in this list has a non-empty value.
6271	// This may be used to include null fields in Patch requests.
6272	NullFields []string `json:"-"`
6273}
6274
6275func (s *Binding) MarshalJSON() ([]byte, error) {
6276	type NoMethod Binding
6277	raw := NoMethod(*s)
6278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6279}
6280
6281type BulkInsertInstanceResource struct {
6282	// Count: The maximum number of instances to create.
6283	Count int64 `json:"count,omitempty,string"`
6284
6285	// ExcludedZones: List of zones to exclude for regional requests.
6286	ExcludedZones []string `json:"excludedZones,omitempty"`
6287
6288	Instance *Instance `json:"instance,omitempty"`
6289
6290	// MinCount: The minimum number of instances to create. If no min_count
6291	// is specified then count is used as the default value. If min_count
6292	// instances cannot be created, then no instances will be created.
6293	MinCount int64 `json:"minCount,omitempty,string"`
6294
6295	// PredefinedNames: List of predefined names. The number of names
6296	// provided must be equal to count.
6297	PredefinedNames []string `json:"predefinedNames,omitempty"`
6298
6299	// SourceInstanceTemplate: Specifies the instance template from which to
6300	// create the instance. This field is optional. This field is optional.
6301	// It can be a full or partial URL. For example, the following are all
6302	// valid URLs to an instance template:
6303	// -
6304	// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
6305	// - projects/project/global/instanceTemplates/instanceTemplate
6306	// - global/instanceTemplates/instanceTemplate
6307	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
6308
6309	// ForceSendFields is a list of field names (e.g. "Count") to
6310	// unconditionally include in API requests. By default, fields with
6311	// empty values are omitted from API requests. However, any non-pointer,
6312	// non-interface field appearing in ForceSendFields will be sent to the
6313	// server regardless of whether the field is empty or not. This may be
6314	// used to include empty fields in Patch requests.
6315	ForceSendFields []string `json:"-"`
6316
6317	// NullFields is a list of field names (e.g. "Count") to include in API
6318	// requests with the JSON null value. By default, fields with empty
6319	// values are omitted from API requests. However, any field with an
6320	// empty value appearing in NullFields will be sent to the server as
6321	// null. It is an error if a field in this list has a non-empty value.
6322	// This may be used to include null fields in Patch requests.
6323	NullFields []string `json:"-"`
6324}
6325
6326func (s *BulkInsertInstanceResource) MarshalJSON() ([]byte, error) {
6327	type NoMethod BulkInsertInstanceResource
6328	raw := NoMethod(*s)
6329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6330}
6331
6332type CacheInvalidationRule struct {
6333	// Host: If set, this invalidation rule will only apply to requests with
6334	// a Host header matching host.
6335	Host string `json:"host,omitempty"`
6336
6337	Path string `json:"path,omitempty"`
6338
6339	// ForceSendFields is a list of field names (e.g. "Host") to
6340	// unconditionally include in API requests. By default, fields with
6341	// empty values are omitted from API requests. However, any non-pointer,
6342	// non-interface field appearing in ForceSendFields will be sent to the
6343	// server regardless of whether the field is empty or not. This may be
6344	// used to include empty fields in Patch requests.
6345	ForceSendFields []string `json:"-"`
6346
6347	// NullFields is a list of field names (e.g. "Host") to include in API
6348	// requests with the JSON null value. By default, fields with empty
6349	// values are omitted from API requests. However, any field with an
6350	// empty value appearing in NullFields will be sent to the server as
6351	// null. It is an error if a field in this list has a non-empty value.
6352	// This may be used to include null fields in Patch requests.
6353	NullFields []string `json:"-"`
6354}
6355
6356func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6357	type NoMethod CacheInvalidationRule
6358	raw := NoMethod(*s)
6359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6360}
6361
6362// CacheKeyPolicy: Message containing what to include in the cache key
6363// for a request for Cloud CDN.
6364type CacheKeyPolicy struct {
6365	// IncludeHost: If true, requests to different hosts will be cached
6366	// separately.
6367	IncludeHost bool `json:"includeHost,omitempty"`
6368
6369	// IncludeProtocol: If true, http and https requests will be cached
6370	// separately.
6371	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6372
6373	// IncludeQueryString: If true, include query string parameters in the
6374	// cache key according to query_string_whitelist and
6375	// query_string_blacklist. If neither is set, the entire query string
6376	// will be included. If false, the query string will be excluded from
6377	// the cache key entirely.
6378	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6379
6380	// QueryStringBlacklist: Names of query string parameters to exclude in
6381	// cache keys. All other parameters will be included. Either specify
6382	// query_string_whitelist or query_string_blacklist, not both. '&' and
6383	// '=' will be percent encoded and not treated as delimiters.
6384	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6385
6386	// QueryStringWhitelist: Names of query string parameters to include in
6387	// cache keys. All other parameters will be excluded. Either specify
6388	// query_string_whitelist or query_string_blacklist, not both. '&' and
6389	// '=' will be percent encoded and not treated as delimiters.
6390	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6391
6392	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6393	// unconditionally include in API requests. By default, fields with
6394	// empty values are omitted from API requests. However, any non-pointer,
6395	// non-interface field appearing in ForceSendFields will be sent to the
6396	// server regardless of whether the field is empty or not. This may be
6397	// used to include empty fields in Patch requests.
6398	ForceSendFields []string `json:"-"`
6399
6400	// NullFields is a list of field names (e.g. "IncludeHost") to include
6401	// in API requests with the JSON null value. By default, fields with
6402	// empty values are omitted from API requests. However, any field with
6403	// an empty value appearing in NullFields will be sent to the server as
6404	// null. It is an error if a field in this list has a non-empty value.
6405	// This may be used to include null fields in Patch requests.
6406	NullFields []string `json:"-"`
6407}
6408
6409func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6410	type NoMethod CacheKeyPolicy
6411	raw := NoMethod(*s)
6412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6413}
6414
6415// CallCredentials: [Deprecated] gRPC call credentials to access the SDS
6416// server. gRPC call credentials to access the SDS server.
6417type CallCredentials struct {
6418	// CallCredentialType: The type of call credentials to use for GRPC
6419	// requests to the SDS server. This field can be set to one of the
6420	// following:
6421	// - GCE_VM: The local GCE VM service account credentials are used to
6422	// access the SDS server.
6423	// - FROM_PLUGIN: Custom authenticator credentials are used to access
6424	// the SDS server.
6425	//
6426	// Possible values:
6427	//   "FROM_PLUGIN"
6428	//   "GCE_VM"
6429	//   "INVALID"
6430	CallCredentialType string `json:"callCredentialType,omitempty"`
6431
6432	// FromPlugin: Custom authenticator credentials. Valid if
6433	// callCredentialType is FROM_PLUGIN.
6434	FromPlugin *MetadataCredentialsFromPlugin `json:"fromPlugin,omitempty"`
6435
6436	// ForceSendFields is a list of field names (e.g. "CallCredentialType")
6437	// to unconditionally include in API requests. By default, fields with
6438	// empty values are omitted from API requests. However, any non-pointer,
6439	// non-interface field appearing in ForceSendFields will be sent to the
6440	// server regardless of whether the field is empty or not. This may be
6441	// used to include empty fields in Patch requests.
6442	ForceSendFields []string `json:"-"`
6443
6444	// NullFields is a list of field names (e.g. "CallCredentialType") to
6445	// include in API requests with the JSON null value. By default, fields
6446	// with empty values are omitted from API requests. However, any field
6447	// with an empty value appearing in NullFields will be sent to the
6448	// server as null. It is an error if a field in this list has a
6449	// non-empty value. This may be used to include null fields in Patch
6450	// requests.
6451	NullFields []string `json:"-"`
6452}
6453
6454func (s *CallCredentials) MarshalJSON() ([]byte, error) {
6455	type NoMethod CallCredentials
6456	raw := NoMethod(*s)
6457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6458}
6459
6460// ChannelCredentials: [Deprecated] gRPC channel credentials to access
6461// the SDS server. gRPC channel credentials to access the SDS server.
6462type ChannelCredentials struct {
6463	// Certificates: The call credentials to access the SDS server.
6464	Certificates *TlsCertificatePaths `json:"certificates,omitempty"`
6465
6466	// ChannelCredentialType: The channel credentials to access the SDS
6467	// server. This field can be set to one of the following: CERTIFICATES:
6468	// Use TLS certificates to access the SDS server. GCE_VM: Use local GCE
6469	// VM credentials to access the SDS server.
6470	//
6471	// Possible values:
6472	//   "CERTIFICATES"
6473	//   "GCE_VM"
6474	//   "INVALID"
6475	ChannelCredentialType string `json:"channelCredentialType,omitempty"`
6476
6477	// ForceSendFields is a list of field names (e.g. "Certificates") to
6478	// unconditionally include in API requests. By default, fields with
6479	// empty values are omitted from API requests. However, any non-pointer,
6480	// non-interface field appearing in ForceSendFields will be sent to the
6481	// server regardless of whether the field is empty or not. This may be
6482	// used to include empty fields in Patch requests.
6483	ForceSendFields []string `json:"-"`
6484
6485	// NullFields is a list of field names (e.g. "Certificates") to include
6486	// in API requests with the JSON null value. By default, fields with
6487	// empty values are omitted from API requests. However, any field with
6488	// an empty value appearing in NullFields will be sent to the server as
6489	// null. It is an error if a field in this list has a non-empty value.
6490	// This may be used to include null fields in Patch requests.
6491	NullFields []string `json:"-"`
6492}
6493
6494func (s *ChannelCredentials) MarshalJSON() ([]byte, error) {
6495	type NoMethod ChannelCredentials
6496	raw := NoMethod(*s)
6497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6498}
6499
6500// CircuitBreakers: Settings controlling the volume of connections to a
6501// backend service.
6502type CircuitBreakers struct {
6503	// ConnectTimeout: The timeout for new network connections to hosts.
6504	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
6505
6506	// MaxConnections: The maximum number of connections to the backend
6507	// service. If not specified, there is no limit.
6508	MaxConnections int64 `json:"maxConnections,omitempty"`
6509
6510	// MaxPendingRequests: The maximum number of pending requests allowed to
6511	// the backend service. If not specified, there is no limit.
6512	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6513
6514	// MaxRequests: The maximum number of parallel requests that allowed to
6515	// the backend service. If not specified, there is no limit.
6516	MaxRequests int64 `json:"maxRequests,omitempty"`
6517
6518	// MaxRequestsPerConnection: Maximum requests for a single connection to
6519	// the backend service. This parameter is respected by both the HTTP/1.1
6520	// and HTTP/2 implementations. If not specified, there is no limit.
6521	// Setting this parameter to 1 will effectively disable keep alive.
6522	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6523
6524	// MaxRetries: The maximum number of parallel retries allowed to the
6525	// backend cluster. If not specified, the default is 1.
6526	MaxRetries int64 `json:"maxRetries,omitempty"`
6527
6528	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
6529	// unconditionally include in API requests. By default, fields with
6530	// empty values are omitted from API requests. However, any non-pointer,
6531	// non-interface field appearing in ForceSendFields will be sent to the
6532	// server regardless of whether the field is empty or not. This may be
6533	// used to include empty fields in Patch requests.
6534	ForceSendFields []string `json:"-"`
6535
6536	// NullFields is a list of field names (e.g. "ConnectTimeout") to
6537	// include in API requests with the JSON null value. By default, fields
6538	// with empty values are omitted from API requests. However, any field
6539	// with an empty value appearing in NullFields will be sent to the
6540	// server as null. It is an error if a field in this list has a
6541	// non-empty value. This may be used to include null fields in Patch
6542	// requests.
6543	NullFields []string `json:"-"`
6544}
6545
6546func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6547	type NoMethod CircuitBreakers
6548	raw := NoMethod(*s)
6549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6550}
6551
6552// ClientTlsSettings: [Deprecated] The client side authentication
6553// settings for connection originating from the backend service. the
6554// backend service.
6555type ClientTlsSettings struct {
6556	// ClientTlsContext: Configures the mechanism to obtain client-side
6557	// security certificates and identity information. This field is only
6558	// applicable when mode is set to MUTUAL.
6559	ClientTlsContext *TlsContext `json:"clientTlsContext,omitempty"`
6560
6561	// Mode: Indicates whether connections to this port should be secured
6562	// using TLS. The value of this field determines how TLS is enforced.
6563	// This can be set to one of the following values: DISABLE: Do not setup
6564	// a TLS connection to the backends. SIMPLE: Originate a TLS connection
6565	// to the backends. MUTUAL: Secure connections to the backends using
6566	// mutual TLS by presenting client certificates for authentication.
6567	//
6568	// Possible values:
6569	//   "DISABLE"
6570	//   "INVALID"
6571	//   "MUTUAL"
6572	//   "SIMPLE"
6573	Mode string `json:"mode,omitempty"`
6574
6575	// Sni: SNI string to present to the server during TLS handshake. This
6576	// field is applicable only when mode is SIMPLE or MUTUAL.
6577	Sni string `json:"sni,omitempty"`
6578
6579	// SubjectAltNames: A list of alternate names to verify the subject
6580	// identity in the certificate.If specified, the proxy will verify that
6581	// the server certificate's subject alt name matches one of the
6582	// specified values. This field is applicable only when mode is SIMPLE
6583	// or MUTUAL.
6584	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
6585
6586	// ForceSendFields is a list of field names (e.g. "ClientTlsContext") to
6587	// unconditionally include in API requests. By default, fields with
6588	// empty values are omitted from API requests. However, any non-pointer,
6589	// non-interface field appearing in ForceSendFields will be sent to the
6590	// server regardless of whether the field is empty or not. This may be
6591	// used to include empty fields in Patch requests.
6592	ForceSendFields []string `json:"-"`
6593
6594	// NullFields is a list of field names (e.g. "ClientTlsContext") to
6595	// include in API requests with the JSON null value. By default, fields
6596	// with empty values are omitted from API requests. However, any field
6597	// with an empty value appearing in NullFields will be sent to the
6598	// server as null. It is an error if a field in this list has a
6599	// non-empty value. This may be used to include null fields in Patch
6600	// requests.
6601	NullFields []string `json:"-"`
6602}
6603
6604func (s *ClientTlsSettings) MarshalJSON() ([]byte, error) {
6605	type NoMethod ClientTlsSettings
6606	raw := NoMethod(*s)
6607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6608}
6609
6610// Commitment: Represents a regional Commitment resource.
6611//
6612// Creating a commitment resource means that you are purchasing a
6613// committed use contract with an explicit start and end time. You can
6614// create commitments based on vCPUs and memory usage and receive
6615// discounted rates. For full details, read Signing Up for Committed Use
6616// Discounts. (== resource_for {$api_version}.regionCommitments ==)
6617type Commitment struct {
6618	// Category: The category of the commitment. Category MACHINE specifies
6619	// commitments composed of machine resources such as VCPU or MEMORY,
6620	// listed in resources. Category LICENSE specifies commitments composed
6621	// of software licenses, listed in licenseResources. Note that only
6622	// MACHINE commitments should have a Type specified.
6623	//
6624	// Possible values:
6625	//   "CATEGORY_UNSPECIFIED"
6626	//   "LICENSE"
6627	//   "MACHINE"
6628	Category string `json:"category,omitempty"`
6629
6630	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6631	// format.
6632	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6633
6634	// Description: An optional description of this resource. Provide this
6635	// property when you create the resource.
6636	Description string `json:"description,omitempty"`
6637
6638	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6639	// format.
6640	EndTimestamp string `json:"endTimestamp,omitempty"`
6641
6642	// Id: [Output Only] The unique identifier for the resource. This
6643	// identifier is defined by the server.
6644	Id uint64 `json:"id,omitempty,string"`
6645
6646	// Kind: [Output Only] Type of the resource. Always compute#commitment
6647	// for commitments.
6648	Kind string `json:"kind,omitempty"`
6649
6650	// LicenseResource: The license specification required as part of a
6651	// license commitment.
6652	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
6653
6654	// Name: Name of the resource. Provided by the client when the resource
6655	// is created. The name must be 1-63 characters long, and comply with
6656	// RFC1035. Specifically, the name must be 1-63 characters long and
6657	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6658	// the first character must be a lowercase letter, and all following
6659	// characters must be a dash, lowercase letter, or digit, except the
6660	// last character, which cannot be a dash.
6661	Name string `json:"name,omitempty"`
6662
6663	// Plan: The plan for this commitment, which determines duration and
6664	// discount rate. The currently supported plans are TWELVE_MONTH (1
6665	// year), and THIRTY_SIX_MONTH (3 years).
6666	//
6667	// Possible values:
6668	//   "INVALID"
6669	//   "THIRTY_SIX_MONTH"
6670	//   "TWELVE_MONTH"
6671	Plan string `json:"plan,omitempty"`
6672
6673	// Region: [Output Only] URL of the region where this commitment may be
6674	// used.
6675	Region string `json:"region,omitempty"`
6676
6677	// Reservations: List of reservations in this commitment.
6678	Reservations []*Reservation `json:"reservations,omitempty"`
6679
6680	// Resources: A list of commitment amounts for particular resources.
6681	// Note that VCPU and MEMORY resource commitments must occur together.
6682	Resources []*ResourceCommitment `json:"resources,omitempty"`
6683
6684	// SelfLink: [Output Only] Server-defined URL for the resource.
6685	SelfLink string `json:"selfLink,omitempty"`
6686
6687	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
6688	// with the resource id.
6689	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
6690
6691	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6692	// format.
6693	StartTimestamp string `json:"startTimestamp,omitempty"`
6694
6695	// Status: [Output Only] Status of the commitment with regards to
6696	// eventual expiration (each commitment has an end date defined). One of
6697	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6698	//
6699	// Possible values:
6700	//   "ACTIVE"
6701	//   "CREATING"
6702	//   "EXPIRED"
6703	//   "NOT_YET_ACTIVE"
6704	Status string `json:"status,omitempty"`
6705
6706	// StatusMessage: [Output Only] An optional, human-readable explanation
6707	// of the status.
6708	StatusMessage string `json:"statusMessage,omitempty"`
6709
6710	// Type: The type of commitment, which affects the discount rate and the
6711	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
6712	// will only apply to memory optimized machines.
6713	//
6714	// Possible values:
6715	//   "COMPUTE_OPTIMIZED"
6716	//   "GENERAL_PURPOSE"
6717	//   "GENERAL_PURPOSE_E2"
6718	//   "GENERAL_PURPOSE_N2"
6719	//   "GENERAL_PURPOSE_N2D"
6720	//   "MEMORY_OPTIMIZED"
6721	//   "TYPE_UNSPECIFIED"
6722	Type string `json:"type,omitempty"`
6723
6724	// ServerResponse contains the HTTP response code and headers from the
6725	// server.
6726	googleapi.ServerResponse `json:"-"`
6727
6728	// ForceSendFields is a list of field names (e.g. "Category") to
6729	// unconditionally include in API requests. By default, fields with
6730	// empty values are omitted from API requests. However, any non-pointer,
6731	// non-interface field appearing in ForceSendFields will be sent to the
6732	// server regardless of whether the field is empty or not. This may be
6733	// used to include empty fields in Patch requests.
6734	ForceSendFields []string `json:"-"`
6735
6736	// NullFields is a list of field names (e.g. "Category") to include in
6737	// API requests with the JSON null value. By default, fields with empty
6738	// values are omitted from API requests. However, any field with an
6739	// empty value appearing in NullFields will be sent to the server as
6740	// null. It is an error if a field in this list has a non-empty value.
6741	// This may be used to include null fields in Patch requests.
6742	NullFields []string `json:"-"`
6743}
6744
6745func (s *Commitment) MarshalJSON() ([]byte, error) {
6746	type NoMethod Commitment
6747	raw := NoMethod(*s)
6748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6749}
6750
6751type CommitmentAggregatedList struct {
6752	// Id: [Output Only] Unique identifier for the resource; defined by the
6753	// server.
6754	Id string `json:"id,omitempty"`
6755
6756	// Items: A list of CommitmentsScopedList resources.
6757	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6758
6759	// Kind: [Output Only] Type of resource. Always
6760	// compute#commitmentAggregatedList for aggregated lists of commitments.
6761	Kind string `json:"kind,omitempty"`
6762
6763	// NextPageToken: [Output Only] This token allows you to get the next
6764	// page of results for list requests. If the number of results is larger
6765	// than maxResults, use the nextPageToken as a value for the query
6766	// parameter pageToken in the next list request. Subsequent list
6767	// requests will have their own nextPageToken to continue paging through
6768	// the results.
6769	NextPageToken string `json:"nextPageToken,omitempty"`
6770
6771	// SelfLink: [Output Only] Server-defined URL for this resource.
6772	SelfLink string `json:"selfLink,omitempty"`
6773
6774	// Unreachables: [Output Only] Unreachable resources.
6775	Unreachables []string `json:"unreachables,omitempty"`
6776
6777	// Warning: [Output Only] Informational warning message.
6778	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6779
6780	// ServerResponse contains the HTTP response code and headers from the
6781	// server.
6782	googleapi.ServerResponse `json:"-"`
6783
6784	// ForceSendFields is a list of field names (e.g. "Id") to
6785	// unconditionally include in API requests. By default, fields with
6786	// empty values are omitted from API requests. However, any non-pointer,
6787	// non-interface field appearing in ForceSendFields will be sent to the
6788	// server regardless of whether the field is empty or not. This may be
6789	// used to include empty fields in Patch requests.
6790	ForceSendFields []string `json:"-"`
6791
6792	// NullFields is a list of field names (e.g. "Id") to include in API
6793	// requests with the JSON null value. By default, fields with empty
6794	// values are omitted from API requests. However, any field with an
6795	// empty value appearing in NullFields will be sent to the server as
6796	// null. It is an error if a field in this list has a non-empty value.
6797	// This may be used to include null fields in Patch requests.
6798	NullFields []string `json:"-"`
6799}
6800
6801func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6802	type NoMethod CommitmentAggregatedList
6803	raw := NoMethod(*s)
6804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6805}
6806
6807// CommitmentAggregatedListWarning: [Output Only] Informational warning
6808// message.
6809type CommitmentAggregatedListWarning struct {
6810	// Code: [Output Only] A warning code, if applicable. For example,
6811	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6812	// the response.
6813	//
6814	// Possible values:
6815	//   "CLEANUP_FAILED"
6816	//   "DEPRECATED_RESOURCE_USED"
6817	//   "DEPRECATED_TYPE_USED"
6818	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6819	//   "EXPERIMENTAL_TYPE_USED"
6820	//   "EXTERNAL_API_WARNING"
6821	//   "FIELD_VALUE_OVERRIDEN"
6822	//   "INJECTED_KERNELS_DEPRECATED"
6823	//   "MISSING_TYPE_DEPENDENCY"
6824	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6825	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6826	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6827	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6828	//   "NEXT_HOP_NOT_RUNNING"
6829	//   "NOT_CRITICAL_ERROR"
6830	//   "NO_RESULTS_ON_PAGE"
6831	//   "PARTIAL_SUCCESS"
6832	//   "REQUIRED_TOS_AGREEMENT"
6833	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6834	//   "RESOURCE_NOT_DELETED"
6835	//   "SCHEMA_VALIDATION_IGNORED"
6836	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6837	//   "UNDECLARED_PROPERTIES"
6838	//   "UNREACHABLE"
6839	Code string `json:"code,omitempty"`
6840
6841	// Data: [Output Only] Metadata about this warning in key: value format.
6842	// For example:
6843	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6844	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6845
6846	// Message: [Output Only] A human-readable description of the warning
6847	// code.
6848	Message string `json:"message,omitempty"`
6849
6850	// ForceSendFields is a list of field names (e.g. "Code") to
6851	// unconditionally include in API requests. By default, fields with
6852	// empty values are omitted from API requests. However, any non-pointer,
6853	// non-interface field appearing in ForceSendFields will be sent to the
6854	// server regardless of whether the field is empty or not. This may be
6855	// used to include empty fields in Patch requests.
6856	ForceSendFields []string `json:"-"`
6857
6858	// NullFields is a list of field names (e.g. "Code") to include in API
6859	// requests with the JSON null value. By default, fields with empty
6860	// values are omitted from API requests. However, any field with an
6861	// empty value appearing in NullFields will be sent to the server as
6862	// null. It is an error if a field in this list has a non-empty value.
6863	// This may be used to include null fields in Patch requests.
6864	NullFields []string `json:"-"`
6865}
6866
6867func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6868	type NoMethod CommitmentAggregatedListWarning
6869	raw := NoMethod(*s)
6870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6871}
6872
6873type CommitmentAggregatedListWarningData struct {
6874	// Key: [Output Only] A key that provides more detail on the warning
6875	// being returned. For example, for warnings where there are no results
6876	// in a list request for a particular zone, this key might be scope and
6877	// the key value might be the zone name. Other examples might be a key
6878	// indicating a deprecated resource and a suggested replacement, or a
6879	// warning about invalid network settings (for example, if an instance
6880	// attempts to perform IP forwarding but is not enabled for IP
6881	// forwarding).
6882	Key string `json:"key,omitempty"`
6883
6884	// Value: [Output Only] A warning data value corresponding to the key.
6885	Value string `json:"value,omitempty"`
6886
6887	// ForceSendFields is a list of field names (e.g. "Key") to
6888	// unconditionally include in API requests. By default, fields with
6889	// empty values are omitted from API requests. However, any non-pointer,
6890	// non-interface field appearing in ForceSendFields will be sent to the
6891	// server regardless of whether the field is empty or not. This may be
6892	// used to include empty fields in Patch requests.
6893	ForceSendFields []string `json:"-"`
6894
6895	// NullFields is a list of field names (e.g. "Key") to include in API
6896	// requests with the JSON null value. By default, fields with empty
6897	// values are omitted from API requests. However, any field with an
6898	// empty value appearing in NullFields will be sent to the server as
6899	// null. It is an error if a field in this list has a non-empty value.
6900	// This may be used to include null fields in Patch requests.
6901	NullFields []string `json:"-"`
6902}
6903
6904func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6905	type NoMethod CommitmentAggregatedListWarningData
6906	raw := NoMethod(*s)
6907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6908}
6909
6910// CommitmentList: Contains a list of Commitment resources.
6911type CommitmentList struct {
6912	// Id: [Output Only] Unique identifier for the resource; defined by the
6913	// server.
6914	Id string `json:"id,omitempty"`
6915
6916	// Items: A list of Commitment resources.
6917	Items []*Commitment `json:"items,omitempty"`
6918
6919	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6920	// for lists of commitments.
6921	Kind string `json:"kind,omitempty"`
6922
6923	// NextPageToken: [Output Only] This token allows you to get the next
6924	// page of results for list requests. If the number of results is larger
6925	// than maxResults, use the nextPageToken as a value for the query
6926	// parameter pageToken in the next list request. Subsequent list
6927	// requests will have their own nextPageToken to continue paging through
6928	// the results.
6929	NextPageToken string `json:"nextPageToken,omitempty"`
6930
6931	// SelfLink: [Output Only] Server-defined URL for this resource.
6932	SelfLink string `json:"selfLink,omitempty"`
6933
6934	// Warning: [Output Only] Informational warning message.
6935	Warning *CommitmentListWarning `json:"warning,omitempty"`
6936
6937	// ServerResponse contains the HTTP response code and headers from the
6938	// server.
6939	googleapi.ServerResponse `json:"-"`
6940
6941	// ForceSendFields is a list of field names (e.g. "Id") to
6942	// unconditionally include in API requests. By default, fields with
6943	// empty values are omitted from API requests. However, any non-pointer,
6944	// non-interface field appearing in ForceSendFields will be sent to the
6945	// server regardless of whether the field is empty or not. This may be
6946	// used to include empty fields in Patch requests.
6947	ForceSendFields []string `json:"-"`
6948
6949	// NullFields is a list of field names (e.g. "Id") to include in API
6950	// requests with the JSON null value. By default, fields with empty
6951	// values are omitted from API requests. However, any field with an
6952	// empty value appearing in NullFields will be sent to the server as
6953	// null. It is an error if a field in this list has a non-empty value.
6954	// This may be used to include null fields in Patch requests.
6955	NullFields []string `json:"-"`
6956}
6957
6958func (s *CommitmentList) MarshalJSON() ([]byte, error) {
6959	type NoMethod CommitmentList
6960	raw := NoMethod(*s)
6961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6962}
6963
6964// CommitmentListWarning: [Output Only] Informational warning message.
6965type CommitmentListWarning struct {
6966	// Code: [Output Only] A warning code, if applicable. For example,
6967	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6968	// the response.
6969	//
6970	// Possible values:
6971	//   "CLEANUP_FAILED"
6972	//   "DEPRECATED_RESOURCE_USED"
6973	//   "DEPRECATED_TYPE_USED"
6974	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6975	//   "EXPERIMENTAL_TYPE_USED"
6976	//   "EXTERNAL_API_WARNING"
6977	//   "FIELD_VALUE_OVERRIDEN"
6978	//   "INJECTED_KERNELS_DEPRECATED"
6979	//   "MISSING_TYPE_DEPENDENCY"
6980	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6981	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6982	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6983	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6984	//   "NEXT_HOP_NOT_RUNNING"
6985	//   "NOT_CRITICAL_ERROR"
6986	//   "NO_RESULTS_ON_PAGE"
6987	//   "PARTIAL_SUCCESS"
6988	//   "REQUIRED_TOS_AGREEMENT"
6989	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6990	//   "RESOURCE_NOT_DELETED"
6991	//   "SCHEMA_VALIDATION_IGNORED"
6992	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6993	//   "UNDECLARED_PROPERTIES"
6994	//   "UNREACHABLE"
6995	Code string `json:"code,omitempty"`
6996
6997	// Data: [Output Only] Metadata about this warning in key: value format.
6998	// For example:
6999	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7000	Data []*CommitmentListWarningData `json:"data,omitempty"`
7001
7002	// Message: [Output Only] A human-readable description of the warning
7003	// code.
7004	Message string `json:"message,omitempty"`
7005
7006	// ForceSendFields is a list of field names (e.g. "Code") to
7007	// unconditionally include in API requests. By default, fields with
7008	// empty values are omitted from API requests. However, any non-pointer,
7009	// non-interface field appearing in ForceSendFields will be sent to the
7010	// server regardless of whether the field is empty or not. This may be
7011	// used to include empty fields in Patch requests.
7012	ForceSendFields []string `json:"-"`
7013
7014	// NullFields is a list of field names (e.g. "Code") to include in API
7015	// requests with the JSON null value. By default, fields with empty
7016	// values are omitted from API requests. However, any field with an
7017	// empty value appearing in NullFields will be sent to the server as
7018	// null. It is an error if a field in this list has a non-empty value.
7019	// This may be used to include null fields in Patch requests.
7020	NullFields []string `json:"-"`
7021}
7022
7023func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
7024	type NoMethod CommitmentListWarning
7025	raw := NoMethod(*s)
7026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7027}
7028
7029type CommitmentListWarningData struct {
7030	// Key: [Output Only] A key that provides more detail on the warning
7031	// being returned. For example, for warnings where there are no results
7032	// in a list request for a particular zone, this key might be scope and
7033	// the key value might be the zone name. Other examples might be a key
7034	// indicating a deprecated resource and a suggested replacement, or a
7035	// warning about invalid network settings (for example, if an instance
7036	// attempts to perform IP forwarding but is not enabled for IP
7037	// forwarding).
7038	Key string `json:"key,omitempty"`
7039
7040	// Value: [Output Only] A warning data value corresponding to the key.
7041	Value string `json:"value,omitempty"`
7042
7043	// ForceSendFields is a list of field names (e.g. "Key") to
7044	// unconditionally include in API requests. By default, fields with
7045	// empty values are omitted from API requests. However, any non-pointer,
7046	// non-interface field appearing in ForceSendFields will be sent to the
7047	// server regardless of whether the field is empty or not. This may be
7048	// used to include empty fields in Patch requests.
7049	ForceSendFields []string `json:"-"`
7050
7051	// NullFields is a list of field names (e.g. "Key") to include in API
7052	// requests with the JSON null value. By default, fields with empty
7053	// values are omitted from API requests. However, any field with an
7054	// empty value appearing in NullFields will be sent to the server as
7055	// null. It is an error if a field in this list has a non-empty value.
7056	// This may be used to include null fields in Patch requests.
7057	NullFields []string `json:"-"`
7058}
7059
7060func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
7061	type NoMethod CommitmentListWarningData
7062	raw := NoMethod(*s)
7063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7064}
7065
7066type CommitmentsScopedList struct {
7067	// Commitments: [Output Only] A list of commitments contained in this
7068	// scope.
7069	Commitments []*Commitment `json:"commitments,omitempty"`
7070
7071	// Warning: [Output Only] Informational warning which replaces the list
7072	// of commitments when the list is empty.
7073	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
7074
7075	// ForceSendFields is a list of field names (e.g. "Commitments") to
7076	// unconditionally include in API requests. By default, fields with
7077	// empty values are omitted from API requests. However, any non-pointer,
7078	// non-interface field appearing in ForceSendFields will be sent to the
7079	// server regardless of whether the field is empty or not. This may be
7080	// used to include empty fields in Patch requests.
7081	ForceSendFields []string `json:"-"`
7082
7083	// NullFields is a list of field names (e.g. "Commitments") to include
7084	// in API requests with the JSON null value. By default, fields with
7085	// empty values are omitted from API requests. However, any field with
7086	// an empty value appearing in NullFields will be sent to the server as
7087	// null. It is an error if a field in this list has a non-empty value.
7088	// This may be used to include null fields in Patch requests.
7089	NullFields []string `json:"-"`
7090}
7091
7092func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
7093	type NoMethod CommitmentsScopedList
7094	raw := NoMethod(*s)
7095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7096}
7097
7098// CommitmentsScopedListWarning: [Output Only] Informational warning
7099// which replaces the list of commitments when the list is empty.
7100type CommitmentsScopedListWarning struct {
7101	// Code: [Output Only] A warning code, if applicable. For example,
7102	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7103	// the response.
7104	//
7105	// Possible values:
7106	//   "CLEANUP_FAILED"
7107	//   "DEPRECATED_RESOURCE_USED"
7108	//   "DEPRECATED_TYPE_USED"
7109	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7110	//   "EXPERIMENTAL_TYPE_USED"
7111	//   "EXTERNAL_API_WARNING"
7112	//   "FIELD_VALUE_OVERRIDEN"
7113	//   "INJECTED_KERNELS_DEPRECATED"
7114	//   "MISSING_TYPE_DEPENDENCY"
7115	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7116	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7117	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7118	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7119	//   "NEXT_HOP_NOT_RUNNING"
7120	//   "NOT_CRITICAL_ERROR"
7121	//   "NO_RESULTS_ON_PAGE"
7122	//   "PARTIAL_SUCCESS"
7123	//   "REQUIRED_TOS_AGREEMENT"
7124	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7125	//   "RESOURCE_NOT_DELETED"
7126	//   "SCHEMA_VALIDATION_IGNORED"
7127	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7128	//   "UNDECLARED_PROPERTIES"
7129	//   "UNREACHABLE"
7130	Code string `json:"code,omitempty"`
7131
7132	// Data: [Output Only] Metadata about this warning in key: value format.
7133	// For example:
7134	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7135	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
7136
7137	// Message: [Output Only] A human-readable description of the warning
7138	// code.
7139	Message string `json:"message,omitempty"`
7140
7141	// ForceSendFields is a list of field names (e.g. "Code") to
7142	// unconditionally include in API requests. By default, fields with
7143	// empty values are omitted from API requests. However, any non-pointer,
7144	// non-interface field appearing in ForceSendFields will be sent to the
7145	// server regardless of whether the field is empty or not. This may be
7146	// used to include empty fields in Patch requests.
7147	ForceSendFields []string `json:"-"`
7148
7149	// NullFields is a list of field names (e.g. "Code") to include in API
7150	// requests with the JSON null value. By default, fields with empty
7151	// values are omitted from API requests. However, any field with an
7152	// empty value appearing in NullFields will be sent to the server as
7153	// null. It is an error if a field in this list has a non-empty value.
7154	// This may be used to include null fields in Patch requests.
7155	NullFields []string `json:"-"`
7156}
7157
7158func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
7159	type NoMethod CommitmentsScopedListWarning
7160	raw := NoMethod(*s)
7161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7162}
7163
7164type CommitmentsScopedListWarningData struct {
7165	// Key: [Output Only] A key that provides more detail on the warning
7166	// being returned. For example, for warnings where there are no results
7167	// in a list request for a particular zone, this key might be scope and
7168	// the key value might be the zone name. Other examples might be a key
7169	// indicating a deprecated resource and a suggested replacement, or a
7170	// warning about invalid network settings (for example, if an instance
7171	// attempts to perform IP forwarding but is not enabled for IP
7172	// forwarding).
7173	Key string `json:"key,omitempty"`
7174
7175	// Value: [Output Only] A warning data value corresponding to the key.
7176	Value string `json:"value,omitempty"`
7177
7178	// ForceSendFields is a list of field names (e.g. "Key") to
7179	// unconditionally include in API requests. By default, fields with
7180	// empty values are omitted from API requests. However, any non-pointer,
7181	// non-interface field appearing in ForceSendFields will be sent to the
7182	// server regardless of whether the field is empty or not. This may be
7183	// used to include empty fields in Patch requests.
7184	ForceSendFields []string `json:"-"`
7185
7186	// NullFields is a list of field names (e.g. "Key") to include in API
7187	// requests with the JSON null value. By default, fields with empty
7188	// values are omitted from API requests. However, any field with an
7189	// empty value appearing in NullFields will be sent to the server as
7190	// null. It is an error if a field in this list has a non-empty value.
7191	// This may be used to include null fields in Patch requests.
7192	NullFields []string `json:"-"`
7193}
7194
7195func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
7196	type NoMethod CommitmentsScopedListWarningData
7197	raw := NoMethod(*s)
7198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7199}
7200
7201// Condition: A condition to be met.
7202type Condition struct {
7203	// Iam: Trusted attributes supplied by the IAM system.
7204	//
7205	// Possible values:
7206	//   "APPROVER"
7207	//   "ATTRIBUTION"
7208	//   "AUTHORITY"
7209	//   "CREDENTIALS_TYPE"
7210	//   "JUSTIFICATION_TYPE"
7211	//   "NO_ATTR"
7212	//   "SECURITY_REALM"
7213	Iam string `json:"iam,omitempty"`
7214
7215	// Op: An operator to apply the subject with.
7216	//
7217	// Possible values:
7218	//   "DISCHARGED"
7219	//   "EQUALS"
7220	//   "IN"
7221	//   "NOT_EQUALS"
7222	//   "NOT_IN"
7223	//   "NO_OP"
7224	Op string `json:"op,omitempty"`
7225
7226	// Svc: Trusted attributes discharged by the service.
7227	Svc string `json:"svc,omitempty"`
7228
7229	// Sys: Trusted attributes supplied by any service that owns resources
7230	// and uses the IAM system for access control.
7231	//
7232	// Possible values:
7233	//   "IP"
7234	//   "NAME"
7235	//   "NO_ATTR"
7236	//   "REGION"
7237	//   "SERVICE"
7238	Sys string `json:"sys,omitempty"`
7239
7240	// Values: The objects of the condition.
7241	Values []string `json:"values,omitempty"`
7242
7243	// ForceSendFields is a list of field names (e.g. "Iam") to
7244	// unconditionally include in API requests. By default, fields with
7245	// empty values are omitted from API requests. However, any non-pointer,
7246	// non-interface field appearing in ForceSendFields will be sent to the
7247	// server regardless of whether the field is empty or not. This may be
7248	// used to include empty fields in Patch requests.
7249	ForceSendFields []string `json:"-"`
7250
7251	// NullFields is a list of field names (e.g. "Iam") to include in API
7252	// requests with the JSON null value. By default, fields with empty
7253	// values are omitted from API requests. However, any field with an
7254	// empty value appearing in NullFields will be sent to the server as
7255	// null. It is an error if a field in this list has a non-empty value.
7256	// This may be used to include null fields in Patch requests.
7257	NullFields []string `json:"-"`
7258}
7259
7260func (s *Condition) MarshalJSON() ([]byte, error) {
7261	type NoMethod Condition
7262	raw := NoMethod(*s)
7263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7264}
7265
7266// ConfidentialInstanceConfig: A set of Confidential Instance options.
7267type ConfidentialInstanceConfig struct {
7268	// EnableConfidentialCompute: Defines whether the instance should have
7269	// confidential compute enabled.
7270	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
7271
7272	// ForceSendFields is a list of field names (e.g.
7273	// "EnableConfidentialCompute") to unconditionally include in API
7274	// requests. By default, fields with empty values are omitted from API
7275	// requests. However, any non-pointer, non-interface field appearing in
7276	// ForceSendFields will be sent to the server regardless of whether the
7277	// field is empty or not. This may be used to include empty fields in
7278	// Patch requests.
7279	ForceSendFields []string `json:"-"`
7280
7281	// NullFields is a list of field names (e.g.
7282	// "EnableConfidentialCompute") to include in API requests with the JSON
7283	// null value. By default, fields with empty values are omitted from API
7284	// requests. However, any field with an empty value appearing in
7285	// NullFields will be sent to the server as null. It is an error if a
7286	// field in this list has a non-empty value. This may be used to include
7287	// null fields in Patch requests.
7288	NullFields []string `json:"-"`
7289}
7290
7291func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
7292	type NoMethod ConfidentialInstanceConfig
7293	raw := NoMethod(*s)
7294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7295}
7296
7297// ConnectionDraining: Message containing connection draining
7298// configuration.
7299type ConnectionDraining struct {
7300	// DrainingTimeoutSec: The amount of time in seconds to allow existing
7301	// connections to persist while on unhealthy backend VMs. Only
7302	// applicable if the protocol is not UDP. The valid range is [0, 3600].
7303	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7304
7305	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7306	// to unconditionally include in API requests. By default, fields with
7307	// empty values are omitted from API requests. However, any non-pointer,
7308	// non-interface field appearing in ForceSendFields will be sent to the
7309	// server regardless of whether the field is empty or not. This may be
7310	// used to include empty fields in Patch requests.
7311	ForceSendFields []string `json:"-"`
7312
7313	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7314	// include in API requests with the JSON null value. By default, fields
7315	// with empty values are omitted from API requests. However, any field
7316	// with an empty value appearing in NullFields will be sent to the
7317	// server as null. It is an error if a field in this list has a
7318	// non-empty value. This may be used to include null fields in Patch
7319	// requests.
7320	NullFields []string `json:"-"`
7321}
7322
7323func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7324	type NoMethod ConnectionDraining
7325	raw := NoMethod(*s)
7326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7327}
7328
7329// ConsistentHashLoadBalancerSettings: This message defines settings for
7330// a consistent hash style load balancer.
7331type ConsistentHashLoadBalancerSettings struct {
7332	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7333	// cookie that will be used as the hash key for the consistent hash load
7334	// balancer. If the cookie is not present, it will be generated. This
7335	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7336	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7337
7338	// HttpHeaderName: The hash based on the value of the specified header
7339	// field. This field is applicable if the sessionAffinity is set to
7340	// HEADER_FIELD.
7341	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7342
7343	// MinimumRingSize: The minimum number of virtual nodes to use for the
7344	// hash ring. Defaults to 1024. Larger ring sizes result in more
7345	// granular load distributions. If the number of hosts in the load
7346	// balancing pool is larger than the ring size, each host will be
7347	// assigned a single virtual node.
7348	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7349
7350	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7351	// unconditionally include in API requests. By default, fields with
7352	// empty values are omitted from API requests. However, any non-pointer,
7353	// non-interface field appearing in ForceSendFields will be sent to the
7354	// server regardless of whether the field is empty or not. This may be
7355	// used to include empty fields in Patch requests.
7356	ForceSendFields []string `json:"-"`
7357
7358	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7359	// API requests with the JSON null value. By default, fields with empty
7360	// values are omitted from API requests. However, any field with an
7361	// empty value appearing in NullFields will be sent to the server as
7362	// null. It is an error if a field in this list has a non-empty value.
7363	// This may be used to include null fields in Patch requests.
7364	NullFields []string `json:"-"`
7365}
7366
7367func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7368	type NoMethod ConsistentHashLoadBalancerSettings
7369	raw := NoMethod(*s)
7370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7371}
7372
7373// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7374// the HTTP Cookie on which the hash function is based for load
7375// balancing policies that use a consistent hash.
7376type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7377	// Name: Name of the cookie.
7378	Name string `json:"name,omitempty"`
7379
7380	// Path: Path to set for the cookie.
7381	Path string `json:"path,omitempty"`
7382
7383	// Ttl: Lifetime of the cookie.
7384	Ttl *Duration `json:"ttl,omitempty"`
7385
7386	// ForceSendFields is a list of field names (e.g. "Name") to
7387	// unconditionally include in API requests. By default, fields with
7388	// empty values are omitted from API requests. However, any non-pointer,
7389	// non-interface field appearing in ForceSendFields will be sent to the
7390	// server regardless of whether the field is empty or not. This may be
7391	// used to include empty fields in Patch requests.
7392	ForceSendFields []string `json:"-"`
7393
7394	// NullFields is a list of field names (e.g. "Name") to include in API
7395	// requests with the JSON null value. By default, fields with empty
7396	// values are omitted from API requests. However, any field with an
7397	// empty value appearing in NullFields will be sent to the server as
7398	// null. It is an error if a field in this list has a non-empty value.
7399	// This may be used to include null fields in Patch requests.
7400	NullFields []string `json:"-"`
7401}
7402
7403func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7404	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7405	raw := NoMethod(*s)
7406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7407}
7408
7409// CorsPolicy: The specification for allowing client side cross-origin
7410// requests. Please see W3C Recommendation for Cross Origin Resource
7411// Sharing
7412type CorsPolicy struct {
7413	// AllowCredentials: In response to a preflight request, setting this to
7414	// true indicates that the actual request can include user credentials.
7415	// This translates to the Access-Control-Allow-Credentials
7416	// header.
7417	// Default is false.
7418	AllowCredentials bool `json:"allowCredentials,omitempty"`
7419
7420	// AllowHeaders: Specifies the content for the
7421	// Access-Control-Allow-Headers header.
7422	AllowHeaders []string `json:"allowHeaders,omitempty"`
7423
7424	// AllowMethods: Specifies the content for the
7425	// Access-Control-Allow-Methods header.
7426	AllowMethods []string `json:"allowMethods,omitempty"`
7427
7428	// AllowOriginRegexes: Specifies the regualar expression patterns that
7429	// match allowed origins. For regular expression grammar please see
7430	// en.cppreference.com/w/cpp/regex/ecmascript
7431	// An origin is allowed if it matches either allow_origins or
7432	// allow_origin_regex.
7433	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7434
7435	// AllowOrigins: Specifies the list of origins that will be allowed to
7436	// do CORS requests.
7437	// An origin is allowed if it matches either allow_origins or
7438	// allow_origin_regex.
7439	AllowOrigins []string `json:"allowOrigins,omitempty"`
7440
7441	// Disabled: If true, specifies the CORS policy is disabled. The default
7442	// value of false, which indicates that the CORS policy is in effect.
7443	Disabled bool `json:"disabled,omitempty"`
7444
7445	// ExposeHeaders: Specifies the content for the
7446	// Access-Control-Expose-Headers header.
7447	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7448
7449	// MaxAge: Specifies how long results of a preflight request can be
7450	// cached in seconds. This translates to the Access-Control-Max-Age
7451	// header.
7452	MaxAge int64 `json:"maxAge,omitempty"`
7453
7454	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7455	// unconditionally include in API requests. By default, fields with
7456	// empty values are omitted from API requests. However, any non-pointer,
7457	// non-interface field appearing in ForceSendFields will be sent to the
7458	// server regardless of whether the field is empty or not. This may be
7459	// used to include empty fields in Patch requests.
7460	ForceSendFields []string `json:"-"`
7461
7462	// NullFields is a list of field names (e.g. "AllowCredentials") to
7463	// include in API requests with the JSON null value. By default, fields
7464	// with empty values are omitted from API requests. However, any field
7465	// with an empty value appearing in NullFields will be sent to the
7466	// server as null. It is an error if a field in this list has a
7467	// non-empty value. This may be used to include null fields in Patch
7468	// requests.
7469	NullFields []string `json:"-"`
7470}
7471
7472func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7473	type NoMethod CorsPolicy
7474	raw := NoMethod(*s)
7475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7476}
7477
7478// CustomerEncryptionKey: Represents a customer-supplied encryption key
7479type CustomerEncryptionKey struct {
7480	// KmsKeyName: The name of the encryption key that is stored in Google
7481	// Cloud KMS.
7482	KmsKeyName string `json:"kmsKeyName,omitempty"`
7483
7484	// KmsKeyServiceAccount: The service account being used for the
7485	// encryption request for the given KMS key. If absent, the Compute
7486	// Engine default service account is used.
7487	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7488
7489	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7490	// in RFC 4648 base64 to either encrypt or decrypt this resource.
7491	RawKey string `json:"rawKey,omitempty"`
7492
7493	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
7494	// 2048-bit customer-supplied encryption key to either encrypt or
7495	// decrypt this resource.
7496	//
7497	// The key must meet the following requirements before you can provide
7498	// it to Compute Engine:
7499	// - The key is wrapped using a RSA public key certificate provided by
7500	// Google.
7501	// - After being wrapped, the key must be encoded in RFC 4648 base64
7502	// encoding.  Gets the RSA public key certificate provided by Google
7503	// at:
7504	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingre
7505	// ss.pem
7506	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
7507
7508	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7509	// customer-supplied encryption key that protects this resource.
7510	Sha256 string `json:"sha256,omitempty"`
7511
7512	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7513	// unconditionally include in API requests. By default, fields with
7514	// empty values are omitted from API requests. However, any non-pointer,
7515	// non-interface field appearing in ForceSendFields will be sent to the
7516	// server regardless of whether the field is empty or not. This may be
7517	// used to include empty fields in Patch requests.
7518	ForceSendFields []string `json:"-"`
7519
7520	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7521	// API requests with the JSON null value. By default, fields with empty
7522	// values are omitted from API requests. However, any field with an
7523	// empty value appearing in NullFields will be sent to the server as
7524	// null. It is an error if a field in this list has a non-empty value.
7525	// This may be used to include null fields in Patch requests.
7526	NullFields []string `json:"-"`
7527}
7528
7529func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7530	type NoMethod CustomerEncryptionKey
7531	raw := NoMethod(*s)
7532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7533}
7534
7535type CustomerEncryptionKeyProtectedDisk struct {
7536	// DiskEncryptionKey: Decrypts data associated with the disk with a
7537	// customer-supplied encryption key.
7538	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7539
7540	// Source: Specifies a valid partial or full URL to an existing
7541	// Persistent Disk resource. This field is only applicable for
7542	// persistent disks.
7543	Source string `json:"source,omitempty"`
7544
7545	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7546	// to unconditionally include in API requests. By default, fields with
7547	// empty values are omitted from API requests. However, any non-pointer,
7548	// non-interface field appearing in ForceSendFields will be sent to the
7549	// server regardless of whether the field is empty or not. This may be
7550	// used to include empty fields in Patch requests.
7551	ForceSendFields []string `json:"-"`
7552
7553	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7554	// include in API requests with the JSON null value. By default, fields
7555	// with empty values are omitted from API requests. However, any field
7556	// with an empty value appearing in NullFields will be sent to the
7557	// server as null. It is an error if a field in this list has a
7558	// non-empty value. This may be used to include null fields in Patch
7559	// requests.
7560	NullFields []string `json:"-"`
7561}
7562
7563func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7564	type NoMethod CustomerEncryptionKeyProtectedDisk
7565	raw := NoMethod(*s)
7566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7567}
7568
7569// DeprecationStatus: Deprecation status for a public resource.
7570type DeprecationStatus struct {
7571	// Deleted: An optional RFC3339 timestamp on or after which the state of
7572	// this resource is intended to change to DELETED. This is only
7573	// informational and the status will not change unless the client
7574	// explicitly changes it.
7575	Deleted string `json:"deleted,omitempty"`
7576
7577	// Deprecated: An optional RFC3339 timestamp on or after which the state
7578	// of this resource is intended to change to DEPRECATED. This is only
7579	// informational and the status will not change unless the client
7580	// explicitly changes it.
7581	Deprecated string `json:"deprecated,omitempty"`
7582
7583	// Obsolete: An optional RFC3339 timestamp on or after which the state
7584	// of this resource is intended to change to OBSOLETE. This is only
7585	// informational and the status will not change unless the client
7586	// explicitly changes it.
7587	Obsolete string `json:"obsolete,omitempty"`
7588
7589	// Replacement: The URL of the suggested replacement for a deprecated
7590	// resource. The suggested replacement resource must be the same kind of
7591	// resource as the deprecated resource.
7592	Replacement string `json:"replacement,omitempty"`
7593
7594	// State: The deprecation state of this resource. This can be ACTIVE,
7595	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7596	// end of life date for an image, can use ACTIVE. Operations which
7597	// create a new resource using a DEPRECATED resource will return
7598	// successfully, but with a warning indicating the deprecated resource
7599	// and recommending its replacement. Operations which use OBSOLETE or
7600	// DELETED resources will be rejected and result in an error.
7601	//
7602	// Possible values:
7603	//   "ACTIVE"
7604	//   "DELETED"
7605	//   "DEPRECATED"
7606	//   "OBSOLETE"
7607	State string `json:"state,omitempty"`
7608
7609	// ForceSendFields is a list of field names (e.g. "Deleted") to
7610	// unconditionally include in API requests. By default, fields with
7611	// empty values are omitted from API requests. However, any non-pointer,
7612	// non-interface field appearing in ForceSendFields will be sent to the
7613	// server regardless of whether the field is empty or not. This may be
7614	// used to include empty fields in Patch requests.
7615	ForceSendFields []string `json:"-"`
7616
7617	// NullFields is a list of field names (e.g. "Deleted") to include in
7618	// API requests with the JSON null value. By default, fields with empty
7619	// values are omitted from API requests. However, any field with an
7620	// empty value appearing in NullFields will be sent to the server as
7621	// null. It is an error if a field in this list has a non-empty value.
7622	// This may be used to include null fields in Patch requests.
7623	NullFields []string `json:"-"`
7624}
7625
7626func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7627	type NoMethod DeprecationStatus
7628	raw := NoMethod(*s)
7629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7630}
7631
7632// Disk: Represents a Persistent Disk resource.
7633//
7634// Google Compute Engine has two Disk resources:
7635//
7636// * [Zonal](/compute/docs/reference/rest/{$api_version}/disks) *
7637// [Regional](/compute/docs/reference/rest/{$api_version}/regionDisks)
7638//
7639// P
7640// ersistent disks are required for running your VM instances. Create
7641// both boot and non-boot (data) persistent disks. For more information,
7642// read Persistent Disks. For more storage options, read Storage
7643// options.
7644//
7645// The disks resource represents a zonal persistent disk. For more
7646// information, read Zonal persistent disks.
7647//
7648// The regionDisks resource represents a regional persistent disk. For
7649// more information, read  Regional resources. (== resource_for
7650// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
7651// ==)
7652type Disk struct {
7653	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7654	// format.
7655	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7656
7657	// Description: An optional description of this resource. Provide this
7658	// property when you create the resource.
7659	Description string `json:"description,omitempty"`
7660
7661	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7662	// encryption key.
7663	//
7664	// After you encrypt a disk with a customer-supplied key, you must
7665	// provide the same key if you use the disk later (e.g. to create a disk
7666	// snapshot, to create a disk image, to create a machine image, or to
7667	// attach the disk to a virtual machine).
7668	//
7669	// Customer-supplied encryption keys do not protect access to metadata
7670	// of the disk.
7671	//
7672	// If you do not provide an encryption key when creating the disk, then
7673	// the disk will be encrypted using an automatically generated key and
7674	// you do not need to provide a key to use the disk later.
7675	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7676
7677	// EraseWindowsVssSignature: Specifies whether the disk restored from a
7678	// source snapshot should erase Windows specific VSS signature.
7679	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
7680
7681	// GuestOsFeatures: A list of features to enable on the guest operating
7682	// system. Applicable only for bootable images. Read  Enabling guest
7683	// operating system features to see a list of available options.
7684	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7685
7686	// Id: [Output Only] The unique identifier for the resource. This
7687	// identifier is defined by the server.
7688	Id uint64 `json:"id,omitempty,string"`
7689
7690	// Kind: [Output Only] Type of the resource. Always compute#disk for
7691	// disks.
7692	Kind string `json:"kind,omitempty"`
7693
7694	// LabelFingerprint: A fingerprint for the labels being applied to this
7695	// disk, which is essentially a hash of the labels set used for
7696	// optimistic locking. The fingerprint is initially generated by Compute
7697	// Engine and changes after every request to modify or update labels.
7698	// You must always provide an up-to-date fingerprint hash in order to
7699	// update or change labels, otherwise the request will fail with error
7700	// 412 conditionNotMet.
7701	//
7702	// To see the latest fingerprint, make a get() request to retrieve a
7703	// disk.
7704	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7705
7706	// Labels: Labels to apply to this disk. These can be later modified by
7707	// the setLabels method.
7708	Labels map[string]string `json:"labels,omitempty"`
7709
7710	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7711	// text format.
7712	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7713
7714	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7715	// text format.
7716	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7717
7718	// LicenseCodes: Integer license codes indicating which licenses are
7719	// attached to this disk.
7720	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7721
7722	// Licenses: A list of publicly visible licenses. Reserved for Google's
7723	// use.
7724	Licenses []string `json:"licenses,omitempty"`
7725
7726	// MultiWriter: Indicates whether or not the disk can be read/write
7727	// attached to more than one instance.
7728	MultiWriter bool `json:"multiWriter,omitempty"`
7729
7730	// Name: Name of the resource. Provided by the client when the resource
7731	// is created. The name must be 1-63 characters long, and comply with
7732	// RFC1035. Specifically, the name must be 1-63 characters long and
7733	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7734	// the first character must be a lowercase letter, and all following
7735	// characters must be a dash, lowercase letter, or digit, except the
7736	// last character, which cannot be a dash.
7737	Name string `json:"name,omitempty"`
7738
7739	// Options: Internal use only.
7740	Options string `json:"options,omitempty"`
7741
7742	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7743	// in bytes. If not present in a request, a default value is used.
7744	// Currently supported sizes are 4096 and 16384, other sizes may be
7745	// added in the future. If an unsupported value is requested, the error
7746	// message will list the supported values for the caller's project.
7747	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7748
7749	// Region: [Output Only] URL of the region where the disk resides. Only
7750	// applicable for regional resources. You must specify this field as
7751	// part of the HTTP request URL. It is not settable as a field in the
7752	// request body.
7753	Region string `json:"region,omitempty"`
7754
7755	// ReplicaZones: URLs of the zones where the disk should be replicated
7756	// to. Only applicable for regional resources.
7757	ReplicaZones []string `json:"replicaZones,omitempty"`
7758
7759	// ResourcePolicies: Resource policies applied to this disk for
7760	// automatic snapshot creations.
7761	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7762
7763	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7764	// resource.
7765	SelfLink string `json:"selfLink,omitempty"`
7766
7767	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
7768	// resource id.
7769	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
7770
7771	// SizeGb: Size of the persistent disk, specified in GB. You can specify
7772	// this field when creating a persistent disk using the sourceImage or
7773	// sourceSnapshot parameter, or specify it alone to create an empty
7774	// persistent disk.
7775	//
7776	// If you specify this field along with sourceImage or sourceSnapshot,
7777	// the value of sizeGb must not be less than the size of the sourceImage
7778	// or the size of the snapshot. Acceptable values are 1 to 65536,
7779	// inclusive.
7780	SizeGb int64 `json:"sizeGb,omitempty,string"`
7781
7782	// SourceDisk: The source disk used to create this disk. You can provide
7783	// this as a partial or full URL to the resource. For example, the
7784	// following are valid values:
7785	// -
7786	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7787	// - projects/project/zones/zone/disks/disk
7788	// - zones/zone/disks/disk
7789	SourceDisk string `json:"sourceDisk,omitempty"`
7790
7791	// SourceDiskId: [Output Only] The unique ID of the disk used to create
7792	// this disk. This value identifies the exact disk that was used to
7793	// create this persistent disk. For example, if you created the
7794	// persistent disk from a disk that was later deleted and recreated
7795	// under the same name, the source disk ID would identify the exact
7796	// version of the disk that was used.
7797	SourceDiskId string `json:"sourceDiskId,omitempty"`
7798
7799	// SourceImage: The source image used to create this disk. If the source
7800	// image is deleted, this field will not be set.
7801	//
7802	// To create a disk with one of the public operating system images,
7803	// specify the image by its family name. For example, specify
7804	// family/debian-9 to use the latest Debian 9
7805	// image:
7806	// projects/debian-cloud/global/images/family/debian-9
7807	//
7808	//
7809	// Alternati
7810	// vely, use a specific version of a public operating system
7811	// image:
7812	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
7813	//
7814	//
7815	//
7816	// To create a disk with a custom image that you created, specify the
7817	// image name in the following
7818	// format:
7819	// global/images/my-custom-image
7820	//
7821	//
7822	// You can also specify a custom image by its image family, which
7823	// returns the latest version of the image in that family. Replace the
7824	// image name with
7825	// family/family-name:
7826	// global/images/family/my-image-family
7827	SourceImage string `json:"sourceImage,omitempty"`
7828
7829	// SourceImageEncryptionKey: The customer-supplied encryption key of the
7830	// source image. Required if the source image is protected by a
7831	// customer-supplied encryption key.
7832	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
7833
7834	// SourceImageId: [Output Only] The ID value of the image used to create
7835	// this disk. This value identifies the exact image that was used to
7836	// create this persistent disk. For example, if you created the
7837	// persistent disk from an image that was later deleted and recreated
7838	// under the same name, the source image ID would identify the exact
7839	// version of the image that was used.
7840	SourceImageId string `json:"sourceImageId,omitempty"`
7841
7842	// SourceInPlaceSnapshot: The source in-place snapshot used to create
7843	// this disk. You can provide this as a partial or full URL to the
7844	// resource. For example, the following are valid values:
7845	// -
7846	// https://www.googleapis.com/compute/v1/projects/project/global/inPlaceSnapshots/inPlaceSnapshots
7847	// - projects/project/global/inPlaceSnapshots/inPlaceSnapshots
7848	// - global/inPlaceSnapshots/inPlaceSnapshots
7849	SourceInPlaceSnapshot string `json:"sourceInPlaceSnapshot,omitempty"`
7850
7851	// SourceInPlaceSnapshotId: [Output Only] The unique ID of the in-place
7852	// snapshot used to create this disk. This value identifies the exact
7853	// in-place snapshot that was used to create this persistent disk. For
7854	// example, if you created the persistent disk from an in-place snapshot
7855	// that was later deleted and recreated under the same name, the source
7856	// in-place snapshot ID would identify the exact version of the in-place
7857	// snapshot that was used.
7858	SourceInPlaceSnapshotId string `json:"sourceInPlaceSnapshotId,omitempty"`
7859
7860	// SourceSnapshot: The source snapshot used to create this disk. You can
7861	// provide this as a partial or full URL to the resource. For example,
7862	// the following are valid values:
7863	// -
7864	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
7865	// - projects/project/global/snapshots/snapshot
7866	// - global/snapshots/snapshot
7867	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7868
7869	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7870	// the source snapshot. Required if the source snapshot is protected by
7871	// a customer-supplied encryption key.
7872	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7873
7874	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7875	// create this disk. This value identifies the exact snapshot that was
7876	// used to create this persistent disk. For example, if you created the
7877	// persistent disk from a snapshot that was later deleted and recreated
7878	// under the same name, the source snapshot ID would identify the exact
7879	// version of the snapshot that was used.
7880	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7881
7882	// SourceStorageObject: The full Google Cloud Storage URI where the disk
7883	// image is stored. This file must be a gzip-compressed tarball whose
7884	// name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
7885	// Valid URIs may start with gs:// or https://storage.googleapis.com/.
7886	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
7887
7888	// Status: [Output Only] The status of disk creation. CREATING: Disk is
7889	// provisioning. RESTORING: Source data is being copied into the disk.
7890	// FAILED: Disk creation failed. READY: Disk is ready for use. DELETING:
7891	// Disk is deleting.
7892	//
7893	// Possible values:
7894	//   "CREATING"
7895	//   "DELETING"
7896	//   "FAILED"
7897	//   "READY"
7898	//   "RESTORING"
7899	Status string `json:"status,omitempty"`
7900
7901	// StorageType: [Deprecated] Storage type of the persistent disk.
7902	//
7903	// Possible values:
7904	//   "HDD"
7905	//   "SSD"
7906	StorageType string `json:"storageType,omitempty"`
7907
7908	// Type: URL of the disk type resource describing which disk type to use
7909	// to create the disk. Provide this when creating the disk. For example:
7910	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
7911	Type string `json:"type,omitempty"`
7912
7913	// Users: [Output Only] Links to the users of the disk (attached
7914	// instances) in form: projects/project/zones/zone/instances/instance
7915	Users []string `json:"users,omitempty"`
7916
7917	// Zone: [Output Only] URL of the zone where the disk resides. You must
7918	// specify this field as part of the HTTP request URL. It is not
7919	// settable as a field in the request body.
7920	Zone string `json:"zone,omitempty"`
7921
7922	// ServerResponse contains the HTTP response code and headers from the
7923	// server.
7924	googleapi.ServerResponse `json:"-"`
7925
7926	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7927	// to unconditionally include in API requests. By default, fields with
7928	// empty values are omitted from API requests. However, any non-pointer,
7929	// non-interface field appearing in ForceSendFields will be sent to the
7930	// server regardless of whether the field is empty or not. This may be
7931	// used to include empty fields in Patch requests.
7932	ForceSendFields []string `json:"-"`
7933
7934	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7935	// include in API requests with the JSON null value. By default, fields
7936	// with empty values are omitted from API requests. However, any field
7937	// with an empty value appearing in NullFields will be sent to the
7938	// server as null. It is an error if a field in this list has a
7939	// non-empty value. This may be used to include null fields in Patch
7940	// requests.
7941	NullFields []string `json:"-"`
7942}
7943
7944func (s *Disk) MarshalJSON() ([]byte, error) {
7945	type NoMethod Disk
7946	raw := NoMethod(*s)
7947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7948}
7949
7950type DiskAggregatedList struct {
7951	// Id: [Output Only] Unique identifier for the resource; defined by the
7952	// server.
7953	Id string `json:"id,omitempty"`
7954
7955	// Items: A list of DisksScopedList resources.
7956	Items map[string]DisksScopedList `json:"items,omitempty"`
7957
7958	// Kind: [Output Only] Type of resource. Always
7959	// compute#diskAggregatedList for aggregated lists of persistent disks.
7960	Kind string `json:"kind,omitempty"`
7961
7962	// NextPageToken: [Output Only] This token allows you to get the next
7963	// page of results for list requests. If the number of results is larger
7964	// than maxResults, use the nextPageToken as a value for the query
7965	// parameter pageToken in the next list request. Subsequent list
7966	// requests will have their own nextPageToken to continue paging through
7967	// the results.
7968	NextPageToken string `json:"nextPageToken,omitempty"`
7969
7970	// SelfLink: [Output Only] Server-defined URL for this resource.
7971	SelfLink string `json:"selfLink,omitempty"`
7972
7973	// Unreachables: [Output Only] Unreachable resources.
7974	Unreachables []string `json:"unreachables,omitempty"`
7975
7976	// Warning: [Output Only] Informational warning message.
7977	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
7978
7979	// ServerResponse contains the HTTP response code and headers from the
7980	// server.
7981	googleapi.ServerResponse `json:"-"`
7982
7983	// ForceSendFields is a list of field names (e.g. "Id") to
7984	// unconditionally include in API requests. By default, fields with
7985	// empty values are omitted from API requests. However, any non-pointer,
7986	// non-interface field appearing in ForceSendFields will be sent to the
7987	// server regardless of whether the field is empty or not. This may be
7988	// used to include empty fields in Patch requests.
7989	ForceSendFields []string `json:"-"`
7990
7991	// NullFields is a list of field names (e.g. "Id") to include in API
7992	// requests with the JSON null value. By default, fields with empty
7993	// values are omitted from API requests. However, any field with an
7994	// empty value appearing in NullFields will be sent to the server as
7995	// null. It is an error if a field in this list has a non-empty value.
7996	// This may be used to include null fields in Patch requests.
7997	NullFields []string `json:"-"`
7998}
7999
8000func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
8001	type NoMethod DiskAggregatedList
8002	raw := NoMethod(*s)
8003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8004}
8005
8006// DiskAggregatedListWarning: [Output Only] Informational warning
8007// message.
8008type DiskAggregatedListWarning struct {
8009	// Code: [Output Only] A warning code, if applicable. For example,
8010	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8011	// the response.
8012	//
8013	// Possible values:
8014	//   "CLEANUP_FAILED"
8015	//   "DEPRECATED_RESOURCE_USED"
8016	//   "DEPRECATED_TYPE_USED"
8017	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8018	//   "EXPERIMENTAL_TYPE_USED"
8019	//   "EXTERNAL_API_WARNING"
8020	//   "FIELD_VALUE_OVERRIDEN"
8021	//   "INJECTED_KERNELS_DEPRECATED"
8022	//   "MISSING_TYPE_DEPENDENCY"
8023	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8024	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8025	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8026	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8027	//   "NEXT_HOP_NOT_RUNNING"
8028	//   "NOT_CRITICAL_ERROR"
8029	//   "NO_RESULTS_ON_PAGE"
8030	//   "PARTIAL_SUCCESS"
8031	//   "REQUIRED_TOS_AGREEMENT"
8032	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8033	//   "RESOURCE_NOT_DELETED"
8034	//   "SCHEMA_VALIDATION_IGNORED"
8035	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8036	//   "UNDECLARED_PROPERTIES"
8037	//   "UNREACHABLE"
8038	Code string `json:"code,omitempty"`
8039
8040	// Data: [Output Only] Metadata about this warning in key: value format.
8041	// For example:
8042	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8043	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
8044
8045	// Message: [Output Only] A human-readable description of the warning
8046	// code.
8047	Message string `json:"message,omitempty"`
8048
8049	// ForceSendFields is a list of field names (e.g. "Code") to
8050	// unconditionally include in API requests. By default, fields with
8051	// empty values are omitted from API requests. However, any non-pointer,
8052	// non-interface field appearing in ForceSendFields will be sent to the
8053	// server regardless of whether the field is empty or not. This may be
8054	// used to include empty fields in Patch requests.
8055	ForceSendFields []string `json:"-"`
8056
8057	// NullFields is a list of field names (e.g. "Code") to include in API
8058	// requests with the JSON null value. By default, fields with empty
8059	// values are omitted from API requests. However, any field with an
8060	// empty value appearing in NullFields will be sent to the server as
8061	// null. It is an error if a field in this list has a non-empty value.
8062	// This may be used to include null fields in Patch requests.
8063	NullFields []string `json:"-"`
8064}
8065
8066func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
8067	type NoMethod DiskAggregatedListWarning
8068	raw := NoMethod(*s)
8069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8070}
8071
8072type DiskAggregatedListWarningData struct {
8073	// Key: [Output Only] A key that provides more detail on the warning
8074	// being returned. For example, for warnings where there are no results
8075	// in a list request for a particular zone, this key might be scope and
8076	// the key value might be the zone name. Other examples might be a key
8077	// indicating a deprecated resource and a suggested replacement, or a
8078	// warning about invalid network settings (for example, if an instance
8079	// attempts to perform IP forwarding but is not enabled for IP
8080	// forwarding).
8081	Key string `json:"key,omitempty"`
8082
8083	// Value: [Output Only] A warning data value corresponding to the key.
8084	Value string `json:"value,omitempty"`
8085
8086	// ForceSendFields is a list of field names (e.g. "Key") to
8087	// unconditionally include in API requests. By default, fields with
8088	// empty values are omitted from API requests. However, any non-pointer,
8089	// non-interface field appearing in ForceSendFields will be sent to the
8090	// server regardless of whether the field is empty or not. This may be
8091	// used to include empty fields in Patch requests.
8092	ForceSendFields []string `json:"-"`
8093
8094	// NullFields is a list of field names (e.g. "Key") to include in API
8095	// requests with the JSON null value. By default, fields with empty
8096	// values are omitted from API requests. However, any field with an
8097	// empty value appearing in NullFields will be sent to the server as
8098	// null. It is an error if a field in this list has a non-empty value.
8099	// This may be used to include null fields in Patch requests.
8100	NullFields []string `json:"-"`
8101}
8102
8103func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8104	type NoMethod DiskAggregatedListWarningData
8105	raw := NoMethod(*s)
8106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8107}
8108
8109// DiskInstantiationConfig: A specification of the desired way to
8110// instantiate a disk in the instance template when its created from a
8111// source instance.
8112type DiskInstantiationConfig struct {
8113	// AutoDelete: Specifies whether the disk will be auto-deleted when the
8114	// instance is deleted (but not when the disk is detached from the
8115	// instance).
8116	AutoDelete bool `json:"autoDelete,omitempty"`
8117
8118	// CustomImage: The custom source image to be used to restore this disk
8119	// when instantiating this instance template.
8120	CustomImage string `json:"customImage,omitempty"`
8121
8122	// DeviceName: Specifies the device name of the disk to which the
8123	// configurations apply to.
8124	DeviceName string `json:"deviceName,omitempty"`
8125
8126	// InstantiateFrom: Specifies whether to include the disk and what image
8127	// to use. Possible values are:
8128	// - source-image: to use the same image that was used to create the
8129	// source instance's corresponding disk. Applicable to the boot disk and
8130	// additional read-write disks.
8131	// - source-image-family: to use the same image family that was used to
8132	// create the source instance's corresponding disk. Applicable to the
8133	// boot disk and additional read-write disks.
8134	// - custom-image: to use a user-provided image url for disk creation.
8135	// Applicable to the boot disk and additional read-write disks.
8136	// - attach-read-only: to attach a read-only disk. Applicable to
8137	// read-only disks.
8138	// - do-not-include: to exclude a disk from the template. Applicable to
8139	// additional read-write disks, local SSDs, and read-only disks.
8140	//
8141	// Possible values:
8142	//   "ATTACH_READ_ONLY"
8143	//   "BLANK"
8144	//   "CUSTOM_IMAGE"
8145	//   "DEFAULT"
8146	//   "DO_NOT_INCLUDE"
8147	//   "SOURCE_IMAGE"
8148	//   "SOURCE_IMAGE_FAMILY"
8149	InstantiateFrom string `json:"instantiateFrom,omitempty"`
8150
8151	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
8152	// unconditionally include in API requests. By default, fields with
8153	// empty values are omitted from API requests. However, any non-pointer,
8154	// non-interface field appearing in ForceSendFields will be sent to the
8155	// server regardless of whether the field is empty or not. This may be
8156	// used to include empty fields in Patch requests.
8157	ForceSendFields []string `json:"-"`
8158
8159	// NullFields is a list of field names (e.g. "AutoDelete") to include in
8160	// API requests with the JSON null value. By default, fields with empty
8161	// values are omitted from API requests. However, any field with an
8162	// empty value appearing in NullFields will be sent to the server as
8163	// null. It is an error if a field in this list has a non-empty value.
8164	// This may be used to include null fields in Patch requests.
8165	NullFields []string `json:"-"`
8166}
8167
8168func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
8169	type NoMethod DiskInstantiationConfig
8170	raw := NoMethod(*s)
8171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8172}
8173
8174// DiskList: A list of Disk resources.
8175type DiskList struct {
8176	// Id: [Output Only] Unique identifier for the resource; defined by the
8177	// server.
8178	Id string `json:"id,omitempty"`
8179
8180	// Items: A list of Disk resources.
8181	Items []*Disk `json:"items,omitempty"`
8182
8183	// Kind: [Output Only] Type of resource. Always compute#diskList for
8184	// lists of disks.
8185	Kind string `json:"kind,omitempty"`
8186
8187	// NextPageToken: [Output Only] This token allows you to get the next
8188	// page of results for list requests. If the number of results is larger
8189	// than maxResults, use the nextPageToken as a value for the query
8190	// parameter pageToken in the next list request. Subsequent list
8191	// requests will have their own nextPageToken to continue paging through
8192	// the results.
8193	NextPageToken string `json:"nextPageToken,omitempty"`
8194
8195	// SelfLink: [Output Only] Server-defined URL for this resource.
8196	SelfLink string `json:"selfLink,omitempty"`
8197
8198	// Warning: [Output Only] Informational warning message.
8199	Warning *DiskListWarning `json:"warning,omitempty"`
8200
8201	// ServerResponse contains the HTTP response code and headers from the
8202	// server.
8203	googleapi.ServerResponse `json:"-"`
8204
8205	// ForceSendFields is a list of field names (e.g. "Id") to
8206	// unconditionally include in API requests. By default, fields with
8207	// empty values are omitted from API requests. However, any non-pointer,
8208	// non-interface field appearing in ForceSendFields will be sent to the
8209	// server regardless of whether the field is empty or not. This may be
8210	// used to include empty fields in Patch requests.
8211	ForceSendFields []string `json:"-"`
8212
8213	// NullFields is a list of field names (e.g. "Id") to include in API
8214	// requests with the JSON null value. By default, fields with empty
8215	// values are omitted from API requests. However, any field with an
8216	// empty value appearing in NullFields will be sent to the server as
8217	// null. It is an error if a field in this list has a non-empty value.
8218	// This may be used to include null fields in Patch requests.
8219	NullFields []string `json:"-"`
8220}
8221
8222func (s *DiskList) MarshalJSON() ([]byte, error) {
8223	type NoMethod DiskList
8224	raw := NoMethod(*s)
8225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8226}
8227
8228// DiskListWarning: [Output Only] Informational warning message.
8229type DiskListWarning struct {
8230	// Code: [Output Only] A warning code, if applicable. For example,
8231	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8232	// the response.
8233	//
8234	// Possible values:
8235	//   "CLEANUP_FAILED"
8236	//   "DEPRECATED_RESOURCE_USED"
8237	//   "DEPRECATED_TYPE_USED"
8238	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8239	//   "EXPERIMENTAL_TYPE_USED"
8240	//   "EXTERNAL_API_WARNING"
8241	//   "FIELD_VALUE_OVERRIDEN"
8242	//   "INJECTED_KERNELS_DEPRECATED"
8243	//   "MISSING_TYPE_DEPENDENCY"
8244	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8245	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8246	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8247	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8248	//   "NEXT_HOP_NOT_RUNNING"
8249	//   "NOT_CRITICAL_ERROR"
8250	//   "NO_RESULTS_ON_PAGE"
8251	//   "PARTIAL_SUCCESS"
8252	//   "REQUIRED_TOS_AGREEMENT"
8253	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8254	//   "RESOURCE_NOT_DELETED"
8255	//   "SCHEMA_VALIDATION_IGNORED"
8256	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8257	//   "UNDECLARED_PROPERTIES"
8258	//   "UNREACHABLE"
8259	Code string `json:"code,omitempty"`
8260
8261	// Data: [Output Only] Metadata about this warning in key: value format.
8262	// For example:
8263	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8264	Data []*DiskListWarningData `json:"data,omitempty"`
8265
8266	// Message: [Output Only] A human-readable description of the warning
8267	// code.
8268	Message string `json:"message,omitempty"`
8269
8270	// ForceSendFields is a list of field names (e.g. "Code") to
8271	// unconditionally include in API requests. By default, fields with
8272	// empty values are omitted from API requests. However, any non-pointer,
8273	// non-interface field appearing in ForceSendFields will be sent to the
8274	// server regardless of whether the field is empty or not. This may be
8275	// used to include empty fields in Patch requests.
8276	ForceSendFields []string `json:"-"`
8277
8278	// NullFields is a list of field names (e.g. "Code") to include in API
8279	// 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 *DiskListWarning) MarshalJSON() ([]byte, error) {
8288	type NoMethod DiskListWarning
8289	raw := NoMethod(*s)
8290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8291}
8292
8293type DiskListWarningData struct {
8294	// Key: [Output Only] A key that provides more detail on the warning
8295	// being returned. For example, for warnings where there are no results
8296	// in a list request for a particular zone, this key might be scope and
8297	// the key value might be the zone name. Other examples might be a key
8298	// indicating a deprecated resource and a suggested replacement, or a
8299	// warning about invalid network settings (for example, if an instance
8300	// attempts to perform IP forwarding but is not enabled for IP
8301	// forwarding).
8302	Key string `json:"key,omitempty"`
8303
8304	// Value: [Output Only] A warning data value corresponding to the key.
8305	Value string `json:"value,omitempty"`
8306
8307	// ForceSendFields is a list of field names (e.g. "Key") to
8308	// unconditionally include in API requests. By default, fields with
8309	// empty values are omitted from API requests. However, any non-pointer,
8310	// non-interface field appearing in ForceSendFields will be sent to the
8311	// server regardless of whether the field is empty or not. This may be
8312	// used to include empty fields in Patch requests.
8313	ForceSendFields []string `json:"-"`
8314
8315	// NullFields is a list of field names (e.g. "Key") to include in API
8316	// requests with the JSON null value. By default, fields with empty
8317	// values are omitted from API requests. However, any field with an
8318	// empty value appearing in NullFields will be sent to the server as
8319	// null. It is an error if a field in this list has a non-empty value.
8320	// This may be used to include null fields in Patch requests.
8321	NullFields []string `json:"-"`
8322}
8323
8324func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
8325	type NoMethod DiskListWarningData
8326	raw := NoMethod(*s)
8327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8328}
8329
8330type DiskMoveRequest struct {
8331	// DestinationZone: The URL of the destination zone to move the disk.
8332	// This can be a full or partial URL. For example, the following are all
8333	// valid URLs to a zone:
8334	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8335	//
8336	// - projects/project/zones/zone
8337	// - zones/zone
8338	DestinationZone string `json:"destinationZone,omitempty"`
8339
8340	// TargetDisk: The URL of the target disk to move. This can be a full or
8341	// partial URL. For example, the following are all valid URLs to a disk:
8342	//
8343	// -
8344	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8345	// - projects/project/zones/zone/disks/disk
8346	// - zones/zone/disks/disk
8347	TargetDisk string `json:"targetDisk,omitempty"`
8348
8349	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8350	// unconditionally include in API requests. By default, fields with
8351	// empty values are omitted from API requests. However, any non-pointer,
8352	// non-interface field appearing in ForceSendFields will be sent to the
8353	// server regardless of whether the field is empty or not. This may be
8354	// used to include empty fields in Patch requests.
8355	ForceSendFields []string `json:"-"`
8356
8357	// NullFields is a list of field names (e.g. "DestinationZone") to
8358	// include in API requests with the JSON null value. By default, fields
8359	// with empty values are omitted from API requests. However, any field
8360	// with an empty value appearing in NullFields will be sent to the
8361	// server as null. It is an error if a field in this list has a
8362	// non-empty value. This may be used to include null fields in Patch
8363	// requests.
8364	NullFields []string `json:"-"`
8365}
8366
8367func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8368	type NoMethod DiskMoveRequest
8369	raw := NoMethod(*s)
8370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8371}
8372
8373// DiskType: Represents a Disk Type resource.
8374//
8375// Google Compute Engine has two Disk Type resources:
8376//
8377// *
8378// [Regional](/compute/docs/reference/rest/{$api_version}/regionDiskTypes
8379// ) *
8380// [Zonal](/compute/docs/reference/rest/{$api_version}/diskTypes)
8381//
8382// You can choose from a variety of disk types based on your needs. For
8383// more information, read Storage options.
8384//
8385// The diskTypes resource represents disk types for a zonal persistent
8386// disk. For more information, read Zonal persistent disks.
8387//
8388// The regionDiskTypes resource represents disk types for a regional
8389// persistent disk. For more information, read Regional persistent
8390// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
8391// {$api_version}.regionDiskTypes ==)
8392type DiskType struct {
8393	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8394	// format.
8395	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8396
8397	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8398	// GB.
8399	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8400
8401	// Deprecated: [Output Only] The deprecation status associated with this
8402	// disk type.
8403	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8404
8405	// Description: [Output Only] An optional description of this resource.
8406	Description string `json:"description,omitempty"`
8407
8408	// Id: [Output Only] The unique identifier for the resource. This
8409	// identifier is defined by the server.
8410	Id uint64 `json:"id,omitempty,string"`
8411
8412	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8413	// disk types.
8414	Kind string `json:"kind,omitempty"`
8415
8416	// Name: [Output Only] Name of the resource.
8417	Name string `json:"name,omitempty"`
8418
8419	// Region: [Output Only] URL of the region where the disk type resides.
8420	// Only applicable for regional resources. You must specify this field
8421	// as part of the HTTP request URL. It is not settable as a field in the
8422	// request body.
8423	Region string `json:"region,omitempty"`
8424
8425	// SelfLink: [Output Only] Server-defined URL for the resource.
8426	SelfLink string `json:"selfLink,omitempty"`
8427
8428	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
8429	// with the resource id.
8430	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
8431
8432	// ValidDiskSize: [Output Only] An optional textual description of the
8433	// valid disk size, such as "10GB-10TB".
8434	ValidDiskSize string `json:"validDiskSize,omitempty"`
8435
8436	// Zone: [Output Only] URL of the zone where the disk type resides. You
8437	// must specify this field as part of the HTTP request URL. It is not
8438	// settable as a field in the request body.
8439	Zone string `json:"zone,omitempty"`
8440
8441	// ServerResponse contains the HTTP response code and headers from the
8442	// server.
8443	googleapi.ServerResponse `json:"-"`
8444
8445	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8446	// to unconditionally include in API requests. By default, fields with
8447	// empty values are omitted from API requests. However, any non-pointer,
8448	// non-interface field appearing in ForceSendFields will be sent to the
8449	// server regardless of whether the field is empty or not. This may be
8450	// used to include empty fields in Patch requests.
8451	ForceSendFields []string `json:"-"`
8452
8453	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8454	// include in API requests with the JSON null value. By default, fields
8455	// with empty values are omitted from API requests. However, any field
8456	// with an empty value appearing in NullFields will be sent to the
8457	// server as null. It is an error if a field in this list has a
8458	// non-empty value. This may be used to include null fields in Patch
8459	// requests.
8460	NullFields []string `json:"-"`
8461}
8462
8463func (s *DiskType) MarshalJSON() ([]byte, error) {
8464	type NoMethod DiskType
8465	raw := NoMethod(*s)
8466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8467}
8468
8469type DiskTypeAggregatedList struct {
8470	// Id: [Output Only] Unique identifier for the resource; defined by the
8471	// server.
8472	Id string `json:"id,omitempty"`
8473
8474	// Items: A list of DiskTypesScopedList resources.
8475	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8476
8477	// Kind: [Output Only] Type of resource. Always
8478	// compute#diskTypeAggregatedList.
8479	Kind string `json:"kind,omitempty"`
8480
8481	// NextPageToken: [Output Only] This token allows you to get the next
8482	// page of results for list requests. If the number of results is larger
8483	// than maxResults, use the nextPageToken as a value for the query
8484	// parameter pageToken in the next list request. Subsequent list
8485	// requests will have their own nextPageToken to continue paging through
8486	// the results.
8487	NextPageToken string `json:"nextPageToken,omitempty"`
8488
8489	// SelfLink: [Output Only] Server-defined URL for this resource.
8490	SelfLink string `json:"selfLink,omitempty"`
8491
8492	// Unreachables: [Output Only] Unreachable resources.
8493	Unreachables []string `json:"unreachables,omitempty"`
8494
8495	// Warning: [Output Only] Informational warning message.
8496	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8497
8498	// ServerResponse contains the HTTP response code and headers from the
8499	// server.
8500	googleapi.ServerResponse `json:"-"`
8501
8502	// ForceSendFields is a list of field names (e.g. "Id") to
8503	// unconditionally include in API requests. By default, fields with
8504	// empty values are omitted from API requests. However, any non-pointer,
8505	// non-interface field appearing in ForceSendFields will be sent to the
8506	// server regardless of whether the field is empty or not. This may be
8507	// used to include empty fields in Patch requests.
8508	ForceSendFields []string `json:"-"`
8509
8510	// NullFields is a list of field names (e.g. "Id") to include in API
8511	// requests with the JSON null value. By default, fields with empty
8512	// values are omitted from API requests. However, any field with an
8513	// empty value appearing in NullFields will be sent to the server as
8514	// null. It is an error if a field in this list has a non-empty value.
8515	// This may be used to include null fields in Patch requests.
8516	NullFields []string `json:"-"`
8517}
8518
8519func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8520	type NoMethod DiskTypeAggregatedList
8521	raw := NoMethod(*s)
8522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8523}
8524
8525// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8526// message.
8527type DiskTypeAggregatedListWarning struct {
8528	// Code: [Output Only] A warning code, if applicable. For example,
8529	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8530	// the response.
8531	//
8532	// Possible values:
8533	//   "CLEANUP_FAILED"
8534	//   "DEPRECATED_RESOURCE_USED"
8535	//   "DEPRECATED_TYPE_USED"
8536	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8537	//   "EXPERIMENTAL_TYPE_USED"
8538	//   "EXTERNAL_API_WARNING"
8539	//   "FIELD_VALUE_OVERRIDEN"
8540	//   "INJECTED_KERNELS_DEPRECATED"
8541	//   "MISSING_TYPE_DEPENDENCY"
8542	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8543	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8544	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8545	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8546	//   "NEXT_HOP_NOT_RUNNING"
8547	//   "NOT_CRITICAL_ERROR"
8548	//   "NO_RESULTS_ON_PAGE"
8549	//   "PARTIAL_SUCCESS"
8550	//   "REQUIRED_TOS_AGREEMENT"
8551	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8552	//   "RESOURCE_NOT_DELETED"
8553	//   "SCHEMA_VALIDATION_IGNORED"
8554	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8555	//   "UNDECLARED_PROPERTIES"
8556	//   "UNREACHABLE"
8557	Code string `json:"code,omitempty"`
8558
8559	// Data: [Output Only] Metadata about this warning in key: value format.
8560	// For example:
8561	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8562	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8563
8564	// Message: [Output Only] A human-readable description of the warning
8565	// code.
8566	Message string `json:"message,omitempty"`
8567
8568	// ForceSendFields is a list of field names (e.g. "Code") to
8569	// unconditionally include in API requests. By default, fields with
8570	// empty values are omitted from API requests. However, any non-pointer,
8571	// non-interface field appearing in ForceSendFields will be sent to the
8572	// server regardless of whether the field is empty or not. This may be
8573	// used to include empty fields in Patch requests.
8574	ForceSendFields []string `json:"-"`
8575
8576	// NullFields is a list of field names (e.g. "Code") to include in API
8577	// requests with the JSON null value. By default, fields with empty
8578	// values are omitted from API requests. However, any field with an
8579	// empty value appearing in NullFields will be sent to the server as
8580	// null. It is an error if a field in this list has a non-empty value.
8581	// This may be used to include null fields in Patch requests.
8582	NullFields []string `json:"-"`
8583}
8584
8585func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8586	type NoMethod DiskTypeAggregatedListWarning
8587	raw := NoMethod(*s)
8588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8589}
8590
8591type DiskTypeAggregatedListWarningData struct {
8592	// Key: [Output Only] A key that provides more detail on the warning
8593	// being returned. For example, for warnings where there are no results
8594	// in a list request for a particular zone, this key might be scope and
8595	// the key value might be the zone name. Other examples might be a key
8596	// indicating a deprecated resource and a suggested replacement, or a
8597	// warning about invalid network settings (for example, if an instance
8598	// attempts to perform IP forwarding but is not enabled for IP
8599	// forwarding).
8600	Key string `json:"key,omitempty"`
8601
8602	// Value: [Output Only] A warning data value corresponding to the key.
8603	Value string `json:"value,omitempty"`
8604
8605	// ForceSendFields is a list of field names (e.g. "Key") to
8606	// unconditionally include in API requests. By default, fields with
8607	// empty values are omitted from API requests. However, any non-pointer,
8608	// non-interface field appearing in ForceSendFields will be sent to the
8609	// server regardless of whether the field is empty or not. This may be
8610	// used to include empty fields in Patch requests.
8611	ForceSendFields []string `json:"-"`
8612
8613	// NullFields is a list of field names (e.g. "Key") to include in API
8614	// requests with the JSON null value. By default, fields with empty
8615	// values are omitted from API requests. However, any field with an
8616	// empty value appearing in NullFields will be sent to the server as
8617	// null. It is an error if a field in this list has a non-empty value.
8618	// This may be used to include null fields in Patch requests.
8619	NullFields []string `json:"-"`
8620}
8621
8622func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8623	type NoMethod DiskTypeAggregatedListWarningData
8624	raw := NoMethod(*s)
8625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8626}
8627
8628// DiskTypeList: Contains a list of disk types.
8629type DiskTypeList struct {
8630	// Id: [Output Only] Unique identifier for the resource; defined by the
8631	// server.
8632	Id string `json:"id,omitempty"`
8633
8634	// Items: A list of DiskType resources.
8635	Items []*DiskType `json:"items,omitempty"`
8636
8637	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8638	// disk types.
8639	Kind string `json:"kind,omitempty"`
8640
8641	// NextPageToken: [Output Only] This token allows you to get the next
8642	// page of results for list requests. If the number of results is larger
8643	// than maxResults, use the nextPageToken as a value for the query
8644	// parameter pageToken in the next list request. Subsequent list
8645	// requests will have their own nextPageToken to continue paging through
8646	// the results.
8647	NextPageToken string `json:"nextPageToken,omitempty"`
8648
8649	// SelfLink: [Output Only] Server-defined URL for this resource.
8650	SelfLink string `json:"selfLink,omitempty"`
8651
8652	// Warning: [Output Only] Informational warning message.
8653	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8654
8655	// ServerResponse contains the HTTP response code and headers from the
8656	// server.
8657	googleapi.ServerResponse `json:"-"`
8658
8659	// ForceSendFields is a list of field names (e.g. "Id") to
8660	// unconditionally include in API requests. By default, fields with
8661	// empty values are omitted from API requests. However, any non-pointer,
8662	// non-interface field appearing in ForceSendFields will be sent to the
8663	// server regardless of whether the field is empty or not. This may be
8664	// used to include empty fields in Patch requests.
8665	ForceSendFields []string `json:"-"`
8666
8667	// NullFields is a list of field names (e.g. "Id") to include in API
8668	// requests with the JSON null value. By default, fields with empty
8669	// values are omitted from API requests. However, any field with an
8670	// empty value appearing in NullFields will be sent to the server as
8671	// null. It is an error if a field in this list has a non-empty value.
8672	// This may be used to include null fields in Patch requests.
8673	NullFields []string `json:"-"`
8674}
8675
8676func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8677	type NoMethod DiskTypeList
8678	raw := NoMethod(*s)
8679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8680}
8681
8682// DiskTypeListWarning: [Output Only] Informational warning message.
8683type DiskTypeListWarning struct {
8684	// Code: [Output Only] A warning code, if applicable. For example,
8685	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8686	// the response.
8687	//
8688	// Possible values:
8689	//   "CLEANUP_FAILED"
8690	//   "DEPRECATED_RESOURCE_USED"
8691	//   "DEPRECATED_TYPE_USED"
8692	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8693	//   "EXPERIMENTAL_TYPE_USED"
8694	//   "EXTERNAL_API_WARNING"
8695	//   "FIELD_VALUE_OVERRIDEN"
8696	//   "INJECTED_KERNELS_DEPRECATED"
8697	//   "MISSING_TYPE_DEPENDENCY"
8698	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8699	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8700	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8701	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8702	//   "NEXT_HOP_NOT_RUNNING"
8703	//   "NOT_CRITICAL_ERROR"
8704	//   "NO_RESULTS_ON_PAGE"
8705	//   "PARTIAL_SUCCESS"
8706	//   "REQUIRED_TOS_AGREEMENT"
8707	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8708	//   "RESOURCE_NOT_DELETED"
8709	//   "SCHEMA_VALIDATION_IGNORED"
8710	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8711	//   "UNDECLARED_PROPERTIES"
8712	//   "UNREACHABLE"
8713	Code string `json:"code,omitempty"`
8714
8715	// Data: [Output Only] Metadata about this warning in key: value format.
8716	// For example:
8717	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8718	Data []*DiskTypeListWarningData `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 values are omitted from API requests. However, any non-pointer,
8727	// non-interface field appearing in ForceSendFields will be sent to the
8728	// server regardless of whether the field is empty or not. This may be
8729	// 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 *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8742	type NoMethod DiskTypeListWarning
8743	raw := NoMethod(*s)
8744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8745}
8746
8747type DiskTypeListWarningData 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 values are omitted from API requests. However, any non-pointer,
8764	// non-interface field appearing in ForceSendFields will be sent to the
8765	// server regardless of whether the field is empty or not. This may be
8766	// 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 *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8779	type NoMethod DiskTypeListWarningData
8780	raw := NoMethod(*s)
8781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8782}
8783
8784type DiskTypesScopedList struct {
8785	// DiskTypes: [Output Only] A list of disk types contained in this
8786	// scope.
8787	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8788
8789	// Warning: [Output Only] Informational warning which replaces the list
8790	// of disk types when the list is empty.
8791	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8792
8793	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8794	// unconditionally include in API requests. By default, fields with
8795	// empty values are omitted from API requests. However, any non-pointer,
8796	// non-interface field appearing in ForceSendFields will be sent to the
8797	// server regardless of whether the field is empty or not. This may be
8798	// used to include empty fields in Patch requests.
8799	ForceSendFields []string `json:"-"`
8800
8801	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8802	// API requests with the JSON null value. By default, fields with empty
8803	// values are omitted from API requests. However, any field with an
8804	// empty value appearing in NullFields will be sent to the server as
8805	// null. It is an error if a field in this list has a non-empty value.
8806	// This may be used to include null fields in Patch requests.
8807	NullFields []string `json:"-"`
8808}
8809
8810func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
8811	type NoMethod DiskTypesScopedList
8812	raw := NoMethod(*s)
8813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8814}
8815
8816// DiskTypesScopedListWarning: [Output Only] Informational warning which
8817// replaces the list of disk types when the list is empty.
8818type DiskTypesScopedListWarning struct {
8819	// Code: [Output Only] A warning code, if applicable. For example,
8820	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8821	// the response.
8822	//
8823	// Possible values:
8824	//   "CLEANUP_FAILED"
8825	//   "DEPRECATED_RESOURCE_USED"
8826	//   "DEPRECATED_TYPE_USED"
8827	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8828	//   "EXPERIMENTAL_TYPE_USED"
8829	//   "EXTERNAL_API_WARNING"
8830	//   "FIELD_VALUE_OVERRIDEN"
8831	//   "INJECTED_KERNELS_DEPRECATED"
8832	//   "MISSING_TYPE_DEPENDENCY"
8833	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8834	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8835	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8836	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8837	//   "NEXT_HOP_NOT_RUNNING"
8838	//   "NOT_CRITICAL_ERROR"
8839	//   "NO_RESULTS_ON_PAGE"
8840	//   "PARTIAL_SUCCESS"
8841	//   "REQUIRED_TOS_AGREEMENT"
8842	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8843	//   "RESOURCE_NOT_DELETED"
8844	//   "SCHEMA_VALIDATION_IGNORED"
8845	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8846	//   "UNDECLARED_PROPERTIES"
8847	//   "UNREACHABLE"
8848	Code string `json:"code,omitempty"`
8849
8850	// Data: [Output Only] Metadata about this warning in key: value format.
8851	// For example:
8852	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8853	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
8854
8855	// Message: [Output Only] A human-readable description of the warning
8856	// code.
8857	Message string `json:"message,omitempty"`
8858
8859	// ForceSendFields is a list of field names (e.g. "Code") to
8860	// unconditionally include in API requests. By default, fields with
8861	// empty values are omitted from API requests. However, any non-pointer,
8862	// non-interface field appearing in ForceSendFields will be sent to the
8863	// server regardless of whether the field is empty or not. This may be
8864	// used to include empty fields in Patch requests.
8865	ForceSendFields []string `json:"-"`
8866
8867	// NullFields is a list of field names (e.g. "Code") to include in API
8868	// requests with the JSON null value. By default, fields with empty
8869	// values are omitted from API requests. However, any field with an
8870	// empty value appearing in NullFields will be sent to the server as
8871	// null. It is an error if a field in this list has a non-empty value.
8872	// This may be used to include null fields in Patch requests.
8873	NullFields []string `json:"-"`
8874}
8875
8876func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
8877	type NoMethod DiskTypesScopedListWarning
8878	raw := NoMethod(*s)
8879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8880}
8881
8882type DiskTypesScopedListWarningData struct {
8883	// Key: [Output Only] A key that provides more detail on the warning
8884	// being returned. For example, for warnings where there are no results
8885	// in a list request for a particular zone, this key might be scope and
8886	// the key value might be the zone name. Other examples might be a key
8887	// indicating a deprecated resource and a suggested replacement, or a
8888	// warning about invalid network settings (for example, if an instance
8889	// attempts to perform IP forwarding but is not enabled for IP
8890	// forwarding).
8891	Key string `json:"key,omitempty"`
8892
8893	// Value: [Output Only] A warning data value corresponding to the key.
8894	Value string `json:"value,omitempty"`
8895
8896	// ForceSendFields is a list of field names (e.g. "Key") to
8897	// unconditionally include in API requests. By default, fields with
8898	// empty values are omitted from API requests. However, any non-pointer,
8899	// non-interface field appearing in ForceSendFields will be sent to the
8900	// server regardless of whether the field is empty or not. This may be
8901	// used to include empty fields in Patch requests.
8902	ForceSendFields []string `json:"-"`
8903
8904	// NullFields is a list of field names (e.g. "Key") to include in API
8905	// requests with the JSON null value. By default, fields with empty
8906	// values are omitted from API requests. However, any field with an
8907	// empty value appearing in NullFields will be sent to the server as
8908	// null. It is an error if a field in this list has a non-empty value.
8909	// This may be used to include null fields in Patch requests.
8910	NullFields []string `json:"-"`
8911}
8912
8913func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
8914	type NoMethod DiskTypesScopedListWarningData
8915	raw := NoMethod(*s)
8916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8917}
8918
8919type DisksAddResourcePoliciesRequest struct {
8920	// ResourcePolicies: Resource policies to be added to this disk.
8921	// Currently you can only specify one policy here.
8922	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8923
8924	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8925	// unconditionally include in API requests. By default, fields with
8926	// empty values are omitted from API requests. However, any non-pointer,
8927	// non-interface field appearing in ForceSendFields will be sent to the
8928	// server regardless of whether the field is empty or not. This may be
8929	// used to include empty fields in Patch requests.
8930	ForceSendFields []string `json:"-"`
8931
8932	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8933	// include in API requests with the JSON null value. By default, fields
8934	// with empty values are omitted from API requests. However, any field
8935	// with an empty value appearing in NullFields will be sent to the
8936	// server as null. It is an error if a field in this list has a
8937	// non-empty value. This may be used to include null fields in Patch
8938	// requests.
8939	NullFields []string `json:"-"`
8940}
8941
8942func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8943	type NoMethod DisksAddResourcePoliciesRequest
8944	raw := NoMethod(*s)
8945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8946}
8947
8948type DisksRemoveResourcePoliciesRequest struct {
8949	// ResourcePolicies: Resource policies to be removed from this disk.
8950	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8951
8952	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8953	// unconditionally include in API requests. By default, fields with
8954	// empty values are omitted from API requests. However, any non-pointer,
8955	// non-interface field appearing in ForceSendFields will be sent to the
8956	// server regardless of whether the field is empty or not. This may be
8957	// used to include empty fields in Patch requests.
8958	ForceSendFields []string `json:"-"`
8959
8960	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8961	// include in API requests with the JSON null value. By default, fields
8962	// with empty values are omitted from API requests. However, any field
8963	// with an empty value appearing in NullFields will be sent to the
8964	// server as null. It is an error if a field in this list has a
8965	// non-empty value. This may be used to include null fields in Patch
8966	// requests.
8967	NullFields []string `json:"-"`
8968}
8969
8970func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8971	type NoMethod DisksRemoveResourcePoliciesRequest
8972	raw := NoMethod(*s)
8973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8974}
8975
8976type DisksResizeRequest struct {
8977	// SizeGb: The new size of the persistent disk, which is specified in
8978	// GB.
8979	SizeGb int64 `json:"sizeGb,omitempty,string"`
8980
8981	// ForceSendFields is a list of field names (e.g. "SizeGb") to
8982	// unconditionally include in API requests. By default, fields with
8983	// empty values are omitted from API requests. However, any non-pointer,
8984	// non-interface field appearing in ForceSendFields will be sent to the
8985	// server regardless of whether the field is empty or not. This may be
8986	// used to include empty fields in Patch requests.
8987	ForceSendFields []string `json:"-"`
8988
8989	// NullFields is a list of field names (e.g. "SizeGb") to include in API
8990	// requests with the JSON null value. By default, fields with empty
8991	// values are omitted from API requests. However, any field with an
8992	// empty value appearing in NullFields will be sent to the server as
8993	// null. It is an error if a field in this list has a non-empty value.
8994	// This may be used to include null fields in Patch requests.
8995	NullFields []string `json:"-"`
8996}
8997
8998func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
8999	type NoMethod DisksResizeRequest
9000	raw := NoMethod(*s)
9001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9002}
9003
9004type DisksScopedList struct {
9005	// Disks: [Output Only] A list of disks contained in this scope.
9006	Disks []*Disk `json:"disks,omitempty"`
9007
9008	// Warning: [Output Only] Informational warning which replaces the list
9009	// of disks when the list is empty.
9010	Warning *DisksScopedListWarning `json:"warning,omitempty"`
9011
9012	// ForceSendFields is a list of field names (e.g. "Disks") to
9013	// unconditionally include in API requests. By default, fields with
9014	// empty values are omitted from API requests. However, any non-pointer,
9015	// non-interface field appearing in ForceSendFields will be sent to the
9016	// server regardless of whether the field is empty or not. This may be
9017	// used to include empty fields in Patch requests.
9018	ForceSendFields []string `json:"-"`
9019
9020	// NullFields is a list of field names (e.g. "Disks") to include in API
9021	// requests with the JSON null value. By default, fields with empty
9022	// values are omitted from API requests. However, any field with an
9023	// empty value appearing in NullFields will be sent to the server as
9024	// null. It is an error if a field in this list has a non-empty value.
9025	// This may be used to include null fields in Patch requests.
9026	NullFields []string `json:"-"`
9027}
9028
9029func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
9030	type NoMethod DisksScopedList
9031	raw := NoMethod(*s)
9032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9033}
9034
9035// DisksScopedListWarning: [Output Only] Informational warning which
9036// replaces the list of disks when the list is empty.
9037type DisksScopedListWarning struct {
9038	// Code: [Output Only] A warning code, if applicable. For example,
9039	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9040	// the response.
9041	//
9042	// Possible values:
9043	//   "CLEANUP_FAILED"
9044	//   "DEPRECATED_RESOURCE_USED"
9045	//   "DEPRECATED_TYPE_USED"
9046	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9047	//   "EXPERIMENTAL_TYPE_USED"
9048	//   "EXTERNAL_API_WARNING"
9049	//   "FIELD_VALUE_OVERRIDEN"
9050	//   "INJECTED_KERNELS_DEPRECATED"
9051	//   "MISSING_TYPE_DEPENDENCY"
9052	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9053	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9054	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9055	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9056	//   "NEXT_HOP_NOT_RUNNING"
9057	//   "NOT_CRITICAL_ERROR"
9058	//   "NO_RESULTS_ON_PAGE"
9059	//   "PARTIAL_SUCCESS"
9060	//   "REQUIRED_TOS_AGREEMENT"
9061	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9062	//   "RESOURCE_NOT_DELETED"
9063	//   "SCHEMA_VALIDATION_IGNORED"
9064	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9065	//   "UNDECLARED_PROPERTIES"
9066	//   "UNREACHABLE"
9067	Code string `json:"code,omitempty"`
9068
9069	// Data: [Output Only] Metadata about this warning in key: value format.
9070	// For example:
9071	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9072	Data []*DisksScopedListWarningData `json:"data,omitempty"`
9073
9074	// Message: [Output Only] A human-readable description of the warning
9075	// code.
9076	Message string `json:"message,omitempty"`
9077
9078	// ForceSendFields is a list of field names (e.g. "Code") to
9079	// unconditionally include in API requests. By default, fields with
9080	// empty values are omitted from API requests. However, any non-pointer,
9081	// non-interface field appearing in ForceSendFields will be sent to the
9082	// server regardless of whether the field is empty or not. This may be
9083	// used to include empty fields in Patch requests.
9084	ForceSendFields []string `json:"-"`
9085
9086	// NullFields is a list of field names (e.g. "Code") to include in API
9087	// requests with the JSON null value. By default, fields with empty
9088	// values are omitted from API requests. However, any field with an
9089	// empty value appearing in NullFields will be sent to the server as
9090	// null. It is an error if a field in this list has a non-empty value.
9091	// This may be used to include null fields in Patch requests.
9092	NullFields []string `json:"-"`
9093}
9094
9095func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
9096	type NoMethod DisksScopedListWarning
9097	raw := NoMethod(*s)
9098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9099}
9100
9101type DisksScopedListWarningData struct {
9102	// Key: [Output Only] A key that provides more detail on the warning
9103	// being returned. For example, for warnings where there are no results
9104	// in a list request for a particular zone, this key might be scope and
9105	// the key value might be the zone name. Other examples might be a key
9106	// indicating a deprecated resource and a suggested replacement, or a
9107	// warning about invalid network settings (for example, if an instance
9108	// attempts to perform IP forwarding but is not enabled for IP
9109	// forwarding).
9110	Key string `json:"key,omitempty"`
9111
9112	// Value: [Output Only] A warning data value corresponding to the key.
9113	Value string `json:"value,omitempty"`
9114
9115	// ForceSendFields is a list of field names (e.g. "Key") to
9116	// unconditionally include in API requests. By default, fields with
9117	// empty values are omitted from API requests. However, any non-pointer,
9118	// non-interface field appearing in ForceSendFields will be sent to the
9119	// server regardless of whether the field is empty or not. This may be
9120	// used to include empty fields in Patch requests.
9121	ForceSendFields []string `json:"-"`
9122
9123	// NullFields is a list of field names (e.g. "Key") to include in API
9124	// requests with the JSON null value. By default, fields with empty
9125	// values are omitted from API requests. However, any field with an
9126	// empty value appearing in NullFields will be sent to the server as
9127	// null. It is an error if a field in this list has a non-empty value.
9128	// This may be used to include null fields in Patch requests.
9129	NullFields []string `json:"-"`
9130}
9131
9132func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
9133	type NoMethod DisksScopedListWarningData
9134	raw := NoMethod(*s)
9135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9136}
9137
9138// DisplayDevice: A set of Display Device options
9139type DisplayDevice struct {
9140	// EnableDisplay: Defines whether the instance has Display enabled.
9141	EnableDisplay bool `json:"enableDisplay,omitempty"`
9142
9143	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
9144	// unconditionally include in API requests. By default, fields with
9145	// empty values are omitted from API requests. However, any non-pointer,
9146	// non-interface field appearing in ForceSendFields will be sent to the
9147	// server regardless of whether the field is empty or not. This may be
9148	// used to include empty fields in Patch requests.
9149	ForceSendFields []string `json:"-"`
9150
9151	// NullFields is a list of field names (e.g. "EnableDisplay") to include
9152	// in API requests with the JSON null value. By default, fields with
9153	// empty values are omitted from API requests. However, any field with
9154	// an empty value appearing in NullFields will be sent to the server as
9155	// null. It is an error if a field in this list has a non-empty value.
9156	// This may be used to include null fields in Patch requests.
9157	NullFields []string `json:"-"`
9158}
9159
9160func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
9161	type NoMethod DisplayDevice
9162	raw := NoMethod(*s)
9163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9164}
9165
9166type DistributionPolicy struct {
9167	// TargetShape: The shape to which the group converges either
9168	// proactively or on resize events (depending on the value set in
9169	// updatePolicy.instanceRedistributionType). The possible values are
9170	// EVEN and ANY. For EVEN the group attempts to preserve a balanced
9171	// number of instances across zones. For ANY the group creates new
9172	// instances where resources are available to fulfill the request; as a
9173	// result, instances may be distributed unevenly across zones in this
9174	// mode. The default value is EVEN.
9175	//
9176	// Possible values:
9177	//   "ANY"
9178	//   "EVEN"
9179	TargetShape string `json:"targetShape,omitempty"`
9180
9181	// Zones: Zones where the regional managed instance group will create
9182	// and manage instances.
9183	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
9184
9185	// ForceSendFields is a list of field names (e.g. "TargetShape") to
9186	// unconditionally include in API requests. By default, fields with
9187	// empty values are omitted from API requests. However, any non-pointer,
9188	// non-interface field appearing in ForceSendFields will be sent to the
9189	// server regardless of whether the field is empty or not. This may be
9190	// used to include empty fields in Patch requests.
9191	ForceSendFields []string `json:"-"`
9192
9193	// NullFields is a list of field names (e.g. "TargetShape") to include
9194	// in API requests with the JSON null value. By default, fields with
9195	// empty values are omitted from API requests. However, any field with
9196	// an empty value appearing in NullFields will be sent to the server as
9197	// null. It is an error if a field in this list has a non-empty value.
9198	// This may be used to include null fields in Patch requests.
9199	NullFields []string `json:"-"`
9200}
9201
9202func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
9203	type NoMethod DistributionPolicy
9204	raw := NoMethod(*s)
9205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9206}
9207
9208type DistributionPolicyZoneConfiguration struct {
9209	// Zone: The URL of the zone. The zone must exist in the region where
9210	// the managed instance group is located.
9211	Zone string `json:"zone,omitempty"`
9212
9213	// ForceSendFields is a list of field names (e.g. "Zone") to
9214	// unconditionally include in API requests. By default, fields with
9215	// empty values are omitted from API requests. However, any non-pointer,
9216	// non-interface field appearing in ForceSendFields will be sent to the
9217	// server regardless of whether the field is empty or not. This may be
9218	// used to include empty fields in Patch requests.
9219	ForceSendFields []string `json:"-"`
9220
9221	// NullFields is a list of field names (e.g. "Zone") to include in API
9222	// requests with the JSON null value. By default, fields with empty
9223	// values are omitted from API requests. However, any field with an
9224	// empty value appearing in NullFields will be sent to the server as
9225	// null. It is an error if a field in this list has a non-empty value.
9226	// This may be used to include null fields in Patch requests.
9227	NullFields []string `json:"-"`
9228}
9229
9230func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
9231	type NoMethod DistributionPolicyZoneConfiguration
9232	raw := NoMethod(*s)
9233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9234}
9235
9236// Duration: A Duration represents a fixed-length span of time
9237// represented as a count of seconds and fractions of seconds at
9238// nanosecond resolution. It is independent of any calendar and concepts
9239// like "day" or "month". Range is approximately 10,000 years.
9240type Duration struct {
9241	// Nanos: Span of time that's a fraction of a second at nanosecond
9242	// resolution. Durations less than one second are represented with a 0
9243	// `seconds` field and a positive `nanos` field. Must be from 0 to
9244	// 999,999,999 inclusive.
9245	Nanos int64 `json:"nanos,omitempty"`
9246
9247	// Seconds: Span of time at a resolution of a second. Must be from 0 to
9248	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
9249	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
9250	Seconds int64 `json:"seconds,omitempty,string"`
9251
9252	// ForceSendFields is a list of field names (e.g. "Nanos") to
9253	// unconditionally include in API requests. By default, fields with
9254	// empty values are omitted from API requests. However, any non-pointer,
9255	// non-interface field appearing in ForceSendFields will be sent to the
9256	// server regardless of whether the field is empty or not. This may be
9257	// used to include empty fields in Patch requests.
9258	ForceSendFields []string `json:"-"`
9259
9260	// NullFields is a list of field names (e.g. "Nanos") to include in API
9261	// requests with the JSON null value. By default, fields with empty
9262	// values are omitted from API requests. However, any field with an
9263	// empty value appearing in NullFields will be sent to the server as
9264	// null. It is an error if a field in this list has a non-empty value.
9265	// This may be used to include null fields in Patch requests.
9266	NullFields []string `json:"-"`
9267}
9268
9269func (s *Duration) MarshalJSON() ([]byte, error) {
9270	type NoMethod Duration
9271	raw := NoMethod(*s)
9272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9273}
9274
9275type ExchangedPeeringRoute struct {
9276	// DestRange: The destination range of the route.
9277	DestRange string `json:"destRange,omitempty"`
9278
9279	// Imported: True if the peering route has been imported from a peer.
9280	// The actual import happens if the field
9281	// networkPeering.importCustomRoutes is true for this network, and
9282	// networkPeering.exportCustomRoutes is true for the peer network, and
9283	// the import does not result in a route conflict.
9284	Imported bool `json:"imported,omitempty"`
9285
9286	// NextHopRegion: The region of peering route next hop, only applies to
9287	// dynamic routes.
9288	NextHopRegion string `json:"nextHopRegion,omitempty"`
9289
9290	// Priority: The priority of the peering route.
9291	Priority int64 `json:"priority,omitempty"`
9292
9293	// Type: The type of the peering route.
9294	//
9295	// Possible values:
9296	//   "DYNAMIC_PEERING_ROUTE"
9297	//   "STATIC_PEERING_ROUTE"
9298	//   "SUBNET_PEERING_ROUTE"
9299	Type string `json:"type,omitempty"`
9300
9301	// ForceSendFields is a list of field names (e.g. "DestRange") to
9302	// unconditionally include in API requests. By default, fields with
9303	// empty values are omitted from API requests. However, any non-pointer,
9304	// non-interface field appearing in ForceSendFields will be sent to the
9305	// server regardless of whether the field is empty or not. This may be
9306	// used to include empty fields in Patch requests.
9307	ForceSendFields []string `json:"-"`
9308
9309	// NullFields is a list of field names (e.g. "DestRange") to include in
9310	// API requests with the JSON null value. By default, fields with empty
9311	// values are omitted from API requests. However, any field with an
9312	// empty value appearing in NullFields will be sent to the server as
9313	// null. It is an error if a field in this list has a non-empty value.
9314	// This may be used to include null fields in Patch requests.
9315	NullFields []string `json:"-"`
9316}
9317
9318func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
9319	type NoMethod ExchangedPeeringRoute
9320	raw := NoMethod(*s)
9321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9322}
9323
9324type ExchangedPeeringRoutesList struct {
9325	// Id: [Output Only] Unique identifier for the resource; defined by the
9326	// server.
9327	Id string `json:"id,omitempty"`
9328
9329	// Items: A list of ExchangedPeeringRoute resources.
9330	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
9331
9332	// Kind: [Output Only] Type of resource. Always
9333	// compute#exchangedPeeringRoutesList for exchanged peering routes
9334	// lists.
9335	Kind string `json:"kind,omitempty"`
9336
9337	// NextPageToken: [Output Only] This token allows you to get the next
9338	// page of results for list requests. If the number of results is larger
9339	// than maxResults, use the nextPageToken as a value for the query
9340	// parameter pageToken in the next list request. Subsequent list
9341	// requests will have their own nextPageToken to continue paging through
9342	// the results.
9343	NextPageToken string `json:"nextPageToken,omitempty"`
9344
9345	// SelfLink: [Output Only] Server-defined URL for this resource.
9346	SelfLink string `json:"selfLink,omitempty"`
9347
9348	// Warning: [Output Only] Informational warning message.
9349	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9350
9351	// ServerResponse contains the HTTP response code and headers from the
9352	// server.
9353	googleapi.ServerResponse `json:"-"`
9354
9355	// ForceSendFields is a list of field names (e.g. "Id") to
9356	// unconditionally include in API requests. By default, fields with
9357	// empty values are omitted from API requests. However, any non-pointer,
9358	// non-interface field appearing in ForceSendFields will be sent to the
9359	// server regardless of whether the field is empty or not. This may be
9360	// used to include empty fields in Patch requests.
9361	ForceSendFields []string `json:"-"`
9362
9363	// NullFields is a list of field names (e.g. "Id") to include in API
9364	// requests with the JSON null value. By default, fields with empty
9365	// values are omitted from API requests. However, any field with an
9366	// empty value appearing in NullFields will be sent to the server as
9367	// null. It is an error if a field in this list has a non-empty value.
9368	// This may be used to include null fields in Patch requests.
9369	NullFields []string `json:"-"`
9370}
9371
9372func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9373	type NoMethod ExchangedPeeringRoutesList
9374	raw := NoMethod(*s)
9375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9376}
9377
9378// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9379// warning message.
9380type ExchangedPeeringRoutesListWarning struct {
9381	// Code: [Output Only] A warning code, if applicable. For example,
9382	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9383	// the response.
9384	//
9385	// Possible values:
9386	//   "CLEANUP_FAILED"
9387	//   "DEPRECATED_RESOURCE_USED"
9388	//   "DEPRECATED_TYPE_USED"
9389	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9390	//   "EXPERIMENTAL_TYPE_USED"
9391	//   "EXTERNAL_API_WARNING"
9392	//   "FIELD_VALUE_OVERRIDEN"
9393	//   "INJECTED_KERNELS_DEPRECATED"
9394	//   "MISSING_TYPE_DEPENDENCY"
9395	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9396	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9397	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9398	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9399	//   "NEXT_HOP_NOT_RUNNING"
9400	//   "NOT_CRITICAL_ERROR"
9401	//   "NO_RESULTS_ON_PAGE"
9402	//   "PARTIAL_SUCCESS"
9403	//   "REQUIRED_TOS_AGREEMENT"
9404	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9405	//   "RESOURCE_NOT_DELETED"
9406	//   "SCHEMA_VALIDATION_IGNORED"
9407	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9408	//   "UNDECLARED_PROPERTIES"
9409	//   "UNREACHABLE"
9410	Code string `json:"code,omitempty"`
9411
9412	// Data: [Output Only] Metadata about this warning in key: value format.
9413	// For example:
9414	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9415	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9416
9417	// Message: [Output Only] A human-readable description of the warning
9418	// code.
9419	Message string `json:"message,omitempty"`
9420
9421	// ForceSendFields is a list of field names (e.g. "Code") to
9422	// unconditionally include in API requests. By default, fields with
9423	// empty values are omitted from API requests. However, any non-pointer,
9424	// non-interface field appearing in ForceSendFields will be sent to the
9425	// server regardless of whether the field is empty or not. This may be
9426	// used to include empty fields in Patch requests.
9427	ForceSendFields []string `json:"-"`
9428
9429	// NullFields is a list of field names (e.g. "Code") to include in API
9430	// requests with the JSON null value. By default, fields with empty
9431	// values are omitted from API requests. However, any field with an
9432	// empty value appearing in NullFields will be sent to the server as
9433	// null. It is an error if a field in this list has a non-empty value.
9434	// This may be used to include null fields in Patch requests.
9435	NullFields []string `json:"-"`
9436}
9437
9438func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9439	type NoMethod ExchangedPeeringRoutesListWarning
9440	raw := NoMethod(*s)
9441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9442}
9443
9444type ExchangedPeeringRoutesListWarningData struct {
9445	// Key: [Output Only] A key that provides more detail on the warning
9446	// being returned. For example, for warnings where there are no results
9447	// in a list request for a particular zone, this key might be scope and
9448	// the key value might be the zone name. Other examples might be a key
9449	// indicating a deprecated resource and a suggested replacement, or a
9450	// warning about invalid network settings (for example, if an instance
9451	// attempts to perform IP forwarding but is not enabled for IP
9452	// forwarding).
9453	Key string `json:"key,omitempty"`
9454
9455	// Value: [Output Only] A warning data value corresponding to the key.
9456	Value string `json:"value,omitempty"`
9457
9458	// ForceSendFields is a list of field names (e.g. "Key") to
9459	// unconditionally include in API requests. By default, fields with
9460	// empty values are omitted from API requests. However, any non-pointer,
9461	// non-interface field appearing in ForceSendFields will be sent to the
9462	// server regardless of whether the field is empty or not. This may be
9463	// used to include empty fields in Patch requests.
9464	ForceSendFields []string `json:"-"`
9465
9466	// NullFields is a list of field names (e.g. "Key") to include in API
9467	// requests with the JSON null value. By default, fields with empty
9468	// values are omitted from API requests. However, any field with an
9469	// empty value appearing in NullFields will be sent to the server as
9470	// null. It is an error if a field in this list has a non-empty value.
9471	// This may be used to include null fields in Patch requests.
9472	NullFields []string `json:"-"`
9473}
9474
9475func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9476	type NoMethod ExchangedPeeringRoutesListWarningData
9477	raw := NoMethod(*s)
9478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9479}
9480
9481// Expr: Represents a textual expression in the Common Expression
9482// Language (CEL) syntax. CEL is a C-like expression language. The
9483// syntax and semantics of CEL are documented at
9484// https://github.com/google/cel-spec.
9485//
9486// Example (Comparison):
9487//
9488// title: "Summary size limit" description: "Determines if a summary is
9489// less than 100 chars" expression: "document.summary.size() <
9490// 100"
9491//
9492// Example (Equality):
9493//
9494// title: "Requestor is owner" description: "Determines if requestor is
9495// the document owner" expression: "document.owner ==
9496// request.auth.claims.email"
9497//
9498// Example (Logic):
9499//
9500// title: "Public documents" description: "Determine whether the
9501// document should be publicly visible" expression: "document.type !=
9502// 'private' && document.type != 'internal'"
9503//
9504// Example (Data Manipulation):
9505//
9506// title: "Notification string" description: "Create a notification
9507// string with a timestamp." expression: "'New message received at ' +
9508// string(document.create_time)"
9509//
9510// The exact variables and functions that may be referenced within an
9511// expression are determined by the service that evaluates it. See the
9512// service documentation for additional information.
9513type Expr struct {
9514	// Description: Optional. Description of the expression. This is a
9515	// longer text which describes the expression, e.g. when hovered over it
9516	// in a UI.
9517	Description string `json:"description,omitempty"`
9518
9519	// Expression: Textual representation of an expression in Common
9520	// Expression Language syntax.
9521	Expression string `json:"expression,omitempty"`
9522
9523	// Location: Optional. String indicating the location of the expression
9524	// for error reporting, e.g. a file name and a position in the file.
9525	Location string `json:"location,omitempty"`
9526
9527	// Title: Optional. Title for the expression, i.e. a short string
9528	// describing its purpose. This can be used e.g. in UIs which allow to
9529	// enter the expression.
9530	Title string `json:"title,omitempty"`
9531
9532	// ForceSendFields is a list of field names (e.g. "Description") to
9533	// unconditionally include in API requests. By default, fields with
9534	// empty values are omitted from API requests. However, any non-pointer,
9535	// non-interface field appearing in ForceSendFields will be sent to the
9536	// server regardless of whether the field is empty or not. This may be
9537	// used to include empty fields in Patch requests.
9538	ForceSendFields []string `json:"-"`
9539
9540	// NullFields is a list of field names (e.g. "Description") to include
9541	// in API requests with the JSON null value. By default, fields with
9542	// empty values are omitted from API requests. However, any field with
9543	// an empty value appearing in NullFields will be sent to the server as
9544	// null. It is an error if a field in this list has a non-empty value.
9545	// This may be used to include null fields in Patch requests.
9546	NullFields []string `json:"-"`
9547}
9548
9549func (s *Expr) MarshalJSON() ([]byte, error) {
9550	type NoMethod Expr
9551	raw := NoMethod(*s)
9552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9553}
9554
9555// ExternalVpnGateway: External VPN gateway is the on-premises VPN
9556// gateway(s) or another cloud provider's VPN gateway that connects to
9557// your Google Cloud VPN gateway. To create a highly available VPN from
9558// Google Cloud to your on-premises side or another Cloud provider's VPN
9559// gateway, you must create a external VPN gateway resource in GCP,
9560// which provides the information to GCP about your external VPN
9561// gateway.
9562type ExternalVpnGateway struct {
9563	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9564	// format.
9565	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9566
9567	// Description: An optional description of this resource. Provide this
9568	// property when you create the resource.
9569	Description string `json:"description,omitempty"`
9570
9571	// Id: [Output Only] The unique identifier for the resource. This
9572	// identifier is defined by the server.
9573	Id *uint64 `json:"id,omitempty,string"`
9574
9575	// Interfaces: List of interfaces for this external VPN gateway.
9576	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9577
9578	// Kind: [Output Only] Type of the resource. Always
9579	// compute#externalVpnGateway for externalVpnGateways.
9580	Kind string `json:"kind,omitempty"`
9581
9582	// LabelFingerprint: A fingerprint for the labels being applied to this
9583	// ExternalVpnGateway, which is essentially a hash of the labels set
9584	// used for optimistic locking. The fingerprint is initially generated
9585	// by Compute Engine and changes after every request to modify or update
9586	// labels. You must always provide an up-to-date fingerprint hash in
9587	// order to update or change labels, otherwise the request will fail
9588	// with error 412 conditionNotMet.
9589	//
9590	// To see the latest fingerprint, make a get() request to retrieve an
9591	// ExternalVpnGateway.
9592	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9593
9594	// Labels: Labels for this resource. These can only be added or modified
9595	// by the setLabels method. Each label key/value pair must comply with
9596	// RFC1035. Label values may be empty.
9597	Labels map[string]string `json:"labels,omitempty"`
9598
9599	// Name: Name of the resource. Provided by the client when the resource
9600	// is created. The name must be 1-63 characters long, and comply with
9601	// RFC1035. Specifically, the name must be 1-63 characters long and
9602	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9603	// the first character must be a lowercase letter, and all following
9604	// characters must be a dash, lowercase letter, or digit, except the
9605	// last character, which cannot be a dash.
9606	Name string `json:"name,omitempty"`
9607
9608	// RedundancyType: Indicates the user-supplied redundancy type of this
9609	// external VPN gateway.
9610	//
9611	// Possible values:
9612	//   "FOUR_IPS_REDUNDANCY"
9613	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
9614	//   "TWO_IPS_REDUNDANCY"
9615	RedundancyType string `json:"redundancyType,omitempty"`
9616
9617	// SelfLink: [Output Only] Server-defined URL for the resource.
9618	SelfLink string `json:"selfLink,omitempty"`
9619
9620	// ServerResponse contains the HTTP response code and headers from the
9621	// server.
9622	googleapi.ServerResponse `json:"-"`
9623
9624	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9625	// to unconditionally include in API requests. By default, fields with
9626	// empty values are omitted from API requests. However, any non-pointer,
9627	// non-interface field appearing in ForceSendFields will be sent to the
9628	// server regardless of whether the field is empty or not. This may be
9629	// used to include empty fields in Patch requests.
9630	ForceSendFields []string `json:"-"`
9631
9632	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9633	// include in API requests with the JSON null value. By default, fields
9634	// with empty values are omitted from API requests. However, any field
9635	// with an empty value appearing in NullFields will be sent to the
9636	// server as null. It is an error if a field in this list has a
9637	// non-empty value. This may be used to include null fields in Patch
9638	// requests.
9639	NullFields []string `json:"-"`
9640}
9641
9642func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9643	type NoMethod ExternalVpnGateway
9644	raw := NoMethod(*s)
9645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9646}
9647
9648// ExternalVpnGatewayInterface: The interface for the external VPN
9649// gateway.
9650type ExternalVpnGatewayInterface struct {
9651	// Id: The numeric ID of this interface. The allowed input values for
9652	// this id for different redundancy types of external VPN gateway:
9653	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 TWO_IPS_REDUNDANCY - 0, 1
9654	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9655	Id int64 `json:"id,omitempty"`
9656
9657	// IpAddress: IP address of the interface in the external VPN gateway.
9658	// Only IPv4 is supported. This IP address can be either from your
9659	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
9660	// be an IP address from Google Compute Engine.
9661	IpAddress string `json:"ipAddress,omitempty"`
9662
9663	// ForceSendFields is a list of field names (e.g. "Id") to
9664	// unconditionally include in API requests. By default, fields with
9665	// empty values are omitted from API requests. However, any non-pointer,
9666	// non-interface field appearing in ForceSendFields will be sent to the
9667	// server regardless of whether the field is empty or not. This may be
9668	// used to include empty fields in Patch requests.
9669	ForceSendFields []string `json:"-"`
9670
9671	// NullFields is a list of field names (e.g. "Id") to include in API
9672	// requests with the JSON null value. By default, fields with empty
9673	// values are omitted from API requests. However, any field with an
9674	// empty value appearing in NullFields will be sent to the server as
9675	// null. It is an error if a field in this list has a non-empty value.
9676	// This may be used to include null fields in Patch requests.
9677	NullFields []string `json:"-"`
9678}
9679
9680func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9681	type NoMethod ExternalVpnGatewayInterface
9682	raw := NoMethod(*s)
9683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9684}
9685
9686// ExternalVpnGatewayList: Response to the list request, and contains a
9687// list of externalVpnGateways.
9688type ExternalVpnGatewayList struct {
9689	Etag string `json:"etag,omitempty"`
9690
9691	// Id: [Output Only] Unique identifier for the resource; defined by the
9692	// server.
9693	Id string `json:"id,omitempty"`
9694
9695	// Items: A list of ExternalVpnGateway resources.
9696	Items []*ExternalVpnGateway `json:"items,omitempty"`
9697
9698	// Kind: [Output Only] Type of resource. Always
9699	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
9700	Kind string `json:"kind,omitempty"`
9701
9702	// NextPageToken: [Output Only] This token allows you to get the next
9703	// page of results for list requests. If the number of results is larger
9704	// than maxResults, use the nextPageToken as a value for the query
9705	// parameter pageToken in the next list request. Subsequent list
9706	// requests will have their own nextPageToken to continue paging through
9707	// the results.
9708	NextPageToken string `json:"nextPageToken,omitempty"`
9709
9710	// SelfLink: [Output Only] Server-defined URL for this resource.
9711	SelfLink string `json:"selfLink,omitempty"`
9712
9713	// Warning: [Output Only] Informational warning message.
9714	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9715
9716	// ServerResponse contains the HTTP response code and headers from the
9717	// server.
9718	googleapi.ServerResponse `json:"-"`
9719
9720	// ForceSendFields is a list of field names (e.g. "Etag") to
9721	// unconditionally include in API requests. By default, fields with
9722	// empty values are omitted from API requests. However, any non-pointer,
9723	// non-interface field appearing in ForceSendFields will be sent to the
9724	// server regardless of whether the field is empty or not. This may be
9725	// used to include empty fields in Patch requests.
9726	ForceSendFields []string `json:"-"`
9727
9728	// NullFields is a list of field names (e.g. "Etag") to include in API
9729	// requests with the JSON null value. By default, fields with empty
9730	// values are omitted from API requests. However, any field with an
9731	// empty value appearing in NullFields will be sent to the server as
9732	// null. It is an error if a field in this list has a non-empty value.
9733	// This may be used to include null fields in Patch requests.
9734	NullFields []string `json:"-"`
9735}
9736
9737func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
9738	type NoMethod ExternalVpnGatewayList
9739	raw := NoMethod(*s)
9740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9741}
9742
9743// ExternalVpnGatewayListWarning: [Output Only] Informational warning
9744// message.
9745type ExternalVpnGatewayListWarning struct {
9746	// Code: [Output Only] A warning code, if applicable. For example,
9747	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9748	// the response.
9749	//
9750	// Possible values:
9751	//   "CLEANUP_FAILED"
9752	//   "DEPRECATED_RESOURCE_USED"
9753	//   "DEPRECATED_TYPE_USED"
9754	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9755	//   "EXPERIMENTAL_TYPE_USED"
9756	//   "EXTERNAL_API_WARNING"
9757	//   "FIELD_VALUE_OVERRIDEN"
9758	//   "INJECTED_KERNELS_DEPRECATED"
9759	//   "MISSING_TYPE_DEPENDENCY"
9760	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9761	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9762	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9763	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9764	//   "NEXT_HOP_NOT_RUNNING"
9765	//   "NOT_CRITICAL_ERROR"
9766	//   "NO_RESULTS_ON_PAGE"
9767	//   "PARTIAL_SUCCESS"
9768	//   "REQUIRED_TOS_AGREEMENT"
9769	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9770	//   "RESOURCE_NOT_DELETED"
9771	//   "SCHEMA_VALIDATION_IGNORED"
9772	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9773	//   "UNDECLARED_PROPERTIES"
9774	//   "UNREACHABLE"
9775	Code string `json:"code,omitempty"`
9776
9777	// Data: [Output Only] Metadata about this warning in key: value format.
9778	// For example:
9779	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9780	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
9781
9782	// Message: [Output Only] A human-readable description of the warning
9783	// code.
9784	Message string `json:"message,omitempty"`
9785
9786	// ForceSendFields is a list of field names (e.g. "Code") to
9787	// unconditionally include in API requests. By default, fields with
9788	// empty values are omitted from API requests. However, any non-pointer,
9789	// non-interface field appearing in ForceSendFields will be sent to the
9790	// server regardless of whether the field is empty or not. This may be
9791	// used to include empty fields in Patch requests.
9792	ForceSendFields []string `json:"-"`
9793
9794	// NullFields is a list of field names (e.g. "Code") to include in API
9795	// requests with the JSON null value. By default, fields with empty
9796	// values are omitted from API requests. However, any field with an
9797	// empty value appearing in NullFields will be sent to the server as
9798	// null. It is an error if a field in this list has a non-empty value.
9799	// This may be used to include null fields in Patch requests.
9800	NullFields []string `json:"-"`
9801}
9802
9803func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
9804	type NoMethod ExternalVpnGatewayListWarning
9805	raw := NoMethod(*s)
9806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9807}
9808
9809type ExternalVpnGatewayListWarningData struct {
9810	// Key: [Output Only] A key that provides more detail on the warning
9811	// being returned. For example, for warnings where there are no results
9812	// in a list request for a particular zone, this key might be scope and
9813	// the key value might be the zone name. Other examples might be a key
9814	// indicating a deprecated resource and a suggested replacement, or a
9815	// warning about invalid network settings (for example, if an instance
9816	// attempts to perform IP forwarding but is not enabled for IP
9817	// forwarding).
9818	Key string `json:"key,omitempty"`
9819
9820	// Value: [Output Only] A warning data value corresponding to the key.
9821	Value string `json:"value,omitempty"`
9822
9823	// ForceSendFields is a list of field names (e.g. "Key") to
9824	// unconditionally include in API requests. By default, fields with
9825	// empty values are omitted from API requests. However, any non-pointer,
9826	// non-interface field appearing in ForceSendFields will be sent to the
9827	// server regardless of whether the field is empty or not. This may be
9828	// used to include empty fields in Patch requests.
9829	ForceSendFields []string `json:"-"`
9830
9831	// NullFields is a list of field names (e.g. "Key") to include in API
9832	// requests with the JSON null value. By default, fields with empty
9833	// values are omitted from API requests. However, any field with an
9834	// empty value appearing in NullFields will be sent to the server as
9835	// null. It is an error if a field in this list has a non-empty value.
9836	// This may be used to include null fields in Patch requests.
9837	NullFields []string `json:"-"`
9838}
9839
9840func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
9841	type NoMethod ExternalVpnGatewayListWarningData
9842	raw := NoMethod(*s)
9843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9844}
9845
9846type FileContentBuffer struct {
9847	// Content: The raw content in the secure keys file.
9848	Content string `json:"content,omitempty"`
9849
9850	// Possible values:
9851	//   "BIN"
9852	//   "UNDEFINED"
9853	//   "X509"
9854	FileType string `json:"fileType,omitempty"`
9855
9856	// ForceSendFields is a list of field names (e.g. "Content") to
9857	// unconditionally include in API requests. By default, fields with
9858	// empty values are omitted from API requests. However, any non-pointer,
9859	// non-interface field appearing in ForceSendFields will be sent to the
9860	// server regardless of whether the field is empty or not. This may be
9861	// used to include empty fields in Patch requests.
9862	ForceSendFields []string `json:"-"`
9863
9864	// NullFields is a list of field names (e.g. "Content") to include in
9865	// API requests with the JSON null value. By default, fields with empty
9866	// values are omitted from API requests. However, any field with an
9867	// empty value appearing in NullFields will be sent to the server as
9868	// null. It is an error if a field in this list has a non-empty value.
9869	// This may be used to include null fields in Patch requests.
9870	NullFields []string `json:"-"`
9871}
9872
9873func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
9874	type NoMethod FileContentBuffer
9875	raw := NoMethod(*s)
9876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9877}
9878
9879// Firewall: Represents a Firewall Rule resource.
9880//
9881// Firewall rules allow or deny ingress traffic to, and egress traffic
9882// from your instances. For more information, read Firewall rules.
9883type Firewall struct {
9884	// Allowed: The list of ALLOW rules specified by this firewall. Each
9885	// rule specifies a protocol and port-range tuple that describes a
9886	// permitted connection.
9887	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
9888
9889	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9890	// format.
9891	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9892
9893	// Denied: The list of DENY rules specified by this firewall. Each rule
9894	// specifies a protocol and port-range tuple that describes a denied
9895	// connection.
9896	Denied []*FirewallDenied `json:"denied,omitempty"`
9897
9898	// Description: An optional description of this resource. Provide this
9899	// field when you create the resource.
9900	Description string `json:"description,omitempty"`
9901
9902	// DestinationRanges: If destination ranges are specified, the firewall
9903	// rule applies only to traffic that has destination IP address in these
9904	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
9905	// supported.
9906	DestinationRanges []string `json:"destinationRanges,omitempty"`
9907
9908	// Direction: Direction of traffic to which this firewall applies,
9909	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
9910	// traffic, you cannot specify the destinationRanges field, and for
9911	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
9912	// fields.
9913	//
9914	// Possible values:
9915	//   "EGRESS"
9916	//   "INGRESS"
9917	Direction string `json:"direction,omitempty"`
9918
9919	// Disabled: Denotes whether the firewall rule is disabled. When set to
9920	// true, the firewall rule is not enforced and the network behaves as if
9921	// it did not exist. If this is unspecified, the firewall rule will be
9922	// enabled.
9923	Disabled bool `json:"disabled,omitempty"`
9924
9925	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
9926	// denotes whether to enable logging for a particular firewall rule. If
9927	// logging is enabled, logs will be exported to Stackdriver.
9928	EnableLogging bool `json:"enableLogging,omitempty"`
9929
9930	// Id: [Output Only] The unique identifier for the resource. This
9931	// identifier is defined by the server.
9932	Id uint64 `json:"id,omitempty,string"`
9933
9934	// Kind: [Output Only] Type of the resource. Always compute#firewall for
9935	// firewall rules.
9936	Kind string `json:"kind,omitempty"`
9937
9938	// LogConfig: This field denotes the logging options for a particular
9939	// firewall rule. If logging is enabled, logs will be exported to
9940	// Stackdriver.
9941	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
9942
9943	// Name: Name of the resource; provided by the client when the resource
9944	// is created. The name must be 1-63 characters long, and comply with
9945	// RFC1035. Specifically, the name must be 1-63 characters long and
9946	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
9947	// character must be a lowercase letter, and all following characters
9948	// (except for the last character) must be a dash, lowercase letter, or
9949	// digit. The last character must be a lowercase letter or digit.
9950	Name string `json:"name,omitempty"`
9951
9952	// Network: URL of the network resource for this firewall rule. If not
9953	// specified when creating a firewall rule, the default network is
9954	// used:
9955	// global/networks/default
9956	// If you choose to specify this field, you can specify the network as a
9957	// full or partial URL. For example, the following are all valid URLs:
9958	//
9959	// -
9960	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
9961	// - projects/myproject/global/networks/my-network
9962	// - global/networks/default
9963	Network string `json:"network,omitempty"`
9964
9965	// Priority: Priority for this rule. This is an integer between `0` and
9966	// `65535`, both inclusive. The default value is `1000`. Relative
9967	// priorities determine which rule takes effect if multiple rules apply.
9968	// Lower values indicate higher priority. For example, a rule with
9969	// priority `0` has higher precedence than a rule with priority `1`.
9970	// DENY rules take precedence over ALLOW rules if they have equal
9971	// priority. Note that VPC networks have implied rules with a priority
9972	// of `65535`. To avoid conflicts with the implied rules, use a priority
9973	// number less than `65535`.
9974	Priority int64 `json:"priority,omitempty"`
9975
9976	// SelfLink: [Output Only] Server-defined URL for the resource.
9977	SelfLink string `json:"selfLink,omitempty"`
9978
9979	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
9980	// with the resource id.
9981	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
9982
9983	// SourceRanges: If source ranges are specified, the firewall rule
9984	// applies only to traffic that has a source IP address in these ranges.
9985	// These ranges must be expressed in CIDR format. One or both of
9986	// sourceRanges and sourceTags may be set. If both fields are set, the
9987	// rule applies to traffic that has a source IP address within
9988	// sourceRanges OR a source IP from a resource with a matching tag
9989	// listed in the sourceTags field. The connection does not need to match
9990	// both fields for the rule to apply. Only IPv4 is supported.
9991	SourceRanges []string `json:"sourceRanges,omitempty"`
9992
9993	// SourceServiceAccounts: If source service accounts are specified, the
9994	// firewall rules apply only to traffic originating from an instance
9995	// with a service account in this list. Source service accounts cannot
9996	// be used to control traffic to an instance's external IP address
9997	// because service accounts are associated with an instance, not an IP
9998	// address. sourceRanges can be set at the same time as
9999	// sourceServiceAccounts. If both are set, the firewall applies to
10000	// traffic that has a source IP address within the sourceRanges OR a
10001	// source IP that belongs to an instance with service account listed in
10002	// sourceServiceAccount. The connection does not need to match both
10003	// fields for the firewall to apply. sourceServiceAccounts cannot be
10004	// used at the same time as sourceTags or targetTags.
10005	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
10006
10007	// SourceTags: If source tags are specified, the firewall rule applies
10008	// only to traffic with source IPs that match the primary network
10009	// interfaces of VM instances that have the tag and are in the same VPC
10010	// network. Source tags cannot be used to control traffic to an
10011	// instance's external IP address, it only applies to traffic between
10012	// instances in the same virtual network. Because tags are associated
10013	// with instances, not IP addresses. One or both of sourceRanges and
10014	// sourceTags may be set. If both fields are set, the firewall applies
10015	// to traffic that has a source IP address within sourceRanges OR a
10016	// source IP from a resource with a matching tag listed in the
10017	// sourceTags field. The connection does not need to match both fields
10018	// for the firewall to apply.
10019	SourceTags []string `json:"sourceTags,omitempty"`
10020
10021	// TargetServiceAccounts: A list of service accounts indicating sets of
10022	// instances located in the network that may make network connections as
10023	// specified in allowed[]. targetServiceAccounts cannot be used at the
10024	// same time as targetTags or sourceTags. If neither
10025	// targetServiceAccounts nor targetTags are specified, the firewall rule
10026	// applies to all instances on the specified network.
10027	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
10028
10029	// TargetTags: A list of tags that controls which instances the firewall
10030	// rule applies to. If targetTags are specified, then the firewall rule
10031	// applies only to instances in the VPC network that have one of those
10032	// tags. If no targetTags are specified, the firewall rule applies to
10033	// all instances on the specified network.
10034	TargetTags []string `json:"targetTags,omitempty"`
10035
10036	// ServerResponse contains the HTTP response code and headers from the
10037	// server.
10038	googleapi.ServerResponse `json:"-"`
10039
10040	// ForceSendFields is a list of field names (e.g. "Allowed") to
10041	// unconditionally include in API requests. By default, fields with
10042	// empty values are omitted from API requests. However, any non-pointer,
10043	// non-interface field appearing in ForceSendFields will be sent to the
10044	// server regardless of whether the field is empty or not. This may be
10045	// used to include empty fields in Patch requests.
10046	ForceSendFields []string `json:"-"`
10047
10048	// NullFields is a list of field names (e.g. "Allowed") to include in
10049	// API requests with the JSON null value. By default, fields with empty
10050	// values are omitted from API requests. However, any field with an
10051	// empty value appearing in NullFields will be sent to the server as
10052	// null. It is an error if a field in this list has a non-empty value.
10053	// This may be used to include null fields in Patch requests.
10054	NullFields []string `json:"-"`
10055}
10056
10057func (s *Firewall) MarshalJSON() ([]byte, error) {
10058	type NoMethod Firewall
10059	raw := NoMethod(*s)
10060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10061}
10062
10063type FirewallAllowed struct {
10064	// IPProtocol: The IP protocol to which this rule applies. The protocol
10065	// type is required when creating a firewall rule. This value can either
10066	// be one of the following well known protocol strings (tcp, udp, icmp,
10067	// esp, ah, ipip, sctp) or the IP protocol number.
10068	IPProtocol string `json:"IPProtocol,omitempty"`
10069
10070	// Ports: An optional list of ports to which this rule applies. This
10071	// field is only applicable for the UDP or TCP protocol. Each entry must
10072	// be either an integer or a range. If not specified, this rule applies
10073	// to connections through any port.
10074	//
10075	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
10076	Ports []string `json:"ports,omitempty"`
10077
10078	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10079	// unconditionally include in API requests. By default, fields with
10080	// empty values are omitted from API requests. However, any non-pointer,
10081	// non-interface field appearing in ForceSendFields will be sent to the
10082	// server regardless of whether the field is empty or not. This may be
10083	// used to include empty fields in Patch requests.
10084	ForceSendFields []string `json:"-"`
10085
10086	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10087	// API requests with the JSON null value. By default, fields with empty
10088	// values are omitted from API requests. However, any field with an
10089	// empty value appearing in NullFields will be sent to the server as
10090	// null. It is an error if a field in this list has a non-empty value.
10091	// This may be used to include null fields in Patch requests.
10092	NullFields []string `json:"-"`
10093}
10094
10095func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
10096	type NoMethod FirewallAllowed
10097	raw := NoMethod(*s)
10098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10099}
10100
10101type FirewallDenied struct {
10102	// IPProtocol: The IP protocol to which this rule applies. The protocol
10103	// type is required when creating a firewall rule. This value can either
10104	// be one of the following well known protocol strings (tcp, udp, icmp,
10105	// esp, ah, ipip, sctp) or the IP protocol number.
10106	IPProtocol string `json:"IPProtocol,omitempty"`
10107
10108	// Ports: An optional list of ports to which this rule applies. This
10109	// field is only applicable for the UDP or TCP protocol. Each entry must
10110	// be either an integer or a range. If not specified, this rule applies
10111	// to connections through any port.
10112	//
10113	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
10114	Ports []string `json:"ports,omitempty"`
10115
10116	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10117	// unconditionally include in API requests. By default, fields with
10118	// empty values are omitted from API requests. However, any non-pointer,
10119	// non-interface field appearing in ForceSendFields will be sent to the
10120	// server regardless of whether the field is empty or not. This may be
10121	// used to include empty fields in Patch requests.
10122	ForceSendFields []string `json:"-"`
10123
10124	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10125	// API requests with the JSON null value. By default, fields with empty
10126	// values are omitted from API requests. However, any field with an
10127	// empty value appearing in NullFields will be sent to the server as
10128	// null. It is an error if a field in this list has a non-empty value.
10129	// This may be used to include null fields in Patch requests.
10130	NullFields []string `json:"-"`
10131}
10132
10133func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
10134	type NoMethod FirewallDenied
10135	raw := NoMethod(*s)
10136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10137}
10138
10139// FirewallList: Contains a list of firewalls.
10140type FirewallList struct {
10141	// Id: [Output Only] Unique identifier for the resource; defined by the
10142	// server.
10143	Id string `json:"id,omitempty"`
10144
10145	// Items: A list of Firewall resources.
10146	Items []*Firewall `json:"items,omitempty"`
10147
10148	// Kind: [Output Only] Type of resource. Always compute#firewallList for
10149	// lists of firewalls.
10150	Kind string `json:"kind,omitempty"`
10151
10152	// NextPageToken: [Output Only] This token allows you to get the next
10153	// page of results for list requests. If the number of results is larger
10154	// than maxResults, use the nextPageToken as a value for the query
10155	// parameter pageToken in the next list request. Subsequent list
10156	// requests will have their own nextPageToken to continue paging through
10157	// the results.
10158	NextPageToken string `json:"nextPageToken,omitempty"`
10159
10160	// SelfLink: [Output Only] Server-defined URL for this resource.
10161	SelfLink string `json:"selfLink,omitempty"`
10162
10163	// Warning: [Output Only] Informational warning message.
10164	Warning *FirewallListWarning `json:"warning,omitempty"`
10165
10166	// ServerResponse contains the HTTP response code and headers from the
10167	// server.
10168	googleapi.ServerResponse `json:"-"`
10169
10170	// ForceSendFields is a list of field names (e.g. "Id") to
10171	// unconditionally include in API requests. By default, fields with
10172	// empty values are omitted from API requests. However, any non-pointer,
10173	// non-interface field appearing in ForceSendFields will be sent to the
10174	// server regardless of whether the field is empty or not. This may be
10175	// used to include empty fields in Patch requests.
10176	ForceSendFields []string `json:"-"`
10177
10178	// NullFields is a list of field names (e.g. "Id") to include in API
10179	// requests with the JSON null value. By default, fields with empty
10180	// values are omitted from API requests. However, any field with an
10181	// empty value appearing in NullFields will be sent to the server as
10182	// null. It is an error if a field in this list has a non-empty value.
10183	// This may be used to include null fields in Patch requests.
10184	NullFields []string `json:"-"`
10185}
10186
10187func (s *FirewallList) MarshalJSON() ([]byte, error) {
10188	type NoMethod FirewallList
10189	raw := NoMethod(*s)
10190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10191}
10192
10193// FirewallListWarning: [Output Only] Informational warning message.
10194type FirewallListWarning struct {
10195	// Code: [Output Only] A warning code, if applicable. For example,
10196	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10197	// the response.
10198	//
10199	// Possible values:
10200	//   "CLEANUP_FAILED"
10201	//   "DEPRECATED_RESOURCE_USED"
10202	//   "DEPRECATED_TYPE_USED"
10203	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10204	//   "EXPERIMENTAL_TYPE_USED"
10205	//   "EXTERNAL_API_WARNING"
10206	//   "FIELD_VALUE_OVERRIDEN"
10207	//   "INJECTED_KERNELS_DEPRECATED"
10208	//   "MISSING_TYPE_DEPENDENCY"
10209	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10210	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10211	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10212	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10213	//   "NEXT_HOP_NOT_RUNNING"
10214	//   "NOT_CRITICAL_ERROR"
10215	//   "NO_RESULTS_ON_PAGE"
10216	//   "PARTIAL_SUCCESS"
10217	//   "REQUIRED_TOS_AGREEMENT"
10218	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10219	//   "RESOURCE_NOT_DELETED"
10220	//   "SCHEMA_VALIDATION_IGNORED"
10221	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10222	//   "UNDECLARED_PROPERTIES"
10223	//   "UNREACHABLE"
10224	Code string `json:"code,omitempty"`
10225
10226	// Data: [Output Only] Metadata about this warning in key: value format.
10227	// For example:
10228	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10229	Data []*FirewallListWarningData `json:"data,omitempty"`
10230
10231	// Message: [Output Only] A human-readable description of the warning
10232	// code.
10233	Message string `json:"message,omitempty"`
10234
10235	// ForceSendFields is a list of field names (e.g. "Code") to
10236	// unconditionally include in API requests. By default, fields with
10237	// empty values are omitted from API requests. However, any non-pointer,
10238	// non-interface field appearing in ForceSendFields will be sent to the
10239	// server regardless of whether the field is empty or not. This may be
10240	// used to include empty fields in Patch requests.
10241	ForceSendFields []string `json:"-"`
10242
10243	// NullFields is a list of field names (e.g. "Code") to include in API
10244	// requests with the JSON null value. By default, fields with empty
10245	// values are omitted from API requests. However, any field with an
10246	// empty value appearing in NullFields will be sent to the server as
10247	// null. It is an error if a field in this list has a non-empty value.
10248	// This may be used to include null fields in Patch requests.
10249	NullFields []string `json:"-"`
10250}
10251
10252func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
10253	type NoMethod FirewallListWarning
10254	raw := NoMethod(*s)
10255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10256}
10257
10258type FirewallListWarningData struct {
10259	// Key: [Output Only] A key that provides more detail on the warning
10260	// being returned. For example, for warnings where there are no results
10261	// in a list request for a particular zone, this key might be scope and
10262	// the key value might be the zone name. Other examples might be a key
10263	// indicating a deprecated resource and a suggested replacement, or a
10264	// warning about invalid network settings (for example, if an instance
10265	// attempts to perform IP forwarding but is not enabled for IP
10266	// forwarding).
10267	Key string `json:"key,omitempty"`
10268
10269	// Value: [Output Only] A warning data value corresponding to the key.
10270	Value string `json:"value,omitempty"`
10271
10272	// ForceSendFields is a list of field names (e.g. "Key") to
10273	// unconditionally include in API requests. By default, fields with
10274	// empty values are omitted from API requests. However, any non-pointer,
10275	// non-interface field appearing in ForceSendFields will be sent to the
10276	// server regardless of whether the field is empty or not. This may be
10277	// used to include empty fields in Patch requests.
10278	ForceSendFields []string `json:"-"`
10279
10280	// NullFields is a list of field names (e.g. "Key") to include in API
10281	// requests with the JSON null value. By default, fields with empty
10282	// values are omitted from API requests. However, any field with an
10283	// empty value appearing in NullFields will be sent to the server as
10284	// null. It is an error if a field in this list has a non-empty value.
10285	// This may be used to include null fields in Patch requests.
10286	NullFields []string `json:"-"`
10287}
10288
10289func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
10290	type NoMethod FirewallListWarningData
10291	raw := NoMethod(*s)
10292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10293}
10294
10295// FirewallLogConfig: The available logging options for a firewall rule.
10296type FirewallLogConfig struct {
10297	// Enable: This field denotes whether to enable logging for a particular
10298	// firewall rule.
10299	Enable bool `json:"enable,omitempty"`
10300
10301	// Metadata: This field can only be specified for a particular firewall
10302	// rule if logging is enabled for that rule. This field denotes whether
10303	// to include or exclude metadata for firewall logs.
10304	//
10305	// Possible values:
10306	//   "EXCLUDE_ALL_METADATA"
10307	//   "INCLUDE_ALL_METADATA"
10308	Metadata string `json:"metadata,omitempty"`
10309
10310	// ForceSendFields is a list of field names (e.g. "Enable") to
10311	// unconditionally include in API requests. By default, fields with
10312	// empty values are omitted from API requests. However, any non-pointer,
10313	// non-interface field appearing in ForceSendFields will be sent to the
10314	// server regardless of whether the field is empty or not. This may be
10315	// used to include empty fields in Patch requests.
10316	ForceSendFields []string `json:"-"`
10317
10318	// NullFields is a list of field names (e.g. "Enable") to include in API
10319	// requests with the JSON null value. By default, fields with empty
10320	// values are omitted from API requests. However, any field with an
10321	// empty value appearing in NullFields will be sent to the server as
10322	// null. It is an error if a field in this list has a non-empty value.
10323	// This may be used to include null fields in Patch requests.
10324	NullFields []string `json:"-"`
10325}
10326
10327func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
10328	type NoMethod FirewallLogConfig
10329	raw := NoMethod(*s)
10330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10331}
10332
10333// FixedOrPercent: Encapsulates numeric value that can be either
10334// absolute or relative.
10335type FixedOrPercent struct {
10336	// Calculated: [Output Only] Absolute value of VM instances calculated
10337	// based on the specific mode.
10338	//
10339	//
10340	// - If the value is fixed, then the calculated value is equal to the
10341	// fixed value.
10342	// - If the value is a percent, then the calculated value is percent/100
10343	// * targetSize. For example, the calculated value of a 80% of a managed
10344	// instance group with 150 instances would be (80/100 * 150) = 120 VM
10345	// instances. If there is a remainder, the number is rounded up.
10346	Calculated int64 `json:"calculated,omitempty"`
10347
10348	// Fixed: Specifies a fixed number of VM instances. This must be a
10349	// positive integer.
10350	Fixed int64 `json:"fixed,omitempty"`
10351
10352	// Percent: Specifies a percentage of instances between 0 to 100%,
10353	// inclusive. For example, specify 80 for 80%.
10354	Percent int64 `json:"percent,omitempty"`
10355
10356	// ForceSendFields is a list of field names (e.g. "Calculated") to
10357	// unconditionally include in API requests. By default, fields with
10358	// empty values are omitted from API requests. However, any non-pointer,
10359	// non-interface field appearing in ForceSendFields will be sent to the
10360	// server regardless of whether the field is empty or not. This may be
10361	// used to include empty fields in Patch requests.
10362	ForceSendFields []string `json:"-"`
10363
10364	// NullFields is a list of field names (e.g. "Calculated") to include in
10365	// API requests with the JSON null value. By default, fields with empty
10366	// values are omitted from API requests. However, any field with an
10367	// empty value appearing in NullFields will be sent to the server as
10368	// null. It is an error if a field in this list has a non-empty value.
10369	// This may be used to include null fields in Patch requests.
10370	NullFields []string `json:"-"`
10371}
10372
10373func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
10374	type NoMethod FixedOrPercent
10375	raw := NoMethod(*s)
10376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10377}
10378
10379// ForwardingRule: Represents a Forwarding Rule resource.
10380//
10381// Forwarding rule resources in GCP can be either regional or global in
10382// scope:
10383//
10384// *
10385// [Global](/compute/docs/reference/rest/{$api_version}/globalForwardingR
10386// ules) *
10387// [Regional](/compute/docs/reference/rest/{$api_version}/forwardingRules
10388// )
10389//
10390// A forwarding rule and its corresponding IP address represent the
10391// frontend configuration of a Google Cloud Platform load balancer.
10392// Forwarding rules can also reference target instances and Cloud VPN
10393// Classic gateways (targetVpnGateway).
10394//
10395// For more information, read Forwarding rule concepts and Using
10396// protocol forwarding.
10397//
10398// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
10399// {$api_version}.globalForwardingRules ==) (== resource_for
10400// {$api_version}.regionForwardingRules ==)
10401type ForwardingRule struct {
10402	// IPAddress: IP address that this forwarding rule serves. When a client
10403	// sends traffic to this IP address, the forwarding rule directs the
10404	// traffic to the target that you specify in the forwarding rule.
10405	//
10406	// If you don't specify a reserved IP address, an ephemeral IP address
10407	// is assigned. Methods for specifying an IP address:
10408	//
10409	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
10410	// https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name * Partial URL or by name, as in: * projects/project_id/regions/region/addresses/address-name * regions/region/addresses/address-name * global/addresses/address-name * address-name
10411	//
10412	// The loadBalancingScheme and the forwarding rule's target determine
10413	// the type of IP address that you can use. For detailed information,
10414	// refer to [IP address
10415	// specifications](/load-balancing/docs/forwarding-rule-concepts#ip_addre
10416	// ss_specifications).
10417	IPAddress string `json:"IPAddress,omitempty"`
10418
10419	// IPProtocol: The IP protocol to which this rule applies. For protocol
10420	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
10421	//
10422	// For Internal TCP/UDP Load Balancing, the load balancing scheme is
10423	// INTERNAL, and one of TCP or UDP are valid. For Traffic Director, the
10424	// load balancing scheme is INTERNAL_SELF_MANAGED, and only TCPis valid.
10425	// For Internal HTTP(S) Load Balancing, the load balancing scheme is
10426	// INTERNAL_MANAGED, and only TCP is valid. For HTTP(S), SSL Proxy, and
10427	// TCP Proxy Load Balancing, the load balancing scheme is EXTERNAL and
10428	// only TCP is valid. For Network TCP/UDP Load Balancing, the load
10429	// balancing scheme is EXTERNAL, and one of TCP or UDP is valid.
10430	//
10431	// Possible values:
10432	//   "AH"
10433	//   "ESP"
10434	//   "ICMP"
10435	//   "SCTP"
10436	//   "TCP"
10437	//   "UDP"
10438	IPProtocol string `json:"IPProtocol,omitempty"`
10439
10440	// AllPorts: This field is used along with the backend_service field for
10441	// internal load balancing or with the target field for internal
10442	// TargetInstance. This field cannot be used with port or portRange
10443	// fields.
10444	//
10445	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
10446	// specify this field to allow packets addressed to any ports will be
10447	// forwarded to the backends configured with this forwarding rule.
10448	AllPorts bool `json:"allPorts,omitempty"`
10449
10450	// AllowGlobalAccess: This field is used along with the backend_service
10451	// field for internal load balancing or with the target field for
10452	// internal TargetInstance. If the field is set to TRUE, clients can
10453	// access ILB from all regions. Otherwise only allows access from
10454	// clients in the same region as the internal load balancer.
10455	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
10456
10457	// BackendService: This field is only used for INTERNAL load
10458	// balancing.
10459	//
10460	// For internal load balancing, this field identifies the BackendService
10461	// resource to receive the matched traffic.
10462	BackendService string `json:"backendService,omitempty"`
10463
10464	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10465	// format.
10466	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10467
10468	// Description: An optional description of this resource. Provide this
10469	// property when you create the resource.
10470	Description string `json:"description,omitempty"`
10471
10472	// Fingerprint: Fingerprint of this resource. A hash of the contents
10473	// stored in this object. This field is used in optimistic locking. This
10474	// field will be ignored when inserting a ForwardingRule. Include the
10475	// fingerprint in patch request to ensure that you do not overwrite
10476	// changes that were applied from another concurrent request.
10477	//
10478	// To see the latest fingerprint, make a get() request to retrieve a
10479	// ForwardingRule.
10480	Fingerprint string `json:"fingerprint,omitempty"`
10481
10482	// Id: [Output Only] The unique identifier for the resource. This
10483	// identifier is defined by the server.
10484	Id uint64 `json:"id,omitempty,string"`
10485
10486	// IpVersion: The IP Version that will be used by this forwarding rule.
10487	// Valid options are IPV4 or IPV6. This can only be specified for an
10488	// external global forwarding rule.
10489	//
10490	// Possible values:
10491	//   "IPV4"
10492	//   "IPV6"
10493	//   "UNSPECIFIED_VERSION"
10494	IpVersion string `json:"ipVersion,omitempty"`
10495
10496	// IsMirroringCollector: Indicates whether or not this load balancer can
10497	// be used as a collector for packet mirroring. To prevent mirroring
10498	// loops, instances behind this load balancer will not have their
10499	// traffic mirrored even if a PacketMirroring rule applies to them. This
10500	// can only be set to true for load balancers that have their
10501	// loadBalancingScheme set to INTERNAL.
10502	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
10503
10504	// Kind: [Output Only] Type of the resource. Always
10505	// compute#forwardingRule for Forwarding Rule resources.
10506	Kind string `json:"kind,omitempty"`
10507
10508	// LabelFingerprint: A fingerprint for the labels being applied to this
10509	// resource, which is essentially a hash of the labels set used for
10510	// optimistic locking. The fingerprint is initially generated by Compute
10511	// Engine and changes after every request to modify or update labels.
10512	// You must always provide an up-to-date fingerprint hash in order to
10513	// update or change labels, otherwise the request will fail with error
10514	// 412 conditionNotMet.
10515	//
10516	// To see the latest fingerprint, make a get() request to retrieve a
10517	// ForwardingRule.
10518	LabelFingerprint string `json:"labelFingerprint,omitempty"`
10519
10520	// Labels: Labels for this resource. These can only be added or modified
10521	// by the setLabels method. Each label key/value pair must comply with
10522	// RFC1035. Label values may be empty.
10523	Labels map[string]string `json:"labels,omitempty"`
10524
10525	// LoadBalancingScheme: Specifies the forwarding rule type.
10526	//
10527	//
10528	// - EXTERNAL is used for:
10529	// - Classic Cloud VPN gateways
10530	// - Protocol forwarding to VMs from an external IP address
10531	// - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and
10532	// Network TCP/UDP
10533	// - INTERNAL is used for:
10534	// - Protocol forwarding to VMs from an internal IP address
10535	// - Internal TCP/UDP load balancers
10536	// - INTERNAL_MANAGED is used for:
10537	// - Internal HTTP(S) load balancers
10538	// - INTERNAL_SELF_MANAGED is used for:
10539	// - Traffic Director
10540	//
10541	// For more information about forwarding rules, refer to Forwarding rule
10542	// concepts.
10543	//
10544	// Possible values:
10545	//   "EXTERNAL"
10546	//   "INTERNAL"
10547	//   "INTERNAL_MANAGED"
10548	//   "INTERNAL_SELF_MANAGED"
10549	//   "INVALID"
10550	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
10551
10552	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
10553	// restrict routing configuration to a limited set of xDS compliant
10554	// clients. In their xDS requests to Loadbalancer, xDS clients present
10555	// node metadata. If a match takes place, the relevant configuration is
10556	// made available to those proxies. Otherwise, all the resources (e.g.
10557	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
10558	// visible to those proxies.
10559	// For each metadataFilter in this list, if its filterMatchCriteria is
10560	// set to MATCH_ANY, at least one of the filterLabels must match the
10561	// corresponding label provided in the metadata. If its
10562	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
10563	// must match with corresponding labels provided in the
10564	// metadata.
10565	// metadataFilters specified here will be applifed before those
10566	// specified in the UrlMap that this ForwardingRule
10567	// references.
10568	// metadataFilters only applies to Loadbalancers that have their
10569	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10570	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
10571
10572	// Name: Name of the resource; provided by the client when the resource
10573	// is created. The name must be 1-63 characters long, and comply with
10574	// RFC1035. Specifically, the name must be 1-63 characters long and
10575	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10576	// the first character must be a lowercase letter, and all following
10577	// characters must be a dash, lowercase letter, or digit, except the
10578	// last character, which cannot be a dash.
10579	Name string `json:"name,omitempty"`
10580
10581	// Network: This field is not used for external load balancing.
10582	//
10583	// For INTERNAL and INTERNAL_SELF_MANAGED load balancing, this field
10584	// identifies the network that the load balanced IP should belong to for
10585	// this Forwarding Rule. If this field is not specified, the default
10586	// network will be used.
10587	Network string `json:"network,omitempty"`
10588
10589	// NetworkTier: This signifies the networking tier used for configuring
10590	// this load balancer and can only take the following values: PREMIUM,
10591	// STANDARD.
10592	//
10593	// For regional ForwardingRule, the valid values are PREMIUM and
10594	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
10595	//
10596	// If this field is not specified, it is assumed to be PREMIUM. If
10597	// IPAddress is specified, this value must be equal to the networkTier
10598	// of the Address.
10599	//
10600	// Possible values:
10601	//   "PREMIUM"
10602	//   "SELECT"
10603	//   "STANDARD"
10604	NetworkTier string `json:"networkTier,omitempty"`
10605
10606	// PortRange: When the load balancing scheme is EXTERNAL,
10607	// INTERNAL_SELF_MANAGED and INTERNAL_MANAGED, you can specify a
10608	// port_range. Use with a forwarding rule that points to a target proxy
10609	// or a target pool. Do not use with a forwarding rule that points to a
10610	// backend service. This field is used along with the target field for
10611	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
10612	// TargetVpnGateway, TargetPool, TargetInstance.
10613	//
10614	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
10615	// addressed to ports in the specified range will be forwarded to
10616	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
10617	// must have disjoint port ranges.
10618	//
10619	// Some types of forwarding target have constraints on the acceptable
10620	// ports:
10621	// - TargetHttpProxy: 80, 8080
10622	// - TargetHttpsProxy: 443
10623	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10624	// 995, 1688, 1883, 5222
10625	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10626	// 995, 1688, 1883, 5222
10627	// - TargetVpnGateway: 500, 4500
10628	PortRange string `json:"portRange,omitempty"`
10629
10630	// Ports: This field is used along with the backend_service field for
10631	// internal load balancing.
10632	//
10633	// When the load balancing scheme is INTERNAL, a list of ports can be
10634	// configured, for example, ['80'], ['8000','9000']. Only packets
10635	// addressed to these ports are forwarded to the backends configured
10636	// with the forwarding rule.
10637	//
10638	// If the forwarding rule's loadBalancingScheme is INTERNAL, you can
10639	// specify ports in one of the following ways:
10640	//
10641	// * A list of up to five ports, which can be non-contiguous * Keyword
10642	// ALL, which causes the forwarding rule to forward traffic on any port
10643	// of the forwarding rule's protocol.
10644	Ports []string `json:"ports,omitempty"`
10645
10646	// Region: [Output Only] URL of the region where the regional forwarding
10647	// rule resides. This field is not applicable to global forwarding
10648	// rules. You must specify this field as part of the HTTP request URL.
10649	// It is not settable as a field in the request body.
10650	Region string `json:"region,omitempty"`
10651
10652	// SelfLink: [Output Only] Server-defined URL for the resource.
10653	SelfLink string `json:"selfLink,omitempty"`
10654
10655	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10656	// with the resource id.
10657	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10658
10659	// ServiceLabel: An optional prefix to the service name for this
10660	// Forwarding Rule. If specified, the prefix is the first label of the
10661	// fully qualified service name.
10662	//
10663	// The label must be 1-63 characters long, and comply with RFC1035.
10664	// Specifically, the label must be 1-63 characters long and match the
10665	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10666	// character must be a lowercase letter, and all following characters
10667	// must be a dash, lowercase letter, or digit, except the last
10668	// character, which cannot be a dash.
10669	//
10670	// This field is only used for internal load balancing.
10671	ServiceLabel string `json:"serviceLabel,omitempty"`
10672
10673	// ServiceName: [Output Only] The internal fully qualified service name
10674	// for this Forwarding Rule.
10675	//
10676	// This field is only used for internal load balancing.
10677	ServiceName string `json:"serviceName,omitempty"`
10678
10679	// Subnetwork: This field is only used for INTERNAL load balancing.
10680	//
10681	// For internal load balancing, this field identifies the subnetwork
10682	// that the load balanced IP should belong to for this Forwarding
10683	// Rule.
10684	//
10685	// If the network specified is in auto subnet mode, this field is
10686	// optional. However, if the network is in custom subnet mode, a
10687	// subnetwork must be specified.
10688	Subnetwork string `json:"subnetwork,omitempty"`
10689
10690	// Target: The URL of the target resource to receive the matched
10691	// traffic. For regional forwarding rules, this target must live in the
10692	// same region as the forwarding rule. For global forwarding rules, this
10693	// target must be a global load balancing resource. The forwarded
10694	// traffic must be of a type appropriate to the target object. For
10695	// INTERNAL_SELF_MANAGED load balancing, only targetHttpProxy is valid,
10696	// not targetHttpsProxy.
10697	Target string `json:"target,omitempty"`
10698
10699	// ServerResponse contains the HTTP response code and headers from the
10700	// server.
10701	googleapi.ServerResponse `json:"-"`
10702
10703	// ForceSendFields is a list of field names (e.g. "IPAddress") to
10704	// unconditionally include in API requests. By default, fields with
10705	// empty values are omitted from API requests. However, any non-pointer,
10706	// non-interface field appearing in ForceSendFields will be sent to the
10707	// server regardless of whether the field is empty or not. This may be
10708	// used to include empty fields in Patch requests.
10709	ForceSendFields []string `json:"-"`
10710
10711	// NullFields is a list of field names (e.g. "IPAddress") to include in
10712	// API requests with the JSON null value. By default, fields with empty
10713	// values are omitted from API requests. However, any field with an
10714	// empty value appearing in NullFields will be sent to the server as
10715	// null. It is an error if a field in this list has a non-empty value.
10716	// This may be used to include null fields in Patch requests.
10717	NullFields []string `json:"-"`
10718}
10719
10720func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
10721	type NoMethod ForwardingRule
10722	raw := NoMethod(*s)
10723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10724}
10725
10726type ForwardingRuleAggregatedList struct {
10727	// Id: [Output Only] Unique identifier for the resource; defined by the
10728	// server.
10729	Id string `json:"id,omitempty"`
10730
10731	// Items: A list of ForwardingRulesScopedList resources.
10732	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
10733
10734	// Kind: [Output Only] Type of resource. Always
10735	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
10736	Kind string `json:"kind,omitempty"`
10737
10738	// NextPageToken: [Output Only] This token allows you to get the next
10739	// page of results for list requests. If the number of results is larger
10740	// than maxResults, use the nextPageToken as a value for the query
10741	// parameter pageToken in the next list request. Subsequent list
10742	// requests will have their own nextPageToken to continue paging through
10743	// the results.
10744	NextPageToken string `json:"nextPageToken,omitempty"`
10745
10746	// SelfLink: [Output Only] Server-defined URL for this resource.
10747	SelfLink string `json:"selfLink,omitempty"`
10748
10749	// Unreachables: [Output Only] Unreachable resources.
10750	Unreachables []string `json:"unreachables,omitempty"`
10751
10752	// Warning: [Output Only] Informational warning message.
10753	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
10754
10755	// ServerResponse contains the HTTP response code and headers from the
10756	// server.
10757	googleapi.ServerResponse `json:"-"`
10758
10759	// ForceSendFields is a list of field names (e.g. "Id") to
10760	// unconditionally include in API requests. By default, fields with
10761	// empty values are omitted from API requests. However, any non-pointer,
10762	// non-interface field appearing in ForceSendFields will be sent to the
10763	// server regardless of whether the field is empty or not. This may be
10764	// used to include empty fields in Patch requests.
10765	ForceSendFields []string `json:"-"`
10766
10767	// NullFields is a list of field names (e.g. "Id") to include in API
10768	// requests with the JSON null value. By default, fields with empty
10769	// values are omitted from API requests. However, any field with an
10770	// empty value appearing in NullFields will be sent to the server as
10771	// null. It is an error if a field in this list has a non-empty value.
10772	// This may be used to include null fields in Patch requests.
10773	NullFields []string `json:"-"`
10774}
10775
10776func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
10777	type NoMethod ForwardingRuleAggregatedList
10778	raw := NoMethod(*s)
10779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10780}
10781
10782// ForwardingRuleAggregatedListWarning: [Output Only] Informational
10783// warning message.
10784type ForwardingRuleAggregatedListWarning struct {
10785	// Code: [Output Only] A warning code, if applicable. For example,
10786	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10787	// the response.
10788	//
10789	// Possible values:
10790	//   "CLEANUP_FAILED"
10791	//   "DEPRECATED_RESOURCE_USED"
10792	//   "DEPRECATED_TYPE_USED"
10793	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10794	//   "EXPERIMENTAL_TYPE_USED"
10795	//   "EXTERNAL_API_WARNING"
10796	//   "FIELD_VALUE_OVERRIDEN"
10797	//   "INJECTED_KERNELS_DEPRECATED"
10798	//   "MISSING_TYPE_DEPENDENCY"
10799	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10800	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10801	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10802	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10803	//   "NEXT_HOP_NOT_RUNNING"
10804	//   "NOT_CRITICAL_ERROR"
10805	//   "NO_RESULTS_ON_PAGE"
10806	//   "PARTIAL_SUCCESS"
10807	//   "REQUIRED_TOS_AGREEMENT"
10808	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10809	//   "RESOURCE_NOT_DELETED"
10810	//   "SCHEMA_VALIDATION_IGNORED"
10811	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10812	//   "UNDECLARED_PROPERTIES"
10813	//   "UNREACHABLE"
10814	Code string `json:"code,omitempty"`
10815
10816	// Data: [Output Only] Metadata about this warning in key: value format.
10817	// For example:
10818	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10819	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
10820
10821	// Message: [Output Only] A human-readable description of the warning
10822	// code.
10823	Message string `json:"message,omitempty"`
10824
10825	// ForceSendFields is a list of field names (e.g. "Code") to
10826	// unconditionally include in API requests. By default, fields with
10827	// empty values are omitted from API requests. However, any non-pointer,
10828	// non-interface field appearing in ForceSendFields will be sent to the
10829	// server regardless of whether the field is empty or not. This may be
10830	// used to include empty fields in Patch requests.
10831	ForceSendFields []string `json:"-"`
10832
10833	// NullFields is a list of field names (e.g. "Code") to include in API
10834	// requests with the JSON null value. By default, fields with empty
10835	// values are omitted from API requests. However, any field with an
10836	// empty value appearing in NullFields will be sent to the server as
10837	// null. It is an error if a field in this list has a non-empty value.
10838	// This may be used to include null fields in Patch requests.
10839	NullFields []string `json:"-"`
10840}
10841
10842func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
10843	type NoMethod ForwardingRuleAggregatedListWarning
10844	raw := NoMethod(*s)
10845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10846}
10847
10848type ForwardingRuleAggregatedListWarningData struct {
10849	// Key: [Output Only] A key that provides more detail on the warning
10850	// being returned. For example, for warnings where there are no results
10851	// in a list request for a particular zone, this key might be scope and
10852	// the key value might be the zone name. Other examples might be a key
10853	// indicating a deprecated resource and a suggested replacement, or a
10854	// warning about invalid network settings (for example, if an instance
10855	// attempts to perform IP forwarding but is not enabled for IP
10856	// forwarding).
10857	Key string `json:"key,omitempty"`
10858
10859	// Value: [Output Only] A warning data value corresponding to the key.
10860	Value string `json:"value,omitempty"`
10861
10862	// ForceSendFields is a list of field names (e.g. "Key") to
10863	// unconditionally include in API requests. By default, fields with
10864	// empty values are omitted from API requests. However, any non-pointer,
10865	// non-interface field appearing in ForceSendFields will be sent to the
10866	// server regardless of whether the field is empty or not. This may be
10867	// used to include empty fields in Patch requests.
10868	ForceSendFields []string `json:"-"`
10869
10870	// NullFields is a list of field names (e.g. "Key") to include in API
10871	// requests with the JSON null value. By default, fields with empty
10872	// values are omitted from API requests. However, any field with an
10873	// empty value appearing in NullFields will be sent to the server as
10874	// null. It is an error if a field in this list has a non-empty value.
10875	// This may be used to include null fields in Patch requests.
10876	NullFields []string `json:"-"`
10877}
10878
10879func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
10880	type NoMethod ForwardingRuleAggregatedListWarningData
10881	raw := NoMethod(*s)
10882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10883}
10884
10885// ForwardingRuleList: Contains a list of ForwardingRule resources.
10886type ForwardingRuleList struct {
10887	// Id: [Output Only] Unique identifier for the resource; defined by the
10888	// server.
10889	Id string `json:"id,omitempty"`
10890
10891	// Items: A list of ForwardingRule resources.
10892	Items []*ForwardingRule `json:"items,omitempty"`
10893
10894	// Kind: Type of resource.
10895	Kind string `json:"kind,omitempty"`
10896
10897	// NextPageToken: [Output Only] This token allows you to get the next
10898	// page of results for list requests. If the number of results is larger
10899	// than maxResults, use the nextPageToken as a value for the query
10900	// parameter pageToken in the next list request. Subsequent list
10901	// requests will have their own nextPageToken to continue paging through
10902	// the results.
10903	NextPageToken string `json:"nextPageToken,omitempty"`
10904
10905	// SelfLink: [Output Only] Server-defined URL for this resource.
10906	SelfLink string `json:"selfLink,omitempty"`
10907
10908	// Warning: [Output Only] Informational warning message.
10909	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
10910
10911	// ServerResponse contains the HTTP response code and headers from the
10912	// server.
10913	googleapi.ServerResponse `json:"-"`
10914
10915	// ForceSendFields is a list of field names (e.g. "Id") to
10916	// unconditionally include in API requests. By default, fields with
10917	// empty values are omitted from API requests. However, any non-pointer,
10918	// non-interface field appearing in ForceSendFields will be sent to the
10919	// server regardless of whether the field is empty or not. This may be
10920	// used to include empty fields in Patch requests.
10921	ForceSendFields []string `json:"-"`
10922
10923	// NullFields is a list of field names (e.g. "Id") to include in API
10924	// requests with the JSON null value. By default, fields with empty
10925	// values are omitted from API requests. However, any field with an
10926	// empty value appearing in NullFields will be sent to the server as
10927	// null. It is an error if a field in this list has a non-empty value.
10928	// This may be used to include null fields in Patch requests.
10929	NullFields []string `json:"-"`
10930}
10931
10932func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
10933	type NoMethod ForwardingRuleList
10934	raw := NoMethod(*s)
10935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10936}
10937
10938// ForwardingRuleListWarning: [Output Only] Informational warning
10939// message.
10940type ForwardingRuleListWarning struct {
10941	// Code: [Output Only] A warning code, if applicable. For example,
10942	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10943	// the response.
10944	//
10945	// Possible values:
10946	//   "CLEANUP_FAILED"
10947	//   "DEPRECATED_RESOURCE_USED"
10948	//   "DEPRECATED_TYPE_USED"
10949	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10950	//   "EXPERIMENTAL_TYPE_USED"
10951	//   "EXTERNAL_API_WARNING"
10952	//   "FIELD_VALUE_OVERRIDEN"
10953	//   "INJECTED_KERNELS_DEPRECATED"
10954	//   "MISSING_TYPE_DEPENDENCY"
10955	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10956	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10957	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10958	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10959	//   "NEXT_HOP_NOT_RUNNING"
10960	//   "NOT_CRITICAL_ERROR"
10961	//   "NO_RESULTS_ON_PAGE"
10962	//   "PARTIAL_SUCCESS"
10963	//   "REQUIRED_TOS_AGREEMENT"
10964	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10965	//   "RESOURCE_NOT_DELETED"
10966	//   "SCHEMA_VALIDATION_IGNORED"
10967	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10968	//   "UNDECLARED_PROPERTIES"
10969	//   "UNREACHABLE"
10970	Code string `json:"code,omitempty"`
10971
10972	// Data: [Output Only] Metadata about this warning in key: value format.
10973	// For example:
10974	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10975	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
10976
10977	// Message: [Output Only] A human-readable description of the warning
10978	// code.
10979	Message string `json:"message,omitempty"`
10980
10981	// ForceSendFields is a list of field names (e.g. "Code") to
10982	// unconditionally include in API requests. By default, fields with
10983	// empty values are omitted from API requests. However, any non-pointer,
10984	// non-interface field appearing in ForceSendFields will be sent to the
10985	// server regardless of whether the field is empty or not. This may be
10986	// used to include empty fields in Patch requests.
10987	ForceSendFields []string `json:"-"`
10988
10989	// NullFields is a list of field names (e.g. "Code") to include in API
10990	// requests with the JSON null value. By default, fields with empty
10991	// values are omitted from API requests. However, any field with an
10992	// empty value appearing in NullFields will be sent to the server as
10993	// null. It is an error if a field in this list has a non-empty value.
10994	// This may be used to include null fields in Patch requests.
10995	NullFields []string `json:"-"`
10996}
10997
10998func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
10999	type NoMethod ForwardingRuleListWarning
11000	raw := NoMethod(*s)
11001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11002}
11003
11004type ForwardingRuleListWarningData struct {
11005	// Key: [Output Only] A key that provides more detail on the warning
11006	// being returned. For example, for warnings where there are no results
11007	// in a list request for a particular zone, this key might be scope and
11008	// the key value might be the zone name. Other examples might be a key
11009	// indicating a deprecated resource and a suggested replacement, or a
11010	// warning about invalid network settings (for example, if an instance
11011	// attempts to perform IP forwarding but is not enabled for IP
11012	// forwarding).
11013	Key string `json:"key,omitempty"`
11014
11015	// Value: [Output Only] A warning data value corresponding to the key.
11016	Value string `json:"value,omitempty"`
11017
11018	// ForceSendFields is a list of field names (e.g. "Key") to
11019	// unconditionally include in API requests. By default, fields with
11020	// empty values are omitted from API requests. However, any non-pointer,
11021	// non-interface field appearing in ForceSendFields will be sent to the
11022	// server regardless of whether the field is empty or not. This may be
11023	// used to include empty fields in Patch requests.
11024	ForceSendFields []string `json:"-"`
11025
11026	// NullFields is a list of field names (e.g. "Key") to include in API
11027	// requests with the JSON null value. By default, fields with empty
11028	// values are omitted from API requests. However, any field with an
11029	// empty value appearing in NullFields will be sent to the server as
11030	// null. It is an error if a field in this list has a non-empty value.
11031	// This may be used to include null fields in Patch requests.
11032	NullFields []string `json:"-"`
11033}
11034
11035func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
11036	type NoMethod ForwardingRuleListWarningData
11037	raw := NoMethod(*s)
11038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11039}
11040
11041type ForwardingRuleReference struct {
11042	ForwardingRule string `json:"forwardingRule,omitempty"`
11043
11044	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
11045	// unconditionally include in API requests. By default, fields with
11046	// empty values are omitted from API requests. However, any non-pointer,
11047	// non-interface field appearing in ForceSendFields will be sent to the
11048	// server regardless of whether the field is empty or not. This may be
11049	// used to include empty fields in Patch requests.
11050	ForceSendFields []string `json:"-"`
11051
11052	// NullFields is a list of field names (e.g. "ForwardingRule") to
11053	// include in API requests with the JSON null value. By default, fields
11054	// with empty values are omitted from API requests. However, any field
11055	// with an empty value appearing in NullFields will be sent to the
11056	// server as null. It is an error if a field in this list has a
11057	// non-empty value. This may be used to include null fields in Patch
11058	// requests.
11059	NullFields []string `json:"-"`
11060}
11061
11062func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
11063	type NoMethod ForwardingRuleReference
11064	raw := NoMethod(*s)
11065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11066}
11067
11068type ForwardingRulesScopedList struct {
11069	// ForwardingRules: A list of forwarding rules contained in this scope.
11070	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
11071
11072	// Warning: Informational warning which replaces the list of forwarding
11073	// rules when the list is empty.
11074	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
11075
11076	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
11077	// unconditionally include in API requests. By default, fields with
11078	// empty values are omitted from API requests. However, any non-pointer,
11079	// non-interface field appearing in ForceSendFields will be sent to the
11080	// server regardless of whether the field is empty or not. This may be
11081	// used to include empty fields in Patch requests.
11082	ForceSendFields []string `json:"-"`
11083
11084	// NullFields is a list of field names (e.g. "ForwardingRules") to
11085	// include in API requests with the JSON null value. By default, fields
11086	// with empty values are omitted from API requests. However, any field
11087	// with an empty value appearing in NullFields will be sent to the
11088	// server as null. It is an error if a field in this list has a
11089	// non-empty value. This may be used to include null fields in Patch
11090	// requests.
11091	NullFields []string `json:"-"`
11092}
11093
11094func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
11095	type NoMethod ForwardingRulesScopedList
11096	raw := NoMethod(*s)
11097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11098}
11099
11100// ForwardingRulesScopedListWarning: Informational warning which
11101// replaces the list of forwarding rules when the list is empty.
11102type ForwardingRulesScopedListWarning struct {
11103	// Code: [Output Only] A warning code, if applicable. For example,
11104	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11105	// the response.
11106	//
11107	// Possible values:
11108	//   "CLEANUP_FAILED"
11109	//   "DEPRECATED_RESOURCE_USED"
11110	//   "DEPRECATED_TYPE_USED"
11111	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11112	//   "EXPERIMENTAL_TYPE_USED"
11113	//   "EXTERNAL_API_WARNING"
11114	//   "FIELD_VALUE_OVERRIDEN"
11115	//   "INJECTED_KERNELS_DEPRECATED"
11116	//   "MISSING_TYPE_DEPENDENCY"
11117	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11118	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11119	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11120	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11121	//   "NEXT_HOP_NOT_RUNNING"
11122	//   "NOT_CRITICAL_ERROR"
11123	//   "NO_RESULTS_ON_PAGE"
11124	//   "PARTIAL_SUCCESS"
11125	//   "REQUIRED_TOS_AGREEMENT"
11126	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11127	//   "RESOURCE_NOT_DELETED"
11128	//   "SCHEMA_VALIDATION_IGNORED"
11129	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11130	//   "UNDECLARED_PROPERTIES"
11131	//   "UNREACHABLE"
11132	Code string `json:"code,omitempty"`
11133
11134	// Data: [Output Only] Metadata about this warning in key: value format.
11135	// For example:
11136	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11137	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
11138
11139	// Message: [Output Only] A human-readable description of the warning
11140	// code.
11141	Message string `json:"message,omitempty"`
11142
11143	// ForceSendFields is a list of field names (e.g. "Code") to
11144	// unconditionally include in API requests. By default, fields with
11145	// empty values are omitted from API requests. However, any non-pointer,
11146	// non-interface field appearing in ForceSendFields will be sent to the
11147	// server regardless of whether the field is empty or not. This may be
11148	// used to include empty fields in Patch requests.
11149	ForceSendFields []string `json:"-"`
11150
11151	// NullFields is a list of field names (e.g. "Code") to include in API
11152	// requests with the JSON null value. By default, fields with empty
11153	// values are omitted from API requests. However, any field with an
11154	// empty value appearing in NullFields will be sent to the server as
11155	// null. It is an error if a field in this list has a non-empty value.
11156	// This may be used to include null fields in Patch requests.
11157	NullFields []string `json:"-"`
11158}
11159
11160func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
11161	type NoMethod ForwardingRulesScopedListWarning
11162	raw := NoMethod(*s)
11163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11164}
11165
11166type ForwardingRulesScopedListWarningData struct {
11167	// Key: [Output Only] A key that provides more detail on the warning
11168	// being returned. For example, for warnings where there are no results
11169	// in a list request for a particular zone, this key might be scope and
11170	// the key value might be the zone name. Other examples might be a key
11171	// indicating a deprecated resource and a suggested replacement, or a
11172	// warning about invalid network settings (for example, if an instance
11173	// attempts to perform IP forwarding but is not enabled for IP
11174	// forwarding).
11175	Key string `json:"key,omitempty"`
11176
11177	// Value: [Output Only] A warning data value corresponding to the key.
11178	Value string `json:"value,omitempty"`
11179
11180	// ForceSendFields is a list of field names (e.g. "Key") to
11181	// unconditionally include in API requests. By default, fields with
11182	// empty values are omitted from API requests. However, any non-pointer,
11183	// non-interface field appearing in ForceSendFields will be sent to the
11184	// server regardless of whether the field is empty or not. This may be
11185	// used to include empty fields in Patch requests.
11186	ForceSendFields []string `json:"-"`
11187
11188	// NullFields is a list of field names (e.g. "Key") to include in API
11189	// requests with the JSON null value. By default, fields with empty
11190	// values are omitted from API requests. However, any field with an
11191	// empty value appearing in NullFields will be sent to the server as
11192	// null. It is an error if a field in this list has a non-empty value.
11193	// This may be used to include null fields in Patch requests.
11194	NullFields []string `json:"-"`
11195}
11196
11197func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
11198	type NoMethod ForwardingRulesScopedListWarningData
11199	raw := NoMethod(*s)
11200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11201}
11202
11203type GRPCHealthCheck struct {
11204	// GrpcServiceName: The gRPC service name for the health check. This
11205	// field is optional. The value of grpc_service_name has the following
11206	// meanings by convention:
11207	// - Empty service_name means the overall status of all services at the
11208	// backend.
11209	// - Non-empty service_name means the health of that gRPC service, as
11210	// defined by the owner of the service.
11211	// The grpc_service_name can only be ASCII.
11212	GrpcServiceName string `json:"grpcServiceName,omitempty"`
11213
11214	// Port: The port number for the health check request. Must be specified
11215	// if port_name and port_specification are not set or if
11216	// port_specification is USE_FIXED_PORT. Valid values are 1 through
11217	// 65535.
11218	Port int64 `json:"port,omitempty"`
11219
11220	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11221	// both port and port_name are defined, port takes precedence. The
11222	// port_name should conform to RFC1035.
11223	PortName string `json:"portName,omitempty"`
11224
11225	// PortSpecification: Specifies how port is selected for health
11226	// checking, can be one of following values:
11227	// USE_FIXED_PORT: The port number in port is used for health
11228	// checking.
11229	// USE_NAMED_PORT: The portName is used for health
11230	// checking.
11231	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11232	// each network endpoint is used for health checking. For other
11233	// backends, the port or named port specified in the Backend Service is
11234	// used for health checking.
11235	//
11236	//
11237	// If not specified, gRPC health check follows behavior specified in
11238	// port and portName fields.
11239	//
11240	// Possible values:
11241	//   "USE_FIXED_PORT"
11242	//   "USE_NAMED_PORT"
11243	//   "USE_SERVING_PORT"
11244	PortSpecification string `json:"portSpecification,omitempty"`
11245
11246	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
11247	// unconditionally include in API requests. By default, fields with
11248	// empty values are omitted from API requests. However, any non-pointer,
11249	// non-interface field appearing in ForceSendFields will be sent to the
11250	// server regardless of whether the field is empty or not. This may be
11251	// used to include empty fields in Patch requests.
11252	ForceSendFields []string `json:"-"`
11253
11254	// NullFields is a list of field names (e.g. "GrpcServiceName") to
11255	// include in API requests with the JSON null value. By default, fields
11256	// with empty values are omitted from API requests. However, any field
11257	// with an empty value appearing in NullFields will be sent to the
11258	// server as null. It is an error if a field in this list has a
11259	// non-empty value. This may be used to include null fields in Patch
11260	// requests.
11261	NullFields []string `json:"-"`
11262}
11263
11264func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) {
11265	type NoMethod GRPCHealthCheck
11266	raw := NoMethod(*s)
11267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11268}
11269
11270type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
11271	// NetworkEndpoints: The list of network endpoints to be attached.
11272	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
11273
11274	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
11275	// unconditionally include in API requests. By default, fields with
11276	// empty values are omitted from API requests. However, any non-pointer,
11277	// non-interface field appearing in ForceSendFields will be sent to the
11278	// server regardless of whether the field is empty or not. This may be
11279	// used to include empty fields in Patch requests.
11280	ForceSendFields []string `json:"-"`
11281
11282	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
11283	// include in API requests with the JSON null value. By default, fields
11284	// with empty values are omitted from API requests. However, any field
11285	// with an empty value appearing in NullFields will be sent to the
11286	// server as null. It is an error if a field in this list has a
11287	// non-empty value. This may be used to include null fields in Patch
11288	// requests.
11289	NullFields []string `json:"-"`
11290}
11291
11292func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
11293	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
11294	raw := NoMethod(*s)
11295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11296}
11297
11298type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
11299	// NetworkEndpoints: The list of network endpoints to be detached.
11300	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
11301
11302	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
11303	// unconditionally include in API requests. By default, fields with
11304	// empty values are omitted from API requests. However, any non-pointer,
11305	// non-interface field appearing in ForceSendFields will be sent to the
11306	// server regardless of whether the field is empty or not. This may be
11307	// used to include empty fields in Patch requests.
11308	ForceSendFields []string `json:"-"`
11309
11310	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
11311	// include in API requests with the JSON null value. By default, fields
11312	// with empty values are omitted from API requests. However, any field
11313	// with an empty value appearing in NullFields will be sent to the
11314	// server as null. It is an error if a field in this list has a
11315	// non-empty value. This may be used to include null fields in Patch
11316	// requests.
11317	NullFields []string `json:"-"`
11318}
11319
11320func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
11321	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
11322	raw := NoMethod(*s)
11323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11324}
11325
11326type GlobalSetLabelsRequest struct {
11327	// LabelFingerprint: The fingerprint of the previous set of labels for
11328	// this resource, used to detect conflicts. The fingerprint is initially
11329	// generated by Compute Engine and changes after every request to modify
11330	// or update labels. You must always provide an up-to-date fingerprint
11331	// hash when updating or changing labels, otherwise the request will
11332	// fail with error 412 conditionNotMet. Make a get() request to the
11333	// resource to get the latest fingerprint.
11334	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11335
11336	// Labels: A list of labels to apply for this resource. Each label key &
11337	// value must comply with RFC1035. Specifically, the name must be 1-63
11338	// characters long and match the regular expression
11339	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11340	// a lowercase letter, and all following characters must be a dash,
11341	// lowercase letter, or digit, except the last character, which cannot
11342	// be a dash. For example, "webserver-frontend": "images". A label value
11343	// can also be empty (e.g. "my-label": "").
11344	Labels map[string]string `json:"labels,omitempty"`
11345
11346	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
11347	// unconditionally include in API requests. By default, fields with
11348	// empty values are omitted from API requests. However, any non-pointer,
11349	// non-interface field appearing in ForceSendFields will be sent to the
11350	// server regardless of whether the field is empty or not. This may be
11351	// used to include empty fields in Patch requests.
11352	ForceSendFields []string `json:"-"`
11353
11354	// NullFields is a list of field names (e.g. "LabelFingerprint") to
11355	// include in API requests with the JSON null value. By default, fields
11356	// with empty values are omitted from API requests. However, any field
11357	// with an empty value appearing in NullFields will be sent to the
11358	// server as null. It is an error if a field in this list has a
11359	// non-empty value. This may be used to include null fields in Patch
11360	// requests.
11361	NullFields []string `json:"-"`
11362}
11363
11364func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
11365	type NoMethod GlobalSetLabelsRequest
11366	raw := NoMethod(*s)
11367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11368}
11369
11370type GlobalSetPolicyRequest struct {
11371	// Bindings: Flatten Policy to create a backward compatible wire-format.
11372	// Deprecated. Use 'policy' to specify bindings.
11373	Bindings []*Binding `json:"bindings,omitempty"`
11374
11375	// Etag: Flatten Policy to create a backward compatible wire-format.
11376	// Deprecated. Use 'policy' to specify the etag.
11377	Etag string `json:"etag,omitempty"`
11378
11379	// Policy: REQUIRED: The complete policy to be applied to the
11380	// 'resource'. The size of the policy is limited to a few 10s of KB. An
11381	// empty policy is in general a valid policy but certain services (like
11382	// Projects) might reject them.
11383	Policy *Policy `json:"policy,omitempty"`
11384
11385	// ForceSendFields is a list of field names (e.g. "Bindings") to
11386	// unconditionally include in API requests. By default, fields with
11387	// empty values are omitted from API requests. However, any non-pointer,
11388	// non-interface field appearing in ForceSendFields will be sent to the
11389	// server regardless of whether the field is empty or not. This may be
11390	// used to include empty fields in Patch requests.
11391	ForceSendFields []string `json:"-"`
11392
11393	// NullFields is a list of field names (e.g. "Bindings") to include in
11394	// API requests with the JSON null value. By default, fields with empty
11395	// values are omitted from API requests. However, any field with an
11396	// empty value appearing in NullFields will be sent to the server as
11397	// null. It is an error if a field in this list has a non-empty value.
11398	// This may be used to include null fields in Patch requests.
11399	NullFields []string `json:"-"`
11400}
11401
11402func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
11403	type NoMethod GlobalSetPolicyRequest
11404	raw := NoMethod(*s)
11405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11406}
11407
11408// GrpcServiceConfig: [Deprecated] gRPC config to access the SDS server.
11409// gRPC config to access the SDS server.
11410type GrpcServiceConfig struct {
11411	// CallCredentials: The call credentials to access the SDS server.
11412	CallCredentials *CallCredentials `json:"callCredentials,omitempty"`
11413
11414	// ChannelCredentials: The channel credentials to access the SDS server.
11415	ChannelCredentials *ChannelCredentials `json:"channelCredentials,omitempty"`
11416
11417	// TargetUri: The target URI of the SDS server.
11418	TargetUri string `json:"targetUri,omitempty"`
11419
11420	// ForceSendFields is a list of field names (e.g. "CallCredentials") to
11421	// unconditionally include in API requests. By default, fields with
11422	// empty values are omitted from API requests. However, any non-pointer,
11423	// non-interface field appearing in ForceSendFields will be sent to the
11424	// server regardless of whether the field is empty or not. This may be
11425	// used to include empty fields in Patch requests.
11426	ForceSendFields []string `json:"-"`
11427
11428	// NullFields is a list of field names (e.g. "CallCredentials") to
11429	// include in API requests with the JSON null value. By default, fields
11430	// with empty values are omitted from API requests. However, any field
11431	// with an empty value appearing in NullFields will be sent to the
11432	// server as null. It is an error if a field in this list has a
11433	// non-empty value. This may be used to include null fields in Patch
11434	// requests.
11435	NullFields []string `json:"-"`
11436}
11437
11438func (s *GrpcServiceConfig) MarshalJSON() ([]byte, error) {
11439	type NoMethod GrpcServiceConfig
11440	raw := NoMethod(*s)
11441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11442}
11443
11444// GuestAttributes: A guest attributes entry.
11445type GuestAttributes struct {
11446	// Kind: [Output Only] Type of the resource. Always
11447	// compute#guestAttributes for guest attributes entry.
11448	Kind string `json:"kind,omitempty"`
11449
11450	// QueryPath: The path to be queried. This can be the default namespace
11451	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
11452	QueryPath string `json:"queryPath,omitempty"`
11453
11454	// QueryValue: [Output Only] The value of the requested queried path.
11455	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
11456
11457	// SelfLink: [Output Only] Server-defined URL for this resource.
11458	SelfLink string `json:"selfLink,omitempty"`
11459
11460	// VariableKey: The key to search for.
11461	VariableKey string `json:"variableKey,omitempty"`
11462
11463	// VariableValue: [Output Only] The value found for the requested key.
11464	VariableValue string `json:"variableValue,omitempty"`
11465
11466	// ServerResponse contains the HTTP response code and headers from the
11467	// server.
11468	googleapi.ServerResponse `json:"-"`
11469
11470	// ForceSendFields is a list of field names (e.g. "Kind") to
11471	// unconditionally include in API requests. By default, fields with
11472	// empty values are omitted from API requests. However, any non-pointer,
11473	// non-interface field appearing in ForceSendFields will be sent to the
11474	// server regardless of whether the field is empty or not. This may be
11475	// used to include empty fields in Patch requests.
11476	ForceSendFields []string `json:"-"`
11477
11478	// NullFields is a list of field names (e.g. "Kind") to include in API
11479	// requests with the JSON null value. By default, fields with empty
11480	// values are omitted from API requests. However, any field with an
11481	// empty value appearing in NullFields will be sent to the server as
11482	// null. It is an error if a field in this list has a non-empty value.
11483	// This may be used to include null fields in Patch requests.
11484	NullFields []string `json:"-"`
11485}
11486
11487func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
11488	type NoMethod GuestAttributes
11489	raw := NoMethod(*s)
11490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11491}
11492
11493// GuestAttributesEntry: A guest attributes namespace/key/value entry.
11494type GuestAttributesEntry struct {
11495	// Key: Key for the guest attribute entry.
11496	Key string `json:"key,omitempty"`
11497
11498	// Namespace: Namespace for the guest attribute entry.
11499	Namespace string `json:"namespace,omitempty"`
11500
11501	// Value: Value for the guest attribute entry.
11502	Value string `json:"value,omitempty"`
11503
11504	// ForceSendFields is a list of field names (e.g. "Key") to
11505	// unconditionally include in API requests. By default, fields with
11506	// empty values are omitted from API requests. However, any non-pointer,
11507	// non-interface field appearing in ForceSendFields will be sent to the
11508	// server regardless of whether the field is empty or not. This may be
11509	// used to include empty fields in Patch requests.
11510	ForceSendFields []string `json:"-"`
11511
11512	// NullFields is a list of field names (e.g. "Key") to include in API
11513	// requests with the JSON null value. By default, fields with empty
11514	// values are omitted from API requests. However, any field with an
11515	// empty value appearing in NullFields will be sent to the server as
11516	// null. It is an error if a field in this list has a non-empty value.
11517	// This may be used to include null fields in Patch requests.
11518	NullFields []string `json:"-"`
11519}
11520
11521func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
11522	type NoMethod GuestAttributesEntry
11523	raw := NoMethod(*s)
11524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11525}
11526
11527// GuestAttributesValue: Array of guest attribute namespace/key/value
11528// tuples.
11529type GuestAttributesValue struct {
11530	Items []*GuestAttributesEntry `json:"items,omitempty"`
11531
11532	// ForceSendFields is a list of field names (e.g. "Items") to
11533	// unconditionally include in API requests. By default, fields with
11534	// empty values are omitted from API requests. However, any non-pointer,
11535	// non-interface field appearing in ForceSendFields will be sent to the
11536	// server regardless of whether the field is empty or not. This may be
11537	// used to include empty fields in Patch requests.
11538	ForceSendFields []string `json:"-"`
11539
11540	// NullFields is a list of field names (e.g. "Items") to include in API
11541	// requests with the JSON null value. By default, fields with empty
11542	// values are omitted from API requests. However, any field with an
11543	// empty value appearing in NullFields will be sent to the server as
11544	// null. It is an error if a field in this list has a non-empty value.
11545	// This may be used to include null fields in Patch requests.
11546	NullFields []string `json:"-"`
11547}
11548
11549func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
11550	type NoMethod GuestAttributesValue
11551	raw := NoMethod(*s)
11552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11553}
11554
11555// GuestOsFeature: Guest OS features.
11556type GuestOsFeature struct {
11557	// Type: The ID of a supported feature. Read  Enabling guest operating
11558	// system features to see a list of available options.
11559	//
11560	// Possible values:
11561	//   "BARE_METAL_LINUX_COMPATIBLE"
11562	//   "FEATURE_TYPE_UNSPECIFIED"
11563	//   "GVNIC"
11564	//   "MULTI_IP_SUBNET"
11565	//   "SECURE_BOOT"
11566	//   "UEFI_COMPATIBLE"
11567	//   "VIRTIO_SCSI_MULTIQUEUE"
11568	//   "WINDOWS"
11569	Type string `json:"type,omitempty"`
11570
11571	// ForceSendFields is a list of field names (e.g. "Type") to
11572	// unconditionally include in API requests. By default, fields with
11573	// empty values are omitted from API requests. However, any non-pointer,
11574	// non-interface field appearing in ForceSendFields will be sent to the
11575	// server regardless of whether the field is empty or not. This may be
11576	// used to include empty fields in Patch requests.
11577	ForceSendFields []string `json:"-"`
11578
11579	// NullFields is a list of field names (e.g. "Type") to include in API
11580	// requests with the JSON null value. By default, fields with empty
11581	// values are omitted from API requests. However, any field with an
11582	// empty value appearing in NullFields will be sent to the server as
11583	// null. It is an error if a field in this list has a non-empty value.
11584	// This may be used to include null fields in Patch requests.
11585	NullFields []string `json:"-"`
11586}
11587
11588func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
11589	type NoMethod GuestOsFeature
11590	raw := NoMethod(*s)
11591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11592}
11593
11594type HTTP2HealthCheck struct {
11595	// Host: The value of the host header in the HTTP/2 health check
11596	// request. If left empty (default value), the IP on behalf of which
11597	// this health check is performed will be used.
11598	Host string `json:"host,omitempty"`
11599
11600	// Port: The TCP port number for the health check request. The default
11601	// value is 443. Valid values are 1 through 65535.
11602	Port int64 `json:"port,omitempty"`
11603
11604	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11605	// both port and port_name are defined, port takes precedence.
11606	PortName string `json:"portName,omitempty"`
11607
11608	// PortSpecification: Specifies how port is selected for health
11609	// checking, can be one of following values:
11610	// USE_FIXED_PORT: The port number in port is used for health
11611	// checking.
11612	// USE_NAMED_PORT: The portName is used for health
11613	// checking.
11614	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11615	// each network endpoint is used for health checking. For other
11616	// backends, the port or named port specified in the Backend Service is
11617	// used for health checking.
11618	//
11619	//
11620	// If not specified, HTTP2 health check follows behavior specified in
11621	// port and portName fields.
11622	//
11623	// Possible values:
11624	//   "USE_FIXED_PORT"
11625	//   "USE_NAMED_PORT"
11626	//   "USE_SERVING_PORT"
11627	PortSpecification string `json:"portSpecification,omitempty"`
11628
11629	// ProxyHeader: Specifies the type of proxy header to append before
11630	// sending data to the backend, either NONE or PROXY_V1. The default is
11631	// NONE.
11632	//
11633	// Possible values:
11634	//   "NONE"
11635	//   "PROXY_V1"
11636	ProxyHeader string `json:"proxyHeader,omitempty"`
11637
11638	// RequestPath: The request path of the HTTP/2 health check request. The
11639	// default value is /.
11640	RequestPath string `json:"requestPath,omitempty"`
11641
11642	// Response: The string to match anywhere in the first 1024 bytes of the
11643	// response body. If left empty (the default value), the status code
11644	// determines health. The response data can only be ASCII.
11645	Response string `json:"response,omitempty"`
11646
11647	// ForceSendFields is a list of field names (e.g. "Host") to
11648	// unconditionally include in API requests. By default, fields with
11649	// empty values are omitted from API requests. However, any non-pointer,
11650	// non-interface field appearing in ForceSendFields will be sent to the
11651	// server regardless of whether the field is empty or not. This may be
11652	// used to include empty fields in Patch requests.
11653	ForceSendFields []string `json:"-"`
11654
11655	// NullFields is a list of field names (e.g. "Host") to include in API
11656	// requests with the JSON null value. By default, fields with empty
11657	// values are omitted from API requests. However, any field with an
11658	// empty value appearing in NullFields will be sent to the server as
11659	// null. It is an error if a field in this list has a non-empty value.
11660	// This may be used to include null fields in Patch requests.
11661	NullFields []string `json:"-"`
11662}
11663
11664func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
11665	type NoMethod HTTP2HealthCheck
11666	raw := NoMethod(*s)
11667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11668}
11669
11670type HTTPHealthCheck struct {
11671	// Host: The value of the host header in the HTTP health check request.
11672	// If left empty (default value), the IP on behalf of which this health
11673	// check is performed will be used.
11674	Host string `json:"host,omitempty"`
11675
11676	// Port: The TCP port number for the health check request. The default
11677	// value is 80. Valid values are 1 through 65535.
11678	Port int64 `json:"port,omitempty"`
11679
11680	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11681	// both port and port_name are defined, port takes precedence.
11682	PortName string `json:"portName,omitempty"`
11683
11684	// PortSpecification: Specifies how port is selected for health
11685	// checking, can be one of following values:
11686	// USE_FIXED_PORT: The port number in port is used for health
11687	// checking.
11688	// USE_NAMED_PORT: The portName is used for health
11689	// checking.
11690	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11691	// each network endpoint is used for health checking. For other
11692	// backends, the port or named port specified in the Backend Service is
11693	// used for health checking.
11694	//
11695	//
11696	// If not specified, HTTP health check follows behavior specified in
11697	// port and portName fields.
11698	//
11699	// Possible values:
11700	//   "USE_FIXED_PORT"
11701	//   "USE_NAMED_PORT"
11702	//   "USE_SERVING_PORT"
11703	PortSpecification string `json:"portSpecification,omitempty"`
11704
11705	// ProxyHeader: Specifies the type of proxy header to append before
11706	// sending data to the backend, either NONE or PROXY_V1. The default is
11707	// NONE.
11708	//
11709	// Possible values:
11710	//   "NONE"
11711	//   "PROXY_V1"
11712	ProxyHeader string `json:"proxyHeader,omitempty"`
11713
11714	// RequestPath: The request path of the HTTP health check request. The
11715	// default value is /.
11716	RequestPath string `json:"requestPath,omitempty"`
11717
11718	// Response: The string to match anywhere in the first 1024 bytes of the
11719	// response body. If left empty (the default value), the status code
11720	// determines health. The response data can only be ASCII.
11721	Response string `json:"response,omitempty"`
11722
11723	// ForceSendFields is a list of field names (e.g. "Host") to
11724	// unconditionally include in API requests. By default, fields with
11725	// empty values are omitted from API requests. However, any non-pointer,
11726	// non-interface field appearing in ForceSendFields will be sent to the
11727	// server regardless of whether the field is empty or not. This may be
11728	// used to include empty fields in Patch requests.
11729	ForceSendFields []string `json:"-"`
11730
11731	// NullFields is a list of field names (e.g. "Host") to include in API
11732	// requests with the JSON null value. By default, fields with empty
11733	// values are omitted from API requests. However, any field with an
11734	// empty value appearing in NullFields will be sent to the server as
11735	// null. It is an error if a field in this list has a non-empty value.
11736	// This may be used to include null fields in Patch requests.
11737	NullFields []string `json:"-"`
11738}
11739
11740func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
11741	type NoMethod HTTPHealthCheck
11742	raw := NoMethod(*s)
11743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11744}
11745
11746type HTTPSHealthCheck struct {
11747	// Host: The value of the host header in the HTTPS health check request.
11748	// If left empty (default value), the IP on behalf of which this health
11749	// check is performed will be used.
11750	Host string `json:"host,omitempty"`
11751
11752	// Port: The TCP port number for the health check request. The default
11753	// value is 443. Valid values are 1 through 65535.
11754	Port int64 `json:"port,omitempty"`
11755
11756	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11757	// both port and port_name are defined, port takes precedence.
11758	PortName string `json:"portName,omitempty"`
11759
11760	// PortSpecification: Specifies how port is selected for health
11761	// checking, can be one of following values:
11762	// USE_FIXED_PORT: The port number in port is used for health
11763	// checking.
11764	// USE_NAMED_PORT: The portName is used for health
11765	// checking.
11766	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11767	// each network endpoint is used for health checking. For other
11768	// backends, the port or named port specified in the Backend Service is
11769	// used for health checking.
11770	//
11771	//
11772	// If not specified, HTTPS health check follows behavior specified in
11773	// port and portName fields.
11774	//
11775	// Possible values:
11776	//   "USE_FIXED_PORT"
11777	//   "USE_NAMED_PORT"
11778	//   "USE_SERVING_PORT"
11779	PortSpecification string `json:"portSpecification,omitempty"`
11780
11781	// ProxyHeader: Specifies the type of proxy header to append before
11782	// sending data to the backend, either NONE or PROXY_V1. The default is
11783	// NONE.
11784	//
11785	// Possible values:
11786	//   "NONE"
11787	//   "PROXY_V1"
11788	ProxyHeader string `json:"proxyHeader,omitempty"`
11789
11790	// RequestPath: The request path of the HTTPS health check request. The
11791	// default value is /.
11792	RequestPath string `json:"requestPath,omitempty"`
11793
11794	// Response: The string to match anywhere in the first 1024 bytes of the
11795	// response body. If left empty (the default value), the status code
11796	// determines health. The response data can only be ASCII.
11797	Response string `json:"response,omitempty"`
11798
11799	// ForceSendFields is a list of field names (e.g. "Host") to
11800	// unconditionally include in API requests. By default, fields with
11801	// empty values are omitted from API requests. However, any non-pointer,
11802	// non-interface field appearing in ForceSendFields will be sent to the
11803	// server regardless of whether the field is empty or not. This may be
11804	// used to include empty fields in Patch requests.
11805	ForceSendFields []string `json:"-"`
11806
11807	// NullFields is a list of field names (e.g. "Host") to include in API
11808	// requests with the JSON null value. By default, fields with empty
11809	// values are omitted from API requests. However, any field with an
11810	// empty value appearing in NullFields will be sent to the server as
11811	// null. It is an error if a field in this list has a non-empty value.
11812	// This may be used to include null fields in Patch requests.
11813	NullFields []string `json:"-"`
11814}
11815
11816func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
11817	type NoMethod HTTPSHealthCheck
11818	raw := NoMethod(*s)
11819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11820}
11821
11822// HealthCheck: Represents a Health Check resource.
11823//
11824// Google Compute Engine has two Health Check resources:
11825//
11826// * [Global](/compute/docs/reference/rest/{$api_version}/healthChecks)
11827// *
11828// [Regional](/compute/docs/reference/rest/{$api_version}/regionHealthChe
11829// cks)
11830//
11831// Internal HTTP(S) load balancers use regional health checks. All other
11832// types of GCP load balancers and managed instance group auto-healing
11833// use global health checks. For more information, read Health Check
11834// Concepts.
11835//
11836// To perform health checks on network load balancers, you must use
11837// either httpHealthChecks or httpsHealthChecks.
11838type HealthCheck struct {
11839	// CheckIntervalSec: How often (in seconds) to send a health check. The
11840	// default value is 5 seconds.
11841	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
11842
11843	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
11844	// format.
11845	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11846
11847	// Description: An optional description of this resource. Provide this
11848	// property when you create the resource.
11849	Description string `json:"description,omitempty"`
11850
11851	GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"`
11852
11853	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
11854	// after this many consecutive successes. The default value is 2.
11855	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
11856
11857	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
11858
11859	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
11860
11861	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
11862
11863	// Id: [Output Only] The unique identifier for the resource. This
11864	// identifier is defined by the server.
11865	Id uint64 `json:"id,omitempty,string"`
11866
11867	// Kind: Type of the resource.
11868	Kind string `json:"kind,omitempty"`
11869
11870	// LogConfig: Configure logging on this health check.
11871	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
11872
11873	// Name: Name of the resource. Provided by the client when the resource
11874	// is created. The name must be 1-63 characters long, and comply with
11875	// RFC1035. Specifically, the name must be 1-63 characters long and
11876	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11877	// the first character must be a lowercase letter, and all following
11878	// characters must be a dash, lowercase letter, or digit, except the
11879	// last character, which cannot be a dash.
11880	Name string `json:"name,omitempty"`
11881
11882	// Region: [Output Only] Region where the health check resides. Not
11883	// applicable to global health checks.
11884	Region string `json:"region,omitempty"`
11885
11886	// SelfLink: [Output Only] Server-defined URL for the resource.
11887	SelfLink string `json:"selfLink,omitempty"`
11888
11889	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
11890	// with the resource id.
11891	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
11892
11893	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
11894
11895	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
11896
11897	// TimeoutSec: How long (in seconds) to wait before claiming failure.
11898	// The default value is 5 seconds. It is invalid for timeoutSec to have
11899	// greater value than checkIntervalSec.
11900	TimeoutSec int64 `json:"timeoutSec,omitempty"`
11901
11902	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
11903	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
11904	// the protocol-specific health check field must be specified, which
11905	// must match type field.
11906	//
11907	// Possible values:
11908	//   "GRPC"
11909	//   "HTTP"
11910	//   "HTTP2"
11911	//   "HTTPS"
11912	//   "INVALID"
11913	//   "SSL"
11914	//   "TCP"
11915	//   "UDP"
11916	Type string `json:"type,omitempty"`
11917
11918	UdpHealthCheck *UDPHealthCheck `json:"udpHealthCheck,omitempty"`
11919
11920	// UnhealthyThreshold: A so-far healthy instance will be marked
11921	// unhealthy after this many consecutive failures. The default value is
11922	// 2.
11923	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
11924
11925	// ServerResponse contains the HTTP response code and headers from the
11926	// server.
11927	googleapi.ServerResponse `json:"-"`
11928
11929	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
11930	// unconditionally include in API requests. By default, fields with
11931	// empty values are omitted from API requests. However, any non-pointer,
11932	// non-interface field appearing in ForceSendFields will be sent to the
11933	// server regardless of whether the field is empty or not. This may be
11934	// used to include empty fields in Patch requests.
11935	ForceSendFields []string `json:"-"`
11936
11937	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
11938	// include in API requests with the JSON null value. By default, fields
11939	// with empty values are omitted from API requests. However, any field
11940	// with an empty value appearing in NullFields will be sent to the
11941	// server as null. It is an error if a field in this list has a
11942	// non-empty value. This may be used to include null fields in Patch
11943	// requests.
11944	NullFields []string `json:"-"`
11945}
11946
11947func (s *HealthCheck) MarshalJSON() ([]byte, error) {
11948	type NoMethod HealthCheck
11949	raw := NoMethod(*s)
11950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11951}
11952
11953// HealthCheckList: Contains a list of HealthCheck resources.
11954type HealthCheckList struct {
11955	// Id: [Output Only] Unique identifier for the resource; defined by the
11956	// server.
11957	Id string `json:"id,omitempty"`
11958
11959	// Items: A list of HealthCheck resources.
11960	Items []*HealthCheck `json:"items,omitempty"`
11961
11962	// Kind: Type of resource.
11963	Kind string `json:"kind,omitempty"`
11964
11965	// NextPageToken: [Output Only] This token allows you to get the next
11966	// page of results for list requests. If the number of results is larger
11967	// than maxResults, use the nextPageToken as a value for the query
11968	// parameter pageToken in the next list request. Subsequent list
11969	// requests will have their own nextPageToken to continue paging through
11970	// the results.
11971	NextPageToken string `json:"nextPageToken,omitempty"`
11972
11973	// SelfLink: [Output Only] Server-defined URL for this resource.
11974	SelfLink string `json:"selfLink,omitempty"`
11975
11976	// Warning: [Output Only] Informational warning message.
11977	Warning *HealthCheckListWarning `json:"warning,omitempty"`
11978
11979	// ServerResponse contains the HTTP response code and headers from the
11980	// server.
11981	googleapi.ServerResponse `json:"-"`
11982
11983	// ForceSendFields is a list of field names (e.g. "Id") to
11984	// unconditionally include in API requests. By default, fields with
11985	// empty values are omitted from API requests. However, any non-pointer,
11986	// non-interface field appearing in ForceSendFields will be sent to the
11987	// server regardless of whether the field is empty or not. This may be
11988	// used to include empty fields in Patch requests.
11989	ForceSendFields []string `json:"-"`
11990
11991	// NullFields is a list of field names (e.g. "Id") to include in API
11992	// requests with the JSON null value. By default, fields with empty
11993	// values are omitted from API requests. However, any field with an
11994	// empty value appearing in NullFields will be sent to the server as
11995	// null. It is an error if a field in this list has a non-empty value.
11996	// This may be used to include null fields in Patch requests.
11997	NullFields []string `json:"-"`
11998}
11999
12000func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
12001	type NoMethod HealthCheckList
12002	raw := NoMethod(*s)
12003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12004}
12005
12006// HealthCheckListWarning: [Output Only] Informational warning message.
12007type HealthCheckListWarning struct {
12008	// Code: [Output Only] A warning code, if applicable. For example,
12009	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12010	// the response.
12011	//
12012	// Possible values:
12013	//   "CLEANUP_FAILED"
12014	//   "DEPRECATED_RESOURCE_USED"
12015	//   "DEPRECATED_TYPE_USED"
12016	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12017	//   "EXPERIMENTAL_TYPE_USED"
12018	//   "EXTERNAL_API_WARNING"
12019	//   "FIELD_VALUE_OVERRIDEN"
12020	//   "INJECTED_KERNELS_DEPRECATED"
12021	//   "MISSING_TYPE_DEPENDENCY"
12022	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12023	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12024	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12025	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12026	//   "NEXT_HOP_NOT_RUNNING"
12027	//   "NOT_CRITICAL_ERROR"
12028	//   "NO_RESULTS_ON_PAGE"
12029	//   "PARTIAL_SUCCESS"
12030	//   "REQUIRED_TOS_AGREEMENT"
12031	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12032	//   "RESOURCE_NOT_DELETED"
12033	//   "SCHEMA_VALIDATION_IGNORED"
12034	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12035	//   "UNDECLARED_PROPERTIES"
12036	//   "UNREACHABLE"
12037	Code string `json:"code,omitempty"`
12038
12039	// Data: [Output Only] Metadata about this warning in key: value format.
12040	// For example:
12041	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12042	Data []*HealthCheckListWarningData `json:"data,omitempty"`
12043
12044	// Message: [Output Only] A human-readable description of the warning
12045	// code.
12046	Message string `json:"message,omitempty"`
12047
12048	// ForceSendFields is a list of field names (e.g. "Code") to
12049	// unconditionally include in API requests. By default, fields with
12050	// empty values are omitted from API requests. However, any non-pointer,
12051	// non-interface field appearing in ForceSendFields will be sent to the
12052	// server regardless of whether the field is empty or not. This may be
12053	// used to include empty fields in Patch requests.
12054	ForceSendFields []string `json:"-"`
12055
12056	// NullFields is a list of field names (e.g. "Code") to include in API
12057	// requests with the JSON null value. By default, fields with empty
12058	// values are omitted from API requests. However, any field with an
12059	// empty value appearing in NullFields will be sent to the server as
12060	// null. It is an error if a field in this list has a non-empty value.
12061	// This may be used to include null fields in Patch requests.
12062	NullFields []string `json:"-"`
12063}
12064
12065func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
12066	type NoMethod HealthCheckListWarning
12067	raw := NoMethod(*s)
12068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12069}
12070
12071type HealthCheckListWarningData struct {
12072	// Key: [Output Only] A key that provides more detail on the warning
12073	// being returned. For example, for warnings where there are no results
12074	// in a list request for a particular zone, this key might be scope and
12075	// the key value might be the zone name. Other examples might be a key
12076	// indicating a deprecated resource and a suggested replacement, or a
12077	// warning about invalid network settings (for example, if an instance
12078	// attempts to perform IP forwarding but is not enabled for IP
12079	// forwarding).
12080	Key string `json:"key,omitempty"`
12081
12082	// Value: [Output Only] A warning data value corresponding to the key.
12083	Value string `json:"value,omitempty"`
12084
12085	// ForceSendFields is a list of field names (e.g. "Key") to
12086	// unconditionally include in API requests. By default, fields with
12087	// empty values are omitted from API requests. However, any non-pointer,
12088	// non-interface field appearing in ForceSendFields will be sent to the
12089	// server regardless of whether the field is empty or not. This may be
12090	// used to include empty fields in Patch requests.
12091	ForceSendFields []string `json:"-"`
12092
12093	// NullFields is a list of field names (e.g. "Key") to include in API
12094	// requests with the JSON null value. By default, fields with empty
12095	// values are omitted from API requests. However, any field with an
12096	// empty value appearing in NullFields will be sent to the server as
12097	// null. It is an error if a field in this list has a non-empty value.
12098	// This may be used to include null fields in Patch requests.
12099	NullFields []string `json:"-"`
12100}
12101
12102func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
12103	type NoMethod HealthCheckListWarningData
12104	raw := NoMethod(*s)
12105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12106}
12107
12108// HealthCheckLogConfig: Configuration of logging on a health check. If
12109// logging is enabled, logs will be exported to Stackdriver.
12110type HealthCheckLogConfig struct {
12111	// Enable: Indicates whether or not to export logs. This is false by
12112	// default, which means no health check logging will be done.
12113	Enable bool `json:"enable,omitempty"`
12114
12115	// ForceSendFields is a list of field names (e.g. "Enable") to
12116	// unconditionally include in API requests. By default, fields with
12117	// empty values are omitted from API requests. However, any non-pointer,
12118	// non-interface field appearing in ForceSendFields will be sent to the
12119	// server regardless of whether the field is empty or not. This may be
12120	// used to include empty fields in Patch requests.
12121	ForceSendFields []string `json:"-"`
12122
12123	// NullFields is a list of field names (e.g. "Enable") to include in API
12124	// requests with the JSON null value. By default, fields with empty
12125	// values are omitted from API requests. However, any field with an
12126	// empty value appearing in NullFields will be sent to the server as
12127	// null. It is an error if a field in this list has a non-empty value.
12128	// This may be used to include null fields in Patch requests.
12129	NullFields []string `json:"-"`
12130}
12131
12132func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
12133	type NoMethod HealthCheckLogConfig
12134	raw := NoMethod(*s)
12135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12136}
12137
12138// HealthCheckReference: A full or valid partial URL to a health check.
12139// For example, the following are valid URLs:
12140// -
12141// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
12142// - projects/project-id/global/httpHealthChecks/health-check
12143// - global/httpHealthChecks/health-check
12144type HealthCheckReference struct {
12145	HealthCheck string `json:"healthCheck,omitempty"`
12146
12147	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
12148	// unconditionally include in API requests. By default, fields with
12149	// empty values are omitted from API requests. However, any non-pointer,
12150	// non-interface field appearing in ForceSendFields will be sent to the
12151	// server regardless of whether the field is empty or not. This may be
12152	// used to include empty fields in Patch requests.
12153	ForceSendFields []string `json:"-"`
12154
12155	// NullFields is a list of field names (e.g. "HealthCheck") to include
12156	// in API requests with the JSON null value. By default, fields with
12157	// empty values are omitted from API requests. However, any field with
12158	// an empty value appearing in NullFields will be sent to the server as
12159	// null. It is an error if a field in this list has a non-empty value.
12160	// This may be used to include null fields in Patch requests.
12161	NullFields []string `json:"-"`
12162}
12163
12164func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
12165	type NoMethod HealthCheckReference
12166	raw := NoMethod(*s)
12167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12168}
12169
12170// HealthCheckService: A HealthCheckService defines a set of backends on
12171// which to perform periodic health checks and an endpoint to which to
12172// send notification of changes in the health status of the backends.
12173type HealthCheckService struct {
12174	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12175	// format.
12176	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12177
12178	// Description: An optional description of this resource. Provide this
12179	// property when you create the resource.
12180	Description string `json:"description,omitempty"`
12181
12182	// Fingerprint: Fingerprint of this resource. A hash of the contents
12183	// stored in this object. This field is used in optimistic locking. This
12184	// field will be ignored when inserting a HealthCheckService. An
12185	// up-to-date fingerprint must be provided in order to patch/update the
12186	// HealthCheckService; Otherwise, the request will fail with error 412
12187	// conditionNotMet. To see the latest fingerprint, make a get() request
12188	// to retrieve the HealthCheckService.
12189	Fingerprint string `json:"fingerprint,omitempty"`
12190
12191	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
12192	// least one HealthCheck, and not more than 10. HealthCheck resources
12193	// must have portSpecification=USE_SERVING_PORT. For regional
12194	// HealthCheckService, the HealthCheck must be regional and in the same
12195	// region. For global HealthCheckService, HealthCheck must be global.
12196	// Mix of regional and global HealthChecks is not supported. Multiple
12197	// regional HealthChecks must belong to the same region. Regional
12198	// HealthChecks</code? must belong to the same region as zones of NEGs.
12199	HealthChecks []string `json:"healthChecks,omitempty"`
12200
12201	// HealthStatusAggregationPolicy: Optional. Policy for how the results
12202	// from multiple health checks for the same endpoint are aggregated.
12203	// Defaults to NO_AGGREGATION if unspecified.
12204	// - NO_AGGREGATION. An EndpointHealth message is returned for each
12205	// backend in the health check service.
12206	// - AND. If any backend's health check reports UNHEALTHY, then
12207	// UNHEALTHY is the HealthState of the entire health check service. If
12208	// all backend's are healthy, the HealthState of the health check
12209	// service is HEALTHY. .
12210	//
12211	// Possible values:
12212	//   "AND"
12213	//   "NO_AGGREGATION"
12214	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
12215
12216	// HealthStatusAggregationStrategy: Policy for how the results from
12217	// multiple health checks for the same endpoint are aggregated.
12218	// - NO_AGGREGATION. An EndpointHealth message is returned for each
12219	// backend in the health check service.
12220	// - AND. If any backend's health check reports UNHEALTHY, then
12221	// UNHEALTHY is the HealthState of the entire health check service. If
12222	// all backend's are healthy, the HealthState of the health check
12223	// service is HEALTHY. .
12224	//
12225	// Possible values:
12226	//   "AND"
12227	//   "NO_AGGREGATION"
12228	HealthStatusAggregationStrategy string `json:"healthStatusAggregationStrategy,omitempty"`
12229
12230	// Id: [Output Only] The unique identifier for the resource. This
12231	// identifier is defined by the server.
12232	Id uint64 `json:"id,omitempty,string"`
12233
12234	// Kind: [Output only] Type of the resource. Always
12235	// compute#healthCheckServicefor health check services.
12236	Kind string `json:"kind,omitempty"`
12237
12238	// Name: Name of the resource. The name must be 1-63 characters long,
12239	// and comply with RFC1035. Specifically, the name must be 1-63
12240	// characters long and match the regular expression
12241	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
12242	// a lowercase letter, and all following characters must be a dash,
12243	// lowercase letter, or digit, except the last character, which cannot
12244	// be a dash.
12245	Name string `json:"name,omitempty"`
12246
12247	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
12248	// resources. Must not have more than 100. For regional
12249	// HealthCheckService, NEGs must be in zones in the region of the
12250	// HealthCheckService.
12251	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
12252
12253	// NotificationEndpoints: List of URLs to the NotificationEndpoint
12254	// resources. Must not have more than 10. A list of endpoints for
12255	// receiving notifications of change in health status. For regional
12256	// HealthCheckService, NotificationEndpoint must be regional and in the
12257	// same region. For global HealthCheckService, NotificationEndpoint must
12258	// be global.
12259	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
12260
12261	// Region: [Output Only] URL of the region where the health check
12262	// service resides. This field is not applicable to global health check
12263	// services. You must specify this field as part of the HTTP request
12264	// URL. It is not settable as a field in the request body.
12265	Region string `json:"region,omitempty"`
12266
12267	// SelfLink: [Output Only] Server-defined URL for the resource.
12268	SelfLink string `json:"selfLink,omitempty"`
12269
12270	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
12271	// resource.
12272	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
12273
12274	// ServerResponse contains the HTTP response code and headers from the
12275	// server.
12276	googleapi.ServerResponse `json:"-"`
12277
12278	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
12279	// to unconditionally include in API requests. By default, fields with
12280	// empty values are omitted from API requests. However, any non-pointer,
12281	// non-interface field appearing in ForceSendFields will be sent to the
12282	// server regardless of whether the field is empty or not. This may be
12283	// used to include empty fields in Patch requests.
12284	ForceSendFields []string `json:"-"`
12285
12286	// NullFields is a list of field names (e.g. "CreationTimestamp") to
12287	// include in API requests with the JSON null value. By default, fields
12288	// with empty values are omitted from API requests. However, any field
12289	// with an empty value appearing in NullFields will be sent to the
12290	// server as null. It is an error if a field in this list has a
12291	// non-empty value. This may be used to include null fields in Patch
12292	// requests.
12293	NullFields []string `json:"-"`
12294}
12295
12296func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
12297	type NoMethod HealthCheckService
12298	raw := NoMethod(*s)
12299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12300}
12301
12302// HealthCheckServiceReference: A full or valid partial URL to a health
12303// check service. For example, the following are valid URLs:
12304// -
12305// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
12306// -
12307// projects/project-id/regions/us-west1/healthCheckServices/health-check-
12308// service
12309// - regions/us-west1/healthCheckServices/health-check-service
12310type HealthCheckServiceReference struct {
12311	HealthCheckService string `json:"healthCheckService,omitempty"`
12312
12313	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
12314	// to unconditionally include in API requests. By default, fields with
12315	// empty values are omitted from API requests. However, any non-pointer,
12316	// non-interface field appearing in ForceSendFields will be sent to the
12317	// server regardless of whether the field is empty or not. This may be
12318	// used to include empty fields in Patch requests.
12319	ForceSendFields []string `json:"-"`
12320
12321	// NullFields is a list of field names (e.g. "HealthCheckService") to
12322	// include in API requests with the JSON null value. By default, fields
12323	// with empty values are omitted from API requests. However, any field
12324	// with an empty value appearing in NullFields will be sent to the
12325	// server as null. It is an error if a field in this list has a
12326	// non-empty value. This may be used to include null fields in Patch
12327	// requests.
12328	NullFields []string `json:"-"`
12329}
12330
12331func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
12332	type NoMethod HealthCheckServiceReference
12333	raw := NoMethod(*s)
12334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12335}
12336
12337type HealthCheckServicesList struct {
12338	// Id: [Output Only] Unique identifier for the resource; defined by the
12339	// server.
12340	Id string `json:"id,omitempty"`
12341
12342	// Items: A list of HealthCheckService resources.
12343	Items []*HealthCheckService `json:"items,omitempty"`
12344
12345	// Kind: [Output Only] Type of the resource. Always
12346	// compute#healthCheckServicesList for lists of HealthCheckServices.
12347	Kind string `json:"kind,omitempty"`
12348
12349	// NextPageToken: [Output Only] This token allows you to get the next
12350	// page of results for list requests. If the number of results is larger
12351	// than maxResults, use the nextPageToken as a value for the query
12352	// parameter pageToken in the next list request. Subsequent list
12353	// requests will have their own nextPageToken to continue paging through
12354	// the results.
12355	NextPageToken string `json:"nextPageToken,omitempty"`
12356
12357	// SelfLink: [Output Only] Server-defined URL for this resource.
12358	SelfLink string `json:"selfLink,omitempty"`
12359
12360	// Warning: [Output Only] Informational warning message.
12361	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
12362
12363	// ServerResponse contains the HTTP response code and headers from the
12364	// server.
12365	googleapi.ServerResponse `json:"-"`
12366
12367	// ForceSendFields is a list of field names (e.g. "Id") to
12368	// unconditionally include in API requests. By default, fields with
12369	// empty values are omitted from API requests. However, any non-pointer,
12370	// non-interface field appearing in ForceSendFields will be sent to the
12371	// server regardless of whether the field is empty or not. This may be
12372	// used to include empty fields in Patch requests.
12373	ForceSendFields []string `json:"-"`
12374
12375	// NullFields is a list of field names (e.g. "Id") to include in API
12376	// requests with the JSON null value. By default, fields with empty
12377	// values are omitted from API requests. However, any field with an
12378	// empty value appearing in NullFields will be sent to the server as
12379	// null. It is an error if a field in this list has a non-empty value.
12380	// This may be used to include null fields in Patch requests.
12381	NullFields []string `json:"-"`
12382}
12383
12384func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
12385	type NoMethod HealthCheckServicesList
12386	raw := NoMethod(*s)
12387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12388}
12389
12390// HealthCheckServicesListWarning: [Output Only] Informational warning
12391// message.
12392type HealthCheckServicesListWarning struct {
12393	// Code: [Output Only] A warning code, if applicable. For example,
12394	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12395	// the response.
12396	//
12397	// Possible values:
12398	//   "CLEANUP_FAILED"
12399	//   "DEPRECATED_RESOURCE_USED"
12400	//   "DEPRECATED_TYPE_USED"
12401	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12402	//   "EXPERIMENTAL_TYPE_USED"
12403	//   "EXTERNAL_API_WARNING"
12404	//   "FIELD_VALUE_OVERRIDEN"
12405	//   "INJECTED_KERNELS_DEPRECATED"
12406	//   "MISSING_TYPE_DEPENDENCY"
12407	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12408	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12409	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12410	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12411	//   "NEXT_HOP_NOT_RUNNING"
12412	//   "NOT_CRITICAL_ERROR"
12413	//   "NO_RESULTS_ON_PAGE"
12414	//   "PARTIAL_SUCCESS"
12415	//   "REQUIRED_TOS_AGREEMENT"
12416	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12417	//   "RESOURCE_NOT_DELETED"
12418	//   "SCHEMA_VALIDATION_IGNORED"
12419	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12420	//   "UNDECLARED_PROPERTIES"
12421	//   "UNREACHABLE"
12422	Code string `json:"code,omitempty"`
12423
12424	// Data: [Output Only] Metadata about this warning in key: value format.
12425	// For example:
12426	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12427	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
12428
12429	// Message: [Output Only] A human-readable description of the warning
12430	// code.
12431	Message string `json:"message,omitempty"`
12432
12433	// ForceSendFields is a list of field names (e.g. "Code") to
12434	// unconditionally include in API requests. By default, fields with
12435	// empty values are omitted from API requests. However, any non-pointer,
12436	// non-interface field appearing in ForceSendFields will be sent to the
12437	// server regardless of whether the field is empty or not. This may be
12438	// used to include empty fields in Patch requests.
12439	ForceSendFields []string `json:"-"`
12440
12441	// NullFields is a list of field names (e.g. "Code") to include in API
12442	// requests with the JSON null value. By default, fields with empty
12443	// values are omitted from API requests. However, any field with an
12444	// empty value appearing in NullFields will be sent to the server as
12445	// null. It is an error if a field in this list has a non-empty value.
12446	// This may be used to include null fields in Patch requests.
12447	NullFields []string `json:"-"`
12448}
12449
12450func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
12451	type NoMethod HealthCheckServicesListWarning
12452	raw := NoMethod(*s)
12453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12454}
12455
12456type HealthCheckServicesListWarningData struct {
12457	// Key: [Output Only] A key that provides more detail on the warning
12458	// being returned. For example, for warnings where there are no results
12459	// in a list request for a particular zone, this key might be scope and
12460	// the key value might be the zone name. Other examples might be a key
12461	// indicating a deprecated resource and a suggested replacement, or a
12462	// warning about invalid network settings (for example, if an instance
12463	// attempts to perform IP forwarding but is not enabled for IP
12464	// forwarding).
12465	Key string `json:"key,omitempty"`
12466
12467	// Value: [Output Only] A warning data value corresponding to the key.
12468	Value string `json:"value,omitempty"`
12469
12470	// ForceSendFields is a list of field names (e.g. "Key") to
12471	// unconditionally include in API requests. By default, fields with
12472	// empty values are omitted from API requests. However, any non-pointer,
12473	// non-interface field appearing in ForceSendFields will be sent to the
12474	// server regardless of whether the field is empty or not. This may be
12475	// used to include empty fields in Patch requests.
12476	ForceSendFields []string `json:"-"`
12477
12478	// NullFields is a list of field names (e.g. "Key") to include in API
12479	// requests with the JSON null value. By default, fields with empty
12480	// values are omitted from API requests. However, any field with an
12481	// empty value appearing in NullFields will be sent to the server as
12482	// null. It is an error if a field in this list has a non-empty value.
12483	// This may be used to include null fields in Patch requests.
12484	NullFields []string `json:"-"`
12485}
12486
12487func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
12488	type NoMethod HealthCheckServicesListWarningData
12489	raw := NoMethod(*s)
12490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12491}
12492
12493type HealthChecksAggregatedList struct {
12494	// Id: [Output Only] Unique identifier for the resource; defined by the
12495	// server.
12496	Id string `json:"id,omitempty"`
12497
12498	// Items: A list of HealthChecksScopedList resources.
12499	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
12500
12501	// Kind: Type of resource.
12502	Kind string `json:"kind,omitempty"`
12503
12504	// NextPageToken: [Output Only] This token allows you to get the next
12505	// page of results for list requests. If the number of results is larger
12506	// than maxResults, use the nextPageToken as a value for the query
12507	// parameter pageToken in the next list request. Subsequent list
12508	// requests will have their own nextPageToken to continue paging through
12509	// the results.
12510	NextPageToken string `json:"nextPageToken,omitempty"`
12511
12512	// SelfLink: [Output Only] Server-defined URL for this resource.
12513	SelfLink string `json:"selfLink,omitempty"`
12514
12515	// Unreachables: [Output Only] Unreachable resources.
12516	Unreachables []string `json:"unreachables,omitempty"`
12517
12518	// Warning: [Output Only] Informational warning message.
12519	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
12520
12521	// ServerResponse contains the HTTP response code and headers from the
12522	// server.
12523	googleapi.ServerResponse `json:"-"`
12524
12525	// ForceSendFields is a list of field names (e.g. "Id") to
12526	// unconditionally include in API requests. By default, fields with
12527	// empty values are omitted from API requests. However, any non-pointer,
12528	// non-interface field appearing in ForceSendFields will be sent to the
12529	// server regardless of whether the field is empty or not. This may be
12530	// used to include empty fields in Patch requests.
12531	ForceSendFields []string `json:"-"`
12532
12533	// NullFields is a list of field names (e.g. "Id") to include in API
12534	// requests with the JSON null value. By default, fields with empty
12535	// values are omitted from API requests. However, any field with an
12536	// empty value appearing in NullFields will be sent to the server as
12537	// null. It is an error if a field in this list has a non-empty value.
12538	// This may be used to include null fields in Patch requests.
12539	NullFields []string `json:"-"`
12540}
12541
12542func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
12543	type NoMethod HealthChecksAggregatedList
12544	raw := NoMethod(*s)
12545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12546}
12547
12548// HealthChecksAggregatedListWarning: [Output Only] Informational
12549// warning message.
12550type HealthChecksAggregatedListWarning struct {
12551	// Code: [Output Only] A warning code, if applicable. For example,
12552	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12553	// the response.
12554	//
12555	// Possible values:
12556	//   "CLEANUP_FAILED"
12557	//   "DEPRECATED_RESOURCE_USED"
12558	//   "DEPRECATED_TYPE_USED"
12559	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12560	//   "EXPERIMENTAL_TYPE_USED"
12561	//   "EXTERNAL_API_WARNING"
12562	//   "FIELD_VALUE_OVERRIDEN"
12563	//   "INJECTED_KERNELS_DEPRECATED"
12564	//   "MISSING_TYPE_DEPENDENCY"
12565	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12566	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12567	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12568	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12569	//   "NEXT_HOP_NOT_RUNNING"
12570	//   "NOT_CRITICAL_ERROR"
12571	//   "NO_RESULTS_ON_PAGE"
12572	//   "PARTIAL_SUCCESS"
12573	//   "REQUIRED_TOS_AGREEMENT"
12574	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12575	//   "RESOURCE_NOT_DELETED"
12576	//   "SCHEMA_VALIDATION_IGNORED"
12577	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12578	//   "UNDECLARED_PROPERTIES"
12579	//   "UNREACHABLE"
12580	Code string `json:"code,omitempty"`
12581
12582	// Data: [Output Only] Metadata about this warning in key: value format.
12583	// For example:
12584	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12585	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
12586
12587	// Message: [Output Only] A human-readable description of the warning
12588	// code.
12589	Message string `json:"message,omitempty"`
12590
12591	// ForceSendFields is a list of field names (e.g. "Code") to
12592	// unconditionally include in API requests. By default, fields with
12593	// empty values are omitted from API requests. However, any non-pointer,
12594	// non-interface field appearing in ForceSendFields will be sent to the
12595	// server regardless of whether the field is empty or not. This may be
12596	// used to include empty fields in Patch requests.
12597	ForceSendFields []string `json:"-"`
12598
12599	// NullFields is a list of field names (e.g. "Code") to include in API
12600	// requests with the JSON null value. By default, fields with empty
12601	// values are omitted from API requests. However, any field with an
12602	// empty value appearing in NullFields will be sent to the server as
12603	// null. It is an error if a field in this list has a non-empty value.
12604	// This may be used to include null fields in Patch requests.
12605	NullFields []string `json:"-"`
12606}
12607
12608func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
12609	type NoMethod HealthChecksAggregatedListWarning
12610	raw := NoMethod(*s)
12611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12612}
12613
12614type HealthChecksAggregatedListWarningData struct {
12615	// Key: [Output Only] A key that provides more detail on the warning
12616	// being returned. For example, for warnings where there are no results
12617	// in a list request for a particular zone, this key might be scope and
12618	// the key value might be the zone name. Other examples might be a key
12619	// indicating a deprecated resource and a suggested replacement, or a
12620	// warning about invalid network settings (for example, if an instance
12621	// attempts to perform IP forwarding but is not enabled for IP
12622	// forwarding).
12623	Key string `json:"key,omitempty"`
12624
12625	// Value: [Output Only] A warning data value corresponding to the key.
12626	Value string `json:"value,omitempty"`
12627
12628	// ForceSendFields is a list of field names (e.g. "Key") to
12629	// unconditionally include in API requests. By default, fields with
12630	// empty values are omitted from API requests. However, any non-pointer,
12631	// non-interface field appearing in ForceSendFields will be sent to the
12632	// server regardless of whether the field is empty or not. This may be
12633	// used to include empty fields in Patch requests.
12634	ForceSendFields []string `json:"-"`
12635
12636	// NullFields is a list of field names (e.g. "Key") to include in API
12637	// requests with the JSON null value. By default, fields with empty
12638	// values are omitted from API requests. However, any field with an
12639	// empty value appearing in NullFields will be sent to the server as
12640	// null. It is an error if a field in this list has a non-empty value.
12641	// This may be used to include null fields in Patch requests.
12642	NullFields []string `json:"-"`
12643}
12644
12645func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
12646	type NoMethod HealthChecksAggregatedListWarningData
12647	raw := NoMethod(*s)
12648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12649}
12650
12651type HealthChecksScopedList struct {
12652	// HealthChecks: A list of HealthChecks contained in this scope.
12653	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
12654
12655	// Warning: Informational warning which replaces the list of backend
12656	// services when the list is empty.
12657	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
12658
12659	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
12660	// unconditionally include in API requests. By default, fields with
12661	// empty values are omitted from API requests. However, any non-pointer,
12662	// non-interface field appearing in ForceSendFields will be sent to the
12663	// server regardless of whether the field is empty or not. This may be
12664	// used to include empty fields in Patch requests.
12665	ForceSendFields []string `json:"-"`
12666
12667	// NullFields is a list of field names (e.g. "HealthChecks") to include
12668	// in API requests with the JSON null value. By default, fields with
12669	// empty values are omitted from API requests. However, any field with
12670	// an empty value appearing in NullFields will be sent to the server as
12671	// null. It is an error if a field in this list has a non-empty value.
12672	// This may be used to include null fields in Patch requests.
12673	NullFields []string `json:"-"`
12674}
12675
12676func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
12677	type NoMethod HealthChecksScopedList
12678	raw := NoMethod(*s)
12679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12680}
12681
12682// HealthChecksScopedListWarning: Informational warning which replaces
12683// the list of backend services when the list is empty.
12684type HealthChecksScopedListWarning struct {
12685	// Code: [Output Only] A warning code, if applicable. For example,
12686	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12687	// the response.
12688	//
12689	// Possible values:
12690	//   "CLEANUP_FAILED"
12691	//   "DEPRECATED_RESOURCE_USED"
12692	//   "DEPRECATED_TYPE_USED"
12693	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12694	//   "EXPERIMENTAL_TYPE_USED"
12695	//   "EXTERNAL_API_WARNING"
12696	//   "FIELD_VALUE_OVERRIDEN"
12697	//   "INJECTED_KERNELS_DEPRECATED"
12698	//   "MISSING_TYPE_DEPENDENCY"
12699	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12700	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12701	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12702	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12703	//   "NEXT_HOP_NOT_RUNNING"
12704	//   "NOT_CRITICAL_ERROR"
12705	//   "NO_RESULTS_ON_PAGE"
12706	//   "PARTIAL_SUCCESS"
12707	//   "REQUIRED_TOS_AGREEMENT"
12708	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12709	//   "RESOURCE_NOT_DELETED"
12710	//   "SCHEMA_VALIDATION_IGNORED"
12711	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12712	//   "UNDECLARED_PROPERTIES"
12713	//   "UNREACHABLE"
12714	Code string `json:"code,omitempty"`
12715
12716	// Data: [Output Only] Metadata about this warning in key: value format.
12717	// For example:
12718	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12719	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
12720
12721	// Message: [Output Only] A human-readable description of the warning
12722	// code.
12723	Message string `json:"message,omitempty"`
12724
12725	// ForceSendFields is a list of field names (e.g. "Code") to
12726	// unconditionally include in API requests. By default, fields with
12727	// empty values are omitted from API requests. However, any non-pointer,
12728	// non-interface field appearing in ForceSendFields will be sent to the
12729	// server regardless of whether the field is empty or not. This may be
12730	// used to include empty fields in Patch requests.
12731	ForceSendFields []string `json:"-"`
12732
12733	// NullFields is a list of field names (e.g. "Code") to include in API
12734	// requests with the JSON null value. By default, fields with empty
12735	// values are omitted from API requests. However, any field with an
12736	// empty value appearing in NullFields will be sent to the server as
12737	// null. It is an error if a field in this list has a non-empty value.
12738	// This may be used to include null fields in Patch requests.
12739	NullFields []string `json:"-"`
12740}
12741
12742func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
12743	type NoMethod HealthChecksScopedListWarning
12744	raw := NoMethod(*s)
12745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12746}
12747
12748type HealthChecksScopedListWarningData struct {
12749	// Key: [Output Only] A key that provides more detail on the warning
12750	// being returned. For example, for warnings where there are no results
12751	// in a list request for a particular zone, this key might be scope and
12752	// the key value might be the zone name. Other examples might be a key
12753	// indicating a deprecated resource and a suggested replacement, or a
12754	// warning about invalid network settings (for example, if an instance
12755	// attempts to perform IP forwarding but is not enabled for IP
12756	// forwarding).
12757	Key string `json:"key,omitempty"`
12758
12759	// Value: [Output Only] A warning data value corresponding to the key.
12760	Value string `json:"value,omitempty"`
12761
12762	// ForceSendFields is a list of field names (e.g. "Key") to
12763	// unconditionally include in API requests. By default, fields with
12764	// empty values are omitted from API requests. However, any non-pointer,
12765	// non-interface field appearing in ForceSendFields will be sent to the
12766	// server regardless of whether the field is empty or not. This may be
12767	// used to include empty fields in Patch requests.
12768	ForceSendFields []string `json:"-"`
12769
12770	// NullFields is a list of field names (e.g. "Key") to include in API
12771	// requests with the JSON null value. By default, fields with empty
12772	// values are omitted from API requests. However, any field with an
12773	// empty value appearing in NullFields will be sent to the server as
12774	// null. It is an error if a field in this list has a non-empty value.
12775	// This may be used to include null fields in Patch requests.
12776	NullFields []string `json:"-"`
12777}
12778
12779func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
12780	type NoMethod HealthChecksScopedListWarningData
12781	raw := NoMethod(*s)
12782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12783}
12784
12785type HealthStatus struct {
12786	// Annotations: Metadata defined as annotations for network endpoint.
12787	Annotations map[string]string `json:"annotations,omitempty"`
12788
12789	// HealthState: Health state of the instance.
12790	//
12791	// Possible values:
12792	//   "HEALTHY"
12793	//   "UNHEALTHY"
12794	HealthState string `json:"healthState,omitempty"`
12795
12796	// Instance: URL of the instance resource.
12797	Instance string `json:"instance,omitempty"`
12798
12799	// IpAddress: A forwarding rule IP address assigned to this instance.
12800	IpAddress string `json:"ipAddress,omitempty"`
12801
12802	// Port: The named port of the instance group, not necessarily the port
12803	// that is health-checked.
12804	Port int64 `json:"port,omitempty"`
12805
12806	// ForceSendFields is a list of field names (e.g. "Annotations") to
12807	// unconditionally include in API requests. By default, fields with
12808	// empty values are omitted from API requests. However, any non-pointer,
12809	// non-interface field appearing in ForceSendFields will be sent to the
12810	// server regardless of whether the field is empty or not. This may be
12811	// used to include empty fields in Patch requests.
12812	ForceSendFields []string `json:"-"`
12813
12814	// NullFields is a list of field names (e.g. "Annotations") to include
12815	// in API requests with the JSON null value. By default, fields with
12816	// empty values are omitted from API requests. However, any field with
12817	// an empty value appearing in NullFields will be sent to the server as
12818	// null. It is an error if a field in this list has a non-empty value.
12819	// This may be used to include null fields in Patch requests.
12820	NullFields []string `json:"-"`
12821}
12822
12823func (s *HealthStatus) MarshalJSON() ([]byte, error) {
12824	type NoMethod HealthStatus
12825	raw := NoMethod(*s)
12826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12827}
12828
12829type HealthStatusForNetworkEndpoint struct {
12830	// BackendService: URL of the backend service associated with the health
12831	// state of the network endpoint.
12832	BackendService *BackendServiceReference `json:"backendService,omitempty"`
12833
12834	// ForwardingRule: URL of the forwarding rule associated with the health
12835	// state of the network endpoint.
12836	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
12837
12838	// HealthCheck: URL of the health check associated with the health state
12839	// of the network endpoint.
12840	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
12841
12842	// HealthCheckService: URL of the health check service associated with
12843	// the health state of the network endpoint.
12844	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
12845
12846	// HealthState: Health state of the network endpoint determined based on
12847	// the health checks configured.
12848	//
12849	// Possible values:
12850	//   "DRAINING"
12851	//   "HEALTHY"
12852	//   "UNHEALTHY"
12853	//   "UNKNOWN"
12854	HealthState string `json:"healthState,omitempty"`
12855
12856	// ForceSendFields is a list of field names (e.g. "BackendService") to
12857	// unconditionally include in API requests. By default, fields with
12858	// empty values are omitted from API requests. However, any non-pointer,
12859	// non-interface field appearing in ForceSendFields will be sent to the
12860	// server regardless of whether the field is empty or not. This may be
12861	// used to include empty fields in Patch requests.
12862	ForceSendFields []string `json:"-"`
12863
12864	// NullFields is a list of field names (e.g. "BackendService") to
12865	// include in API requests with the JSON null value. By default, fields
12866	// with empty values are omitted from API requests. However, any field
12867	// with an empty value appearing in NullFields will be sent to the
12868	// server as null. It is an error if a field in this list has a
12869	// non-empty value. This may be used to include null fields in Patch
12870	// requests.
12871	NullFields []string `json:"-"`
12872}
12873
12874func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
12875	type NoMethod HealthStatusForNetworkEndpoint
12876	raw := NoMethod(*s)
12877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12878}
12879
12880// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
12881// use the named PathMatcher to select the BackendService.
12882type HostRule struct {
12883	// Description: An optional description of this resource. Provide this
12884	// property when you create the resource.
12885	Description string `json:"description,omitempty"`
12886
12887	// Hosts: The list of host patterns to match. They must be valid
12888	// hostnames with optional port numbers in the format host:port. *
12889	// matches any string of ([a-z0-9-.]*). In that case, * must be the
12890	// first character and must be followed in the pattern by either - or ..
12891	Hosts []string `json:"hosts,omitempty"`
12892
12893	// PathMatcher: The name of the PathMatcher to use to match the path
12894	// portion of the URL if the hostRule matches the URL's host portion.
12895	PathMatcher string `json:"pathMatcher,omitempty"`
12896
12897	// ForceSendFields is a list of field names (e.g. "Description") to
12898	// unconditionally include in API requests. By default, fields with
12899	// empty values are omitted from API requests. However, any non-pointer,
12900	// non-interface field appearing in ForceSendFields will be sent to the
12901	// server regardless of whether the field is empty or not. This may be
12902	// used to include empty fields in Patch requests.
12903	ForceSendFields []string `json:"-"`
12904
12905	// NullFields is a list of field names (e.g. "Description") to include
12906	// in API requests with the JSON null value. By default, fields with
12907	// empty values are omitted from API requests. However, any field with
12908	// an empty value appearing in NullFields will be sent to the server as
12909	// null. It is an error if a field in this list has a non-empty value.
12910	// This may be used to include null fields in Patch requests.
12911	NullFields []string `json:"-"`
12912}
12913
12914func (s *HostRule) MarshalJSON() ([]byte, error) {
12915	type NoMethod HostRule
12916	raw := NoMethod(*s)
12917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12918}
12919
12920// HttpFaultAbort: Specification for how requests are aborted as part of
12921// fault injection.
12922type HttpFaultAbort struct {
12923	// HttpStatus: The HTTP status code used to abort the request.
12924	// The value must be between 200 and 599 inclusive.
12925	HttpStatus int64 `json:"httpStatus,omitempty"`
12926
12927	// Percentage: The percentage of traffic
12928	// (connections/operations/requests) which will be aborted as part of
12929	// fault injection.
12930	// The value must be between 0.0 and 100.0 inclusive.
12931	Percentage float64 `json:"percentage,omitempty"`
12932
12933	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
12934	// unconditionally include in API requests. By default, fields with
12935	// empty values are omitted from API requests. However, any non-pointer,
12936	// non-interface field appearing in ForceSendFields will be sent to the
12937	// server regardless of whether the field is empty or not. This may be
12938	// used to include empty fields in Patch requests.
12939	ForceSendFields []string `json:"-"`
12940
12941	// NullFields is a list of field names (e.g. "HttpStatus") to include in
12942	// API requests with the JSON null value. By default, fields with empty
12943	// values are omitted from API requests. However, any field with an
12944	// empty value appearing in NullFields will be sent to the server as
12945	// null. It is an error if a field in this list has a non-empty value.
12946	// This may be used to include null fields in Patch requests.
12947	NullFields []string `json:"-"`
12948}
12949
12950func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
12951	type NoMethod HttpFaultAbort
12952	raw := NoMethod(*s)
12953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12954}
12955
12956func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
12957	type NoMethod HttpFaultAbort
12958	var s1 struct {
12959		Percentage gensupport.JSONFloat64 `json:"percentage"`
12960		*NoMethod
12961	}
12962	s1.NoMethod = (*NoMethod)(s)
12963	if err := json.Unmarshal(data, &s1); err != nil {
12964		return err
12965	}
12966	s.Percentage = float64(s1.Percentage)
12967	return nil
12968}
12969
12970// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
12971// forwarding the request to the backend service as part of fault
12972// injection.
12973type HttpFaultDelay struct {
12974	// FixedDelay: Specifies the value of the fixed delay interval.
12975	FixedDelay *Duration `json:"fixedDelay,omitempty"`
12976
12977	// Percentage: The percentage of traffic
12978	// (connections/operations/requests) on which delay will be introduced
12979	// as part of fault injection.
12980	// The value must be between 0.0 and 100.0 inclusive.
12981	Percentage float64 `json:"percentage,omitempty"`
12982
12983	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
12984	// unconditionally include in API requests. By default, fields with
12985	// empty values are omitted from API requests. However, any non-pointer,
12986	// non-interface field appearing in ForceSendFields will be sent to the
12987	// server regardless of whether the field is empty or not. This may be
12988	// used to include empty fields in Patch requests.
12989	ForceSendFields []string `json:"-"`
12990
12991	// NullFields is a list of field names (e.g. "FixedDelay") to include in
12992	// API requests with the JSON null value. By default, fields with empty
12993	// values are omitted from API requests. However, any field with an
12994	// empty value appearing in NullFields will be sent to the server as
12995	// null. It is an error if a field in this list has a non-empty value.
12996	// This may be used to include null fields in Patch requests.
12997	NullFields []string `json:"-"`
12998}
12999
13000func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
13001	type NoMethod HttpFaultDelay
13002	raw := NoMethod(*s)
13003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13004}
13005
13006func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
13007	type NoMethod HttpFaultDelay
13008	var s1 struct {
13009		Percentage gensupport.JSONFloat64 `json:"percentage"`
13010		*NoMethod
13011	}
13012	s1.NoMethod = (*NoMethod)(s)
13013	if err := json.Unmarshal(data, &s1); err != nil {
13014		return err
13015	}
13016	s.Percentage = float64(s1.Percentage)
13017	return nil
13018}
13019
13020// HttpFaultInjection: The specification for fault injection introduced
13021// into traffic to test the resiliency of clients to backend service
13022// failure. As part of fault injection, when clients send requests to a
13023// backend service, delays can be introduced by Loadbalancer on a
13024// percentage of requests before sending those request to the backend
13025// service. Similarly requests from clients can be aborted by the
13026// Loadbalancer for a percentage of requests.
13027type HttpFaultInjection struct {
13028	// Abort: The specification for how client requests are aborted as part
13029	// of fault injection.
13030	Abort *HttpFaultAbort `json:"abort,omitempty"`
13031
13032	// Delay: The specification for how client requests are delayed as part
13033	// of fault injection, before being sent to a backend service.
13034	Delay *HttpFaultDelay `json:"delay,omitempty"`
13035
13036	// ForceSendFields is a list of field names (e.g. "Abort") to
13037	// unconditionally include in API requests. By default, fields with
13038	// empty values are omitted from API requests. However, any non-pointer,
13039	// non-interface field appearing in ForceSendFields will be sent to the
13040	// server regardless of whether the field is empty or not. This may be
13041	// used to include empty fields in Patch requests.
13042	ForceSendFields []string `json:"-"`
13043
13044	// NullFields is a list of field names (e.g. "Abort") to include in API
13045	// requests with the JSON null value. By default, fields with empty
13046	// values are omitted from API requests. However, any field with an
13047	// empty value appearing in NullFields will be sent to the server as
13048	// null. It is an error if a field in this list has a non-empty value.
13049	// This may be used to include null fields in Patch requests.
13050	NullFields []string `json:"-"`
13051}
13052
13053func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
13054	type NoMethod HttpFaultInjection
13055	raw := NoMethod(*s)
13056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13057}
13058
13059// HttpFilterConfig: HttpFilterConfiguration supplies additional
13060// contextual settings for networkservices.HttpFilter resources enabled
13061// by Traffic Director.
13062type HttpFilterConfig struct {
13063	// Config: The configuration needed to enable the
13064	// networkservices.HttpFilter resource. The configuration must be YAML
13065	// formatted and only contain fields defined in the protobuf identified
13066	// in configTypeUrl
13067	Config string `json:"config,omitempty"`
13068
13069	// ConfigTypeUrl: The fully qualified versioned proto3 type url of the
13070	// protobuf that the filter expects for its contextual settings, for
13071	// example: type.googleapis.com/google.protobuf.Struct
13072	ConfigTypeUrl string `json:"configTypeUrl,omitempty"`
13073
13074	// FilterName: Name of the networkservices.HttpFilter resource this
13075	// configuration belongs to. This name must be known to the xDS client.
13076	// Example: envoy.wasm
13077	FilterName string `json:"filterName,omitempty"`
13078
13079	// ForceSendFields is a list of field names (e.g. "Config") to
13080	// unconditionally include in API requests. By default, fields with
13081	// empty values are omitted from API requests. However, any non-pointer,
13082	// non-interface field appearing in ForceSendFields will be sent to the
13083	// server regardless of whether the field is empty or not. This may be
13084	// used to include empty fields in Patch requests.
13085	ForceSendFields []string `json:"-"`
13086
13087	// NullFields is a list of field names (e.g. "Config") to include in API
13088	// requests with the JSON null value. By default, fields with empty
13089	// values are omitted from API requests. However, any field with an
13090	// empty value appearing in NullFields will be sent to the server as
13091	// null. It is an error if a field in this list has a non-empty value.
13092	// This may be used to include null fields in Patch requests.
13093	NullFields []string `json:"-"`
13094}
13095
13096func (s *HttpFilterConfig) MarshalJSON() ([]byte, error) {
13097	type NoMethod HttpFilterConfig
13098	raw := NoMethod(*s)
13099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13100}
13101
13102// HttpHeaderAction: The request and response header transformations
13103// that take effect before the request is passed along to the selected
13104// backendService.
13105type HttpHeaderAction struct {
13106	// RequestHeadersToAdd: Headers to add to a matching request prior to
13107	// forwarding the request to the backendService.
13108	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
13109
13110	// RequestHeadersToRemove: A list of header names for headers that need
13111	// to be removed from the request prior to forwarding the request to the
13112	// backendService.
13113	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
13114
13115	// ResponseHeadersToAdd: Headers to add the response prior to sending
13116	// the response back to the client.
13117	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
13118
13119	// ResponseHeadersToRemove: A list of header names for headers that need
13120	// to be removed from the response prior to sending the response back to
13121	// the client.
13122	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
13123
13124	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
13125	// to unconditionally include in API requests. By default, fields with
13126	// empty values are omitted from API requests. However, any non-pointer,
13127	// non-interface field appearing in ForceSendFields will be sent to the
13128	// server regardless of whether the field is empty or not. This may be
13129	// used to include empty fields in Patch requests.
13130	ForceSendFields []string `json:"-"`
13131
13132	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
13133	// include in API requests with the JSON null value. By default, fields
13134	// with empty values are omitted from API requests. However, any field
13135	// with an empty value appearing in NullFields will be sent to the
13136	// server as null. It is an error if a field in this list has a
13137	// non-empty value. This may be used to include null fields in Patch
13138	// requests.
13139	NullFields []string `json:"-"`
13140}
13141
13142func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
13143	type NoMethod HttpHeaderAction
13144	raw := NoMethod(*s)
13145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13146}
13147
13148// HttpHeaderMatch: matchRule criteria for request header matches.
13149type HttpHeaderMatch struct {
13150	// ExactMatch: The value should exactly match contents of
13151	// exactMatch.
13152	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13153	// presentMatch or rangeMatch must be set.
13154	ExactMatch string `json:"exactMatch,omitempty"`
13155
13156	// HeaderName: The name of the HTTP header to match.
13157	// For matching against the HTTP request's authority, use a headerMatch
13158	// with the header name ":authority".
13159	// For matching a request's method, use the headerName ":method".
13160	HeaderName string `json:"headerName,omitempty"`
13161
13162	// InvertMatch: If set to false, the headerMatch is considered a match
13163	// if the match criteria above are met. If set to true, the headerMatch
13164	// is considered a match if the match criteria above are NOT met.
13165	// The default setting is false.
13166	InvertMatch bool `json:"invertMatch,omitempty"`
13167
13168	// PrefixMatch: The value of the header must start with the contents of
13169	// prefixMatch.
13170	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13171	// presentMatch or rangeMatch must be set.
13172	PrefixMatch string `json:"prefixMatch,omitempty"`
13173
13174	// PresentMatch: A header with the contents of headerName must exist.
13175	// The match takes place whether or not the request's header has a
13176	// value.
13177	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13178	// presentMatch or rangeMatch must be set.
13179	PresentMatch bool `json:"presentMatch,omitempty"`
13180
13181	// RangeMatch: The header value must be an integer and its value must be
13182	// in the range specified in rangeMatch. If the header does not contain
13183	// an integer, number or is empty, the match fails.
13184	// For example for a range [-5, 0]
13185	// - -3 will match.
13186	// - 0 will not match.
13187	// - 0.25 will not match.
13188	// - -3someString will not match.
13189	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13190	// presentMatch or rangeMatch must be set.
13191	// Note that rangeMatch is not supported for Loadbalancers that have
13192	// their loadBalancingScheme set to EXTERNAL.
13193	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
13194
13195	// RegexMatch: The value of the header must match the regular expression
13196	// specified in regexMatch. For regular expression grammar, please see:
13197	// en.cppreference.com/w/cpp/regex/ecmascript
13198	// For matching against a port specified in the HTTP request, use a
13199	// headerMatch with headerName set to PORT and a regular expression that
13200	// satisfies the RFC2616 Host header's port specifier.
13201	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13202	// presentMatch or rangeMatch must be set.
13203	// Note that regexMatch only applies to Loadbalancers that have their
13204	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13205	RegexMatch string `json:"regexMatch,omitempty"`
13206
13207	// SuffixMatch: The value of the header must end with the contents of
13208	// suffixMatch.
13209	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13210	// presentMatch or rangeMatch must be set.
13211	SuffixMatch string `json:"suffixMatch,omitempty"`
13212
13213	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
13214	// unconditionally include in API requests. By default, fields with
13215	// empty values are omitted from API requests. However, any non-pointer,
13216	// non-interface field appearing in ForceSendFields will be sent to the
13217	// server regardless of whether the field is empty or not. This may be
13218	// used to include empty fields in Patch requests.
13219	ForceSendFields []string `json:"-"`
13220
13221	// NullFields is a list of field names (e.g. "ExactMatch") to include in
13222	// API requests with the JSON null value. By default, fields with empty
13223	// values are omitted from API requests. However, any field with an
13224	// empty value appearing in NullFields will be sent to the server as
13225	// null. It is an error if a field in this list has a non-empty value.
13226	// This may be used to include null fields in Patch requests.
13227	NullFields []string `json:"-"`
13228}
13229
13230func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
13231	type NoMethod HttpHeaderMatch
13232	raw := NoMethod(*s)
13233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13234}
13235
13236// HttpHeaderOption: Specification determining how headers are added to
13237// requests or responses.
13238type HttpHeaderOption struct {
13239	// HeaderName: The name of the header.
13240	HeaderName string `json:"headerName,omitempty"`
13241
13242	// HeaderValue: The value of the header to add.
13243	HeaderValue string `json:"headerValue,omitempty"`
13244
13245	// Replace: If false, headerValue is appended to any values that already
13246	// exist for the header. If true, headerValue is set for the header,
13247	// discarding any values that were set for that header.
13248	// The default value is false.
13249	Replace bool `json:"replace,omitempty"`
13250
13251	// ForceSendFields is a list of field names (e.g. "HeaderName") to
13252	// unconditionally include in API requests. By default, fields with
13253	// empty values are omitted from API requests. However, any non-pointer,
13254	// non-interface field appearing in ForceSendFields will be sent to the
13255	// server regardless of whether the field is empty or not. This may be
13256	// used to include empty fields in Patch requests.
13257	ForceSendFields []string `json:"-"`
13258
13259	// NullFields is a list of field names (e.g. "HeaderName") to include in
13260	// API requests with the JSON null value. By default, fields with empty
13261	// values are omitted from API requests. However, any field with an
13262	// empty value appearing in NullFields will be sent to the server as
13263	// null. It is an error if a field in this list has a non-empty value.
13264	// This may be used to include null fields in Patch requests.
13265	NullFields []string `json:"-"`
13266}
13267
13268func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
13269	type NoMethod HttpHeaderOption
13270	raw := NoMethod(*s)
13271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13272}
13273
13274// HttpHealthCheck: Represents a legacy HTTP Health Check
13275// resource.
13276//
13277// Legacy health checks are required by network load balancers. For more
13278// information, read Health Check Concepts.
13279type HttpHealthCheck struct {
13280	// CheckIntervalSec: How often (in seconds) to send a health check. The
13281	// default value is 5 seconds.
13282	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
13283
13284	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13285	// format.
13286	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13287
13288	// Description: An optional description of this resource. Provide this
13289	// property when you create the resource.
13290	Description string `json:"description,omitempty"`
13291
13292	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
13293	// after this many consecutive successes. The default value is 2.
13294	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
13295
13296	// Host: The value of the host header in the HTTP health check request.
13297	// If left empty (default value), the public IP on behalf of which this
13298	// health check is performed will be used.
13299	Host string `json:"host,omitempty"`
13300
13301	// Id: [Output Only] The unique identifier for the resource. This
13302	// identifier is defined by the server.
13303	Id uint64 `json:"id,omitempty,string"`
13304
13305	// Kind: [Output Only] Type of the resource. Always
13306	// compute#httpHealthCheck for HTTP health checks.
13307	Kind string `json:"kind,omitempty"`
13308
13309	// Name: Name of the resource. Provided by the client when the resource
13310	// is created. The name must be 1-63 characters long, and comply with
13311	// RFC1035. Specifically, the name must be 1-63 characters long and
13312	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13313	// the first character must be a lowercase letter, and all following
13314	// characters must be a dash, lowercase letter, or digit, except the
13315	// last character, which cannot be a dash.
13316	Name string `json:"name,omitempty"`
13317
13318	// Port: The TCP port number for the HTTP health check request. The
13319	// default value is 80.
13320	Port int64 `json:"port,omitempty"`
13321
13322	// RequestPath: The request path of the HTTP health check request. The
13323	// default value is /. This field does not support query parameters.
13324	RequestPath string `json:"requestPath,omitempty"`
13325
13326	// SelfLink: [Output Only] Server-defined URL for the resource.
13327	SelfLink string `json:"selfLink,omitempty"`
13328
13329	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
13330	// with the resource id.
13331	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
13332
13333	// TimeoutSec: How long (in seconds) to wait before claiming failure.
13334	// The default value is 5 seconds. It is invalid for timeoutSec to have
13335	// greater value than checkIntervalSec.
13336	TimeoutSec int64 `json:"timeoutSec,omitempty"`
13337
13338	// UnhealthyThreshold: A so-far healthy instance will be marked
13339	// unhealthy after this many consecutive failures. The default value is
13340	// 2.
13341	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
13342
13343	// ServerResponse contains the HTTP response code and headers from the
13344	// server.
13345	googleapi.ServerResponse `json:"-"`
13346
13347	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
13348	// unconditionally include in API requests. By default, fields with
13349	// empty values are omitted from API requests. However, any non-pointer,
13350	// non-interface field appearing in ForceSendFields will be sent to the
13351	// server regardless of whether the field is empty or not. This may be
13352	// used to include empty fields in Patch requests.
13353	ForceSendFields []string `json:"-"`
13354
13355	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
13356	// include in API requests with the JSON null value. By default, fields
13357	// with empty values are omitted from API requests. However, any field
13358	// with an empty value appearing in NullFields will be sent to the
13359	// server as null. It is an error if a field in this list has a
13360	// non-empty value. This may be used to include null fields in Patch
13361	// requests.
13362	NullFields []string `json:"-"`
13363}
13364
13365func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
13366	type NoMethod HttpHealthCheck
13367	raw := NoMethod(*s)
13368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13369}
13370
13371// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
13372type HttpHealthCheckList struct {
13373	// Id: [Output Only] Unique identifier for the resource; defined by the
13374	// server.
13375	Id string `json:"id,omitempty"`
13376
13377	// Items: A list of HttpHealthCheck resources.
13378	Items []*HttpHealthCheck `json:"items,omitempty"`
13379
13380	// Kind: Type of resource.
13381	Kind string `json:"kind,omitempty"`
13382
13383	// NextPageToken: [Output Only] This token allows you to get the next
13384	// page of results for list requests. If the number of results is larger
13385	// than maxResults, use the nextPageToken as a value for the query
13386	// parameter pageToken in the next list request. Subsequent list
13387	// requests will have their own nextPageToken to continue paging through
13388	// the results.
13389	NextPageToken string `json:"nextPageToken,omitempty"`
13390
13391	// SelfLink: [Output Only] Server-defined URL for this resource.
13392	SelfLink string `json:"selfLink,omitempty"`
13393
13394	// Warning: [Output Only] Informational warning message.
13395	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
13396
13397	// ServerResponse contains the HTTP response code and headers from the
13398	// server.
13399	googleapi.ServerResponse `json:"-"`
13400
13401	// ForceSendFields is a list of field names (e.g. "Id") to
13402	// unconditionally include in API requests. By default, fields with
13403	// empty values are omitted from API requests. However, any non-pointer,
13404	// non-interface field appearing in ForceSendFields will be sent to the
13405	// server regardless of whether the field is empty or not. This may be
13406	// used to include empty fields in Patch requests.
13407	ForceSendFields []string `json:"-"`
13408
13409	// NullFields is a list of field names (e.g. "Id") to include in API
13410	// requests with the JSON null value. By default, fields with empty
13411	// values are omitted from API requests. However, any field with an
13412	// empty value appearing in NullFields will be sent to the server as
13413	// null. It is an error if a field in this list has a non-empty value.
13414	// This may be used to include null fields in Patch requests.
13415	NullFields []string `json:"-"`
13416}
13417
13418func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
13419	type NoMethod HttpHealthCheckList
13420	raw := NoMethod(*s)
13421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13422}
13423
13424// HttpHealthCheckListWarning: [Output Only] Informational warning
13425// message.
13426type HttpHealthCheckListWarning struct {
13427	// Code: [Output Only] A warning code, if applicable. For example,
13428	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13429	// the response.
13430	//
13431	// Possible values:
13432	//   "CLEANUP_FAILED"
13433	//   "DEPRECATED_RESOURCE_USED"
13434	//   "DEPRECATED_TYPE_USED"
13435	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13436	//   "EXPERIMENTAL_TYPE_USED"
13437	//   "EXTERNAL_API_WARNING"
13438	//   "FIELD_VALUE_OVERRIDEN"
13439	//   "INJECTED_KERNELS_DEPRECATED"
13440	//   "MISSING_TYPE_DEPENDENCY"
13441	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13442	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13443	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13444	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13445	//   "NEXT_HOP_NOT_RUNNING"
13446	//   "NOT_CRITICAL_ERROR"
13447	//   "NO_RESULTS_ON_PAGE"
13448	//   "PARTIAL_SUCCESS"
13449	//   "REQUIRED_TOS_AGREEMENT"
13450	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13451	//   "RESOURCE_NOT_DELETED"
13452	//   "SCHEMA_VALIDATION_IGNORED"
13453	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13454	//   "UNDECLARED_PROPERTIES"
13455	//   "UNREACHABLE"
13456	Code string `json:"code,omitempty"`
13457
13458	// Data: [Output Only] Metadata about this warning in key: value format.
13459	// For example:
13460	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13461	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
13462
13463	// Message: [Output Only] A human-readable description of the warning
13464	// code.
13465	Message string `json:"message,omitempty"`
13466
13467	// ForceSendFields is a list of field names (e.g. "Code") to
13468	// unconditionally include in API requests. By default, fields with
13469	// empty values are omitted from API requests. However, any non-pointer,
13470	// non-interface field appearing in ForceSendFields will be sent to the
13471	// server regardless of whether the field is empty or not. This may be
13472	// used to include empty fields in Patch requests.
13473	ForceSendFields []string `json:"-"`
13474
13475	// NullFields is a list of field names (e.g. "Code") to include in API
13476	// requests with the JSON null value. By default, fields with empty
13477	// values are omitted from API requests. However, any field with an
13478	// empty value appearing in NullFields will be sent to the server as
13479	// null. It is an error if a field in this list has a non-empty value.
13480	// This may be used to include null fields in Patch requests.
13481	NullFields []string `json:"-"`
13482}
13483
13484func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
13485	type NoMethod HttpHealthCheckListWarning
13486	raw := NoMethod(*s)
13487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13488}
13489
13490type HttpHealthCheckListWarningData struct {
13491	// Key: [Output Only] A key that provides more detail on the warning
13492	// being returned. For example, for warnings where there are no results
13493	// in a list request for a particular zone, this key might be scope and
13494	// the key value might be the zone name. Other examples might be a key
13495	// indicating a deprecated resource and a suggested replacement, or a
13496	// warning about invalid network settings (for example, if an instance
13497	// attempts to perform IP forwarding but is not enabled for IP
13498	// forwarding).
13499	Key string `json:"key,omitempty"`
13500
13501	// Value: [Output Only] A warning data value corresponding to the key.
13502	Value string `json:"value,omitempty"`
13503
13504	// ForceSendFields is a list of field names (e.g. "Key") to
13505	// unconditionally include in API requests. By default, fields with
13506	// empty values are omitted from API requests. However, any non-pointer,
13507	// non-interface field appearing in ForceSendFields will be sent to the
13508	// server regardless of whether the field is empty or not. This may be
13509	// used to include empty fields in Patch requests.
13510	ForceSendFields []string `json:"-"`
13511
13512	// NullFields is a list of field names (e.g. "Key") to include in API
13513	// requests with the JSON null value. By default, fields with empty
13514	// values are omitted from API requests. However, any field with an
13515	// empty value appearing in NullFields will be sent to the server as
13516	// null. It is an error if a field in this list has a non-empty value.
13517	// This may be used to include null fields in Patch requests.
13518	NullFields []string `json:"-"`
13519}
13520
13521func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13522	type NoMethod HttpHealthCheckListWarningData
13523	raw := NoMethod(*s)
13524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13525}
13526
13527// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
13528// query parameter.
13529type HttpQueryParameterMatch struct {
13530	// ExactMatch: The queryParameterMatch matches if the value of the
13531	// parameter exactly matches the contents of exactMatch.
13532	// Only one of presentMatch, exactMatch or regexMatch must be set.
13533	ExactMatch string `json:"exactMatch,omitempty"`
13534
13535	// Name: The name of the query parameter to match. The query parameter
13536	// must exist in the request, in the absence of which the request match
13537	// fails.
13538	Name string `json:"name,omitempty"`
13539
13540	// PresentMatch: Specifies that the queryParameterMatch matches if the
13541	// request contains the query parameter, irrespective of whether the
13542	// parameter has a value or not.
13543	// Only one of presentMatch, exactMatch or regexMatch must be set.
13544	PresentMatch bool `json:"presentMatch,omitempty"`
13545
13546	// RegexMatch: The queryParameterMatch matches if the value of the
13547	// parameter matches the regular expression specified by regexMatch. For
13548	// the regular expression grammar, please see
13549	// en.cppreference.com/w/cpp/regex/ecmascript
13550	// Only one of presentMatch, exactMatch or regexMatch must be set.
13551	// Note that regexMatch only applies when the loadBalancingScheme is set
13552	// to INTERNAL_SELF_MANAGED.
13553	RegexMatch string `json:"regexMatch,omitempty"`
13554
13555	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
13556	// unconditionally include in API requests. By default, fields with
13557	// empty values are omitted from API requests. However, any non-pointer,
13558	// non-interface field appearing in ForceSendFields will be sent to the
13559	// server regardless of whether the field is empty or not. This may be
13560	// used to include empty fields in Patch requests.
13561	ForceSendFields []string `json:"-"`
13562
13563	// NullFields is a list of field names (e.g. "ExactMatch") to include in
13564	// API requests with the JSON null value. By default, fields with empty
13565	// values are omitted from API requests. However, any field with an
13566	// empty value appearing in NullFields will be sent to the server as
13567	// null. It is an error if a field in this list has a non-empty value.
13568	// This may be used to include null fields in Patch requests.
13569	NullFields []string `json:"-"`
13570}
13571
13572func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
13573	type NoMethod HttpQueryParameterMatch
13574	raw := NoMethod(*s)
13575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13576}
13577
13578// HttpRedirectAction: Specifies settings for an HTTP redirect.
13579type HttpRedirectAction struct {
13580	// HostRedirect: The host that will be used in the redirect response
13581	// instead of the one that was supplied in the request.
13582	// The value must be between 1 and 255 characters.
13583	HostRedirect string `json:"hostRedirect,omitempty"`
13584
13585	// HttpsRedirect: If set to true, the URL scheme in the redirected
13586	// request is set to https. If set to false, the URL scheme of the
13587	// redirected request will remain the same as that of the request.
13588	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
13589	// this true for TargetHttpsProxy is not permitted.
13590	// The default is set to false.
13591	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
13592
13593	// PathRedirect: The path that will be used in the redirect response
13594	// instead of the one that was supplied in the request.
13595	// pathRedirect cannot be supplied together with prefixRedirect. Supply
13596	// one alone or neither. If neither is supplied, the path of the
13597	// original request will be used for the redirect.
13598	// The value must be between 1 and 1024 characters.
13599	PathRedirect string `json:"pathRedirect,omitempty"`
13600
13601	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
13602	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
13603	// before redirecting the request.
13604	// prefixRedirect cannot be supplied together with pathRedirect. Supply
13605	// one alone or neither. If neither is supplied, the path of the
13606	// original request will be used for the redirect.
13607	// The value must be between 1 and 1024 characters.
13608	PrefixRedirect string `json:"prefixRedirect,omitempty"`
13609
13610	// RedirectResponseCode: The HTTP Status code to use for this
13611	// RedirectAction.
13612	// Supported values are:
13613	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
13614	// corresponds to 301.
13615	// - FOUND, which corresponds to 302.
13616	// - SEE_OTHER which corresponds to 303.
13617	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
13618	// request method will be retained.
13619	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
13620	// request method will be retained.
13621	//
13622	// Possible values:
13623	//   "FOUND"
13624	//   "MOVED_PERMANENTLY_DEFAULT"
13625	//   "PERMANENT_REDIRECT"
13626	//   "SEE_OTHER"
13627	//   "TEMPORARY_REDIRECT"
13628	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
13629
13630	// StripQuery: If set to true, any accompanying query portion of the
13631	// original URL is removed prior to redirecting the request. If set to
13632	// false, the query portion of the original URL is retained.
13633	// The default is set to false.
13634	StripQuery bool `json:"stripQuery,omitempty"`
13635
13636	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
13637	// unconditionally include in API requests. By default, fields with
13638	// empty values are omitted from API requests. However, any non-pointer,
13639	// non-interface field appearing in ForceSendFields will be sent to the
13640	// server regardless of whether the field is empty or not. This may be
13641	// used to include empty fields in Patch requests.
13642	ForceSendFields []string `json:"-"`
13643
13644	// NullFields is a list of field names (e.g. "HostRedirect") to include
13645	// in API requests with the JSON null value. By default, fields with
13646	// empty values are omitted from API requests. However, any field with
13647	// an empty value appearing in NullFields will be sent to the server as
13648	// null. It is an error if a field in this list has a non-empty value.
13649	// This may be used to include null fields in Patch requests.
13650	NullFields []string `json:"-"`
13651}
13652
13653func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
13654	type NoMethod HttpRedirectAction
13655	raw := NoMethod(*s)
13656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13657}
13658
13659// HttpRetryPolicy: The retry policy associates with HttpRouteRule
13660type HttpRetryPolicy struct {
13661	// NumRetries: Specifies the allowed number retries. This number must be
13662	// > 0. If not specified, defaults to 1.
13663	NumRetries int64 `json:"numRetries,omitempty"`
13664
13665	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
13666	// If not specified, will use the timeout set in HttpRouteAction. If
13667	// timeout in HttpRouteAction is not set, will use the largest timeout
13668	// among all backend services associated with the route.
13669	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
13670
13671	// RetryConditions: Specfies one or more conditions when this retry rule
13672	// applies. Valid values are:
13673	// - 5xx: Loadbalancer will attempt a retry if the backend service
13674	// responds with any 5xx response code, or if the backend service does
13675	// not respond at all, example: disconnects, reset, read timeout,
13676	// connection failure, and refused streams.
13677	// - gateway-error: Similar to 5xx, but only applies to response codes
13678	// 502, 503 or 504.
13679	// -
13680	// - connect-failure: Loadbalancer will retry on failures connecting to
13681	// backend services, for example due to connection timeouts.
13682	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
13683	// codes. Currently the only retriable error supported is 409.
13684	// - refused-stream:Loadbalancer will retry if the backend service
13685	// resets the stream with a REFUSED_STREAM error code. This reset type
13686	// indicates that it is safe to retry.
13687	// - cancelledLoadbalancer will retry if the gRPC status code in the
13688	// response header is set to cancelled
13689	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
13690	// in the response header is set to deadline-exceeded
13691	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
13692	// in the response header is set to resource-exhausted
13693	// - unavailable: Loadbalancer will retry if the gRPC status code in the
13694	// response header is set to unavailable
13695	RetryConditions []string `json:"retryConditions,omitempty"`
13696
13697	// ForceSendFields is a list of field names (e.g. "NumRetries") to
13698	// unconditionally include in API requests. By default, fields with
13699	// empty values are omitted from API requests. However, any non-pointer,
13700	// non-interface field appearing in ForceSendFields will be sent to the
13701	// server regardless of whether the field is empty or not. This may be
13702	// used to include empty fields in Patch requests.
13703	ForceSendFields []string `json:"-"`
13704
13705	// NullFields is a list of field names (e.g. "NumRetries") to include in
13706	// API requests with the JSON null value. By default, fields with empty
13707	// values are omitted from API requests. However, any field with an
13708	// empty value appearing in NullFields will be sent to the server as
13709	// null. It is an error if a field in this list has a non-empty value.
13710	// This may be used to include null fields in Patch requests.
13711	NullFields []string `json:"-"`
13712}
13713
13714func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
13715	type NoMethod HttpRetryPolicy
13716	raw := NoMethod(*s)
13717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13718}
13719
13720type HttpRouteAction struct {
13721	// CorsPolicy: The specification for allowing client side cross-origin
13722	// requests. Please see W3C Recommendation for Cross Origin Resource
13723	// Sharing
13724	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
13725
13726	// FaultInjectionPolicy: The specification for fault injection
13727	// introduced into traffic to test the resiliency of clients to backend
13728	// service failure. As part of fault injection, when clients send
13729	// requests to a backend service, delays can be introduced by
13730	// Loadbalancer on a percentage of requests before sending those request
13731	// to the backend service. Similarly requests from clients can be
13732	// aborted by the Loadbalancer for a percentage of requests.
13733	// timeout and retry_policy will be ignored by clients that are
13734	// configured with a fault_injection_policy.
13735	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
13736
13737	// RequestMirrorPolicy: Specifies the policy on how requests intended
13738	// for the route's backends are shadowed to a separate mirrored backend
13739	// service. Loadbalancer does not wait for responses from the shadow
13740	// service. Prior to sending traffic to the shadow service, the host /
13741	// authority header is suffixed with -shadow.
13742	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
13743
13744	// RetryPolicy: Specifies the retry policy associated with this route.
13745	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
13746
13747	// Timeout: Specifies the timeout for the selected route. Timeout is
13748	// computed from the time the request has been fully processed (i.e.
13749	// end-of-stream) up until the response has been completely processed.
13750	// Timeout includes all retries.
13751	// If not specified, will use the largest timeout among all backend
13752	// services associated with the route.
13753	Timeout *Duration `json:"timeout,omitempty"`
13754
13755	// UrlRewrite: The spec to modify the URL of the request, prior to
13756	// forwarding the request to the matched service.
13757	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
13758
13759	// WeightedBackendServices: A list of weighted backend services to send
13760	// traffic to when a route match occurs. The weights determine the
13761	// fraction of traffic that flows to their corresponding backend
13762	// service. If all traffic needs to go to a single backend service,
13763	// there must be one  weightedBackendService with weight set to a non 0
13764	// number.
13765	// Once a backendService is identified and before forwarding the request
13766	// to the backend service, advanced routing actions like Url rewrites
13767	// and header transformations are applied depending on additional
13768	// settings specified in this HttpRouteAction.
13769	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
13770
13771	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
13772	// unconditionally include in API requests. By default, fields with
13773	// empty values are omitted from API requests. However, any non-pointer,
13774	// non-interface field appearing in ForceSendFields will be sent to the
13775	// server regardless of whether the field is empty or not. This may be
13776	// used to include empty fields in Patch requests.
13777	ForceSendFields []string `json:"-"`
13778
13779	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
13780	// API requests with the JSON null value. By default, fields with empty
13781	// values are omitted from API requests. However, any field with an
13782	// empty value appearing in NullFields will be sent to the server as
13783	// null. It is an error if a field in this list has a non-empty value.
13784	// This may be used to include null fields in Patch requests.
13785	NullFields []string `json:"-"`
13786}
13787
13788func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
13789	type NoMethod HttpRouteAction
13790	raw := NoMethod(*s)
13791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13792}
13793
13794// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
13795// request and the corresponding routing action that load balancing
13796// proxies will perform.
13797type HttpRouteRule struct {
13798	// Description: The short description conveying the intent of this
13799	// routeRule.
13800	// The description can have a maximum length of 1024 characters.
13801	Description string `json:"description,omitempty"`
13802
13803	// HeaderAction: Specifies changes to request and response headers that
13804	// need to take effect for the selected backendService.
13805	// The headerAction specified here are applied before the matching
13806	// pathMatchers[].headerAction and after
13807	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
13808	// ServiceWeightAction[].headerAction
13809	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
13810
13811	// HttpFilterConfigs: Outbound route specific configuration for
13812	// networkservices.HttpFilter resources enabled by Traffic Director.
13813	// httpFilterConfigs only applies for Loadbalancers with
13814	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule
13815	// for more details.
13816	HttpFilterConfigs []*HttpFilterConfig `json:"httpFilterConfigs,omitempty"`
13817
13818	// HttpFilterMetadata: Outbound route specific metadata supplied to
13819	// networkservices.HttpFilter resources enabled by Traffic Director.
13820	// httpFilterMetadata only applies for Loadbalancers with
13821	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule
13822	// for more details.
13823	// The only configTypeUrl supported is
13824	// type.googleapis.com/google.protobuf.Struct
13825	HttpFilterMetadata []*HttpFilterConfig `json:"httpFilterMetadata,omitempty"`
13826
13827	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
13828
13829	// Priority: For routeRules within a given pathMatcher, priority
13830	// determines the order in which load balancer will interpret
13831	// routeRules. RouteRules are evaluated in order of priority, from the
13832	// lowest to highest number. The priority of a rule decreases as its
13833	// number increases (1, 2, 3, N+1). The first rule that matches the
13834	// request is applied.
13835	// You cannot configure two or more routeRules with the same priority.
13836	// Priority for each rule must be set to a number between 0 and
13837	// 2147483647 inclusive.
13838	// Priority numbers can have gaps, which enable you to add or remove
13839	// rules in the future without affecting the rest of the rules. For
13840	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
13841	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
13842	// and 13 to 15 in the future without any impact on existing rules.
13843	Priority int64 `json:"priority,omitempty"`
13844
13845	// RouteAction: In response to a matching matchRule, the load balancer
13846	// performs advanced routing actions like URL rewrites, header
13847	// transformations, etc. prior to forwarding the request to the selected
13848	// backend. If  routeAction specifies any  weightedBackendServices,
13849	// service must not be set. Conversely if service is set, routeAction
13850	// cannot contain any  weightedBackendServices.
13851	// Only one of urlRedirect, service or
13852	// routeAction.weightedBackendService must be set.
13853	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
13854
13855	// Service: The full or partial URL of the backend service resource to
13856	// which traffic is directed if this rule is matched. If routeAction is
13857	// additionally specified, advanced routing actions like URL Rewrites,
13858	// etc. take effect prior to sending the request to the backend.
13859	// However, if service is specified, routeAction cannot contain any
13860	// weightedBackendService s. Conversely, if routeAction specifies any
13861	// weightedBackendServices, service must not be specified.
13862	// Only one of urlRedirect, service or
13863	// routeAction.weightedBackendService must be set.
13864	Service string `json:"service,omitempty"`
13865
13866	// UrlRedirect: When this rule is matched, the request is redirected to
13867	// a URL specified by urlRedirect.
13868	// If urlRedirect is specified, service or routeAction must not be set.
13869	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
13870
13871	// ForceSendFields is a list of field names (e.g. "Description") to
13872	// unconditionally include in API requests. By default, fields with
13873	// empty values are omitted from API requests. However, any non-pointer,
13874	// non-interface field appearing in ForceSendFields will be sent to the
13875	// server regardless of whether the field is empty or not. This may be
13876	// used to include empty fields in Patch requests.
13877	ForceSendFields []string `json:"-"`
13878
13879	// NullFields is a list of field names (e.g. "Description") to include
13880	// in API requests with the JSON null value. By default, fields with
13881	// empty values are omitted from API requests. However, any field with
13882	// an empty value appearing in NullFields will be sent to the server as
13883	// null. It is an error if a field in this list has a non-empty value.
13884	// This may be used to include null fields in Patch requests.
13885	NullFields []string `json:"-"`
13886}
13887
13888func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
13889	type NoMethod HttpRouteRule
13890	raw := NoMethod(*s)
13891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13892}
13893
13894// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
13895// for matching requests to an HttpRouteRule. All specified criteria
13896// must be satisfied for a match to occur.
13897type HttpRouteRuleMatch struct {
13898	// FullPathMatch: For satisfying the matchRule condition, the path of
13899	// the request must exactly match the value specified in fullPathMatch
13900	// after removing any query parameters and anchor that may be part of
13901	// the original URL.
13902	// fullPathMatch must be between 1 and 1024 characters.
13903	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13904	// specified.
13905	FullPathMatch string `json:"fullPathMatch,omitempty"`
13906
13907	// HeaderMatches: Specifies a list of header match criteria, all of
13908	// which must match corresponding headers in the request.
13909	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
13910
13911	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
13912	// case sensitive.
13913	// The default value is false.
13914	// ignoreCase must not be used with regexMatch.
13915	IgnoreCase bool `json:"ignoreCase,omitempty"`
13916
13917	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
13918	// restrict routing configuration to a limited set of xDS compliant
13919	// clients. In their xDS requests to Loadbalancer, xDS clients present
13920	// node metadata. If a match takes place, the relevant routing
13921	// configuration is made available to those proxies.
13922	// For each metadataFilter in this list, if its filterMatchCriteria is
13923	// set to MATCH_ANY, at least one of the filterLabels must match the
13924	// corresponding label provided in the metadata. If its
13925	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
13926	// must match with corresponding labels provided in the
13927	// metadata.
13928	// metadataFilters specified here will be applied after those specified
13929	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
13930	// belongs to.
13931	// metadataFilters only applies to Loadbalancers that have their
13932	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13933	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
13934
13935	// PrefixMatch: For satisfying the matchRule condition, the request's
13936	// path must begin with the specified prefixMatch. prefixMatch must
13937	// begin with a /.
13938	// The value must be between 1 and 1024 characters.
13939	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13940	// specified.
13941	PrefixMatch string `json:"prefixMatch,omitempty"`
13942
13943	// QueryParameterMatches: Specifies a list of query parameter match
13944	// criteria, all of which must match corresponding query parameters in
13945	// the request.
13946	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
13947
13948	// RegexMatch: For satisfying the matchRule condition, the path of the
13949	// request must satisfy the regular expression specified in regexMatch
13950	// after removing any query parameters and anchor supplied with the
13951	// original URL. For regular expression grammar please see
13952	// en.cppreference.com/w/cpp/regex/ecmascript
13953	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13954	// specified.
13955	// Note that regexMatch only applies to Loadbalancers that have their
13956	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13957	RegexMatch string `json:"regexMatch,omitempty"`
13958
13959	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
13960	// unconditionally include in API requests. By default, fields with
13961	// empty values are omitted from API requests. However, any non-pointer,
13962	// non-interface field appearing in ForceSendFields will be sent to the
13963	// server regardless of whether the field is empty or not. This may be
13964	// used to include empty fields in Patch requests.
13965	ForceSendFields []string `json:"-"`
13966
13967	// NullFields is a list of field names (e.g. "FullPathMatch") to include
13968	// in API requests with the JSON null value. By default, fields with
13969	// empty values are omitted from API requests. However, any field with
13970	// an empty value appearing in NullFields will be sent to the server as
13971	// null. It is an error if a field in this list has a non-empty value.
13972	// This may be used to include null fields in Patch requests.
13973	NullFields []string `json:"-"`
13974}
13975
13976func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
13977	type NoMethod HttpRouteRuleMatch
13978	raw := NoMethod(*s)
13979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13980}
13981
13982// HttpsHealthCheck: Represents a legacy HTTPS Health Check
13983// resource.
13984//
13985// Legacy health checks are required by network load balancers. For more
13986// information, read Health Check Concepts.
13987type HttpsHealthCheck struct {
13988	// CheckIntervalSec: How often (in seconds) to send a health check. The
13989	// default value is 5 seconds.
13990	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
13991
13992	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13993	// format.
13994	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13995
13996	// Description: An optional description of this resource. Provide this
13997	// property when you create the resource.
13998	Description string `json:"description,omitempty"`
13999
14000	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
14001	// after this many consecutive successes. The default value is 2.
14002	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
14003
14004	// Host: The value of the host header in the HTTPS health check request.
14005	// If left empty (default value), the public IP on behalf of which this
14006	// health check is performed will be used.
14007	Host string `json:"host,omitempty"`
14008
14009	// Id: [Output Only] The unique identifier for the resource. This
14010	// identifier is defined by the server.
14011	Id uint64 `json:"id,omitempty,string"`
14012
14013	// Kind: Type of the resource.
14014	Kind string `json:"kind,omitempty"`
14015
14016	// Name: Name of the resource. Provided by the client when the resource
14017	// is created. The name must be 1-63 characters long, and comply with
14018	// RFC1035. Specifically, the name must be 1-63 characters long and
14019	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14020	// the first character must be a lowercase letter, and all following
14021	// characters must be a dash, lowercase letter, or digit, except the
14022	// last character, which cannot be a dash.
14023	Name string `json:"name,omitempty"`
14024
14025	// Port: The TCP port number for the HTTPS health check request. The
14026	// default value is 443.
14027	Port int64 `json:"port,omitempty"`
14028
14029	// RequestPath: The request path of the HTTPS health check request. The
14030	// default value is "/".
14031	RequestPath string `json:"requestPath,omitempty"`
14032
14033	// SelfLink: [Output Only] Server-defined URL for the resource.
14034	SelfLink string `json:"selfLink,omitempty"`
14035
14036	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
14037	// with the resource id.
14038	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14039
14040	// TimeoutSec: How long (in seconds) to wait before claiming failure.
14041	// The default value is 5 seconds. It is invalid for timeoutSec to have
14042	// a greater value than checkIntervalSec.
14043	TimeoutSec int64 `json:"timeoutSec,omitempty"`
14044
14045	// UnhealthyThreshold: A so-far healthy instance will be marked
14046	// unhealthy after this many consecutive failures. The default value is
14047	// 2.
14048	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
14049
14050	// ServerResponse contains the HTTP response code and headers from the
14051	// server.
14052	googleapi.ServerResponse `json:"-"`
14053
14054	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
14055	// unconditionally include in API requests. By default, fields with
14056	// empty values are omitted from API requests. However, any non-pointer,
14057	// non-interface field appearing in ForceSendFields will be sent to the
14058	// server regardless of whether the field is empty or not. This may be
14059	// used to include empty fields in Patch requests.
14060	ForceSendFields []string `json:"-"`
14061
14062	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
14063	// include in API requests with the JSON null value. By default, fields
14064	// with empty values are omitted from API requests. However, any field
14065	// with an empty value appearing in NullFields will be sent to the
14066	// server as null. It is an error if a field in this list has a
14067	// non-empty value. This may be used to include null fields in Patch
14068	// requests.
14069	NullFields []string `json:"-"`
14070}
14071
14072func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
14073	type NoMethod HttpsHealthCheck
14074	raw := NoMethod(*s)
14075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14076}
14077
14078// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
14079type HttpsHealthCheckList struct {
14080	// Id: [Output Only] Unique identifier for the resource; defined by the
14081	// server.
14082	Id string `json:"id,omitempty"`
14083
14084	// Items: A list of HttpsHealthCheck resources.
14085	Items []*HttpsHealthCheck `json:"items,omitempty"`
14086
14087	// Kind: Type of resource.
14088	Kind string `json:"kind,omitempty"`
14089
14090	// NextPageToken: [Output Only] This token allows you to get the next
14091	// page of results for list requests. If the number of results is larger
14092	// than maxResults, use the nextPageToken as a value for the query
14093	// parameter pageToken in the next list request. Subsequent list
14094	// requests will have their own nextPageToken to continue paging through
14095	// the results.
14096	NextPageToken string `json:"nextPageToken,omitempty"`
14097
14098	// SelfLink: [Output Only] Server-defined URL for this resource.
14099	SelfLink string `json:"selfLink,omitempty"`
14100
14101	// Warning: [Output Only] Informational warning message.
14102	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
14103
14104	// ServerResponse contains the HTTP response code and headers from the
14105	// server.
14106	googleapi.ServerResponse `json:"-"`
14107
14108	// ForceSendFields is a list of field names (e.g. "Id") to
14109	// unconditionally include in API requests. By default, fields with
14110	// empty values are omitted from API requests. However, any non-pointer,
14111	// non-interface field appearing in ForceSendFields will be sent to the
14112	// server regardless of whether the field is empty or not. This may be
14113	// used to include empty fields in Patch requests.
14114	ForceSendFields []string `json:"-"`
14115
14116	// NullFields is a list of field names (e.g. "Id") to include in API
14117	// requests with the JSON null value. By default, fields with empty
14118	// values are omitted from API requests. However, any field with an
14119	// empty value appearing in NullFields will be sent to the server as
14120	// null. It is an error if a field in this list has a non-empty value.
14121	// This may be used to include null fields in Patch requests.
14122	NullFields []string `json:"-"`
14123}
14124
14125func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
14126	type NoMethod HttpsHealthCheckList
14127	raw := NoMethod(*s)
14128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14129}
14130
14131// HttpsHealthCheckListWarning: [Output Only] Informational warning
14132// message.
14133type HttpsHealthCheckListWarning struct {
14134	// Code: [Output Only] A warning code, if applicable. For example,
14135	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14136	// the response.
14137	//
14138	// Possible values:
14139	//   "CLEANUP_FAILED"
14140	//   "DEPRECATED_RESOURCE_USED"
14141	//   "DEPRECATED_TYPE_USED"
14142	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14143	//   "EXPERIMENTAL_TYPE_USED"
14144	//   "EXTERNAL_API_WARNING"
14145	//   "FIELD_VALUE_OVERRIDEN"
14146	//   "INJECTED_KERNELS_DEPRECATED"
14147	//   "MISSING_TYPE_DEPENDENCY"
14148	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14149	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14150	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14151	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14152	//   "NEXT_HOP_NOT_RUNNING"
14153	//   "NOT_CRITICAL_ERROR"
14154	//   "NO_RESULTS_ON_PAGE"
14155	//   "PARTIAL_SUCCESS"
14156	//   "REQUIRED_TOS_AGREEMENT"
14157	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14158	//   "RESOURCE_NOT_DELETED"
14159	//   "SCHEMA_VALIDATION_IGNORED"
14160	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14161	//   "UNDECLARED_PROPERTIES"
14162	//   "UNREACHABLE"
14163	Code string `json:"code,omitempty"`
14164
14165	// Data: [Output Only] Metadata about this warning in key: value format.
14166	// For example:
14167	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14168	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
14169
14170	// Message: [Output Only] A human-readable description of the warning
14171	// code.
14172	Message string `json:"message,omitempty"`
14173
14174	// ForceSendFields is a list of field names (e.g. "Code") to
14175	// unconditionally include in API requests. By default, fields with
14176	// empty values are omitted from API requests. However, any non-pointer,
14177	// non-interface field appearing in ForceSendFields will be sent to the
14178	// server regardless of whether the field is empty or not. This may be
14179	// used to include empty fields in Patch requests.
14180	ForceSendFields []string `json:"-"`
14181
14182	// NullFields is a list of field names (e.g. "Code") to include in API
14183	// requests with the JSON null value. By default, fields with empty
14184	// values are omitted from API requests. However, any field with an
14185	// empty value appearing in NullFields will be sent to the server as
14186	// null. It is an error if a field in this list has a non-empty value.
14187	// This may be used to include null fields in Patch requests.
14188	NullFields []string `json:"-"`
14189}
14190
14191func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
14192	type NoMethod HttpsHealthCheckListWarning
14193	raw := NoMethod(*s)
14194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14195}
14196
14197type HttpsHealthCheckListWarningData struct {
14198	// Key: [Output Only] A key that provides more detail on the warning
14199	// being returned. For example, for warnings where there are no results
14200	// in a list request for a particular zone, this key might be scope and
14201	// the key value might be the zone name. Other examples might be a key
14202	// indicating a deprecated resource and a suggested replacement, or a
14203	// warning about invalid network settings (for example, if an instance
14204	// attempts to perform IP forwarding but is not enabled for IP
14205	// forwarding).
14206	Key string `json:"key,omitempty"`
14207
14208	// Value: [Output Only] A warning data value corresponding to the key.
14209	Value string `json:"value,omitempty"`
14210
14211	// ForceSendFields is a list of field names (e.g. "Key") to
14212	// unconditionally include in API requests. By default, fields with
14213	// empty values are omitted from API requests. However, any non-pointer,
14214	// non-interface field appearing in ForceSendFields will be sent to the
14215	// server regardless of whether the field is empty or not. This may be
14216	// used to include empty fields in Patch requests.
14217	ForceSendFields []string `json:"-"`
14218
14219	// NullFields is a list of field names (e.g. "Key") to include in API
14220	// 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 *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
14229	type NoMethod HttpsHealthCheckListWarningData
14230	raw := NoMethod(*s)
14231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14232}
14233
14234// Image: Represents an Image resource.
14235//
14236// You can use images to create boot disks for your VM instances. For
14237// more information, read Images. (== resource_for {$api_version}.images
14238// ==)
14239type Image struct {
14240	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
14241	// Cloud Storage (in bytes).
14242	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
14243
14244	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14245	// format.
14246	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14247
14248	// Deprecated: The deprecation status associated with this image.
14249	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
14250
14251	// Description: An optional description of this resource. Provide this
14252	// property when you create the resource.
14253	Description string `json:"description,omitempty"`
14254
14255	// DiskSizeGb: Size of the image when restored onto a persistent disk
14256	// (in GB).
14257	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
14258
14259	// Family: The name of the image family to which this image belongs. You
14260	// can create disks by specifying an image family instead of a specific
14261	// image name. The image family always returns its latest image that is
14262	// not deprecated. The name of the image family must comply with
14263	// RFC1035.
14264	Family string `json:"family,omitempty"`
14265
14266	// GuestOsFeatures: A list of features to enable on the guest operating
14267	// system. Applicable only for bootable images. Read  Enabling guest
14268	// operating system features to see a list of available options.
14269	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
14270
14271	// Id: [Output Only] The unique identifier for the resource. This
14272	// identifier is defined by the server.
14273	Id uint64 `json:"id,omitempty,string"`
14274
14275	// ImageEncryptionKey: Encrypts the image using a customer-supplied
14276	// encryption key.
14277	//
14278	// After you encrypt an image with a customer-supplied key, you must
14279	// provide the same key if you use the image later (e.g. to create a
14280	// disk from the image).
14281	//
14282	// Customer-supplied encryption keys do not protect access to metadata
14283	// of the disk.
14284	//
14285	// If you do not provide an encryption key when creating the image, then
14286	// the disk will be encrypted using an automatically generated key and
14287	// you do not need to provide a key to use the image later.
14288	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
14289
14290	// Kind: [Output Only] Type of the resource. Always compute#image for
14291	// images.
14292	Kind string `json:"kind,omitempty"`
14293
14294	// LabelFingerprint: A fingerprint for the labels being applied to this
14295	// image, which is essentially a hash of the labels used for optimistic
14296	// locking. The fingerprint is initially generated by Compute Engine and
14297	// changes after every request to modify or update labels. You must
14298	// always provide an up-to-date fingerprint hash in order to update or
14299	// change labels, otherwise the request will fail with error 412
14300	// conditionNotMet.
14301	//
14302	// To see the latest fingerprint, make a get() request to retrieve an
14303	// image.
14304	LabelFingerprint string `json:"labelFingerprint,omitempty"`
14305
14306	// Labels: Labels to apply to this image. These can be later modified by
14307	// the setLabels method.
14308	Labels map[string]string `json:"labels,omitempty"`
14309
14310	// LicenseCodes: Integer license codes indicating which licenses are
14311	// attached to this image.
14312	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
14313
14314	// Licenses: Any applicable license URI.
14315	Licenses []string `json:"licenses,omitempty"`
14316
14317	// Name: Name of the resource; provided by the client when the resource
14318	// is created. The name must be 1-63 characters long, and comply with
14319	// RFC1035. Specifically, the name must be 1-63 characters long and
14320	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14321	// the first character must be a lowercase letter, and all following
14322	// characters must be a dash, lowercase letter, or digit, except the
14323	// last character, which cannot be a dash.
14324	Name string `json:"name,omitempty"`
14325
14326	// RawDisk: The parameters of the raw disk image.
14327	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
14328
14329	// SelfLink: [Output Only] Server-defined URL for the resource.
14330	SelfLink string `json:"selfLink,omitempty"`
14331
14332	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
14333	// resource id.
14334	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14335
14336	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
14337	// instance.
14338	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
14339
14340	// SourceDisk: URL of the source disk used to create this image. This
14341	// can be a full or valid partial URL. You must provide either this
14342	// property or the rawDisk.source property but not both to create an
14343	// image. For example, the following are valid values:
14344	// -
14345	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
14346	// - projects/project/zones/zone/disks/disk
14347	// - zones/zone/disks/disk
14348	SourceDisk string `json:"sourceDisk,omitempty"`
14349
14350	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
14351	// source disk. Required if the source disk is protected by a
14352	// customer-supplied encryption key.
14353	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
14354
14355	// SourceDiskId: [Output Only] The ID value of the disk used to create
14356	// this image. This value may be used to determine whether the image was
14357	// taken from the current or a previous instance of a given disk name.
14358	SourceDiskId string `json:"sourceDiskId,omitempty"`
14359
14360	// SourceImage: URL of the source image used to create this image. This
14361	// can be a full or valid partial URL. You must provide exactly one of:
14362	//
14363	// - this property, or
14364	// - the rawDisk.source property, or
14365	// - the sourceDisk property   in order to create an image.
14366	SourceImage string `json:"sourceImage,omitempty"`
14367
14368	// SourceImageEncryptionKey: The customer-supplied encryption key of the
14369	// source image. Required if the source image is protected by a
14370	// customer-supplied encryption key.
14371	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
14372
14373	// SourceImageId: [Output Only] The ID value of the image used to create
14374	// this image. This value may be used to determine whether the image was
14375	// taken from the current or a previous instance of a given image name.
14376	SourceImageId string `json:"sourceImageId,omitempty"`
14377
14378	// SourceSnapshot: URL of the source snapshot used to create this image.
14379	// This can be a full or valid partial URL. You must provide exactly one
14380	// of:
14381	// - this property, or
14382	// - the sourceImage property, or
14383	// - the rawDisk.source property, or
14384	// - the sourceDisk property   in order to create an image.
14385	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
14386
14387	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
14388	// the source snapshot. Required if the source snapshot is protected by
14389	// a customer-supplied encryption key.
14390	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
14391
14392	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
14393	// create this image. This value may be used to determine whether the
14394	// snapshot was taken from the current or a previous instance of a given
14395	// snapshot name.
14396	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
14397
14398	// SourceType: The type of the image used to create this disk. The
14399	// default and only value is RAW
14400	//
14401	// Possible values:
14402	//   "RAW" (default)
14403	SourceType string `json:"sourceType,omitempty"`
14404
14405	// Status: [Output Only] The status of the image. An image can be used
14406	// to create other resources, such as instances, only after the image
14407	// has been successfully created and the status is set to READY.
14408	// Possible values are FAILED, PENDING, or READY.
14409	//
14410	// Possible values:
14411	//   "DELETING"
14412	//   "FAILED"
14413	//   "PENDING"
14414	//   "READY"
14415	Status string `json:"status,omitempty"`
14416
14417	// StorageLocations: Cloud Storage bucket storage location of the image
14418	// (regional or multi-regional).
14419	StorageLocations []string `json:"storageLocations,omitempty"`
14420
14421	// ServerResponse contains the HTTP response code and headers from the
14422	// server.
14423	googleapi.ServerResponse `json:"-"`
14424
14425	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
14426	// unconditionally include in API requests. By default, fields with
14427	// empty values are omitted from API requests. However, any non-pointer,
14428	// non-interface field appearing in ForceSendFields will be sent to the
14429	// server regardless of whether the field is empty or not. This may be
14430	// used to include empty fields in Patch requests.
14431	ForceSendFields []string `json:"-"`
14432
14433	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
14434	// include in API requests with the JSON null value. By default, fields
14435	// with empty values are omitted from API requests. However, any field
14436	// with an empty value appearing in NullFields will be sent to the
14437	// server as null. It is an error if a field in this list has a
14438	// non-empty value. This may be used to include null fields in Patch
14439	// requests.
14440	NullFields []string `json:"-"`
14441}
14442
14443func (s *Image) MarshalJSON() ([]byte, error) {
14444	type NoMethod Image
14445	raw := NoMethod(*s)
14446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14447}
14448
14449// ImageRawDisk: The parameters of the raw disk image.
14450type ImageRawDisk struct {
14451	// ContainerType: The format used to encode and transmit the block
14452	// device, which should be TAR. This is just a container and
14453	// transmission format and not a runtime format. Provided by the client
14454	// when the disk image is created.
14455	//
14456	// Possible values:
14457	//   "TAR"
14458	ContainerType string `json:"containerType,omitempty"`
14459
14460	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
14461	// checksum of the disk image before unpackaging provided by the client
14462	// when the disk image is created.
14463	Sha1Checksum string `json:"sha1Checksum,omitempty"`
14464
14465	// Source: The full Google Cloud Storage URL where the disk image is
14466	// stored. You must provide either this property or the sourceDisk
14467	// property but not both.
14468	Source string `json:"source,omitempty"`
14469
14470	// ForceSendFields is a list of field names (e.g. "ContainerType") to
14471	// unconditionally include in API requests. By default, fields with
14472	// empty values are omitted from API requests. However, any non-pointer,
14473	// non-interface field appearing in ForceSendFields will be sent to the
14474	// server regardless of whether the field is empty or not. This may be
14475	// used to include empty fields in Patch requests.
14476	ForceSendFields []string `json:"-"`
14477
14478	// NullFields is a list of field names (e.g. "ContainerType") to include
14479	// in API requests with the JSON null value. By default, fields with
14480	// empty values are omitted from API requests. However, any field with
14481	// an empty value appearing in NullFields will be sent to the server as
14482	// null. It is an error if a field in this list has a non-empty value.
14483	// This may be used to include null fields in Patch requests.
14484	NullFields []string `json:"-"`
14485}
14486
14487func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
14488	type NoMethod ImageRawDisk
14489	raw := NoMethod(*s)
14490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14491}
14492
14493// ImageList: Contains a list of images.
14494type ImageList struct {
14495	// Id: [Output Only] Unique identifier for the resource; defined by the
14496	// server.
14497	Id string `json:"id,omitempty"`
14498
14499	// Items: A list of Image resources.
14500	Items []*Image `json:"items,omitempty"`
14501
14502	// Kind: Type of resource.
14503	Kind string `json:"kind,omitempty"`
14504
14505	// NextPageToken: [Output Only] This token allows you to get the next
14506	// page of results for list requests. If the number of results is larger
14507	// than maxResults, use the nextPageToken as a value for the query
14508	// parameter pageToken in the next list request. Subsequent list
14509	// requests will have their own nextPageToken to continue paging through
14510	// the results.
14511	NextPageToken string `json:"nextPageToken,omitempty"`
14512
14513	// SelfLink: [Output Only] Server-defined URL for this resource.
14514	SelfLink string `json:"selfLink,omitempty"`
14515
14516	// Warning: [Output Only] Informational warning message.
14517	Warning *ImageListWarning `json:"warning,omitempty"`
14518
14519	// ServerResponse contains the HTTP response code and headers from the
14520	// server.
14521	googleapi.ServerResponse `json:"-"`
14522
14523	// ForceSendFields is a list of field names (e.g. "Id") to
14524	// unconditionally include in API requests. By default, fields with
14525	// empty values are omitted from API requests. However, any non-pointer,
14526	// non-interface field appearing in ForceSendFields will be sent to the
14527	// server regardless of whether the field is empty or not. This may be
14528	// used to include empty fields in Patch requests.
14529	ForceSendFields []string `json:"-"`
14530
14531	// NullFields is a list of field names (e.g. "Id") to include in API
14532	// requests with the JSON null value. By default, fields with empty
14533	// values are omitted from API requests. However, any field with an
14534	// empty value appearing in NullFields will be sent to the server as
14535	// null. It is an error if a field in this list has a non-empty value.
14536	// This may be used to include null fields in Patch requests.
14537	NullFields []string `json:"-"`
14538}
14539
14540func (s *ImageList) MarshalJSON() ([]byte, error) {
14541	type NoMethod ImageList
14542	raw := NoMethod(*s)
14543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14544}
14545
14546// ImageListWarning: [Output Only] Informational warning message.
14547type ImageListWarning struct {
14548	// Code: [Output Only] A warning code, if applicable. For example,
14549	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14550	// the response.
14551	//
14552	// Possible values:
14553	//   "CLEANUP_FAILED"
14554	//   "DEPRECATED_RESOURCE_USED"
14555	//   "DEPRECATED_TYPE_USED"
14556	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14557	//   "EXPERIMENTAL_TYPE_USED"
14558	//   "EXTERNAL_API_WARNING"
14559	//   "FIELD_VALUE_OVERRIDEN"
14560	//   "INJECTED_KERNELS_DEPRECATED"
14561	//   "MISSING_TYPE_DEPENDENCY"
14562	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14563	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14564	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14565	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14566	//   "NEXT_HOP_NOT_RUNNING"
14567	//   "NOT_CRITICAL_ERROR"
14568	//   "NO_RESULTS_ON_PAGE"
14569	//   "PARTIAL_SUCCESS"
14570	//   "REQUIRED_TOS_AGREEMENT"
14571	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14572	//   "RESOURCE_NOT_DELETED"
14573	//   "SCHEMA_VALIDATION_IGNORED"
14574	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14575	//   "UNDECLARED_PROPERTIES"
14576	//   "UNREACHABLE"
14577	Code string `json:"code,omitempty"`
14578
14579	// Data: [Output Only] Metadata about this warning in key: value format.
14580	// For example:
14581	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14582	Data []*ImageListWarningData `json:"data,omitempty"`
14583
14584	// Message: [Output Only] A human-readable description of the warning
14585	// code.
14586	Message string `json:"message,omitempty"`
14587
14588	// ForceSendFields is a list of field names (e.g. "Code") to
14589	// unconditionally include in API requests. By default, fields with
14590	// empty values are omitted from API requests. However, any non-pointer,
14591	// non-interface field appearing in ForceSendFields will be sent to the
14592	// server regardless of whether the field is empty or not. This may be
14593	// used to include empty fields in Patch requests.
14594	ForceSendFields []string `json:"-"`
14595
14596	// NullFields is a list of field names (e.g. "Code") to include in API
14597	// requests with the JSON null value. By default, fields with empty
14598	// values are omitted from API requests. However, any field with an
14599	// empty value appearing in NullFields will be sent to the server as
14600	// null. It is an error if a field in this list has a non-empty value.
14601	// This may be used to include null fields in Patch requests.
14602	NullFields []string `json:"-"`
14603}
14604
14605func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
14606	type NoMethod ImageListWarning
14607	raw := NoMethod(*s)
14608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14609}
14610
14611type ImageListWarningData struct {
14612	// Key: [Output Only] A key that provides more detail on the warning
14613	// being returned. For example, for warnings where there are no results
14614	// in a list request for a particular zone, this key might be scope and
14615	// the key value might be the zone name. Other examples might be a key
14616	// indicating a deprecated resource and a suggested replacement, or a
14617	// warning about invalid network settings (for example, if an instance
14618	// attempts to perform IP forwarding but is not enabled for IP
14619	// forwarding).
14620	Key string `json:"key,omitempty"`
14621
14622	// Value: [Output Only] A warning data value corresponding to the key.
14623	Value string `json:"value,omitempty"`
14624
14625	// ForceSendFields is a list of field names (e.g. "Key") to
14626	// unconditionally include in API requests. By default, fields with
14627	// empty values are omitted from API requests. However, any non-pointer,
14628	// non-interface field appearing in ForceSendFields will be sent to the
14629	// server regardless of whether the field is empty or not. This may be
14630	// used to include empty fields in Patch requests.
14631	ForceSendFields []string `json:"-"`
14632
14633	// NullFields is a list of field names (e.g. "Key") to include in API
14634	// requests with the JSON null value. By default, fields with empty
14635	// values are omitted from API requests. However, any field with an
14636	// empty value appearing in NullFields will be sent to the server as
14637	// null. It is an error if a field in this list has a non-empty value.
14638	// This may be used to include null fields in Patch requests.
14639	NullFields []string `json:"-"`
14640}
14641
14642func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
14643	type NoMethod ImageListWarningData
14644	raw := NoMethod(*s)
14645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14646}
14647
14648// InPlaceSnapshot: Represents a InPlaceSnapshot resource.
14649//
14650// You can use in-place snapshots to create disk rollback points
14651// quickly.. (== resource_for {$api_version}.inPlaceSnapshots ==)
14652type InPlaceSnapshot struct {
14653	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14654	// format.
14655	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14656
14657	// Description: An optional description of this resource. Provide this
14658	// property when you create the resource.
14659	Description string `json:"description,omitempty"`
14660
14661	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
14662	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
14663
14664	// GuestFlush: Specifies to create an application consistent in-place
14665	// snapshot by informing the OS to prepare for the snapshot process.
14666	// Currently only supported on Windows instances using the Volume Shadow
14667	// Copy Service (VSS).
14668	GuestFlush bool `json:"guestFlush,omitempty"`
14669
14670	// Id: [Output Only] The unique identifier for the resource. This
14671	// identifier is defined by the server.
14672	Id uint64 `json:"id,omitempty,string"`
14673
14674	// Kind: [Output Only] Type of the resource. Always
14675	// compute#inPlaceSnapshot for InPlaceSnapshot resources.
14676	Kind string `json:"kind,omitempty"`
14677
14678	// LabelFingerprint: A fingerprint for the labels being applied to this
14679	// InPlaceSnapshot, which is essentially a hash of the labels set used
14680	// for optimistic locking. The fingerprint is initially generated by
14681	// Compute Engine and changes after every request to modify or update
14682	// labels. You must always provide an up-to-date fingerprint hash in
14683	// order to update or change labels, otherwise the request will fail
14684	// with error 412 conditionNotMet.
14685	//
14686	// To see the latest fingerprint, make a get() request to retrieve a
14687	// InPlaceSnapshot.
14688	LabelFingerprint string `json:"labelFingerprint,omitempty"`
14689
14690	// Labels: Labels to apply to this InPlaceSnapshot. These can be later
14691	// modified by the setLabels method. Label values may be empty.
14692	Labels map[string]string `json:"labels,omitempty"`
14693
14694	// Name: Name of the resource; provided by the client when the resource
14695	// is created. The name must be 1-63 characters long, and comply with
14696	// RFC1035. Specifically, the name must be 1-63 characters long and
14697	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14698	// the first character must be a lowercase letter, and all following
14699	// characters must be a dash, lowercase letter, or digit, except the
14700	// last character, which cannot be a dash.
14701	Name string `json:"name,omitempty"`
14702
14703	// Region: [Output Only] URL of the region where the in-place snapshot
14704	// resides. You must specify this field as part of the HTTP request URL.
14705	// It is not settable as a field in the request body.
14706	Region string `json:"region,omitempty"`
14707
14708	// SelfLink: [Output Only] Server-defined URL for the resource.
14709	SelfLink string `json:"selfLink,omitempty"`
14710
14711	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
14712	// resource id.
14713	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14714
14715	// SourceDisk: URL of the source disk used to create this in-place
14716	// snapshot. Note that the source disk must be in the same zone/region
14717	// as the in-place snapshot to be created. This can be a full or valid
14718	// partial URL. For example, the following are valid values:
14719	// -
14720	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
14721	// - projects/project/zones/zone/disks/disk
14722	// - zones/zone/disks/disk
14723	SourceDisk string `json:"sourceDisk,omitempty"`
14724
14725	// SourceDiskId: [Output Only] The ID value of the disk used to create
14726	// this InPlaceSnapshot. This value may be used to determine whether the
14727	// InPlaceSnapshot was taken from the current or a previous instance of
14728	// a given disk name.
14729	SourceDiskId string `json:"sourceDiskId,omitempty"`
14730
14731	// Status: [Output Only] The status of the inPlaceSnapshot. This can be
14732	// CREATING, DELETING, FAILED, or READY.
14733	//
14734	// Possible values:
14735	//   "CREATING"
14736	//   "DELETING"
14737	//   "FAILED"
14738	//   "READY"
14739	Status string `json:"status,omitempty"`
14740
14741	// Zone: [Output Only] URL of the zone where the in-place snapshot
14742	// resides. You must specify this field as part of the HTTP request URL.
14743	// It is not settable as a field in the request body.
14744	Zone string `json:"zone,omitempty"`
14745
14746	// ServerResponse contains the HTTP response code and headers from the
14747	// server.
14748	googleapi.ServerResponse `json:"-"`
14749
14750	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
14751	// to unconditionally include in API requests. By default, fields with
14752	// empty values are omitted from API requests. However, any non-pointer,
14753	// non-interface field appearing in ForceSendFields will be sent to the
14754	// server regardless of whether the field is empty or not. This may be
14755	// used to include empty fields in Patch requests.
14756	ForceSendFields []string `json:"-"`
14757
14758	// NullFields is a list of field names (e.g. "CreationTimestamp") to
14759	// include in API requests with the JSON null value. By default, fields
14760	// with empty values are omitted from API requests. However, any field
14761	// with an empty value appearing in NullFields will be sent to the
14762	// server as null. It is an error if a field in this list has a
14763	// non-empty value. This may be used to include null fields in Patch
14764	// requests.
14765	NullFields []string `json:"-"`
14766}
14767
14768func (s *InPlaceSnapshot) MarshalJSON() ([]byte, error) {
14769	type NoMethod InPlaceSnapshot
14770	raw := NoMethod(*s)
14771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14772}
14773
14774// InPlaceSnapshotList: Contains a list of InPlaceSnapshot resources.
14775type InPlaceSnapshotList struct {
14776	// Id: [Output Only] Unique identifier for the resource; defined by the
14777	// server.
14778	Id string `json:"id,omitempty"`
14779
14780	// Items: A list of InPlaceSnapshot resources.
14781	Items []*InPlaceSnapshot `json:"items,omitempty"`
14782
14783	// Kind: Type of resource.
14784	Kind string `json:"kind,omitempty"`
14785
14786	// NextPageToken: [Output Only] This token allows you to get the next
14787	// page of results for list requests. If the number of results is larger
14788	// than maxResults, use the nextPageToken as a value for the query
14789	// parameter pageToken in the next list request. Subsequent list
14790	// requests will have their own nextPageToken to continue paging through
14791	// the results.
14792	NextPageToken string `json:"nextPageToken,omitempty"`
14793
14794	// SelfLink: [Output Only] Server-defined URL for this resource.
14795	SelfLink string `json:"selfLink,omitempty"`
14796
14797	// Warning: [Output Only] Informational warning message.
14798	Warning *InPlaceSnapshotListWarning `json:"warning,omitempty"`
14799
14800	// ServerResponse contains the HTTP response code and headers from the
14801	// server.
14802	googleapi.ServerResponse `json:"-"`
14803
14804	// ForceSendFields is a list of field names (e.g. "Id") to
14805	// unconditionally include in API requests. By default, fields with
14806	// empty values are omitted from API requests. However, any non-pointer,
14807	// non-interface field appearing in ForceSendFields will be sent to the
14808	// server regardless of whether the field is empty or not. This may be
14809	// used to include empty fields in Patch requests.
14810	ForceSendFields []string `json:"-"`
14811
14812	// NullFields is a list of field names (e.g. "Id") to include in API
14813	// requests with the JSON null value. By default, fields with empty
14814	// values are omitted from API requests. However, any field with an
14815	// empty value appearing in NullFields will be sent to the server as
14816	// null. It is an error if a field in this list has a non-empty value.
14817	// This may be used to include null fields in Patch requests.
14818	NullFields []string `json:"-"`
14819}
14820
14821func (s *InPlaceSnapshotList) MarshalJSON() ([]byte, error) {
14822	type NoMethod InPlaceSnapshotList
14823	raw := NoMethod(*s)
14824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14825}
14826
14827// InPlaceSnapshotListWarning: [Output Only] Informational warning
14828// message.
14829type InPlaceSnapshotListWarning struct {
14830	// Code: [Output Only] A warning code, if applicable. For example,
14831	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14832	// the response.
14833	//
14834	// Possible values:
14835	//   "CLEANUP_FAILED"
14836	//   "DEPRECATED_RESOURCE_USED"
14837	//   "DEPRECATED_TYPE_USED"
14838	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14839	//   "EXPERIMENTAL_TYPE_USED"
14840	//   "EXTERNAL_API_WARNING"
14841	//   "FIELD_VALUE_OVERRIDEN"
14842	//   "INJECTED_KERNELS_DEPRECATED"
14843	//   "MISSING_TYPE_DEPENDENCY"
14844	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14845	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14846	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14847	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14848	//   "NEXT_HOP_NOT_RUNNING"
14849	//   "NOT_CRITICAL_ERROR"
14850	//   "NO_RESULTS_ON_PAGE"
14851	//   "PARTIAL_SUCCESS"
14852	//   "REQUIRED_TOS_AGREEMENT"
14853	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14854	//   "RESOURCE_NOT_DELETED"
14855	//   "SCHEMA_VALIDATION_IGNORED"
14856	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14857	//   "UNDECLARED_PROPERTIES"
14858	//   "UNREACHABLE"
14859	Code string `json:"code,omitempty"`
14860
14861	// Data: [Output Only] Metadata about this warning in key: value format.
14862	// For example:
14863	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14864	Data []*InPlaceSnapshotListWarningData `json:"data,omitempty"`
14865
14866	// Message: [Output Only] A human-readable description of the warning
14867	// code.
14868	Message string `json:"message,omitempty"`
14869
14870	// ForceSendFields is a list of field names (e.g. "Code") to
14871	// unconditionally include in API requests. By default, fields with
14872	// empty values are omitted from API requests. However, any non-pointer,
14873	// non-interface field appearing in ForceSendFields will be sent to the
14874	// server regardless of whether the field is empty or not. This may be
14875	// used to include empty fields in Patch requests.
14876	ForceSendFields []string `json:"-"`
14877
14878	// NullFields is a list of field names (e.g. "Code") to include in API
14879	// requests with the JSON null value. By default, fields with empty
14880	// values are omitted from API requests. However, any field with an
14881	// empty value appearing in NullFields will be sent to the server as
14882	// null. It is an error if a field in this list has a non-empty value.
14883	// This may be used to include null fields in Patch requests.
14884	NullFields []string `json:"-"`
14885}
14886
14887func (s *InPlaceSnapshotListWarning) MarshalJSON() ([]byte, error) {
14888	type NoMethod InPlaceSnapshotListWarning
14889	raw := NoMethod(*s)
14890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14891}
14892
14893type InPlaceSnapshotListWarningData struct {
14894	// Key: [Output Only] A key that provides more detail on the warning
14895	// being returned. For example, for warnings where there are no results
14896	// in a list request for a particular zone, this key might be scope and
14897	// the key value might be the zone name. Other examples might be a key
14898	// indicating a deprecated resource and a suggested replacement, or a
14899	// warning about invalid network settings (for example, if an instance
14900	// attempts to perform IP forwarding but is not enabled for IP
14901	// forwarding).
14902	Key string `json:"key,omitempty"`
14903
14904	// Value: [Output Only] A warning data value corresponding to the key.
14905	Value string `json:"value,omitempty"`
14906
14907	// ForceSendFields is a list of field names (e.g. "Key") to
14908	// unconditionally include in API requests. By default, fields with
14909	// empty values are omitted from API requests. However, any non-pointer,
14910	// non-interface field appearing in ForceSendFields will be sent to the
14911	// server regardless of whether the field is empty or not. This may be
14912	// used to include empty fields in Patch requests.
14913	ForceSendFields []string `json:"-"`
14914
14915	// NullFields is a list of field names (e.g. "Key") to include in API
14916	// requests with the JSON null value. By default, fields with empty
14917	// values are omitted from API requests. However, any field with an
14918	// empty value appearing in NullFields will be sent to the server as
14919	// null. It is an error if a field in this list has a non-empty value.
14920	// This may be used to include null fields in Patch requests.
14921	NullFields []string `json:"-"`
14922}
14923
14924func (s *InPlaceSnapshotListWarningData) MarshalJSON() ([]byte, error) {
14925	type NoMethod InPlaceSnapshotListWarningData
14926	raw := NoMethod(*s)
14927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14928}
14929
14930// InitialStateConfig: Initial State for shielded instance, these are
14931// public keys which are safe to store in public
14932type InitialStateConfig struct {
14933	// Dbs: The Key Database (db).
14934	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
14935
14936	// Dbxs: The forbidden key database (dbx).
14937	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
14938
14939	// Keks: The Key Exchange Key (KEK).
14940	Keks []*FileContentBuffer `json:"keks,omitempty"`
14941
14942	// Pk: The Platform Key (PK).
14943	Pk *FileContentBuffer `json:"pk,omitempty"`
14944
14945	// ForceSendFields is a list of field names (e.g. "Dbs") to
14946	// unconditionally include in API requests. By default, fields with
14947	// empty values are omitted from API requests. However, any non-pointer,
14948	// non-interface field appearing in ForceSendFields will be sent to the
14949	// server regardless of whether the field is empty or not. This may be
14950	// used to include empty fields in Patch requests.
14951	ForceSendFields []string `json:"-"`
14952
14953	// NullFields is a list of field names (e.g. "Dbs") to include in API
14954	// requests with the JSON null value. By default, fields with empty
14955	// values are omitted from API requests. However, any field with an
14956	// empty value appearing in NullFields will be sent to the server as
14957	// null. It is an error if a field in this list has a non-empty value.
14958	// This may be used to include null fields in Patch requests.
14959	NullFields []string `json:"-"`
14960}
14961
14962func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
14963	type NoMethod InitialStateConfig
14964	raw := NoMethod(*s)
14965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14966}
14967
14968// Instance: Represents an Instance resource.
14969//
14970// An instance is a virtual machine that is hosted on Google Cloud
14971// Platform. For more information, read Virtual Machine Instances. (==
14972// resource_for {$api_version}.instances ==)
14973type Instance struct {
14974	// CanIpForward: Allows this instance to send and receive packets with
14975	// non-matching destination or source IPs. This is required if you plan
14976	// to use this instance to forward routes. For more information, see
14977	// Enabling IP Forwarding.
14978	CanIpForward bool `json:"canIpForward,omitempty"`
14979
14980	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
14981
14982	// CpuPlatform: [Output Only] The CPU platform used by this instance.
14983	CpuPlatform string `json:"cpuPlatform,omitempty"`
14984
14985	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14986	// format.
14987	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14988
14989	// DeletionProtection: Whether the resource should be protected against
14990	// deletion.
14991	DeletionProtection bool `json:"deletionProtection,omitempty"`
14992
14993	// Description: An optional description of this resource. Provide this
14994	// property when you create the resource.
14995	Description string `json:"description,omitempty"`
14996
14997	// Disks: Array of disks associated with this instance. Persistent disks
14998	// must be created before you can assign them.
14999	Disks []*AttachedDisk `json:"disks,omitempty"`
15000
15001	// DisplayDevice: Enables display device for the instance.
15002	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
15003
15004	// EraseWindowsVssSignature: Specifies whether the disks restored from
15005	// source snapshots or source machine image should erase Windows
15006	// specific VSS signature.
15007	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
15008
15009	// Fingerprint: Specifies a fingerprint for this resource, which is
15010	// essentially a hash of the instance's contents and used for optimistic
15011	// locking. The fingerprint is initially generated by Compute Engine and
15012	// changes after every request to modify or update the instance. You
15013	// must always provide an up-to-date fingerprint hash in order to update
15014	// the instance.
15015	//
15016	// To see the latest fingerprint, make get() request to the instance.
15017	Fingerprint string `json:"fingerprint,omitempty"`
15018
15019	// GuestAccelerators: A list of the type and count of accelerator cards
15020	// attached to the instance.
15021	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
15022
15023	// Hostname: Specifies the hostname of the instance. The specified
15024	// hostname must be RFC1035 compliant. If hostname is not specified, the
15025	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
15026	// using the global DNS, and
15027	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
15028	Hostname string `json:"hostname,omitempty"`
15029
15030	// Id: [Output Only] The unique identifier for the resource. This
15031	// identifier is defined by the server.
15032	Id uint64 `json:"id,omitempty,string"`
15033
15034	// InstanceEncryptionKey: Encrypts or decrypts data for an instance with
15035	// a customer-supplied encryption key.
15036	//
15037	// If you are creating a new instance, this field encrypts the local SSD
15038	// and in-memory contents of the instance using a key that you
15039	// provide.
15040	//
15041	// If you are restarting an instance protected with a customer-supplied
15042	// encryption key, you must provide the correct key in order to
15043	// successfully restart the instance.
15044	//
15045	// If you do not provide an encryption key when creating the instance,
15046	// then the local SSD and in-memory contents will be encrypted using an
15047	// automatically generated key and you do not need to provide a key to
15048	// start the instance later.
15049	//
15050	// Instance templates do not store customer-supplied encryption keys, so
15051	// you cannot use your own keys to encrypt local SSDs and in-memory
15052	// content in a managed instance group.
15053	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
15054
15055	// Kind: [Output Only] Type of the resource. Always compute#instance for
15056	// instances.
15057	Kind string `json:"kind,omitempty"`
15058
15059	// LabelFingerprint: A fingerprint for this request, which is
15060	// essentially a hash of the label's contents and used for optimistic
15061	// locking. The fingerprint is initially generated by Compute Engine and
15062	// changes after every request to modify or update labels. You must
15063	// always provide an up-to-date fingerprint hash in order to update or
15064	// change labels.
15065	//
15066	// To see the latest fingerprint, make get() request to the instance.
15067	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15068
15069	// Labels: Labels to apply to this instance. These can be later modified
15070	// by the setLabels method.
15071	Labels map[string]string `json:"labels,omitempty"`
15072
15073	// MachineType: Full or partial URL of the machine type resource to use
15074	// for this instance, in the format:
15075	// zones/zone/machineTypes/machine-type. This is provided by the client
15076	// when the instance is created. For example, the following is a valid
15077	// partial url to a predefined machine
15078	// type:
15079	// zones/us-central1-f/machineTypes/n1-standard-1
15080	//
15081	//
15082	// To create a custom machine type, provide a URL to a machine type in
15083	// the following format, where CPUS is 1 or an even number up to 32 (2,
15084	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
15085	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
15086	// 5 GB of memory is 5120
15087	// MB):
15088	// zones/zone/machineTypes/custom-CPUS-MEMORY
15089	//
15090	//
15091	// For example: zones/us-central1-f/machineTypes/custom-4-5120
15092	//
15093	// For a full list of restrictions, read the Specifications for custom
15094	// machine types.
15095	MachineType string `json:"machineType,omitempty"`
15096
15097	// Metadata: The metadata key/value pairs assigned to this instance.
15098	// This includes custom metadata and predefined keys.
15099	Metadata *Metadata `json:"metadata,omitempty"`
15100
15101	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
15102	// Applicable values are the friendly names of CPU platforms, such as
15103	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
15104	// Bridge".
15105	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
15106
15107	// Name: The name of the resource, provided by the client when initially
15108	// creating the resource. The resource name must be 1-63 characters
15109	// long, and comply with RFC1035. Specifically, the name must be 1-63
15110	// characters long and match the regular expression
15111	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
15112	// a lowercase letter, and all following characters must be a dash,
15113	// lowercase letter, or digit, except the last character, which cannot
15114	// be a dash.
15115	Name string `json:"name,omitempty"`
15116
15117	// NetworkInterfaces: An array of network configurations for this
15118	// instance. These specify how interfaces are configured to interact
15119	// with other network services, such as connecting to the internet.
15120	// Multiple interfaces are supported per instance.
15121	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
15122
15123	// PostKeyRevocationActionType: Specifies whether this instance will be
15124	// shut down on key revocation.
15125	//
15126	// Possible values:
15127	//   "NOOP"
15128	//   "SHUTDOWN"
15129	//   "UNSPECIFIED"
15130	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
15131
15132	// PreservedStateSizeGb: Total amount of preserved state for SUSPENDED
15133	// instances. Read-only in the api.
15134	PreservedStateSizeGb int64 `json:"preservedStateSizeGb,omitempty,string"`
15135
15136	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
15137	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
15138	//
15139	// Possible values:
15140	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
15141	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
15142	//   "INHERIT_FROM_SUBNETWORK"
15143	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
15144
15145	// ReservationAffinity: Specifies the reservations that this instance
15146	// can consume from.
15147	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
15148
15149	// ResourcePolicies: Resource policies applied to this instance.
15150	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
15151
15152	// Scheduling: Sets the scheduling options for this instance.
15153	Scheduling *Scheduling `json:"scheduling,omitempty"`
15154
15155	// SelfLink: [Output Only] Server-defined URL for this resource.
15156	SelfLink string `json:"selfLink,omitempty"`
15157
15158	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
15159	// with the resource id.
15160	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
15161
15162	// ServiceAccounts: A list of service accounts, with their specified
15163	// scopes, authorized for this instance. Only one service account per VM
15164	// instance is supported.
15165	//
15166	// Service accounts generate access tokens that can be accessed through
15167	// the metadata server and used to authenticate applications on the
15168	// instance. See Service Accounts for more information.
15169	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
15170
15171	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
15172
15173	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
15174
15175	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
15176
15177	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
15178
15179	// SourceMachineImage: Source machine image
15180	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
15181
15182	// SourceMachineImageEncryptionKey: Source GMI encryption key when
15183	// creating an instance from GMI.
15184	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
15185
15186	// StartRestricted: [Output Only] Whether a VM has been restricted for
15187	// start because Compute Engine has detected suspicious activity.
15188	StartRestricted bool `json:"startRestricted,omitempty"`
15189
15190	// Status: [Output Only] The status of the instance. One of the
15191	// following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
15192	// SUSPENDING, SUSPENDED, and TERMINATED.
15193	//
15194	// Possible values:
15195	//   "DEPROVISIONING"
15196	//   "PROVISIONING"
15197	//   "REPAIRING"
15198	//   "RUNNING"
15199	//   "STAGING"
15200	//   "STOPPED"
15201	//   "STOPPING"
15202	//   "SUSPENDED"
15203	//   "SUSPENDING"
15204	//   "TERMINATED"
15205	Status string `json:"status,omitempty"`
15206
15207	// StatusMessage: [Output Only] An optional, human-readable explanation
15208	// of the status.
15209	StatusMessage string `json:"statusMessage,omitempty"`
15210
15211	// Tags: Tags to apply to this instance. Tags are used to identify valid
15212	// sources or targets for network firewalls and are specified by the
15213	// client during instance creation. The tags can be later modified by
15214	// the setTags method. Each tag within the list must comply with
15215	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
15216	Tags *Tags `json:"tags,omitempty"`
15217
15218	// UpcomingMaintenance: [Output Only] Specifies upcoming maintenance for
15219	// the instance.
15220	UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"`
15221
15222	// Zone: [Output Only] URL of the zone where the instance resides. You
15223	// must specify this field as part of the HTTP request URL. It is not
15224	// settable as a field in the request body.
15225	Zone string `json:"zone,omitempty"`
15226
15227	// ServerResponse contains the HTTP response code and headers from the
15228	// server.
15229	googleapi.ServerResponse `json:"-"`
15230
15231	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
15232	// unconditionally include in API requests. By default, fields with
15233	// empty values are omitted from API requests. However, any non-pointer,
15234	// non-interface field appearing in ForceSendFields will be sent to the
15235	// server regardless of whether the field is empty or not. This may be
15236	// used to include empty fields in Patch requests.
15237	ForceSendFields []string `json:"-"`
15238
15239	// NullFields is a list of field names (e.g. "CanIpForward") to include
15240	// in API requests with the JSON null value. By default, fields with
15241	// empty values are omitted from API requests. However, any field with
15242	// an 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 *Instance) MarshalJSON() ([]byte, error) {
15249	type NoMethod Instance
15250	raw := NoMethod(*s)
15251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15252}
15253
15254type InstanceAggregatedList struct {
15255	// Id: [Output Only] Unique identifier for the resource; defined by the
15256	// server.
15257	Id string `json:"id,omitempty"`
15258
15259	// Items: An object that contains a list of instances scoped by zone.
15260	Items map[string]InstancesScopedList `json:"items,omitempty"`
15261
15262	// Kind: [Output Only] Type of resource. Always
15263	// compute#instanceAggregatedList for aggregated lists of Instance
15264	// resources.
15265	Kind string `json:"kind,omitempty"`
15266
15267	// NextPageToken: [Output Only] This token allows you to get the next
15268	// page of results for list requests. If the number of results is larger
15269	// than maxResults, use the nextPageToken as a value for the query
15270	// parameter pageToken in the next list request. Subsequent list
15271	// requests will have their own nextPageToken to continue paging through
15272	// the results.
15273	NextPageToken string `json:"nextPageToken,omitempty"`
15274
15275	// SelfLink: [Output Only] Server-defined URL for this resource.
15276	SelfLink string `json:"selfLink,omitempty"`
15277
15278	// Unreachables: [Output Only] Unreachable resources.
15279	Unreachables []string `json:"unreachables,omitempty"`
15280
15281	// Warning: [Output Only] Informational warning message.
15282	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
15283
15284	// ServerResponse contains the HTTP response code and headers from the
15285	// server.
15286	googleapi.ServerResponse `json:"-"`
15287
15288	// ForceSendFields is a list of field names (e.g. "Id") to
15289	// unconditionally include in API requests. By default, fields with
15290	// empty values are omitted from API requests. However, any non-pointer,
15291	// non-interface field appearing in ForceSendFields will be sent to the
15292	// server regardless of whether the field is empty or not. This may be
15293	// used to include empty fields in Patch requests.
15294	ForceSendFields []string `json:"-"`
15295
15296	// NullFields is a list of field names (e.g. "Id") to include in API
15297	// requests with the JSON null value. By default, fields with empty
15298	// values are omitted from API requests. However, any field with an
15299	// empty value appearing in NullFields will be sent to the server as
15300	// null. It is an error if a field in this list has a non-empty value.
15301	// This may be used to include null fields in Patch requests.
15302	NullFields []string `json:"-"`
15303}
15304
15305func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
15306	type NoMethod InstanceAggregatedList
15307	raw := NoMethod(*s)
15308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15309}
15310
15311// InstanceAggregatedListWarning: [Output Only] Informational warning
15312// message.
15313type InstanceAggregatedListWarning struct {
15314	// Code: [Output Only] A warning code, if applicable. For example,
15315	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15316	// the response.
15317	//
15318	// Possible values:
15319	//   "CLEANUP_FAILED"
15320	//   "DEPRECATED_RESOURCE_USED"
15321	//   "DEPRECATED_TYPE_USED"
15322	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15323	//   "EXPERIMENTAL_TYPE_USED"
15324	//   "EXTERNAL_API_WARNING"
15325	//   "FIELD_VALUE_OVERRIDEN"
15326	//   "INJECTED_KERNELS_DEPRECATED"
15327	//   "MISSING_TYPE_DEPENDENCY"
15328	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15329	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15330	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15331	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15332	//   "NEXT_HOP_NOT_RUNNING"
15333	//   "NOT_CRITICAL_ERROR"
15334	//   "NO_RESULTS_ON_PAGE"
15335	//   "PARTIAL_SUCCESS"
15336	//   "REQUIRED_TOS_AGREEMENT"
15337	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15338	//   "RESOURCE_NOT_DELETED"
15339	//   "SCHEMA_VALIDATION_IGNORED"
15340	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15341	//   "UNDECLARED_PROPERTIES"
15342	//   "UNREACHABLE"
15343	Code string `json:"code,omitempty"`
15344
15345	// Data: [Output Only] Metadata about this warning in key: value format.
15346	// For example:
15347	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15348	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
15349
15350	// Message: [Output Only] A human-readable description of the warning
15351	// code.
15352	Message string `json:"message,omitempty"`
15353
15354	// ForceSendFields is a list of field names (e.g. "Code") to
15355	// unconditionally include in API requests. By default, fields with
15356	// empty values are omitted from API requests. However, any non-pointer,
15357	// non-interface field appearing in ForceSendFields will be sent to the
15358	// server regardless of whether the field is empty or not. This may be
15359	// used to include empty fields in Patch requests.
15360	ForceSendFields []string `json:"-"`
15361
15362	// NullFields is a list of field names (e.g. "Code") to include in API
15363	// requests with the JSON null value. By default, fields with empty
15364	// values are omitted from API requests. However, any field with an
15365	// empty value appearing in NullFields will be sent to the server as
15366	// null. It is an error if a field in this list has a non-empty value.
15367	// This may be used to include null fields in Patch requests.
15368	NullFields []string `json:"-"`
15369}
15370
15371func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
15372	type NoMethod InstanceAggregatedListWarning
15373	raw := NoMethod(*s)
15374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15375}
15376
15377type InstanceAggregatedListWarningData struct {
15378	// Key: [Output Only] A key that provides more detail on the warning
15379	// being returned. For example, for warnings where there are no results
15380	// in a list request for a particular zone, this key might be scope and
15381	// the key value might be the zone name. Other examples might be a key
15382	// indicating a deprecated resource and a suggested replacement, or a
15383	// warning about invalid network settings (for example, if an instance
15384	// attempts to perform IP forwarding but is not enabled for IP
15385	// forwarding).
15386	Key string `json:"key,omitempty"`
15387
15388	// Value: [Output Only] A warning data value corresponding to the key.
15389	Value string `json:"value,omitempty"`
15390
15391	// ForceSendFields is a list of field names (e.g. "Key") to
15392	// unconditionally include in API requests. By default, fields with
15393	// empty values are omitted from API requests. However, any non-pointer,
15394	// non-interface field appearing in ForceSendFields will be sent to the
15395	// server regardless of whether the field is empty or not. This may be
15396	// used to include empty fields in Patch requests.
15397	ForceSendFields []string `json:"-"`
15398
15399	// NullFields is a list of field names (e.g. "Key") to include in API
15400	// requests with the JSON null value. By default, fields with empty
15401	// values are omitted from API requests. However, any field with an
15402	// empty value appearing in NullFields will be sent to the server as
15403	// null. It is an error if a field in this list has a non-empty value.
15404	// This may be used to include null fields in Patch requests.
15405	NullFields []string `json:"-"`
15406}
15407
15408func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15409	type NoMethod InstanceAggregatedListWarningData
15410	raw := NoMethod(*s)
15411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15412}
15413
15414// InstanceGroup: Represents an Instance Group resource.
15415//
15416// Instance Groups can be used to configure a target for load
15417// balancing.
15418//
15419// Instance groups can either be managed or unmanaged.
15420//
15421// To create  managed instance groups, use the instanceGroupManager or
15422// regionInstanceGroupManager resource instead.
15423//
15424// Use zonal unmanaged instance groups if you need to apply load
15425// balancing to groups of heterogeneous instances or if you need to
15426// manage the instances yourself. You cannot create regional unmanaged
15427// instance groups.
15428//
15429// For more information, read Instance groups.
15430//
15431// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
15432// {$api_version}.regionInstanceGroups ==)
15433type InstanceGroup struct {
15434	// CreationTimestamp: [Output Only] The creation timestamp for this
15435	// instance group in RFC3339 text format.
15436	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15437
15438	// Description: An optional description of this resource. Provide this
15439	// property when you create the resource.
15440	Description string `json:"description,omitempty"`
15441
15442	// Fingerprint: [Output Only] The fingerprint of the named ports. The
15443	// system uses this fingerprint to detect conflicts when multiple users
15444	// change the named ports concurrently.
15445	Fingerprint string `json:"fingerprint,omitempty"`
15446
15447	// Id: [Output Only] A unique identifier for this instance group,
15448	// generated by the server.
15449	Id uint64 `json:"id,omitempty,string"`
15450
15451	// Kind: [Output Only] The resource type, which is always
15452	// compute#instanceGroup for instance groups.
15453	Kind string `json:"kind,omitempty"`
15454
15455	// Name: The name of the instance group. The name must be 1-63
15456	// characters long, and comply with RFC1035.
15457	Name string `json:"name,omitempty"`
15458
15459	// NamedPorts: Assigns a name to a port number. For example: {name:
15460	// "http", port: 80}
15461	//
15462	// This allows the system to reference ports by the assigned name
15463	// instead of a port number. Named ports can also contain multiple
15464	// ports. For example: [{name: "http", port: 80},{name: "http", port:
15465	// 8080}]
15466	//
15467	// Named ports apply to all instances in this instance group.
15468	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
15469
15470	// Network: [Output Only] The URL of the network to which all instances
15471	// in the instance group belong. If your instance has multiple network
15472	// interfaces, then the network and subnetwork fields only refer to the
15473	// network and subnet used by your primary interface (nic0).
15474	Network string `json:"network,omitempty"`
15475
15476	// Region: [Output Only] The URL of the region where the instance group
15477	// is located (for regional resources).
15478	Region string `json:"region,omitempty"`
15479
15480	// SelfLink: [Output Only] The URL for this instance group. The server
15481	// generates this URL.
15482	SelfLink string `json:"selfLink,omitempty"`
15483
15484	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
15485	// with the resource id.
15486	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
15487
15488	// Size: [Output Only] The total number of instances in the instance
15489	// group.
15490	Size int64 `json:"size,omitempty"`
15491
15492	// Subnetwork: [Output Only] The URL of the subnetwork to which all
15493	// instances in the instance group belong. If your instance has multiple
15494	// network interfaces, then the network and subnetwork fields only refer
15495	// to the network and subnet used by your primary interface (nic0).
15496	Subnetwork string `json:"subnetwork,omitempty"`
15497
15498	// Zone: [Output Only] The URL of the zone where the instance group is
15499	// located (for zonal resources).
15500	Zone string `json:"zone,omitempty"`
15501
15502	// ServerResponse contains the HTTP response code and headers from the
15503	// server.
15504	googleapi.ServerResponse `json:"-"`
15505
15506	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
15507	// to unconditionally include in API requests. By default, fields with
15508	// empty values are omitted from API requests. However, any non-pointer,
15509	// non-interface field appearing in ForceSendFields will be sent to the
15510	// server regardless of whether the field is empty or not. This may be
15511	// used to include empty fields in Patch requests.
15512	ForceSendFields []string `json:"-"`
15513
15514	// NullFields is a list of field names (e.g. "CreationTimestamp") to
15515	// include in API requests with the JSON null value. By default, fields
15516	// with empty values are omitted from API requests. However, any field
15517	// with an empty value appearing in NullFields will be sent to the
15518	// server as null. It is an error if a field in this list has a
15519	// non-empty value. This may be used to include null fields in Patch
15520	// requests.
15521	NullFields []string `json:"-"`
15522}
15523
15524func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
15525	type NoMethod InstanceGroup
15526	raw := NoMethod(*s)
15527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15528}
15529
15530type InstanceGroupAggregatedList struct {
15531	// Id: [Output Only] Unique identifier for the resource; defined by the
15532	// server.
15533	Id string `json:"id,omitempty"`
15534
15535	// Items: A list of InstanceGroupsScopedList resources.
15536	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
15537
15538	// Kind: [Output Only] The resource type, which is always
15539	// compute#instanceGroupAggregatedList for aggregated lists of instance
15540	// groups.
15541	Kind string `json:"kind,omitempty"`
15542
15543	// NextPageToken: [Output Only] This token allows you to get the next
15544	// page of results for list requests. If the number of results is larger
15545	// than maxResults, use the nextPageToken as a value for the query
15546	// parameter pageToken in the next list request. Subsequent list
15547	// requests will have their own nextPageToken to continue paging through
15548	// the results.
15549	NextPageToken string `json:"nextPageToken,omitempty"`
15550
15551	// SelfLink: [Output Only] Server-defined URL for this resource.
15552	SelfLink string `json:"selfLink,omitempty"`
15553
15554	// Unreachables: [Output Only] Unreachable resources.
15555	Unreachables []string `json:"unreachables,omitempty"`
15556
15557	// Warning: [Output Only] Informational warning message.
15558	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
15559
15560	// ServerResponse contains the HTTP response code and headers from the
15561	// server.
15562	googleapi.ServerResponse `json:"-"`
15563
15564	// ForceSendFields is a list of field names (e.g. "Id") to
15565	// unconditionally include in API requests. By default, fields with
15566	// empty values are omitted from API requests. However, any non-pointer,
15567	// non-interface field appearing in ForceSendFields will be sent to the
15568	// server regardless of whether the field is empty or not. This may be
15569	// used to include empty fields in Patch requests.
15570	ForceSendFields []string `json:"-"`
15571
15572	// NullFields is a list of field names (e.g. "Id") to include in API
15573	// requests with the JSON null value. By default, fields with empty
15574	// values are omitted from API requests. However, any field with an
15575	// empty value appearing in NullFields will be sent to the server as
15576	// null. It is an error if a field in this list has a non-empty value.
15577	// This may be used to include null fields in Patch requests.
15578	NullFields []string `json:"-"`
15579}
15580
15581func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
15582	type NoMethod InstanceGroupAggregatedList
15583	raw := NoMethod(*s)
15584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15585}
15586
15587// InstanceGroupAggregatedListWarning: [Output Only] Informational
15588// warning message.
15589type InstanceGroupAggregatedListWarning struct {
15590	// Code: [Output Only] A warning code, if applicable. For example,
15591	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15592	// the response.
15593	//
15594	// Possible values:
15595	//   "CLEANUP_FAILED"
15596	//   "DEPRECATED_RESOURCE_USED"
15597	//   "DEPRECATED_TYPE_USED"
15598	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15599	//   "EXPERIMENTAL_TYPE_USED"
15600	//   "EXTERNAL_API_WARNING"
15601	//   "FIELD_VALUE_OVERRIDEN"
15602	//   "INJECTED_KERNELS_DEPRECATED"
15603	//   "MISSING_TYPE_DEPENDENCY"
15604	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15605	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15606	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15607	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15608	//   "NEXT_HOP_NOT_RUNNING"
15609	//   "NOT_CRITICAL_ERROR"
15610	//   "NO_RESULTS_ON_PAGE"
15611	//   "PARTIAL_SUCCESS"
15612	//   "REQUIRED_TOS_AGREEMENT"
15613	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15614	//   "RESOURCE_NOT_DELETED"
15615	//   "SCHEMA_VALIDATION_IGNORED"
15616	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15617	//   "UNDECLARED_PROPERTIES"
15618	//   "UNREACHABLE"
15619	Code string `json:"code,omitempty"`
15620
15621	// Data: [Output Only] Metadata about this warning in key: value format.
15622	// For example:
15623	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15624	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
15625
15626	// Message: [Output Only] A human-readable description of the warning
15627	// code.
15628	Message string `json:"message,omitempty"`
15629
15630	// ForceSendFields is a list of field names (e.g. "Code") to
15631	// unconditionally include in API requests. By default, fields with
15632	// empty values are omitted from API requests. However, any non-pointer,
15633	// non-interface field appearing in ForceSendFields will be sent to the
15634	// server regardless of whether the field is empty or not. This may be
15635	// used to include empty fields in Patch requests.
15636	ForceSendFields []string `json:"-"`
15637
15638	// NullFields is a list of field names (e.g. "Code") to include in API
15639	// requests with the JSON null value. By default, fields with empty
15640	// values are omitted from API requests. However, any field with an
15641	// empty value appearing in NullFields will be sent to the server as
15642	// null. It is an error if a field in this list has a non-empty value.
15643	// This may be used to include null fields in Patch requests.
15644	NullFields []string `json:"-"`
15645}
15646
15647func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
15648	type NoMethod InstanceGroupAggregatedListWarning
15649	raw := NoMethod(*s)
15650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15651}
15652
15653type InstanceGroupAggregatedListWarningData struct {
15654	// Key: [Output Only] A key that provides more detail on the warning
15655	// being returned. For example, for warnings where there are no results
15656	// in a list request for a particular zone, this key might be scope and
15657	// the key value might be the zone name. Other examples might be a key
15658	// indicating a deprecated resource and a suggested replacement, or a
15659	// warning about invalid network settings (for example, if an instance
15660	// attempts to perform IP forwarding but is not enabled for IP
15661	// forwarding).
15662	Key string `json:"key,omitempty"`
15663
15664	// Value: [Output Only] A warning data value corresponding to the key.
15665	Value string `json:"value,omitempty"`
15666
15667	// ForceSendFields is a list of field names (e.g. "Key") to
15668	// unconditionally include in API requests. By default, fields with
15669	// empty values are omitted from API requests. However, any non-pointer,
15670	// non-interface field appearing in ForceSendFields will be sent to the
15671	// server regardless of whether the field is empty or not. This may be
15672	// used to include empty fields in Patch requests.
15673	ForceSendFields []string `json:"-"`
15674
15675	// NullFields is a list of field names (e.g. "Key") to include in API
15676	// requests with the JSON null value. By default, fields with empty
15677	// values are omitted from API requests. However, any field with an
15678	// empty value appearing in NullFields will be sent to the server as
15679	// null. It is an error if a field in this list has a non-empty value.
15680	// This may be used to include null fields in Patch requests.
15681	NullFields []string `json:"-"`
15682}
15683
15684func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15685	type NoMethod InstanceGroupAggregatedListWarningData
15686	raw := NoMethod(*s)
15687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15688}
15689
15690// InstanceGroupList: A list of InstanceGroup resources.
15691type InstanceGroupList struct {
15692	// Id: [Output Only] Unique identifier for the resource; defined by the
15693	// server.
15694	Id string `json:"id,omitempty"`
15695
15696	// Items: A list of InstanceGroup resources.
15697	Items []*InstanceGroup `json:"items,omitempty"`
15698
15699	// Kind: [Output Only] The resource type, which is always
15700	// compute#instanceGroupList for instance group lists.
15701	Kind string `json:"kind,omitempty"`
15702
15703	// NextPageToken: [Output Only] This token allows you to get the next
15704	// page of results for list requests. If the number of results is larger
15705	// than maxResults, use the nextPageToken as a value for the query
15706	// parameter pageToken in the next list request. Subsequent list
15707	// requests will have their own nextPageToken to continue paging through
15708	// the results.
15709	NextPageToken string `json:"nextPageToken,omitempty"`
15710
15711	// SelfLink: [Output Only] Server-defined URL for this resource.
15712	SelfLink string `json:"selfLink,omitempty"`
15713
15714	// Warning: [Output Only] Informational warning message.
15715	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
15716
15717	// ServerResponse contains the HTTP response code and headers from the
15718	// server.
15719	googleapi.ServerResponse `json:"-"`
15720
15721	// ForceSendFields is a list of field names (e.g. "Id") to
15722	// unconditionally include in API requests. By default, fields with
15723	// empty values are omitted from API requests. However, any non-pointer,
15724	// non-interface field appearing in ForceSendFields will be sent to the
15725	// server regardless of whether the field is empty or not. This may be
15726	// used to include empty fields in Patch requests.
15727	ForceSendFields []string `json:"-"`
15728
15729	// NullFields is a list of field names (e.g. "Id") to include in API
15730	// requests with the JSON null value. By default, fields with empty
15731	// values are omitted from API requests. However, any field with an
15732	// empty value appearing in NullFields will be sent to the server as
15733	// null. It is an error if a field in this list has a non-empty value.
15734	// This may be used to include null fields in Patch requests.
15735	NullFields []string `json:"-"`
15736}
15737
15738func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
15739	type NoMethod InstanceGroupList
15740	raw := NoMethod(*s)
15741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15742}
15743
15744// InstanceGroupListWarning: [Output Only] Informational warning
15745// message.
15746type InstanceGroupListWarning struct {
15747	// Code: [Output Only] A warning code, if applicable. For example,
15748	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15749	// the response.
15750	//
15751	// Possible values:
15752	//   "CLEANUP_FAILED"
15753	//   "DEPRECATED_RESOURCE_USED"
15754	//   "DEPRECATED_TYPE_USED"
15755	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15756	//   "EXPERIMENTAL_TYPE_USED"
15757	//   "EXTERNAL_API_WARNING"
15758	//   "FIELD_VALUE_OVERRIDEN"
15759	//   "INJECTED_KERNELS_DEPRECATED"
15760	//   "MISSING_TYPE_DEPENDENCY"
15761	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15762	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15763	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15764	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15765	//   "NEXT_HOP_NOT_RUNNING"
15766	//   "NOT_CRITICAL_ERROR"
15767	//   "NO_RESULTS_ON_PAGE"
15768	//   "PARTIAL_SUCCESS"
15769	//   "REQUIRED_TOS_AGREEMENT"
15770	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15771	//   "RESOURCE_NOT_DELETED"
15772	//   "SCHEMA_VALIDATION_IGNORED"
15773	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15774	//   "UNDECLARED_PROPERTIES"
15775	//   "UNREACHABLE"
15776	Code string `json:"code,omitempty"`
15777
15778	// Data: [Output Only] Metadata about this warning in key: value format.
15779	// For example:
15780	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15781	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
15782
15783	// Message: [Output Only] A human-readable description of the warning
15784	// code.
15785	Message string `json:"message,omitempty"`
15786
15787	// ForceSendFields is a list of field names (e.g. "Code") to
15788	// unconditionally include in API requests. By default, fields with
15789	// empty values are omitted from API requests. However, any non-pointer,
15790	// non-interface field appearing in ForceSendFields will be sent to the
15791	// server regardless of whether the field is empty or not. This may be
15792	// used to include empty fields in Patch requests.
15793	ForceSendFields []string `json:"-"`
15794
15795	// NullFields is a list of field names (e.g. "Code") to include in API
15796	// requests with the JSON null value. By default, fields with empty
15797	// values are omitted from API requests. However, any field with an
15798	// empty value appearing in NullFields will be sent to the server as
15799	// null. It is an error if a field in this list has a non-empty value.
15800	// This may be used to include null fields in Patch requests.
15801	NullFields []string `json:"-"`
15802}
15803
15804func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
15805	type NoMethod InstanceGroupListWarning
15806	raw := NoMethod(*s)
15807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15808}
15809
15810type InstanceGroupListWarningData struct {
15811	// Key: [Output Only] A key that provides more detail on the warning
15812	// being returned. For example, for warnings where there are no results
15813	// in a list request for a particular zone, this key might be scope and
15814	// the key value might be the zone name. Other examples might be a key
15815	// indicating a deprecated resource and a suggested replacement, or a
15816	// warning about invalid network settings (for example, if an instance
15817	// attempts to perform IP forwarding but is not enabled for IP
15818	// forwarding).
15819	Key string `json:"key,omitempty"`
15820
15821	// Value: [Output Only] A warning data value corresponding to the key.
15822	Value string `json:"value,omitempty"`
15823
15824	// ForceSendFields is a list of field names (e.g. "Key") to
15825	// unconditionally include in API requests. By default, fields with
15826	// empty values are omitted from API requests. However, any non-pointer,
15827	// non-interface field appearing in ForceSendFields will be sent to the
15828	// server regardless of whether the field is empty or not. This may be
15829	// used to include empty fields in Patch requests.
15830	ForceSendFields []string `json:"-"`
15831
15832	// NullFields is a list of field names (e.g. "Key") to include in API
15833	// requests with the JSON null value. By default, fields with empty
15834	// values are omitted from API requests. However, any field with an
15835	// empty value appearing in NullFields will be sent to the server as
15836	// null. It is an error if a field in this list has a non-empty value.
15837	// This may be used to include null fields in Patch requests.
15838	NullFields []string `json:"-"`
15839}
15840
15841func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
15842	type NoMethod InstanceGroupListWarningData
15843	raw := NoMethod(*s)
15844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15845}
15846
15847// InstanceGroupManager: Represents a Managed Instance Group
15848// resource.
15849//
15850// An instance group is a collection of VM instances that you can manage
15851// as a single entity. For more information, read Instance groups.
15852//
15853// For zonal Managed Instance Group, use the instanceGroupManagers
15854// resource.
15855//
15856// For regional Managed Instance Group, use the
15857// regionInstanceGroupManagers resource. (== resource_for
15858// {$api_version}.instanceGroupManagers ==) (== resource_for
15859// {$api_version}.regionInstanceGroupManagers ==)
15860type InstanceGroupManager struct {
15861	// AutoHealingPolicies: The autohealing policy for this managed instance
15862	// group. You can specify only one value.
15863	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
15864
15865	// BaseInstanceName: The base instance name to use for instances in this
15866	// group. The value must be 1-58 characters long. Instances are named by
15867	// appending a hyphen and a random four-character string to the base
15868	// instance name. The base instance name must comply with RFC1035.
15869	BaseInstanceName string `json:"baseInstanceName,omitempty"`
15870
15871	// CreationTimestamp: [Output Only] The creation timestamp for this
15872	// managed instance group in RFC3339 text format.
15873	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15874
15875	// CurrentActions: [Output Only] The list of instance actions and the
15876	// number of instances in this managed instance group that are scheduled
15877	// for each of those actions.
15878	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
15879
15880	// Description: An optional description of this resource. Provide this
15881	// property when you create the resource.
15882	Description string `json:"description,omitempty"`
15883
15884	// DistributionPolicy: Policy specifying intended distribution of
15885	// instances in regional managed instance group.
15886	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
15887
15888	// FailoverAction: The action to perform in case of zone failure. Only
15889	// one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
15890	//
15891	// Possible values:
15892	//   "NO_FAILOVER"
15893	//   "UNKNOWN"
15894	FailoverAction string `json:"failoverAction,omitempty"`
15895
15896	// Fingerprint: Fingerprint of this resource. This field may be used in
15897	// optimistic locking. It will be ignored when inserting an
15898	// InstanceGroupManager. An up-to-date fingerprint must be provided in
15899	// order to update the InstanceGroupManager, otherwise the request will
15900	// fail with error 412 conditionNotMet.
15901	//
15902	// To see the latest fingerprint, make a get() request to retrieve an
15903	// InstanceGroupManager.
15904	Fingerprint string `json:"fingerprint,omitempty"`
15905
15906	// Id: [Output Only] A unique identifier for this resource type. The
15907	// server generates this identifier.
15908	Id uint64 `json:"id,omitempty,string"`
15909
15910	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
15911	InstanceGroup string `json:"instanceGroup,omitempty"`
15912
15913	// InstanceTemplate: The URL of the instance template that is specified
15914	// for this managed instance group. The group uses this template to
15915	// create all new instances in the managed instance group.
15916	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15917
15918	// Kind: [Output Only] The resource type, which is always
15919	// compute#instanceGroupManager for managed instance groups.
15920	Kind string `json:"kind,omitempty"`
15921
15922	// Name: The name of the managed instance group. The name must be 1-63
15923	// characters long, and comply with RFC1035.
15924	Name string `json:"name,omitempty"`
15925
15926	// NamedPorts: Named ports configured for the Instance Groups
15927	// complementary to this Instance Group Manager.
15928	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
15929
15930	// PendingActions: [Deprecated] This field is deprecated and will be
15931	// removed. Prefer using the status field instead. Please contact
15932	// cloud-updater-feedback@google.com to leave feedback if your workload
15933	// relies on this field. [Output Only] The list of instance actions and
15934	// the number of instances in this managed instance group that are
15935	// pending for each of those actions.
15936	PendingActions *InstanceGroupManagerPendingActionsSummary `json:"pendingActions,omitempty"`
15937
15938	// Region: [Output Only] The URL of the region where the managed
15939	// instance group resides (for regional resources).
15940	Region string `json:"region,omitempty"`
15941
15942	// SelfLink: [Output Only] The URL for this managed instance group. The
15943	// server defines this URL.
15944	SelfLink string `json:"selfLink,omitempty"`
15945
15946	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
15947	// with the resource id.
15948	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
15949
15950	// ServiceAccount: The service account to be used as credentials for all
15951	// operations performed by the managed instance group on instances. The
15952	// service accounts needs all permissions required to create and delete
15953	// instances. By default, the service account
15954	// {projectNumber}@cloudservices.gserviceaccount.com is used.
15955	ServiceAccount string `json:"serviceAccount,omitempty"`
15956
15957	// StatefulPolicy: Stateful configuration for this Instanced Group
15958	// Manager
15959	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
15960
15961	// Status: [Output Only] The status of this managed instance group.
15962	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
15963
15964	// TargetPools: The URLs for all TargetPool resources to which instances
15965	// in the instanceGroup field are added. The target pools automatically
15966	// apply to all of the instances in the managed instance group.
15967	TargetPools []string `json:"targetPools,omitempty"`
15968
15969	// TargetSize: The target number of running instances for this managed
15970	// instance group. You can reduce this number by using the
15971	// instanceGroupManager deleteInstances or abandonInstances methods.
15972	// Resizing the group also changes this number.
15973	TargetSize int64 `json:"targetSize,omitempty"`
15974
15975	// UpdatePolicy: The update policy for this managed instance group.
15976	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
15977
15978	// Versions: Specifies the instance templates used by this managed
15979	// instance group to create instances.
15980	//
15981	// Each version is defined by an instanceTemplate and a name. Every
15982	// version can appear at most once per instance group. This field
15983	// overrides the top-level instanceTemplate field. Read more about the
15984	// relationships between these fields. Exactly one version must leave
15985	// the targetSize field unset. That version will be applied to all
15986	// remaining instances. For more information, read about canary updates.
15987	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
15988
15989	// Zone: [Output Only] The URL of the zone where the managed instance
15990	// group is located (for zonal resources).
15991	Zone string `json:"zone,omitempty"`
15992
15993	// ServerResponse contains the HTTP response code and headers from the
15994	// server.
15995	googleapi.ServerResponse `json:"-"`
15996
15997	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
15998	// to unconditionally include in API requests. By default, fields with
15999	// empty values are omitted from API requests. However, any non-pointer,
16000	// non-interface field appearing in ForceSendFields will be sent to the
16001	// server regardless of whether the field is empty or not. This may be
16002	// used to include empty fields in Patch requests.
16003	ForceSendFields []string `json:"-"`
16004
16005	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
16006	// include in API requests with the JSON null value. By default, fields
16007	// with empty values are omitted from API requests. However, any field
16008	// with an empty value appearing in NullFields will be sent to the
16009	// server as null. It is an error if a field in this list has a
16010	// non-empty value. This may be used to include null fields in Patch
16011	// requests.
16012	NullFields []string `json:"-"`
16013}
16014
16015func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
16016	type NoMethod InstanceGroupManager
16017	raw := NoMethod(*s)
16018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16019}
16020
16021type InstanceGroupManagerActionsSummary struct {
16022	// Abandoning: [Output Only] The total number of instances in the
16023	// managed instance group that are scheduled to be abandoned. Abandoning
16024	// an instance removes it from the managed instance group without
16025	// deleting it.
16026	Abandoning int64 `json:"abandoning,omitempty"`
16027
16028	// Creating: [Output Only] The number of instances in the managed
16029	// instance group that are scheduled to be created or are currently
16030	// being created. If the group fails to create any of these instances,
16031	// it tries again until it creates the instance successfully.
16032	//
16033	// If you have disabled creation retries, this field will not be
16034	// populated; instead, the creatingWithoutRetries field will be
16035	// populated.
16036	Creating int64 `json:"creating,omitempty"`
16037
16038	// CreatingWithoutRetries: [Output Only] The number of instances that
16039	// the managed instance group will attempt to create. The group attempts
16040	// to create each instance only once. If the group fails to create any
16041	// of these instances, it decreases the group's targetSize value
16042	// accordingly.
16043	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
16044
16045	// Deleting: [Output Only] The number of instances in the managed
16046	// instance group that are scheduled to be deleted or are currently
16047	// being deleted.
16048	Deleting int64 `json:"deleting,omitempty"`
16049
16050	// None: [Output Only] The number of instances in the managed instance
16051	// group that are running and have no scheduled actions.
16052	None int64 `json:"none,omitempty"`
16053
16054	// Recreating: [Output Only] The number of instances in the managed
16055	// instance group that are scheduled to be recreated or are currently
16056	// being being recreated. Recreating an instance deletes the existing
16057	// root persistent disk and creates a new disk from the image that is
16058	// defined in the instance template.
16059	Recreating int64 `json:"recreating,omitempty"`
16060
16061	// Refreshing: [Output Only] The number of instances in the managed
16062	// instance group that are being reconfigured with properties that do
16063	// not require a restart or a recreate action. For example, setting or
16064	// removing target pools for the instance.
16065	Refreshing int64 `json:"refreshing,omitempty"`
16066
16067	// Restarting: [Output Only] The number of instances in the managed
16068	// instance group that are scheduled to be restarted or are currently
16069	// being restarted.
16070	Restarting int64 `json:"restarting,omitempty"`
16071
16072	// Verifying: [Output Only] The number of instances in the managed
16073	// instance group that are being verified. See the
16074	// managedInstances[].currentAction property in the listManagedInstances
16075	// method documentation.
16076	Verifying int64 `json:"verifying,omitempty"`
16077
16078	// ForceSendFields is a list of field names (e.g. "Abandoning") to
16079	// unconditionally include in API requests. By default, fields with
16080	// empty values are omitted from API requests. However, any non-pointer,
16081	// non-interface field appearing in ForceSendFields will be sent to the
16082	// server regardless of whether the field is empty or not. This may be
16083	// used to include empty fields in Patch requests.
16084	ForceSendFields []string `json:"-"`
16085
16086	// NullFields is a list of field names (e.g. "Abandoning") to include in
16087	// API requests with the JSON null value. By default, fields with empty
16088	// values are omitted from API requests. However, any field with an
16089	// empty value appearing in NullFields will be sent to the server as
16090	// null. It is an error if a field in this list has a non-empty value.
16091	// This may be used to include null fields in Patch requests.
16092	NullFields []string `json:"-"`
16093}
16094
16095func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
16096	type NoMethod InstanceGroupManagerActionsSummary
16097	raw := NoMethod(*s)
16098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16099}
16100
16101type InstanceGroupManagerAggregatedList struct {
16102	// Id: [Output Only] Unique identifier for the resource; defined by the
16103	// server.
16104	Id string `json:"id,omitempty"`
16105
16106	// Items: A list of InstanceGroupManagersScopedList resources.
16107	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
16108
16109	// Kind: [Output Only] The resource type, which is always
16110	// compute#instanceGroupManagerAggregatedList for an aggregated list of
16111	// managed instance groups.
16112	Kind string `json:"kind,omitempty"`
16113
16114	// NextPageToken: [Output Only] This token allows you to get the next
16115	// page of results for list requests. If the number of results is larger
16116	// than maxResults, use the nextPageToken as a value for the query
16117	// parameter pageToken in the next list request. Subsequent list
16118	// requests will have their own nextPageToken to continue paging through
16119	// the results.
16120	NextPageToken string `json:"nextPageToken,omitempty"`
16121
16122	// SelfLink: [Output Only] Server-defined URL for this resource.
16123	SelfLink string `json:"selfLink,omitempty"`
16124
16125	// Unreachables: [Output Only] Unreachable resources.
16126	Unreachables []string `json:"unreachables,omitempty"`
16127
16128	// Warning: [Output Only] Informational warning message.
16129	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
16130
16131	// ServerResponse contains the HTTP response code and headers from the
16132	// server.
16133	googleapi.ServerResponse `json:"-"`
16134
16135	// ForceSendFields is a list of field names (e.g. "Id") to
16136	// unconditionally include in API requests. By default, fields with
16137	// empty values are omitted from API requests. However, any non-pointer,
16138	// non-interface field appearing in ForceSendFields will be sent to the
16139	// server regardless of whether the field is empty or not. This may be
16140	// used to include empty fields in Patch requests.
16141	ForceSendFields []string `json:"-"`
16142
16143	// NullFields is a list of field names (e.g. "Id") to include in API
16144	// requests with the JSON null value. By default, fields with empty
16145	// values are omitted from API requests. However, any field with an
16146	// empty value appearing in NullFields will be sent to the server as
16147	// null. It is an error if a field in this list has a non-empty value.
16148	// This may be used to include null fields in Patch requests.
16149	NullFields []string `json:"-"`
16150}
16151
16152func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
16153	type NoMethod InstanceGroupManagerAggregatedList
16154	raw := NoMethod(*s)
16155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16156}
16157
16158// InstanceGroupManagerAggregatedListWarning: [Output Only]
16159// Informational warning message.
16160type InstanceGroupManagerAggregatedListWarning struct {
16161	// Code: [Output Only] A warning code, if applicable. For example,
16162	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16163	// the response.
16164	//
16165	// Possible values:
16166	//   "CLEANUP_FAILED"
16167	//   "DEPRECATED_RESOURCE_USED"
16168	//   "DEPRECATED_TYPE_USED"
16169	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16170	//   "EXPERIMENTAL_TYPE_USED"
16171	//   "EXTERNAL_API_WARNING"
16172	//   "FIELD_VALUE_OVERRIDEN"
16173	//   "INJECTED_KERNELS_DEPRECATED"
16174	//   "MISSING_TYPE_DEPENDENCY"
16175	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16176	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16177	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16178	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16179	//   "NEXT_HOP_NOT_RUNNING"
16180	//   "NOT_CRITICAL_ERROR"
16181	//   "NO_RESULTS_ON_PAGE"
16182	//   "PARTIAL_SUCCESS"
16183	//   "REQUIRED_TOS_AGREEMENT"
16184	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16185	//   "RESOURCE_NOT_DELETED"
16186	//   "SCHEMA_VALIDATION_IGNORED"
16187	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16188	//   "UNDECLARED_PROPERTIES"
16189	//   "UNREACHABLE"
16190	Code string `json:"code,omitempty"`
16191
16192	// Data: [Output Only] Metadata about this warning in key: value format.
16193	// For example:
16194	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16195	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
16196
16197	// Message: [Output Only] A human-readable description of the warning
16198	// code.
16199	Message string `json:"message,omitempty"`
16200
16201	// ForceSendFields is a list of field names (e.g. "Code") to
16202	// unconditionally include in API requests. By default, fields with
16203	// empty values are omitted from API requests. However, any non-pointer,
16204	// non-interface field appearing in ForceSendFields will be sent to the
16205	// server regardless of whether the field is empty or not. This may be
16206	// used to include empty fields in Patch requests.
16207	ForceSendFields []string `json:"-"`
16208
16209	// NullFields is a list of field names (e.g. "Code") to include in API
16210	// requests with the JSON null value. By default, fields with empty
16211	// values are omitted from API requests. However, any field with an
16212	// empty value appearing in NullFields will be sent to the server as
16213	// null. It is an error if a field in this list has a non-empty value.
16214	// This may be used to include null fields in Patch requests.
16215	NullFields []string `json:"-"`
16216}
16217
16218func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
16219	type NoMethod InstanceGroupManagerAggregatedListWarning
16220	raw := NoMethod(*s)
16221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16222}
16223
16224type InstanceGroupManagerAggregatedListWarningData struct {
16225	// Key: [Output Only] A key that provides more detail on the warning
16226	// being returned. For example, for warnings where there are no results
16227	// in a list request for a particular zone, this key might be scope and
16228	// the key value might be the zone name. Other examples might be a key
16229	// indicating a deprecated resource and a suggested replacement, or a
16230	// warning about invalid network settings (for example, if an instance
16231	// attempts to perform IP forwarding but is not enabled for IP
16232	// forwarding).
16233	Key string `json:"key,omitempty"`
16234
16235	// Value: [Output Only] A warning data value corresponding to the key.
16236	Value string `json:"value,omitempty"`
16237
16238	// ForceSendFields is a list of field names (e.g. "Key") to
16239	// unconditionally include in API requests. By default, fields with
16240	// empty values are omitted from API requests. However, any non-pointer,
16241	// non-interface field appearing in ForceSendFields will be sent to the
16242	// server regardless of whether the field is empty or not. This may be
16243	// used to include empty fields in Patch requests.
16244	ForceSendFields []string `json:"-"`
16245
16246	// NullFields is a list of field names (e.g. "Key") to include in API
16247	// requests with the JSON null value. By default, fields with empty
16248	// values are omitted from API requests. However, any field with an
16249	// empty value appearing in NullFields will be sent to the server as
16250	// null. It is an error if a field in this list has a non-empty value.
16251	// This may be used to include null fields in Patch requests.
16252	NullFields []string `json:"-"`
16253}
16254
16255func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16256	type NoMethod InstanceGroupManagerAggregatedListWarningData
16257	raw := NoMethod(*s)
16258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16259}
16260
16261type InstanceGroupManagerAutoHealingPolicy struct {
16262	// HealthCheck: The URL for the health check that signals autohealing.
16263	HealthCheck string `json:"healthCheck,omitempty"`
16264
16265	// InitialDelaySec: The number of seconds that the managed instance
16266	// group waits before it applies autohealing policies to new instances
16267	// or recently recreated instances. This initial delay allows instances
16268	// to initialize and run their startup scripts before the instance group
16269	// determines that they are UNHEALTHY. This prevents the managed
16270	// instance group from recreating its instances prematurely. This value
16271	// must be from range [0, 3600].
16272	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
16273
16274	// MaxUnavailable: Maximum number of instances that can be unavailable
16275	// when autohealing. When 'percent' is used, the value is rounded UP.
16276	// The instance is considered available if all of the following
16277	// conditions are satisfied: 1. Instance's status is RUNNING. 2.
16278	// Instance's currentAction is NONE (in particular its liveness health
16279	// check result was observed to be HEALTHY at least once as it passed
16280	// VERIFYING). 3. There is no outgoing action on an instance triggered
16281	// by IGM.
16282	//
16283	// By default, number of concurrently autohealed instances is smaller
16284	// than the managed instance group target size. However, if a zonal
16285	// managed instance group has only one instance, or a regional managed
16286	// instance group has only one instance per zone, autohealing will
16287	// recreate these instances when they become unhealthy.
16288	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
16289
16290	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
16291	// unconditionally include in API requests. By default, fields with
16292	// empty values are omitted from API requests. However, any non-pointer,
16293	// non-interface field appearing in ForceSendFields will be sent to the
16294	// server regardless of whether the field is empty or not. This may be
16295	// used to include empty fields in Patch requests.
16296	ForceSendFields []string `json:"-"`
16297
16298	// NullFields is a list of field names (e.g. "HealthCheck") to include
16299	// in API requests with the JSON null value. By default, fields with
16300	// empty values are omitted from API requests. However, any field with
16301	// an empty value appearing in NullFields will be sent to the server as
16302	// null. It is an error if a field in this list has a non-empty value.
16303	// This may be used to include null fields in Patch requests.
16304	NullFields []string `json:"-"`
16305}
16306
16307func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
16308	type NoMethod InstanceGroupManagerAutoHealingPolicy
16309	raw := NoMethod(*s)
16310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16311}
16312
16313// InstanceGroupManagerList: [Output Only] A list of managed instance
16314// groups.
16315type InstanceGroupManagerList struct {
16316	// Id: [Output Only] Unique identifier for the resource; defined by the
16317	// server.
16318	Id string `json:"id,omitempty"`
16319
16320	// Items: A list of InstanceGroupManager resources.
16321	Items []*InstanceGroupManager `json:"items,omitempty"`
16322
16323	// Kind: [Output Only] The resource type, which is always
16324	// compute#instanceGroupManagerList for a list of managed instance
16325	// groups.
16326	Kind string `json:"kind,omitempty"`
16327
16328	// NextPageToken: [Output Only] This token allows you to get the next
16329	// page of results for list requests. If the number of results is larger
16330	// than maxResults, use the nextPageToken as a value for the query
16331	// parameter pageToken in the next list request. Subsequent list
16332	// requests will have their own nextPageToken to continue paging through
16333	// the results.
16334	NextPageToken string `json:"nextPageToken,omitempty"`
16335
16336	// SelfLink: [Output Only] Server-defined URL for this resource.
16337	SelfLink string `json:"selfLink,omitempty"`
16338
16339	// Warning: [Output Only] Informational warning message.
16340	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
16341
16342	// ServerResponse contains the HTTP response code and headers from the
16343	// server.
16344	googleapi.ServerResponse `json:"-"`
16345
16346	// ForceSendFields is a list of field names (e.g. "Id") to
16347	// unconditionally include in API requests. By default, fields with
16348	// empty values are omitted from API requests. However, any non-pointer,
16349	// non-interface field appearing in ForceSendFields will be sent to the
16350	// server regardless of whether the field is empty or not. This may be
16351	// used to include empty fields in Patch requests.
16352	ForceSendFields []string `json:"-"`
16353
16354	// NullFields is a list of field names (e.g. "Id") to include in API
16355	// requests with the JSON null value. By default, fields with empty
16356	// values are omitted from API requests. However, any field with an
16357	// empty value appearing in NullFields will be sent to the server as
16358	// null. It is an error if a field in this list has a non-empty value.
16359	// This may be used to include null fields in Patch requests.
16360	NullFields []string `json:"-"`
16361}
16362
16363func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
16364	type NoMethod InstanceGroupManagerList
16365	raw := NoMethod(*s)
16366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16367}
16368
16369// InstanceGroupManagerListWarning: [Output Only] Informational warning
16370// message.
16371type InstanceGroupManagerListWarning struct {
16372	// Code: [Output Only] A warning code, if applicable. For example,
16373	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16374	// the response.
16375	//
16376	// Possible values:
16377	//   "CLEANUP_FAILED"
16378	//   "DEPRECATED_RESOURCE_USED"
16379	//   "DEPRECATED_TYPE_USED"
16380	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16381	//   "EXPERIMENTAL_TYPE_USED"
16382	//   "EXTERNAL_API_WARNING"
16383	//   "FIELD_VALUE_OVERRIDEN"
16384	//   "INJECTED_KERNELS_DEPRECATED"
16385	//   "MISSING_TYPE_DEPENDENCY"
16386	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16387	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16388	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16389	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16390	//   "NEXT_HOP_NOT_RUNNING"
16391	//   "NOT_CRITICAL_ERROR"
16392	//   "NO_RESULTS_ON_PAGE"
16393	//   "PARTIAL_SUCCESS"
16394	//   "REQUIRED_TOS_AGREEMENT"
16395	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16396	//   "RESOURCE_NOT_DELETED"
16397	//   "SCHEMA_VALIDATION_IGNORED"
16398	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16399	//   "UNDECLARED_PROPERTIES"
16400	//   "UNREACHABLE"
16401	Code string `json:"code,omitempty"`
16402
16403	// Data: [Output Only] Metadata about this warning in key: value format.
16404	// For example:
16405	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16406	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
16407
16408	// Message: [Output Only] A human-readable description of the warning
16409	// code.
16410	Message string `json:"message,omitempty"`
16411
16412	// ForceSendFields is a list of field names (e.g. "Code") to
16413	// unconditionally include in API requests. By default, fields with
16414	// empty values are omitted from API requests. However, any non-pointer,
16415	// non-interface field appearing in ForceSendFields will be sent to the
16416	// server regardless of whether the field is empty or not. This may be
16417	// used to include empty fields in Patch requests.
16418	ForceSendFields []string `json:"-"`
16419
16420	// NullFields is a list of field names (e.g. "Code") to include in API
16421	// requests with the JSON null value. By default, fields with empty
16422	// values are omitted from API requests. However, any field with an
16423	// empty value appearing in NullFields will be sent to the server as
16424	// null. It is an error if a field in this list has a non-empty value.
16425	// This may be used to include null fields in Patch requests.
16426	NullFields []string `json:"-"`
16427}
16428
16429func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
16430	type NoMethod InstanceGroupManagerListWarning
16431	raw := NoMethod(*s)
16432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16433}
16434
16435type InstanceGroupManagerListWarningData struct {
16436	// Key: [Output Only] A key that provides more detail on the warning
16437	// being returned. For example, for warnings where there are no results
16438	// in a list request for a particular zone, this key might be scope and
16439	// the key value might be the zone name. Other examples might be a key
16440	// indicating a deprecated resource and a suggested replacement, or a
16441	// warning about invalid network settings (for example, if an instance
16442	// attempts to perform IP forwarding but is not enabled for IP
16443	// forwarding).
16444	Key string `json:"key,omitempty"`
16445
16446	// Value: [Output Only] A warning data value corresponding to the key.
16447	Value string `json:"value,omitempty"`
16448
16449	// ForceSendFields is a list of field names (e.g. "Key") to
16450	// unconditionally include in API requests. By default, fields with
16451	// empty values are omitted from API requests. However, any non-pointer,
16452	// non-interface field appearing in ForceSendFields will be sent to the
16453	// server regardless of whether the field is empty or not. This may be
16454	// used to include empty fields in Patch requests.
16455	ForceSendFields []string `json:"-"`
16456
16457	// NullFields is a list of field names (e.g. "Key") to include in API
16458	// requests with the JSON null value. By default, fields with empty
16459	// values are omitted from API requests. However, any field with an
16460	// empty value appearing in NullFields will be sent to the server as
16461	// null. It is an error if a field in this list has a non-empty value.
16462	// This may be used to include null fields in Patch requests.
16463	NullFields []string `json:"-"`
16464}
16465
16466func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
16467	type NoMethod InstanceGroupManagerListWarningData
16468	raw := NoMethod(*s)
16469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16470}
16471
16472type InstanceGroupManagerPendingActionsSummary struct {
16473	// Creating: [Deprecated] This field is deprecated and will be removed.
16474	// Prefer using the status field instead. Please contact
16475	// cloud-updater-feedback@google.com to leave feedback if your workload
16476	// relies on this field. [Output Only] The number of instances in the
16477	// managed instance group that are pending to be created.
16478	Creating int64 `json:"creating,omitempty"`
16479
16480	// Deleting: [Deprecated] This field is deprecated and will be removed.
16481	// Prefer using the status field instead. Please contact
16482	// cloud-updater-feedback@google.com to leave feedback if your workload
16483	// relies on this field. [Output Only] The number of instances in the
16484	// managed instance group that are pending to be deleted.
16485	Deleting int64 `json:"deleting,omitempty"`
16486
16487	// Recreating: [Deprecated] This field is deprecated and will be
16488	// removed. Prefer using the status field instead. Please contact
16489	// cloud-updater-feedback@google.com to leave feedback if your workload
16490	// relies on this field. [Output Only] The number of instances in the
16491	// managed instance group that are pending to be recreated.
16492	Recreating int64 `json:"recreating,omitempty"`
16493
16494	// Restarting: [Deprecated] This field is deprecated and will be
16495	// removed. Prefer using the status field instead. Please contact
16496	// cloud-updater-feedback@google.com to leave feedback if your workload
16497	// relies on this field. [Output Only] The number of instances in the
16498	// managed instance group that are pending to be restarted.
16499	Restarting int64 `json:"restarting,omitempty"`
16500
16501	// ForceSendFields is a list of field names (e.g. "Creating") to
16502	// unconditionally include in API requests. By default, fields with
16503	// empty values are omitted from API requests. However, any non-pointer,
16504	// non-interface field appearing in ForceSendFields will be sent to the
16505	// server regardless of whether the field is empty or not. This may be
16506	// used to include empty fields in Patch requests.
16507	ForceSendFields []string `json:"-"`
16508
16509	// NullFields is a list of field names (e.g. "Creating") to include in
16510	// API requests with the JSON null value. By default, fields with empty
16511	// values are omitted from API requests. However, any field with an
16512	// empty value appearing in NullFields will be sent to the server as
16513	// null. It is an error if a field in this list has a non-empty value.
16514	// This may be used to include null fields in Patch requests.
16515	NullFields []string `json:"-"`
16516}
16517
16518func (s *InstanceGroupManagerPendingActionsSummary) MarshalJSON() ([]byte, error) {
16519	type NoMethod InstanceGroupManagerPendingActionsSummary
16520	raw := NoMethod(*s)
16521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16522}
16523
16524type InstanceGroupManagerStatus struct {
16525	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
16526	// instance group manager.
16527	Autoscaler string `json:"autoscaler,omitempty"`
16528
16529	// IsStable: [Output Only] A bit indicating whether the managed instance
16530	// group is in a stable state. A stable state means that: none of the
16531	// instances in the managed instance group is currently undergoing any
16532	// type of change (for example, creation, restart, or deletion); no
16533	// future changes are scheduled for instances in the managed instance
16534	// group; and the managed instance group itself is not being modified.
16535	IsStable bool `json:"isStable,omitempty"`
16536
16537	// Stateful: [Output Only] Stateful status of the given Instance Group
16538	// Manager.
16539	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
16540
16541	// VersionTarget: [Output Only] A status of consistency of Instances'
16542	// versions with their target version specified by version field on
16543	// Instance Group Manager.
16544	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
16545
16546	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
16547	// unconditionally include in API requests. By default, fields with
16548	// empty values are omitted from API requests. However, any non-pointer,
16549	// non-interface field appearing in ForceSendFields will be sent to the
16550	// server regardless of whether the field is empty or not. This may be
16551	// used to include empty fields in Patch requests.
16552	ForceSendFields []string `json:"-"`
16553
16554	// NullFields is a list of field names (e.g. "Autoscaler") to include in
16555	// API requests with the JSON null value. By default, fields with empty
16556	// values are omitted from API requests. However, any field with an
16557	// empty value appearing in NullFields will be sent to the server as
16558	// null. It is an error if a field in this list has a non-empty value.
16559	// This may be used to include null fields in Patch requests.
16560	NullFields []string `json:"-"`
16561}
16562
16563func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
16564	type NoMethod InstanceGroupManagerStatus
16565	raw := NoMethod(*s)
16566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16567}
16568
16569type InstanceGroupManagerStatusStateful struct {
16570	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
16571	// instance group has stateful configuration, that is, if you have
16572	// configured any items in a stateful policy or in per-instance configs.
16573	// The group might report that it has no stateful config even when there
16574	// is still some preserved state on a managed instance, for example, if
16575	// you have deleted all PICs but not yet applied those deletions.
16576	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
16577
16578	// IsStateful: [Output Only] A bit indicating whether the managed
16579	// instance group has stateful configuration, that is, if you have
16580	// configured any items in a stateful policy or in per-instance configs.
16581	// The group might report that it has no stateful config even when there
16582	// is still some preserved state on a managed instance, for example, if
16583	// you have deleted all PICs but not yet applied those deletions. This
16584	// field is deprecated in favor of has_stateful_config.
16585	IsStateful bool `json:"isStateful,omitempty"`
16586
16587	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig")
16588	// to unconditionally include in API requests. By default, fields with
16589	// empty values are omitted from API requests. However, any non-pointer,
16590	// non-interface field appearing in ForceSendFields will be sent to the
16591	// server regardless of whether the field is empty or not. This may be
16592	// used to include empty fields in Patch requests.
16593	ForceSendFields []string `json:"-"`
16594
16595	// NullFields is a list of field names (e.g. "HasStatefulConfig") to
16596	// include in API requests with the JSON null value. By default, fields
16597	// with empty values are omitted from API requests. However, any field
16598	// with an empty value appearing in NullFields will be sent to the
16599	// server as null. It is an error if a field in this list has a
16600	// non-empty value. This may be used to include null fields in Patch
16601	// requests.
16602	NullFields []string `json:"-"`
16603}
16604
16605func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
16606	type NoMethod InstanceGroupManagerStatusStateful
16607	raw := NoMethod(*s)
16608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16609}
16610
16611type InstanceGroupManagerStatusVersionTarget struct {
16612	// IsReached: [Output Only] A bit indicating whether version target has
16613	// been reached in this managed instance group, i.e. all instances are
16614	// in their target version. Instances' target version are specified by
16615	// version field on Instance Group Manager.
16616	IsReached bool `json:"isReached,omitempty"`
16617
16618	// ForceSendFields is a list of field names (e.g. "IsReached") to
16619	// unconditionally include in API requests. By default, fields with
16620	// empty values are omitted from API requests. However, any non-pointer,
16621	// non-interface field appearing in ForceSendFields will be sent to the
16622	// server regardless of whether the field is empty or not. This may be
16623	// used to include empty fields in Patch requests.
16624	ForceSendFields []string `json:"-"`
16625
16626	// NullFields is a list of field names (e.g. "IsReached") to include in
16627	// API requests with the JSON null value. By default, fields with empty
16628	// values are omitted from API requests. However, any field with an
16629	// empty value appearing in NullFields will be sent to the server as
16630	// null. It is an error if a field in this list has a non-empty value.
16631	// This may be used to include null fields in Patch requests.
16632	NullFields []string `json:"-"`
16633}
16634
16635func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
16636	type NoMethod InstanceGroupManagerStatusVersionTarget
16637	raw := NoMethod(*s)
16638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16639}
16640
16641type InstanceGroupManagerUpdatePolicy struct {
16642	// InstanceRedistributionType: The  instance redistribution policy for
16643	// regional managed instance groups. Valid values are:
16644	// - PROACTIVE (default): The group attempts to maintain an even
16645	// distribution of VM instances across zones in the region.
16646	// - NONE: For non-autoscaled groups, proactive redistribution is
16647	// disabled.
16648	//
16649	// Possible values:
16650	//   "NONE"
16651	//   "PROACTIVE"
16652	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
16653
16654	// MaxSurge: The maximum number of instances that can be created above
16655	// the specified targetSize during the update process. By default, a
16656	// fixed value of 1 is used. This value can be either a fixed number or
16657	// a percentage if the instance group has 10 or more instances. If you
16658	// set a percentage, the number of instances will be rounded up if
16659	// necessary.
16660	//
16661	// At least one of either maxSurge or maxUnavailable must be greater
16662	// than 0. Learn more about maxSurge.
16663	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
16664
16665	// MaxUnavailable: The maximum number of instances that can be
16666	// unavailable during the update process. An instance is considered
16667	// available if all of the following conditions are satisfied:
16668	//
16669	//
16670	// - The instance's status is RUNNING.
16671	// - If there is a health check on the instance group, the instance's
16672	// liveness health check result must be HEALTHY at least once. If there
16673	// is no health check on the group, then the instance only needs to have
16674	// a status of RUNNING to be considered available.  By default, a fixed
16675	// value of 1 is used. This value can be either a fixed number or a
16676	// percentage if the instance group has 10 or more instances. If you set
16677	// a percentage, the number of instances will be rounded up if
16678	// necessary.
16679	//
16680	// At least one of either maxSurge or maxUnavailable must be greater
16681	// than 0. Learn more about maxUnavailable.
16682	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
16683
16684	// MinReadySec: Minimum number of seconds to wait for after a newly
16685	// created instance becomes available. This value must be from range [0,
16686	// 3600].
16687	MinReadySec int64 `json:"minReadySec,omitempty"`
16688
16689	// MinimalAction: Minimal action to be taken on an instance. You can
16690	// specify either RESTART to restart existing instances or REPLACE to
16691	// delete and create new instances from the target template. If you
16692	// specify a RESTART, the Updater will attempt to perform that action
16693	// only. However, if the Updater determines that the minimal action you
16694	// specify is not enough to perform the update, it might perform a more
16695	// disruptive action.
16696	//
16697	// Possible values:
16698	//   "NONE"
16699	//   "REFRESH"
16700	//   "REPLACE"
16701	//   "RESTART"
16702	MinimalAction string `json:"minimalAction,omitempty"`
16703
16704	// ReplacementMethod: What action should be used to replace instances.
16705	// See minimal_action.REPLACE
16706	//
16707	// Possible values:
16708	//   "RECREATE"
16709	//   "SUBSTITUTE"
16710	ReplacementMethod string `json:"replacementMethod,omitempty"`
16711
16712	// Type: The type of update process. You can specify either PROACTIVE so
16713	// that the instance group manager proactively executes actions in order
16714	// to bring instances to their target versions or OPPORTUNISTIC so that
16715	// no action is proactively executed but the update will be performed as
16716	// part of other actions (for example, resizes or recreateInstances
16717	// calls).
16718	//
16719	// Possible values:
16720	//   "OPPORTUNISTIC"
16721	//   "PROACTIVE"
16722	Type string `json:"type,omitempty"`
16723
16724	// ForceSendFields is a list of field names (e.g.
16725	// "InstanceRedistributionType") to unconditionally include in API
16726	// requests. By default, fields with empty values are omitted from API
16727	// requests. However, any non-pointer, non-interface field appearing in
16728	// ForceSendFields will be sent to the server regardless of whether the
16729	// field is empty or not. This may be used to include empty fields in
16730	// Patch requests.
16731	ForceSendFields []string `json:"-"`
16732
16733	// NullFields is a list of field names (e.g.
16734	// "InstanceRedistributionType") to include in API requests with the
16735	// JSON null value. By default, fields with empty values are omitted
16736	// from API requests. However, any field with an empty value appearing
16737	// in NullFields will be sent to the server as null. It is an error if a
16738	// field in this list has a non-empty value. This may be used to include
16739	// null fields in Patch requests.
16740	NullFields []string `json:"-"`
16741}
16742
16743func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
16744	type NoMethod InstanceGroupManagerUpdatePolicy
16745	raw := NoMethod(*s)
16746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16747}
16748
16749type InstanceGroupManagerVersion struct {
16750	// InstanceTemplate: The URL of the instance template that is specified
16751	// for this managed instance group. The group uses this template to
16752	// create new instances in the managed instance group until the
16753	// `targetSize` for this version is reached.
16754	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16755
16756	// Name: Name of the version. Unique among all versions in the scope of
16757	// this managed instance group.
16758	Name string `json:"name,omitempty"`
16759
16760	// Tag: Tag describing the version. Used to trigger rollout of a target
16761	// version even if instance_template remains unchanged. Deprecated in
16762	// favor of 'name'.
16763	Tag string `json:"tag,omitempty"`
16764
16765	// TargetSize: Specifies the intended number of instances to be created
16766	// from the instanceTemplate. The final number of instances created from
16767	// the template will be equal to:
16768	// - If expressed as a fixed number, the minimum of either
16769	// targetSize.fixed or instanceGroupManager.targetSize is used.
16770	// - if expressed as a percent, the targetSize would be
16771	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
16772	// is a remainder, the number is rounded up.  If unset, this version
16773	// will update any remaining instances not updated by another version.
16774	// Read Starting a canary update for more information.
16775	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
16776
16777	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16778	// unconditionally include in API requests. By default, fields with
16779	// empty values are omitted from API requests. However, any non-pointer,
16780	// non-interface field appearing in ForceSendFields will be sent to the
16781	// server regardless of whether the field is empty or not. This may be
16782	// used to include empty fields in Patch requests.
16783	ForceSendFields []string `json:"-"`
16784
16785	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16786	// include in API requests with the JSON null value. By default, fields
16787	// with empty values are omitted from API requests. However, any field
16788	// with an empty value appearing in NullFields will be sent to the
16789	// server as null. It is an error if a field in this list has a
16790	// non-empty value. This may be used to include null fields in Patch
16791	// requests.
16792	NullFields []string `json:"-"`
16793}
16794
16795func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
16796	type NoMethod InstanceGroupManagerVersion
16797	raw := NoMethod(*s)
16798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16799}
16800
16801type InstanceGroupManagersAbandonInstancesRequest struct {
16802	// Instances: The URLs of one or more instances to abandon. This can be
16803	// a full URL or a partial URL, such as
16804	// zones/[ZONE]/instances/[INSTANCE_NAME].
16805	Instances []string `json:"instances,omitempty"`
16806
16807	// ForceSendFields is a list of field names (e.g. "Instances") to
16808	// unconditionally include in API requests. By default, fields with
16809	// empty values are omitted from API requests. However, any non-pointer,
16810	// non-interface field appearing in ForceSendFields will be sent to the
16811	// server regardless of whether the field is empty or not. This may be
16812	// used to include empty fields in Patch requests.
16813	ForceSendFields []string `json:"-"`
16814
16815	// NullFields is a list of field names (e.g. "Instances") to include in
16816	// API requests with the JSON null value. By default, fields with empty
16817	// values are omitted from API requests. However, any field with an
16818	// empty value appearing in NullFields will be sent to the server as
16819	// null. It is an error if a field in this list has a non-empty value.
16820	// This may be used to include null fields in Patch requests.
16821	NullFields []string `json:"-"`
16822}
16823
16824func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
16825	type NoMethod InstanceGroupManagersAbandonInstancesRequest
16826	raw := NoMethod(*s)
16827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16828}
16829
16830// InstanceGroupManagersApplyUpdatesRequest:
16831// InstanceGroupManagers.applyUpdatesToInstances
16832type InstanceGroupManagersApplyUpdatesRequest struct {
16833	// Instances: The list of URLs of one or more instances for which you
16834	// want to apply updates. Each URL can be a full URL or a partial URL,
16835	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
16836	Instances []string `json:"instances,omitempty"`
16837
16838	// MaximalAction: The maximal action that should be performed on the
16839	// instances. By default REPLACE. This field is deprecated, please use
16840	// most_disruptive_allowed_action.
16841	//
16842	// Possible values:
16843	//   "NONE"
16844	//   "REFRESH"
16845	//   "REPLACE"
16846	//   "RESTART"
16847	MaximalAction string `json:"maximalAction,omitempty"`
16848
16849	// MinimalAction: The minimal action that you want to perform on each
16850	// instance during the update:
16851	// - REPLACE: At minimum, delete the instance and create it again.
16852	// - RESTART: Stop the instance and start it again.
16853	// - REFRESH: Do not stop the instance.
16854	// - NONE: Do not disrupt the instance at all.  By default, the minimum
16855	// action is NONE. If your update requires a more disruptive action than
16856	// you set with this flag, the necessary action is performed to execute
16857	// the update.
16858	//
16859	// Possible values:
16860	//   "NONE"
16861	//   "REFRESH"
16862	//   "REPLACE"
16863	//   "RESTART"
16864	MinimalAction string `json:"minimalAction,omitempty"`
16865
16866	// MostDisruptiveAllowedAction: The most disruptive action that you want
16867	// to perform on each instance during the update:
16868	// - REPLACE: Delete the instance and create it again.
16869	// - RESTART: Stop the instance and start it again.
16870	// - REFRESH: Do not stop the instance.
16871	// - NONE: Do not disrupt the instance at all.  By default, the most
16872	// disruptive allowed action is REPLACE. If your update requires a more
16873	// disruptive action than you set with this flag, the update request
16874	// will fail.
16875	//
16876	// Possible values:
16877	//   "NONE"
16878	//   "REFRESH"
16879	//   "REPLACE"
16880	//   "RESTART"
16881	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
16882
16883	// ForceSendFields is a list of field names (e.g. "Instances") to
16884	// unconditionally include in API requests. By default, fields with
16885	// empty values are omitted from API requests. However, any non-pointer,
16886	// non-interface field appearing in ForceSendFields will be sent to the
16887	// server regardless of whether the field is empty or not. This may be
16888	// used to include empty fields in Patch requests.
16889	ForceSendFields []string `json:"-"`
16890
16891	// NullFields is a list of field names (e.g. "Instances") to include in
16892	// API requests with the JSON null value. By default, fields with empty
16893	// values are omitted from API requests. However, any field with an
16894	// empty value appearing in NullFields will be sent to the server as
16895	// null. It is an error if a field in this list has a non-empty value.
16896	// This may be used to include null fields in Patch requests.
16897	NullFields []string `json:"-"`
16898}
16899
16900func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
16901	type NoMethod InstanceGroupManagersApplyUpdatesRequest
16902	raw := NoMethod(*s)
16903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16904}
16905
16906// InstanceGroupManagersCreateInstancesRequest:
16907// InstanceGroupManagers.createInstances
16908type InstanceGroupManagersCreateInstancesRequest struct {
16909	// Instances: [Required] List of specifications of per-instance configs.
16910	Instances []*PerInstanceConfig `json:"instances,omitempty"`
16911
16912	// ForceSendFields is a list of field names (e.g. "Instances") to
16913	// unconditionally include in API requests. By default, fields with
16914	// empty values are omitted from API requests. However, any non-pointer,
16915	// non-interface field appearing in ForceSendFields will be sent to the
16916	// server regardless of whether the field is empty or not. This may be
16917	// used to include empty fields in Patch requests.
16918	ForceSendFields []string `json:"-"`
16919
16920	// NullFields is a list of field names (e.g. "Instances") to include in
16921	// API requests with the JSON null value. By default, fields with empty
16922	// values are omitted from API requests. However, any field with an
16923	// empty value appearing in NullFields will be sent to the server as
16924	// null. It is an error if a field in this list has a non-empty value.
16925	// This may be used to include null fields in Patch requests.
16926	NullFields []string `json:"-"`
16927}
16928
16929func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
16930	type NoMethod InstanceGroupManagersCreateInstancesRequest
16931	raw := NoMethod(*s)
16932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16933}
16934
16935type InstanceGroupManagersDeleteInstancesRequest struct {
16936	// Instances: The URLs of one or more instances to delete. This can be a
16937	// full URL or a partial URL, such as
16938	// zones/[ZONE]/instances/[INSTANCE_NAME].
16939	Instances []string `json:"instances,omitempty"`
16940
16941	// ForceSendFields is a list of field names (e.g. "Instances") to
16942	// unconditionally include in API requests. By default, fields with
16943	// empty values are omitted from API requests. However, any non-pointer,
16944	// non-interface field appearing in ForceSendFields will be sent to the
16945	// server regardless of whether the field is empty or not. This may be
16946	// used to include empty fields in Patch requests.
16947	ForceSendFields []string `json:"-"`
16948
16949	// NullFields is a list of field names (e.g. "Instances") to include in
16950	// API requests with the JSON null value. By default, fields with empty
16951	// values are omitted from API requests. However, any field with an
16952	// empty value appearing in NullFields will be sent to the server as
16953	// null. It is an error if a field in this list has a non-empty value.
16954	// This may be used to include null fields in Patch requests.
16955	NullFields []string `json:"-"`
16956}
16957
16958func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
16959	type NoMethod InstanceGroupManagersDeleteInstancesRequest
16960	raw := NoMethod(*s)
16961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16962}
16963
16964// InstanceGroupManagersDeletePerInstanceConfigsReq:
16965// InstanceGroupManagers.deletePerInstanceConfigs
16966type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
16967	// Names: The list of instance names for which we want to delete
16968	// per-instance configs on this managed instance group.
16969	Names []string `json:"names,omitempty"`
16970
16971	// ForceSendFields is a list of field names (e.g. "Names") to
16972	// unconditionally include in API requests. By default, fields with
16973	// empty values are omitted from API requests. However, any non-pointer,
16974	// non-interface field appearing in ForceSendFields will be sent to the
16975	// server regardless of whether the field is empty or not. This may be
16976	// used to include empty fields in Patch requests.
16977	ForceSendFields []string `json:"-"`
16978
16979	// NullFields is a list of field names (e.g. "Names") to include in API
16980	// requests with the JSON null value. By default, fields with empty
16981	// values are omitted from API requests. However, any field with an
16982	// empty value appearing in NullFields will be sent to the server as
16983	// null. It is an error if a field in this list has a non-empty value.
16984	// This may be used to include null fields in Patch requests.
16985	NullFields []string `json:"-"`
16986}
16987
16988func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16989	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
16990	raw := NoMethod(*s)
16991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16992}
16993
16994type InstanceGroupManagersListErrorsResponse struct {
16995	// Items: [Output Only] The list of errors of the managed instance
16996	// group.
16997	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
16998
16999	// NextPageToken: [Output Only] This token allows you to get the next
17000	// page of results for list requests. If the number of results is larger
17001	// than maxResults, use the nextPageToken as a value for the query
17002	// parameter pageToken in the next list request. Subsequent list
17003	// requests will have their own nextPageToken to continue paging through
17004	// the results.
17005	NextPageToken string `json:"nextPageToken,omitempty"`
17006
17007	// ServerResponse contains the HTTP response code and headers from the
17008	// server.
17009	googleapi.ServerResponse `json:"-"`
17010
17011	// ForceSendFields is a list of field names (e.g. "Items") to
17012	// unconditionally include in API requests. By default, fields with
17013	// empty values are omitted from API requests. However, any non-pointer,
17014	// non-interface field appearing in ForceSendFields will be sent to the
17015	// server regardless of whether the field is empty or not. This may be
17016	// used to include empty fields in Patch requests.
17017	ForceSendFields []string `json:"-"`
17018
17019	// NullFields is a list of field names (e.g. "Items") to include in API
17020	// requests with the JSON null value. By default, fields with empty
17021	// values are omitted from API requests. However, any field with an
17022	// empty value appearing in NullFields will be sent to the server as
17023	// null. It is an error if a field in this list has a non-empty value.
17024	// This may be used to include null fields in Patch requests.
17025	NullFields []string `json:"-"`
17026}
17027
17028func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
17029	type NoMethod InstanceGroupManagersListErrorsResponse
17030	raw := NoMethod(*s)
17031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17032}
17033
17034type InstanceGroupManagersListManagedInstancesResponse struct {
17035	// ManagedInstances: [Output Only] The list of instances in the managed
17036	// instance group.
17037	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
17038
17039	// NextPageToken: [Output Only] This token allows you to get the next
17040	// page of results for list requests. If the number of results is larger
17041	// than maxResults, use the nextPageToken as a value for the query
17042	// parameter pageToken in the next list request. Subsequent list
17043	// requests will have their own nextPageToken to continue paging through
17044	// the results.
17045	NextPageToken string `json:"nextPageToken,omitempty"`
17046
17047	// ServerResponse contains the HTTP response code and headers from the
17048	// server.
17049	googleapi.ServerResponse `json:"-"`
17050
17051	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
17052	// unconditionally include in API requests. By default, fields with
17053	// empty values are omitted from API requests. However, any non-pointer,
17054	// non-interface field appearing in ForceSendFields will be sent to the
17055	// server regardless of whether the field is empty or not. This may be
17056	// used to include empty fields in Patch requests.
17057	ForceSendFields []string `json:"-"`
17058
17059	// NullFields is a list of field names (e.g. "ManagedInstances") to
17060	// include in API requests with the JSON null value. By default, fields
17061	// with empty values are omitted from API requests. However, any field
17062	// with an empty value appearing in NullFields will be sent to the
17063	// server as null. It is an error if a field in this list has a
17064	// non-empty value. This may be used to include null fields in Patch
17065	// requests.
17066	NullFields []string `json:"-"`
17067}
17068
17069func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
17070	type NoMethod InstanceGroupManagersListManagedInstancesResponse
17071	raw := NoMethod(*s)
17072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17073}
17074
17075type InstanceGroupManagersListPerInstanceConfigsResp struct {
17076	// Items: [Output Only] The list of PerInstanceConfig.
17077	Items []*PerInstanceConfig `json:"items,omitempty"`
17078
17079	// NextPageToken: [Output Only] This token allows you to get the next
17080	// page of results for list requests. If the number of results is larger
17081	// than maxResults, use the nextPageToken as a value for the query
17082	// parameter pageToken in the next list request. Subsequent list
17083	// requests will have their own nextPageToken to continue paging through
17084	// the results.
17085	NextPageToken string `json:"nextPageToken,omitempty"`
17086
17087	// Warning: [Output Only] Informational warning message.
17088	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
17089
17090	// ServerResponse contains the HTTP response code and headers from the
17091	// server.
17092	googleapi.ServerResponse `json:"-"`
17093
17094	// ForceSendFields is a list of field names (e.g. "Items") to
17095	// unconditionally include in API requests. By default, fields with
17096	// empty values are omitted from API requests. However, any non-pointer,
17097	// non-interface field appearing in ForceSendFields will be sent to the
17098	// server regardless of whether the field is empty or not. This may be
17099	// used to include empty fields in Patch requests.
17100	ForceSendFields []string `json:"-"`
17101
17102	// NullFields is a list of field names (e.g. "Items") to include in API
17103	// requests with the JSON null value. By default, fields with empty
17104	// values are omitted from API requests. However, any field with an
17105	// empty value appearing in NullFields will be sent to the server as
17106	// null. It is an error if a field in this list has a non-empty value.
17107	// This may be used to include null fields in Patch requests.
17108	NullFields []string `json:"-"`
17109}
17110
17111func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
17112	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
17113	raw := NoMethod(*s)
17114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17115}
17116
17117// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
17118// Informational warning message.
17119type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
17120	// Code: [Output Only] A warning code, if applicable. For example,
17121	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17122	// the response.
17123	//
17124	// Possible values:
17125	//   "CLEANUP_FAILED"
17126	//   "DEPRECATED_RESOURCE_USED"
17127	//   "DEPRECATED_TYPE_USED"
17128	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17129	//   "EXPERIMENTAL_TYPE_USED"
17130	//   "EXTERNAL_API_WARNING"
17131	//   "FIELD_VALUE_OVERRIDEN"
17132	//   "INJECTED_KERNELS_DEPRECATED"
17133	//   "MISSING_TYPE_DEPENDENCY"
17134	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17135	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17136	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17137	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17138	//   "NEXT_HOP_NOT_RUNNING"
17139	//   "NOT_CRITICAL_ERROR"
17140	//   "NO_RESULTS_ON_PAGE"
17141	//   "PARTIAL_SUCCESS"
17142	//   "REQUIRED_TOS_AGREEMENT"
17143	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17144	//   "RESOURCE_NOT_DELETED"
17145	//   "SCHEMA_VALIDATION_IGNORED"
17146	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17147	//   "UNDECLARED_PROPERTIES"
17148	//   "UNREACHABLE"
17149	Code string `json:"code,omitempty"`
17150
17151	// Data: [Output Only] Metadata about this warning in key: value format.
17152	// For example:
17153	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17154	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
17155
17156	// Message: [Output Only] A human-readable description of the warning
17157	// code.
17158	Message string `json:"message,omitempty"`
17159
17160	// ForceSendFields is a list of field names (e.g. "Code") to
17161	// unconditionally include in API requests. By default, fields with
17162	// empty values are omitted from API requests. However, any non-pointer,
17163	// non-interface field appearing in ForceSendFields will be sent to the
17164	// server regardless of whether the field is empty or not. This may be
17165	// used to include empty fields in Patch requests.
17166	ForceSendFields []string `json:"-"`
17167
17168	// NullFields is a list of field names (e.g. "Code") to include in API
17169	// requests with the JSON null value. By default, fields with empty
17170	// values are omitted from API requests. However, any field with an
17171	// empty value appearing in NullFields will be sent to the server as
17172	// null. It is an error if a field in this list has a non-empty value.
17173	// This may be used to include null fields in Patch requests.
17174	NullFields []string `json:"-"`
17175}
17176
17177func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
17178	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
17179	raw := NoMethod(*s)
17180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17181}
17182
17183type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
17184	// Key: [Output Only] A key that provides more detail on the warning
17185	// being returned. For example, for warnings where there are no results
17186	// in a list request for a particular zone, this key might be scope and
17187	// the key value might be the zone name. Other examples might be a key
17188	// indicating a deprecated resource and a suggested replacement, or a
17189	// warning about invalid network settings (for example, if an instance
17190	// attempts to perform IP forwarding but is not enabled for IP
17191	// forwarding).
17192	Key string `json:"key,omitempty"`
17193
17194	// Value: [Output Only] A warning data value corresponding to the key.
17195	Value string `json:"value,omitempty"`
17196
17197	// ForceSendFields is a list of field names (e.g. "Key") to
17198	// unconditionally include in API requests. By default, fields with
17199	// empty values are omitted from API requests. However, any non-pointer,
17200	// non-interface field appearing in ForceSendFields will be sent to the
17201	// server regardless of whether the field is empty or not. This may be
17202	// used to include empty fields in Patch requests.
17203	ForceSendFields []string `json:"-"`
17204
17205	// NullFields is a list of field names (e.g. "Key") to include in API
17206	// requests with the JSON null value. By default, fields with empty
17207	// values are omitted from API requests. However, any field with an
17208	// empty value appearing in NullFields will be sent to the server as
17209	// null. It is an error if a field in this list has a non-empty value.
17210	// This may be used to include null fields in Patch requests.
17211	NullFields []string `json:"-"`
17212}
17213
17214func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
17215	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
17216	raw := NoMethod(*s)
17217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17218}
17219
17220// InstanceGroupManagersPatchPerInstanceConfigsReq:
17221// InstanceGroupManagers.patchPerInstanceConfigs
17222type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
17223	// PerInstanceConfigs: The list of per-instance configs to insert or
17224	// patch on this managed instance group.
17225	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
17226
17227	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
17228	// to unconditionally include in API requests. By default, fields with
17229	// empty values are omitted from API requests. However, any non-pointer,
17230	// non-interface field appearing in ForceSendFields will be sent to the
17231	// server regardless of whether the field is empty or not. This may be
17232	// used to include empty fields in Patch requests.
17233	ForceSendFields []string `json:"-"`
17234
17235	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
17236	// include in API requests with the JSON null value. By default, fields
17237	// with empty values are omitted from API requests. However, any field
17238	// with an empty value appearing in NullFields will be sent to the
17239	// server as null. It is an error if a field in this list has a
17240	// non-empty value. This may be used to include null fields in Patch
17241	// requests.
17242	NullFields []string `json:"-"`
17243}
17244
17245func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17246	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
17247	raw := NoMethod(*s)
17248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17249}
17250
17251type InstanceGroupManagersRecreateInstancesRequest struct {
17252	// Instances: The URLs of one or more instances to recreate. This can be
17253	// a full URL or a partial URL, such as
17254	// zones/[ZONE]/instances/[INSTANCE_NAME].
17255	Instances []string `json:"instances,omitempty"`
17256
17257	// ForceSendFields is a list of field names (e.g. "Instances") to
17258	// unconditionally include in API requests. By default, fields with
17259	// empty values are omitted from API requests. However, any non-pointer,
17260	// non-interface field appearing in ForceSendFields will be sent to the
17261	// server regardless of whether the field is empty or not. This may be
17262	// used to include empty fields in Patch requests.
17263	ForceSendFields []string `json:"-"`
17264
17265	// NullFields is a list of field names (e.g. "Instances") to include in
17266	// API requests with the JSON null value. By default, fields with empty
17267	// values are omitted from API requests. However, any field with an
17268	// empty value appearing in NullFields will be sent to the server as
17269	// null. It is an error if a field in this list has a non-empty value.
17270	// This may be used to include null fields in Patch requests.
17271	NullFields []string `json:"-"`
17272}
17273
17274func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
17275	type NoMethod InstanceGroupManagersRecreateInstancesRequest
17276	raw := NoMethod(*s)
17277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17278}
17279
17280type InstanceGroupManagersResizeAdvancedRequest struct {
17281	// NoCreationRetries: If this flag is true, the managed instance group
17282	// attempts to create all instances initiated by this resize request
17283	// only once. If there is an error during creation, the managed instance
17284	// group does not retry create this instance, and we will decrease the
17285	// targetSize of the request instead. If the flag is false, the group
17286	// attempts to recreate each instance continuously until it
17287	// succeeds.
17288	//
17289	// This flag matters only in the first attempt of creation of an
17290	// instance. After an instance is successfully created while this flag
17291	// is enabled, the instance behaves the same way as all the other
17292	// instances created with a regular resize request. In particular, if a
17293	// running instance dies unexpectedly at a later time and needs to be
17294	// recreated, this mode does not affect the recreation behavior in that
17295	// scenario.
17296	//
17297	// This flag is applicable only to the current resize request. It does
17298	// not influence other resize requests in any way.
17299	//
17300	// You can see which instances is being creating in which mode by
17301	// calling the get or listManagedInstances API.
17302	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
17303
17304	// TargetSize: The number of running instances that the managed instance
17305	// group should maintain at any given time. The group automatically adds
17306	// or removes instances to maintain the number of instances specified by
17307	// this parameter.
17308	TargetSize int64 `json:"targetSize,omitempty"`
17309
17310	// ForceSendFields is a list of field names (e.g. "NoCreationRetries")
17311	// to unconditionally include in API requests. By default, fields with
17312	// empty values are omitted from API requests. However, any non-pointer,
17313	// non-interface field appearing in ForceSendFields will be sent to the
17314	// server regardless of whether the field is empty or not. This may be
17315	// used to include empty fields in Patch requests.
17316	ForceSendFields []string `json:"-"`
17317
17318	// NullFields is a list of field names (e.g. "NoCreationRetries") to
17319	// include in API requests with the JSON null value. By default, fields
17320	// with empty values are omitted from API requests. However, any field
17321	// with an empty value appearing in NullFields will be sent to the
17322	// server as null. It is an error if a field in this list has a
17323	// non-empty value. This may be used to include null fields in Patch
17324	// requests.
17325	NullFields []string `json:"-"`
17326}
17327
17328func (s *InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
17329	type NoMethod InstanceGroupManagersResizeAdvancedRequest
17330	raw := NoMethod(*s)
17331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17332}
17333
17334type InstanceGroupManagersScopedList struct {
17335	// InstanceGroupManagers: [Output Only] The list of managed instance
17336	// groups that are contained in the specified project and zone.
17337	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
17338
17339	// Warning: [Output Only] The warning that replaces the list of managed
17340	// instance groups when the list is empty.
17341	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
17342
17343	// ForceSendFields is a list of field names (e.g.
17344	// "InstanceGroupManagers") to unconditionally include in API requests.
17345	// By default, fields with empty values are omitted from API requests.
17346	// However, any non-pointer, non-interface field appearing in
17347	// ForceSendFields will be sent to the server regardless of whether the
17348	// field is empty or not. This may be used to include empty fields in
17349	// Patch requests.
17350	ForceSendFields []string `json:"-"`
17351
17352	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
17353	// include in API requests with the JSON null value. By default, fields
17354	// with empty values are omitted from API requests. However, any field
17355	// with an empty value appearing in NullFields will be sent to the
17356	// server as null. It is an error if a field in this list has a
17357	// non-empty value. This may be used to include null fields in Patch
17358	// requests.
17359	NullFields []string `json:"-"`
17360}
17361
17362func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
17363	type NoMethod InstanceGroupManagersScopedList
17364	raw := NoMethod(*s)
17365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17366}
17367
17368// InstanceGroupManagersScopedListWarning: [Output Only] The warning
17369// that replaces the list of managed instance groups when the list is
17370// empty.
17371type InstanceGroupManagersScopedListWarning struct {
17372	// Code: [Output Only] A warning code, if applicable. For example,
17373	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17374	// the response.
17375	//
17376	// Possible values:
17377	//   "CLEANUP_FAILED"
17378	//   "DEPRECATED_RESOURCE_USED"
17379	//   "DEPRECATED_TYPE_USED"
17380	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17381	//   "EXPERIMENTAL_TYPE_USED"
17382	//   "EXTERNAL_API_WARNING"
17383	//   "FIELD_VALUE_OVERRIDEN"
17384	//   "INJECTED_KERNELS_DEPRECATED"
17385	//   "MISSING_TYPE_DEPENDENCY"
17386	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17387	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17388	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17389	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17390	//   "NEXT_HOP_NOT_RUNNING"
17391	//   "NOT_CRITICAL_ERROR"
17392	//   "NO_RESULTS_ON_PAGE"
17393	//   "PARTIAL_SUCCESS"
17394	//   "REQUIRED_TOS_AGREEMENT"
17395	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17396	//   "RESOURCE_NOT_DELETED"
17397	//   "SCHEMA_VALIDATION_IGNORED"
17398	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17399	//   "UNDECLARED_PROPERTIES"
17400	//   "UNREACHABLE"
17401	Code string `json:"code,omitempty"`
17402
17403	// Data: [Output Only] Metadata about this warning in key: value format.
17404	// For example:
17405	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17406	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
17407
17408	// Message: [Output Only] A human-readable description of the warning
17409	// code.
17410	Message string `json:"message,omitempty"`
17411
17412	// ForceSendFields is a list of field names (e.g. "Code") to
17413	// unconditionally include in API requests. By default, fields with
17414	// empty values are omitted from API requests. However, any non-pointer,
17415	// non-interface field appearing in ForceSendFields will be sent to the
17416	// server regardless of whether the field is empty or not. This may be
17417	// used to include empty fields in Patch requests.
17418	ForceSendFields []string `json:"-"`
17419
17420	// NullFields is a list of field names (e.g. "Code") to include in API
17421	// requests with the JSON null value. By default, fields with empty
17422	// values are omitted from API requests. However, any field with an
17423	// empty value appearing in NullFields will be sent to the server as
17424	// null. It is an error if a field in this list has a non-empty value.
17425	// This may be used to include null fields in Patch requests.
17426	NullFields []string `json:"-"`
17427}
17428
17429func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
17430	type NoMethod InstanceGroupManagersScopedListWarning
17431	raw := NoMethod(*s)
17432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17433}
17434
17435type InstanceGroupManagersScopedListWarningData struct {
17436	// Key: [Output Only] A key that provides more detail on the warning
17437	// being returned. For example, for warnings where there are no results
17438	// in a list request for a particular zone, this key might be scope and
17439	// the key value might be the zone name. Other examples might be a key
17440	// indicating a deprecated resource and a suggested replacement, or a
17441	// warning about invalid network settings (for example, if an instance
17442	// attempts to perform IP forwarding but is not enabled for IP
17443	// forwarding).
17444	Key string `json:"key,omitempty"`
17445
17446	// Value: [Output Only] A warning data value corresponding to the key.
17447	Value string `json:"value,omitempty"`
17448
17449	// ForceSendFields is a list of field names (e.g. "Key") to
17450	// unconditionally include in API requests. By default, fields with
17451	// empty values are omitted from API requests. However, any non-pointer,
17452	// non-interface field appearing in ForceSendFields will be sent to the
17453	// server regardless of whether the field is empty or not. This may be
17454	// used to include empty fields in Patch requests.
17455	ForceSendFields []string `json:"-"`
17456
17457	// NullFields is a list of field names (e.g. "Key") to include in API
17458	// 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 *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
17467	type NoMethod InstanceGroupManagersScopedListWarningData
17468	raw := NoMethod(*s)
17469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17470}
17471
17472type InstanceGroupManagersSetAutoHealingRequest struct {
17473	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
17474
17475	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
17476	// to unconditionally include in API requests. By default, fields with
17477	// empty values are omitted from API requests. However, any non-pointer,
17478	// non-interface field appearing in ForceSendFields will be sent to the
17479	// server regardless of whether the field is empty or not. This may be
17480	// used to include empty fields in Patch requests.
17481	ForceSendFields []string `json:"-"`
17482
17483	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
17484	// include in API requests with the JSON null value. By default, fields
17485	// with empty values are omitted from API requests. However, any field
17486	// with an empty value appearing in NullFields will be sent to the
17487	// server as null. It is an error if a field in this list has a
17488	// non-empty value. This may be used to include null fields in Patch
17489	// requests.
17490	NullFields []string `json:"-"`
17491}
17492
17493func (s *InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
17494	type NoMethod InstanceGroupManagersSetAutoHealingRequest
17495	raw := NoMethod(*s)
17496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17497}
17498
17499type InstanceGroupManagersSetInstanceTemplateRequest struct {
17500	// InstanceTemplate: The URL of the instance template that is specified
17501	// for this managed instance group. The group uses this template to
17502	// create all new instances in the managed instance group.
17503	InstanceTemplate string `json:"instanceTemplate,omitempty"`
17504
17505	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
17506	// unconditionally include in API requests. By default, fields with
17507	// empty values are omitted from API requests. However, any non-pointer,
17508	// non-interface field appearing in ForceSendFields will be sent to the
17509	// server regardless of whether the field is empty or not. This may be
17510	// used to include empty fields in Patch requests.
17511	ForceSendFields []string `json:"-"`
17512
17513	// NullFields is a list of field names (e.g. "InstanceTemplate") to
17514	// include in API requests with the JSON null value. By default, fields
17515	// with empty values are omitted from API requests. However, any field
17516	// with an empty value appearing in NullFields will be sent to the
17517	// server as null. It is an error if a field in this list has a
17518	// non-empty value. This may be used to include null fields in Patch
17519	// requests.
17520	NullFields []string `json:"-"`
17521}
17522
17523func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
17524	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
17525	raw := NoMethod(*s)
17526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17527}
17528
17529type InstanceGroupManagersSetTargetPoolsRequest struct {
17530	// Fingerprint: The fingerprint of the target pools information. Use
17531	// this optional property to prevent conflicts when multiple users
17532	// change the target pools settings concurrently. Obtain the fingerprint
17533	// with the instanceGroupManagers.get method. Then, include the
17534	// fingerprint in your request to ensure that you do not overwrite
17535	// changes that were applied from another concurrent request.
17536	Fingerprint string `json:"fingerprint,omitempty"`
17537
17538	// TargetPools: The list of target pool URLs that instances in this
17539	// managed instance group belong to. The managed instance group applies
17540	// these target pools to all of the instances in the group. Existing
17541	// instances and new instances in the group all receive these target
17542	// pool settings.
17543	TargetPools []string `json:"targetPools,omitempty"`
17544
17545	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
17546	// unconditionally include in API requests. By default, fields with
17547	// empty values are omitted from API requests. However, any non-pointer,
17548	// non-interface field appearing in ForceSendFields will be sent to the
17549	// server regardless of whether the field is empty or not. This may be
17550	// used to include empty fields in Patch requests.
17551	ForceSendFields []string `json:"-"`
17552
17553	// NullFields is a list of field names (e.g. "Fingerprint") to include
17554	// in API requests with the JSON null value. By default, fields with
17555	// empty values are omitted from API requests. However, any field with
17556	// an empty value appearing in NullFields will be sent to the server as
17557	// null. It is an error if a field in this list has a non-empty value.
17558	// This may be used to include null fields in Patch requests.
17559	NullFields []string `json:"-"`
17560}
17561
17562func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
17563	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
17564	raw := NoMethod(*s)
17565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17566}
17567
17568// InstanceGroupManagersUpdatePerInstanceConfigsReq:
17569// InstanceGroupManagers.updatePerInstanceConfigs
17570type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
17571	// PerInstanceConfigs: The list of per-instance configs to insert or
17572	// patch on this managed instance group.
17573	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
17574
17575	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
17576	// to unconditionally include in API requests. By default, fields with
17577	// empty values are omitted from API requests. However, any non-pointer,
17578	// non-interface field appearing in ForceSendFields will be sent to the
17579	// server regardless of whether the field is empty or not. This may be
17580	// used to include empty fields in Patch requests.
17581	ForceSendFields []string `json:"-"`
17582
17583	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
17584	// include in API requests with the JSON null value. By default, fields
17585	// with empty values are omitted from API requests. However, any field
17586	// with an empty value appearing in NullFields will be sent to the
17587	// server as null. It is an error if a field in this list has a
17588	// non-empty value. This may be used to include null fields in Patch
17589	// requests.
17590	NullFields []string `json:"-"`
17591}
17592
17593func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17594	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
17595	raw := NoMethod(*s)
17596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17597}
17598
17599type InstanceGroupsAddInstancesRequest struct {
17600	// Instances: The list of instances to add to the instance group.
17601	Instances []*InstanceReference `json:"instances,omitempty"`
17602
17603	// ForceSendFields is a list of field names (e.g. "Instances") to
17604	// unconditionally include in API requests. By default, fields with
17605	// empty values are omitted from API requests. However, any non-pointer,
17606	// non-interface field appearing in ForceSendFields will be sent to the
17607	// server regardless of whether the field is empty or not. This may be
17608	// used to include empty fields in Patch requests.
17609	ForceSendFields []string `json:"-"`
17610
17611	// NullFields is a list of field names (e.g. "Instances") to include in
17612	// API requests with the JSON null value. By default, fields with empty
17613	// values are omitted from API requests. However, any field with an
17614	// empty value appearing in NullFields will be sent to the server as
17615	// null. It is an error if a field in this list has a non-empty value.
17616	// This may be used to include null fields in Patch requests.
17617	NullFields []string `json:"-"`
17618}
17619
17620func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
17621	type NoMethod InstanceGroupsAddInstancesRequest
17622	raw := NoMethod(*s)
17623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17624}
17625
17626type InstanceGroupsListInstances struct {
17627	// Id: [Output Only] Unique identifier for the resource; defined by the
17628	// server.
17629	Id string `json:"id,omitempty"`
17630
17631	// Items: A list of InstanceWithNamedPorts resources.
17632	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
17633
17634	// Kind: [Output Only] The resource type, which is always
17635	// compute#instanceGroupsListInstances for the list of instances in the
17636	// specified instance group.
17637	Kind string `json:"kind,omitempty"`
17638
17639	// NextPageToken: [Output Only] This token allows you to get the next
17640	// page of results for list requests. If the number of results is larger
17641	// than maxResults, use the nextPageToken as a value for the query
17642	// parameter pageToken in the next list request. Subsequent list
17643	// requests will have their own nextPageToken to continue paging through
17644	// the results.
17645	NextPageToken string `json:"nextPageToken,omitempty"`
17646
17647	// SelfLink: [Output Only] Server-defined URL for this resource.
17648	SelfLink string `json:"selfLink,omitempty"`
17649
17650	// Warning: [Output Only] Informational warning message.
17651	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
17652
17653	// ServerResponse contains the HTTP response code and headers from the
17654	// server.
17655	googleapi.ServerResponse `json:"-"`
17656
17657	// ForceSendFields is a list of field names (e.g. "Id") to
17658	// unconditionally include in API requests. By default, fields with
17659	// empty values are omitted from API requests. However, any non-pointer,
17660	// non-interface field appearing in ForceSendFields will be sent to the
17661	// server regardless of whether the field is empty or not. This may be
17662	// used to include empty fields in Patch requests.
17663	ForceSendFields []string `json:"-"`
17664
17665	// NullFields is a list of field names (e.g. "Id") to include in API
17666	// requests with the JSON null value. By default, fields with empty
17667	// values are omitted from API requests. However, any field with an
17668	// empty value appearing in NullFields will be sent to the server as
17669	// null. It is an error if a field in this list has a non-empty value.
17670	// This may be used to include null fields in Patch requests.
17671	NullFields []string `json:"-"`
17672}
17673
17674func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
17675	type NoMethod InstanceGroupsListInstances
17676	raw := NoMethod(*s)
17677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17678}
17679
17680// InstanceGroupsListInstancesWarning: [Output Only] Informational
17681// warning message.
17682type InstanceGroupsListInstancesWarning struct {
17683	// Code: [Output Only] A warning code, if applicable. For example,
17684	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17685	// the response.
17686	//
17687	// Possible values:
17688	//   "CLEANUP_FAILED"
17689	//   "DEPRECATED_RESOURCE_USED"
17690	//   "DEPRECATED_TYPE_USED"
17691	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17692	//   "EXPERIMENTAL_TYPE_USED"
17693	//   "EXTERNAL_API_WARNING"
17694	//   "FIELD_VALUE_OVERRIDEN"
17695	//   "INJECTED_KERNELS_DEPRECATED"
17696	//   "MISSING_TYPE_DEPENDENCY"
17697	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17698	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17699	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17700	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17701	//   "NEXT_HOP_NOT_RUNNING"
17702	//   "NOT_CRITICAL_ERROR"
17703	//   "NO_RESULTS_ON_PAGE"
17704	//   "PARTIAL_SUCCESS"
17705	//   "REQUIRED_TOS_AGREEMENT"
17706	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17707	//   "RESOURCE_NOT_DELETED"
17708	//   "SCHEMA_VALIDATION_IGNORED"
17709	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17710	//   "UNDECLARED_PROPERTIES"
17711	//   "UNREACHABLE"
17712	Code string `json:"code,omitempty"`
17713
17714	// Data: [Output Only] Metadata about this warning in key: value format.
17715	// For example:
17716	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17717	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
17718
17719	// Message: [Output Only] A human-readable description of the warning
17720	// code.
17721	Message string `json:"message,omitempty"`
17722
17723	// ForceSendFields is a list of field names (e.g. "Code") to
17724	// unconditionally include in API requests. By default, fields with
17725	// empty values are omitted from API requests. However, any non-pointer,
17726	// non-interface field appearing in ForceSendFields will be sent to the
17727	// server regardless of whether the field is empty or not. This may be
17728	// used to include empty fields in Patch requests.
17729	ForceSendFields []string `json:"-"`
17730
17731	// NullFields is a list of field names (e.g. "Code") to include in API
17732	// requests with the JSON null value. By default, fields with empty
17733	// values are omitted from API requests. However, any field with an
17734	// empty value appearing in NullFields will be sent to the server as
17735	// null. It is an error if a field in this list has a non-empty value.
17736	// This may be used to include null fields in Patch requests.
17737	NullFields []string `json:"-"`
17738}
17739
17740func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
17741	type NoMethod InstanceGroupsListInstancesWarning
17742	raw := NoMethod(*s)
17743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17744}
17745
17746type InstanceGroupsListInstancesWarningData struct {
17747	// Key: [Output Only] A key that provides more detail on the warning
17748	// being returned. For example, for warnings where there are no results
17749	// in a list request for a particular zone, this key might be scope and
17750	// the key value might be the zone name. Other examples might be a key
17751	// indicating a deprecated resource and a suggested replacement, or a
17752	// warning about invalid network settings (for example, if an instance
17753	// attempts to perform IP forwarding but is not enabled for IP
17754	// forwarding).
17755	Key string `json:"key,omitempty"`
17756
17757	// Value: [Output Only] A warning data value corresponding to the key.
17758	Value string `json:"value,omitempty"`
17759
17760	// ForceSendFields is a list of field names (e.g. "Key") to
17761	// unconditionally include in API requests. By default, fields with
17762	// empty values are omitted from API requests. However, any non-pointer,
17763	// non-interface field appearing in ForceSendFields will be sent to the
17764	// server regardless of whether the field is empty or not. This may be
17765	// used to include empty fields in Patch requests.
17766	ForceSendFields []string `json:"-"`
17767
17768	// NullFields is a list of field names (e.g. "Key") to include in API
17769	// requests with the JSON null value. By default, fields with empty
17770	// values are omitted from API requests. However, any field with an
17771	// empty value appearing in NullFields will be sent to the server as
17772	// null. It is an error if a field in this list has a non-empty value.
17773	// This may be used to include null fields in Patch requests.
17774	NullFields []string `json:"-"`
17775}
17776
17777func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
17778	type NoMethod InstanceGroupsListInstancesWarningData
17779	raw := NoMethod(*s)
17780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17781}
17782
17783type InstanceGroupsListInstancesRequest struct {
17784	// InstanceState: A filter for the state of the instances in the
17785	// instance group. Valid options are ALL or RUNNING. If you do not
17786	// specify this parameter the list includes all instances regardless of
17787	// their state.
17788	//
17789	// Possible values:
17790	//   "ALL"
17791	//   "RUNNING"
17792	InstanceState string `json:"instanceState,omitempty"`
17793
17794	// ForceSendFields is a list of field names (e.g. "InstanceState") to
17795	// unconditionally include in API requests. By default, fields with
17796	// empty values are omitted from API requests. However, any non-pointer,
17797	// non-interface field appearing in ForceSendFields will be sent to the
17798	// server regardless of whether the field is empty or not. This may be
17799	// used to include empty fields in Patch requests.
17800	ForceSendFields []string `json:"-"`
17801
17802	// NullFields is a list of field names (e.g. "InstanceState") to include
17803	// in API requests with the JSON null value. By default, fields with
17804	// empty values are omitted from API requests. However, any field with
17805	// an empty value appearing in NullFields will be sent to the server as
17806	// null. It is an error if a field in this list has a non-empty value.
17807	// This may be used to include null fields in Patch requests.
17808	NullFields []string `json:"-"`
17809}
17810
17811func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
17812	type NoMethod InstanceGroupsListInstancesRequest
17813	raw := NoMethod(*s)
17814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17815}
17816
17817type InstanceGroupsRemoveInstancesRequest struct {
17818	// Instances: The list of instances to remove from the instance group.
17819	Instances []*InstanceReference `json:"instances,omitempty"`
17820
17821	// ForceSendFields is a list of field names (e.g. "Instances") to
17822	// unconditionally include in API requests. By default, fields with
17823	// empty values are omitted from API requests. However, any non-pointer,
17824	// non-interface field appearing in ForceSendFields will be sent to the
17825	// server regardless of whether the field is empty or not. This may be
17826	// used to include empty fields in Patch requests.
17827	ForceSendFields []string `json:"-"`
17828
17829	// NullFields is a list of field names (e.g. "Instances") to include in
17830	// API requests with the JSON null value. By default, fields with empty
17831	// values are omitted from API requests. However, any field with an
17832	// empty value appearing in NullFields will be sent to the server as
17833	// null. It is an error if a field in this list has a non-empty value.
17834	// This may be used to include null fields in Patch requests.
17835	NullFields []string `json:"-"`
17836}
17837
17838func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
17839	type NoMethod InstanceGroupsRemoveInstancesRequest
17840	raw := NoMethod(*s)
17841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17842}
17843
17844type InstanceGroupsScopedList struct {
17845	// InstanceGroups: [Output Only] The list of instance groups that are
17846	// contained in this scope.
17847	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
17848
17849	// Warning: [Output Only] An informational warning that replaces the
17850	// list of instance groups when the list is empty.
17851	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
17852
17853	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
17854	// unconditionally include in API requests. By default, fields with
17855	// empty values are omitted from API requests. However, any non-pointer,
17856	// non-interface field appearing in ForceSendFields will be sent to the
17857	// server regardless of whether the field is empty or not. This may be
17858	// used to include empty fields in Patch requests.
17859	ForceSendFields []string `json:"-"`
17860
17861	// NullFields is a list of field names (e.g. "InstanceGroups") to
17862	// include in API requests with the JSON null value. By default, fields
17863	// with empty values are omitted from API requests. However, any field
17864	// with an empty value appearing in NullFields will be sent to the
17865	// server as null. It is an error if a field in this list has a
17866	// non-empty value. This may be used to include null fields in Patch
17867	// requests.
17868	NullFields []string `json:"-"`
17869}
17870
17871func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
17872	type NoMethod InstanceGroupsScopedList
17873	raw := NoMethod(*s)
17874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17875}
17876
17877// InstanceGroupsScopedListWarning: [Output Only] An informational
17878// warning that replaces the list of instance groups when the list is
17879// empty.
17880type InstanceGroupsScopedListWarning struct {
17881	// Code: [Output Only] A warning code, if applicable. For example,
17882	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17883	// the response.
17884	//
17885	// Possible values:
17886	//   "CLEANUP_FAILED"
17887	//   "DEPRECATED_RESOURCE_USED"
17888	//   "DEPRECATED_TYPE_USED"
17889	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17890	//   "EXPERIMENTAL_TYPE_USED"
17891	//   "EXTERNAL_API_WARNING"
17892	//   "FIELD_VALUE_OVERRIDEN"
17893	//   "INJECTED_KERNELS_DEPRECATED"
17894	//   "MISSING_TYPE_DEPENDENCY"
17895	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17896	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17897	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17898	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17899	//   "NEXT_HOP_NOT_RUNNING"
17900	//   "NOT_CRITICAL_ERROR"
17901	//   "NO_RESULTS_ON_PAGE"
17902	//   "PARTIAL_SUCCESS"
17903	//   "REQUIRED_TOS_AGREEMENT"
17904	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17905	//   "RESOURCE_NOT_DELETED"
17906	//   "SCHEMA_VALIDATION_IGNORED"
17907	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17908	//   "UNDECLARED_PROPERTIES"
17909	//   "UNREACHABLE"
17910	Code string `json:"code,omitempty"`
17911
17912	// Data: [Output Only] Metadata about this warning in key: value format.
17913	// For example:
17914	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17915	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
17916
17917	// Message: [Output Only] A human-readable description of the warning
17918	// code.
17919	Message string `json:"message,omitempty"`
17920
17921	// ForceSendFields is a list of field names (e.g. "Code") to
17922	// unconditionally include in API requests. By default, fields with
17923	// empty values are omitted from API requests. However, any non-pointer,
17924	// non-interface field appearing in ForceSendFields will be sent to the
17925	// server regardless of whether the field is empty or not. This may be
17926	// used to include empty fields in Patch requests.
17927	ForceSendFields []string `json:"-"`
17928
17929	// NullFields is a list of field names (e.g. "Code") to include in API
17930	// requests with the JSON null value. By default, fields with empty
17931	// values are omitted from API requests. However, any field with an
17932	// empty value appearing in NullFields will be sent to the server as
17933	// null. It is an error if a field in this list has a non-empty value.
17934	// This may be used to include null fields in Patch requests.
17935	NullFields []string `json:"-"`
17936}
17937
17938func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
17939	type NoMethod InstanceGroupsScopedListWarning
17940	raw := NoMethod(*s)
17941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17942}
17943
17944type InstanceGroupsScopedListWarningData struct {
17945	// Key: [Output Only] A key that provides more detail on the warning
17946	// being returned. For example, for warnings where there are no results
17947	// in a list request for a particular zone, this key might be scope and
17948	// the key value might be the zone name. Other examples might be a key
17949	// indicating a deprecated resource and a suggested replacement, or a
17950	// warning about invalid network settings (for example, if an instance
17951	// attempts to perform IP forwarding but is not enabled for IP
17952	// forwarding).
17953	Key string `json:"key,omitempty"`
17954
17955	// Value: [Output Only] A warning data value corresponding to the key.
17956	Value string `json:"value,omitempty"`
17957
17958	// ForceSendFields is a list of field names (e.g. "Key") to
17959	// unconditionally include in API requests. By default, fields with
17960	// empty values are omitted from API requests. However, any non-pointer,
17961	// non-interface field appearing in ForceSendFields will be sent to the
17962	// server regardless of whether the field is empty or not. This may be
17963	// used to include empty fields in Patch requests.
17964	ForceSendFields []string `json:"-"`
17965
17966	// NullFields is a list of field names (e.g. "Key") to include in API
17967	// requests with the JSON null value. By default, fields with empty
17968	// values are omitted from API requests. However, any field with an
17969	// empty value appearing in NullFields will be sent to the server as
17970	// null. It is an error if a field in this list has a non-empty value.
17971	// This may be used to include null fields in Patch requests.
17972	NullFields []string `json:"-"`
17973}
17974
17975func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
17976	type NoMethod InstanceGroupsScopedListWarningData
17977	raw := NoMethod(*s)
17978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17979}
17980
17981type InstanceGroupsSetNamedPortsRequest struct {
17982	// Fingerprint: The fingerprint of the named ports information for this
17983	// instance group. Use this optional property to prevent conflicts when
17984	// multiple users change the named ports settings concurrently. Obtain
17985	// the fingerprint with the instanceGroups.get method. Then, include the
17986	// fingerprint in your request to ensure that you do not overwrite
17987	// changes that were applied from another concurrent request. A request
17988	// with an incorrect fingerprint will fail with error 412
17989	// conditionNotMet.
17990	Fingerprint string `json:"fingerprint,omitempty"`
17991
17992	// NamedPorts: The list of named ports to set for this instance group.
17993	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
17994
17995	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
17996	// unconditionally include in API requests. By default, fields with
17997	// empty values are omitted from API requests. However, any non-pointer,
17998	// non-interface field appearing in ForceSendFields will be sent to the
17999	// server regardless of whether the field is empty or not. This may be
18000	// used to include empty fields in Patch requests.
18001	ForceSendFields []string `json:"-"`
18002
18003	// NullFields is a list of field names (e.g. "Fingerprint") to include
18004	// in API requests with the JSON null value. By default, fields with
18005	// empty values are omitted from API requests. However, any field with
18006	// an empty value appearing in NullFields will be sent to the server as
18007	// null. It is an error if a field in this list has a non-empty value.
18008	// This may be used to include null fields in Patch requests.
18009	NullFields []string `json:"-"`
18010}
18011
18012func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
18013	type NoMethod InstanceGroupsSetNamedPortsRequest
18014	raw := NoMethod(*s)
18015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18016}
18017
18018// InstanceList: Contains a list of instances.
18019type InstanceList struct {
18020	// Id: [Output Only] Unique identifier for the resource; defined by the
18021	// server.
18022	Id string `json:"id,omitempty"`
18023
18024	// Items: A list of Instance resources.
18025	Items []*Instance `json:"items,omitempty"`
18026
18027	// Kind: [Output Only] Type of resource. Always compute#instanceList for
18028	// lists of Instance resources.
18029	Kind string `json:"kind,omitempty"`
18030
18031	// NextPageToken: [Output Only] This token allows you to get the next
18032	// page of results for list requests. If the number of results is larger
18033	// than maxResults, use the nextPageToken as a value for the query
18034	// parameter pageToken in the next list request. Subsequent list
18035	// requests will have their own nextPageToken to continue paging through
18036	// the results.
18037	NextPageToken string `json:"nextPageToken,omitempty"`
18038
18039	// SelfLink: [Output Only] Server-defined URL for this resource.
18040	SelfLink string `json:"selfLink,omitempty"`
18041
18042	// Warning: [Output Only] Informational warning message.
18043	Warning *InstanceListWarning `json:"warning,omitempty"`
18044
18045	// ServerResponse contains the HTTP response code and headers from the
18046	// server.
18047	googleapi.ServerResponse `json:"-"`
18048
18049	// ForceSendFields is a list of field names (e.g. "Id") to
18050	// unconditionally include in API requests. By default, fields with
18051	// empty values are omitted from API requests. However, any non-pointer,
18052	// non-interface field appearing in ForceSendFields will be sent to the
18053	// server regardless of whether the field is empty or not. This may be
18054	// used to include empty fields in Patch requests.
18055	ForceSendFields []string `json:"-"`
18056
18057	// NullFields is a list of field names (e.g. "Id") to include in API
18058	// requests with the JSON null value. By default, fields with empty
18059	// values are omitted from API requests. However, any field with an
18060	// empty value appearing in NullFields will be sent to the server as
18061	// null. It is an error if a field in this list has a non-empty value.
18062	// This may be used to include null fields in Patch requests.
18063	NullFields []string `json:"-"`
18064}
18065
18066func (s *InstanceList) MarshalJSON() ([]byte, error) {
18067	type NoMethod InstanceList
18068	raw := NoMethod(*s)
18069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18070}
18071
18072// InstanceListWarning: [Output Only] Informational warning message.
18073type InstanceListWarning struct {
18074	// Code: [Output Only] A warning code, if applicable. For example,
18075	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18076	// the response.
18077	//
18078	// Possible values:
18079	//   "CLEANUP_FAILED"
18080	//   "DEPRECATED_RESOURCE_USED"
18081	//   "DEPRECATED_TYPE_USED"
18082	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18083	//   "EXPERIMENTAL_TYPE_USED"
18084	//   "EXTERNAL_API_WARNING"
18085	//   "FIELD_VALUE_OVERRIDEN"
18086	//   "INJECTED_KERNELS_DEPRECATED"
18087	//   "MISSING_TYPE_DEPENDENCY"
18088	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18089	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18090	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18091	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18092	//   "NEXT_HOP_NOT_RUNNING"
18093	//   "NOT_CRITICAL_ERROR"
18094	//   "NO_RESULTS_ON_PAGE"
18095	//   "PARTIAL_SUCCESS"
18096	//   "REQUIRED_TOS_AGREEMENT"
18097	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18098	//   "RESOURCE_NOT_DELETED"
18099	//   "SCHEMA_VALIDATION_IGNORED"
18100	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18101	//   "UNDECLARED_PROPERTIES"
18102	//   "UNREACHABLE"
18103	Code string `json:"code,omitempty"`
18104
18105	// Data: [Output Only] Metadata about this warning in key: value format.
18106	// For example:
18107	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18108	Data []*InstanceListWarningData `json:"data,omitempty"`
18109
18110	// Message: [Output Only] A human-readable description of the warning
18111	// code.
18112	Message string `json:"message,omitempty"`
18113
18114	// ForceSendFields is a list of field names (e.g. "Code") to
18115	// unconditionally include in API requests. By default, fields with
18116	// empty values are omitted from API requests. However, any non-pointer,
18117	// non-interface field appearing in ForceSendFields will be sent to the
18118	// server regardless of whether the field is empty or not. This may be
18119	// used to include empty fields in Patch requests.
18120	ForceSendFields []string `json:"-"`
18121
18122	// NullFields is a list of field names (e.g. "Code") to include in API
18123	// requests with the JSON null value. By default, fields with empty
18124	// values are omitted from API requests. However, any field with an
18125	// empty value appearing in NullFields will be sent to the server as
18126	// null. It is an error if a field in this list has a non-empty value.
18127	// This may be used to include null fields in Patch requests.
18128	NullFields []string `json:"-"`
18129}
18130
18131func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
18132	type NoMethod InstanceListWarning
18133	raw := NoMethod(*s)
18134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18135}
18136
18137type InstanceListWarningData struct {
18138	// Key: [Output Only] A key that provides more detail on the warning
18139	// being returned. For example, for warnings where there are no results
18140	// in a list request for a particular zone, this key might be scope and
18141	// the key value might be the zone name. Other examples might be a key
18142	// indicating a deprecated resource and a suggested replacement, or a
18143	// warning about invalid network settings (for example, if an instance
18144	// attempts to perform IP forwarding but is not enabled for IP
18145	// forwarding).
18146	Key string `json:"key,omitempty"`
18147
18148	// Value: [Output Only] A warning data value corresponding to the key.
18149	Value string `json:"value,omitempty"`
18150
18151	// ForceSendFields is a list of field names (e.g. "Key") to
18152	// unconditionally include in API requests. By default, fields with
18153	// empty values are omitted from API requests. However, any non-pointer,
18154	// non-interface field appearing in ForceSendFields will be sent to the
18155	// server regardless of whether the field is empty or not. This may be
18156	// used to include empty fields in Patch requests.
18157	ForceSendFields []string `json:"-"`
18158
18159	// NullFields is a list of field names (e.g. "Key") to include in API
18160	// requests with the JSON null value. By default, fields with empty
18161	// values are omitted from API requests. However, any field with an
18162	// empty value appearing in NullFields will be sent to the server as
18163	// null. It is an error if a field in this list has a non-empty value.
18164	// This may be used to include null fields in Patch requests.
18165	NullFields []string `json:"-"`
18166}
18167
18168func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
18169	type NoMethod InstanceListWarningData
18170	raw := NoMethod(*s)
18171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18172}
18173
18174// InstanceListReferrers: Contains a list of instance referrers.
18175type InstanceListReferrers struct {
18176	// Id: [Output Only] Unique identifier for the resource; defined by the
18177	// server.
18178	Id string `json:"id,omitempty"`
18179
18180	// Items: A list of Reference resources.
18181	Items []*Reference `json:"items,omitempty"`
18182
18183	// Kind: [Output Only] Type of resource. Always
18184	// compute#instanceListReferrers for lists of Instance referrers.
18185	Kind string `json:"kind,omitempty"`
18186
18187	// NextPageToken: [Output Only] This token allows you to get the next
18188	// page of results for list requests. If the number of results is larger
18189	// than maxResults, use the nextPageToken as a value for the query
18190	// parameter pageToken in the next list request. Subsequent list
18191	// requests will have their own nextPageToken to continue paging through
18192	// the results.
18193	NextPageToken string `json:"nextPageToken,omitempty"`
18194
18195	// SelfLink: [Output Only] Server-defined URL for this resource.
18196	SelfLink string `json:"selfLink,omitempty"`
18197
18198	// Warning: [Output Only] Informational warning message.
18199	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
18200
18201	// ServerResponse contains the HTTP response code and headers from the
18202	// server.
18203	googleapi.ServerResponse `json:"-"`
18204
18205	// ForceSendFields is a list of field names (e.g. "Id") to
18206	// unconditionally include in API requests. By default, fields with
18207	// empty values are omitted from API requests. However, any non-pointer,
18208	// non-interface field appearing in ForceSendFields will be sent to the
18209	// server regardless of whether the field is empty or not. This may be
18210	// used to include empty fields in Patch requests.
18211	ForceSendFields []string `json:"-"`
18212
18213	// NullFields is a list of field names (e.g. "Id") to include in API
18214	// requests with the JSON null value. By default, fields with empty
18215	// values are omitted from API requests. However, any field with an
18216	// empty value appearing in NullFields will be sent to the server as
18217	// null. It is an error if a field in this list has a non-empty value.
18218	// This may be used to include null fields in Patch requests.
18219	NullFields []string `json:"-"`
18220}
18221
18222func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
18223	type NoMethod InstanceListReferrers
18224	raw := NoMethod(*s)
18225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18226}
18227
18228// InstanceListReferrersWarning: [Output Only] Informational warning
18229// message.
18230type InstanceListReferrersWarning struct {
18231	// Code: [Output Only] A warning code, if applicable. For example,
18232	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18233	// the response.
18234	//
18235	// Possible values:
18236	//   "CLEANUP_FAILED"
18237	//   "DEPRECATED_RESOURCE_USED"
18238	//   "DEPRECATED_TYPE_USED"
18239	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18240	//   "EXPERIMENTAL_TYPE_USED"
18241	//   "EXTERNAL_API_WARNING"
18242	//   "FIELD_VALUE_OVERRIDEN"
18243	//   "INJECTED_KERNELS_DEPRECATED"
18244	//   "MISSING_TYPE_DEPENDENCY"
18245	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18246	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18247	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18248	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18249	//   "NEXT_HOP_NOT_RUNNING"
18250	//   "NOT_CRITICAL_ERROR"
18251	//   "NO_RESULTS_ON_PAGE"
18252	//   "PARTIAL_SUCCESS"
18253	//   "REQUIRED_TOS_AGREEMENT"
18254	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18255	//   "RESOURCE_NOT_DELETED"
18256	//   "SCHEMA_VALIDATION_IGNORED"
18257	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18258	//   "UNDECLARED_PROPERTIES"
18259	//   "UNREACHABLE"
18260	Code string `json:"code,omitempty"`
18261
18262	// Data: [Output Only] Metadata about this warning in key: value format.
18263	// For example:
18264	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18265	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
18266
18267	// Message: [Output Only] A human-readable description of the warning
18268	// code.
18269	Message string `json:"message,omitempty"`
18270
18271	// ForceSendFields is a list of field names (e.g. "Code") to
18272	// unconditionally include in API requests. By default, fields with
18273	// empty values are omitted from API requests. However, any non-pointer,
18274	// non-interface field appearing in ForceSendFields will be sent to the
18275	// server regardless of whether the field is empty or not. This may be
18276	// used to include empty fields in Patch requests.
18277	ForceSendFields []string `json:"-"`
18278
18279	// NullFields is a list of field names (e.g. "Code") to include in API
18280	// requests with the JSON null value. By default, fields with empty
18281	// values are omitted from API requests. However, any field with an
18282	// empty value appearing in NullFields will be sent to the server as
18283	// null. It is an error if a field in this list has a non-empty value.
18284	// This may be used to include null fields in Patch requests.
18285	NullFields []string `json:"-"`
18286}
18287
18288func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
18289	type NoMethod InstanceListReferrersWarning
18290	raw := NoMethod(*s)
18291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18292}
18293
18294type InstanceListReferrersWarningData struct {
18295	// Key: [Output Only] A key that provides more detail on the warning
18296	// being returned. For example, for warnings where there are no results
18297	// in a list request for a particular zone, this key might be scope and
18298	// the key value might be the zone name. Other examples might be a key
18299	// indicating a deprecated resource and a suggested replacement, or a
18300	// warning about invalid network settings (for example, if an instance
18301	// attempts to perform IP forwarding but is not enabled for IP
18302	// forwarding).
18303	Key string `json:"key,omitempty"`
18304
18305	// Value: [Output Only] A warning data value corresponding to the key.
18306	Value string `json:"value,omitempty"`
18307
18308	// ForceSendFields is a list of field names (e.g. "Key") to
18309	// unconditionally include in API requests. By default, fields with
18310	// empty values are omitted from API requests. However, any non-pointer,
18311	// non-interface field appearing in ForceSendFields will be sent to the
18312	// server regardless of whether the field is empty or not. This may be
18313	// used to include empty fields in Patch requests.
18314	ForceSendFields []string `json:"-"`
18315
18316	// NullFields is a list of field names (e.g. "Key") to include in API
18317	// requests with the JSON null value. By default, fields with empty
18318	// values are omitted from API requests. However, any field with an
18319	// empty value appearing in NullFields will be sent to the server as
18320	// null. It is an error if a field in this list has a non-empty value.
18321	// This may be used to include null fields in Patch requests.
18322	NullFields []string `json:"-"`
18323}
18324
18325func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
18326	type NoMethod InstanceListReferrersWarningData
18327	raw := NoMethod(*s)
18328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18329}
18330
18331type InstanceManagedByIgmError struct {
18332	// Error: [Output Only] Contents of the error.
18333	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
18334
18335	// InstanceActionDetails: [Output Only] Details of the instance action
18336	// that triggered this error. May be null, if the error was not caused
18337	// by an action on an instance. This field is optional.
18338	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
18339
18340	// Timestamp: [Output Only] The time that this error occurred. This
18341	// value is in RFC3339 text format.
18342	Timestamp string `json:"timestamp,omitempty"`
18343
18344	// ForceSendFields is a list of field names (e.g. "Error") to
18345	// unconditionally include in API requests. By default, fields with
18346	// empty values are omitted from API requests. However, any non-pointer,
18347	// non-interface field appearing in ForceSendFields will be sent to the
18348	// server regardless of whether the field is empty or not. This may be
18349	// used to include empty fields in Patch requests.
18350	ForceSendFields []string `json:"-"`
18351
18352	// NullFields is a list of field names (e.g. "Error") to include in API
18353	// requests with the JSON null value. By default, fields with empty
18354	// values are omitted from API requests. However, any field with an
18355	// empty value appearing in NullFields will be sent to the server as
18356	// null. It is an error if a field in this list has a non-empty value.
18357	// This may be used to include null fields in Patch requests.
18358	NullFields []string `json:"-"`
18359}
18360
18361func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
18362	type NoMethod InstanceManagedByIgmError
18363	raw := NoMethod(*s)
18364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18365}
18366
18367type InstanceManagedByIgmErrorInstanceActionDetails struct {
18368	// Action: [Output Only] Action that managed instance group was
18369	// executing on the instance when the error occurred. Possible values:
18370	//
18371	// Possible values:
18372	//   "ABANDONING"
18373	//   "CREATING"
18374	//   "CREATING_WITHOUT_RETRIES"
18375	//   "DELETING"
18376	//   "NONE"
18377	//   "RECREATING"
18378	//   "REFRESHING"
18379	//   "RESTARTING"
18380	//   "VERIFYING"
18381	Action string `json:"action,omitempty"`
18382
18383	// Instance: [Output Only] The URL of the instance. The URL can be set
18384	// even if the instance has not yet been created.
18385	Instance string `json:"instance,omitempty"`
18386
18387	// Version: [Output Only] Version this instance was created from, or was
18388	// being created from, but the creation failed. Corresponds to one of
18389	// the versions that were set on the Instance Group Manager resource at
18390	// the time this instance was being created.
18391	Version *ManagedInstanceVersion `json:"version,omitempty"`
18392
18393	// ForceSendFields is a list of field names (e.g. "Action") to
18394	// unconditionally include in API requests. By default, fields with
18395	// empty values are omitted from API requests. However, any non-pointer,
18396	// non-interface field appearing in ForceSendFields will be sent to the
18397	// server regardless of whether the field is empty or not. This may be
18398	// used to include empty fields in Patch requests.
18399	ForceSendFields []string `json:"-"`
18400
18401	// NullFields is a list of field names (e.g. "Action") to include in API
18402	// requests with the JSON null value. By default, fields with empty
18403	// values are omitted from API requests. However, any field with an
18404	// empty value appearing in NullFields will be sent to the server as
18405	// null. It is an error if a field in this list has a non-empty value.
18406	// This may be used to include null fields in Patch requests.
18407	NullFields []string `json:"-"`
18408}
18409
18410func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
18411	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
18412	raw := NoMethod(*s)
18413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18414}
18415
18416type InstanceManagedByIgmErrorManagedInstanceError struct {
18417	// Code: [Output Only] Error code.
18418	Code string `json:"code,omitempty"`
18419
18420	// Message: [Output Only] Error message.
18421	Message string `json:"message,omitempty"`
18422
18423	// ForceSendFields is a list of field names (e.g. "Code") to
18424	// unconditionally include in API requests. By default, fields with
18425	// empty values are omitted from API requests. However, any non-pointer,
18426	// non-interface field appearing in ForceSendFields will be sent to the
18427	// server regardless of whether the field is empty or not. This may be
18428	// used to include empty fields in Patch requests.
18429	ForceSendFields []string `json:"-"`
18430
18431	// NullFields is a list of field names (e.g. "Code") to include in API
18432	// requests with the JSON null value. By default, fields with empty
18433	// values are omitted from API requests. However, any field with an
18434	// empty value appearing in NullFields will be sent to the server as
18435	// null. It is an error if a field in this list has a non-empty value.
18436	// This may be used to include null fields in Patch requests.
18437	NullFields []string `json:"-"`
18438}
18439
18440func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
18441	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
18442	raw := NoMethod(*s)
18443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18444}
18445
18446type InstanceMoveRequest struct {
18447	// DestinationZone: The URL of the destination zone to move the
18448	// instance. This can be a full or partial URL. For example, the
18449	// following are all valid URLs to a zone:
18450	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
18451	//
18452	// - projects/project/zones/zone
18453	// - zones/zone
18454	DestinationZone string `json:"destinationZone,omitempty"`
18455
18456	// TargetInstance: The URL of the target instance to move. This can be a
18457	// full or partial URL. For example, the following are all valid URLs to
18458	// an instance:
18459	// -
18460	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
18461	// - projects/project/zones/zone/instances/instance
18462	// - zones/zone/instances/instance
18463	TargetInstance string `json:"targetInstance,omitempty"`
18464
18465	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
18466	// unconditionally include in API requests. By default, fields with
18467	// empty values are omitted from API requests. However, any non-pointer,
18468	// non-interface field appearing in ForceSendFields will be sent to the
18469	// server regardless of whether the field is empty or not. This may be
18470	// used to include empty fields in Patch requests.
18471	ForceSendFields []string `json:"-"`
18472
18473	// NullFields is a list of field names (e.g. "DestinationZone") to
18474	// include in API requests with the JSON null value. By default, fields
18475	// with empty values are omitted from API requests. However, any field
18476	// with an empty value appearing in NullFields will be sent to the
18477	// server as null. It is an error if a field in this list has a
18478	// non-empty value. This may be used to include null fields in Patch
18479	// requests.
18480	NullFields []string `json:"-"`
18481}
18482
18483func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
18484	type NoMethod InstanceMoveRequest
18485	raw := NoMethod(*s)
18486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18487}
18488
18489type InstanceProperties struct {
18490	// CanIpForward: Enables instances created based on this template to
18491	// send packets with source IP addresses other than their own and
18492	// receive packets with destination IP addresses other than their own.
18493	// If these instances will be used as an IP gateway or it will be set as
18494	// the next-hop in a Route resource, specify true. If unsure, leave this
18495	// set to false. See the Enable IP forwarding documentation for more
18496	// information.
18497	CanIpForward bool `json:"canIpForward,omitempty"`
18498
18499	// ConfidentialInstanceConfig: Specifies the Confidential Instance
18500	// options.
18501	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
18502
18503	// Description: An optional text description for the instances that are
18504	// created from this instance template.
18505	Description string `json:"description,omitempty"`
18506
18507	// Disks: An array of disks that are associated with the instances that
18508	// are created from this template.
18509	Disks []*AttachedDisk `json:"disks,omitempty"`
18510
18511	// DisplayDevice: Display Device properties to enable support for remote
18512	// display products like: Teradici, VNC and TeamViewer
18513	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
18514
18515	// GuestAccelerators: A list of guest accelerator cards' type and count
18516	// to use for instances created from the instance template.
18517	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
18518
18519	// Labels: Labels to apply to instances that are created from this
18520	// template.
18521	Labels map[string]string `json:"labels,omitempty"`
18522
18523	// MachineType: The machine type to use for instances that are created
18524	// from this template.
18525	MachineType string `json:"machineType,omitempty"`
18526
18527	// Metadata: The metadata key/value pairs to assign to instances that
18528	// are created from this template. These pairs can consist of custom
18529	// metadata or predefined keys. See Project and instance metadata for
18530	// more information.
18531	Metadata *Metadata `json:"metadata,omitempty"`
18532
18533	// MinCpuPlatform: Minimum cpu/platform to be used by this instance. The
18534	// instance may be scheduled on the specified or newer cpu/platform.
18535	// Applicable values are the friendly names of CPU platforms, such as
18536	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
18537	// Bridge". For more information, read Specifying a Minimum CPU
18538	// Platform.
18539	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
18540
18541	// NetworkInterfaces: An array of network access configurations for this
18542	// interface.
18543	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
18544
18545	// PostKeyRevocationActionType: Specifies whether this instance will be
18546	// shut down on key revocation.
18547	//
18548	// Possible values:
18549	//   "NOOP"
18550	//   "SHUTDOWN"
18551	//   "UNSPECIFIED"
18552	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
18553
18554	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
18555	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
18556	//
18557	// Possible values:
18558	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
18559	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
18560	//   "INHERIT_FROM_SUBNETWORK"
18561	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
18562
18563	// ReservationAffinity: Specifies the reservations that this instance
18564	// can consume from.
18565	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
18566
18567	// ResourcePolicies: Resource policies (names, not ULRs) applied to
18568	// instances created from this template.
18569	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18570
18571	// Scheduling: Specifies the scheduling options for the instances that
18572	// are created from this template.
18573	Scheduling *Scheduling `json:"scheduling,omitempty"`
18574
18575	// ServiceAccounts: A list of service accounts with specified scopes.
18576	// Access tokens for these service accounts are available to the
18577	// instances that are created from this template. Use metadata queries
18578	// to obtain the access tokens for these instances.
18579	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
18580
18581	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
18582
18583	// ShieldedVmConfig: Specifies the Shielded VM options for the instances
18584	// that are created from this template.
18585	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
18586
18587	// Tags: A list of tags to apply to the instances that are created from
18588	// this template. The tags identify valid sources or targets for network
18589	// firewalls. The setTags method can modify this list of tags. Each tag
18590	// within the list must comply with RFC1035.
18591	Tags *Tags `json:"tags,omitempty"`
18592
18593	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
18594	// unconditionally include in API requests. By default, fields with
18595	// empty values are omitted from API requests. However, any non-pointer,
18596	// non-interface field appearing in ForceSendFields will be sent to the
18597	// server regardless of whether the field is empty or not. This may be
18598	// used to include empty fields in Patch requests.
18599	ForceSendFields []string `json:"-"`
18600
18601	// NullFields is a list of field names (e.g. "CanIpForward") to include
18602	// in API requests with the JSON null value. By default, fields with
18603	// empty values are omitted from API requests. However, any field with
18604	// an empty value appearing in NullFields will be sent to the server as
18605	// null. It is an error if a field in this list has a non-empty value.
18606	// This may be used to include null fields in Patch requests.
18607	NullFields []string `json:"-"`
18608}
18609
18610func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
18611	type NoMethod InstanceProperties
18612	raw := NoMethod(*s)
18613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18614}
18615
18616type InstanceReference struct {
18617	// Instance: The URL for a specific instance.
18618	Instance string `json:"instance,omitempty"`
18619
18620	// ForceSendFields is a list of field names (e.g. "Instance") to
18621	// unconditionally include in API requests. By default, fields with
18622	// empty values are omitted from API requests. However, any non-pointer,
18623	// non-interface field appearing in ForceSendFields will be sent to the
18624	// server regardless of whether the field is empty or not. This may be
18625	// used to include empty fields in Patch requests.
18626	ForceSendFields []string `json:"-"`
18627
18628	// NullFields is a list of field names (e.g. "Instance") to include in
18629	// API requests with the JSON null value. By default, fields with empty
18630	// values are omitted from API requests. However, any field with an
18631	// empty value appearing in NullFields will be sent to the server as
18632	// null. It is an error if a field in this list has a non-empty value.
18633	// This may be used to include null fields in Patch requests.
18634	NullFields []string `json:"-"`
18635}
18636
18637func (s *InstanceReference) MarshalJSON() ([]byte, error) {
18638	type NoMethod InstanceReference
18639	raw := NoMethod(*s)
18640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18641}
18642
18643// InstanceTemplate: Represents an Instance Template resource.
18644//
18645// You can use instance templates to create VM instances and managed
18646// instance groups. For more information, read Instance Templates. (==
18647// resource_for {$api_version}.instanceTemplates ==)
18648type InstanceTemplate struct {
18649	// CreationTimestamp: [Output Only] The creation timestamp for this
18650	// instance template in RFC3339 text format.
18651	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18652
18653	// Description: An optional description of this resource. Provide this
18654	// property when you create the resource.
18655	Description string `json:"description,omitempty"`
18656
18657	// Id: [Output Only] A unique identifier for this instance template. The
18658	// server defines this identifier.
18659	Id uint64 `json:"id,omitempty,string"`
18660
18661	// Kind: [Output Only] The resource type, which is always
18662	// compute#instanceTemplate for instance templates.
18663	Kind string `json:"kind,omitempty"`
18664
18665	// Name: Name of the resource; provided by the client when the resource
18666	// is created. The name must be 1-63 characters long, and comply with
18667	// RFC1035. Specifically, the name must be 1-63 characters long and
18668	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18669	// the first character must be a lowercase letter, and all following
18670	// characters must be a dash, lowercase letter, or digit, except the
18671	// last character, which cannot be a dash.
18672	Name string `json:"name,omitempty"`
18673
18674	// Properties: The instance properties for this instance template.
18675	Properties *InstanceProperties `json:"properties,omitempty"`
18676
18677	// SelfLink: [Output Only] The URL for this instance template. The
18678	// server defines this URL.
18679	SelfLink string `json:"selfLink,omitempty"`
18680
18681	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
18682	// with the resource id.
18683	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
18684
18685	// SourceInstance: The source instance used to create the template. You
18686	// can provide this as a partial or full URL to the resource. For
18687	// example, the following are valid values:
18688	// -
18689	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
18690	// - projects/project/zones/zone/instances/instance
18691	SourceInstance string `json:"sourceInstance,omitempty"`
18692
18693	// SourceInstanceParams: The source instance params to use to create
18694	// this instance template.
18695	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
18696
18697	// ServerResponse contains the HTTP response code and headers from the
18698	// server.
18699	googleapi.ServerResponse `json:"-"`
18700
18701	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18702	// to unconditionally include in API requests. By default, fields with
18703	// empty values are omitted from API requests. However, any non-pointer,
18704	// non-interface field appearing in ForceSendFields will be sent to the
18705	// server regardless of whether the field is empty or not. This may be
18706	// used to include empty fields in Patch requests.
18707	ForceSendFields []string `json:"-"`
18708
18709	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18710	// include in API requests with the JSON null value. By default, fields
18711	// with empty values are omitted from API requests. However, any field
18712	// with an empty value appearing in NullFields will be sent to the
18713	// server as null. It is an error if a field in this list has a
18714	// non-empty value. This may be used to include null fields in Patch
18715	// requests.
18716	NullFields []string `json:"-"`
18717}
18718
18719func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
18720	type NoMethod InstanceTemplate
18721	raw := NoMethod(*s)
18722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18723}
18724
18725// InstanceTemplateList: A list of instance templates.
18726type InstanceTemplateList struct {
18727	// Id: [Output Only] Unique identifier for the resource; defined by the
18728	// server.
18729	Id string `json:"id,omitempty"`
18730
18731	// Items: A list of InstanceTemplate resources.
18732	Items []*InstanceTemplate `json:"items,omitempty"`
18733
18734	// Kind: [Output Only] The resource type, which is always
18735	// compute#instanceTemplatesListResponse for instance template lists.
18736	Kind string `json:"kind,omitempty"`
18737
18738	// NextPageToken: [Output Only] This token allows you to get the next
18739	// page of results for list requests. If the number of results is larger
18740	// than maxResults, use the nextPageToken as a value for the query
18741	// parameter pageToken in the next list request. Subsequent list
18742	// requests will have their own nextPageToken to continue paging through
18743	// the results.
18744	NextPageToken string `json:"nextPageToken,omitempty"`
18745
18746	// SelfLink: [Output Only] Server-defined URL for this resource.
18747	SelfLink string `json:"selfLink,omitempty"`
18748
18749	// Warning: [Output Only] Informational warning message.
18750	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
18751
18752	// ServerResponse contains the HTTP response code and headers from the
18753	// server.
18754	googleapi.ServerResponse `json:"-"`
18755
18756	// ForceSendFields is a list of field names (e.g. "Id") to
18757	// unconditionally include in API requests. By default, fields with
18758	// empty values are omitted from API requests. However, any non-pointer,
18759	// non-interface field appearing in ForceSendFields will be sent to the
18760	// server regardless of whether the field is empty or not. This may be
18761	// used to include empty fields in Patch requests.
18762	ForceSendFields []string `json:"-"`
18763
18764	// NullFields is a list of field names (e.g. "Id") to include in API
18765	// requests with the JSON null value. By default, fields with empty
18766	// values are omitted from API requests. However, any field with an
18767	// empty value appearing in NullFields will be sent to the server as
18768	// null. It is an error if a field in this list has a non-empty value.
18769	// This may be used to include null fields in Patch requests.
18770	NullFields []string `json:"-"`
18771}
18772
18773func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
18774	type NoMethod InstanceTemplateList
18775	raw := NoMethod(*s)
18776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18777}
18778
18779// InstanceTemplateListWarning: [Output Only] Informational warning
18780// message.
18781type InstanceTemplateListWarning struct {
18782	// Code: [Output Only] A warning code, if applicable. For example,
18783	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18784	// the response.
18785	//
18786	// Possible values:
18787	//   "CLEANUP_FAILED"
18788	//   "DEPRECATED_RESOURCE_USED"
18789	//   "DEPRECATED_TYPE_USED"
18790	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18791	//   "EXPERIMENTAL_TYPE_USED"
18792	//   "EXTERNAL_API_WARNING"
18793	//   "FIELD_VALUE_OVERRIDEN"
18794	//   "INJECTED_KERNELS_DEPRECATED"
18795	//   "MISSING_TYPE_DEPENDENCY"
18796	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18797	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18798	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18799	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18800	//   "NEXT_HOP_NOT_RUNNING"
18801	//   "NOT_CRITICAL_ERROR"
18802	//   "NO_RESULTS_ON_PAGE"
18803	//   "PARTIAL_SUCCESS"
18804	//   "REQUIRED_TOS_AGREEMENT"
18805	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18806	//   "RESOURCE_NOT_DELETED"
18807	//   "SCHEMA_VALIDATION_IGNORED"
18808	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18809	//   "UNDECLARED_PROPERTIES"
18810	//   "UNREACHABLE"
18811	Code string `json:"code,omitempty"`
18812
18813	// Data: [Output Only] Metadata about this warning in key: value format.
18814	// For example:
18815	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18816	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
18817
18818	// Message: [Output Only] A human-readable description of the warning
18819	// code.
18820	Message string `json:"message,omitempty"`
18821
18822	// ForceSendFields is a list of field names (e.g. "Code") to
18823	// unconditionally include in API requests. By default, fields with
18824	// empty values are omitted from API requests. However, any non-pointer,
18825	// non-interface field appearing in ForceSendFields will be sent to the
18826	// server regardless of whether the field is empty or not. This may be
18827	// used to include empty fields in Patch requests.
18828	ForceSendFields []string `json:"-"`
18829
18830	// NullFields is a list of field names (e.g. "Code") to include in API
18831	// requests with the JSON null value. By default, fields with empty
18832	// values are omitted from API requests. However, any field with an
18833	// empty value appearing in NullFields will be sent to the server as
18834	// null. It is an error if a field in this list has a non-empty value.
18835	// This may be used to include null fields in Patch requests.
18836	NullFields []string `json:"-"`
18837}
18838
18839func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
18840	type NoMethod InstanceTemplateListWarning
18841	raw := NoMethod(*s)
18842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18843}
18844
18845type InstanceTemplateListWarningData struct {
18846	// Key: [Output Only] A key that provides more detail on the warning
18847	// being returned. For example, for warnings where there are no results
18848	// in a list request for a particular zone, this key might be scope and
18849	// the key value might be the zone name. Other examples might be a key
18850	// indicating a deprecated resource and a suggested replacement, or a
18851	// warning about invalid network settings (for example, if an instance
18852	// attempts to perform IP forwarding but is not enabled for IP
18853	// forwarding).
18854	Key string `json:"key,omitempty"`
18855
18856	// Value: [Output Only] A warning data value corresponding to the key.
18857	Value string `json:"value,omitempty"`
18858
18859	// ForceSendFields is a list of field names (e.g. "Key") to
18860	// unconditionally include in API requests. By default, fields with
18861	// empty values are omitted from API requests. However, any non-pointer,
18862	// non-interface field appearing in ForceSendFields will be sent to the
18863	// server regardless of whether the field is empty or not. This may be
18864	// used to include empty fields in Patch requests.
18865	ForceSendFields []string `json:"-"`
18866
18867	// NullFields is a list of field names (e.g. "Key") to include in API
18868	// requests with the JSON null value. By default, fields with empty
18869	// values are omitted from API requests. However, any field with an
18870	// empty value appearing in NullFields will be sent to the server as
18871	// null. It is an error if a field in this list has a non-empty value.
18872	// This may be used to include null fields in Patch requests.
18873	NullFields []string `json:"-"`
18874}
18875
18876func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
18877	type NoMethod InstanceTemplateListWarningData
18878	raw := NoMethod(*s)
18879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18880}
18881
18882type InstanceWithNamedPorts struct {
18883	// Instance: [Output Only] The URL of the instance.
18884	Instance string `json:"instance,omitempty"`
18885
18886	// NamedPorts: [Output Only] The named ports that belong to this
18887	// instance group.
18888	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
18889
18890	// Status: [Output Only] The status of the instance.
18891	//
18892	// Possible values:
18893	//   "DEPROVISIONING"
18894	//   "PROVISIONING"
18895	//   "REPAIRING"
18896	//   "RUNNING"
18897	//   "STAGING"
18898	//   "STOPPED"
18899	//   "STOPPING"
18900	//   "SUSPENDED"
18901	//   "SUSPENDING"
18902	//   "TERMINATED"
18903	Status string `json:"status,omitempty"`
18904
18905	// ForceSendFields is a list of field names (e.g. "Instance") to
18906	// unconditionally include in API requests. By default, fields with
18907	// empty values are omitted from API requests. However, any non-pointer,
18908	// non-interface field appearing in ForceSendFields will be sent to the
18909	// server regardless of whether the field is empty or not. This may be
18910	// used to include empty fields in Patch requests.
18911	ForceSendFields []string `json:"-"`
18912
18913	// NullFields is a list of field names (e.g. "Instance") to include in
18914	// API requests with the JSON null value. By default, fields with empty
18915	// values are omitted from API requests. However, any field with an
18916	// empty value appearing in NullFields will be sent to the server as
18917	// null. It is an error if a field in this list has a non-empty value.
18918	// This may be used to include null fields in Patch requests.
18919	NullFields []string `json:"-"`
18920}
18921
18922func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
18923	type NoMethod InstanceWithNamedPorts
18924	raw := NoMethod(*s)
18925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18926}
18927
18928type InstancesAddResourcePoliciesRequest struct {
18929	// ResourcePolicies: Resource policies to be added to this instance.
18930	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18931
18932	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
18933	// unconditionally include in API requests. By default, fields with
18934	// empty values are omitted from API requests. However, any non-pointer,
18935	// non-interface field appearing in ForceSendFields will be sent to the
18936	// server regardless of whether the field is empty or not. This may be
18937	// used to include empty fields in Patch requests.
18938	ForceSendFields []string `json:"-"`
18939
18940	// NullFields is a list of field names (e.g. "ResourcePolicies") to
18941	// include in API requests with the JSON null value. By default, fields
18942	// with empty values are omitted from API requests. However, any field
18943	// with an empty value appearing in NullFields will be sent to the
18944	// server as null. It is an error if a field in this list has a
18945	// non-empty value. This may be used to include null fields in Patch
18946	// requests.
18947	NullFields []string `json:"-"`
18948}
18949
18950func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
18951	type NoMethod InstancesAddResourcePoliciesRequest
18952	raw := NoMethod(*s)
18953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18954}
18955
18956type InstancesGetEffectiveFirewallsResponse struct {
18957	// Firewalls: Effective firewalls on the instance.
18958	Firewalls []*Firewall `json:"firewalls,omitempty"`
18959
18960	// OrganizationFirewalls: Effective firewalls from organization
18961	// policies.
18962	OrganizationFirewalls []*InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
18963
18964	// ServerResponse contains the HTTP response code and headers from the
18965	// server.
18966	googleapi.ServerResponse `json:"-"`
18967
18968	// ForceSendFields is a list of field names (e.g. "Firewalls") to
18969	// unconditionally include in API requests. By default, fields with
18970	// empty values are omitted from API requests. However, any non-pointer,
18971	// non-interface field appearing in ForceSendFields will be sent to the
18972	// server regardless of whether the field is empty or not. This may be
18973	// used to include empty fields in Patch requests.
18974	ForceSendFields []string `json:"-"`
18975
18976	// NullFields is a list of field names (e.g. "Firewalls") to include in
18977	// API requests with the JSON null value. By default, fields with empty
18978	// values are omitted from API requests. However, any field with an
18979	// empty value appearing in NullFields will be sent to the server as
18980	// null. It is an error if a field in this list has a non-empty value.
18981	// This may be used to include null fields in Patch requests.
18982	NullFields []string `json:"-"`
18983}
18984
18985func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
18986	type NoMethod InstancesGetEffectiveFirewallsResponse
18987	raw := NoMethod(*s)
18988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18989}
18990
18991// InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
18992// pruned SecurityPolicy containing ID and any applicable firewall
18993// rules.
18994type InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
18995	// Id: The unique identifier for the security policy. This identifier is
18996	// defined by the server.
18997	Id uint64 `json:"id,omitempty,string"`
18998
18999	// Rules: The rules that apply to the network.
19000	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
19001
19002	// ForceSendFields is a list of field names (e.g. "Id") to
19003	// unconditionally include in API requests. By default, fields with
19004	// empty values are omitted from API requests. However, any non-pointer,
19005	// non-interface field appearing in ForceSendFields will be sent to the
19006	// server regardless of whether the field is empty or not. This may be
19007	// used to include empty fields in Patch requests.
19008	ForceSendFields []string `json:"-"`
19009
19010	// NullFields is a list of field names (e.g. "Id") to include in API
19011	// requests with the JSON null value. By default, fields with empty
19012	// values are omitted from API requests. However, any field with an
19013	// empty value appearing in NullFields will be sent to the server as
19014	// null. It is an error if a field in this list has a non-empty value.
19015	// This may be used to include null fields in Patch requests.
19016	NullFields []string `json:"-"`
19017}
19018
19019func (s *InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
19020	type NoMethod InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
19021	raw := NoMethod(*s)
19022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19023}
19024
19025type InstancesRemoveResourcePoliciesRequest struct {
19026	// ResourcePolicies: Resource policies to be removed from this instance.
19027	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19028
19029	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19030	// unconditionally include in API requests. By default, fields with
19031	// empty values are omitted from API requests. However, any non-pointer,
19032	// non-interface field appearing in ForceSendFields will be sent to the
19033	// server regardless of whether the field is empty or not. This may be
19034	// used to include empty fields in Patch requests.
19035	ForceSendFields []string `json:"-"`
19036
19037	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19038	// include in API requests with the JSON null value. By default, fields
19039	// with empty values are omitted from API requests. However, any field
19040	// with an empty value appearing in NullFields will be sent to the
19041	// server as null. It is an error if a field in this list has a
19042	// non-empty value. This may be used to include null fields in Patch
19043	// requests.
19044	NullFields []string `json:"-"`
19045}
19046
19047func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19048	type NoMethod InstancesRemoveResourcePoliciesRequest
19049	raw := NoMethod(*s)
19050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19051}
19052
19053type InstancesResumeRequest struct {
19054	// Disks: Array of disks associated with this instance that are
19055	// protected with a customer-supplied encryption key.
19056	//
19057	// In order to resume the instance, the disk url and its corresponding
19058	// key must be provided.
19059	//
19060	// If the disk is not protected with a customer-supplied encryption key
19061	// it should not be specified.
19062	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
19063
19064	// InstanceEncryptionKey: Decrypts data associated with an instance that
19065	// is protected with a customer-supplied encryption key.
19066	//
19067	// If the instance you are starting is protected with a
19068	// customer-supplied encryption key, the correct key must be provided
19069	// otherwise the instance resume will not succeed.
19070	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
19071
19072	// ForceSendFields is a list of field names (e.g. "Disks") to
19073	// unconditionally include in API requests. By default, fields with
19074	// empty values are omitted from API requests. However, any non-pointer,
19075	// non-interface field appearing in ForceSendFields will be sent to the
19076	// server regardless of whether the field is empty or not. This may be
19077	// used to include empty fields in Patch requests.
19078	ForceSendFields []string `json:"-"`
19079
19080	// NullFields is a list of field names (e.g. "Disks") to include in API
19081	// requests with the JSON null value. By default, fields with empty
19082	// values are omitted from API requests. However, any field with an
19083	// empty value appearing in NullFields will be sent to the server as
19084	// null. It is an error if a field in this list has a non-empty value.
19085	// This may be used to include null fields in Patch requests.
19086	NullFields []string `json:"-"`
19087}
19088
19089func (s *InstancesResumeRequest) MarshalJSON() ([]byte, error) {
19090	type NoMethod InstancesResumeRequest
19091	raw := NoMethod(*s)
19092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19093}
19094
19095type InstancesScopedList struct {
19096	// Instances: [Output Only] A list of instances contained in this scope.
19097	Instances []*Instance `json:"instances,omitempty"`
19098
19099	// Warning: [Output Only] Informational warning which replaces the list
19100	// of instances when the list is empty.
19101	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
19102
19103	// ForceSendFields is a list of field names (e.g. "Instances") to
19104	// unconditionally include in API requests. By default, fields with
19105	// empty values are omitted from API requests. However, any non-pointer,
19106	// non-interface field appearing in ForceSendFields will be sent to the
19107	// server regardless of whether the field is empty or not. This may be
19108	// used to include empty fields in Patch requests.
19109	ForceSendFields []string `json:"-"`
19110
19111	// NullFields is a list of field names (e.g. "Instances") to include in
19112	// API requests with the JSON null value. By default, fields with empty
19113	// values are omitted from API requests. However, any field with an
19114	// empty value appearing in NullFields will be sent to the server as
19115	// null. It is an error if a field in this list has a non-empty value.
19116	// This may be used to include null fields in Patch requests.
19117	NullFields []string `json:"-"`
19118}
19119
19120func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
19121	type NoMethod InstancesScopedList
19122	raw := NoMethod(*s)
19123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19124}
19125
19126// InstancesScopedListWarning: [Output Only] Informational warning which
19127// replaces the list of instances when the list is empty.
19128type InstancesScopedListWarning struct {
19129	// Code: [Output Only] A warning code, if applicable. For example,
19130	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19131	// the response.
19132	//
19133	// Possible values:
19134	//   "CLEANUP_FAILED"
19135	//   "DEPRECATED_RESOURCE_USED"
19136	//   "DEPRECATED_TYPE_USED"
19137	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19138	//   "EXPERIMENTAL_TYPE_USED"
19139	//   "EXTERNAL_API_WARNING"
19140	//   "FIELD_VALUE_OVERRIDEN"
19141	//   "INJECTED_KERNELS_DEPRECATED"
19142	//   "MISSING_TYPE_DEPENDENCY"
19143	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19144	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19145	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19146	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19147	//   "NEXT_HOP_NOT_RUNNING"
19148	//   "NOT_CRITICAL_ERROR"
19149	//   "NO_RESULTS_ON_PAGE"
19150	//   "PARTIAL_SUCCESS"
19151	//   "REQUIRED_TOS_AGREEMENT"
19152	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19153	//   "RESOURCE_NOT_DELETED"
19154	//   "SCHEMA_VALIDATION_IGNORED"
19155	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19156	//   "UNDECLARED_PROPERTIES"
19157	//   "UNREACHABLE"
19158	Code string `json:"code,omitempty"`
19159
19160	// Data: [Output Only] Metadata about this warning in key: value format.
19161	// For example:
19162	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19163	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
19164
19165	// Message: [Output Only] A human-readable description of the warning
19166	// code.
19167	Message string `json:"message,omitempty"`
19168
19169	// ForceSendFields is a list of field names (e.g. "Code") to
19170	// unconditionally include in API requests. By default, fields with
19171	// empty values are omitted from API requests. However, any non-pointer,
19172	// non-interface field appearing in ForceSendFields will be sent to the
19173	// server regardless of whether the field is empty or not. This may be
19174	// used to include empty fields in Patch requests.
19175	ForceSendFields []string `json:"-"`
19176
19177	// NullFields is a list of field names (e.g. "Code") to include in API
19178	// requests with the JSON null value. By default, fields with empty
19179	// values are omitted from API requests. However, any field with an
19180	// empty value appearing in NullFields will be sent to the server as
19181	// null. It is an error if a field in this list has a non-empty value.
19182	// This may be used to include null fields in Patch requests.
19183	NullFields []string `json:"-"`
19184}
19185
19186func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
19187	type NoMethod InstancesScopedListWarning
19188	raw := NoMethod(*s)
19189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19190}
19191
19192type InstancesScopedListWarningData struct {
19193	// Key: [Output Only] A key that provides more detail on the warning
19194	// being returned. For example, for warnings where there are no results
19195	// in a list request for a particular zone, this key might be scope and
19196	// the key value might be the zone name. Other examples might be a key
19197	// indicating a deprecated resource and a suggested replacement, or a
19198	// warning about invalid network settings (for example, if an instance
19199	// attempts to perform IP forwarding but is not enabled for IP
19200	// forwarding).
19201	Key string `json:"key,omitempty"`
19202
19203	// Value: [Output Only] A warning data value corresponding to the key.
19204	Value string `json:"value,omitempty"`
19205
19206	// ForceSendFields is a list of field names (e.g. "Key") to
19207	// unconditionally include in API requests. By default, fields with
19208	// empty values are omitted from API requests. However, any non-pointer,
19209	// non-interface field appearing in ForceSendFields will be sent to the
19210	// server regardless of whether the field is empty or not. This may be
19211	// used to include empty fields in Patch requests.
19212	ForceSendFields []string `json:"-"`
19213
19214	// NullFields is a list of field names (e.g. "Key") to include in API
19215	// requests with the JSON null value. By default, fields with empty
19216	// values are omitted from API requests. However, any field with an
19217	// empty value appearing in NullFields will be sent to the server as
19218	// null. It is an error if a field in this list has a non-empty value.
19219	// This may be used to include null fields in Patch requests.
19220	NullFields []string `json:"-"`
19221}
19222
19223func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
19224	type NoMethod InstancesScopedListWarningData
19225	raw := NoMethod(*s)
19226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19227}
19228
19229type InstancesSetLabelsRequest struct {
19230	// LabelFingerprint: Fingerprint of the previous set of labels for this
19231	// resource, used to prevent conflicts. Provide the latest fingerprint
19232	// value when making a request to add or change labels.
19233	LabelFingerprint string `json:"labelFingerprint,omitempty"`
19234
19235	Labels map[string]string `json:"labels,omitempty"`
19236
19237	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
19238	// unconditionally include in API requests. By default, fields with
19239	// empty values are omitted from API requests. However, any non-pointer,
19240	// non-interface field appearing in ForceSendFields will be sent to the
19241	// server regardless of whether the field is empty or not. This may be
19242	// used to include empty fields in Patch requests.
19243	ForceSendFields []string `json:"-"`
19244
19245	// NullFields is a list of field names (e.g. "LabelFingerprint") to
19246	// include in API requests with the JSON null value. By default, fields
19247	// with empty values are omitted from API requests. However, any field
19248	// with an empty value appearing in NullFields will be sent to the
19249	// server as null. It is an error if a field in this list has a
19250	// non-empty value. This may be used to include null fields in Patch
19251	// requests.
19252	NullFields []string `json:"-"`
19253}
19254
19255func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
19256	type NoMethod InstancesSetLabelsRequest
19257	raw := NoMethod(*s)
19258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19259}
19260
19261type InstancesSetMachineResourcesRequest struct {
19262	// GuestAccelerators: A list of the type and count of accelerator cards
19263	// attached to the instance.
19264	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
19265
19266	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
19267	// to unconditionally include in API requests. By default, fields with
19268	// empty values are omitted from API requests. However, any non-pointer,
19269	// non-interface field appearing in ForceSendFields will be sent to the
19270	// server regardless of whether the field is empty or not. This may be
19271	// used to include empty fields in Patch requests.
19272	ForceSendFields []string `json:"-"`
19273
19274	// NullFields is a list of field names (e.g. "GuestAccelerators") to
19275	// include in API requests with the JSON null value. By default, fields
19276	// with empty values are omitted from API requests. However, any field
19277	// with an empty value appearing in NullFields will be sent to the
19278	// server as null. It is an error if a field in this list has a
19279	// non-empty value. This may be used to include null fields in Patch
19280	// requests.
19281	NullFields []string `json:"-"`
19282}
19283
19284func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
19285	type NoMethod InstancesSetMachineResourcesRequest
19286	raw := NoMethod(*s)
19287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19288}
19289
19290type InstancesSetMachineTypeRequest struct {
19291	// MachineType: Full or partial URL of the machine type resource. See
19292	// Machine Types for a full list of machine types. For example:
19293	// zones/us-central1-f/machineTypes/n1-standard-1
19294	MachineType string `json:"machineType,omitempty"`
19295
19296	// ForceSendFields is a list of field names (e.g. "MachineType") to
19297	// unconditionally include in API requests. By default, fields with
19298	// empty values are omitted from API requests. However, any non-pointer,
19299	// non-interface field appearing in ForceSendFields will be sent to the
19300	// server regardless of whether the field is empty or not. This may be
19301	// used to include empty fields in Patch requests.
19302	ForceSendFields []string `json:"-"`
19303
19304	// NullFields is a list of field names (e.g. "MachineType") to include
19305	// in API requests with the JSON null value. By default, fields with
19306	// empty values are omitted from API requests. However, any field with
19307	// an empty value appearing in NullFields will be sent to the server as
19308	// null. It is an error if a field in this list has a non-empty value.
19309	// This may be used to include null fields in Patch requests.
19310	NullFields []string `json:"-"`
19311}
19312
19313func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
19314	type NoMethod InstancesSetMachineTypeRequest
19315	raw := NoMethod(*s)
19316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19317}
19318
19319type InstancesSetMinCpuPlatformRequest struct {
19320	// MinCpuPlatform: Minimum cpu/platform this instance should be started
19321	// at.
19322	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
19323
19324	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
19325	// unconditionally include in API requests. By default, fields with
19326	// empty values are omitted from API requests. However, any non-pointer,
19327	// non-interface field appearing in ForceSendFields will be sent to the
19328	// server regardless of whether the field is empty or not. This may be
19329	// used to include empty fields in Patch requests.
19330	ForceSendFields []string `json:"-"`
19331
19332	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
19333	// include in API requests with the JSON null value. By default, fields
19334	// with empty values are omitted from API requests. However, any field
19335	// with an empty value appearing in NullFields will be sent to the
19336	// server as null. It is an error if a field in this list has a
19337	// non-empty value. This may be used to include null fields in Patch
19338	// requests.
19339	NullFields []string `json:"-"`
19340}
19341
19342func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
19343	type NoMethod InstancesSetMinCpuPlatformRequest
19344	raw := NoMethod(*s)
19345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19346}
19347
19348type InstancesSetNameRequest struct {
19349	// CurrentName: The current name of this resource, used to prevent
19350	// conflicts. Provide the latest name when making a request to change
19351	// name.
19352	CurrentName string `json:"currentName,omitempty"`
19353
19354	// Name: The name to be applied to the instance. Needs to be RFC 1035
19355	// compliant.
19356	Name string `json:"name,omitempty"`
19357
19358	// ForceSendFields is a list of field names (e.g. "CurrentName") to
19359	// unconditionally include in API requests. By default, fields with
19360	// empty values are omitted from API requests. However, any non-pointer,
19361	// non-interface field appearing in ForceSendFields will be sent to the
19362	// server regardless of whether the field is empty or not. This may be
19363	// used to include empty fields in Patch requests.
19364	ForceSendFields []string `json:"-"`
19365
19366	// NullFields is a list of field names (e.g. "CurrentName") to include
19367	// in API requests with the JSON null value. By default, fields with
19368	// empty values are omitted from API requests. However, any field with
19369	// an empty value appearing in NullFields will be sent to the server as
19370	// null. It is an error if a field in this list has a non-empty value.
19371	// This may be used to include null fields in Patch requests.
19372	NullFields []string `json:"-"`
19373}
19374
19375func (s *InstancesSetNameRequest) MarshalJSON() ([]byte, error) {
19376	type NoMethod InstancesSetNameRequest
19377	raw := NoMethod(*s)
19378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19379}
19380
19381type InstancesSetServiceAccountRequest struct {
19382	// Email: Email address of the service account.
19383	Email string `json:"email,omitempty"`
19384
19385	// Scopes: The list of scopes to be made available for this service
19386	// account.
19387	Scopes []string `json:"scopes,omitempty"`
19388
19389	// ForceSendFields is a list of field names (e.g. "Email") to
19390	// unconditionally include in API requests. By default, fields with
19391	// empty values are omitted from API requests. However, any non-pointer,
19392	// non-interface field appearing in ForceSendFields will be sent to the
19393	// server regardless of whether the field is empty or not. This may be
19394	// used to include empty fields in Patch requests.
19395	ForceSendFields []string `json:"-"`
19396
19397	// NullFields is a list of field names (e.g. "Email") to include in API
19398	// requests with the JSON null value. By default, fields with empty
19399	// values are omitted from API requests. However, any field with an
19400	// empty value appearing in NullFields will be sent to the server as
19401	// null. It is an error if a field in this list has a non-empty value.
19402	// This may be used to include null fields in Patch requests.
19403	NullFields []string `json:"-"`
19404}
19405
19406func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
19407	type NoMethod InstancesSetServiceAccountRequest
19408	raw := NoMethod(*s)
19409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19410}
19411
19412type InstancesStartWithEncryptionKeyRequest struct {
19413	// Disks: Array of disks associated with this instance that are
19414	// protected with a customer-supplied encryption key.
19415	//
19416	// In order to start the instance, the disk url and its corresponding
19417	// key must be provided.
19418	//
19419	// If the disk is not protected with a customer-supplied encryption key
19420	// it should not be specified.
19421	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
19422
19423	// InstanceEncryptionKey: Decrypts data associated with an instance that
19424	// is protected with a customer-supplied encryption key.
19425	//
19426	// If the instance you are starting is protected with a
19427	// customer-supplied encryption key, the correct key must be provided
19428	// otherwise the instance start will not succeed.
19429	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
19430
19431	// ForceSendFields is a list of field names (e.g. "Disks") to
19432	// unconditionally include in API requests. By default, fields with
19433	// empty values are omitted from API requests. However, any non-pointer,
19434	// non-interface field appearing in ForceSendFields will be sent to the
19435	// server regardless of whether the field is empty or not. This may be
19436	// used to include empty fields in Patch requests.
19437	ForceSendFields []string `json:"-"`
19438
19439	// NullFields is a list of field names (e.g. "Disks") to include in API
19440	// requests with the JSON null value. By default, fields with empty
19441	// values are omitted from API requests. However, any field with an
19442	// empty value appearing in NullFields will be sent to the server as
19443	// null. It is an error if a field in this list has a non-empty value.
19444	// This may be used to include null fields in Patch requests.
19445	NullFields []string `json:"-"`
19446}
19447
19448func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
19449	type NoMethod InstancesStartWithEncryptionKeyRequest
19450	raw := NoMethod(*s)
19451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19452}
19453
19454// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
19455// must stay within the specified integer range.
19456type Int64RangeMatch struct {
19457	// RangeEnd: The end of the range (exclusive) in signed long integer
19458	// format.
19459	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
19460
19461	// RangeStart: The start of the range (inclusive) in signed long integer
19462	// format.
19463	RangeStart int64 `json:"rangeStart,omitempty,string"`
19464
19465	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
19466	// unconditionally include in API requests. By default, fields with
19467	// empty values are omitted from API requests. However, any non-pointer,
19468	// non-interface field appearing in ForceSendFields will be sent to the
19469	// server regardless of whether the field is empty or not. This may be
19470	// used to include empty fields in Patch requests.
19471	ForceSendFields []string `json:"-"`
19472
19473	// NullFields is a list of field names (e.g. "RangeEnd") to include in
19474	// API requests with the JSON null value. By default, fields with empty
19475	// values are omitted from API requests. However, any field with an
19476	// empty value appearing in NullFields will be sent to the server as
19477	// null. It is an error if a field in this list has a non-empty value.
19478	// This may be used to include null fields in Patch requests.
19479	NullFields []string `json:"-"`
19480}
19481
19482func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
19483	type NoMethod Int64RangeMatch
19484	raw := NoMethod(*s)
19485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19486}
19487
19488// Interconnect: Represents an Interconnect resource.
19489//
19490// An Interconnect resource is a dedicated connection between the GCP
19491// network and your on-premises network. For more information, read the
19492// Dedicated Interconnect Overview. (== resource_for
19493// {$api_version}.interconnects ==)
19494type Interconnect struct {
19495	// AdminEnabled: Administrative status of the interconnect. When this is
19496	// set to true, the Interconnect is functional and can carry traffic.
19497	// When set to false, no packets can be carried over the interconnect
19498	// and no BGP routes are exchanged over it. By default, the status is
19499	// set to true.
19500	AdminEnabled bool `json:"adminEnabled,omitempty"`
19501
19502	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
19503	// describe the individual circuits in this LAG.
19504	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
19505
19506	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19507	// format.
19508	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19509
19510	// CustomerName: Customer name, to put in the Letter of Authorization as
19511	// the party authorized to request a crossconnect.
19512	CustomerName string `json:"customerName,omitempty"`
19513
19514	// Description: An optional description of this resource. Provide this
19515	// property when you create the resource.
19516	Description string `json:"description,omitempty"`
19517
19518	// ExpectedOutages: [Output Only] A list of outages expected for this
19519	// Interconnect.
19520	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
19521
19522	// GoogleIpAddress: [Output Only] IP address configured on the Google
19523	// side of the Interconnect link. This can be used only for ping tests.
19524	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
19525
19526	// GoogleReferenceId: [Output Only] Google reference ID to be used when
19527	// raising support tickets with Google or otherwise to debug backend
19528	// connectivity issues.
19529	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
19530
19531	// Id: [Output Only] The unique identifier for the resource. This
19532	// identifier is defined by the server.
19533	Id uint64 `json:"id,omitempty,string"`
19534
19535	// InterconnectAttachments: [Output Only] A list of the URLs of all
19536	// InterconnectAttachments configured to use this Interconnect.
19537	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
19538
19539	// InterconnectType: Type of interconnect, which can take one of the
19540	// following values:
19541	// - PARTNER: A partner-managed interconnection shared between customers
19542	// though a partner.
19543	// - DEDICATED: A dedicated physical interconnection with the customer.
19544	// Note that a value IT_PRIVATE has been deprecated in favor of
19545	// DEDICATED.
19546	//
19547	// Possible values:
19548	//   "DEDICATED"
19549	//   "IT_PRIVATE"
19550	//   "PARTNER"
19551	InterconnectType string `json:"interconnectType,omitempty"`
19552
19553	// Kind: [Output Only] Type of the resource. Always compute#interconnect
19554	// for interconnects.
19555	Kind string `json:"kind,omitempty"`
19556
19557	// LabelFingerprint: A fingerprint for the labels being applied to this
19558	// Interconnect, which is essentially a hash of the labels set used for
19559	// optimistic locking. The fingerprint is initially generated by Compute
19560	// Engine and changes after every request to modify or update labels.
19561	// You must always provide an up-to-date fingerprint hash in order to
19562	// update or change labels, otherwise the request will fail with error
19563	// 412 conditionNotMet.
19564	//
19565	// To see the latest fingerprint, make a get() request to retrieve an
19566	// Interconnect.
19567	LabelFingerprint string `json:"labelFingerprint,omitempty"`
19568
19569	// Labels: Labels for this resource. These can only be added or modified
19570	// by the setLabels method. Each label key/value pair must comply with
19571	// RFC1035. Label values may be empty.
19572	Labels map[string]string `json:"labels,omitempty"`
19573
19574	// LinkType: Type of link requested, which can take one of the following
19575	// values:
19576	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
19577	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
19578	// that this field indicates the speed of each of the links in the
19579	// bundle, not the speed of the entire bundle.
19580	//
19581	// Possible values:
19582	//   "LINK_TYPE_ETHERNET_100G_LR"
19583	//   "LINK_TYPE_ETHERNET_10G_LR"
19584	LinkType string `json:"linkType,omitempty"`
19585
19586	// Location: URL of the InterconnectLocation object that represents
19587	// where this connection is to be provisioned.
19588	Location string `json:"location,omitempty"`
19589
19590	// Name: Name of the resource. Provided by the client when the resource
19591	// is created. The name must be 1-63 characters long, and comply with
19592	// RFC1035. Specifically, the name must be 1-63 characters long and
19593	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19594	// the first character must be a lowercase letter, and all following
19595	// characters must be a dash, lowercase letter, or digit, except the
19596	// last character, which cannot be a dash.
19597	Name string `json:"name,omitempty"`
19598
19599	// NocContactEmail: Email address to contact the customer NOC for
19600	// operations and maintenance notifications regarding this Interconnect.
19601	// If specified, this will be used for notifications in addition to all
19602	// other forms described, such as Stackdriver logs alerting and Cloud
19603	// Notifications.
19604	NocContactEmail string `json:"nocContactEmail,omitempty"`
19605
19606	// OperationalStatus: [Output Only] The current status of this
19607	// Interconnect's functionality, which can take one of the following
19608	// values:
19609	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
19610	// use. Attachments may be provisioned on this Interconnect.
19611	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
19612	// attachments may be provisioned on this Interconnect.
19613	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
19614	// maintenance. No attachments may be provisioned or updated on this
19615	// Interconnect.
19616	//
19617	// Possible values:
19618	//   "OS_ACTIVE"
19619	//   "OS_UNPROVISIONED"
19620	OperationalStatus string `json:"operationalStatus,omitempty"`
19621
19622	// PeerIpAddress: [Output Only] IP address configured on the customer
19623	// side of the Interconnect link. The customer should configure this IP
19624	// address during turnup when prompted by Google NOC. This can be used
19625	// only for ping tests.
19626	PeerIpAddress string `json:"peerIpAddress,omitempty"`
19627
19628	// ProvisionedLinkCount: [Output Only] Number of links actually
19629	// provisioned in this interconnect.
19630	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
19631
19632	// RequestedLinkCount: Target number of physical links in the link
19633	// bundle, as requested by the customer.
19634	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
19635
19636	// SelfLink: [Output Only] Server-defined URL for the resource.
19637	SelfLink string `json:"selfLink,omitempty"`
19638
19639	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
19640	// with the resource id.
19641	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
19642
19643	// State: [Output Only] The current state of Interconnect functionality,
19644	// which can take one of the following values:
19645	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
19646	// Attachments may be provisioned on this Interconnect.
19647	// - UNPROVISIONED: The Interconnect has not completed turnup. No
19648	// attachments may be provisioned on this Interconnect.
19649	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
19650	// maintenance. No attachments may be provisioned or updated on this
19651	// Interconnect.
19652	//
19653	// Possible values:
19654	//   "ACTIVE"
19655	//   "UNPROVISIONED"
19656	State string `json:"state,omitempty"`
19657
19658	// ServerResponse contains the HTTP response code and headers from the
19659	// server.
19660	googleapi.ServerResponse `json:"-"`
19661
19662	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
19663	// unconditionally include in API requests. By default, fields with
19664	// empty values are omitted from API requests. However, any non-pointer,
19665	// non-interface field appearing in ForceSendFields will be sent to the
19666	// server regardless of whether the field is empty or not. This may be
19667	// used to include empty fields in Patch requests.
19668	ForceSendFields []string `json:"-"`
19669
19670	// NullFields is a list of field names (e.g. "AdminEnabled") to include
19671	// in API requests with the JSON null value. By default, fields with
19672	// empty values are omitted from API requests. However, any field with
19673	// an empty value appearing in NullFields will be sent to the server as
19674	// null. It is an error if a field in this list has a non-empty value.
19675	// This may be used to include null fields in Patch requests.
19676	NullFields []string `json:"-"`
19677}
19678
19679func (s *Interconnect) MarshalJSON() ([]byte, error) {
19680	type NoMethod Interconnect
19681	raw := NoMethod(*s)
19682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19683}
19684
19685// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
19686// resource.
19687//
19688// You can use Interconnect attachments (VLANS) to connect your Virtual
19689// Private Cloud networks to your on-premises networks through an
19690// Interconnect. For more information, read  Creating VLAN Attachments.
19691// (== resource_for {$api_version}.interconnectAttachments ==)
19692type InterconnectAttachment struct {
19693	// AdminEnabled: Determines whether this Attachment will carry packets.
19694	// Not present for PARTNER_PROVIDER.
19695	AdminEnabled bool `json:"adminEnabled,omitempty"`
19696
19697	// Bandwidth: Provisioned bandwidth capacity for the interconnect
19698	// attachment. For attachments of type DEDICATED, the user can set the
19699	// bandwidth. For attachments of type PARTNER, the Google Partner that
19700	// is operating the interconnect must set the bandwidth. Output only for
19701	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
19702	// take one of the following values:
19703	// - BPS_50M: 50 Mbit/s
19704	// - BPS_100M: 100 Mbit/s
19705	// - BPS_200M: 200 Mbit/s
19706	// - BPS_300M: 300 Mbit/s
19707	// - BPS_400M: 400 Mbit/s
19708	// - BPS_500M: 500 Mbit/s
19709	// - BPS_1G: 1 Gbit/s
19710	// - BPS_2G: 2 Gbit/s
19711	// - BPS_5G: 5 Gbit/s
19712	// - BPS_10G: 10 Gbit/s
19713	// - BPS_20G: 20 Gbit/s
19714	// - BPS_50G: 50 Gbit/s
19715	//
19716	// Possible values:
19717	//   "BPS_100M"
19718	//   "BPS_10G"
19719	//   "BPS_1G"
19720	//   "BPS_200M"
19721	//   "BPS_20G"
19722	//   "BPS_2G"
19723	//   "BPS_300M"
19724	//   "BPS_400M"
19725	//   "BPS_500M"
19726	//   "BPS_50G"
19727	//   "BPS_50M"
19728	//   "BPS_5G"
19729	Bandwidth string `json:"bandwidth,omitempty"`
19730
19731	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
19732	// restrict the allocation of cloudRouterIpAddress and
19733	// customerRouterIpAddress for this attachment. All prefixes must be
19734	// within link-local address space (169.254.0.0/16) and must be /29 or
19735	// shorter (/28, /27, etc). Google will attempt to select an unused /29
19736	// from the supplied candidate prefix(es). The request will fail if all
19737	// possible /29s are in use on Google's edge. If not supplied, Google
19738	// will randomly select an unused /29 from all of link-local space.
19739	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
19740
19741	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
19742	// be configured on Cloud Router Interface for this interconnect
19743	// attachment.
19744	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
19745
19746	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19747	// format.
19748	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19749
19750	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
19751	// to be configured on the customer router subinterface for this
19752	// interconnect attachment.
19753	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
19754
19755	// Description: An optional description of this resource.
19756	Description string `json:"description,omitempty"`
19757
19758	// EdgeAvailabilityDomain: Desired availability domain for the
19759	// attachment. Only available for type PARTNER, at creation time, and
19760	// can take one of the following values:
19761	// - AVAILABILITY_DOMAIN_ANY
19762	// - AVAILABILITY_DOMAIN_1
19763	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
19764	// configure a pair of attachments, one per availability domain. The
19765	// selected availability domain will be provided to the Partner via the
19766	// pairing key, so that the provisioned circuit will lie in the
19767	// specified domain. If not specified, the value will default to
19768	// AVAILABILITY_DOMAIN_ANY.
19769	//
19770	// Possible values:
19771	//   "AVAILABILITY_DOMAIN_1"
19772	//   "AVAILABILITY_DOMAIN_2"
19773	//   "AVAILABILITY_DOMAIN_ANY"
19774	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
19775
19776	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
19777	// raising support tickets with Google or otherwise to debug backend
19778	// connectivity issues. [Deprecated] This field is not used.
19779	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
19780
19781	// Id: [Output Only] The unique identifier for the resource. This
19782	// identifier is defined by the server.
19783	Id uint64 `json:"id,omitempty,string"`
19784
19785	// Interconnect: URL of the underlying Interconnect object that this
19786	// attachment's traffic will traverse through.
19787	Interconnect string `json:"interconnect,omitempty"`
19788
19789	// Kind: [Output Only] Type of the resource. Always
19790	// compute#interconnectAttachment for interconnect attachments.
19791	Kind string `json:"kind,omitempty"`
19792
19793	// LabelFingerprint: A fingerprint for the labels being applied to this
19794	// InterconnectAttachment, which is essentially a hash of the labels set
19795	// used for optimistic locking. The fingerprint is initially generated
19796	// by Compute Engine and changes after every request to modify or update
19797	// labels. You must always provide an up-to-date fingerprint hash in
19798	// order to update or change labels, otherwise the request will fail
19799	// with error 412 conditionNotMet.
19800	//
19801	// To see the latest fingerprint, make a get() request to retrieve an
19802	// InterconnectAttachment.
19803	LabelFingerprint string `json:"labelFingerprint,omitempty"`
19804
19805	// Labels: Labels for this resource. These can only be added or modified
19806	// by the setLabels method. Each label key/value pair must comply with
19807	// RFC1035. Label values may be empty.
19808	Labels map[string]string `json:"labels,omitempty"`
19809
19810	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
19811	// through this interconnect attachment. Only 1440 and 1500 are allowed.
19812	// If not specified, the value will default to 1440.
19813	Mtu int64 `json:"mtu,omitempty"`
19814
19815	// Name: Name of the resource. Provided by the client when the resource
19816	// is created. The name must be 1-63 characters long, and comply with
19817	// RFC1035. Specifically, the name must be 1-63 characters long and
19818	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19819	// the first character must be a lowercase letter, and all following
19820	// characters must be a dash, lowercase letter, or digit, except the
19821	// last character, which cannot be a dash.
19822	Name string `json:"name,omitempty"`
19823
19824	// OperationalStatus: [Output Only] The current status of whether or not
19825	// this interconnect attachment is functional, which can take one of the
19826	// following values:
19827	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
19828	//
19829	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
19830	// turnup is not complete.
19831	//
19832	// Possible values:
19833	//   "OS_ACTIVE"
19834	//   "OS_UNPROVISIONED"
19835	OperationalStatus string `json:"operationalStatus,omitempty"`
19836
19837	// PairingKey: [Output only for type PARTNER. Input only for
19838	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
19839	// of an PARTNER attachment used to initiate provisioning with a
19840	// selected partner. Of the form "XXXXX/region/domain"
19841	PairingKey string `json:"pairingKey,omitempty"`
19842
19843	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
19844	// Partner if they configured BGP on behalf of the customer. Output only
19845	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
19846	// DEDICATED.
19847	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
19848
19849	// PartnerMetadata: Informational metadata about Partner attachments
19850	// from Partners to display to customers. Output only for for PARTNER
19851	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
19852	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
19853
19854	// PrivateInterconnectInfo: [Output Only] Information specific to an
19855	// InterconnectAttachment. This property is populated if the
19856	// interconnect that this is attached to is of type DEDICATED.
19857	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
19858
19859	// Region: [Output Only] URL of the region where the regional
19860	// interconnect attachment resides. You must specify this field as part
19861	// of the HTTP request URL. It is not settable as a field in the request
19862	// body.
19863	Region string `json:"region,omitempty"`
19864
19865	// Router: URL of the Cloud Router to be used for dynamic routing. This
19866	// router must be in the same region as this InterconnectAttachment. The
19867	// InterconnectAttachment will automatically connect the Interconnect to
19868	// the network & region within which the Cloud Router is configured.
19869	Router string `json:"router,omitempty"`
19870
19871	// SelfLink: [Output Only] Server-defined URL for the resource.
19872	SelfLink string `json:"selfLink,omitempty"`
19873
19874	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
19875	// with the resource id.
19876	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
19877
19878	// State: [Output Only] The current state of this attachment's
19879	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
19880	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
19881	// attachments, while enum values PENDING_PARTNER,
19882	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
19883	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
19884	// take one of the following values:
19885	// - ACTIVE: The attachment has been turned up and is ready to use.
19886	// - UNPROVISIONED: The attachment is not ready to use yet, because
19887	// turnup is not complete.
19888	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
19889	// yet been configured on the Partner side.
19890	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
19891	// provisioning after a PARTNER_PROVIDER attachment was created that
19892	// references it.
19893	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
19894	// waiting for a customer to activate it.
19895	// - DEFUNCT: The attachment was deleted externally and is no longer
19896	// functional. This could be because the associated Interconnect was
19897	// removed, or because the other side of a Partner attachment was
19898	// deleted.
19899	//
19900	// Possible values:
19901	//   "ACTIVE"
19902	//   "DEFUNCT"
19903	//   "PARTNER_REQUEST_RECEIVED"
19904	//   "PENDING_CUSTOMER"
19905	//   "PENDING_PARTNER"
19906	//   "STATE_UNSPECIFIED"
19907	//   "UNPROVISIONED"
19908	State string `json:"state,omitempty"`
19909
19910	// Type: The type of interconnect attachment this is, which can take one
19911	// of the following values:
19912	// - DEDICATED: an attachment to a Dedicated Interconnect.
19913	// - PARTNER: an attachment to a Partner Interconnect, created by the
19914	// customer.
19915	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
19916	// by the partner.
19917	//
19918	// Possible values:
19919	//   "DEDICATED"
19920	//   "PARTNER"
19921	//   "PARTNER_PROVIDER"
19922	Type string `json:"type,omitempty"`
19923
19924	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
19925	// range 2-4094. Only specified at creation time.
19926	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
19927
19928	// ServerResponse contains the HTTP response code and headers from the
19929	// server.
19930	googleapi.ServerResponse `json:"-"`
19931
19932	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
19933	// unconditionally include in API requests. By default, fields with
19934	// empty values are omitted from API requests. However, any non-pointer,
19935	// non-interface field appearing in ForceSendFields will be sent to the
19936	// server regardless of whether the field is empty or not. This may be
19937	// used to include empty fields in Patch requests.
19938	ForceSendFields []string `json:"-"`
19939
19940	// NullFields is a list of field names (e.g. "AdminEnabled") to include
19941	// in API requests with the JSON null value. By default, fields with
19942	// empty values are omitted from API requests. However, any field with
19943	// an empty value appearing in NullFields will be sent to the server as
19944	// null. It is an error if a field in this list has a non-empty value.
19945	// This may be used to include null fields in Patch requests.
19946	NullFields []string `json:"-"`
19947}
19948
19949func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
19950	type NoMethod InterconnectAttachment
19951	raw := NoMethod(*s)
19952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19953}
19954
19955type InterconnectAttachmentAggregatedList struct {
19956	// Id: [Output Only] Unique identifier for the resource; defined by the
19957	// server.
19958	Id string `json:"id,omitempty"`
19959
19960	// Items: A list of InterconnectAttachmentsScopedList resources.
19961	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
19962
19963	// Kind: [Output Only] Type of resource. Always
19964	// compute#interconnectAttachmentAggregatedList for aggregated lists of
19965	// interconnect attachments.
19966	Kind string `json:"kind,omitempty"`
19967
19968	// NextPageToken: [Output Only] This token allows you to get the next
19969	// page of results for list requests. If the number of results is larger
19970	// than maxResults, use the nextPageToken as a value for the query
19971	// parameter pageToken in the next list request. Subsequent list
19972	// requests will have their own nextPageToken to continue paging through
19973	// the results.
19974	NextPageToken string `json:"nextPageToken,omitempty"`
19975
19976	// SelfLink: [Output Only] Server-defined URL for this resource.
19977	SelfLink string `json:"selfLink,omitempty"`
19978
19979	// Unreachables: [Output Only] Unreachable resources.
19980	Unreachables []string `json:"unreachables,omitempty"`
19981
19982	// Warning: [Output Only] Informational warning message.
19983	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
19984
19985	// ServerResponse contains the HTTP response code and headers from the
19986	// server.
19987	googleapi.ServerResponse `json:"-"`
19988
19989	// ForceSendFields is a list of field names (e.g. "Id") to
19990	// unconditionally include in API requests. By default, fields with
19991	// empty values are omitted from API requests. However, any non-pointer,
19992	// non-interface field appearing in ForceSendFields will be sent to the
19993	// server regardless of whether the field is empty or not. This may be
19994	// used to include empty fields in Patch requests.
19995	ForceSendFields []string `json:"-"`
19996
19997	// NullFields is a list of field names (e.g. "Id") to include in API
19998	// requests with the JSON null value. By default, fields with empty
19999	// values are omitted from API requests. However, any field with an
20000	// empty value appearing in NullFields will be sent to the server as
20001	// null. It is an error if a field in this list has a non-empty value.
20002	// This may be used to include null fields in Patch requests.
20003	NullFields []string `json:"-"`
20004}
20005
20006func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
20007	type NoMethod InterconnectAttachmentAggregatedList
20008	raw := NoMethod(*s)
20009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20010}
20011
20012// InterconnectAttachmentAggregatedListWarning: [Output Only]
20013// Informational warning message.
20014type InterconnectAttachmentAggregatedListWarning struct {
20015	// Code: [Output Only] A warning code, if applicable. For example,
20016	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20017	// the response.
20018	//
20019	// Possible values:
20020	//   "CLEANUP_FAILED"
20021	//   "DEPRECATED_RESOURCE_USED"
20022	//   "DEPRECATED_TYPE_USED"
20023	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20024	//   "EXPERIMENTAL_TYPE_USED"
20025	//   "EXTERNAL_API_WARNING"
20026	//   "FIELD_VALUE_OVERRIDEN"
20027	//   "INJECTED_KERNELS_DEPRECATED"
20028	//   "MISSING_TYPE_DEPENDENCY"
20029	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20030	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20031	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20032	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20033	//   "NEXT_HOP_NOT_RUNNING"
20034	//   "NOT_CRITICAL_ERROR"
20035	//   "NO_RESULTS_ON_PAGE"
20036	//   "PARTIAL_SUCCESS"
20037	//   "REQUIRED_TOS_AGREEMENT"
20038	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20039	//   "RESOURCE_NOT_DELETED"
20040	//   "SCHEMA_VALIDATION_IGNORED"
20041	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20042	//   "UNDECLARED_PROPERTIES"
20043	//   "UNREACHABLE"
20044	Code string `json:"code,omitempty"`
20045
20046	// Data: [Output Only] Metadata about this warning in key: value format.
20047	// For example:
20048	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20049	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
20050
20051	// Message: [Output Only] A human-readable description of the warning
20052	// code.
20053	Message string `json:"message,omitempty"`
20054
20055	// ForceSendFields is a list of field names (e.g. "Code") to
20056	// unconditionally include in API requests. By default, fields with
20057	// empty values are omitted from API requests. However, any non-pointer,
20058	// non-interface field appearing in ForceSendFields will be sent to the
20059	// server regardless of whether the field is empty or not. This may be
20060	// used to include empty fields in Patch requests.
20061	ForceSendFields []string `json:"-"`
20062
20063	// NullFields is a list of field names (e.g. "Code") to include in API
20064	// requests with the JSON null value. By default, fields with empty
20065	// values are omitted from API requests. However, any field with an
20066	// empty value appearing in NullFields will be sent to the server as
20067	// null. It is an error if a field in this list has a non-empty value.
20068	// This may be used to include null fields in Patch requests.
20069	NullFields []string `json:"-"`
20070}
20071
20072func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
20073	type NoMethod InterconnectAttachmentAggregatedListWarning
20074	raw := NoMethod(*s)
20075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20076}
20077
20078type InterconnectAttachmentAggregatedListWarningData struct {
20079	// Key: [Output Only] A key that provides more detail on the warning
20080	// being returned. For example, for warnings where there are no results
20081	// in a list request for a particular zone, this key might be scope and
20082	// the key value might be the zone name. Other examples might be a key
20083	// indicating a deprecated resource and a suggested replacement, or a
20084	// warning about invalid network settings (for example, if an instance
20085	// attempts to perform IP forwarding but is not enabled for IP
20086	// forwarding).
20087	Key string `json:"key,omitempty"`
20088
20089	// Value: [Output Only] A warning data value corresponding to the key.
20090	Value string `json:"value,omitempty"`
20091
20092	// ForceSendFields is a list of field names (e.g. "Key") to
20093	// unconditionally include in API requests. By default, fields with
20094	// empty values are omitted from API requests. However, any non-pointer,
20095	// non-interface field appearing in ForceSendFields will be sent to the
20096	// server regardless of whether the field is empty or not. This may be
20097	// used to include empty fields in Patch requests.
20098	ForceSendFields []string `json:"-"`
20099
20100	// NullFields is a list of field names (e.g. "Key") to include in API
20101	// requests with the JSON null value. By default, fields with empty
20102	// values are omitted from API requests. However, any field with an
20103	// empty value appearing in NullFields will be sent to the server as
20104	// null. It is an error if a field in this list has a non-empty value.
20105	// This may be used to include null fields in Patch requests.
20106	NullFields []string `json:"-"`
20107}
20108
20109func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
20110	type NoMethod InterconnectAttachmentAggregatedListWarningData
20111	raw := NoMethod(*s)
20112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20113}
20114
20115// InterconnectAttachmentList: Response to the list request, and
20116// contains a list of interconnect attachments.
20117type InterconnectAttachmentList struct {
20118	// Id: [Output Only] Unique identifier for the resource; defined by the
20119	// server.
20120	Id string `json:"id,omitempty"`
20121
20122	// Items: A list of InterconnectAttachment resources.
20123	Items []*InterconnectAttachment `json:"items,omitempty"`
20124
20125	// Kind: [Output Only] Type of resource. Always
20126	// compute#interconnectAttachmentList for lists of interconnect
20127	// attachments.
20128	Kind string `json:"kind,omitempty"`
20129
20130	// NextPageToken: [Output Only] This token allows you to get the next
20131	// page of results for list requests. If the number of results is larger
20132	// than maxResults, use the nextPageToken as a value for the query
20133	// parameter pageToken in the next list request. Subsequent list
20134	// requests will have their own nextPageToken to continue paging through
20135	// the results.
20136	NextPageToken string `json:"nextPageToken,omitempty"`
20137
20138	// SelfLink: [Output Only] Server-defined URL for this resource.
20139	SelfLink string `json:"selfLink,omitempty"`
20140
20141	// Warning: [Output Only] Informational warning message.
20142	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
20143
20144	// ServerResponse contains the HTTP response code and headers from the
20145	// server.
20146	googleapi.ServerResponse `json:"-"`
20147
20148	// ForceSendFields is a list of field names (e.g. "Id") to
20149	// unconditionally include in API requests. By default, fields with
20150	// empty values are omitted from API requests. However, any non-pointer,
20151	// non-interface field appearing in ForceSendFields will be sent to the
20152	// server regardless of whether the field is empty or not. This may be
20153	// used to include empty fields in Patch requests.
20154	ForceSendFields []string `json:"-"`
20155
20156	// NullFields is a list of field names (e.g. "Id") to include in API
20157	// requests with the JSON null value. By default, fields with empty
20158	// values are omitted from API requests. However, any field with an
20159	// empty value appearing in NullFields will be sent to the server as
20160	// null. It is an error if a field in this list has a non-empty value.
20161	// This may be used to include null fields in Patch requests.
20162	NullFields []string `json:"-"`
20163}
20164
20165func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
20166	type NoMethod InterconnectAttachmentList
20167	raw := NoMethod(*s)
20168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20169}
20170
20171// InterconnectAttachmentListWarning: [Output Only] Informational
20172// warning message.
20173type InterconnectAttachmentListWarning struct {
20174	// Code: [Output Only] A warning code, if applicable. For example,
20175	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20176	// the response.
20177	//
20178	// Possible values:
20179	//   "CLEANUP_FAILED"
20180	//   "DEPRECATED_RESOURCE_USED"
20181	//   "DEPRECATED_TYPE_USED"
20182	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20183	//   "EXPERIMENTAL_TYPE_USED"
20184	//   "EXTERNAL_API_WARNING"
20185	//   "FIELD_VALUE_OVERRIDEN"
20186	//   "INJECTED_KERNELS_DEPRECATED"
20187	//   "MISSING_TYPE_DEPENDENCY"
20188	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20189	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20190	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20191	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20192	//   "NEXT_HOP_NOT_RUNNING"
20193	//   "NOT_CRITICAL_ERROR"
20194	//   "NO_RESULTS_ON_PAGE"
20195	//   "PARTIAL_SUCCESS"
20196	//   "REQUIRED_TOS_AGREEMENT"
20197	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20198	//   "RESOURCE_NOT_DELETED"
20199	//   "SCHEMA_VALIDATION_IGNORED"
20200	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20201	//   "UNDECLARED_PROPERTIES"
20202	//   "UNREACHABLE"
20203	Code string `json:"code,omitempty"`
20204
20205	// Data: [Output Only] Metadata about this warning in key: value format.
20206	// For example:
20207	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20208	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
20209
20210	// Message: [Output Only] A human-readable description of the warning
20211	// code.
20212	Message string `json:"message,omitempty"`
20213
20214	// ForceSendFields is a list of field names (e.g. "Code") to
20215	// unconditionally include in API requests. By default, fields with
20216	// empty values are omitted from API requests. However, any non-pointer,
20217	// non-interface field appearing in ForceSendFields will be sent to the
20218	// server regardless of whether the field is empty or not. This may be
20219	// used to include empty fields in Patch requests.
20220	ForceSendFields []string `json:"-"`
20221
20222	// NullFields is a list of field names (e.g. "Code") to include in API
20223	// requests with the JSON null value. By default, fields with empty
20224	// values are omitted from API requests. However, any field with an
20225	// empty value appearing in NullFields will be sent to the server as
20226	// null. It is an error if a field in this list has a non-empty value.
20227	// This may be used to include null fields in Patch requests.
20228	NullFields []string `json:"-"`
20229}
20230
20231func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
20232	type NoMethod InterconnectAttachmentListWarning
20233	raw := NoMethod(*s)
20234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20235}
20236
20237type InterconnectAttachmentListWarningData struct {
20238	// Key: [Output Only] A key that provides more detail on the warning
20239	// being returned. For example, for warnings where there are no results
20240	// in a list request for a particular zone, this key might be scope and
20241	// the key value might be the zone name. Other examples might be a key
20242	// indicating a deprecated resource and a suggested replacement, or a
20243	// warning about invalid network settings (for example, if an instance
20244	// attempts to perform IP forwarding but is not enabled for IP
20245	// forwarding).
20246	Key string `json:"key,omitempty"`
20247
20248	// Value: [Output Only] A warning data value corresponding to the key.
20249	Value string `json:"value,omitempty"`
20250
20251	// ForceSendFields is a list of field names (e.g. "Key") to
20252	// unconditionally include in API requests. By default, fields with
20253	// empty values are omitted from API requests. However, any non-pointer,
20254	// non-interface field appearing in ForceSendFields will be sent to the
20255	// server regardless of whether the field is empty or not. This may be
20256	// used to include empty fields in Patch requests.
20257	ForceSendFields []string `json:"-"`
20258
20259	// NullFields is a list of field names (e.g. "Key") to include in API
20260	// requests with the JSON null value. By default, fields with empty
20261	// values are omitted from API requests. However, any field with an
20262	// empty value appearing in NullFields will be sent to the server as
20263	// null. It is an error if a field in this list has a non-empty value.
20264	// This may be used to include null fields in Patch requests.
20265	NullFields []string `json:"-"`
20266}
20267
20268func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
20269	type NoMethod InterconnectAttachmentListWarningData
20270	raw := NoMethod(*s)
20271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20272}
20273
20274// InterconnectAttachmentPartnerMetadata: Informational metadata about
20275// Partner attachments from Partners to display to customers. These
20276// fields are propagated from PARTNER_PROVIDER attachments to their
20277// corresponding PARTNER attachments.
20278type InterconnectAttachmentPartnerMetadata struct {
20279	// InterconnectName: Plain text name of the Interconnect this attachment
20280	// is connected to, as displayed in the Partner's portal. For instance
20281	// "Chicago 1". This value may be validated to match approved Partner
20282	// values.
20283	InterconnectName string `json:"interconnectName,omitempty"`
20284
20285	// PartnerName: Plain text name of the Partner providing this
20286	// attachment. This value may be validated to match approved Partner
20287	// values.
20288	PartnerName string `json:"partnerName,omitempty"`
20289
20290	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
20291	// may customise this to be a deep link to the specific resource on the
20292	// Partner portal. This value may be validated to match approved Partner
20293	// values.
20294	PortalUrl string `json:"portalUrl,omitempty"`
20295
20296	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
20297	// unconditionally include in API requests. By default, fields with
20298	// empty values are omitted from API requests. However, any non-pointer,
20299	// non-interface field appearing in ForceSendFields will be sent to the
20300	// server regardless of whether the field is empty or not. This may be
20301	// used to include empty fields in Patch requests.
20302	ForceSendFields []string `json:"-"`
20303
20304	// NullFields is a list of field names (e.g. "InterconnectName") to
20305	// include in API requests with the JSON null value. By default, fields
20306	// with empty values are omitted from API requests. However, any field
20307	// with an empty value appearing in NullFields will be sent to the
20308	// server as null. It is an error if a field in this list has a
20309	// non-empty value. This may be used to include null fields in Patch
20310	// requests.
20311	NullFields []string `json:"-"`
20312}
20313
20314func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
20315	type NoMethod InterconnectAttachmentPartnerMetadata
20316	raw := NoMethod(*s)
20317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20318}
20319
20320// InterconnectAttachmentPrivateInfo: Information for an interconnect
20321// attachment when this belongs to an interconnect of type DEDICATED.
20322type InterconnectAttachmentPrivateInfo struct {
20323	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
20324	// traffic between Google and the customer, going to and from this
20325	// network and region.
20326	Tag8021q int64 `json:"tag8021q,omitempty"`
20327
20328	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
20329	// unconditionally include in API requests. By default, fields with
20330	// empty values are omitted from API requests. However, any non-pointer,
20331	// non-interface field appearing in ForceSendFields will be sent to the
20332	// server regardless of whether the field is empty or not. This may be
20333	// used to include empty fields in Patch requests.
20334	ForceSendFields []string `json:"-"`
20335
20336	// NullFields is a list of field names (e.g. "Tag8021q") to include in
20337	// API requests with the JSON null value. By default, fields with empty
20338	// values are omitted from API requests. However, any field with an
20339	// empty value appearing in NullFields will be sent to the server as
20340	// null. It is an error if a field in this list has a non-empty value.
20341	// This may be used to include null fields in Patch requests.
20342	NullFields []string `json:"-"`
20343}
20344
20345func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
20346	type NoMethod InterconnectAttachmentPrivateInfo
20347	raw := NoMethod(*s)
20348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20349}
20350
20351type InterconnectAttachmentsScopedList struct {
20352	// InterconnectAttachments: A list of interconnect attachments contained
20353	// in this scope.
20354	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
20355
20356	// Warning: Informational warning which replaces the list of addresses
20357	// when the list is empty.
20358	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
20359
20360	// ForceSendFields is a list of field names (e.g.
20361	// "InterconnectAttachments") to unconditionally include in API
20362	// requests. By default, fields with empty values are omitted from API
20363	// requests. However, any non-pointer, non-interface field appearing in
20364	// ForceSendFields will be sent to the server regardless of whether the
20365	// field is empty or not. This may be used to include empty fields in
20366	// Patch requests.
20367	ForceSendFields []string `json:"-"`
20368
20369	// NullFields is a list of field names (e.g. "InterconnectAttachments")
20370	// to include in API requests with the JSON null value. By default,
20371	// fields with empty values are omitted from API requests. However, any
20372	// field with an empty value appearing in NullFields will be sent to the
20373	// server as null. It is an error if a field in this list has a
20374	// non-empty value. This may be used to include null fields in Patch
20375	// requests.
20376	NullFields []string `json:"-"`
20377}
20378
20379func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
20380	type NoMethod InterconnectAttachmentsScopedList
20381	raw := NoMethod(*s)
20382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20383}
20384
20385// InterconnectAttachmentsScopedListWarning: Informational warning which
20386// replaces the list of addresses when the list is empty.
20387type InterconnectAttachmentsScopedListWarning struct {
20388	// Code: [Output Only] A warning code, if applicable. For example,
20389	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20390	// the response.
20391	//
20392	// Possible values:
20393	//   "CLEANUP_FAILED"
20394	//   "DEPRECATED_RESOURCE_USED"
20395	//   "DEPRECATED_TYPE_USED"
20396	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20397	//   "EXPERIMENTAL_TYPE_USED"
20398	//   "EXTERNAL_API_WARNING"
20399	//   "FIELD_VALUE_OVERRIDEN"
20400	//   "INJECTED_KERNELS_DEPRECATED"
20401	//   "MISSING_TYPE_DEPENDENCY"
20402	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20403	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20404	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20405	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20406	//   "NEXT_HOP_NOT_RUNNING"
20407	//   "NOT_CRITICAL_ERROR"
20408	//   "NO_RESULTS_ON_PAGE"
20409	//   "PARTIAL_SUCCESS"
20410	//   "REQUIRED_TOS_AGREEMENT"
20411	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20412	//   "RESOURCE_NOT_DELETED"
20413	//   "SCHEMA_VALIDATION_IGNORED"
20414	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20415	//   "UNDECLARED_PROPERTIES"
20416	//   "UNREACHABLE"
20417	Code string `json:"code,omitempty"`
20418
20419	// Data: [Output Only] Metadata about this warning in key: value format.
20420	// For example:
20421	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20422	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
20423
20424	// Message: [Output Only] A human-readable description of the warning
20425	// code.
20426	Message string `json:"message,omitempty"`
20427
20428	// ForceSendFields is a list of field names (e.g. "Code") to
20429	// unconditionally include in API requests. By default, fields with
20430	// empty values are omitted from API requests. However, any non-pointer,
20431	// non-interface field appearing in ForceSendFields will be sent to the
20432	// server regardless of whether the field is empty or not. This may be
20433	// used to include empty fields in Patch requests.
20434	ForceSendFields []string `json:"-"`
20435
20436	// NullFields is a list of field names (e.g. "Code") to include in API
20437	// requests with the JSON null value. By default, fields with empty
20438	// values are omitted from API requests. However, any field with an
20439	// empty value appearing in NullFields will be sent to the server as
20440	// null. It is an error if a field in this list has a non-empty value.
20441	// This may be used to include null fields in Patch requests.
20442	NullFields []string `json:"-"`
20443}
20444
20445func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
20446	type NoMethod InterconnectAttachmentsScopedListWarning
20447	raw := NoMethod(*s)
20448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20449}
20450
20451type InterconnectAttachmentsScopedListWarningData struct {
20452	// Key: [Output Only] A key that provides more detail on the warning
20453	// being returned. For example, for warnings where there are no results
20454	// in a list request for a particular zone, this key might be scope and
20455	// the key value might be the zone name. Other examples might be a key
20456	// indicating a deprecated resource and a suggested replacement, or a
20457	// warning about invalid network settings (for example, if an instance
20458	// attempts to perform IP forwarding but is not enabled for IP
20459	// forwarding).
20460	Key string `json:"key,omitempty"`
20461
20462	// Value: [Output Only] A warning data value corresponding to the key.
20463	Value string `json:"value,omitempty"`
20464
20465	// ForceSendFields is a list of field names (e.g. "Key") to
20466	// unconditionally include in API requests. By default, fields with
20467	// empty values are omitted from API requests. However, any non-pointer,
20468	// non-interface field appearing in ForceSendFields will be sent to the
20469	// server regardless of whether the field is empty or not. This may be
20470	// used to include empty fields in Patch requests.
20471	ForceSendFields []string `json:"-"`
20472
20473	// NullFields is a list of field names (e.g. "Key") to include in API
20474	// requests with the JSON null value. By default, fields with empty
20475	// values are omitted from API requests. However, any field with an
20476	// empty value appearing in NullFields will be sent to the server as
20477	// null. It is an error if a field in this list has a non-empty value.
20478	// This may be used to include null fields in Patch requests.
20479	NullFields []string `json:"-"`
20480}
20481
20482func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
20483	type NoMethod InterconnectAttachmentsScopedListWarningData
20484	raw := NoMethod(*s)
20485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20486}
20487
20488// InterconnectCircuitInfo: Describes a single physical circuit between
20489// the Customer and Google. CircuitInfo objects are created by Google,
20490// so all fields are output only. Next id: 4
20491type InterconnectCircuitInfo struct {
20492	// CustomerDemarcId: Customer-side demarc ID for this circuit.
20493	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
20494
20495	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
20496	// at circuit turn-up.
20497	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
20498
20499	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
20500	// circuit turn-up and provided by Google to the customer in the LOA.
20501	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
20502
20503	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
20504	// unconditionally include in API requests. By default, fields with
20505	// empty values are omitted from API requests. However, any non-pointer,
20506	// non-interface field appearing in ForceSendFields will be sent to the
20507	// server regardless of whether the field is empty or not. This may be
20508	// used to include empty fields in Patch requests.
20509	ForceSendFields []string `json:"-"`
20510
20511	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
20512	// include in API requests with the JSON null value. By default, fields
20513	// with empty values are omitted from API requests. However, any field
20514	// with an empty value appearing in NullFields will be sent to the
20515	// server as null. It is an error if a field in this list has a
20516	// non-empty value. This may be used to include null fields in Patch
20517	// requests.
20518	NullFields []string `json:"-"`
20519}
20520
20521func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
20522	type NoMethod InterconnectCircuitInfo
20523	raw := NoMethod(*s)
20524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20525}
20526
20527// InterconnectDiagnostics: Diagnostics information about interconnect,
20528// contains detailed and current technical information about Google's
20529// side of the connection.
20530type InterconnectDiagnostics struct {
20531	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
20532	// describing individual neighbors currently seen by the Google router
20533	// in the ARP cache for the Interconnect. This will be empty when the
20534	// Interconnect is not bundled.
20535	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
20536
20537	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
20538	// describing the status for each link on the Interconnect.
20539	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
20540
20541	// MacAddress: The MAC address of the Interconnect's bundle interface.
20542	MacAddress string `json:"macAddress,omitempty"`
20543
20544	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
20545	// unconditionally include in API requests. By default, fields with
20546	// empty values are omitted from API requests. However, any non-pointer,
20547	// non-interface field appearing in ForceSendFields will be sent to the
20548	// server regardless of whether the field is empty or not. This may be
20549	// used to include empty fields in Patch requests.
20550	ForceSendFields []string `json:"-"`
20551
20552	// NullFields is a list of field names (e.g. "ArpCaches") to include in
20553	// API requests with the JSON null value. By default, fields with empty
20554	// values are omitted from API requests. However, any field with an
20555	// empty value appearing in NullFields will be sent to the server as
20556	// null. It is an error if a field in this list has a non-empty value.
20557	// This may be used to include null fields in Patch requests.
20558	NullFields []string `json:"-"`
20559}
20560
20561func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
20562	type NoMethod InterconnectDiagnostics
20563	raw := NoMethod(*s)
20564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20565}
20566
20567// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
20568// seen on this link
20569type InterconnectDiagnosticsARPEntry struct {
20570	// IpAddress: The IP address of this ARP neighbor.
20571	IpAddress string `json:"ipAddress,omitempty"`
20572
20573	// MacAddress: The MAC address of this ARP neighbor.
20574	MacAddress string `json:"macAddress,omitempty"`
20575
20576	// ForceSendFields is a list of field names (e.g. "IpAddress") to
20577	// unconditionally include in API requests. By default, fields with
20578	// empty values are omitted from API requests. However, any non-pointer,
20579	// non-interface field appearing in ForceSendFields will be sent to the
20580	// server regardless of whether the field is empty or not. This may be
20581	// used to include empty fields in Patch requests.
20582	ForceSendFields []string `json:"-"`
20583
20584	// NullFields is a list of field names (e.g. "IpAddress") to include in
20585	// API requests with the JSON null value. By default, fields with empty
20586	// values are omitted from API requests. However, any field with an
20587	// empty value appearing in NullFields will be sent to the server as
20588	// null. It is an error if a field in this list has a non-empty value.
20589	// This may be used to include null fields in Patch requests.
20590	NullFields []string `json:"-"`
20591}
20592
20593func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
20594	type NoMethod InterconnectDiagnosticsARPEntry
20595	raw := NoMethod(*s)
20596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20597}
20598
20599type InterconnectDiagnosticsLinkLACPStatus struct {
20600	// GoogleSystemId: System ID of the port on Google's side of the LACP
20601	// exchange.
20602	GoogleSystemId string `json:"googleSystemId,omitempty"`
20603
20604	// NeighborSystemId: System ID of the port on the neighbor's side of the
20605	// LACP exchange.
20606	NeighborSystemId string `json:"neighborSystemId,omitempty"`
20607
20608	// State: The state of a LACP link, which can take one of the following
20609	// values:
20610	// - ACTIVE: The link is configured and active within the bundle.
20611	// - DETACHED: The link is not configured within the bundle. This means
20612	// that the rest of the object should be empty.
20613	//
20614	// Possible values:
20615	//   "ACTIVE"
20616	//   "DETACHED"
20617	State string `json:"state,omitempty"`
20618
20619	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
20620	// unconditionally include in API requests. By default, fields with
20621	// empty values are omitted from API requests. However, any non-pointer,
20622	// non-interface field appearing in ForceSendFields will be sent to the
20623	// server regardless of whether the field is empty or not. This may be
20624	// used to include empty fields in Patch requests.
20625	ForceSendFields []string `json:"-"`
20626
20627	// NullFields is a list of field names (e.g. "GoogleSystemId") to
20628	// include in API requests with the JSON null value. By default, fields
20629	// with empty values are omitted from API requests. However, any field
20630	// with an empty value appearing in NullFields will be sent to the
20631	// server as null. It is an error if a field in this list has a
20632	// non-empty value. This may be used to include null fields in Patch
20633	// requests.
20634	NullFields []string `json:"-"`
20635}
20636
20637func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
20638	type NoMethod InterconnectDiagnosticsLinkLACPStatus
20639	raw := NoMethod(*s)
20640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20641}
20642
20643type InterconnectDiagnosticsLinkOpticalPower struct {
20644	// State: The status of the current value when compared to the warning
20645	// and alarm levels for the receiving or transmitting transceiver.
20646	// Possible states include:
20647	// - OK: The value has not crossed a warning threshold.
20648	// - LOW_WARNING: The value has crossed below the low warning threshold.
20649	//
20650	// - HIGH_WARNING: The value has crossed above the high warning
20651	// threshold.
20652	// - LOW_ALARM: The value has crossed below the low alarm threshold.
20653	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
20654	//
20655	// Possible values:
20656	//   "HIGH_ALARM"
20657	//   "HIGH_WARNING"
20658	//   "LOW_ALARM"
20659	//   "LOW_WARNING"
20660	//   "OK"
20661	State string `json:"state,omitempty"`
20662
20663	// Value: Value of the current receiving or transmitting optical power,
20664	// read in dBm. Take a known good optical value, give it a 10% margin
20665	// and trigger warnings relative to that value. In general, a -7dBm
20666	// warning and a -11dBm alarm are good optical value estimates for most
20667	// links.
20668	Value float64 `json:"value,omitempty"`
20669
20670	// ForceSendFields is a list of field names (e.g. "State") to
20671	// unconditionally include in API requests. By default, fields with
20672	// empty values are omitted from API requests. However, any non-pointer,
20673	// non-interface field appearing in ForceSendFields will be sent to the
20674	// server regardless of whether the field is empty or not. This may be
20675	// used to include empty fields in Patch requests.
20676	ForceSendFields []string `json:"-"`
20677
20678	// NullFields is a list of field names (e.g. "State") to include in API
20679	// requests with the JSON null value. By default, fields with empty
20680	// values are omitted from API requests. However, any field with an
20681	// empty value appearing in NullFields will be sent to the server as
20682	// null. It is an error if a field in this list has a non-empty value.
20683	// This may be used to include null fields in Patch requests.
20684	NullFields []string `json:"-"`
20685}
20686
20687func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
20688	type NoMethod InterconnectDiagnosticsLinkOpticalPower
20689	raw := NoMethod(*s)
20690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20691}
20692
20693func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
20694	type NoMethod InterconnectDiagnosticsLinkOpticalPower
20695	var s1 struct {
20696		Value gensupport.JSONFloat64 `json:"value"`
20697		*NoMethod
20698	}
20699	s1.NoMethod = (*NoMethod)(s)
20700	if err := json.Unmarshal(data, &s1); err != nil {
20701		return err
20702	}
20703	s.Value = float64(s1.Value)
20704	return nil
20705}
20706
20707type InterconnectDiagnosticsLinkStatus struct {
20708	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
20709	// describing the ARP neighbor entries seen on this link. This will be
20710	// empty if the link is bundled
20711	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
20712
20713	// CircuitId: The unique ID for this link assigned during turn up by
20714	// Google.
20715	CircuitId string `json:"circuitId,omitempty"`
20716
20717	// GoogleDemarc: The Demarc address assigned by Google and provided in
20718	// the LoA.
20719	GoogleDemarc string `json:"googleDemarc,omitempty"`
20720
20721	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
20722
20723	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
20724	// object, describing the current value and status of the received light
20725	// level.
20726	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
20727
20728	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
20729	// object, describing the current value and status of the transmitted
20730	// light level.
20731	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
20732
20733	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
20734	// unconditionally include in API requests. By default, fields with
20735	// empty values are omitted from API requests. However, any non-pointer,
20736	// non-interface field appearing in ForceSendFields will be sent to the
20737	// server regardless of whether the field is empty or not. This may be
20738	// used to include empty fields in Patch requests.
20739	ForceSendFields []string `json:"-"`
20740
20741	// NullFields is a list of field names (e.g. "ArpCaches") to include in
20742	// API requests with the JSON null value. By default, fields with empty
20743	// values are omitted from API requests. However, any field with an
20744	// empty value appearing in NullFields will be sent to the server as
20745	// null. It is an error if a field in this list has a non-empty value.
20746	// This may be used to include null fields in Patch requests.
20747	NullFields []string `json:"-"`
20748}
20749
20750func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
20751	type NoMethod InterconnectDiagnosticsLinkStatus
20752	raw := NoMethod(*s)
20753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20754}
20755
20756// InterconnectList: Response to the list request, and contains a list
20757// of interconnects.
20758type InterconnectList struct {
20759	// Id: [Output Only] Unique identifier for the resource; defined by the
20760	// server.
20761	Id string `json:"id,omitempty"`
20762
20763	// Items: A list of Interconnect resources.
20764	Items []*Interconnect `json:"items,omitempty"`
20765
20766	// Kind: [Output Only] Type of resource. Always compute#interconnectList
20767	// for lists of interconnects.
20768	Kind string `json:"kind,omitempty"`
20769
20770	// NextPageToken: [Output Only] This token allows you to get the next
20771	// page of results for list requests. If the number of results is larger
20772	// than maxResults, use the nextPageToken as a value for the query
20773	// parameter pageToken in the next list request. Subsequent list
20774	// requests will have their own nextPageToken to continue paging through
20775	// the results.
20776	NextPageToken string `json:"nextPageToken,omitempty"`
20777
20778	// SelfLink: [Output Only] Server-defined URL for this resource.
20779	SelfLink string `json:"selfLink,omitempty"`
20780
20781	// Warning: [Output Only] Informational warning message.
20782	Warning *InterconnectListWarning `json:"warning,omitempty"`
20783
20784	// ServerResponse contains the HTTP response code and headers from the
20785	// server.
20786	googleapi.ServerResponse `json:"-"`
20787
20788	// ForceSendFields is a list of field names (e.g. "Id") to
20789	// unconditionally include in API requests. By default, fields with
20790	// empty values are omitted from API requests. However, any non-pointer,
20791	// non-interface field appearing in ForceSendFields will be sent to the
20792	// server regardless of whether the field is empty or not. This may be
20793	// used to include empty fields in Patch requests.
20794	ForceSendFields []string `json:"-"`
20795
20796	// NullFields is a list of field names (e.g. "Id") to include in API
20797	// requests with the JSON null value. By default, fields with empty
20798	// values are omitted from API requests. However, any field with an
20799	// empty value appearing in NullFields will be sent to the server as
20800	// null. It is an error if a field in this list has a non-empty value.
20801	// This may be used to include null fields in Patch requests.
20802	NullFields []string `json:"-"`
20803}
20804
20805func (s *InterconnectList) MarshalJSON() ([]byte, error) {
20806	type NoMethod InterconnectList
20807	raw := NoMethod(*s)
20808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20809}
20810
20811// InterconnectListWarning: [Output Only] Informational warning message.
20812type InterconnectListWarning struct {
20813	// Code: [Output Only] A warning code, if applicable. For example,
20814	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20815	// the response.
20816	//
20817	// Possible values:
20818	//   "CLEANUP_FAILED"
20819	//   "DEPRECATED_RESOURCE_USED"
20820	//   "DEPRECATED_TYPE_USED"
20821	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20822	//   "EXPERIMENTAL_TYPE_USED"
20823	//   "EXTERNAL_API_WARNING"
20824	//   "FIELD_VALUE_OVERRIDEN"
20825	//   "INJECTED_KERNELS_DEPRECATED"
20826	//   "MISSING_TYPE_DEPENDENCY"
20827	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20828	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20829	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20830	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20831	//   "NEXT_HOP_NOT_RUNNING"
20832	//   "NOT_CRITICAL_ERROR"
20833	//   "NO_RESULTS_ON_PAGE"
20834	//   "PARTIAL_SUCCESS"
20835	//   "REQUIRED_TOS_AGREEMENT"
20836	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20837	//   "RESOURCE_NOT_DELETED"
20838	//   "SCHEMA_VALIDATION_IGNORED"
20839	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20840	//   "UNDECLARED_PROPERTIES"
20841	//   "UNREACHABLE"
20842	Code string `json:"code,omitempty"`
20843
20844	// Data: [Output Only] Metadata about this warning in key: value format.
20845	// For example:
20846	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20847	Data []*InterconnectListWarningData `json:"data,omitempty"`
20848
20849	// Message: [Output Only] A human-readable description of the warning
20850	// code.
20851	Message string `json:"message,omitempty"`
20852
20853	// ForceSendFields is a list of field names (e.g. "Code") to
20854	// unconditionally include in API requests. By default, fields with
20855	// empty values are omitted from API requests. However, any non-pointer,
20856	// non-interface field appearing in ForceSendFields will be sent to the
20857	// server regardless of whether the field is empty or not. This may be
20858	// used to include empty fields in Patch requests.
20859	ForceSendFields []string `json:"-"`
20860
20861	// NullFields is a list of field names (e.g. "Code") to include in API
20862	// requests with the JSON null value. By default, fields with empty
20863	// values are omitted from API requests. However, any field with an
20864	// empty value appearing in NullFields will be sent to the server as
20865	// null. It is an error if a field in this list has a non-empty value.
20866	// This may be used to include null fields in Patch requests.
20867	NullFields []string `json:"-"`
20868}
20869
20870func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
20871	type NoMethod InterconnectListWarning
20872	raw := NoMethod(*s)
20873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20874}
20875
20876type InterconnectListWarningData struct {
20877	// Key: [Output Only] A key that provides more detail on the warning
20878	// being returned. For example, for warnings where there are no results
20879	// in a list request for a particular zone, this key might be scope and
20880	// the key value might be the zone name. Other examples might be a key
20881	// indicating a deprecated resource and a suggested replacement, or a
20882	// warning about invalid network settings (for example, if an instance
20883	// attempts to perform IP forwarding but is not enabled for IP
20884	// forwarding).
20885	Key string `json:"key,omitempty"`
20886
20887	// Value: [Output Only] A warning data value corresponding to the key.
20888	Value string `json:"value,omitempty"`
20889
20890	// ForceSendFields is a list of field names (e.g. "Key") to
20891	// unconditionally include in API requests. By default, fields with
20892	// empty values are omitted from API requests. However, any non-pointer,
20893	// non-interface field appearing in ForceSendFields will be sent to the
20894	// server regardless of whether the field is empty or not. This may be
20895	// used to include empty fields in Patch requests.
20896	ForceSendFields []string `json:"-"`
20897
20898	// NullFields is a list of field names (e.g. "Key") to include in API
20899	// requests with the JSON null value. By default, fields with empty
20900	// values are omitted from API requests. However, any field with an
20901	// empty value appearing in NullFields will be sent to the server as
20902	// null. It is an error if a field in this list has a non-empty value.
20903	// This may be used to include null fields in Patch requests.
20904	NullFields []string `json:"-"`
20905}
20906
20907func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
20908	type NoMethod InterconnectListWarningData
20909	raw := NoMethod(*s)
20910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20911}
20912
20913// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
20914// Location resource.
20915//
20916// You can use this resource to find location details about an
20917// Interconnect attachment (VLAN). For more information about
20918// interconnect attachments, read  Creating VLAN Attachments.
20919type InterconnectLocation struct {
20920	// Address: [Output Only] The postal address of the Point of Presence,
20921	// each line in the address is separated by a newline character.
20922	Address string `json:"address,omitempty"`
20923
20924	// AvailabilityZone: [Output Only] Availability zone for this
20925	// InterconnectLocation. Within a metropolitan area (metro), maintenance
20926	// will not be simultaneously scheduled in more than one availability
20927	// zone. Example: "zone1" or "zone2".
20928	AvailabilityZone string `json:"availabilityZone,omitempty"`
20929
20930	// City: [Output Only] Metropolitan area designator that indicates which
20931	// city an interconnect is located. For example: "Chicago, IL",
20932	// "Amsterdam, Netherlands".
20933	City string `json:"city,omitempty"`
20934
20935	// Continent: [Output Only] Continent for this location, which can take
20936	// one of the following values:
20937	// - AFRICA
20938	// - ASIA_PAC
20939	// - EUROPE
20940	// - NORTH_AMERICA
20941	// - SOUTH_AMERICA
20942	//
20943	// Possible values:
20944	//   "AFRICA"
20945	//   "ASIA_PAC"
20946	//   "C_AFRICA"
20947	//   "C_ASIA_PAC"
20948	//   "C_EUROPE"
20949	//   "C_NORTH_AMERICA"
20950	//   "C_SOUTH_AMERICA"
20951	//   "EUROPE"
20952	//   "NORTH_AMERICA"
20953	//   "SOUTH_AMERICA"
20954	Continent string `json:"continent,omitempty"`
20955
20956	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20957	// format.
20958	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20959
20960	// Description: [Output Only] An optional description of the resource.
20961	Description string `json:"description,omitempty"`
20962
20963	// FacilityProvider: [Output Only] The name of the provider for this
20964	// facility (e.g., EQUINIX).
20965	FacilityProvider string `json:"facilityProvider,omitempty"`
20966
20967	// FacilityProviderFacilityId: [Output Only] A provider-assigned
20968	// Identifier for this facility (e.g., Ashburn-DC1).
20969	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
20970
20971	// Id: [Output Only] The unique identifier for the resource. This
20972	// identifier is defined by the server.
20973	Id uint64 `json:"id,omitempty,string"`
20974
20975	// Kind: [Output Only] Type of the resource. Always
20976	// compute#interconnectLocation for interconnect locations.
20977	Kind string `json:"kind,omitempty"`
20978
20979	// Name: [Output Only] Name of the resource.
20980	Name string `json:"name,omitempty"`
20981
20982	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
20983	// facility (corresponding with a netfac type in peeringdb).
20984	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
20985
20986	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
20987	// objects, that describe parameters pertaining to the relation between
20988	// this InterconnectLocation and various Google Cloud regions.
20989	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
20990
20991	// SelfLink: [Output Only] Server-defined URL for the resource.
20992	SelfLink string `json:"selfLink,omitempty"`
20993
20994	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
20995	// with the resource id.
20996	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
20997
20998	// Status: [Output Only] The status of this InterconnectLocation, which
20999	// can take one of the following values:
21000	// - CLOSED: The InterconnectLocation is closed and is unavailable for
21001	// provisioning new Interconnects.
21002	// - AVAILABLE: The InterconnectLocation is available for provisioning
21003	// new Interconnects.
21004	//
21005	// Possible values:
21006	//   "AVAILABLE"
21007	//   "CLOSED"
21008	Status string `json:"status,omitempty"`
21009
21010	// ServerResponse contains the HTTP response code and headers from the
21011	// server.
21012	googleapi.ServerResponse `json:"-"`
21013
21014	// ForceSendFields is a list of field names (e.g. "Address") to
21015	// unconditionally include in API requests. By default, fields with
21016	// empty values are omitted from API requests. However, any non-pointer,
21017	// non-interface field appearing in ForceSendFields will be sent to the
21018	// server regardless of whether the field is empty or not. This may be
21019	// used to include empty fields in Patch requests.
21020	ForceSendFields []string `json:"-"`
21021
21022	// NullFields is a list of field names (e.g. "Address") to include in
21023	// API requests with the JSON null value. By default, fields with empty
21024	// values are omitted from API requests. However, any field with an
21025	// empty value appearing in NullFields will be sent to the server as
21026	// null. It is an error if a field in this list has a non-empty value.
21027	// This may be used to include null fields in Patch requests.
21028	NullFields []string `json:"-"`
21029}
21030
21031func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
21032	type NoMethod InterconnectLocation
21033	raw := NoMethod(*s)
21034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21035}
21036
21037// InterconnectLocationList: Response to the list request, and contains
21038// a list of interconnect locations.
21039type InterconnectLocationList struct {
21040	// Id: [Output Only] Unique identifier for the resource; defined by the
21041	// server.
21042	Id string `json:"id,omitempty"`
21043
21044	// Items: A list of InterconnectLocation resources.
21045	Items []*InterconnectLocation `json:"items,omitempty"`
21046
21047	// Kind: [Output Only] Type of resource. Always
21048	// compute#interconnectLocationList for lists of interconnect locations.
21049	Kind string `json:"kind,omitempty"`
21050
21051	// NextPageToken: [Output Only] This token allows you to get the next
21052	// page of results for list requests. If the number of results is larger
21053	// than maxResults, use the nextPageToken as a value for the query
21054	// parameter pageToken in the next list request. Subsequent list
21055	// requests will have their own nextPageToken to continue paging through
21056	// the results.
21057	NextPageToken string `json:"nextPageToken,omitempty"`
21058
21059	// SelfLink: [Output Only] Server-defined URL for this resource.
21060	SelfLink string `json:"selfLink,omitempty"`
21061
21062	// Warning: [Output Only] Informational warning message.
21063	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
21064
21065	// ServerResponse contains the HTTP response code and headers from the
21066	// server.
21067	googleapi.ServerResponse `json:"-"`
21068
21069	// ForceSendFields is a list of field names (e.g. "Id") to
21070	// unconditionally include in API requests. By default, fields with
21071	// empty values are omitted from API requests. However, any non-pointer,
21072	// non-interface field appearing in ForceSendFields will be sent to the
21073	// server regardless of whether the field is empty or not. This may be
21074	// used to include empty fields in Patch requests.
21075	ForceSendFields []string `json:"-"`
21076
21077	// NullFields is a list of field names (e.g. "Id") to include in API
21078	// requests with the JSON null value. By default, fields with empty
21079	// values are omitted from API requests. However, any field with an
21080	// empty value appearing in NullFields will be sent to the server as
21081	// null. It is an error if a field in this list has a non-empty value.
21082	// This may be used to include null fields in Patch requests.
21083	NullFields []string `json:"-"`
21084}
21085
21086func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
21087	type NoMethod InterconnectLocationList
21088	raw := NoMethod(*s)
21089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21090}
21091
21092// InterconnectLocationListWarning: [Output Only] Informational warning
21093// message.
21094type InterconnectLocationListWarning struct {
21095	// Code: [Output Only] A warning code, if applicable. For example,
21096	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21097	// the response.
21098	//
21099	// Possible values:
21100	//   "CLEANUP_FAILED"
21101	//   "DEPRECATED_RESOURCE_USED"
21102	//   "DEPRECATED_TYPE_USED"
21103	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21104	//   "EXPERIMENTAL_TYPE_USED"
21105	//   "EXTERNAL_API_WARNING"
21106	//   "FIELD_VALUE_OVERRIDEN"
21107	//   "INJECTED_KERNELS_DEPRECATED"
21108	//   "MISSING_TYPE_DEPENDENCY"
21109	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21110	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21111	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21112	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21113	//   "NEXT_HOP_NOT_RUNNING"
21114	//   "NOT_CRITICAL_ERROR"
21115	//   "NO_RESULTS_ON_PAGE"
21116	//   "PARTIAL_SUCCESS"
21117	//   "REQUIRED_TOS_AGREEMENT"
21118	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21119	//   "RESOURCE_NOT_DELETED"
21120	//   "SCHEMA_VALIDATION_IGNORED"
21121	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21122	//   "UNDECLARED_PROPERTIES"
21123	//   "UNREACHABLE"
21124	Code string `json:"code,omitempty"`
21125
21126	// Data: [Output Only] Metadata about this warning in key: value format.
21127	// For example:
21128	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21129	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
21130
21131	// Message: [Output Only] A human-readable description of the warning
21132	// code.
21133	Message string `json:"message,omitempty"`
21134
21135	// ForceSendFields is a list of field names (e.g. "Code") to
21136	// unconditionally include in API requests. By default, fields with
21137	// empty values are omitted from API requests. However, any non-pointer,
21138	// non-interface field appearing in ForceSendFields will be sent to the
21139	// server regardless of whether the field is empty or not. This may be
21140	// used to include empty fields in Patch requests.
21141	ForceSendFields []string `json:"-"`
21142
21143	// NullFields is a list of field names (e.g. "Code") to include in API
21144	// requests with the JSON null value. By default, fields with empty
21145	// values are omitted from API requests. However, any field with an
21146	// empty value appearing in NullFields will be sent to the server as
21147	// null. It is an error if a field in this list has a non-empty value.
21148	// This may be used to include null fields in Patch requests.
21149	NullFields []string `json:"-"`
21150}
21151
21152func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
21153	type NoMethod InterconnectLocationListWarning
21154	raw := NoMethod(*s)
21155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21156}
21157
21158type InterconnectLocationListWarningData struct {
21159	// Key: [Output Only] A key that provides more detail on the warning
21160	// being returned. For example, for warnings where there are no results
21161	// in a list request for a particular zone, this key might be scope and
21162	// the key value might be the zone name. Other examples might be a key
21163	// indicating a deprecated resource and a suggested replacement, or a
21164	// warning about invalid network settings (for example, if an instance
21165	// attempts to perform IP forwarding but is not enabled for IP
21166	// forwarding).
21167	Key string `json:"key,omitempty"`
21168
21169	// Value: [Output Only] A warning data value corresponding to the key.
21170	Value string `json:"value,omitempty"`
21171
21172	// ForceSendFields is a list of field names (e.g. "Key") to
21173	// unconditionally include in API requests. By default, fields with
21174	// empty values are omitted from API requests. However, any non-pointer,
21175	// non-interface field appearing in ForceSendFields will be sent to the
21176	// server regardless of whether the field is empty or not. This may be
21177	// used to include empty fields in Patch requests.
21178	ForceSendFields []string `json:"-"`
21179
21180	// NullFields is a list of field names (e.g. "Key") to include in API
21181	// requests with the JSON null value. By default, fields with empty
21182	// values are omitted from API requests. However, any field with an
21183	// empty value appearing in NullFields will be sent to the server as
21184	// null. It is an error if a field in this list has a non-empty value.
21185	// This may be used to include null fields in Patch requests.
21186	NullFields []string `json:"-"`
21187}
21188
21189func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
21190	type NoMethod InterconnectLocationListWarningData
21191	raw := NoMethod(*s)
21192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21193}
21194
21195// InterconnectLocationRegionInfo: Information about any potential
21196// InterconnectAttachments between an Interconnect at a specific
21197// InterconnectLocation, and a specific Cloud Region.
21198type InterconnectLocationRegionInfo struct {
21199	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
21200	// InterconnectLocation to a VM in this region.
21201	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
21202
21203	// LocationPresence: Identifies the network presence of this location.
21204	//
21205	// Possible values:
21206	//   "GLOBAL"
21207	//   "LOCAL_REGION"
21208	//   "LP_GLOBAL"
21209	//   "LP_LOCAL_REGION"
21210	LocationPresence string `json:"locationPresence,omitempty"`
21211
21212	// Region: URL for the region of this location.
21213	Region string `json:"region,omitempty"`
21214
21215	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
21216	// unconditionally include in API requests. By default, fields with
21217	// empty values are omitted from API requests. However, any non-pointer,
21218	// non-interface field appearing in ForceSendFields will be sent to the
21219	// server regardless of whether the field is empty or not. This may be
21220	// used to include empty fields in Patch requests.
21221	ForceSendFields []string `json:"-"`
21222
21223	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
21224	// in API requests with the JSON null value. By default, fields with
21225	// empty values are omitted from API requests. However, any field with
21226	// an empty value appearing in NullFields will be sent to the server as
21227	// null. It is an error if a field in this list has a non-empty value.
21228	// This may be used to include null fields in Patch requests.
21229	NullFields []string `json:"-"`
21230}
21231
21232func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
21233	type NoMethod InterconnectLocationRegionInfo
21234	raw := NoMethod(*s)
21235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21236}
21237
21238// InterconnectOutageNotification: Description of a planned outage on
21239// this Interconnect. Next id: 9
21240type InterconnectOutageNotification struct {
21241	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
21242	// Google-side circuit IDs that will be affected.
21243	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
21244
21245	// Description: A description about the purpose of the outage.
21246	Description string `json:"description,omitempty"`
21247
21248	// EndTime: Scheduled end time for the outage (milliseconds since Unix
21249	// epoch).
21250	EndTime int64 `json:"endTime,omitempty,string"`
21251
21252	// IssueType: Form this outage is expected to take, which can take one
21253	// of the following values:
21254	// - OUTAGE: The Interconnect may be completely out of service for some
21255	// or all of the specified window.
21256	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
21257	// whole should remain up, but with reduced bandwidth. Note that the
21258	// versions of this enum prefixed with "IT_" have been deprecated in
21259	// favor of the unprefixed values.
21260	//
21261	// Possible values:
21262	//   "IT_OUTAGE"
21263	//   "IT_PARTIAL_OUTAGE"
21264	//   "OUTAGE"
21265	//   "PARTIAL_OUTAGE"
21266	IssueType string `json:"issueType,omitempty"`
21267
21268	// Name: Unique identifier for this outage notification.
21269	Name string `json:"name,omitempty"`
21270
21271	// Source: The party that generated this notification, which can take
21272	// the following value:
21273	// - GOOGLE: this notification as generated by Google. Note that the
21274	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
21275	//
21276	// Possible values:
21277	//   "GOOGLE"
21278	//   "NSRC_GOOGLE"
21279	Source string `json:"source,omitempty"`
21280
21281	// StartTime: Scheduled start time for the outage (milliseconds since
21282	// Unix epoch).
21283	StartTime int64 `json:"startTime,omitempty,string"`
21284
21285	// State: State of this notification, which can take one of the
21286	// following values:
21287	// - ACTIVE: This outage notification is active. The event could be in
21288	// the past, present, or future. See start_time and end_time for
21289	// scheduling.
21290	// - CANCELLED: The outage associated with this notification was
21291	// cancelled before the outage was due to start. Note that the versions
21292	// of this enum prefixed with "NS_" have been deprecated in favor of the
21293	// unprefixed values.
21294	//
21295	// Possible values:
21296	//   "ACTIVE"
21297	//   "CANCELLED"
21298	//   "COMPLETED"
21299	//   "NS_ACTIVE"
21300	//   "NS_CANCELED"
21301	State string `json:"state,omitempty"`
21302
21303	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
21304	// unconditionally include in API requests. By default, fields with
21305	// empty values are omitted from API requests. However, any non-pointer,
21306	// non-interface field appearing in ForceSendFields will be sent to the
21307	// server regardless of whether the field is empty or not. This may be
21308	// used to include empty fields in Patch requests.
21309	ForceSendFields []string `json:"-"`
21310
21311	// NullFields is a list of field names (e.g. "AffectedCircuits") to
21312	// include in API requests with the JSON null value. By default, fields
21313	// with empty values are omitted from API requests. However, any field
21314	// with an empty value appearing in NullFields will be sent to the
21315	// server as null. It is an error if a field in this list has a
21316	// non-empty value. This may be used to include null fields in Patch
21317	// requests.
21318	NullFields []string `json:"-"`
21319}
21320
21321func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
21322	type NoMethod InterconnectOutageNotification
21323	raw := NoMethod(*s)
21324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21325}
21326
21327// InterconnectsGetDiagnosticsResponse: Response for the
21328// InterconnectsGetDiagnosticsRequest.
21329type InterconnectsGetDiagnosticsResponse struct {
21330	Result *InterconnectDiagnostics `json:"result,omitempty"`
21331
21332	// ServerResponse contains the HTTP response code and headers from the
21333	// server.
21334	googleapi.ServerResponse `json:"-"`
21335
21336	// ForceSendFields is a list of field names (e.g. "Result") to
21337	// unconditionally include in API requests. By default, fields with
21338	// empty values are omitted from API requests. However, any non-pointer,
21339	// non-interface field appearing in ForceSendFields will be sent to the
21340	// server regardless of whether the field is empty or not. This may be
21341	// used to include empty fields in Patch requests.
21342	ForceSendFields []string `json:"-"`
21343
21344	// NullFields is a list of field names (e.g. "Result") to include in API
21345	// requests with the JSON null value. By default, fields with empty
21346	// values are omitted from API requests. However, any field with an
21347	// empty value appearing in NullFields will be sent to the server as
21348	// null. It is an error if a field in this list has a non-empty value.
21349	// This may be used to include null fields in Patch requests.
21350	NullFields []string `json:"-"`
21351}
21352
21353func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
21354	type NoMethod InterconnectsGetDiagnosticsResponse
21355	raw := NoMethod(*s)
21356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21357}
21358
21359type InternalIpAddress struct {
21360	// Cidr: IP CIDR address or range.
21361	Cidr string `json:"cidr,omitempty"`
21362
21363	// Owner: The owner of the internal IP address.
21364	Owner string `json:"owner,omitempty"`
21365
21366	// Purpose: The purpose of the internal IP address if applicable.
21367	Purpose string `json:"purpose,omitempty"`
21368
21369	// Region: The region of the internal IP address if applicable.
21370	Region string `json:"region,omitempty"`
21371
21372	// Type: The type of the internal IP address.
21373	//
21374	// Possible values:
21375	//   "PEER_RESERVED"
21376	//   "PEER_USED"
21377	//   "REMOTE_RESERVED"
21378	//   "REMOTE_USED"
21379	//   "RESERVED"
21380	//   "SUBNETWORK"
21381	//   "TYPE_UNSPECIFIED"
21382	Type string `json:"type,omitempty"`
21383
21384	// ForceSendFields is a list of field names (e.g. "Cidr") to
21385	// unconditionally include in API requests. By default, fields with
21386	// empty values are omitted from API requests. However, any non-pointer,
21387	// non-interface field appearing in ForceSendFields will be sent to the
21388	// server regardless of whether the field is empty or not. This may be
21389	// used to include empty fields in Patch requests.
21390	ForceSendFields []string `json:"-"`
21391
21392	// NullFields is a list of field names (e.g. "Cidr") to include in API
21393	// requests with the JSON null value. By default, fields with empty
21394	// values are omitted from API requests. However, any field with an
21395	// empty value appearing in NullFields will be sent to the server as
21396	// null. It is an error if a field in this list has a non-empty value.
21397	// This may be used to include null fields in Patch requests.
21398	NullFields []string `json:"-"`
21399}
21400
21401func (s *InternalIpAddress) MarshalJSON() ([]byte, error) {
21402	type NoMethod InternalIpAddress
21403	raw := NoMethod(*s)
21404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21405}
21406
21407type InternalIpOwner struct {
21408	// IpCidrRange: IP CIDR range being owned.
21409	IpCidrRange string `json:"ipCidrRange,omitempty"`
21410
21411	// Owners: URLs of the IP owners of the IP CIDR range.
21412	Owners []string `json:"owners,omitempty"`
21413
21414	// SystemOwned: Whether this IP CIDR range is reserved for system use.
21415	SystemOwned bool `json:"systemOwned,omitempty"`
21416
21417	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
21418	// unconditionally include in API requests. By default, fields with
21419	// empty values are omitted from API requests. However, any non-pointer,
21420	// non-interface field appearing in ForceSendFields will be sent to the
21421	// server regardless of whether the field is empty or not. This may be
21422	// used to include empty fields in Patch requests.
21423	ForceSendFields []string `json:"-"`
21424
21425	// NullFields is a list of field names (e.g. "IpCidrRange") to include
21426	// in API requests with the JSON null value. By default, fields with
21427	// empty values are omitted from API requests. However, any field with
21428	// an empty value appearing in NullFields will be sent to the server as
21429	// null. It is an error if a field in this list has a non-empty value.
21430	// This may be used to include null fields in Patch requests.
21431	NullFields []string `json:"-"`
21432}
21433
21434func (s *InternalIpOwner) MarshalJSON() ([]byte, error) {
21435	type NoMethod InternalIpOwner
21436	raw := NoMethod(*s)
21437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21438}
21439
21440type IpAddressesList struct {
21441	// Id: [Output Only] Unique identifier for the resource; defined by the
21442	// server.
21443	Id string `json:"id,omitempty"`
21444
21445	// Items: A list of InternalIpAddress resources.
21446	Items []*InternalIpAddress `json:"items,omitempty"`
21447
21448	// Kind: [Output Only] Type of resource. Always compute#ipAddressesList
21449	// for IP addresses lists.
21450	Kind string `json:"kind,omitempty"`
21451
21452	// NextPageToken: [Output Only] This token allows you to get the next
21453	// page of results for list requests. If the number of results is larger
21454	// than maxResults, use the nextPageToken as a value for the query
21455	// parameter pageToken in the next list request. Subsequent list
21456	// requests will have their own nextPageToken to continue paging through
21457	// the results.
21458	NextPageToken string `json:"nextPageToken,omitempty"`
21459
21460	// SelfLink: [Output Only] Server-defined URL for this resource.
21461	SelfLink string `json:"selfLink,omitempty"`
21462
21463	// Warning: [Output Only] Informational warning message.
21464	Warning *IpAddressesListWarning `json:"warning,omitempty"`
21465
21466	// ServerResponse contains the HTTP response code and headers from the
21467	// server.
21468	googleapi.ServerResponse `json:"-"`
21469
21470	// ForceSendFields is a list of field names (e.g. "Id") to
21471	// unconditionally include in API requests. By default, fields with
21472	// empty values are omitted from API requests. However, any non-pointer,
21473	// non-interface field appearing in ForceSendFields will be sent to the
21474	// server regardless of whether the field is empty or not. This may be
21475	// used to include empty fields in Patch requests.
21476	ForceSendFields []string `json:"-"`
21477
21478	// NullFields is a list of field names (e.g. "Id") to include in API
21479	// requests with the JSON null value. By default, fields with empty
21480	// values are omitted from API requests. However, any field with an
21481	// empty value appearing in NullFields will be sent to the server as
21482	// null. It is an error if a field in this list has a non-empty value.
21483	// This may be used to include null fields in Patch requests.
21484	NullFields []string `json:"-"`
21485}
21486
21487func (s *IpAddressesList) MarshalJSON() ([]byte, error) {
21488	type NoMethod IpAddressesList
21489	raw := NoMethod(*s)
21490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21491}
21492
21493// IpAddressesListWarning: [Output Only] Informational warning message.
21494type IpAddressesListWarning struct {
21495	// Code: [Output Only] A warning code, if applicable. For example,
21496	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21497	// the response.
21498	//
21499	// Possible values:
21500	//   "CLEANUP_FAILED"
21501	//   "DEPRECATED_RESOURCE_USED"
21502	//   "DEPRECATED_TYPE_USED"
21503	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21504	//   "EXPERIMENTAL_TYPE_USED"
21505	//   "EXTERNAL_API_WARNING"
21506	//   "FIELD_VALUE_OVERRIDEN"
21507	//   "INJECTED_KERNELS_DEPRECATED"
21508	//   "MISSING_TYPE_DEPENDENCY"
21509	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21510	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21511	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21512	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21513	//   "NEXT_HOP_NOT_RUNNING"
21514	//   "NOT_CRITICAL_ERROR"
21515	//   "NO_RESULTS_ON_PAGE"
21516	//   "PARTIAL_SUCCESS"
21517	//   "REQUIRED_TOS_AGREEMENT"
21518	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21519	//   "RESOURCE_NOT_DELETED"
21520	//   "SCHEMA_VALIDATION_IGNORED"
21521	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21522	//   "UNDECLARED_PROPERTIES"
21523	//   "UNREACHABLE"
21524	Code string `json:"code,omitempty"`
21525
21526	// Data: [Output Only] Metadata about this warning in key: value format.
21527	// For example:
21528	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21529	Data []*IpAddressesListWarningData `json:"data,omitempty"`
21530
21531	// Message: [Output Only] A human-readable description of the warning
21532	// code.
21533	Message string `json:"message,omitempty"`
21534
21535	// ForceSendFields is a list of field names (e.g. "Code") to
21536	// unconditionally include in API requests. By default, fields with
21537	// empty values are omitted from API requests. However, any non-pointer,
21538	// non-interface field appearing in ForceSendFields will be sent to the
21539	// server regardless of whether the field is empty or not. This may be
21540	// used to include empty fields in Patch requests.
21541	ForceSendFields []string `json:"-"`
21542
21543	// NullFields is a list of field names (e.g. "Code") to include in API
21544	// requests with the JSON null value. By default, fields with empty
21545	// values are omitted from API requests. However, any field with an
21546	// empty value appearing in NullFields will be sent to the server as
21547	// null. It is an error if a field in this list has a non-empty value.
21548	// This may be used to include null fields in Patch requests.
21549	NullFields []string `json:"-"`
21550}
21551
21552func (s *IpAddressesListWarning) MarshalJSON() ([]byte, error) {
21553	type NoMethod IpAddressesListWarning
21554	raw := NoMethod(*s)
21555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21556}
21557
21558type IpAddressesListWarningData struct {
21559	// Key: [Output Only] A key that provides more detail on the warning
21560	// being returned. For example, for warnings where there are no results
21561	// in a list request for a particular zone, this key might be scope and
21562	// the key value might be the zone name. Other examples might be a key
21563	// indicating a deprecated resource and a suggested replacement, or a
21564	// warning about invalid network settings (for example, if an instance
21565	// attempts to perform IP forwarding but is not enabled for IP
21566	// forwarding).
21567	Key string `json:"key,omitempty"`
21568
21569	// Value: [Output Only] A warning data value corresponding to the key.
21570	Value string `json:"value,omitempty"`
21571
21572	// ForceSendFields is a list of field names (e.g. "Key") to
21573	// unconditionally include in API requests. By default, fields with
21574	// empty values are omitted from API requests. However, any non-pointer,
21575	// non-interface field appearing in ForceSendFields will be sent to the
21576	// server regardless of whether the field is empty or not. This may be
21577	// used to include empty fields in Patch requests.
21578	ForceSendFields []string `json:"-"`
21579
21580	// NullFields is a list of field names (e.g. "Key") to include in API
21581	// requests with the JSON null value. By default, fields with empty
21582	// values are omitted from API requests. However, any field with an
21583	// empty value appearing in NullFields will be sent to the server as
21584	// null. It is an error if a field in this list has a non-empty value.
21585	// This may be used to include null fields in Patch requests.
21586	NullFields []string `json:"-"`
21587}
21588
21589func (s *IpAddressesListWarningData) MarshalJSON() ([]byte, error) {
21590	type NoMethod IpAddressesListWarningData
21591	raw := NoMethod(*s)
21592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21593}
21594
21595// IpOwnerList: Contains a list of IP owners.
21596type IpOwnerList struct {
21597	// Id: [Output Only] Unique identifier for the resource; defined by the
21598	// server.
21599	Id string `json:"id,omitempty"`
21600
21601	// Items: A list of InternalIpOwner resources.
21602	Items []*InternalIpOwner `json:"items,omitempty"`
21603
21604	// Kind: [Output Only] Type of resource. Always compute#ipOwnerList for
21605	// lists of IP owners.
21606	Kind string `json:"kind,omitempty"`
21607
21608	// NextPageToken: [Output Only] This token allows you to get the next
21609	// page of results for list requests. If the number of results is larger
21610	// than maxResults, use the nextPageToken as a value for the query
21611	// parameter pageToken in the next list request. Subsequent list
21612	// requests will have their own nextPageToken to continue paging through
21613	// the results.
21614	NextPageToken string `json:"nextPageToken,omitempty"`
21615
21616	// SelfLink: [Output Only] Server-defined URL for this resource.
21617	SelfLink string `json:"selfLink,omitempty"`
21618
21619	// Warning: [Output Only] Informational warning message.
21620	Warning *IpOwnerListWarning `json:"warning,omitempty"`
21621
21622	// ServerResponse contains the HTTP response code and headers from the
21623	// server.
21624	googleapi.ServerResponse `json:"-"`
21625
21626	// ForceSendFields is a list of field names (e.g. "Id") to
21627	// unconditionally include in API requests. By default, fields with
21628	// empty values are omitted from API requests. However, any non-pointer,
21629	// non-interface field appearing in ForceSendFields will be sent to the
21630	// server regardless of whether the field is empty or not. This may be
21631	// used to include empty fields in Patch requests.
21632	ForceSendFields []string `json:"-"`
21633
21634	// NullFields is a list of field names (e.g. "Id") to include in API
21635	// requests with the JSON null value. By default, fields with empty
21636	// values are omitted from API requests. However, any field with an
21637	// empty value appearing in NullFields will be sent to the server as
21638	// null. It is an error if a field in this list has a non-empty value.
21639	// This may be used to include null fields in Patch requests.
21640	NullFields []string `json:"-"`
21641}
21642
21643func (s *IpOwnerList) MarshalJSON() ([]byte, error) {
21644	type NoMethod IpOwnerList
21645	raw := NoMethod(*s)
21646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21647}
21648
21649// IpOwnerListWarning: [Output Only] Informational warning message.
21650type IpOwnerListWarning struct {
21651	// Code: [Output Only] A warning code, if applicable. For example,
21652	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21653	// the response.
21654	//
21655	// Possible values:
21656	//   "CLEANUP_FAILED"
21657	//   "DEPRECATED_RESOURCE_USED"
21658	//   "DEPRECATED_TYPE_USED"
21659	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21660	//   "EXPERIMENTAL_TYPE_USED"
21661	//   "EXTERNAL_API_WARNING"
21662	//   "FIELD_VALUE_OVERRIDEN"
21663	//   "INJECTED_KERNELS_DEPRECATED"
21664	//   "MISSING_TYPE_DEPENDENCY"
21665	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21666	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21667	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21668	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21669	//   "NEXT_HOP_NOT_RUNNING"
21670	//   "NOT_CRITICAL_ERROR"
21671	//   "NO_RESULTS_ON_PAGE"
21672	//   "PARTIAL_SUCCESS"
21673	//   "REQUIRED_TOS_AGREEMENT"
21674	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21675	//   "RESOURCE_NOT_DELETED"
21676	//   "SCHEMA_VALIDATION_IGNORED"
21677	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21678	//   "UNDECLARED_PROPERTIES"
21679	//   "UNREACHABLE"
21680	Code string `json:"code,omitempty"`
21681
21682	// Data: [Output Only] Metadata about this warning in key: value format.
21683	// For example:
21684	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21685	Data []*IpOwnerListWarningData `json:"data,omitempty"`
21686
21687	// Message: [Output Only] A human-readable description of the warning
21688	// code.
21689	Message string `json:"message,omitempty"`
21690
21691	// ForceSendFields is a list of field names (e.g. "Code") to
21692	// unconditionally include in API requests. By default, fields with
21693	// empty values are omitted from API requests. However, any non-pointer,
21694	// non-interface field appearing in ForceSendFields will be sent to the
21695	// server regardless of whether the field is empty or not. This may be
21696	// used to include empty fields in Patch requests.
21697	ForceSendFields []string `json:"-"`
21698
21699	// NullFields is a list of field names (e.g. "Code") to include in API
21700	// requests with the JSON null value. By default, fields with empty
21701	// values are omitted from API requests. However, any field with an
21702	// empty value appearing in NullFields will be sent to the server as
21703	// null. It is an error if a field in this list has a non-empty value.
21704	// This may be used to include null fields in Patch requests.
21705	NullFields []string `json:"-"`
21706}
21707
21708func (s *IpOwnerListWarning) MarshalJSON() ([]byte, error) {
21709	type NoMethod IpOwnerListWarning
21710	raw := NoMethod(*s)
21711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21712}
21713
21714type IpOwnerListWarningData struct {
21715	// Key: [Output Only] A key that provides more detail on the warning
21716	// being returned. For example, for warnings where there are no results
21717	// in a list request for a particular zone, this key might be scope and
21718	// the key value might be the zone name. Other examples might be a key
21719	// indicating a deprecated resource and a suggested replacement, or a
21720	// warning about invalid network settings (for example, if an instance
21721	// attempts to perform IP forwarding but is not enabled for IP
21722	// forwarding).
21723	Key string `json:"key,omitempty"`
21724
21725	// Value: [Output Only] A warning data value corresponding to the key.
21726	Value string `json:"value,omitempty"`
21727
21728	// ForceSendFields is a list of field names (e.g. "Key") to
21729	// unconditionally include in API requests. By default, fields with
21730	// empty values are omitted from API requests. However, any non-pointer,
21731	// non-interface field appearing in ForceSendFields will be sent to the
21732	// server regardless of whether the field is empty or not. This may be
21733	// used to include empty fields in Patch requests.
21734	ForceSendFields []string `json:"-"`
21735
21736	// NullFields is a list of field names (e.g. "Key") to include in API
21737	// requests with the JSON null value. By default, fields with empty
21738	// values are omitted from API requests. However, any field with an
21739	// empty value appearing in NullFields will be sent to the server as
21740	// null. It is an error if a field in this list has a non-empty value.
21741	// This may be used to include null fields in Patch requests.
21742	NullFields []string `json:"-"`
21743}
21744
21745func (s *IpOwnerListWarningData) MarshalJSON() ([]byte, error) {
21746	type NoMethod IpOwnerListWarningData
21747	raw := NoMethod(*s)
21748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21749}
21750
21751// Jwt: [Deprecated] JWT configuration for origin authentication. JWT
21752// configuration for origin authentication.
21753type Jwt struct {
21754	// Audiences: A JWT containing any of these audiences will be accepted.
21755	// The service name will be accepted if audiences is empty. Examples:
21756	// bookstore_android.apps.googleusercontent.com,
21757	// bookstore_web.apps.googleusercontent.com
21758	Audiences []string `json:"audiences,omitempty"`
21759
21760	// Issuer: Identifies the issuer that issued the JWT, which is usually a
21761	// URL or an email address. Examples: https://securetoken.google.com,
21762	// 1234567-compute@developer.gserviceaccount.com
21763	Issuer string `json:"issuer,omitempty"`
21764
21765	// JwksPublicKeys: The provider's public key set to validate the
21766	// signature of the JWT.
21767	JwksPublicKeys string `json:"jwksPublicKeys,omitempty"`
21768
21769	// JwtHeaders: jwt_headers and jwt_params define where to extract the
21770	// JWT from an HTTP request. If no explicit location is specified, the
21771	// following default locations are tried in order:
21772	//
21773	// 1. The Authorization header using the Bearer schema. See `here `_.
21774	// Example:
21775	//
21776	// Authorization: Bearer .
21777	//
21778	// 2. `access_token` query parameter. See `this `_
21779	//
21780	// Multiple JWTs can be verified for a request. Each JWT has to be
21781	// extracted from the locations its issuer specified or from the default
21782	// locations.
21783	//
21784	// This field is set if JWT is sent in a request header. This field
21785	// specifies the header name. For example, if
21786	// `header=x-goog-iap-jwt-assertion`, the header format will be
21787	// x-goog-iap-jwt-assertion: .
21788	JwtHeaders []*JwtHeader `json:"jwtHeaders,omitempty"`
21789
21790	// JwtParams: This field is set if JWT is sent in a query parameter.
21791	// This field specifies the query parameter name. For example, if
21792	// jwt_params[0] is jwt_token, the JWT format in the query parameter is
21793	// /path?jwt_token=.
21794	JwtParams []string `json:"jwtParams,omitempty"`
21795
21796	// ForceSendFields is a list of field names (e.g. "Audiences") to
21797	// unconditionally include in API requests. By default, fields with
21798	// empty values are omitted from API requests. However, any non-pointer,
21799	// non-interface field appearing in ForceSendFields will be sent to the
21800	// server regardless of whether the field is empty or not. This may be
21801	// used to include empty fields in Patch requests.
21802	ForceSendFields []string `json:"-"`
21803
21804	// NullFields is a list of field names (e.g. "Audiences") to include in
21805	// API requests with the JSON null value. By default, fields with empty
21806	// values are omitted from API requests. However, any field with an
21807	// empty value appearing in NullFields will be sent to the server as
21808	// null. It is an error if a field in this list has a non-empty value.
21809	// This may be used to include null fields in Patch requests.
21810	NullFields []string `json:"-"`
21811}
21812
21813func (s *Jwt) MarshalJSON() ([]byte, error) {
21814	type NoMethod Jwt
21815	raw := NoMethod(*s)
21816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21817}
21818
21819// JwtHeader: [Deprecated] This message specifies a header location to
21820// extract JWT token. This message specifies a header location to
21821// extract JWT token.
21822type JwtHeader struct {
21823	// Name: The HTTP header name.
21824	Name string `json:"name,omitempty"`
21825
21826	// ValuePrefix: The value prefix. The value format is "value_prefix" For
21827	// example, for "Authorization: Bearer ", value_prefix="Bearer " with a
21828	// space at the end.
21829	ValuePrefix string `json:"valuePrefix,omitempty"`
21830
21831	// ForceSendFields is a list of field names (e.g. "Name") to
21832	// unconditionally include in API requests. By default, fields with
21833	// empty values are omitted from API requests. However, any non-pointer,
21834	// non-interface field appearing in ForceSendFields will be sent to the
21835	// server regardless of whether the field is empty or not. This may be
21836	// used to include empty fields in Patch requests.
21837	ForceSendFields []string `json:"-"`
21838
21839	// NullFields is a list of field names (e.g. "Name") to include in API
21840	// requests with the JSON null value. By default, fields with empty
21841	// values are omitted from API requests. However, any field with an
21842	// empty value appearing in NullFields will be sent to the server as
21843	// null. It is an error if a field in this list has a non-empty value.
21844	// This may be used to include null fields in Patch requests.
21845	NullFields []string `json:"-"`
21846}
21847
21848func (s *JwtHeader) MarshalJSON() ([]byte, error) {
21849	type NoMethod JwtHeader
21850	raw := NoMethod(*s)
21851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21852}
21853
21854// License: Represents a License resource.
21855//
21856// A License represents billing and aggregate usage data for public and
21857// marketplace images.  Caution This resource is intended for use only
21858// by third-party partners who are creating Cloud Marketplace images.
21859// (== resource_for {$api_version}.licenses ==)
21860type License struct {
21861	// ChargesUseFee: [Output Only] Deprecated. This field no longer
21862	// reflects whether a license charges a usage fee.
21863	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
21864
21865	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21866	// format.
21867	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21868
21869	// Description: An optional textual description of the resource;
21870	// provided by the client when the resource is created.
21871	Description string `json:"description,omitempty"`
21872
21873	// Id: [Output Only] The unique identifier for the resource. This
21874	// identifier is defined by the server.
21875	Id uint64 `json:"id,omitempty,string"`
21876
21877	// Kind: [Output Only] Type of resource. Always compute#license for
21878	// licenses.
21879	Kind string `json:"kind,omitempty"`
21880
21881	// LicenseCode: [Output Only] The unique code used to attach this
21882	// license to images, snapshots, and disks.
21883	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
21884
21885	// Name: Name of the resource. The name must be 1-63 characters long and
21886	// comply with RFC1035.
21887	Name string `json:"name,omitempty"`
21888
21889	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
21890
21891	// SelfLink: [Output Only] Server-defined URL for the resource.
21892	SelfLink string `json:"selfLink,omitempty"`
21893
21894	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
21895	// with the resource id.
21896	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
21897
21898	// Transferable: If false, licenses will not be copied from the source
21899	// resource when creating an image from a disk, disk from snapshot, or
21900	// snapshot from disk.
21901	Transferable bool `json:"transferable,omitempty"`
21902
21903	// ServerResponse contains the HTTP response code and headers from the
21904	// server.
21905	googleapi.ServerResponse `json:"-"`
21906
21907	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
21908	// unconditionally include in API requests. By default, fields with
21909	// empty values are omitted from API requests. However, any non-pointer,
21910	// non-interface field appearing in ForceSendFields will be sent to the
21911	// server regardless of whether the field is empty or not. This may be
21912	// used to include empty fields in Patch requests.
21913	ForceSendFields []string `json:"-"`
21914
21915	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
21916	// in API requests with the JSON null value. By default, fields with
21917	// empty values are omitted from API requests. However, any field with
21918	// an empty value appearing in NullFields will be sent to the server as
21919	// null. It is an error if a field in this list has a non-empty value.
21920	// This may be used to include null fields in Patch requests.
21921	NullFields []string `json:"-"`
21922}
21923
21924func (s *License) MarshalJSON() ([]byte, error) {
21925	type NoMethod License
21926	raw := NoMethod(*s)
21927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21928}
21929
21930// LicenseCode: Represents a License Code resource.
21931//
21932// A License Code is a unique identifier used to represent a license
21933// resource.  Caution This resource is intended for use only by
21934// third-party partners who are creating Cloud Marketplace images. (==
21935// resource_for {$api_version}.licenseCodes ==)
21936type LicenseCode struct {
21937	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21938	// format.
21939	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21940
21941	// Description: [Output Only] Description of this License Code.
21942	Description string `json:"description,omitempty"`
21943
21944	// Id: [Output Only] The unique identifier for the resource. This
21945	// identifier is defined by the server.
21946	Id uint64 `json:"id,omitempty,string"`
21947
21948	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
21949	// licenses.
21950	Kind string `json:"kind,omitempty"`
21951
21952	// LicenseAlias: [Output Only] URL and description aliases of Licenses
21953	// with the same License Code.
21954	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
21955
21956	// Name: [Output Only] Name of the resource. The name is 1-20 characters
21957	// long and must be a valid 64 bit integer.
21958	Name string `json:"name,omitempty"`
21959
21960	// SelfLink: [Output Only] Server-defined URL for the resource.
21961	SelfLink string `json:"selfLink,omitempty"`
21962
21963	// State: [Output Only] Current state of this License Code.
21964	//
21965	// Possible values:
21966	//   "DISABLED"
21967	//   "ENABLED"
21968	//   "RESTRICTED"
21969	//   "STATE_UNSPECIFIED"
21970	//   "TERMINATED"
21971	State string `json:"state,omitempty"`
21972
21973	// Transferable: [Output Only] If true, the license will remain attached
21974	// when creating images or snapshots from disks. Otherwise, the license
21975	// is not transferred.
21976	Transferable bool `json:"transferable,omitempty"`
21977
21978	// ServerResponse contains the HTTP response code and headers from the
21979	// server.
21980	googleapi.ServerResponse `json:"-"`
21981
21982	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21983	// to unconditionally include in API requests. By default, fields with
21984	// empty values are omitted from API requests. However, any non-pointer,
21985	// non-interface field appearing in ForceSendFields will be sent to the
21986	// server regardless of whether the field is empty or not. This may be
21987	// used to include empty fields in Patch requests.
21988	ForceSendFields []string `json:"-"`
21989
21990	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21991	// include in API requests with the JSON null value. By default, fields
21992	// with empty values are omitted from API requests. However, any field
21993	// with an empty value appearing in NullFields will be sent to the
21994	// server as null. It is an error if a field in this list has a
21995	// non-empty value. This may be used to include null fields in Patch
21996	// requests.
21997	NullFields []string `json:"-"`
21998}
21999
22000func (s *LicenseCode) MarshalJSON() ([]byte, error) {
22001	type NoMethod LicenseCode
22002	raw := NoMethod(*s)
22003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22004}
22005
22006type LicenseCodeLicenseAlias struct {
22007	// Description: [Output Only] Description of this License Code.
22008	Description string `json:"description,omitempty"`
22009
22010	// SelfLink: [Output Only] URL of license corresponding to this License
22011	// Code.
22012	SelfLink string `json:"selfLink,omitempty"`
22013
22014	// ForceSendFields is a list of field names (e.g. "Description") to
22015	// unconditionally include in API requests. By default, fields with
22016	// empty values are omitted from API requests. However, any non-pointer,
22017	// non-interface field appearing in ForceSendFields will be sent to the
22018	// server regardless of whether the field is empty or not. This may be
22019	// used to include empty fields in Patch requests.
22020	ForceSendFields []string `json:"-"`
22021
22022	// NullFields is a list of field names (e.g. "Description") to include
22023	// in API requests with the JSON null value. By default, fields with
22024	// empty values are omitted from API requests. However, any field with
22025	// an empty value appearing in NullFields will be sent to the server as
22026	// null. It is an error if a field in this list has a non-empty value.
22027	// This may be used to include null fields in Patch requests.
22028	NullFields []string `json:"-"`
22029}
22030
22031func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
22032	type NoMethod LicenseCodeLicenseAlias
22033	raw := NoMethod(*s)
22034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22035}
22036
22037// LicenseResourceCommitment: Commitment for a particular license
22038// resource.
22039type LicenseResourceCommitment struct {
22040	// Amount: The number of licenses purchased.
22041	Amount int64 `json:"amount,omitempty,string"`
22042
22043	// CoresPerLicense: Specifies the core range of the instance for which
22044	// this license applies.
22045	CoresPerLicense string `json:"coresPerLicense,omitempty"`
22046
22047	// License: Any applicable license URI.
22048	License string `json:"license,omitempty"`
22049
22050	// ForceSendFields is a list of field names (e.g. "Amount") to
22051	// unconditionally include in API requests. By default, fields with
22052	// empty values are omitted from API requests. However, any non-pointer,
22053	// non-interface field appearing in ForceSendFields will be sent to the
22054	// server regardless of whether the field is empty or not. This may be
22055	// used to include empty fields in Patch requests.
22056	ForceSendFields []string `json:"-"`
22057
22058	// NullFields is a list of field names (e.g. "Amount") to include in API
22059	// requests with the JSON null value. By default, fields with empty
22060	// values are omitted from API requests. However, any field with an
22061	// empty value appearing in NullFields will be sent to the server as
22062	// null. It is an error if a field in this list has a non-empty value.
22063	// This may be used to include null fields in Patch requests.
22064	NullFields []string `json:"-"`
22065}
22066
22067func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
22068	type NoMethod LicenseResourceCommitment
22069	raw := NoMethod(*s)
22070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22071}
22072
22073type LicenseResourceRequirements struct {
22074	// MinGuestCpuCount: Minimum number of guest cpus required to use the
22075	// Instance. Enforced at Instance creation and Instance start.
22076	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
22077
22078	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
22079	// Instance creation and Instance start.
22080	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
22081
22082	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
22083	// unconditionally include in API requests. By default, fields with
22084	// empty values are omitted from API requests. However, any non-pointer,
22085	// non-interface field appearing in ForceSendFields will be sent to the
22086	// server regardless of whether the field is empty or not. This may be
22087	// used to include empty fields in Patch requests.
22088	ForceSendFields []string `json:"-"`
22089
22090	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
22091	// include in API requests with the JSON null value. By default, fields
22092	// with empty values are omitted from API requests. However, any field
22093	// with an empty value appearing in NullFields will be sent to the
22094	// server as null. It is an error if a field in this list has a
22095	// non-empty value. This may be used to include null fields in Patch
22096	// requests.
22097	NullFields []string `json:"-"`
22098}
22099
22100func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
22101	type NoMethod LicenseResourceRequirements
22102	raw := NoMethod(*s)
22103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22104}
22105
22106type LicensesListResponse struct {
22107	// Id: [Output Only] Unique identifier for the resource; defined by the
22108	// server.
22109	Id string `json:"id,omitempty"`
22110
22111	// Items: A list of License resources.
22112	Items []*License `json:"items,omitempty"`
22113
22114	// NextPageToken: [Output Only] This token allows you to get the next
22115	// page of results for list requests. If the number of results is larger
22116	// than maxResults, use the nextPageToken as a value for the query
22117	// parameter pageToken in the next list request. Subsequent list
22118	// requests will have their own nextPageToken to continue paging through
22119	// the results.
22120	NextPageToken string `json:"nextPageToken,omitempty"`
22121
22122	// SelfLink: [Output Only] Server-defined URL for this resource.
22123	SelfLink string `json:"selfLink,omitempty"`
22124
22125	// Warning: [Output Only] Informational warning message.
22126	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
22127
22128	// ServerResponse contains the HTTP response code and headers from the
22129	// server.
22130	googleapi.ServerResponse `json:"-"`
22131
22132	// ForceSendFields is a list of field names (e.g. "Id") to
22133	// unconditionally include in API requests. By default, fields with
22134	// empty values are omitted from API requests. However, any non-pointer,
22135	// non-interface field appearing in ForceSendFields will be sent to the
22136	// server regardless of whether the field is empty or not. This may be
22137	// used to include empty fields in Patch requests.
22138	ForceSendFields []string `json:"-"`
22139
22140	// NullFields is a list of field names (e.g. "Id") to include in API
22141	// requests with the JSON null value. By default, fields with empty
22142	// values are omitted from API requests. However, any field with an
22143	// empty value appearing in NullFields will be sent to the server as
22144	// null. It is an error if a field in this list has a non-empty value.
22145	// This may be used to include null fields in Patch requests.
22146	NullFields []string `json:"-"`
22147}
22148
22149func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
22150	type NoMethod LicensesListResponse
22151	raw := NoMethod(*s)
22152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22153}
22154
22155// LicensesListResponseWarning: [Output Only] Informational warning
22156// message.
22157type LicensesListResponseWarning struct {
22158	// Code: [Output Only] A warning code, if applicable. For example,
22159	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22160	// the response.
22161	//
22162	// Possible values:
22163	//   "CLEANUP_FAILED"
22164	//   "DEPRECATED_RESOURCE_USED"
22165	//   "DEPRECATED_TYPE_USED"
22166	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22167	//   "EXPERIMENTAL_TYPE_USED"
22168	//   "EXTERNAL_API_WARNING"
22169	//   "FIELD_VALUE_OVERRIDEN"
22170	//   "INJECTED_KERNELS_DEPRECATED"
22171	//   "MISSING_TYPE_DEPENDENCY"
22172	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22173	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22174	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22175	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22176	//   "NEXT_HOP_NOT_RUNNING"
22177	//   "NOT_CRITICAL_ERROR"
22178	//   "NO_RESULTS_ON_PAGE"
22179	//   "PARTIAL_SUCCESS"
22180	//   "REQUIRED_TOS_AGREEMENT"
22181	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22182	//   "RESOURCE_NOT_DELETED"
22183	//   "SCHEMA_VALIDATION_IGNORED"
22184	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22185	//   "UNDECLARED_PROPERTIES"
22186	//   "UNREACHABLE"
22187	Code string `json:"code,omitempty"`
22188
22189	// Data: [Output Only] Metadata about this warning in key: value format.
22190	// For example:
22191	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22192	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
22193
22194	// Message: [Output Only] A human-readable description of the warning
22195	// code.
22196	Message string `json:"message,omitempty"`
22197
22198	// ForceSendFields is a list of field names (e.g. "Code") to
22199	// unconditionally include in API requests. By default, fields with
22200	// empty values are omitted from API requests. However, any non-pointer,
22201	// non-interface field appearing in ForceSendFields will be sent to the
22202	// server regardless of whether the field is empty or not. This may be
22203	// used to include empty fields in Patch requests.
22204	ForceSendFields []string `json:"-"`
22205
22206	// NullFields is a list of field names (e.g. "Code") to include in API
22207	// requests with the JSON null value. By default, fields with empty
22208	// values are omitted from API requests. However, any field with an
22209	// empty value appearing in NullFields will be sent to the server as
22210	// null. It is an error if a field in this list has a non-empty value.
22211	// This may be used to include null fields in Patch requests.
22212	NullFields []string `json:"-"`
22213}
22214
22215func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
22216	type NoMethod LicensesListResponseWarning
22217	raw := NoMethod(*s)
22218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22219}
22220
22221type LicensesListResponseWarningData struct {
22222	// Key: [Output Only] A key that provides more detail on the warning
22223	// being returned. For example, for warnings where there are no results
22224	// in a list request for a particular zone, this key might be scope and
22225	// the key value might be the zone name. Other examples might be a key
22226	// indicating a deprecated resource and a suggested replacement, or a
22227	// warning about invalid network settings (for example, if an instance
22228	// attempts to perform IP forwarding but is not enabled for IP
22229	// forwarding).
22230	Key string `json:"key,omitempty"`
22231
22232	// Value: [Output Only] A warning data value corresponding to the key.
22233	Value string `json:"value,omitempty"`
22234
22235	// ForceSendFields is a list of field names (e.g. "Key") to
22236	// unconditionally include in API requests. By default, fields with
22237	// empty values are omitted from API requests. However, any non-pointer,
22238	// non-interface field appearing in ForceSendFields will be sent to the
22239	// server regardless of whether the field is empty or not. This may be
22240	// used to include empty fields in Patch requests.
22241	ForceSendFields []string `json:"-"`
22242
22243	// NullFields is a list of field names (e.g. "Key") to include in API
22244	// requests with the JSON null value. By default, fields with empty
22245	// values are omitted from API requests. However, any field with an
22246	// empty value appearing in NullFields will be sent to the server as
22247	// null. It is an error if a field in this list has a non-empty value.
22248	// This may be used to include null fields in Patch requests.
22249	NullFields []string `json:"-"`
22250}
22251
22252func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
22253	type NoMethod LicensesListResponseWarningData
22254	raw := NoMethod(*s)
22255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22256}
22257
22258type LocalDisk struct {
22259	// DiskCount: Specifies the number of such disks.
22260	DiskCount int64 `json:"diskCount,omitempty"`
22261
22262	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
22263	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
22264
22265	// DiskType: Specifies the desired disk type on the node. This disk type
22266	// must be a local storage type (e.g.: local-ssd). Note that for
22267	// nodeTemplates, this should be the name of the disk type and not its
22268	// URL.
22269	DiskType string `json:"diskType,omitempty"`
22270
22271	// ForceSendFields is a list of field names (e.g. "DiskCount") to
22272	// unconditionally include in API requests. By default, fields with
22273	// empty values are omitted from API requests. However, any non-pointer,
22274	// non-interface field appearing in ForceSendFields will be sent to the
22275	// server regardless of whether the field is empty or not. This may be
22276	// used to include empty fields in Patch requests.
22277	ForceSendFields []string `json:"-"`
22278
22279	// NullFields is a list of field names (e.g. "DiskCount") to include in
22280	// API requests with the JSON null value. By default, fields with empty
22281	// values are omitted from API requests. However, any field with an
22282	// 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 *LocalDisk) MarshalJSON() ([]byte, error) {
22289	type NoMethod LocalDisk
22290	raw := NoMethod(*s)
22291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22292}
22293
22294// LogConfig: Specifies what kind of log the caller must write
22295type LogConfig struct {
22296	// CloudAudit: Cloud audit options.
22297	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
22298
22299	// Counter: Counter options.
22300	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
22301
22302	// DataAccess: Data access options.
22303	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
22304
22305	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
22306	// unconditionally include in API requests. By default, fields with
22307	// empty values are omitted from API requests. However, any non-pointer,
22308	// non-interface field appearing in ForceSendFields will be sent to the
22309	// server regardless of whether the field is empty or not. This may be
22310	// used to include empty fields in Patch requests.
22311	ForceSendFields []string `json:"-"`
22312
22313	// NullFields is a list of field names (e.g. "CloudAudit") to include in
22314	// API requests with the JSON null value. By default, fields with empty
22315	// values are omitted from API requests. However, any field with an
22316	// empty value appearing in NullFields will be sent to the server as
22317	// null. It is an error if a field in this list has a non-empty value.
22318	// This may be used to include null fields in Patch requests.
22319	NullFields []string `json:"-"`
22320}
22321
22322func (s *LogConfig) MarshalJSON() ([]byte, error) {
22323	type NoMethod LogConfig
22324	raw := NoMethod(*s)
22325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22326}
22327
22328// LogConfigCloudAuditOptions: Write a Cloud Audit log
22329type LogConfigCloudAuditOptions struct {
22330	// AuthorizationLoggingOptions: Information used by the Cloud Audit
22331	// Logging pipeline.
22332	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
22333
22334	// LogName: The log_name to populate in the Cloud Audit Record.
22335	//
22336	// Possible values:
22337	//   "ADMIN_ACTIVITY"
22338	//   "DATA_ACCESS"
22339	//   "UNSPECIFIED_LOG_NAME"
22340	LogName string `json:"logName,omitempty"`
22341
22342	// ForceSendFields is a list of field names (e.g.
22343	// "AuthorizationLoggingOptions") to unconditionally include in API
22344	// requests. By default, fields with empty values are omitted from API
22345	// requests. However, any non-pointer, non-interface field appearing in
22346	// ForceSendFields will be sent to the server regardless of whether the
22347	// field is empty or not. This may be used to include empty fields in
22348	// Patch requests.
22349	ForceSendFields []string `json:"-"`
22350
22351	// NullFields is a list of field names (e.g.
22352	// "AuthorizationLoggingOptions") to include in API requests with the
22353	// JSON null value. By default, fields with empty values are omitted
22354	// from API requests. However, any field with an empty value appearing
22355	// in NullFields will be sent to the server as null. It is an error if a
22356	// field in this list has a non-empty value. This may be used to include
22357	// null fields in Patch requests.
22358	NullFields []string `json:"-"`
22359}
22360
22361func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
22362	type NoMethod LogConfigCloudAuditOptions
22363	raw := NoMethod(*s)
22364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22365}
22366
22367// LogConfigCounterOptions: Increment a streamz counter with the
22368// specified metric and field names.
22369//
22370// Metric names should start with a '/', generally be lowercase-only,
22371// and end in "_count". Field names should not contain an initial slash.
22372// The actual exported metric names will have "/iam/policy"
22373// prepended.
22374//
22375// Field names correspond to IAM request parameters and field values are
22376// their respective values.
22377//
22378// Supported field names: - "authority", which is "[token]" if
22379// IAMContext.token is present, otherwise the value of
22380// IAMContext.authority_selector if present, and otherwise a
22381// representation of IAMContext.principal; or - "iam_principal", a
22382// representation of IAMContext.principal even if a token or authority
22383// selector is present; or - "" (empty string), resulting in a counter
22384// with no fields.
22385//
22386// Examples: counter { metric: "/debug_access_count" field:
22387// "iam_principal" } ==> increment counter
22388// /iam/policy/debug_access_count {iam_principal=[value of
22389// IAMContext.principal]}
22390type LogConfigCounterOptions struct {
22391	// CustomFields: Custom fields.
22392	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
22393
22394	// Field: The field value to attribute.
22395	Field string `json:"field,omitempty"`
22396
22397	// Metric: The metric to update.
22398	Metric string `json:"metric,omitempty"`
22399
22400	// ForceSendFields is a list of field names (e.g. "CustomFields") to
22401	// unconditionally include in API requests. By default, fields with
22402	// empty values are omitted from API requests. However, any non-pointer,
22403	// non-interface field appearing in ForceSendFields will be sent to the
22404	// server regardless of whether the field is empty or not. This may be
22405	// used to include empty fields in Patch requests.
22406	ForceSendFields []string `json:"-"`
22407
22408	// NullFields is a list of field names (e.g. "CustomFields") to include
22409	// in API requests with the JSON null value. By default, fields with
22410	// empty values are omitted from API requests. However, any field with
22411	// an empty value appearing in NullFields will be sent to the server as
22412	// null. It is an error if a field in this list has a non-empty value.
22413	// This may be used to include null fields in Patch requests.
22414	NullFields []string `json:"-"`
22415}
22416
22417func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
22418	type NoMethod LogConfigCounterOptions
22419	raw := NoMethod(*s)
22420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22421}
22422
22423// LogConfigCounterOptionsCustomField: Custom fields. These can be used
22424// to create a counter with arbitrary field/value pairs. See:
22425// go/rpcsp-custom-fields.
22426type LogConfigCounterOptionsCustomField struct {
22427	// Name: Name is the field name.
22428	Name string `json:"name,omitempty"`
22429
22430	// Value: Value is the field value. It is important that in contrast to
22431	// the CounterOptions.field, the value here is a constant that is not
22432	// derived from the IAMContext.
22433	Value string `json:"value,omitempty"`
22434
22435	// ForceSendFields is a list of field names (e.g. "Name") to
22436	// unconditionally include in API requests. By default, fields with
22437	// empty values are omitted from API requests. However, any non-pointer,
22438	// non-interface field appearing in ForceSendFields will be sent to the
22439	// server regardless of whether the field is empty or not. This may be
22440	// used to include empty fields in Patch requests.
22441	ForceSendFields []string `json:"-"`
22442
22443	// NullFields is a list of field names (e.g. "Name") to include in API
22444	// requests with the JSON null value. By default, fields with empty
22445	// values are omitted from API requests. However, any field with an
22446	// empty value appearing in NullFields will be sent to the server as
22447	// null. It is an error if a field in this list has a non-empty value.
22448	// This may be used to include null fields in Patch requests.
22449	NullFields []string `json:"-"`
22450}
22451
22452func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
22453	type NoMethod LogConfigCounterOptionsCustomField
22454	raw := NoMethod(*s)
22455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22456}
22457
22458// LogConfigDataAccessOptions: Write a Data Access (Gin) log
22459type LogConfigDataAccessOptions struct {
22460	// LogMode: Whether Gin logging should happen in a fail-closed manner at
22461	// the caller. This is currently supported in the LocalIAM
22462	// implementation, Stubby C++, and Stubby Java. For Apps Framework, see
22463	// go/af-audit-logging#failclosed. TODO(b/77591626): Add support for
22464	// Stubby Go. TODO(b/129671387): Add support for Scaffolding.
22465	//
22466	// Possible values:
22467	//   "LOG_FAIL_CLOSED"
22468	//   "LOG_MODE_UNSPECIFIED"
22469	LogMode string `json:"logMode,omitempty"`
22470
22471	// ForceSendFields is a list of field names (e.g. "LogMode") to
22472	// unconditionally include in API requests. By default, fields with
22473	// empty values are omitted from API requests. However, any non-pointer,
22474	// non-interface field appearing in ForceSendFields will be sent to the
22475	// server regardless of whether the field is empty or not. This may be
22476	// used to include empty fields in Patch requests.
22477	ForceSendFields []string `json:"-"`
22478
22479	// NullFields is a list of field names (e.g. "LogMode") to include in
22480	// API requests with the JSON null value. By default, fields with empty
22481	// values are omitted from API requests. However, any field with an
22482	// empty value appearing in NullFields will be sent to the server as
22483	// null. It is an error if a field in this list has a non-empty value.
22484	// This may be used to include null fields in Patch requests.
22485	NullFields []string `json:"-"`
22486}
22487
22488func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
22489	type NoMethod LogConfigDataAccessOptions
22490	raw := NoMethod(*s)
22491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22492}
22493
22494// MachineImage: Represents a machine image resource.
22495//
22496// A machine image is a Compute Engine resource that stores all the
22497// configuration, metadata, permissions, and data from one or more disks
22498// required to create a Virtual machine (VM) instance. For more
22499// information, see Machine images. (== resource_for
22500// {$api_version}.machineImages ==)
22501type MachineImage struct {
22502	// CreationTimestamp: [Output Only] The creation timestamp for this
22503	// machine image in RFC3339 text format.
22504	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22505
22506	// Description: An optional description of this resource. Provide this
22507	// property when you create the resource.
22508	Description string `json:"description,omitempty"`
22509
22510	// GuestFlush: [Input Only] Specifies to create an application
22511	// consistent machine image by informing the OS to prepare for the
22512	// snapshot process. Currently only supported on Windows instances using
22513	// the Volume Shadow Copy Service (VSS).
22514	GuestFlush bool `json:"guestFlush,omitempty"`
22515
22516	// Id: [Output Only] A unique identifier for this machine image. The
22517	// server defines this identifier.
22518	Id uint64 `json:"id,omitempty,string"`
22519
22520	// Kind: [Output Only] The resource type, which is always
22521	// compute#machineImage for machine image.
22522	Kind string `json:"kind,omitempty"`
22523
22524	// MachineImageEncryptionKey: Encrypts the machine image using a
22525	// customer-supplied encryption key.
22526	//
22527	// After you encrypt a machine image using a customer-supplied key, you
22528	// must provide the same key if you use the machine image later. For
22529	// example, you must provide the encryption key when you create an
22530	// instance from the encrypted machine image in a future
22531	// request.
22532	//
22533	// Customer-supplied encryption keys do not protect access to metadata
22534	// of the machine image.
22535	//
22536	// If you do not provide an encryption key when creating the machine
22537	// image, then the machine image will be encrypted using an
22538	// automatically generated key and you do not need to provide a key to
22539	// use the machine image later.
22540	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
22541
22542	// Name: Name of the resource; provided by the client when the resource
22543	// is created. The name must be 1-63 characters long, and comply with
22544	// RFC1035. Specifically, the name must be 1-63 characters long and
22545	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22546	// the first character must be a lowercase letter, and all following
22547	// characters must be a dash, lowercase letter, or digit, except the
22548	// last character, which cannot be a dash.
22549	Name string `json:"name,omitempty"`
22550
22551	// SelfLink: [Output Only] The URL for this machine image. The server
22552	// defines this URL.
22553	SelfLink string `json:"selfLink,omitempty"`
22554
22555	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
22556	// with the resource id.
22557	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
22558
22559	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied
22560	// encryption key of the disks attached to the source instance. Required
22561	// if the source disk is protected by a customer-supplied encryption
22562	// key.
22563	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
22564
22565	// SourceInstance: The source instance used to create the machine image.
22566	// You can provide this as a partial or full URL to the resource. For
22567	// example, the following are valid values:
22568	// -
22569	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
22570	// - projects/project/zones/zone/instances/instance
22571	SourceInstance string `json:"sourceInstance,omitempty"`
22572
22573	// SourceInstanceProperties: [Output Only] Properties of source
22574	// instance.
22575	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
22576
22577	// Status: [Output Only] The status of the machine image. One of the
22578	// following values: INVALID, CREATING, READY, DELETING, and UPLOADING.
22579	//
22580	// Possible values:
22581	//   "CREATING"
22582	//   "DELETING"
22583	//   "INVALID"
22584	//   "READY"
22585	//   "UPLOADING"
22586	Status string `json:"status,omitempty"`
22587
22588	// StorageLocations: GCS bucket storage location of the machine image
22589	// (regional or multi-regional).
22590	StorageLocations []string `json:"storageLocations,omitempty"`
22591
22592	// TotalStorageBytes: [Output Only] Total size of the storage used by
22593	// the machine image.
22594	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`
22595
22596	// ServerResponse contains the HTTP response code and headers from the
22597	// server.
22598	googleapi.ServerResponse `json:"-"`
22599
22600	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22601	// to unconditionally include in API requests. By default, fields with
22602	// empty values are omitted from API requests. However, any non-pointer,
22603	// non-interface field appearing in ForceSendFields will be sent to the
22604	// server regardless of whether the field is empty or not. This may be
22605	// used to include empty fields in Patch requests.
22606	ForceSendFields []string `json:"-"`
22607
22608	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22609	// include in API requests with the JSON null value. By default, fields
22610	// with empty values are omitted from API requests. However, any field
22611	// with an empty value appearing in NullFields will be sent to the
22612	// server as null. It is an error if a field in this list has a
22613	// non-empty value. This may be used to include null fields in Patch
22614	// requests.
22615	NullFields []string `json:"-"`
22616}
22617
22618func (s *MachineImage) MarshalJSON() ([]byte, error) {
22619	type NoMethod MachineImage
22620	raw := NoMethod(*s)
22621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22622}
22623
22624// MachineImageList: A list of machine images.
22625type MachineImageList struct {
22626	// Id: [Output Only] Unique identifier for the resource; defined by the
22627	// server.
22628	Id string `json:"id,omitempty"`
22629
22630	// Items: A list of MachineImage resources.
22631	Items []*MachineImage `json:"items,omitempty"`
22632
22633	// Kind: [Output Only] The resource type, which is always
22634	// compute#machineImagesListResponse for machine image lists.
22635	Kind string `json:"kind,omitempty"`
22636
22637	// NextPageToken: [Output Only] This token allows you to get the next
22638	// page of results for list requests. If the number of results is larger
22639	// than maxResults, use the nextPageToken as a value for the query
22640	// parameter pageToken in the next list request. Subsequent list
22641	// requests will have their own nextPageToken to continue paging through
22642	// the results.
22643	NextPageToken string `json:"nextPageToken,omitempty"`
22644
22645	// SelfLink: [Output Only] Server-defined URL for this resource.
22646	SelfLink string `json:"selfLink,omitempty"`
22647
22648	// Warning: [Output Only] Informational warning message.
22649	Warning *MachineImageListWarning `json:"warning,omitempty"`
22650
22651	// ServerResponse contains the HTTP response code and headers from the
22652	// server.
22653	googleapi.ServerResponse `json:"-"`
22654
22655	// ForceSendFields is a list of field names (e.g. "Id") to
22656	// unconditionally include in API requests. By default, fields with
22657	// empty values are omitted from API requests. However, any non-pointer,
22658	// non-interface field appearing in ForceSendFields will be sent to the
22659	// server regardless of whether the field is empty or not. This may be
22660	// used to include empty fields in Patch requests.
22661	ForceSendFields []string `json:"-"`
22662
22663	// NullFields is a list of field names (e.g. "Id") to include in API
22664	// requests with the JSON null value. By default, fields with empty
22665	// values are omitted from API requests. However, any field with an
22666	// empty value appearing in NullFields will be sent to the server as
22667	// null. It is an error if a field in this list has a non-empty value.
22668	// This may be used to include null fields in Patch requests.
22669	NullFields []string `json:"-"`
22670}
22671
22672func (s *MachineImageList) MarshalJSON() ([]byte, error) {
22673	type NoMethod MachineImageList
22674	raw := NoMethod(*s)
22675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22676}
22677
22678// MachineImageListWarning: [Output Only] Informational warning message.
22679type MachineImageListWarning struct {
22680	// Code: [Output Only] A warning code, if applicable. For example,
22681	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22682	// the response.
22683	//
22684	// Possible values:
22685	//   "CLEANUP_FAILED"
22686	//   "DEPRECATED_RESOURCE_USED"
22687	//   "DEPRECATED_TYPE_USED"
22688	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22689	//   "EXPERIMENTAL_TYPE_USED"
22690	//   "EXTERNAL_API_WARNING"
22691	//   "FIELD_VALUE_OVERRIDEN"
22692	//   "INJECTED_KERNELS_DEPRECATED"
22693	//   "MISSING_TYPE_DEPENDENCY"
22694	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22695	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22696	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22697	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22698	//   "NEXT_HOP_NOT_RUNNING"
22699	//   "NOT_CRITICAL_ERROR"
22700	//   "NO_RESULTS_ON_PAGE"
22701	//   "PARTIAL_SUCCESS"
22702	//   "REQUIRED_TOS_AGREEMENT"
22703	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22704	//   "RESOURCE_NOT_DELETED"
22705	//   "SCHEMA_VALIDATION_IGNORED"
22706	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22707	//   "UNDECLARED_PROPERTIES"
22708	//   "UNREACHABLE"
22709	Code string `json:"code,omitempty"`
22710
22711	// Data: [Output Only] Metadata about this warning in key: value format.
22712	// For example:
22713	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22714	Data []*MachineImageListWarningData `json:"data,omitempty"`
22715
22716	// Message: [Output Only] A human-readable description of the warning
22717	// code.
22718	Message string `json:"message,omitempty"`
22719
22720	// ForceSendFields is a list of field names (e.g. "Code") to
22721	// unconditionally include in API requests. By default, fields with
22722	// empty values are omitted from API requests. However, any non-pointer,
22723	// non-interface field appearing in ForceSendFields will be sent to the
22724	// server regardless of whether the field is empty or not. This may be
22725	// used to include empty fields in Patch requests.
22726	ForceSendFields []string `json:"-"`
22727
22728	// NullFields is a list of field names (e.g. "Code") to include in API
22729	// requests with the JSON null value. By default, fields with empty
22730	// values are omitted from API requests. However, any field with an
22731	// empty value appearing in NullFields will be sent to the server as
22732	// null. It is an error if a field in this list has a non-empty value.
22733	// This may be used to include null fields in Patch requests.
22734	NullFields []string `json:"-"`
22735}
22736
22737func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) {
22738	type NoMethod MachineImageListWarning
22739	raw := NoMethod(*s)
22740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22741}
22742
22743type MachineImageListWarningData struct {
22744	// Key: [Output Only] A key that provides more detail on the warning
22745	// being returned. For example, for warnings where there are no results
22746	// in a list request for a particular zone, this key might be scope and
22747	// the key value might be the zone name. Other examples might be a key
22748	// indicating a deprecated resource and a suggested replacement, or a
22749	// warning about invalid network settings (for example, if an instance
22750	// attempts to perform IP forwarding but is not enabled for IP
22751	// forwarding).
22752	Key string `json:"key,omitempty"`
22753
22754	// Value: [Output Only] A warning data value corresponding to the key.
22755	Value string `json:"value,omitempty"`
22756
22757	// ForceSendFields is a list of field names (e.g. "Key") to
22758	// unconditionally include in API requests. By default, fields with
22759	// empty values are omitted from API requests. However, any non-pointer,
22760	// non-interface field appearing in ForceSendFields will be sent to the
22761	// server regardless of whether the field is empty or not. This may be
22762	// used to include empty fields in Patch requests.
22763	ForceSendFields []string `json:"-"`
22764
22765	// NullFields is a list of field names (e.g. "Key") to include in API
22766	// requests with the JSON null value. By default, fields with empty
22767	// values are omitted from API requests. However, any field with an
22768	// empty value appearing in NullFields will be sent to the server as
22769	// null. It is an error if a field in this list has a non-empty value.
22770	// This may be used to include null fields in Patch requests.
22771	NullFields []string `json:"-"`
22772}
22773
22774func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) {
22775	type NoMethod MachineImageListWarningData
22776	raw := NoMethod(*s)
22777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22778}
22779
22780// MachineType: Represents a Machine Type resource.
22781//
22782// You can use specific machine types for your VM instances based on
22783// performance and pricing requirements. For more information, read
22784// Machine Types. (== resource_for {$api_version}.machineTypes ==)
22785type MachineType struct {
22786	// Accelerators: [Output Only] A list of accelerator configurations
22787	// assigned to this machine type.
22788	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
22789
22790	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22791	// format.
22792	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22793
22794	// Deprecated: [Output Only] The deprecation status associated with this
22795	// machine type.
22796	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
22797
22798	// Description: [Output Only] An optional textual description of the
22799	// resource.
22800	Description string `json:"description,omitempty"`
22801
22802	// GuestCpus: [Output Only] The number of virtual CPUs that are
22803	// available to the instance.
22804	GuestCpus int64 `json:"guestCpus,omitempty"`
22805
22806	// Id: [Output Only] The unique identifier for the resource. This
22807	// identifier is defined by the server.
22808	Id uint64 `json:"id,omitempty,string"`
22809
22810	// IsSharedCpu: [Output Only] Whether this machine type has a shared
22811	// CPU. See Shared-core machine types for more information.
22812	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
22813
22814	// Kind: [Output Only] The type of the resource. Always
22815	// compute#machineType for machine types.
22816	Kind string `json:"kind,omitempty"`
22817
22818	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
22819	// allowed.
22820	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
22821
22822	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
22823	// disks size (GB) allowed.
22824	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
22825
22826	// MemoryMb: [Output Only] The amount of physical memory available to
22827	// the instance, defined in MB.
22828	MemoryMb int64 `json:"memoryMb,omitempty"`
22829
22830	// Name: [Output Only] Name of the resource.
22831	Name string `json:"name,omitempty"`
22832
22833	// SelfLink: [Output Only] Server-defined URL for the resource.
22834	SelfLink string `json:"selfLink,omitempty"`
22835
22836	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
22837	// with the resource id.
22838	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
22839
22840	// Zone: [Output Only] The name of the zone where the machine type
22841	// resides, such as us-central1-a.
22842	Zone string `json:"zone,omitempty"`
22843
22844	// ServerResponse contains the HTTP response code and headers from the
22845	// server.
22846	googleapi.ServerResponse `json:"-"`
22847
22848	// ForceSendFields is a list of field names (e.g. "Accelerators") to
22849	// unconditionally include in API requests. By default, fields with
22850	// empty values are omitted from API requests. However, any non-pointer,
22851	// non-interface field appearing in ForceSendFields will be sent to the
22852	// server regardless of whether the field is empty or not. This may be
22853	// used to include empty fields in Patch requests.
22854	ForceSendFields []string `json:"-"`
22855
22856	// NullFields is a list of field names (e.g. "Accelerators") to include
22857	// in API requests with the JSON null value. By default, fields with
22858	// empty values are omitted from API requests. However, any field with
22859	// an empty value appearing in NullFields will be sent to the server as
22860	// null. It is an error if a field in this list has a non-empty value.
22861	// This may be used to include null fields in Patch requests.
22862	NullFields []string `json:"-"`
22863}
22864
22865func (s *MachineType) MarshalJSON() ([]byte, error) {
22866	type NoMethod MachineType
22867	raw := NoMethod(*s)
22868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22869}
22870
22871type MachineTypeAccelerators struct {
22872	// GuestAcceleratorCount: Number of accelerator cards exposed to the
22873	// guest.
22874	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
22875
22876	// GuestAcceleratorType: The accelerator type resource name, not a full
22877	// URL, e.g. 'nvidia-tesla-k80'.
22878	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
22879
22880	// ForceSendFields is a list of field names (e.g.
22881	// "GuestAcceleratorCount") to unconditionally include in API requests.
22882	// By default, fields with empty values are omitted from API requests.
22883	// However, any non-pointer, non-interface field appearing in
22884	// ForceSendFields will be sent to the server regardless of whether the
22885	// field is empty or not. This may be used to include empty fields in
22886	// Patch requests.
22887	ForceSendFields []string `json:"-"`
22888
22889	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
22890	// include in API requests with the JSON null value. By default, fields
22891	// with empty values are omitted from API requests. However, any field
22892	// with an empty value appearing in NullFields will be sent to the
22893	// server as null. It is an error if a field in this list has a
22894	// non-empty value. This may be used to include null fields in Patch
22895	// requests.
22896	NullFields []string `json:"-"`
22897}
22898
22899func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
22900	type NoMethod MachineTypeAccelerators
22901	raw := NoMethod(*s)
22902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22903}
22904
22905type MachineTypeAggregatedList struct {
22906	// Id: [Output Only] Unique identifier for the resource; defined by the
22907	// server.
22908	Id string `json:"id,omitempty"`
22909
22910	// Items: A list of MachineTypesScopedList resources.
22911	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
22912
22913	// Kind: [Output Only] Type of resource. Always
22914	// compute#machineTypeAggregatedList for aggregated lists of machine
22915	// types.
22916	Kind string `json:"kind,omitempty"`
22917
22918	// NextPageToken: [Output Only] This token allows you to get the next
22919	// page of results for list requests. If the number of results is larger
22920	// than maxResults, use the nextPageToken as a value for the query
22921	// parameter pageToken in the next list request. Subsequent list
22922	// requests will have their own nextPageToken to continue paging through
22923	// the results.
22924	NextPageToken string `json:"nextPageToken,omitempty"`
22925
22926	// SelfLink: [Output Only] Server-defined URL for this resource.
22927	SelfLink string `json:"selfLink,omitempty"`
22928
22929	// Unreachables: [Output Only] Unreachable resources.
22930	Unreachables []string `json:"unreachables,omitempty"`
22931
22932	// Warning: [Output Only] Informational warning message.
22933	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
22934
22935	// ServerResponse contains the HTTP response code and headers from the
22936	// server.
22937	googleapi.ServerResponse `json:"-"`
22938
22939	// ForceSendFields is a list of field names (e.g. "Id") to
22940	// unconditionally include in API requests. By default, fields with
22941	// empty values are omitted from API requests. However, any non-pointer,
22942	// non-interface field appearing in ForceSendFields will be sent to the
22943	// server regardless of whether the field is empty or not. This may be
22944	// used to include empty fields in Patch requests.
22945	ForceSendFields []string `json:"-"`
22946
22947	// NullFields is a list of field names (e.g. "Id") to include in API
22948	// requests with the JSON null value. By default, fields with empty
22949	// values are omitted from API requests. However, any field with an
22950	// empty value appearing in NullFields will be sent to the server as
22951	// null. It is an error if a field in this list has a non-empty value.
22952	// This may be used to include null fields in Patch requests.
22953	NullFields []string `json:"-"`
22954}
22955
22956func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
22957	type NoMethod MachineTypeAggregatedList
22958	raw := NoMethod(*s)
22959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22960}
22961
22962// MachineTypeAggregatedListWarning: [Output Only] Informational warning
22963// message.
22964type MachineTypeAggregatedListWarning struct {
22965	// Code: [Output Only] A warning code, if applicable. For example,
22966	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22967	// the response.
22968	//
22969	// Possible values:
22970	//   "CLEANUP_FAILED"
22971	//   "DEPRECATED_RESOURCE_USED"
22972	//   "DEPRECATED_TYPE_USED"
22973	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22974	//   "EXPERIMENTAL_TYPE_USED"
22975	//   "EXTERNAL_API_WARNING"
22976	//   "FIELD_VALUE_OVERRIDEN"
22977	//   "INJECTED_KERNELS_DEPRECATED"
22978	//   "MISSING_TYPE_DEPENDENCY"
22979	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22980	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22981	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22982	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22983	//   "NEXT_HOP_NOT_RUNNING"
22984	//   "NOT_CRITICAL_ERROR"
22985	//   "NO_RESULTS_ON_PAGE"
22986	//   "PARTIAL_SUCCESS"
22987	//   "REQUIRED_TOS_AGREEMENT"
22988	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22989	//   "RESOURCE_NOT_DELETED"
22990	//   "SCHEMA_VALIDATION_IGNORED"
22991	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22992	//   "UNDECLARED_PROPERTIES"
22993	//   "UNREACHABLE"
22994	Code string `json:"code,omitempty"`
22995
22996	// Data: [Output Only] Metadata about this warning in key: value format.
22997	// For example:
22998	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22999	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
23000
23001	// Message: [Output Only] A human-readable description of the warning
23002	// code.
23003	Message string `json:"message,omitempty"`
23004
23005	// ForceSendFields is a list of field names (e.g. "Code") to
23006	// unconditionally include in API requests. By default, fields with
23007	// empty values are omitted from API requests. However, any non-pointer,
23008	// non-interface field appearing in ForceSendFields will be sent to the
23009	// server regardless of whether the field is empty or not. This may be
23010	// used to include empty fields in Patch requests.
23011	ForceSendFields []string `json:"-"`
23012
23013	// NullFields is a list of field names (e.g. "Code") to include in API
23014	// requests with the JSON null value. By default, fields with empty
23015	// values are omitted from API requests. However, any field with an
23016	// empty value appearing in NullFields will be sent to the server as
23017	// null. It is an error if a field in this list has a non-empty value.
23018	// This may be used to include null fields in Patch requests.
23019	NullFields []string `json:"-"`
23020}
23021
23022func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
23023	type NoMethod MachineTypeAggregatedListWarning
23024	raw := NoMethod(*s)
23025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23026}
23027
23028type MachineTypeAggregatedListWarningData struct {
23029	// Key: [Output Only] A key that provides more detail on the warning
23030	// being returned. For example, for warnings where there are no results
23031	// in a list request for a particular zone, this key might be scope and
23032	// the key value might be the zone name. Other examples might be a key
23033	// indicating a deprecated resource and a suggested replacement, or a
23034	// warning about invalid network settings (for example, if an instance
23035	// attempts to perform IP forwarding but is not enabled for IP
23036	// forwarding).
23037	Key string `json:"key,omitempty"`
23038
23039	// Value: [Output Only] A warning data value corresponding to the key.
23040	Value string `json:"value,omitempty"`
23041
23042	// ForceSendFields is a list of field names (e.g. "Key") to
23043	// unconditionally include in API requests. By default, fields with
23044	// empty values are omitted from API requests. However, any non-pointer,
23045	// non-interface field appearing in ForceSendFields will be sent to the
23046	// server regardless of whether the field is empty or not. This may be
23047	// used to include empty fields in Patch requests.
23048	ForceSendFields []string `json:"-"`
23049
23050	// NullFields is a list of field names (e.g. "Key") to include in API
23051	// requests with the JSON null value. By default, fields with empty
23052	// values are omitted from API requests. However, any field with an
23053	// empty value appearing in NullFields will be sent to the server as
23054	// null. It is an error if a field in this list has a non-empty value.
23055	// This may be used to include null fields in Patch requests.
23056	NullFields []string `json:"-"`
23057}
23058
23059func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23060	type NoMethod MachineTypeAggregatedListWarningData
23061	raw := NoMethod(*s)
23062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23063}
23064
23065// MachineTypeList: Contains a list of machine types.
23066type MachineTypeList struct {
23067	// Id: [Output Only] Unique identifier for the resource; defined by the
23068	// server.
23069	Id string `json:"id,omitempty"`
23070
23071	// Items: A list of MachineType resources.
23072	Items []*MachineType `json:"items,omitempty"`
23073
23074	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
23075	// for lists of machine types.
23076	Kind string `json:"kind,omitempty"`
23077
23078	// NextPageToken: [Output Only] This token allows you to get the next
23079	// page of results for list requests. If the number of results is larger
23080	// than maxResults, use the nextPageToken as a value for the query
23081	// parameter pageToken in the next list request. Subsequent list
23082	// requests will have their own nextPageToken to continue paging through
23083	// the results.
23084	NextPageToken string `json:"nextPageToken,omitempty"`
23085
23086	// SelfLink: [Output Only] Server-defined URL for this resource.
23087	SelfLink string `json:"selfLink,omitempty"`
23088
23089	// Warning: [Output Only] Informational warning message.
23090	Warning *MachineTypeListWarning `json:"warning,omitempty"`
23091
23092	// ServerResponse contains the HTTP response code and headers from the
23093	// server.
23094	googleapi.ServerResponse `json:"-"`
23095
23096	// ForceSendFields is a list of field names (e.g. "Id") to
23097	// unconditionally include in API requests. By default, fields with
23098	// empty values are omitted from API requests. However, any non-pointer,
23099	// non-interface field appearing in ForceSendFields will be sent to the
23100	// server regardless of whether the field is empty or not. This may be
23101	// used to include empty fields in Patch requests.
23102	ForceSendFields []string `json:"-"`
23103
23104	// NullFields is a list of field names (e.g. "Id") to include in API
23105	// requests with the JSON null value. By default, fields with empty
23106	// values are omitted from API requests. However, any field with an
23107	// empty value appearing in NullFields will be sent to the server as
23108	// null. It is an error if a field in this list has a non-empty value.
23109	// This may be used to include null fields in Patch requests.
23110	NullFields []string `json:"-"`
23111}
23112
23113func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
23114	type NoMethod MachineTypeList
23115	raw := NoMethod(*s)
23116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23117}
23118
23119// MachineTypeListWarning: [Output Only] Informational warning message.
23120type MachineTypeListWarning struct {
23121	// Code: [Output Only] A warning code, if applicable. For example,
23122	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23123	// the response.
23124	//
23125	// Possible values:
23126	//   "CLEANUP_FAILED"
23127	//   "DEPRECATED_RESOURCE_USED"
23128	//   "DEPRECATED_TYPE_USED"
23129	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23130	//   "EXPERIMENTAL_TYPE_USED"
23131	//   "EXTERNAL_API_WARNING"
23132	//   "FIELD_VALUE_OVERRIDEN"
23133	//   "INJECTED_KERNELS_DEPRECATED"
23134	//   "MISSING_TYPE_DEPENDENCY"
23135	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23136	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23137	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23138	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23139	//   "NEXT_HOP_NOT_RUNNING"
23140	//   "NOT_CRITICAL_ERROR"
23141	//   "NO_RESULTS_ON_PAGE"
23142	//   "PARTIAL_SUCCESS"
23143	//   "REQUIRED_TOS_AGREEMENT"
23144	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23145	//   "RESOURCE_NOT_DELETED"
23146	//   "SCHEMA_VALIDATION_IGNORED"
23147	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23148	//   "UNDECLARED_PROPERTIES"
23149	//   "UNREACHABLE"
23150	Code string `json:"code,omitempty"`
23151
23152	// Data: [Output Only] Metadata about this warning in key: value format.
23153	// For example:
23154	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23155	Data []*MachineTypeListWarningData `json:"data,omitempty"`
23156
23157	// Message: [Output Only] A human-readable description of the warning
23158	// code.
23159	Message string `json:"message,omitempty"`
23160
23161	// ForceSendFields is a list of field names (e.g. "Code") to
23162	// unconditionally include in API requests. By default, fields with
23163	// empty values are omitted from API requests. However, any non-pointer,
23164	// non-interface field appearing in ForceSendFields will be sent to the
23165	// server regardless of whether the field is empty or not. This may be
23166	// used to include empty fields in Patch requests.
23167	ForceSendFields []string `json:"-"`
23168
23169	// NullFields is a list of field names (e.g. "Code") to include in API
23170	// requests with the JSON null value. By default, fields with empty
23171	// values are omitted from API requests. However, any field with an
23172	// empty value appearing in NullFields will be sent to the server as
23173	// null. It is an error if a field in this list has a non-empty value.
23174	// This may be used to include null fields in Patch requests.
23175	NullFields []string `json:"-"`
23176}
23177
23178func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
23179	type NoMethod MachineTypeListWarning
23180	raw := NoMethod(*s)
23181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23182}
23183
23184type MachineTypeListWarningData struct {
23185	// Key: [Output Only] A key that provides more detail on the warning
23186	// being returned. For example, for warnings where there are no results
23187	// in a list request for a particular zone, this key might be scope and
23188	// the key value might be the zone name. Other examples might be a key
23189	// indicating a deprecated resource and a suggested replacement, or a
23190	// warning about invalid network settings (for example, if an instance
23191	// attempts to perform IP forwarding but is not enabled for IP
23192	// forwarding).
23193	Key string `json:"key,omitempty"`
23194
23195	// Value: [Output Only] A warning data value corresponding to the key.
23196	Value string `json:"value,omitempty"`
23197
23198	// ForceSendFields is a list of field names (e.g. "Key") to
23199	// unconditionally include in API requests. By default, fields with
23200	// empty values are omitted from API requests. However, any non-pointer,
23201	// non-interface field appearing in ForceSendFields will be sent to the
23202	// server regardless of whether the field is empty or not. This may be
23203	// used to include empty fields in Patch requests.
23204	ForceSendFields []string `json:"-"`
23205
23206	// NullFields is a list of field names (e.g. "Key") to include in API
23207	// requests with the JSON null value. By default, fields with empty
23208	// values are omitted from API requests. However, any field with an
23209	// empty value appearing in NullFields will be sent to the server as
23210	// null. It is an error if a field in this list has a non-empty value.
23211	// This may be used to include null fields in Patch requests.
23212	NullFields []string `json:"-"`
23213}
23214
23215func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
23216	type NoMethod MachineTypeListWarningData
23217	raw := NoMethod(*s)
23218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23219}
23220
23221type MachineTypesScopedList struct {
23222	// MachineTypes: [Output Only] A list of machine types contained in this
23223	// scope.
23224	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
23225
23226	// Warning: [Output Only] An informational warning that appears when the
23227	// machine types list is empty.
23228	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
23229
23230	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
23231	// unconditionally include in API requests. By default, fields with
23232	// empty values are omitted from API requests. However, any non-pointer,
23233	// non-interface field appearing in ForceSendFields will be sent to the
23234	// server regardless of whether the field is empty or not. This may be
23235	// used to include empty fields in Patch requests.
23236	ForceSendFields []string `json:"-"`
23237
23238	// NullFields is a list of field names (e.g. "MachineTypes") to include
23239	// in API requests with the JSON null value. By default, fields with
23240	// empty values are omitted from API requests. However, any field with
23241	// an empty value appearing in NullFields will be sent to the server as
23242	// null. It is an error if a field in this list has a non-empty value.
23243	// This may be used to include null fields in Patch requests.
23244	NullFields []string `json:"-"`
23245}
23246
23247func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
23248	type NoMethod MachineTypesScopedList
23249	raw := NoMethod(*s)
23250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23251}
23252
23253// MachineTypesScopedListWarning: [Output Only] An informational warning
23254// that appears when the machine types list is empty.
23255type MachineTypesScopedListWarning struct {
23256	// Code: [Output Only] A warning code, if applicable. For example,
23257	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23258	// the response.
23259	//
23260	// Possible values:
23261	//   "CLEANUP_FAILED"
23262	//   "DEPRECATED_RESOURCE_USED"
23263	//   "DEPRECATED_TYPE_USED"
23264	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23265	//   "EXPERIMENTAL_TYPE_USED"
23266	//   "EXTERNAL_API_WARNING"
23267	//   "FIELD_VALUE_OVERRIDEN"
23268	//   "INJECTED_KERNELS_DEPRECATED"
23269	//   "MISSING_TYPE_DEPENDENCY"
23270	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23271	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23272	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23273	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23274	//   "NEXT_HOP_NOT_RUNNING"
23275	//   "NOT_CRITICAL_ERROR"
23276	//   "NO_RESULTS_ON_PAGE"
23277	//   "PARTIAL_SUCCESS"
23278	//   "REQUIRED_TOS_AGREEMENT"
23279	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23280	//   "RESOURCE_NOT_DELETED"
23281	//   "SCHEMA_VALIDATION_IGNORED"
23282	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23283	//   "UNDECLARED_PROPERTIES"
23284	//   "UNREACHABLE"
23285	Code string `json:"code,omitempty"`
23286
23287	// Data: [Output Only] Metadata about this warning in key: value format.
23288	// For example:
23289	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23290	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
23291
23292	// Message: [Output Only] A human-readable description of the warning
23293	// code.
23294	Message string `json:"message,omitempty"`
23295
23296	// ForceSendFields is a list of field names (e.g. "Code") to
23297	// unconditionally include in API requests. By default, fields with
23298	// empty values are omitted from API requests. However, any non-pointer,
23299	// non-interface field appearing in ForceSendFields will be sent to the
23300	// server regardless of whether the field is empty or not. This may be
23301	// used to include empty fields in Patch requests.
23302	ForceSendFields []string `json:"-"`
23303
23304	// NullFields is a list of field names (e.g. "Code") to include in API
23305	// requests with the JSON null value. By default, fields with empty
23306	// values are omitted from API requests. However, any field with an
23307	// empty value appearing in NullFields will be sent to the server as
23308	// null. It is an error if a field in this list has a non-empty value.
23309	// This may be used to include null fields in Patch requests.
23310	NullFields []string `json:"-"`
23311}
23312
23313func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
23314	type NoMethod MachineTypesScopedListWarning
23315	raw := NoMethod(*s)
23316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23317}
23318
23319type MachineTypesScopedListWarningData struct {
23320	// Key: [Output Only] A key that provides more detail on the warning
23321	// being returned. For example, for warnings where there are no results
23322	// in a list request for a particular zone, this key might be scope and
23323	// the key value might be the zone name. Other examples might be a key
23324	// indicating a deprecated resource and a suggested replacement, or a
23325	// warning about invalid network settings (for example, if an instance
23326	// attempts to perform IP forwarding but is not enabled for IP
23327	// forwarding).
23328	Key string `json:"key,omitempty"`
23329
23330	// Value: [Output Only] A warning data value corresponding to the key.
23331	Value string `json:"value,omitempty"`
23332
23333	// ForceSendFields is a list of field names (e.g. "Key") to
23334	// unconditionally include in API requests. By default, fields with
23335	// empty values are omitted from API requests. However, any non-pointer,
23336	// non-interface field appearing in ForceSendFields will be sent to the
23337	// server regardless of whether the field is empty or not. This may be
23338	// used to include empty fields in Patch requests.
23339	ForceSendFields []string `json:"-"`
23340
23341	// NullFields is a list of field names (e.g. "Key") to include in API
23342	// requests with the JSON null value. By default, fields with empty
23343	// values are omitted from API requests. However, any field with an
23344	// empty value appearing in NullFields will be sent to the server as
23345	// null. It is an error if a field in this list has a non-empty value.
23346	// This may be used to include null fields in Patch requests.
23347	NullFields []string `json:"-"`
23348}
23349
23350func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
23351	type NoMethod MachineTypesScopedListWarningData
23352	raw := NoMethod(*s)
23353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23354}
23355
23356// ManagedInstance: A Managed Instance resource.
23357type ManagedInstance struct {
23358	// CurrentAction: [Output Only] The current action that the managed
23359	// instance group has scheduled for the instance. Possible values:
23360	// - NONE The instance is running, and the managed instance group does
23361	// not have any scheduled actions for this instance.
23362	// - CREATING The managed instance group is creating this instance. If
23363	// the group fails to create this instance, it will try again until it
23364	// is successful.
23365	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
23366	// to create this instance only once. If the group fails to create this
23367	// instance, it does not try again and the group's targetSize value is
23368	// decreased instead.
23369	// - RECREATING The managed instance group is recreating this instance.
23370	//
23371	// - DELETING The managed instance group is permanently deleting this
23372	// instance.
23373	// - ABANDONING The managed instance group is abandoning this instance.
23374	// The instance will be removed from the instance group and from any
23375	// target pools that are associated with this group.
23376	// - RESTARTING The managed instance group is restarting the instance.
23377	//
23378	// - REFRESHING The managed instance group is applying configuration
23379	// changes to the instance without stopping it. For example, the group
23380	// can update the target pool list for an instance without stopping that
23381	// instance.
23382	// - VERIFYING The managed instance group has created the instance and
23383	// it is in the process of being verified.
23384	//
23385	// Possible values:
23386	//   "ABANDONING"
23387	//   "CREATING"
23388	//   "CREATING_WITHOUT_RETRIES"
23389	//   "DELETING"
23390	//   "NONE"
23391	//   "RECREATING"
23392	//   "REFRESHING"
23393	//   "RESTARTING"
23394	//   "VERIFYING"
23395	CurrentAction string `json:"currentAction,omitempty"`
23396
23397	// Id: [Output only] The unique identifier for this resource. This field
23398	// is empty when instance does not exist.
23399	Id uint64 `json:"id,omitempty,string"`
23400
23401	// Instance: [Output Only] The URL of the instance. The URL can exist
23402	// even if the instance has not yet been created.
23403	Instance string `json:"instance,omitempty"`
23404
23405	// InstanceHealth: [Output Only] Health state of the instance per
23406	// health-check.
23407	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
23408
23409	// InstanceStatus: [Output Only] The status of the instance. This field
23410	// is empty when the instance does not exist.
23411	//
23412	// Possible values:
23413	//   "DEPROVISIONING"
23414	//   "PROVISIONING"
23415	//   "REPAIRING"
23416	//   "RUNNING"
23417	//   "STAGING"
23418	//   "STOPPED"
23419	//   "STOPPING"
23420	//   "SUSPENDED"
23421	//   "SUSPENDING"
23422	//   "TERMINATED"
23423	InstanceStatus string `json:"instanceStatus,omitempty"`
23424
23425	// InstanceTemplate: [Output Only] The intended template of the
23426	// instance. This field is empty when current_action is one of {
23427	// DELETING, ABANDONING }.
23428	InstanceTemplate string `json:"instanceTemplate,omitempty"`
23429
23430	// LastAttempt: [Output Only] Information about the last attempt to
23431	// create or delete the instance.
23432	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
23433
23434	// PreservedStateFromConfig: [Output Only] Preserved state applied from
23435	// per-instance config for this instance.
23436	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
23437
23438	// PreservedStateFromPolicy: [Output Only] Preserved state generated
23439	// based on stateful policy for this instance.
23440	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
23441
23442	// Tag: [Output Only] Tag describing the version.
23443	Tag string `json:"tag,omitempty"`
23444
23445	// Version: [Output Only] Intended version of this instance.
23446	Version *ManagedInstanceVersion `json:"version,omitempty"`
23447
23448	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
23449	// unconditionally include in API requests. By default, fields with
23450	// empty values are omitted from API requests. However, any non-pointer,
23451	// non-interface field appearing in ForceSendFields will be sent to the
23452	// server regardless of whether the field is empty or not. This may be
23453	// used to include empty fields in Patch requests.
23454	ForceSendFields []string `json:"-"`
23455
23456	// NullFields is a list of field names (e.g. "CurrentAction") to include
23457	// in API requests with the JSON null value. By default, fields with
23458	// empty values are omitted from API requests. However, any field with
23459	// an empty value appearing in NullFields will be sent to the server as
23460	// null. It is an error if a field in this list has a non-empty value.
23461	// This may be used to include null fields in Patch requests.
23462	NullFields []string `json:"-"`
23463}
23464
23465func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
23466	type NoMethod ManagedInstance
23467	raw := NoMethod(*s)
23468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23469}
23470
23471type ManagedInstanceInstanceHealth struct {
23472	// DetailedHealthState: [Output Only] The current detailed instance
23473	// health state.
23474	//
23475	// Possible values:
23476	//   "DRAINING"
23477	//   "HEALTHY"
23478	//   "TIMEOUT"
23479	//   "UNHEALTHY"
23480	//   "UNKNOWN"
23481	DetailedHealthState string `json:"detailedHealthState,omitempty"`
23482
23483	// HealthCheck: [Output Only] The URL for the health check that verifies
23484	// whether the instance is healthy.
23485	HealthCheck string `json:"healthCheck,omitempty"`
23486
23487	// HealthState: [Output Only] The current instance health state. This
23488	// field will not get promoted to beta/GA and might be removed from
23489	// alpha APIs after 01/12/2019. Please use detailed_health_state field
23490	// instead.
23491	//
23492	// Possible values:
23493	//   "HEALTHY"
23494	//   "UNHEALTHY"
23495	HealthState string `json:"healthState,omitempty"`
23496
23497	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
23498	// to unconditionally include in API requests. By default, fields with
23499	// empty values are omitted from API requests. However, any non-pointer,
23500	// non-interface field appearing in ForceSendFields will be sent to the
23501	// server regardless of whether the field is empty or not. This may be
23502	// used to include empty fields in Patch requests.
23503	ForceSendFields []string `json:"-"`
23504
23505	// NullFields is a list of field names (e.g. "DetailedHealthState") to
23506	// include in API requests with the JSON null value. By default, fields
23507	// with empty values are omitted from API requests. However, any field
23508	// with an empty value appearing in NullFields will be sent to the
23509	// server as null. It is an error if a field in this list has a
23510	// non-empty value. This may be used to include null fields in Patch
23511	// requests.
23512	NullFields []string `json:"-"`
23513}
23514
23515func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
23516	type NoMethod ManagedInstanceInstanceHealth
23517	raw := NoMethod(*s)
23518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23519}
23520
23521type ManagedInstanceLastAttempt struct {
23522	// Errors: [Output Only] Encountered errors during the last attempt to
23523	// create or delete the instance.
23524	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
23525
23526	// ForceSendFields is a list of field names (e.g. "Errors") to
23527	// unconditionally include in API requests. By default, fields with
23528	// empty values are omitted from API requests. However, any non-pointer,
23529	// non-interface field appearing in ForceSendFields will be sent to the
23530	// server regardless of whether the field is empty or not. This may be
23531	// used to include empty fields in Patch requests.
23532	ForceSendFields []string `json:"-"`
23533
23534	// NullFields is a list of field names (e.g. "Errors") to include in API
23535	// requests with the JSON null value. By default, fields with empty
23536	// values are omitted from API requests. However, any field with an
23537	// empty value appearing in NullFields will be sent to the server as
23538	// null. It is an error if a field in this list has a non-empty value.
23539	// This may be used to include null fields in Patch requests.
23540	NullFields []string `json:"-"`
23541}
23542
23543func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
23544	type NoMethod ManagedInstanceLastAttempt
23545	raw := NoMethod(*s)
23546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23547}
23548
23549// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
23550// during the last attempt to create or delete the instance.
23551type ManagedInstanceLastAttemptErrors struct {
23552	// Errors: [Output Only] The array of errors encountered while
23553	// processing this operation.
23554	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
23555
23556	// ForceSendFields is a list of field names (e.g. "Errors") to
23557	// unconditionally include in API requests. By default, fields with
23558	// empty values are omitted from API requests. However, any non-pointer,
23559	// non-interface field appearing in ForceSendFields will be sent to the
23560	// server regardless of whether the field is empty or not. This may be
23561	// used to include empty fields in Patch requests.
23562	ForceSendFields []string `json:"-"`
23563
23564	// NullFields is a list of field names (e.g. "Errors") to include in API
23565	// requests with the JSON null value. By default, fields with empty
23566	// values are omitted from API requests. However, any field with an
23567	// empty value appearing in NullFields will be sent to the server as
23568	// null. It is an error if a field in this list has a non-empty value.
23569	// This may be used to include null fields in Patch requests.
23570	NullFields []string `json:"-"`
23571}
23572
23573func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
23574	type NoMethod ManagedInstanceLastAttemptErrors
23575	raw := NoMethod(*s)
23576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23577}
23578
23579type ManagedInstanceLastAttemptErrorsErrors struct {
23580	// Code: [Output Only] The error type identifier for this error.
23581	Code string `json:"code,omitempty"`
23582
23583	// Location: [Output Only] Indicates the field in the request that
23584	// caused the error. This property is optional.
23585	Location string `json:"location,omitempty"`
23586
23587	// Message: [Output Only] An optional, human-readable error message.
23588	Message string `json:"message,omitempty"`
23589
23590	// ForceSendFields is a list of field names (e.g. "Code") to
23591	// unconditionally include in API requests. By default, fields with
23592	// empty values are omitted from API requests. However, any non-pointer,
23593	// non-interface field appearing in ForceSendFields will be sent to the
23594	// server regardless of whether the field is empty or not. This may be
23595	// used to include empty fields in Patch requests.
23596	ForceSendFields []string `json:"-"`
23597
23598	// NullFields is a list of field names (e.g. "Code") to include in API
23599	// requests with the JSON null value. By default, fields with empty
23600	// values are omitted from API requests. However, any field with an
23601	// empty value appearing in NullFields will be sent to the server as
23602	// null. It is an error if a field in this list has a non-empty value.
23603	// This may be used to include null fields in Patch requests.
23604	NullFields []string `json:"-"`
23605}
23606
23607func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
23608	type NoMethod ManagedInstanceLastAttemptErrorsErrors
23609	raw := NoMethod(*s)
23610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23611}
23612
23613type ManagedInstanceVersion struct {
23614	// InstanceTemplate: [Output Only] The intended template of the
23615	// instance. This field is empty when current_action is one of {
23616	// DELETING, ABANDONING }.
23617	InstanceTemplate string `json:"instanceTemplate,omitempty"`
23618
23619	// Name: [Output Only] Name of the version.
23620	Name string `json:"name,omitempty"`
23621
23622	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
23623	// unconditionally include in API requests. By default, fields with
23624	// empty values are omitted from API requests. However, any non-pointer,
23625	// non-interface field appearing in ForceSendFields will be sent to the
23626	// server regardless of whether the field is empty or not. This may be
23627	// used to include empty fields in Patch requests.
23628	ForceSendFields []string `json:"-"`
23629
23630	// NullFields is a list of field names (e.g. "InstanceTemplate") to
23631	// include in API requests with the JSON null value. By default, fields
23632	// with empty values are omitted from API requests. However, any field
23633	// with an empty value appearing in NullFields will be sent to the
23634	// server as null. It is an error if a field in this list has a
23635	// non-empty value. This may be used to include null fields in Patch
23636	// requests.
23637	NullFields []string `json:"-"`
23638}
23639
23640func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
23641	type NoMethod ManagedInstanceVersion
23642	raw := NoMethod(*s)
23643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23644}
23645
23646// Metadata: A metadata key/value entry.
23647type Metadata struct {
23648	// Fingerprint: Specifies a fingerprint for this request, which is
23649	// essentially a hash of the metadata's contents and used for optimistic
23650	// locking. The fingerprint is initially generated by Compute Engine and
23651	// changes after every request to modify or update metadata. You must
23652	// always provide an up-to-date fingerprint hash in order to update or
23653	// change metadata, otherwise the request will fail with error 412
23654	// conditionNotMet.
23655	//
23656	// To see the latest fingerprint, make a get() request to retrieve the
23657	// resource.
23658	Fingerprint string `json:"fingerprint,omitempty"`
23659
23660	// Items: Array of key/value pairs. The total size of all keys and
23661	// values must be less than 512 KB.
23662	Items []*MetadataItems `json:"items,omitempty"`
23663
23664	// Kind: [Output Only] Type of the resource. Always compute#metadata for
23665	// metadata.
23666	Kind string `json:"kind,omitempty"`
23667
23668	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
23669	// unconditionally include in API requests. By default, fields with
23670	// empty values are omitted from API requests. However, any non-pointer,
23671	// non-interface field appearing in ForceSendFields will be sent to the
23672	// server regardless of whether the field is empty or not. This may be
23673	// used to include empty fields in Patch requests.
23674	ForceSendFields []string `json:"-"`
23675
23676	// NullFields is a list of field names (e.g. "Fingerprint") to include
23677	// in API requests with the JSON null value. By default, fields with
23678	// empty values are omitted from API requests. However, any field with
23679	// an empty value appearing in NullFields will be sent to the server as
23680	// null. It is an error if a field in this list has a non-empty value.
23681	// This may be used to include null fields in Patch requests.
23682	NullFields []string `json:"-"`
23683}
23684
23685func (s *Metadata) MarshalJSON() ([]byte, error) {
23686	type NoMethod Metadata
23687	raw := NoMethod(*s)
23688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23689}
23690
23691type MetadataItems struct {
23692	// Key: Key for the metadata entry. Keys must conform to the following
23693	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
23694	// reflected as part of a URL in the metadata server. Additionally, to
23695	// avoid ambiguity, keys must not conflict with any other metadata keys
23696	// for the project.
23697	Key string `json:"key,omitempty"`
23698
23699	// Value: Value for the metadata entry. These are free-form strings, and
23700	// only have meaning as interpreted by the image running in the
23701	// instance. The only restriction placed on values is that their size
23702	// must be less than or equal to 262144 bytes (256 KiB).
23703	Value string `json:"value,omitempty"`
23704
23705	// ForceSendFields is a list of field names (e.g. "Key") to
23706	// unconditionally include in API requests. By default, fields with
23707	// empty values are omitted from API requests. However, any non-pointer,
23708	// non-interface field appearing in ForceSendFields will be sent to the
23709	// server regardless of whether the field is empty or not. This may be
23710	// used to include empty fields in Patch requests.
23711	ForceSendFields []string `json:"-"`
23712
23713	// NullFields is a list of field names (e.g. "Key") to include in API
23714	// requests with the JSON null value. By default, fields with empty
23715	// values are omitted from API requests. However, any field with an
23716	// empty value appearing in NullFields will be sent to the server as
23717	// null. It is an error if a field in this list has a non-empty value.
23718	// This may be used to include null fields in Patch requests.
23719	NullFields []string `json:"-"`
23720}
23721
23722func (s *MetadataItems) MarshalJSON() ([]byte, error) {
23723	type NoMethod MetadataItems
23724	raw := NoMethod(*s)
23725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23726}
23727
23728// MetadataCredentialsFromPlugin: [Deprecated] Custom authenticator
23729// credentials. Custom authenticator credentials.
23730type MetadataCredentialsFromPlugin struct {
23731	// Name: Plugin name.
23732	Name string `json:"name,omitempty"`
23733
23734	// StructConfig: A text proto that conforms to a Struct type definition
23735	// interpreted by the plugin.
23736	StructConfig string `json:"structConfig,omitempty"`
23737
23738	// ForceSendFields is a list of field names (e.g. "Name") to
23739	// unconditionally include in API requests. By default, fields with
23740	// empty values are omitted from API requests. However, any non-pointer,
23741	// non-interface field appearing in ForceSendFields will be sent to the
23742	// server regardless of whether the field is empty or not. This may be
23743	// used to include empty fields in Patch requests.
23744	ForceSendFields []string `json:"-"`
23745
23746	// NullFields is a list of field names (e.g. "Name") to include in API
23747	// requests with the JSON null value. By default, fields with empty
23748	// values are omitted from API requests. However, any field with an
23749	// empty value appearing in NullFields will be sent to the server as
23750	// null. It is an error if a field in this list has a non-empty value.
23751	// This may be used to include null fields in Patch requests.
23752	NullFields []string `json:"-"`
23753}
23754
23755func (s *MetadataCredentialsFromPlugin) MarshalJSON() ([]byte, error) {
23756	type NoMethod MetadataCredentialsFromPlugin
23757	raw := NoMethod(*s)
23758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23759}
23760
23761// MetadataFilter: Opaque filter criteria used by loadbalancers to
23762// restrict routing configuration to a limited set of loadbalancing
23763// proxies. Proxies and sidecars involved in loadbalancing would
23764// typically present metadata to the loadbalancers which need to match
23765// criteria specified here. If a match takes place, the relevant
23766// configuration is made available to those proxies.
23767// For each metadataFilter in this list, if its filterMatchCriteria is
23768// set to MATCH_ANY, at least one of the filterLabels must match the
23769// corresponding label provided in the metadata. If its
23770// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
23771// must match with corresponding labels provided in the metadata.
23772// An example for using metadataFilters would be: if loadbalancing
23773// involves  Envoys, they will only receive routing configuration when
23774// values in metadataFilters match values supplied in <a
23775// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
23776// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
23777// requests to loadbalancers.
23778type MetadataFilter struct {
23779	// FilterLabels: The list of label value pairs that must match labels in
23780	// the provided metadata based on filterMatchCriteria
23781	// This list must not be empty and can have at the most 64 entries.
23782	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
23783
23784	// FilterMatchCriteria: Specifies how individual filterLabel matches
23785	// within the list of filterLabels contribute towards the overall
23786	// metadataFilter match.
23787	// Supported values are:
23788	// - MATCH_ANY: At least one of the filterLabels must have a matching
23789	// label in the provided metadata.
23790	// - MATCH_ALL: All filterLabels must have matching labels in the
23791	// provided metadata.
23792	//
23793	// Possible values:
23794	//   "MATCH_ALL"
23795	//   "MATCH_ANY"
23796	//   "NOT_SET"
23797	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
23798
23799	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
23800	// unconditionally include in API requests. By default, fields with
23801	// empty values are omitted from API requests. However, any non-pointer,
23802	// non-interface field appearing in ForceSendFields will be sent to the
23803	// server regardless of whether the field is empty or not. This may be
23804	// used to include empty fields in Patch requests.
23805	ForceSendFields []string `json:"-"`
23806
23807	// NullFields is a list of field names (e.g. "FilterLabels") to include
23808	// in API requests with the JSON null value. By default, fields with
23809	// empty values are omitted from API requests. However, any field with
23810	// an empty value appearing in NullFields will be sent to the server as
23811	// null. It is an error if a field in this list has a non-empty value.
23812	// This may be used to include null fields in Patch requests.
23813	NullFields []string `json:"-"`
23814}
23815
23816func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
23817	type NoMethod MetadataFilter
23818	raw := NoMethod(*s)
23819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23820}
23821
23822// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
23823// are expected to match corresponding labels presented as metadata to
23824// the loadbalancer.
23825type MetadataFilterLabelMatch struct {
23826	// Name: Name of metadata label.
23827	// The name can have a maximum length of 1024 characters and must be at
23828	// least 1 character long.
23829	Name string `json:"name,omitempty"`
23830
23831	// Value: The value of the label must match the specified value.
23832	// value can have a maximum length of 1024 characters.
23833	Value string `json:"value,omitempty"`
23834
23835	// ForceSendFields is a list of field names (e.g. "Name") to
23836	// unconditionally include in API requests. By default, fields with
23837	// empty values are omitted from API requests. However, any non-pointer,
23838	// non-interface field appearing in ForceSendFields will be sent to the
23839	// server regardless of whether the field is empty or not. This may be
23840	// used to include empty fields in Patch requests.
23841	ForceSendFields []string `json:"-"`
23842
23843	// NullFields is a list of field names (e.g. "Name") to include in API
23844	// requests with the JSON null value. By default, fields with empty
23845	// values are omitted from API requests. However, any field with an
23846	// empty value appearing in NullFields will be sent to the server as
23847	// null. It is an error if a field in this list has a non-empty value.
23848	// This may be used to include null fields in Patch requests.
23849	NullFields []string `json:"-"`
23850}
23851
23852func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
23853	type NoMethod MetadataFilterLabelMatch
23854	raw := NoMethod(*s)
23855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23856}
23857
23858// MutualTls: [Deprecated] Configuration for the mutual Tls mode for
23859// peer authentication. Configuration for the mutual Tls mode for peer
23860// authentication.
23861type MutualTls struct {
23862	// Mode: Specifies if the server TLS is configured to be strict or
23863	// permissive. This field can be set to one of the following: STRICT:
23864	// Client certificate must be presented, connection is in TLS.
23865	// PERMISSIVE: Client certificate can be omitted, connection can be
23866	// either plaintext or TLS.
23867	//
23868	// Possible values:
23869	//   "INVALID"
23870	//   "PERMISSIVE"
23871	//   "STRICT"
23872	Mode string `json:"mode,omitempty"`
23873
23874	// ForceSendFields is a list of field names (e.g. "Mode") to
23875	// unconditionally include in API requests. By default, fields with
23876	// empty values are omitted from API requests. However, any non-pointer,
23877	// non-interface field appearing in ForceSendFields will be sent to the
23878	// server regardless of whether the field is empty or not. This may be
23879	// used to include empty fields in Patch requests.
23880	ForceSendFields []string `json:"-"`
23881
23882	// NullFields is a list of field names (e.g. "Mode") to include in API
23883	// requests with the JSON null value. By default, fields with empty
23884	// values are omitted from API requests. However, any field with an
23885	// empty value appearing in NullFields will be sent to the server as
23886	// null. It is an error if a field in this list has a non-empty value.
23887	// This may be used to include null fields in Patch requests.
23888	NullFields []string `json:"-"`
23889}
23890
23891func (s *MutualTls) MarshalJSON() ([]byte, error) {
23892	type NoMethod MutualTls
23893	raw := NoMethod(*s)
23894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23895}
23896
23897// NamedPort: The named port. For example: .
23898type NamedPort struct {
23899	// Name: The name for this named port. The name must be 1-63 characters
23900	// long, and comply with RFC1035.
23901	Name string `json:"name,omitempty"`
23902
23903	// Port: The port number, which can be a value between 1 and 65535.
23904	Port int64 `json:"port,omitempty"`
23905
23906	// ForceSendFields is a list of field names (e.g. "Name") to
23907	// unconditionally include in API requests. By default, fields with
23908	// empty values are omitted from API requests. However, any non-pointer,
23909	// non-interface field appearing in ForceSendFields will be sent to the
23910	// server regardless of whether the field is empty or not. This may be
23911	// used to include empty fields in Patch requests.
23912	ForceSendFields []string `json:"-"`
23913
23914	// NullFields is a list of field names (e.g. "Name") to include in API
23915	// requests with the JSON null value. By default, fields with empty
23916	// values are omitted from API requests. However, any field with an
23917	// empty value appearing in NullFields will be sent to the server as
23918	// null. It is an error if a field in this list has a non-empty value.
23919	// This may be used to include null fields in Patch requests.
23920	NullFields []string `json:"-"`
23921}
23922
23923func (s *NamedPort) MarshalJSON() ([]byte, error) {
23924	type NoMethod NamedPort
23925	raw := NoMethod(*s)
23926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23927}
23928
23929// Network: Represents a VPC Network resource.
23930//
23931// Networks connect resources to each other and to the internet. For
23932// more information, read Virtual Private Cloud (VPC) Network. (==
23933// resource_for {$api_version}.networks ==)
23934type Network struct {
23935	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
23936	// internal addresses that are legal on this network. This range is a
23937	// CIDR specification, for example: 192.168.0.0/16. Provided by the
23938	// client when the network is created.
23939	IPv4Range string `json:"IPv4Range,omitempty"`
23940
23941	// AutoCreateSubnetworks: When set to true, the VPC network is created
23942	// in "auto" mode. When set to false, the VPC network is created in
23943	// "custom" mode.
23944	//
23945	// An auto mode VPC network starts with one subnet per region. Each
23946	// subnet has a predetermined range as described in Auto mode VPC
23947	// network IP ranges.
23948	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
23949
23950	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23951	// format.
23952	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23953
23954	// Description: An optional description of this resource. Provide this
23955	// field when you create the resource.
23956	Description string `json:"description,omitempty"`
23957
23958	// GatewayIPv4: [Output Only] The gateway address for default routing
23959	// out of the network, selected by GCP.
23960	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
23961
23962	// Id: [Output Only] The unique identifier for the resource. This
23963	// identifier is defined by the server.
23964	Id uint64 `json:"id,omitempty,string"`
23965
23966	// Kind: [Output Only] Type of the resource. Always compute#network for
23967	// networks.
23968	Kind string `json:"kind,omitempty"`
23969
23970	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
23971	// field is 1460 and the maximum value is 1500 bytes.
23972	Mtu int64 `json:"mtu,omitempty"`
23973
23974	// Name: Name of the resource. Provided by the client when the resource
23975	// is created. The name must be 1-63 characters long, and comply with
23976	// RFC1035. Specifically, the name must be 1-63 characters long and
23977	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
23978	// character must be a lowercase letter, and all following characters
23979	// (except for the last character) must be a dash, lowercase letter, or
23980	// digit. The last character must be a lowercase letter or digit.
23981	Name string `json:"name,omitempty"`
23982
23983	// Peerings: [Output Only] A list of network peerings for the resource.
23984	Peerings []*NetworkPeering `json:"peerings,omitempty"`
23985
23986	// RoutingConfig: The network-level routing configuration for this
23987	// network. Used by Cloud Router to determine what type of network-wide
23988	// routing behavior to enforce.
23989	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
23990
23991	// SelfLink: [Output Only] Server-defined URL for the resource.
23992	SelfLink string `json:"selfLink,omitempty"`
23993
23994	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
23995	// with the resource id.
23996	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
23997
23998	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
23999	// all subnetworks in this VPC network.
24000	Subnetworks []string `json:"subnetworks,omitempty"`
24001
24002	// ServerResponse contains the HTTP response code and headers from the
24003	// server.
24004	googleapi.ServerResponse `json:"-"`
24005
24006	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
24007	// unconditionally include in API requests. By default, fields with
24008	// empty values are omitted from API requests. However, any non-pointer,
24009	// non-interface field appearing in ForceSendFields will be sent to the
24010	// server regardless of whether the field is empty or not. This may be
24011	// used to include empty fields in Patch requests.
24012	ForceSendFields []string `json:"-"`
24013
24014	// NullFields is a list of field names (e.g. "IPv4Range") to include in
24015	// API requests with the JSON null value. By default, fields with empty
24016	// values are omitted from API requests. However, any field with an
24017	// empty value appearing in NullFields will be sent to the server as
24018	// null. It is an error if a field in this list has a non-empty value.
24019	// This may be used to include null fields in Patch requests.
24020	NullFields []string `json:"-"`
24021}
24022
24023func (s *Network) MarshalJSON() ([]byte, error) {
24024	type NoMethod Network
24025	raw := NoMethod(*s)
24026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24027}
24028
24029// NetworkEndpoint: The network endpoint. Next ID: 7
24030type NetworkEndpoint struct {
24031	// Annotations: Metadata defined as annotations on the network endpoint.
24032	Annotations map[string]string `json:"annotations,omitempty"`
24033
24034	// Fqdn: Optional fully qualified domain name of network endpoint. This
24035	// can only be specified when NetworkEndpointGroup.network_endpoint_type
24036	// is NON_GCP_FQDN_PORT.
24037	Fqdn string `json:"fqdn,omitempty"`
24038
24039	// Instance: The name for a specific VM instance that the IP address
24040	// belongs to. This is required for network endpoints of type
24041	// GCE_VM_IP_PORT. The instance must be in the same zone of network
24042	// endpoint group.
24043	//
24044	// The name must be 1-63 characters long, and comply with RFC1035.
24045	Instance string `json:"instance,omitempty"`
24046
24047	// IpAddress: Optional IPv4 address of network endpoint. The IP address
24048	// must belong to a VM in Compute Engine (either the primary IP or as
24049	// part of an aliased IP range). If the IP address is not specified,
24050	// then the primary IP address for the VM instance in the network that
24051	// the network endpoint group belongs to will be used.
24052	IpAddress string `json:"ipAddress,omitempty"`
24053
24054	// Port: Optional port number of network endpoint. If not specified and
24055	// the NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
24056	// defaultPort for the network endpoint group will be used.
24057	Port int64 `json:"port,omitempty"`
24058
24059	// ForceSendFields is a list of field names (e.g. "Annotations") to
24060	// unconditionally include in API requests. By default, fields with
24061	// empty values are omitted from API requests. However, any non-pointer,
24062	// non-interface field appearing in ForceSendFields will be sent to the
24063	// server regardless of whether the field is empty or not. This may be
24064	// used to include empty fields in Patch requests.
24065	ForceSendFields []string `json:"-"`
24066
24067	// NullFields is a list of field names (e.g. "Annotations") to include
24068	// in API requests with the JSON null value. By default, fields with
24069	// empty values are omitted from API requests. However, any field with
24070	// an empty value appearing in NullFields will be sent to the server as
24071	// null. It is an error if a field in this list has a non-empty value.
24072	// This may be used to include null fields in Patch requests.
24073	NullFields []string `json:"-"`
24074}
24075
24076func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
24077	type NoMethod NetworkEndpoint
24078	raw := NoMethod(*s)
24079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24080}
24081
24082// NetworkEndpointGroup: Represents a collection of network
24083// endpoints.
24084//
24085// For more information read Network endpoint groups overview. (==
24086// resource_for {$api_version}.networkEndpointGroups ==) Next ID: 21
24087type NetworkEndpointGroup struct {
24088	// Annotations: Metadata defined as annotations on the network endpoint
24089	// group.
24090	Annotations map[string]string `json:"annotations,omitempty"`
24091
24092	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
24093	// one of cloudRun, appEngine or cloudFunction may be set.
24094	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
24095
24096	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
24097	// Only one of cloudRun, appEngine or cloudFunction may be set.
24098	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
24099
24100	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
24101	// one of cloudRun, appEngine or cloudFunction may be set.
24102	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
24103
24104	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24105	// format.
24106	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24107
24108	// DefaultPort: The default port used if the port number is not
24109	// specified in the network endpoint.
24110	DefaultPort int64 `json:"defaultPort,omitempty"`
24111
24112	// Description: An optional description of this resource. Provide this
24113	// property when you create the resource.
24114	Description string `json:"description,omitempty"`
24115
24116	// Id: [Output Only] The unique identifier for the resource. This
24117	// identifier is defined by the server.
24118	Id uint64 `json:"id,omitempty,string"`
24119
24120	// Kind: [Output Only] Type of the resource. Always
24121	// compute#networkEndpointGroup for network endpoint group.
24122	Kind string `json:"kind,omitempty"`
24123
24124	// LoadBalancer: This field is only valid when the network endpoint
24125	// group is used for load balancing. [Deprecated] This field is
24126	// deprecated.
24127	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
24128
24129	// Name: Name of the resource; provided by the client when the resource
24130	// is created. The name must be 1-63 characters long, and comply with
24131	// RFC1035. Specifically, the name must be 1-63 characters long and
24132	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24133	// the first character must be a lowercase letter, and all following
24134	// characters must be a dash, lowercase letter, or digit, except the
24135	// last character, which cannot be a dash.
24136	Name string `json:"name,omitempty"`
24137
24138	// Network: The URL of the network to which all network endpoints in the
24139	// NEG belong. Uses "default" project network if unspecified.
24140	Network string `json:"network,omitempty"`
24141
24142	// NetworkEndpointType: Type of network endpoints in this network
24143	// endpoint group.
24144	//
24145	// Possible values:
24146	//   "GCE_VM_IP_PORT"
24147	//   "GCE_VM_PRIMARY_IP"
24148	//   "INTERNET_FQDN_PORT"
24149	//   "INTERNET_IP_PORT"
24150	//   "NON_GCP_PRIVATE_IP_PORT"
24151	//   "SERVERLESS"
24152	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
24153
24154	// Region: [Output Only] The URL of the region where the network
24155	// endpoint group is located.
24156	Region string `json:"region,omitempty"`
24157
24158	// SelfLink: [Output Only] Server-defined URL for the resource.
24159	SelfLink string `json:"selfLink,omitempty"`
24160
24161	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
24162	// with the resource id.
24163	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
24164
24165	// Size: [Output only] Number of network endpoints in the network
24166	// endpoint group.
24167	Size int64 `json:"size,omitempty"`
24168
24169	// Subnetwork: Optional URL of the subnetwork to which all network
24170	// endpoints in the NEG belong.
24171	Subnetwork string `json:"subnetwork,omitempty"`
24172
24173	// Type: Specify the type of this network endpoint group. Only
24174	// LOAD_BALANCING is valid for now.
24175	//
24176	// Possible values:
24177	//   "LOAD_BALANCING"
24178	Type string `json:"type,omitempty"`
24179
24180	// Zone: [Output Only] The URL of the zone where the network endpoint
24181	// group is located.
24182	Zone string `json:"zone,omitempty"`
24183
24184	// ServerResponse contains the HTTP response code and headers from the
24185	// server.
24186	googleapi.ServerResponse `json:"-"`
24187
24188	// ForceSendFields is a list of field names (e.g. "Annotations") to
24189	// unconditionally include in API requests. By default, fields with
24190	// empty values are omitted from API requests. However, any non-pointer,
24191	// non-interface field appearing in ForceSendFields will be sent to the
24192	// server regardless of whether the field is empty or not. This may be
24193	// used to include empty fields in Patch requests.
24194	ForceSendFields []string `json:"-"`
24195
24196	// NullFields is a list of field names (e.g. "Annotations") to include
24197	// in API requests with the JSON null value. By default, fields with
24198	// empty values are omitted from API requests. However, any field with
24199	// an empty value appearing in NullFields will be sent to the server as
24200	// null. It is an error if a field in this list has a non-empty value.
24201	// This may be used to include null fields in Patch requests.
24202	NullFields []string `json:"-"`
24203}
24204
24205func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24206	type NoMethod NetworkEndpointGroup
24207	raw := NoMethod(*s)
24208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24209}
24210
24211type NetworkEndpointGroupAggregatedList struct {
24212	// Id: [Output Only] Unique identifier for the resource; defined by the
24213	// server.
24214	Id string `json:"id,omitempty"`
24215
24216	// Items: A list of NetworkEndpointGroupsScopedList resources.
24217	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
24218
24219	// Kind: [Output Only] The resource type, which is always
24220	// compute#networkEndpointGroupAggregatedList for aggregated lists of
24221	// network endpoint groups.
24222	Kind string `json:"kind,omitempty"`
24223
24224	// NextPageToken: [Output Only] This token allows you to get the next
24225	// page of results for list requests. If the number of results is larger
24226	// than maxResults, use the nextPageToken as a value for the query
24227	// parameter pageToken in the next list request. Subsequent list
24228	// requests will have their own nextPageToken to continue paging through
24229	// the results.
24230	NextPageToken string `json:"nextPageToken,omitempty"`
24231
24232	// SelfLink: [Output Only] Server-defined URL for this resource.
24233	SelfLink string `json:"selfLink,omitempty"`
24234
24235	// Unreachables: [Output Only] Unreachable resources.
24236	Unreachables []string `json:"unreachables,omitempty"`
24237
24238	// Warning: [Output Only] Informational warning message.
24239	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
24240
24241	// ServerResponse contains the HTTP response code and headers from the
24242	// server.
24243	googleapi.ServerResponse `json:"-"`
24244
24245	// ForceSendFields is a list of field names (e.g. "Id") to
24246	// unconditionally include in API requests. By default, fields with
24247	// empty values are omitted from API requests. However, any non-pointer,
24248	// non-interface field appearing in ForceSendFields will be sent to the
24249	// server regardless of whether the field is empty or not. This may be
24250	// used to include empty fields in Patch requests.
24251	ForceSendFields []string `json:"-"`
24252
24253	// NullFields is a list of field names (e.g. "Id") to include in API
24254	// requests with the JSON null value. By default, fields with empty
24255	// values are omitted from API requests. However, any field with an
24256	// empty value appearing in NullFields will be sent to the server as
24257	// null. It is an error if a field in this list has a non-empty value.
24258	// This may be used to include null fields in Patch requests.
24259	NullFields []string `json:"-"`
24260}
24261
24262func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
24263	type NoMethod NetworkEndpointGroupAggregatedList
24264	raw := NoMethod(*s)
24265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24266}
24267
24268// NetworkEndpointGroupAggregatedListWarning: [Output Only]
24269// Informational warning message.
24270type NetworkEndpointGroupAggregatedListWarning struct {
24271	// Code: [Output Only] A warning code, if applicable. For example,
24272	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24273	// the response.
24274	//
24275	// Possible values:
24276	//   "CLEANUP_FAILED"
24277	//   "DEPRECATED_RESOURCE_USED"
24278	//   "DEPRECATED_TYPE_USED"
24279	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24280	//   "EXPERIMENTAL_TYPE_USED"
24281	//   "EXTERNAL_API_WARNING"
24282	//   "FIELD_VALUE_OVERRIDEN"
24283	//   "INJECTED_KERNELS_DEPRECATED"
24284	//   "MISSING_TYPE_DEPENDENCY"
24285	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24286	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24287	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24288	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24289	//   "NEXT_HOP_NOT_RUNNING"
24290	//   "NOT_CRITICAL_ERROR"
24291	//   "NO_RESULTS_ON_PAGE"
24292	//   "PARTIAL_SUCCESS"
24293	//   "REQUIRED_TOS_AGREEMENT"
24294	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24295	//   "RESOURCE_NOT_DELETED"
24296	//   "SCHEMA_VALIDATION_IGNORED"
24297	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24298	//   "UNDECLARED_PROPERTIES"
24299	//   "UNREACHABLE"
24300	Code string `json:"code,omitempty"`
24301
24302	// Data: [Output Only] Metadata about this warning in key: value format.
24303	// For example:
24304	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24305	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
24306
24307	// Message: [Output Only] A human-readable description of the warning
24308	// code.
24309	Message string `json:"message,omitempty"`
24310
24311	// ForceSendFields is a list of field names (e.g. "Code") to
24312	// unconditionally include in API requests. By default, fields with
24313	// empty values are omitted from API requests. However, any non-pointer,
24314	// non-interface field appearing in ForceSendFields will be sent to the
24315	// server regardless of whether the field is empty or not. This may be
24316	// used to include empty fields in Patch requests.
24317	ForceSendFields []string `json:"-"`
24318
24319	// NullFields is a list of field names (e.g. "Code") to include in API
24320	// requests with the JSON null value. By default, fields with empty
24321	// values are omitted from API requests. However, any field with an
24322	// empty value appearing in NullFields will be sent to the server as
24323	// null. It is an error if a field in this list has a non-empty value.
24324	// This may be used to include null fields in Patch requests.
24325	NullFields []string `json:"-"`
24326}
24327
24328func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
24329	type NoMethod NetworkEndpointGroupAggregatedListWarning
24330	raw := NoMethod(*s)
24331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24332}
24333
24334type NetworkEndpointGroupAggregatedListWarningData struct {
24335	// Key: [Output Only] A key that provides more detail on the warning
24336	// being returned. For example, for warnings where there are no results
24337	// in a list request for a particular zone, this key might be scope and
24338	// the key value might be the zone name. Other examples might be a key
24339	// indicating a deprecated resource and a suggested replacement, or a
24340	// warning about invalid network settings (for example, if an instance
24341	// attempts to perform IP forwarding but is not enabled for IP
24342	// forwarding).
24343	Key string `json:"key,omitempty"`
24344
24345	// Value: [Output Only] A warning data value corresponding to the key.
24346	Value string `json:"value,omitempty"`
24347
24348	// ForceSendFields is a list of field names (e.g. "Key") to
24349	// unconditionally include in API requests. By default, fields with
24350	// empty values are omitted from API requests. However, any non-pointer,
24351	// non-interface field appearing in ForceSendFields will be sent to the
24352	// server regardless of whether the field is empty or not. This may be
24353	// used to include empty fields in Patch requests.
24354	ForceSendFields []string `json:"-"`
24355
24356	// NullFields is a list of field names (e.g. "Key") to include in API
24357	// requests with the JSON null value. By default, fields with empty
24358	// values are omitted from API requests. However, any field with an
24359	// empty value appearing in NullFields will be sent to the server as
24360	// null. It is an error if a field in this list has a non-empty value.
24361	// This may be used to include null fields in Patch requests.
24362	NullFields []string `json:"-"`
24363}
24364
24365func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24366	type NoMethod NetworkEndpointGroupAggregatedListWarningData
24367	raw := NoMethod(*s)
24368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24369}
24370
24371// NetworkEndpointGroupAppEngine: Configuration for an App Engine
24372// network endpoint group (NEG). The service is optional, may be
24373// provided explicitly or in the URL mask. The version is optional and
24374// can only be provided explicitly or in the URL mask when service is
24375// present.
24376//
24377// Note: App Engine service must be in the same project and located in
24378// the same region as the Serverless NEG.
24379type NetworkEndpointGroupAppEngine struct {
24380	// Service: Optional serving service.
24381	//
24382	// The service name must be 1-63 characters long, and comply with
24383	// RFC1035.
24384	//
24385	// Example value: "default", "my-service".
24386	Service string `json:"service,omitempty"`
24387
24388	// UrlMask: A template to parse service and version fields from a
24389	// request URL. URL mask allows for routing to multiple App Engine
24390	// services without having to create multiple Network Endpoint Groups
24391	// and backend services.
24392	//
24393	// For example, the request URLs "foo1-dot-appname.appspot.com/v1" and
24394	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
24395	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
24396	// mask will parse them to { service = "foo1", version = "v1" } and {
24397	// service = "foo1", version = "v2" } respectively.
24398	UrlMask string `json:"urlMask,omitempty"`
24399
24400	// Version: Optional serving version.
24401	//
24402	// The version must be 1-63 characters long, and comply with
24403	// RFC1035.
24404	//
24405	// Example value: "v1", "v2".
24406	Version string `json:"version,omitempty"`
24407
24408	// ForceSendFields is a list of field names (e.g. "Service") to
24409	// unconditionally include in API requests. By default, fields with
24410	// empty values are omitted from API requests. However, any non-pointer,
24411	// non-interface field appearing in ForceSendFields will be sent to the
24412	// server regardless of whether the field is empty or not. This may be
24413	// used to include empty fields in Patch requests.
24414	ForceSendFields []string `json:"-"`
24415
24416	// NullFields is a list of field names (e.g. "Service") to include in
24417	// API requests with the JSON null value. By default, fields with empty
24418	// values are omitted from API requests. However, any field with an
24419	// empty value appearing in NullFields will be sent to the server as
24420	// null. It is an error if a field in this list has a non-empty value.
24421	// This may be used to include null fields in Patch requests.
24422	NullFields []string `json:"-"`
24423}
24424
24425func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
24426	type NoMethod NetworkEndpointGroupAppEngine
24427	raw := NoMethod(*s)
24428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24429}
24430
24431// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
24432// network endpoint group (NEG). The function must be provided
24433// explicitly or in the URL mask.
24434//
24435// Note: Cloud Function must be in the same project and located in the
24436// same region as the Serverless NEG.
24437type NetworkEndpointGroupCloudFunction struct {
24438	// Function: A user-defined name of the Cloud Function.
24439	//
24440	// The function name is case-sensitive and must be 1-63 characters
24441	// long.
24442	//
24443	// Example value: "func1".
24444	Function string `json:"function,omitempty"`
24445
24446	// UrlMask: A template to parse function field from a request URL. URL
24447	// mask allows for routing to multiple Cloud Functions without having to
24448	// create multiple Network Endpoint Groups and backend services.
24449	//
24450	// For example, request URLs "mydomain.com/function1" and
24451	// "mydomain.com/function2" can be backed by the same Serverless NEG
24452	// with URL mask "/". The URL mask will parse them to { function =
24453	// "function1" } and { function = "function2" } respectively.
24454	UrlMask string `json:"urlMask,omitempty"`
24455
24456	// ForceSendFields is a list of field names (e.g. "Function") to
24457	// unconditionally include in API requests. By default, fields with
24458	// empty values are omitted from API requests. However, any non-pointer,
24459	// non-interface field appearing in ForceSendFields will be sent to the
24460	// server regardless of whether the field is empty or not. This may be
24461	// used to include empty fields in Patch requests.
24462	ForceSendFields []string `json:"-"`
24463
24464	// NullFields is a list of field names (e.g. "Function") to include in
24465	// API requests with the JSON null value. By default, fields with empty
24466	// values are omitted from API requests. However, any field with an
24467	// empty value appearing in NullFields will be sent to the server as
24468	// null. It is an error if a field in this list has a non-empty value.
24469	// This may be used to include null fields in Patch requests.
24470	NullFields []string `json:"-"`
24471}
24472
24473func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
24474	type NoMethod NetworkEndpointGroupCloudFunction
24475	raw := NoMethod(*s)
24476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24477}
24478
24479// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
24480// endpoint group (NEG). The service must be provided explicitly or in
24481// the URL mask. The tag is optional, may be provided explicitly or in
24482// the URL mask.
24483//
24484// Note: Cloud Run service must be in the same project and located in
24485// the same region as the Serverless NEG.
24486type NetworkEndpointGroupCloudRun struct {
24487	// Service: Cloud Run service is the main resource of Cloud Run.
24488	//
24489	// The service must be 1-63 characters long, and comply with
24490	// RFC1035.
24491	//
24492	// Example value: "run-service".
24493	Service string `json:"service,omitempty"`
24494
24495	// Tag: Optional Cloud Run tag represents the "named-revision" to
24496	// provide additional fine-grained traffic routing information.
24497	//
24498	// The tag must be 1-63 characters long, and comply with
24499	// RFC1035.
24500	//
24501	// Example value: "revision-0010".
24502	Tag string `json:"tag,omitempty"`
24503
24504	// UrlMask: A template to parse service and tag fields from a request
24505	// URL. URL mask allows for routing to multiple Run services without
24506	// having to create multiple network endpoint groups and backend
24507	// services.
24508	//
24509	// For example, request URLs "foo1.domain.com/bar1" and
24510	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
24511	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
24512	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
24513	// tag="foo2" } respectively.
24514	UrlMask string `json:"urlMask,omitempty"`
24515
24516	// ForceSendFields is a list of field names (e.g. "Service") to
24517	// unconditionally include in API requests. By default, fields with
24518	// empty values are omitted from API requests. However, any non-pointer,
24519	// non-interface field appearing in ForceSendFields will be sent to the
24520	// server regardless of whether the field is empty or not. This may be
24521	// used to include empty fields in Patch requests.
24522	ForceSendFields []string `json:"-"`
24523
24524	// NullFields is a list of field names (e.g. "Service") to include in
24525	// API requests with the JSON null value. By default, fields with empty
24526	// values are omitted from API requests. However, any field with an
24527	// empty value appearing in NullFields will be sent to the server as
24528	// null. It is an error if a field in this list has a non-empty value.
24529	// This may be used to include null fields in Patch requests.
24530	NullFields []string `json:"-"`
24531}
24532
24533func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
24534	type NoMethod NetworkEndpointGroupCloudRun
24535	raw := NoMethod(*s)
24536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24537}
24538
24539// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific
24540// fields for network endpoint group.
24541type NetworkEndpointGroupLbNetworkEndpointGroup struct {
24542	// DefaultPort: The default port used if the port number is not
24543	// specified in the network endpoint. [Deprecated] This field is
24544	// deprecated.
24545	DefaultPort int64 `json:"defaultPort,omitempty"`
24546
24547	// Network: The URL of the network to which all network endpoints in the
24548	// NEG belong. Uses "default" project network if unspecified.
24549	// [Deprecated] This field is deprecated.
24550	Network string `json:"network,omitempty"`
24551
24552	// Subnetwork: Optional URL of the subnetwork to which all network
24553	// endpoints in the NEG belong. [Deprecated] This field is deprecated.
24554	Subnetwork string `json:"subnetwork,omitempty"`
24555
24556	// Zone: [Output Only] The URL of the zone where the network endpoint
24557	// group is located. [Deprecated] This field is deprecated.
24558	Zone string `json:"zone,omitempty"`
24559
24560	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
24561	// unconditionally include in API requests. By default, fields with
24562	// empty values are omitted from API requests. However, any non-pointer,
24563	// non-interface field appearing in ForceSendFields will be sent to the
24564	// server regardless of whether the field is empty or not. This may be
24565	// used to include empty fields in Patch requests.
24566	ForceSendFields []string `json:"-"`
24567
24568	// NullFields is a list of field names (e.g. "DefaultPort") to include
24569	// in API requests with the JSON null value. By default, fields with
24570	// empty values are omitted from API requests. However, any field with
24571	// an empty value appearing in NullFields will be sent to the server as
24572	// null. It is an error if a field in this list has a non-empty value.
24573	// This may be used to include null fields in Patch requests.
24574	NullFields []string `json:"-"`
24575}
24576
24577func (s *NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24578	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
24579	raw := NoMethod(*s)
24580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24581}
24582
24583type NetworkEndpointGroupList struct {
24584	// Id: [Output Only] Unique identifier for the resource; defined by the
24585	// server.
24586	Id string `json:"id,omitempty"`
24587
24588	// Items: A list of NetworkEndpointGroup resources.
24589	Items []*NetworkEndpointGroup `json:"items,omitempty"`
24590
24591	// Kind: [Output Only] The resource type, which is always
24592	// compute#networkEndpointGroupList for network endpoint group lists.
24593	Kind string `json:"kind,omitempty"`
24594
24595	// NextPageToken: [Output Only] This token allows you to get the next
24596	// page of results for list requests. If the number of results is larger
24597	// than maxResults, use the nextPageToken as a value for the query
24598	// parameter pageToken in the next list request. Subsequent list
24599	// requests will have their own nextPageToken to continue paging through
24600	// the results.
24601	NextPageToken string `json:"nextPageToken,omitempty"`
24602
24603	// SelfLink: [Output Only] Server-defined URL for this resource.
24604	SelfLink string `json:"selfLink,omitempty"`
24605
24606	// Warning: [Output Only] Informational warning message.
24607	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
24608
24609	// ServerResponse contains the HTTP response code and headers from the
24610	// server.
24611	googleapi.ServerResponse `json:"-"`
24612
24613	// ForceSendFields is a list of field names (e.g. "Id") to
24614	// unconditionally include in API requests. By default, fields with
24615	// empty values are omitted from API requests. However, any non-pointer,
24616	// non-interface field appearing in ForceSendFields will be sent to the
24617	// server regardless of whether the field is empty or not. This may be
24618	// used to include empty fields in Patch requests.
24619	ForceSendFields []string `json:"-"`
24620
24621	// NullFields is a list of field names (e.g. "Id") to include in API
24622	// requests with the JSON null value. By default, fields with empty
24623	// values are omitted from API requests. However, any field with an
24624	// empty value appearing in NullFields will be sent to the server as
24625	// null. It is an error if a field in this list has a non-empty value.
24626	// This may be used to include null fields in Patch requests.
24627	NullFields []string `json:"-"`
24628}
24629
24630func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
24631	type NoMethod NetworkEndpointGroupList
24632	raw := NoMethod(*s)
24633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24634}
24635
24636// NetworkEndpointGroupListWarning: [Output Only] Informational warning
24637// message.
24638type NetworkEndpointGroupListWarning struct {
24639	// Code: [Output Only] A warning code, if applicable. For example,
24640	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24641	// the response.
24642	//
24643	// Possible values:
24644	//   "CLEANUP_FAILED"
24645	//   "DEPRECATED_RESOURCE_USED"
24646	//   "DEPRECATED_TYPE_USED"
24647	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24648	//   "EXPERIMENTAL_TYPE_USED"
24649	//   "EXTERNAL_API_WARNING"
24650	//   "FIELD_VALUE_OVERRIDEN"
24651	//   "INJECTED_KERNELS_DEPRECATED"
24652	//   "MISSING_TYPE_DEPENDENCY"
24653	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24654	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24655	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24656	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24657	//   "NEXT_HOP_NOT_RUNNING"
24658	//   "NOT_CRITICAL_ERROR"
24659	//   "NO_RESULTS_ON_PAGE"
24660	//   "PARTIAL_SUCCESS"
24661	//   "REQUIRED_TOS_AGREEMENT"
24662	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24663	//   "RESOURCE_NOT_DELETED"
24664	//   "SCHEMA_VALIDATION_IGNORED"
24665	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24666	//   "UNDECLARED_PROPERTIES"
24667	//   "UNREACHABLE"
24668	Code string `json:"code,omitempty"`
24669
24670	// Data: [Output Only] Metadata about this warning in key: value format.
24671	// For example:
24672	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24673	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
24674
24675	// Message: [Output Only] A human-readable description of the warning
24676	// code.
24677	Message string `json:"message,omitempty"`
24678
24679	// ForceSendFields is a list of field names (e.g. "Code") to
24680	// unconditionally include in API requests. By default, fields with
24681	// empty values are omitted from API requests. However, any non-pointer,
24682	// non-interface field appearing in ForceSendFields will be sent to the
24683	// server regardless of whether the field is empty or not. This may be
24684	// used to include empty fields in Patch requests.
24685	ForceSendFields []string `json:"-"`
24686
24687	// NullFields is a list of field names (e.g. "Code") to include in API
24688	// requests with the JSON null value. By default, fields with empty
24689	// values are omitted from API requests. However, any field with an
24690	// empty value appearing in NullFields will be sent to the server as
24691	// null. It is an error if a field in this list has a non-empty value.
24692	// This may be used to include null fields in Patch requests.
24693	NullFields []string `json:"-"`
24694}
24695
24696func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
24697	type NoMethod NetworkEndpointGroupListWarning
24698	raw := NoMethod(*s)
24699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24700}
24701
24702type NetworkEndpointGroupListWarningData struct {
24703	// Key: [Output Only] A key that provides more detail on the warning
24704	// being returned. For example, for warnings where there are no results
24705	// in a list request for a particular zone, this key might be scope and
24706	// the key value might be the zone name. Other examples might be a key
24707	// indicating a deprecated resource and a suggested replacement, or a
24708	// warning about invalid network settings (for example, if an instance
24709	// attempts to perform IP forwarding but is not enabled for IP
24710	// forwarding).
24711	Key string `json:"key,omitempty"`
24712
24713	// Value: [Output Only] A warning data value corresponding to the key.
24714	Value string `json:"value,omitempty"`
24715
24716	// ForceSendFields is a list of field names (e.g. "Key") to
24717	// unconditionally include in API requests. By default, fields with
24718	// empty values are omitted from API requests. However, any non-pointer,
24719	// non-interface field appearing in ForceSendFields will be sent to the
24720	// server regardless of whether the field is empty or not. This may be
24721	// used to include empty fields in Patch requests.
24722	ForceSendFields []string `json:"-"`
24723
24724	// NullFields is a list of field names (e.g. "Key") to include in API
24725	// requests with the JSON null value. By default, fields with empty
24726	// values are omitted from API requests. However, any field with an
24727	// empty value appearing in NullFields will be sent to the server as
24728	// null. It is an error if a field in this list has a non-empty value.
24729	// This may be used to include null fields in Patch requests.
24730	NullFields []string `json:"-"`
24731}
24732
24733func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
24734	type NoMethod NetworkEndpointGroupListWarningData
24735	raw := NoMethod(*s)
24736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24737}
24738
24739type NetworkEndpointGroupsAttachEndpointsRequest struct {
24740	// NetworkEndpoints: The list of network endpoints to be attached.
24741	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
24742
24743	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
24744	// unconditionally include in API requests. By default, fields with
24745	// empty values are omitted from API requests. However, any non-pointer,
24746	// non-interface field appearing in ForceSendFields will be sent to the
24747	// server regardless of whether the field is empty or not. This may be
24748	// used to include empty fields in Patch requests.
24749	ForceSendFields []string `json:"-"`
24750
24751	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
24752	// include in API requests with the JSON null value. By default, fields
24753	// with empty values are omitted from API requests. However, any field
24754	// with an empty value appearing in NullFields will be sent to the
24755	// server as null. It is an error if a field in this list has a
24756	// non-empty value. This may be used to include null fields in Patch
24757	// requests.
24758	NullFields []string `json:"-"`
24759}
24760
24761func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
24762	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
24763	raw := NoMethod(*s)
24764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24765}
24766
24767type NetworkEndpointGroupsDetachEndpointsRequest struct {
24768	// NetworkEndpoints: The list of network endpoints to be detached.
24769	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
24770
24771	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
24772	// unconditionally include in API requests. By default, fields with
24773	// empty values are omitted from API requests. However, any non-pointer,
24774	// non-interface field appearing in ForceSendFields will be sent to the
24775	// server regardless of whether the field is empty or not. This may be
24776	// used to include empty fields in Patch requests.
24777	ForceSendFields []string `json:"-"`
24778
24779	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
24780	// include in API requests with the JSON null value. By default, fields
24781	// with empty values are omitted from API requests. However, any field
24782	// with an empty value appearing in NullFields will be sent to the
24783	// server as null. It is an error if a field in this list has a
24784	// non-empty value. This may be used to include null fields in Patch
24785	// requests.
24786	NullFields []string `json:"-"`
24787}
24788
24789func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
24790	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
24791	raw := NoMethod(*s)
24792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24793}
24794
24795type NetworkEndpointGroupsListEndpointsRequest struct {
24796	// EndpointFilters: Optional list of endpoints to query. This is a more
24797	// efficient but also limited version of filter parameter. Endpoints in
24798	// the filter must have ip_address and port fields populated, other
24799	// fields are not supported.
24800	EndpointFilters []*NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter `json:"endpointFilters,omitempty"`
24801
24802	// HealthStatus: Optional query parameter for showing the health status
24803	// of each network endpoint. Valid options are SKIP or SHOW. If you
24804	// don't specifiy this parameter, the health status of network endpoints
24805	// will not be provided.
24806	//
24807	// Possible values:
24808	//   "SHOW"
24809	//   "SKIP"
24810	HealthStatus string `json:"healthStatus,omitempty"`
24811
24812	// ForceSendFields is a list of field names (e.g. "EndpointFilters") to
24813	// unconditionally include in API requests. By default, fields with
24814	// empty values are omitted from API requests. However, any non-pointer,
24815	// non-interface field appearing in ForceSendFields will be sent to the
24816	// server regardless of whether the field is empty or not. This may be
24817	// used to include empty fields in Patch requests.
24818	ForceSendFields []string `json:"-"`
24819
24820	// NullFields is a list of field names (e.g. "EndpointFilters") to
24821	// include in API requests with the JSON null value. By default, fields
24822	// with empty values are omitted from API requests. However, any field
24823	// with an empty value appearing in NullFields will be sent to the
24824	// server as null. It is an error if a field in this list has a
24825	// non-empty value. This may be used to include null fields in Patch
24826	// requests.
24827	NullFields []string `json:"-"`
24828}
24829
24830func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
24831	type NoMethod NetworkEndpointGroupsListEndpointsRequest
24832	raw := NoMethod(*s)
24833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24834}
24835
24836type NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter struct {
24837	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
24838
24839	// ForceSendFields is a list of field names (e.g. "NetworkEndpoint") to
24840	// unconditionally include in API requests. By default, fields with
24841	// empty values are omitted from API requests. However, any non-pointer,
24842	// non-interface field appearing in ForceSendFields will be sent to the
24843	// server regardless of whether the field is empty or not. This may be
24844	// used to include empty fields in Patch requests.
24845	ForceSendFields []string `json:"-"`
24846
24847	// NullFields is a list of field names (e.g. "NetworkEndpoint") to
24848	// include in API requests with the JSON null value. By default, fields
24849	// with empty values are omitted from API requests. However, any field
24850	// with an empty value appearing in NullFields will be sent to the
24851	// server as null. It is an error if a field in this list has a
24852	// non-empty value. This may be used to include null fields in Patch
24853	// requests.
24854	NullFields []string `json:"-"`
24855}
24856
24857func (s *NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter) MarshalJSON() ([]byte, error) {
24858	type NoMethod NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
24859	raw := NoMethod(*s)
24860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24861}
24862
24863type NetworkEndpointGroupsListNetworkEndpoints struct {
24864	// Id: [Output Only] Unique identifier for the resource; defined by the
24865	// server.
24866	Id string `json:"id,omitempty"`
24867
24868	// Items: A list of NetworkEndpointWithHealthStatus resources.
24869	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
24870
24871	// Kind: [Output Only] The resource type, which is always
24872	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
24873	// network endpoints in the specified network endpoint group.
24874	Kind string `json:"kind,omitempty"`
24875
24876	// NextPageToken: [Output Only] This token allows you to get the next
24877	// page of results for list requests. If the number of results is larger
24878	// than maxResults, use the nextPageToken as a value for the query
24879	// parameter pageToken in the next list request. Subsequent list
24880	// requests will have their own nextPageToken to continue paging through
24881	// the results.
24882	NextPageToken string `json:"nextPageToken,omitempty"`
24883
24884	// Warning: [Output Only] Informational warning message.
24885	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
24886
24887	// ServerResponse contains the HTTP response code and headers from the
24888	// server.
24889	googleapi.ServerResponse `json:"-"`
24890
24891	// ForceSendFields is a list of field names (e.g. "Id") to
24892	// unconditionally include in API requests. By default, fields with
24893	// empty values are omitted from API requests. However, any non-pointer,
24894	// non-interface field appearing in ForceSendFields will be sent to the
24895	// server regardless of whether the field is empty or not. This may be
24896	// used to include empty fields in Patch requests.
24897	ForceSendFields []string `json:"-"`
24898
24899	// NullFields is a list of field names (e.g. "Id") to include in API
24900	// requests with the JSON null value. By default, fields with empty
24901	// values are omitted from API requests. However, any field with an
24902	// empty value appearing in NullFields will be sent to the server as
24903	// null. It is an error if a field in this list has a non-empty value.
24904	// This may be used to include null fields in Patch requests.
24905	NullFields []string `json:"-"`
24906}
24907
24908func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
24909	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
24910	raw := NoMethod(*s)
24911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24912}
24913
24914// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
24915// Informational warning message.
24916type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
24917	// Code: [Output Only] A warning code, if applicable. For example,
24918	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24919	// the response.
24920	//
24921	// Possible values:
24922	//   "CLEANUP_FAILED"
24923	//   "DEPRECATED_RESOURCE_USED"
24924	//   "DEPRECATED_TYPE_USED"
24925	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24926	//   "EXPERIMENTAL_TYPE_USED"
24927	//   "EXTERNAL_API_WARNING"
24928	//   "FIELD_VALUE_OVERRIDEN"
24929	//   "INJECTED_KERNELS_DEPRECATED"
24930	//   "MISSING_TYPE_DEPENDENCY"
24931	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24932	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24933	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24934	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24935	//   "NEXT_HOP_NOT_RUNNING"
24936	//   "NOT_CRITICAL_ERROR"
24937	//   "NO_RESULTS_ON_PAGE"
24938	//   "PARTIAL_SUCCESS"
24939	//   "REQUIRED_TOS_AGREEMENT"
24940	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24941	//   "RESOURCE_NOT_DELETED"
24942	//   "SCHEMA_VALIDATION_IGNORED"
24943	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24944	//   "UNDECLARED_PROPERTIES"
24945	//   "UNREACHABLE"
24946	Code string `json:"code,omitempty"`
24947
24948	// Data: [Output Only] Metadata about this warning in key: value format.
24949	// For example:
24950	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24951	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
24952
24953	// Message: [Output Only] A human-readable description of the warning
24954	// code.
24955	Message string `json:"message,omitempty"`
24956
24957	// ForceSendFields is a list of field names (e.g. "Code") to
24958	// unconditionally include in API requests. By default, fields with
24959	// empty values are omitted from API requests. However, any non-pointer,
24960	// non-interface field appearing in ForceSendFields will be sent to the
24961	// server regardless of whether the field is empty or not. This may be
24962	// used to include empty fields in Patch requests.
24963	ForceSendFields []string `json:"-"`
24964
24965	// NullFields is a list of field names (e.g. "Code") to include in API
24966	// requests with the JSON null value. By default, fields with empty
24967	// values are omitted from API requests. However, any field with an
24968	// empty value appearing in NullFields will be sent to the server as
24969	// null. It is an error if a field in this list has a non-empty value.
24970	// This may be used to include null fields in Patch requests.
24971	NullFields []string `json:"-"`
24972}
24973
24974func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
24975	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
24976	raw := NoMethod(*s)
24977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24978}
24979
24980type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
24981	// Key: [Output Only] A key that provides more detail on the warning
24982	// being returned. For example, for warnings where there are no results
24983	// in a list request for a particular zone, this key might be scope and
24984	// the key value might be the zone name. Other examples might be a key
24985	// indicating a deprecated resource and a suggested replacement, or a
24986	// warning about invalid network settings (for example, if an instance
24987	// attempts to perform IP forwarding but is not enabled for IP
24988	// forwarding).
24989	Key string `json:"key,omitempty"`
24990
24991	// Value: [Output Only] A warning data value corresponding to the key.
24992	Value string `json:"value,omitempty"`
24993
24994	// ForceSendFields is a list of field names (e.g. "Key") to
24995	// unconditionally include in API requests. By default, fields with
24996	// empty values are omitted from API requests. However, any non-pointer,
24997	// non-interface field appearing in ForceSendFields will be sent to the
24998	// server regardless of whether the field is empty or not. This may be
24999	// used to include empty fields in Patch requests.
25000	ForceSendFields []string `json:"-"`
25001
25002	// NullFields is a list of field names (e.g. "Key") to include in API
25003	// requests with the JSON null value. By default, fields with empty
25004	// values are omitted from API requests. However, any field with an
25005	// empty value appearing in NullFields will be sent to the server as
25006	// null. It is an error if a field in this list has a non-empty value.
25007	// This may be used to include null fields in Patch requests.
25008	NullFields []string `json:"-"`
25009}
25010
25011func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
25012	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
25013	raw := NoMethod(*s)
25014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25015}
25016
25017type NetworkEndpointGroupsScopedList struct {
25018	// NetworkEndpointGroups: [Output Only] The list of network endpoint
25019	// groups that are contained in this scope.
25020	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
25021
25022	// Warning: [Output Only] An informational warning that replaces the
25023	// list of network endpoint groups when the list is empty.
25024	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
25025
25026	// ForceSendFields is a list of field names (e.g.
25027	// "NetworkEndpointGroups") to unconditionally include in API requests.
25028	// By default, fields with empty values are omitted from API requests.
25029	// However, any non-pointer, non-interface field appearing in
25030	// ForceSendFields will be sent to the server regardless of whether the
25031	// field is empty or not. This may be used to include empty fields in
25032	// Patch requests.
25033	ForceSendFields []string `json:"-"`
25034
25035	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
25036	// include in API requests with the JSON null value. By default, fields
25037	// with empty values are omitted from API requests. However, any field
25038	// with an empty value appearing in NullFields will be sent to the
25039	// server as null. It is an error if a field in this list has a
25040	// non-empty value. This may be used to include null fields in Patch
25041	// requests.
25042	NullFields []string `json:"-"`
25043}
25044
25045func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
25046	type NoMethod NetworkEndpointGroupsScopedList
25047	raw := NoMethod(*s)
25048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25049}
25050
25051// NetworkEndpointGroupsScopedListWarning: [Output Only] An
25052// informational warning that replaces the list of network endpoint
25053// groups when the list is empty.
25054type NetworkEndpointGroupsScopedListWarning struct {
25055	// Code: [Output Only] A warning code, if applicable. For example,
25056	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25057	// the response.
25058	//
25059	// Possible values:
25060	//   "CLEANUP_FAILED"
25061	//   "DEPRECATED_RESOURCE_USED"
25062	//   "DEPRECATED_TYPE_USED"
25063	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25064	//   "EXPERIMENTAL_TYPE_USED"
25065	//   "EXTERNAL_API_WARNING"
25066	//   "FIELD_VALUE_OVERRIDEN"
25067	//   "INJECTED_KERNELS_DEPRECATED"
25068	//   "MISSING_TYPE_DEPENDENCY"
25069	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25070	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25071	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25072	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25073	//   "NEXT_HOP_NOT_RUNNING"
25074	//   "NOT_CRITICAL_ERROR"
25075	//   "NO_RESULTS_ON_PAGE"
25076	//   "PARTIAL_SUCCESS"
25077	//   "REQUIRED_TOS_AGREEMENT"
25078	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25079	//   "RESOURCE_NOT_DELETED"
25080	//   "SCHEMA_VALIDATION_IGNORED"
25081	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25082	//   "UNDECLARED_PROPERTIES"
25083	//   "UNREACHABLE"
25084	Code string `json:"code,omitempty"`
25085
25086	// Data: [Output Only] Metadata about this warning in key: value format.
25087	// For example:
25088	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25089	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
25090
25091	// Message: [Output Only] A human-readable description of the warning
25092	// code.
25093	Message string `json:"message,omitempty"`
25094
25095	// ForceSendFields is a list of field names (e.g. "Code") to
25096	// unconditionally include in API requests. By default, fields with
25097	// empty values are omitted from API requests. However, any non-pointer,
25098	// non-interface field appearing in ForceSendFields will be sent to the
25099	// server regardless of whether the field is empty or not. This may be
25100	// used to include empty fields in Patch requests.
25101	ForceSendFields []string `json:"-"`
25102
25103	// NullFields is a list of field names (e.g. "Code") to include in API
25104	// requests with the JSON null value. By default, fields with empty
25105	// values are omitted from API requests. However, any field with an
25106	// empty value appearing in NullFields will be sent to the server as
25107	// null. It is an error if a field in this list has a non-empty value.
25108	// This may be used to include null fields in Patch requests.
25109	NullFields []string `json:"-"`
25110}
25111
25112func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25113	type NoMethod NetworkEndpointGroupsScopedListWarning
25114	raw := NoMethod(*s)
25115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25116}
25117
25118type NetworkEndpointGroupsScopedListWarningData struct {
25119	// Key: [Output Only] A key that provides more detail on the warning
25120	// being returned. For example, for warnings where there are no results
25121	// in a list request for a particular zone, this key might be scope and
25122	// the key value might be the zone name. Other examples might be a key
25123	// indicating a deprecated resource and a suggested replacement, or a
25124	// warning about invalid network settings (for example, if an instance
25125	// attempts to perform IP forwarding but is not enabled for IP
25126	// forwarding).
25127	Key string `json:"key,omitempty"`
25128
25129	// Value: [Output Only] A warning data value corresponding to the key.
25130	Value string `json:"value,omitempty"`
25131
25132	// ForceSendFields is a list of field names (e.g. "Key") to
25133	// unconditionally include in API requests. By default, fields with
25134	// empty values are omitted from API requests. However, any non-pointer,
25135	// non-interface field appearing in ForceSendFields will be sent to the
25136	// server regardless of whether the field is empty or not. This may be
25137	// used to include empty fields in Patch requests.
25138	ForceSendFields []string `json:"-"`
25139
25140	// NullFields is a list of field names (e.g. "Key") to include in API
25141	// requests with the JSON null value. By default, fields with empty
25142	// values are omitted from API requests. However, any field with an
25143	// empty value appearing in NullFields will be sent to the server as
25144	// null. It is an error if a field in this list has a non-empty value.
25145	// This may be used to include null fields in Patch requests.
25146	NullFields []string `json:"-"`
25147}
25148
25149func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25150	type NoMethod NetworkEndpointGroupsScopedListWarningData
25151	raw := NoMethod(*s)
25152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25153}
25154
25155type NetworkEndpointWithHealthStatus struct {
25156	// Healths: [Output only] The health status of network endpoint;
25157	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
25158
25159	// NetworkEndpoint: [Output only] The network endpoint;
25160	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
25161
25162	// ForceSendFields is a list of field names (e.g. "Healths") to
25163	// unconditionally include in API requests. By default, fields with
25164	// empty values are omitted from API requests. However, any non-pointer,
25165	// non-interface field appearing in ForceSendFields will be sent to the
25166	// server regardless of whether the field is empty or not. This may be
25167	// used to include empty fields in Patch requests.
25168	ForceSendFields []string `json:"-"`
25169
25170	// NullFields is a list of field names (e.g. "Healths") to include in
25171	// API requests with the JSON null value. By default, fields with empty
25172	// values are omitted from API requests. However, any field with an
25173	// empty value appearing in NullFields will be sent to the server as
25174	// null. It is an error if a field in this list has a non-empty value.
25175	// This may be used to include null fields in Patch requests.
25176	NullFields []string `json:"-"`
25177}
25178
25179func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
25180	type NoMethod NetworkEndpointWithHealthStatus
25181	raw := NoMethod(*s)
25182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25183}
25184
25185// NetworkInterface: A network interface resource attached to an
25186// instance.
25187type NetworkInterface struct {
25188	// AccessConfigs: An array of configurations for this interface.
25189	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
25190	// there are no accessConfigs specified, then this instance will have no
25191	// external internet access.
25192	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
25193
25194	// AliasIpRanges: An array of alias IP ranges for this network
25195	// interface. You can only specify this field for network interfaces in
25196	// VPC networks.
25197	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
25198
25199	// Fingerprint: Fingerprint hash of contents stored in this network
25200	// interface. This field will be ignored when inserting an Instance or
25201	// adding a NetworkInterface. An up-to-date fingerprint must be provided
25202	// in order to update the NetworkInterface, otherwise the request will
25203	// fail with error 412 conditionNotMet.
25204	Fingerprint string `json:"fingerprint,omitempty"`
25205
25206	// Ipv6Address: [Output Only] An IPv6 internal network address for this
25207	// network interface.
25208	Ipv6Address string `json:"ipv6Address,omitempty"`
25209
25210	// Kind: [Output Only] Type of the resource. Always
25211	// compute#networkInterface for network interfaces.
25212	Kind string `json:"kind,omitempty"`
25213
25214	// Name: [Output Only] The name of the network interface, which is
25215	// generated by the server. For network devices, these are eth0, eth1,
25216	// etc.
25217	Name string `json:"name,omitempty"`
25218
25219	// Network: URL of the network resource for this instance. When creating
25220	// an instance, if neither the network nor the subnetwork is specified,
25221	// the default network global/networks/default is used; if the network
25222	// is not specified but the subnetwork is specified, the network is
25223	// inferred.
25224	//
25225	// If you specify this property, you can specify the network as a full
25226	// or partial URL. For example, the following are all valid URLs:
25227	// -
25228	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
25229	// - projects/project/global/networks/network
25230	// - global/networks/default
25231	Network string `json:"network,omitempty"`
25232
25233	// NetworkIP: An IPv4 internal IP address to assign to the instance for
25234	// this network interface. If not specified by the user, an unused
25235	// internal IP is assigned by the system.
25236	NetworkIP string `json:"networkIP,omitempty"`
25237
25238	// Subnetwork: The URL of the Subnetwork resource for this instance. If
25239	// the network resource is in legacy mode, do not specify this field. If
25240	// the network is in auto subnet mode, specifying the subnetwork is
25241	// optional. If the network is in custom subnet mode, specifying the
25242	// subnetwork is required. If you specify this field, you can specify
25243	// the subnetwork as a full or partial URL. For example, the following
25244	// are all valid URLs:
25245	// -
25246	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
25247	// - regions/region/subnetworks/subnetwork
25248	Subnetwork string `json:"subnetwork,omitempty"`
25249
25250	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
25251	// unconditionally include in API requests. By default, fields with
25252	// empty values are omitted from API requests. However, any non-pointer,
25253	// non-interface field appearing in ForceSendFields will be sent to the
25254	// server regardless of whether the field is empty or not. This may be
25255	// used to include empty fields in Patch requests.
25256	ForceSendFields []string `json:"-"`
25257
25258	// NullFields is a list of field names (e.g. "AccessConfigs") to include
25259	// in API requests with the JSON null value. By default, fields with
25260	// empty values are omitted from API requests. However, any field with
25261	// an empty value appearing in NullFields will be sent to the server as
25262	// null. It is an error if a field in this list has a non-empty value.
25263	// This may be used to include null fields in Patch requests.
25264	NullFields []string `json:"-"`
25265}
25266
25267func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
25268	type NoMethod NetworkInterface
25269	raw := NoMethod(*s)
25270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25271}
25272
25273// NetworkList: Contains a list of networks.
25274type NetworkList struct {
25275	// Id: [Output Only] Unique identifier for the resource; defined by the
25276	// server.
25277	Id string `json:"id,omitempty"`
25278
25279	// Items: A list of Network resources.
25280	Items []*Network `json:"items,omitempty"`
25281
25282	// Kind: [Output Only] Type of resource. Always compute#networkList for
25283	// lists of networks.
25284	Kind string `json:"kind,omitempty"`
25285
25286	// NextPageToken: [Output Only] This token allows you to get the next
25287	// page of results for list requests. If the number of results is larger
25288	// than maxResults, use the nextPageToken as a value for the query
25289	// parameter pageToken in the next list request. Subsequent list
25290	// requests will have their own nextPageToken to continue paging through
25291	// the results.
25292	NextPageToken string `json:"nextPageToken,omitempty"`
25293
25294	// SelfLink: [Output Only] Server-defined URL for this resource.
25295	SelfLink string `json:"selfLink,omitempty"`
25296
25297	// Warning: [Output Only] Informational warning message.
25298	Warning *NetworkListWarning `json:"warning,omitempty"`
25299
25300	// ServerResponse contains the HTTP response code and headers from the
25301	// server.
25302	googleapi.ServerResponse `json:"-"`
25303
25304	// ForceSendFields is a list of field names (e.g. "Id") to
25305	// unconditionally include in API requests. By default, fields with
25306	// empty values are omitted from API requests. However, any non-pointer,
25307	// non-interface field appearing in ForceSendFields will be sent to the
25308	// server regardless of whether the field is empty or not. This may be
25309	// used to include empty fields in Patch requests.
25310	ForceSendFields []string `json:"-"`
25311
25312	// NullFields is a list of field names (e.g. "Id") to include in API
25313	// requests with the JSON null value. By default, fields with empty
25314	// values are omitted from API requests. However, any field with an
25315	// empty value appearing in NullFields will be sent to the server as
25316	// null. It is an error if a field in this list has a non-empty value.
25317	// This may be used to include null fields in Patch requests.
25318	NullFields []string `json:"-"`
25319}
25320
25321func (s *NetworkList) MarshalJSON() ([]byte, error) {
25322	type NoMethod NetworkList
25323	raw := NoMethod(*s)
25324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25325}
25326
25327// NetworkListWarning: [Output Only] Informational warning message.
25328type NetworkListWarning struct {
25329	// Code: [Output Only] A warning code, if applicable. For example,
25330	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25331	// the response.
25332	//
25333	// Possible values:
25334	//   "CLEANUP_FAILED"
25335	//   "DEPRECATED_RESOURCE_USED"
25336	//   "DEPRECATED_TYPE_USED"
25337	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25338	//   "EXPERIMENTAL_TYPE_USED"
25339	//   "EXTERNAL_API_WARNING"
25340	//   "FIELD_VALUE_OVERRIDEN"
25341	//   "INJECTED_KERNELS_DEPRECATED"
25342	//   "MISSING_TYPE_DEPENDENCY"
25343	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25344	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25345	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25346	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25347	//   "NEXT_HOP_NOT_RUNNING"
25348	//   "NOT_CRITICAL_ERROR"
25349	//   "NO_RESULTS_ON_PAGE"
25350	//   "PARTIAL_SUCCESS"
25351	//   "REQUIRED_TOS_AGREEMENT"
25352	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25353	//   "RESOURCE_NOT_DELETED"
25354	//   "SCHEMA_VALIDATION_IGNORED"
25355	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25356	//   "UNDECLARED_PROPERTIES"
25357	//   "UNREACHABLE"
25358	Code string `json:"code,omitempty"`
25359
25360	// Data: [Output Only] Metadata about this warning in key: value format.
25361	// For example:
25362	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25363	Data []*NetworkListWarningData `json:"data,omitempty"`
25364
25365	// Message: [Output Only] A human-readable description of the warning
25366	// code.
25367	Message string `json:"message,omitempty"`
25368
25369	// ForceSendFields is a list of field names (e.g. "Code") to
25370	// unconditionally include in API requests. By default, fields with
25371	// empty values are omitted from API requests. However, any non-pointer,
25372	// non-interface field appearing in ForceSendFields will be sent to the
25373	// server regardless of whether the field is empty or not. This may be
25374	// used to include empty fields in Patch requests.
25375	ForceSendFields []string `json:"-"`
25376
25377	// NullFields is a list of field names (e.g. "Code") to include in API
25378	// requests with the JSON null value. By default, fields with empty
25379	// values are omitted from API requests. However, any field with an
25380	// empty value appearing in NullFields will be sent to the server as
25381	// null. It is an error if a field in this list has a non-empty value.
25382	// This may be used to include null fields in Patch requests.
25383	NullFields []string `json:"-"`
25384}
25385
25386func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
25387	type NoMethod NetworkListWarning
25388	raw := NoMethod(*s)
25389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25390}
25391
25392type NetworkListWarningData struct {
25393	// Key: [Output Only] A key that provides more detail on the warning
25394	// being returned. For example, for warnings where there are no results
25395	// in a list request for a particular zone, this key might be scope and
25396	// the key value might be the zone name. Other examples might be a key
25397	// indicating a deprecated resource and a suggested replacement, or a
25398	// warning about invalid network settings (for example, if an instance
25399	// attempts to perform IP forwarding but is not enabled for IP
25400	// forwarding).
25401	Key string `json:"key,omitempty"`
25402
25403	// Value: [Output Only] A warning data value corresponding to the key.
25404	Value string `json:"value,omitempty"`
25405
25406	// ForceSendFields is a list of field names (e.g. "Key") to
25407	// unconditionally include in API requests. By default, fields with
25408	// empty values are omitted from API requests. However, any non-pointer,
25409	// non-interface field appearing in ForceSendFields will be sent to the
25410	// server regardless of whether the field is empty or not. This may be
25411	// used to include empty fields in Patch requests.
25412	ForceSendFields []string `json:"-"`
25413
25414	// NullFields is a list of field names (e.g. "Key") to include in API
25415	// requests with the JSON null value. By default, fields with empty
25416	// values are omitted from API requests. However, any field with an
25417	// empty value appearing in NullFields will be sent to the server as
25418	// null. It is an error if a field in this list has a non-empty value.
25419	// This may be used to include null fields in Patch requests.
25420	NullFields []string `json:"-"`
25421}
25422
25423func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
25424	type NoMethod NetworkListWarningData
25425	raw := NoMethod(*s)
25426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25427}
25428
25429// NetworkPeering: A network peering attached to a network resource. The
25430// message includes the peering name, peer network, peering state, and a
25431// flag indicating whether Google Compute Engine should automatically
25432// create routes for the peering.
25433type NetworkPeering struct {
25434	// AdvertisePeerSubnetsViaRouters: Whether Cloud Routers in this network
25435	// can automatically advertise subnets from the peer network.
25436	AdvertisePeerSubnetsViaRouters bool `json:"advertisePeerSubnetsViaRouters,omitempty"`
25437
25438	// AutoCreateRoutes: This field will be deprecated soon. Use the
25439	// exchange_subnet_routes field instead. Indicates whether full mesh
25440	// connectivity is created and managed automatically between peered
25441	// networks. Currently this field should always be true since Google
25442	// Compute Engine will automatically create and manage subnetwork routes
25443	// between two networks when peering state is ACTIVE.
25444	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25445
25446	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
25447	// created and managed automatically between peered networks. Currently
25448	// this field should always be true since Google Compute Engine will
25449	// automatically create and manage subnetwork routes between two
25450	// networks when peering state is ACTIVE.
25451	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
25452
25453	// ExportCustomRoutes: Whether to export the custom routes to peer
25454	// network.
25455	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
25456
25457	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25458	// range are exported. The default value is true, all subnet routes are
25459	// exported. The IPv4 special-use ranges
25460	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
25461	// exported to peers and are not controlled by this field.
25462	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
25463
25464	// ImportCustomRoutes: Whether to import the custom routes from peer
25465	// network.
25466	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
25467
25468	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25469	// range are imported. The default value is false. The IPv4 special-use
25470	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
25471	// always imported from peers and are not controlled by this field.
25472	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
25473
25474	// Name: Name of this peering. Provided by the client when the peering
25475	// is created. The name must comply with RFC1035. Specifically, the name
25476	// must be 1-63 characters long and match regular expression
25477	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
25478	// letter, and all the following characters must be a dash, lowercase
25479	// letter, or digit, except the last character, which cannot be a dash.
25480	Name string `json:"name,omitempty"`
25481
25482	// Network: The URL of the peer network. It can be either full URL or
25483	// partial URL. The peer network may belong to a different project. If
25484	// the partial URL does not contain project, it is assumed that the peer
25485	// network is in the same project as the current network.
25486	Network string `json:"network,omitempty"`
25487
25488	// PeerMtu: Maximum Transmission Unit in bytes.
25489	PeerMtu int64 `json:"peerMtu,omitempty"`
25490
25491	// State: [Output Only] State for the peering, either `ACTIVE` or
25492	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
25493	// configuration in the peer network.
25494	//
25495	// Possible values:
25496	//   "ACTIVE"
25497	//   "INACTIVE"
25498	State string `json:"state,omitempty"`
25499
25500	// StateDetails: [Output Only] Details about the current state of the
25501	// peering.
25502	StateDetails string `json:"stateDetails,omitempty"`
25503
25504	// ForceSendFields is a list of field names (e.g.
25505	// "AdvertisePeerSubnetsViaRouters") to unconditionally include in API
25506	// requests. By default, fields with empty values are omitted from API
25507	// requests. However, any non-pointer, non-interface field appearing in
25508	// ForceSendFields will be sent to the server regardless of whether the
25509	// field is empty or not. This may be used to include empty fields in
25510	// Patch requests.
25511	ForceSendFields []string `json:"-"`
25512
25513	// NullFields is a list of field names (e.g.
25514	// "AdvertisePeerSubnetsViaRouters") to include in API requests with the
25515	// JSON null value. By default, fields with empty values are omitted
25516	// from API requests. However, any field with an empty value appearing
25517	// in NullFields will be sent to the server as null. It is an error if a
25518	// field in this list has a non-empty value. This may be used to include
25519	// null fields in Patch requests.
25520	NullFields []string `json:"-"`
25521}
25522
25523func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
25524	type NoMethod NetworkPeering
25525	raw := NoMethod(*s)
25526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25527}
25528
25529// NetworkRoutingConfig: A routing configuration attached to a network
25530// resource. The message includes the list of routers associated with
25531// the network, and a flag indicating the type of routing behavior to
25532// enforce network-wide.
25533type NetworkRoutingConfig struct {
25534	// RoutingMode: The network-wide routing mode to use. If set to
25535	// REGIONAL, this network's Cloud Routers will only advertise routes
25536	// with subnets of this network in the same region as the router. If set
25537	// to GLOBAL, this network's Cloud Routers will advertise routes with
25538	// all subnets of this network, across regions.
25539	//
25540	// Possible values:
25541	//   "GLOBAL"
25542	//   "REGIONAL"
25543	RoutingMode string `json:"routingMode,omitempty"`
25544
25545	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
25546	// unconditionally include in API requests. By default, fields with
25547	// empty values are omitted from API requests. However, any non-pointer,
25548	// non-interface field appearing in ForceSendFields will be sent to the
25549	// server regardless of whether the field is empty or not. This may be
25550	// used to include empty fields in Patch requests.
25551	ForceSendFields []string `json:"-"`
25552
25553	// NullFields is a list of field names (e.g. "RoutingMode") to include
25554	// in API requests with the JSON null value. By default, fields with
25555	// empty values are omitted from API requests. However, any field with
25556	// an empty value appearing in NullFields will be sent to the server as
25557	// null. It is an error if a field in this list has a non-empty value.
25558	// This may be used to include null fields in Patch requests.
25559	NullFields []string `json:"-"`
25560}
25561
25562func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
25563	type NoMethod NetworkRoutingConfig
25564	raw := NoMethod(*s)
25565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25566}
25567
25568type NetworksAddPeeringRequest struct {
25569	// AutoCreateRoutes: This field will be deprecated soon. Use
25570	// exchange_subnet_routes in network_peering instead. Indicates whether
25571	// full mesh connectivity is created and managed automatically between
25572	// peered networks. Currently this field should always be true since
25573	// Google Compute Engine will automatically create and manage subnetwork
25574	// routes between two networks when peering state is ACTIVE.
25575	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25576
25577	// ExportCustomRoutes: This field will be deprecated soon. Use
25578	// export_custom_routes in network_peering instead. Whether to export
25579	// the custom routes to peer network.
25580	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
25581
25582	// ImportCustomRoutes: This field will be deprecated soon. Use
25583	// import_custom_routes in network_peering instead. Whether to import
25584	// the custom routes from peer network.
25585	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
25586
25587	// Name: Name of the peering, which should conform to RFC1035.
25588	Name string `json:"name,omitempty"`
25589
25590	// NetworkPeering: Network peering parameters. In order to specify route
25591	// policies for peering using import and export custom routes, you must
25592	// specify all peering related parameters (name, peer network,
25593	// exchange_subnet_routes) in the network_peering field. The
25594	// corresponding fields in NetworksAddPeeringRequest will be deprecated
25595	// soon.
25596	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
25597
25598	// PeerNetwork: URL of the peer network. It can be either full URL or
25599	// partial URL. The peer network may belong to a different project. If
25600	// the partial URL does not contain project, it is assumed that the peer
25601	// network is in the same project as the current network.
25602	PeerNetwork string `json:"peerNetwork,omitempty"`
25603
25604	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
25605	// unconditionally include in API requests. By default, fields with
25606	// empty values are omitted from API requests. However, any non-pointer,
25607	// non-interface field appearing in ForceSendFields will be sent to the
25608	// server regardless of whether the field is empty or not. This may be
25609	// used to include empty fields in Patch requests.
25610	ForceSendFields []string `json:"-"`
25611
25612	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
25613	// include in API requests with the JSON null value. By default, fields
25614	// with empty values are omitted from API requests. However, any field
25615	// with an empty value appearing in NullFields will be sent to the
25616	// server as null. It is an error if a field in this list has a
25617	// non-empty value. This may be used to include null fields in Patch
25618	// requests.
25619	NullFields []string `json:"-"`
25620}
25621
25622func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
25623	type NoMethod NetworksAddPeeringRequest
25624	raw := NoMethod(*s)
25625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25626}
25627
25628type NetworksGetEffectiveFirewallsResponse struct {
25629	// Firewalls: Effective firewalls on the network.
25630	Firewalls []*Firewall `json:"firewalls,omitempty"`
25631
25632	// OrganizationFirewalls: Effective firewalls from organization
25633	// policies.
25634	OrganizationFirewalls []*NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
25635
25636	// ServerResponse contains the HTTP response code and headers from the
25637	// server.
25638	googleapi.ServerResponse `json:"-"`
25639
25640	// ForceSendFields is a list of field names (e.g. "Firewalls") to
25641	// unconditionally include in API requests. By default, fields with
25642	// empty values are omitted from API requests. However, any non-pointer,
25643	// non-interface field appearing in ForceSendFields will be sent to the
25644	// server regardless of whether the field is empty or not. This may be
25645	// used to include empty fields in Patch requests.
25646	ForceSendFields []string `json:"-"`
25647
25648	// NullFields is a list of field names (e.g. "Firewalls") to include in
25649	// API requests with the JSON null value. By default, fields with empty
25650	// values are omitted from API requests. However, any field with an
25651	// empty value appearing in NullFields will be sent to the server as
25652	// null. It is an error if a field in this list has a non-empty value.
25653	// This may be used to include null fields in Patch requests.
25654	NullFields []string `json:"-"`
25655}
25656
25657func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
25658	type NoMethod NetworksGetEffectiveFirewallsResponse
25659	raw := NoMethod(*s)
25660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25661}
25662
25663// NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
25664// pruned SecurityPolicy containing ID and any applicable firewall
25665// rules.
25666type NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
25667	// Id: [Output Only] The unique identifier for the security policy. This
25668	// identifier is defined by the server.
25669	Id uint64 `json:"id,omitempty,string"`
25670
25671	// Rules: The rules that apply to the network.
25672	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
25673
25674	// ForceSendFields is a list of field names (e.g. "Id") to
25675	// unconditionally include in API requests. By default, fields with
25676	// empty values are omitted from API requests. However, any non-pointer,
25677	// non-interface field appearing in ForceSendFields will be sent to the
25678	// server regardless of whether the field is empty or not. This may be
25679	// used to include empty fields in Patch requests.
25680	ForceSendFields []string `json:"-"`
25681
25682	// NullFields is a list of field names (e.g. "Id") to include in API
25683	// requests with the JSON null value. By default, fields with empty
25684	// values are omitted from API requests. However, any field with an
25685	// empty value appearing in NullFields will be sent to the server as
25686	// null. It is an error if a field in this list has a non-empty value.
25687	// This may be used to include null fields in Patch requests.
25688	NullFields []string `json:"-"`
25689}
25690
25691func (s *NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
25692	type NoMethod NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
25693	raw := NoMethod(*s)
25694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25695}
25696
25697type NetworksRemovePeeringRequest struct {
25698	// Name: Name of the peering, which should conform to RFC1035.
25699	Name string `json:"name,omitempty"`
25700
25701	// ForceSendFields is a list of field names (e.g. "Name") to
25702	// unconditionally include in API requests. By default, fields with
25703	// empty values are omitted from API requests. However, any non-pointer,
25704	// non-interface field appearing in ForceSendFields will be sent to the
25705	// server regardless of whether the field is empty or not. This may be
25706	// used to include empty fields in Patch requests.
25707	ForceSendFields []string `json:"-"`
25708
25709	// NullFields is a list of field names (e.g. "Name") to include in API
25710	// requests with the JSON null value. By default, fields with empty
25711	// values are omitted from API requests. However, any field with an
25712	// empty value appearing in NullFields will be sent to the server as
25713	// null. It is an error if a field in this list has a non-empty value.
25714	// This may be used to include null fields in Patch requests.
25715	NullFields []string `json:"-"`
25716}
25717
25718func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
25719	type NoMethod NetworksRemovePeeringRequest
25720	raw := NoMethod(*s)
25721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25722}
25723
25724type NetworksUpdatePeeringRequest struct {
25725	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
25726
25727	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
25728	// unconditionally include in API requests. By default, fields with
25729	// empty values are omitted from API requests. However, any non-pointer,
25730	// non-interface field appearing in ForceSendFields will be sent to the
25731	// server regardless of whether the field is empty or not. This may be
25732	// used to include empty fields in Patch requests.
25733	ForceSendFields []string `json:"-"`
25734
25735	// NullFields is a list of field names (e.g. "NetworkPeering") to
25736	// include in API requests with the JSON null value. By default, fields
25737	// with empty values are omitted from API requests. However, any field
25738	// with an empty value appearing in NullFields will be sent to the
25739	// server as null. It is an error if a field in this list has a
25740	// non-empty value. This may be used to include null fields in Patch
25741	// requests.
25742	NullFields []string `json:"-"`
25743}
25744
25745func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
25746	type NoMethod NetworksUpdatePeeringRequest
25747	raw := NoMethod(*s)
25748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25749}
25750
25751// NodeGroup: Represent a sole-tenant Node Group resource.
25752//
25753// A sole-tenant node is a physical server that is dedicated to hosting
25754// VM instances only for your specific project. Use sole-tenant nodes to
25755// keep your instances physically separated from instances in other
25756// projects, or to group your instances together on the same host
25757// hardware. For more information, read Sole-tenant nodes. (==
25758// resource_for {$api_version}.nodeGroups ==)
25759type NodeGroup struct {
25760	// AutoscalingPolicy: Specifies how autoscaling should behave.
25761	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
25762
25763	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25764	// format.
25765	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25766
25767	// Description: An optional description of this resource. Provide this
25768	// property when you create the resource.
25769	Description string `json:"description,omitempty"`
25770
25771	Fingerprint string `json:"fingerprint,omitempty"`
25772
25773	// Id: [Output Only] The unique identifier for the resource. This
25774	// identifier is defined by the server.
25775	Id uint64 `json:"id,omitempty,string"`
25776
25777	// Kind: [Output Only] The type of the resource. Always
25778	// compute#nodeGroup for node group.
25779	Kind string `json:"kind,omitempty"`
25780
25781	// LocationHint: An opaque location hint used to place the Node close to
25782	// other resources. This field is for use by internal tools that use the
25783	// public API. The location hint here on the NodeGroup overrides any
25784	// location_hint present in the NodeTemplate.
25785	LocationHint string `json:"locationHint,omitempty"`
25786
25787	// MaintenancePolicy: Specifies how to handle instances when a node in
25788	// the group undergoes maintenance.
25789	//
25790	// Possible values:
25791	//   "DEFAULT"
25792	//   "MAINTENANCE_POLICY_UNSPECIFIED"
25793	//   "MIGRATE_WITHIN_NODE_GROUP"
25794	//   "RESTART_IN_PLACE"
25795	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
25796
25797	MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"`
25798
25799	// Name: The name of the resource, provided by the client when initially
25800	// creating the resource. The resource name must be 1-63 characters
25801	// long, and comply with RFC1035. Specifically, the name must be 1-63
25802	// characters long and match the regular expression
25803	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
25804	// a lowercase letter, and all following characters must be a dash,
25805	// lowercase letter, or digit, except the last character, which cannot
25806	// be a dash.
25807	Name string `json:"name,omitempty"`
25808
25809	// NodeTemplate: The URL of the node template to which this node group
25810	// belongs.
25811	NodeTemplate string `json:"nodeTemplate,omitempty"`
25812
25813	// SelfLink: [Output Only] Server-defined URL for the resource.
25814	SelfLink string `json:"selfLink,omitempty"`
25815
25816	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
25817	// with the resource id.
25818	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
25819
25820	// Size: [Output Only] The total number of nodes in the node group.
25821	Size int64 `json:"size,omitempty"`
25822
25823	// Possible values:
25824	//   "CREATING"
25825	//   "DELETING"
25826	//   "INVALID"
25827	//   "READY"
25828	Status string `json:"status,omitempty"`
25829
25830	// Zone: [Output Only] The name of the zone where the node group
25831	// resides, such as us-central1-a.
25832	Zone string `json:"zone,omitempty"`
25833
25834	// ServerResponse contains the HTTP response code and headers from the
25835	// server.
25836	googleapi.ServerResponse `json:"-"`
25837
25838	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
25839	// to unconditionally include in API requests. By default, fields with
25840	// empty values are omitted from API requests. However, any non-pointer,
25841	// non-interface field appearing in ForceSendFields will be sent to the
25842	// server regardless of whether the field is empty or not. This may be
25843	// used to include empty fields in Patch requests.
25844	ForceSendFields []string `json:"-"`
25845
25846	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
25847	// include in API requests with the JSON null value. By default, fields
25848	// with empty values are omitted from API requests. However, any field
25849	// with an empty value appearing in NullFields will be sent to the
25850	// server as null. It is an error if a field in this list has a
25851	// non-empty value. This may be used to include null fields in Patch
25852	// requests.
25853	NullFields []string `json:"-"`
25854}
25855
25856func (s *NodeGroup) MarshalJSON() ([]byte, error) {
25857	type NoMethod NodeGroup
25858	raw := NoMethod(*s)
25859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25860}
25861
25862type NodeGroupAggregatedList struct {
25863	// Id: [Output Only] Unique identifier for the resource; defined by the
25864	// server.
25865	Id string `json:"id,omitempty"`
25866
25867	// Items: A list of NodeGroupsScopedList resources.
25868	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
25869
25870	// Kind: [Output Only] Type of resource.Always
25871	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
25872	Kind string `json:"kind,omitempty"`
25873
25874	// NextPageToken: [Output Only] This token allows you to get the next
25875	// page of results for list requests. If the number of results is larger
25876	// than maxResults, use the nextPageToken as a value for the query
25877	// parameter pageToken in the next list request. Subsequent list
25878	// requests will have their own nextPageToken to continue paging through
25879	// the results.
25880	NextPageToken string `json:"nextPageToken,omitempty"`
25881
25882	// SelfLink: [Output Only] Server-defined URL for this resource.
25883	SelfLink string `json:"selfLink,omitempty"`
25884
25885	// Unreachables: [Output Only] Unreachable resources.
25886	Unreachables []string `json:"unreachables,omitempty"`
25887
25888	// Warning: [Output Only] Informational warning message.
25889	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
25890
25891	// ServerResponse contains the HTTP response code and headers from the
25892	// server.
25893	googleapi.ServerResponse `json:"-"`
25894
25895	// ForceSendFields is a list of field names (e.g. "Id") to
25896	// unconditionally include in API requests. By default, fields with
25897	// empty values are omitted from API requests. However, any non-pointer,
25898	// non-interface field appearing in ForceSendFields will be sent to the
25899	// server regardless of whether the field is empty or not. This may be
25900	// used to include empty fields in Patch requests.
25901	ForceSendFields []string `json:"-"`
25902
25903	// NullFields is a list of field names (e.g. "Id") to include in API
25904	// requests with the JSON null value. By default, fields with empty
25905	// values are omitted from API requests. However, any field with an
25906	// empty value appearing in NullFields will be sent to the server as
25907	// null. It is an error if a field in this list has a non-empty value.
25908	// This may be used to include null fields in Patch requests.
25909	NullFields []string `json:"-"`
25910}
25911
25912func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
25913	type NoMethod NodeGroupAggregatedList
25914	raw := NoMethod(*s)
25915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25916}
25917
25918// NodeGroupAggregatedListWarning: [Output Only] Informational warning
25919// message.
25920type NodeGroupAggregatedListWarning struct {
25921	// Code: [Output Only] A warning code, if applicable. For example,
25922	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25923	// the response.
25924	//
25925	// Possible values:
25926	//   "CLEANUP_FAILED"
25927	//   "DEPRECATED_RESOURCE_USED"
25928	//   "DEPRECATED_TYPE_USED"
25929	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25930	//   "EXPERIMENTAL_TYPE_USED"
25931	//   "EXTERNAL_API_WARNING"
25932	//   "FIELD_VALUE_OVERRIDEN"
25933	//   "INJECTED_KERNELS_DEPRECATED"
25934	//   "MISSING_TYPE_DEPENDENCY"
25935	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25936	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25937	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25938	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25939	//   "NEXT_HOP_NOT_RUNNING"
25940	//   "NOT_CRITICAL_ERROR"
25941	//   "NO_RESULTS_ON_PAGE"
25942	//   "PARTIAL_SUCCESS"
25943	//   "REQUIRED_TOS_AGREEMENT"
25944	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25945	//   "RESOURCE_NOT_DELETED"
25946	//   "SCHEMA_VALIDATION_IGNORED"
25947	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25948	//   "UNDECLARED_PROPERTIES"
25949	//   "UNREACHABLE"
25950	Code string `json:"code,omitempty"`
25951
25952	// Data: [Output Only] Metadata about this warning in key: value format.
25953	// For example:
25954	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25955	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
25956
25957	// Message: [Output Only] A human-readable description of the warning
25958	// code.
25959	Message string `json:"message,omitempty"`
25960
25961	// ForceSendFields is a list of field names (e.g. "Code") to
25962	// unconditionally include in API requests. By default, fields with
25963	// empty values are omitted from API requests. However, any non-pointer,
25964	// non-interface field appearing in ForceSendFields will be sent to the
25965	// server regardless of whether the field is empty or not. This may be
25966	// used to include empty fields in Patch requests.
25967	ForceSendFields []string `json:"-"`
25968
25969	// NullFields is a list of field names (e.g. "Code") to include in API
25970	// requests with the JSON null value. By default, fields with empty
25971	// values are omitted from API requests. However, any field with an
25972	// empty value appearing in NullFields will be sent to the server as
25973	// null. It is an error if a field in this list has a non-empty value.
25974	// This may be used to include null fields in Patch requests.
25975	NullFields []string `json:"-"`
25976}
25977
25978func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
25979	type NoMethod NodeGroupAggregatedListWarning
25980	raw := NoMethod(*s)
25981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25982}
25983
25984type NodeGroupAggregatedListWarningData struct {
25985	// Key: [Output Only] A key that provides more detail on the warning
25986	// being returned. For example, for warnings where there are no results
25987	// in a list request for a particular zone, this key might be scope and
25988	// the key value might be the zone name. Other examples might be a key
25989	// indicating a deprecated resource and a suggested replacement, or a
25990	// warning about invalid network settings (for example, if an instance
25991	// attempts to perform IP forwarding but is not enabled for IP
25992	// forwarding).
25993	Key string `json:"key,omitempty"`
25994
25995	// Value: [Output Only] A warning data value corresponding to the key.
25996	Value string `json:"value,omitempty"`
25997
25998	// ForceSendFields is a list of field names (e.g. "Key") to
25999	// unconditionally include in API requests. By default, fields with
26000	// empty values are omitted from API requests. However, any non-pointer,
26001	// non-interface field appearing in ForceSendFields will be sent to the
26002	// server regardless of whether the field is empty or not. This may be
26003	// used to include empty fields in Patch requests.
26004	ForceSendFields []string `json:"-"`
26005
26006	// NullFields is a list of field names (e.g. "Key") to include in API
26007	// requests with the JSON null value. By default, fields with empty
26008	// values are omitted from API requests. However, any field with an
26009	// 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 *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26016	type NoMethod NodeGroupAggregatedListWarningData
26017	raw := NoMethod(*s)
26018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26019}
26020
26021type NodeGroupAutoscalingPolicy struct {
26022	// MaxNodes: The maximum number of nodes that the group should have.
26023	MaxNodes int64 `json:"maxNodes,omitempty"`
26024
26025	// MinNodes: The minimum number of nodes that the group should have.
26026	MinNodes int64 `json:"minNodes,omitempty"`
26027
26028	// Mode: The autoscaling mode.
26029	//
26030	// Possible values:
26031	//   "MODE_UNSPECIFIED"
26032	//   "OFF"
26033	//   "ON"
26034	//   "ONLY_SCALE_OUT"
26035	Mode string `json:"mode,omitempty"`
26036
26037	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
26038	// unconditionally include in API requests. By default, fields with
26039	// empty values are omitted from API requests. However, any non-pointer,
26040	// non-interface field appearing in ForceSendFields will be sent to the
26041	// server regardless of whether the field is empty or not. This may be
26042	// used to include empty fields in Patch requests.
26043	ForceSendFields []string `json:"-"`
26044
26045	// NullFields is a list of field names (e.g. "MaxNodes") to include in
26046	// API requests with the JSON null value. By default, fields with empty
26047	// values are omitted from API requests. However, any field with an
26048	// empty value appearing in NullFields will be sent to the server as
26049	// null. It is an error if a field in this list has a non-empty value.
26050	// This may be used to include null fields in Patch requests.
26051	NullFields []string `json:"-"`
26052}
26053
26054func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
26055	type NoMethod NodeGroupAutoscalingPolicy
26056	raw := NoMethod(*s)
26057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26058}
26059
26060// NodeGroupList: Contains a list of nodeGroups.
26061type NodeGroupList struct {
26062	// Id: [Output Only] Unique identifier for the resource; defined by the
26063	// server.
26064	Id string `json:"id,omitempty"`
26065
26066	// Items: A list of NodeGroup resources.
26067	Items []*NodeGroup `json:"items,omitempty"`
26068
26069	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
26070	// lists of node groups.
26071	Kind string `json:"kind,omitempty"`
26072
26073	// NextPageToken: [Output Only] This token allows you to get the next
26074	// page of results for list requests. If the number of results is larger
26075	// than maxResults, use the nextPageToken as a value for the query
26076	// parameter pageToken in the next list request. Subsequent list
26077	// requests will have their own nextPageToken to continue paging through
26078	// the results.
26079	NextPageToken string `json:"nextPageToken,omitempty"`
26080
26081	// SelfLink: [Output Only] Server-defined URL for this resource.
26082	SelfLink string `json:"selfLink,omitempty"`
26083
26084	// Warning: [Output Only] Informational warning message.
26085	Warning *NodeGroupListWarning `json:"warning,omitempty"`
26086
26087	// ServerResponse contains the HTTP response code and headers from the
26088	// server.
26089	googleapi.ServerResponse `json:"-"`
26090
26091	// ForceSendFields is a list of field names (e.g. "Id") to
26092	// unconditionally include in API requests. By default, fields with
26093	// empty values are omitted from API requests. However, any non-pointer,
26094	// non-interface field appearing in ForceSendFields will be sent to the
26095	// server regardless of whether the field is empty or not. This may be
26096	// used to include empty fields in Patch requests.
26097	ForceSendFields []string `json:"-"`
26098
26099	// NullFields is a list of field names (e.g. "Id") to include in API
26100	// requests with the JSON null value. By default, fields with empty
26101	// values are omitted from API requests. However, any field with an
26102	// empty value appearing in NullFields will be sent to the server as
26103	// null. It is an error if a field in this list has a non-empty value.
26104	// This may be used to include null fields in Patch requests.
26105	NullFields []string `json:"-"`
26106}
26107
26108func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
26109	type NoMethod NodeGroupList
26110	raw := NoMethod(*s)
26111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26112}
26113
26114// NodeGroupListWarning: [Output Only] Informational warning message.
26115type NodeGroupListWarning struct {
26116	// Code: [Output Only] A warning code, if applicable. For example,
26117	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26118	// the response.
26119	//
26120	// Possible values:
26121	//   "CLEANUP_FAILED"
26122	//   "DEPRECATED_RESOURCE_USED"
26123	//   "DEPRECATED_TYPE_USED"
26124	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26125	//   "EXPERIMENTAL_TYPE_USED"
26126	//   "EXTERNAL_API_WARNING"
26127	//   "FIELD_VALUE_OVERRIDEN"
26128	//   "INJECTED_KERNELS_DEPRECATED"
26129	//   "MISSING_TYPE_DEPENDENCY"
26130	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26131	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26132	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26133	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26134	//   "NEXT_HOP_NOT_RUNNING"
26135	//   "NOT_CRITICAL_ERROR"
26136	//   "NO_RESULTS_ON_PAGE"
26137	//   "PARTIAL_SUCCESS"
26138	//   "REQUIRED_TOS_AGREEMENT"
26139	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26140	//   "RESOURCE_NOT_DELETED"
26141	//   "SCHEMA_VALIDATION_IGNORED"
26142	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26143	//   "UNDECLARED_PROPERTIES"
26144	//   "UNREACHABLE"
26145	Code string `json:"code,omitempty"`
26146
26147	// Data: [Output Only] Metadata about this warning in key: value format.
26148	// For example:
26149	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26150	Data []*NodeGroupListWarningData `json:"data,omitempty"`
26151
26152	// Message: [Output Only] A human-readable description of the warning
26153	// code.
26154	Message string `json:"message,omitempty"`
26155
26156	// ForceSendFields is a list of field names (e.g. "Code") to
26157	// unconditionally include in API requests. By default, fields with
26158	// empty values are omitted from API requests. However, any non-pointer,
26159	// non-interface field appearing in ForceSendFields will be sent to the
26160	// server regardless of whether the field is empty or not. This may be
26161	// used to include empty fields in Patch requests.
26162	ForceSendFields []string `json:"-"`
26163
26164	// NullFields is a list of field names (e.g. "Code") to include in API
26165	// requests with the JSON null value. By default, fields with empty
26166	// values are omitted from API requests. However, any field with an
26167	// empty value appearing in NullFields will be sent to the server as
26168	// null. It is an error if a field in this list has a non-empty value.
26169	// This may be used to include null fields in Patch requests.
26170	NullFields []string `json:"-"`
26171}
26172
26173func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
26174	type NoMethod NodeGroupListWarning
26175	raw := NoMethod(*s)
26176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26177}
26178
26179type NodeGroupListWarningData struct {
26180	// Key: [Output Only] A key that provides more detail on the warning
26181	// being returned. For example, for warnings where there are no results
26182	// in a list request for a particular zone, this key might be scope and
26183	// the key value might be the zone name. Other examples might be a key
26184	// indicating a deprecated resource and a suggested replacement, or a
26185	// warning about invalid network settings (for example, if an instance
26186	// attempts to perform IP forwarding but is not enabled for IP
26187	// forwarding).
26188	Key string `json:"key,omitempty"`
26189
26190	// Value: [Output Only] A warning data value corresponding to the key.
26191	Value string `json:"value,omitempty"`
26192
26193	// ForceSendFields is a list of field names (e.g. "Key") to
26194	// unconditionally include in API requests. By default, fields with
26195	// empty values are omitted from API requests. However, any non-pointer,
26196	// non-interface field appearing in ForceSendFields will be sent to the
26197	// server regardless of whether the field is empty or not. This may be
26198	// used to include empty fields in Patch requests.
26199	ForceSendFields []string `json:"-"`
26200
26201	// NullFields is a list of field names (e.g. "Key") to include in API
26202	// requests with the JSON null value. By default, fields with empty
26203	// values are omitted from API requests. However, any field with an
26204	// empty value appearing in NullFields will be sent to the server as
26205	// null. It is an error if a field in this list has a non-empty value.
26206	// This may be used to include null fields in Patch requests.
26207	NullFields []string `json:"-"`
26208}
26209
26210func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
26211	type NoMethod NodeGroupListWarningData
26212	raw := NoMethod(*s)
26213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26214}
26215
26216// NodeGroupMaintenanceWindow: Time window specified for daily
26217// maintenance operations. GCE's internal maintenance will be performed
26218// within this window.
26219type NodeGroupMaintenanceWindow struct {
26220	// Duration: [Output only] A predetermined duration for the window,
26221	// automatically chosen to be the smallest possible in the given
26222	// scenario.
26223	Duration string `json:"duration,omitempty"`
26224
26225	// StartTime: Start time of the window. This must be in UTC format that
26226	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
26227	// example, both 13:00-5 and 08:00 are valid.
26228	StartTime string `json:"startTime,omitempty"`
26229
26230	// ForceSendFields is a list of field names (e.g. "Duration") to
26231	// unconditionally include in API requests. By default, fields with
26232	// empty values are omitted from API requests. However, any non-pointer,
26233	// non-interface field appearing in ForceSendFields will be sent to the
26234	// server regardless of whether the field is empty or not. This may be
26235	// used to include empty fields in Patch requests.
26236	ForceSendFields []string `json:"-"`
26237
26238	// NullFields is a list of field names (e.g. "Duration") to include in
26239	// API requests with the JSON null value. By default, fields with empty
26240	// values are omitted from API requests. However, any field with an
26241	// empty value appearing in NullFields will be sent to the server as
26242	// null. It is an error if a field in this list has a non-empty value.
26243	// This may be used to include null fields in Patch requests.
26244	NullFields []string `json:"-"`
26245}
26246
26247func (s *NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) {
26248	type NoMethod NodeGroupMaintenanceWindow
26249	raw := NoMethod(*s)
26250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26251}
26252
26253type NodeGroupNode struct {
26254	// Accelerators: Accelerators for this node.
26255	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
26256
26257	// CpuOvercommitType: CPU overcommit.
26258	//
26259	// Possible values:
26260	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
26261	//   "ENABLED"
26262	//   "NONE"
26263	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
26264
26265	// Disks: Local disk configurations.
26266	Disks []*LocalDisk `json:"disks,omitempty"`
26267
26268	// Instances: Instances scheduled on this node.
26269	Instances []string `json:"instances,omitempty"`
26270
26271	// Name: The name of the node.
26272	Name string `json:"name,omitempty"`
26273
26274	// NodeType: The type of this node.
26275	NodeType string `json:"nodeType,omitempty"`
26276
26277	// ServerBinding: Binding properties for the physical server.
26278	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
26279
26280	// ServerId: Server ID associated with this node.
26281	ServerId string `json:"serverId,omitempty"`
26282
26283	// Possible values:
26284	//   "CREATING"
26285	//   "DELETING"
26286	//   "INVALID"
26287	//   "READY"
26288	//   "REPAIRING"
26289	Status string `json:"status,omitempty"`
26290
26291	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26292	// unconditionally include in API requests. By default, fields with
26293	// empty values are omitted from API requests. However, any non-pointer,
26294	// non-interface field appearing in ForceSendFields will be sent to the
26295	// server regardless of whether the field is empty or not. This may be
26296	// used to include empty fields in Patch requests.
26297	ForceSendFields []string `json:"-"`
26298
26299	// NullFields is a list of field names (e.g. "Accelerators") to include
26300	// in API requests with the JSON null value. By default, fields with
26301	// empty values are omitted from API requests. However, any field with
26302	// an empty value appearing in NullFields will be sent to the server as
26303	// null. It is an error if a field in this list has a non-empty value.
26304	// This may be used to include null fields in Patch requests.
26305	NullFields []string `json:"-"`
26306}
26307
26308func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
26309	type NoMethod NodeGroupNode
26310	raw := NoMethod(*s)
26311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26312}
26313
26314type NodeGroupsAddNodesRequest struct {
26315	// AdditionalNodeCount: Count of additional nodes to be added to the
26316	// node group.
26317	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
26318
26319	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
26320	// to unconditionally include in API requests. By default, fields with
26321	// empty values are omitted from API requests. However, any non-pointer,
26322	// non-interface field appearing in ForceSendFields will be sent to the
26323	// server regardless of whether the field is empty or not. This may be
26324	// used to include empty fields in Patch requests.
26325	ForceSendFields []string `json:"-"`
26326
26327	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
26328	// include in API requests with the JSON null value. By default, fields
26329	// with empty values are omitted from API requests. However, any field
26330	// with an empty value appearing in NullFields will be sent to the
26331	// server as null. It is an error if a field in this list has a
26332	// non-empty value. This may be used to include null fields in Patch
26333	// requests.
26334	NullFields []string `json:"-"`
26335}
26336
26337func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
26338	type NoMethod NodeGroupsAddNodesRequest
26339	raw := NoMethod(*s)
26340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26341}
26342
26343type NodeGroupsDeleteNodesRequest struct {
26344	// Nodes: Names of the nodes to delete.
26345	Nodes []string `json:"nodes,omitempty"`
26346
26347	// ForceSendFields is a list of field names (e.g. "Nodes") to
26348	// unconditionally include in API requests. By default, fields with
26349	// empty values are omitted from API requests. However, any non-pointer,
26350	// non-interface field appearing in ForceSendFields will be sent to the
26351	// server regardless of whether the field is empty or not. This may be
26352	// used to include empty fields in Patch requests.
26353	ForceSendFields []string `json:"-"`
26354
26355	// NullFields is a list of field names (e.g. "Nodes") to include in API
26356	// requests with the JSON null value. By default, fields with empty
26357	// values are omitted from API requests. However, any field with an
26358	// empty value appearing in NullFields will be sent to the server as
26359	// null. It is an error if a field in this list has a non-empty value.
26360	// This may be used to include null fields in Patch requests.
26361	NullFields []string `json:"-"`
26362}
26363
26364func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
26365	type NoMethod NodeGroupsDeleteNodesRequest
26366	raw := NoMethod(*s)
26367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26368}
26369
26370type NodeGroupsListNodes struct {
26371	// Id: [Output Only] Unique identifier for the resource; defined by the
26372	// server.
26373	Id string `json:"id,omitempty"`
26374
26375	// Items: A list of Node resources.
26376	Items []*NodeGroupNode `json:"items,omitempty"`
26377
26378	// Kind: [Output Only] The resource type, which is always
26379	// compute.nodeGroupsListNodes for the list of nodes in the specified
26380	// node group.
26381	Kind string `json:"kind,omitempty"`
26382
26383	// NextPageToken: [Output Only] This token allows you to get the next
26384	// page of results for list requests. If the number of results is larger
26385	// than maxResults, use the nextPageToken as a value for the query
26386	// parameter pageToken in the next list request. Subsequent list
26387	// requests will have their own nextPageToken to continue paging through
26388	// the results.
26389	NextPageToken string `json:"nextPageToken,omitempty"`
26390
26391	// SelfLink: [Output Only] Server-defined URL for this resource.
26392	SelfLink string `json:"selfLink,omitempty"`
26393
26394	// Warning: [Output Only] Informational warning message.
26395	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
26396
26397	// ServerResponse contains the HTTP response code and headers from the
26398	// server.
26399	googleapi.ServerResponse `json:"-"`
26400
26401	// ForceSendFields is a list of field names (e.g. "Id") to
26402	// unconditionally include in API requests. By default, fields with
26403	// empty values are omitted from API requests. However, any non-pointer,
26404	// non-interface field appearing in ForceSendFields will be sent to the
26405	// server regardless of whether the field is empty or not. This may be
26406	// used to include empty fields in Patch requests.
26407	ForceSendFields []string `json:"-"`
26408
26409	// NullFields is a list of field names (e.g. "Id") to include in API
26410	// requests with the JSON null value. By default, fields with empty
26411	// values are omitted from API requests. However, any field with an
26412	// empty value appearing in NullFields will be sent to the server as
26413	// null. It is an error if a field in this list has a non-empty value.
26414	// This may be used to include null fields in Patch requests.
26415	NullFields []string `json:"-"`
26416}
26417
26418func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
26419	type NoMethod NodeGroupsListNodes
26420	raw := NoMethod(*s)
26421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26422}
26423
26424// NodeGroupsListNodesWarning: [Output Only] Informational warning
26425// message.
26426type NodeGroupsListNodesWarning struct {
26427	// Code: [Output Only] A warning code, if applicable. For example,
26428	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26429	// the response.
26430	//
26431	// Possible values:
26432	//   "CLEANUP_FAILED"
26433	//   "DEPRECATED_RESOURCE_USED"
26434	//   "DEPRECATED_TYPE_USED"
26435	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26436	//   "EXPERIMENTAL_TYPE_USED"
26437	//   "EXTERNAL_API_WARNING"
26438	//   "FIELD_VALUE_OVERRIDEN"
26439	//   "INJECTED_KERNELS_DEPRECATED"
26440	//   "MISSING_TYPE_DEPENDENCY"
26441	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26442	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26443	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26444	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26445	//   "NEXT_HOP_NOT_RUNNING"
26446	//   "NOT_CRITICAL_ERROR"
26447	//   "NO_RESULTS_ON_PAGE"
26448	//   "PARTIAL_SUCCESS"
26449	//   "REQUIRED_TOS_AGREEMENT"
26450	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26451	//   "RESOURCE_NOT_DELETED"
26452	//   "SCHEMA_VALIDATION_IGNORED"
26453	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26454	//   "UNDECLARED_PROPERTIES"
26455	//   "UNREACHABLE"
26456	Code string `json:"code,omitempty"`
26457
26458	// Data: [Output Only] Metadata about this warning in key: value format.
26459	// For example:
26460	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26461	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
26462
26463	// Message: [Output Only] A human-readable description of the warning
26464	// code.
26465	Message string `json:"message,omitempty"`
26466
26467	// ForceSendFields is a list of field names (e.g. "Code") to
26468	// unconditionally include in API requests. By default, fields with
26469	// empty values are omitted from API requests. However, any non-pointer,
26470	// non-interface field appearing in ForceSendFields will be sent to the
26471	// server regardless of whether the field is empty or not. This may be
26472	// used to include empty fields in Patch requests.
26473	ForceSendFields []string `json:"-"`
26474
26475	// NullFields is a list of field names (e.g. "Code") to include in API
26476	// requests with the JSON null value. By default, fields with empty
26477	// values are omitted from API requests. However, any field with an
26478	// empty value appearing in NullFields will be sent to the server as
26479	// null. It is an error if a field in this list has a non-empty value.
26480	// This may be used to include null fields in Patch requests.
26481	NullFields []string `json:"-"`
26482}
26483
26484func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
26485	type NoMethod NodeGroupsListNodesWarning
26486	raw := NoMethod(*s)
26487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26488}
26489
26490type NodeGroupsListNodesWarningData struct {
26491	// Key: [Output Only] A key that provides more detail on the warning
26492	// being returned. For example, for warnings where there are no results
26493	// in a list request for a particular zone, this key might be scope and
26494	// the key value might be the zone name. Other examples might be a key
26495	// indicating a deprecated resource and a suggested replacement, or a
26496	// warning about invalid network settings (for example, if an instance
26497	// attempts to perform IP forwarding but is not enabled for IP
26498	// forwarding).
26499	Key string `json:"key,omitempty"`
26500
26501	// Value: [Output Only] A warning data value corresponding to the key.
26502	Value string `json:"value,omitempty"`
26503
26504	// ForceSendFields is a list of field names (e.g. "Key") to
26505	// unconditionally include in API requests. By default, fields with
26506	// empty values are omitted from API requests. However, any non-pointer,
26507	// non-interface field appearing in ForceSendFields will be sent to the
26508	// server regardless of whether the field is empty or not. This may be
26509	// used to include empty fields in Patch requests.
26510	ForceSendFields []string `json:"-"`
26511
26512	// NullFields is a list of field names (e.g. "Key") to include in API
26513	// requests with the JSON null value. By default, fields with empty
26514	// values are omitted from API requests. However, any field with an
26515	// empty value appearing in NullFields will be sent to the server as
26516	// null. It is an error if a field in this list has a non-empty value.
26517	// This may be used to include null fields in Patch requests.
26518	NullFields []string `json:"-"`
26519}
26520
26521func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
26522	type NoMethod NodeGroupsListNodesWarningData
26523	raw := NoMethod(*s)
26524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26525}
26526
26527type NodeGroupsScopedList struct {
26528	// NodeGroups: [Output Only] A list of node groups contained in this
26529	// scope.
26530	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
26531
26532	// Warning: [Output Only] An informational warning that appears when the
26533	// nodeGroup list is empty.
26534	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
26535
26536	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
26537	// unconditionally include in API requests. By default, fields with
26538	// empty values are omitted from API requests. However, any non-pointer,
26539	// non-interface field appearing in ForceSendFields will be sent to the
26540	// server regardless of whether the field is empty or not. This may be
26541	// used to include empty fields in Patch requests.
26542	ForceSendFields []string `json:"-"`
26543
26544	// NullFields is a list of field names (e.g. "NodeGroups") to include in
26545	// API requests with the JSON null value. By default, fields with empty
26546	// values are omitted from API requests. However, any field with an
26547	// empty value appearing in NullFields will be sent to the server as
26548	// null. It is an error if a field in this list has a non-empty value.
26549	// This may be used to include null fields in Patch requests.
26550	NullFields []string `json:"-"`
26551}
26552
26553func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
26554	type NoMethod NodeGroupsScopedList
26555	raw := NoMethod(*s)
26556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26557}
26558
26559// NodeGroupsScopedListWarning: [Output Only] An informational warning
26560// that appears when the nodeGroup list is empty.
26561type NodeGroupsScopedListWarning struct {
26562	// Code: [Output Only] A warning code, if applicable. For example,
26563	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26564	// the response.
26565	//
26566	// Possible values:
26567	//   "CLEANUP_FAILED"
26568	//   "DEPRECATED_RESOURCE_USED"
26569	//   "DEPRECATED_TYPE_USED"
26570	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26571	//   "EXPERIMENTAL_TYPE_USED"
26572	//   "EXTERNAL_API_WARNING"
26573	//   "FIELD_VALUE_OVERRIDEN"
26574	//   "INJECTED_KERNELS_DEPRECATED"
26575	//   "MISSING_TYPE_DEPENDENCY"
26576	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26577	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26578	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26579	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26580	//   "NEXT_HOP_NOT_RUNNING"
26581	//   "NOT_CRITICAL_ERROR"
26582	//   "NO_RESULTS_ON_PAGE"
26583	//   "PARTIAL_SUCCESS"
26584	//   "REQUIRED_TOS_AGREEMENT"
26585	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26586	//   "RESOURCE_NOT_DELETED"
26587	//   "SCHEMA_VALIDATION_IGNORED"
26588	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26589	//   "UNDECLARED_PROPERTIES"
26590	//   "UNREACHABLE"
26591	Code string `json:"code,omitempty"`
26592
26593	// Data: [Output Only] Metadata about this warning in key: value format.
26594	// For example:
26595	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26596	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
26597
26598	// Message: [Output Only] A human-readable description of the warning
26599	// code.
26600	Message string `json:"message,omitempty"`
26601
26602	// ForceSendFields is a list of field names (e.g. "Code") to
26603	// unconditionally include in API requests. By default, fields with
26604	// empty values are omitted from API requests. However, any non-pointer,
26605	// non-interface field appearing in ForceSendFields will be sent to the
26606	// server regardless of whether the field is empty or not. This may be
26607	// used to include empty fields in Patch requests.
26608	ForceSendFields []string `json:"-"`
26609
26610	// NullFields is a list of field names (e.g. "Code") to include in API
26611	// requests with the JSON null value. By default, fields with empty
26612	// values are omitted from API requests. However, any field with an
26613	// empty value appearing in NullFields will be sent to the server as
26614	// null. It is an error if a field in this list has a non-empty value.
26615	// This may be used to include null fields in Patch requests.
26616	NullFields []string `json:"-"`
26617}
26618
26619func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
26620	type NoMethod NodeGroupsScopedListWarning
26621	raw := NoMethod(*s)
26622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26623}
26624
26625type NodeGroupsScopedListWarningData struct {
26626	// Key: [Output Only] A key that provides more detail on the warning
26627	// being returned. For example, for warnings where there are no results
26628	// in a list request for a particular zone, this key might be scope and
26629	// the key value might be the zone name. Other examples might be a key
26630	// indicating a deprecated resource and a suggested replacement, or a
26631	// warning about invalid network settings (for example, if an instance
26632	// attempts to perform IP forwarding but is not enabled for IP
26633	// forwarding).
26634	Key string `json:"key,omitempty"`
26635
26636	// Value: [Output Only] A warning data value corresponding to the key.
26637	Value string `json:"value,omitempty"`
26638
26639	// ForceSendFields is a list of field names (e.g. "Key") to
26640	// unconditionally include in API requests. By default, fields with
26641	// empty values are omitted from API requests. However, any non-pointer,
26642	// non-interface field appearing in ForceSendFields will be sent to the
26643	// server regardless of whether the field is empty or not. This may be
26644	// used to include empty fields in Patch requests.
26645	ForceSendFields []string `json:"-"`
26646
26647	// NullFields is a list of field names (e.g. "Key") to include in API
26648	// requests with the JSON null value. By default, fields with empty
26649	// values are omitted from API requests. However, any field with an
26650	// empty value appearing in NullFields will be sent to the server as
26651	// null. It is an error if a field in this list has a non-empty value.
26652	// This may be used to include null fields in Patch requests.
26653	NullFields []string `json:"-"`
26654}
26655
26656func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
26657	type NoMethod NodeGroupsScopedListWarningData
26658	raw := NoMethod(*s)
26659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26660}
26661
26662type NodeGroupsSetNodeTemplateRequest struct {
26663	// NodeTemplate: Full or partial URL of the node template resource to be
26664	// updated for this node group.
26665	NodeTemplate string `json:"nodeTemplate,omitempty"`
26666
26667	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
26668	// unconditionally include in API requests. By default, fields with
26669	// empty values are omitted from API requests. However, any non-pointer,
26670	// non-interface field appearing in ForceSendFields will be sent to the
26671	// server regardless of whether the field is empty or not. This may be
26672	// used to include empty fields in Patch requests.
26673	ForceSendFields []string `json:"-"`
26674
26675	// NullFields is a list of field names (e.g. "NodeTemplate") to include
26676	// in API requests with the JSON null value. By default, fields with
26677	// empty values are omitted from API requests. However, any field with
26678	// an empty value appearing in NullFields will be sent to the server as
26679	// null. It is an error if a field in this list has a non-empty value.
26680	// This may be used to include null fields in Patch requests.
26681	NullFields []string `json:"-"`
26682}
26683
26684func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
26685	type NoMethod NodeGroupsSetNodeTemplateRequest
26686	raw := NoMethod(*s)
26687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26688}
26689
26690// NodeTemplate: Represent a sole-tenant Node Template resource.
26691//
26692// You can use a template to define properties for nodes in a node
26693// group. For more information, read Creating node groups and instances.
26694// (== resource_for {$api_version}.nodeTemplates ==) (== NextID: 19 ==)
26695type NodeTemplate struct {
26696	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
26697
26698	// CpuOvercommitType: CPU overcommit.
26699	//
26700	// Possible values:
26701	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
26702	//   "ENABLED"
26703	//   "NONE"
26704	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
26705
26706	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26707	// format.
26708	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26709
26710	// Description: An optional description of this resource. Provide this
26711	// property when you create the resource.
26712	Description string `json:"description,omitempty"`
26713
26714	Disks []*LocalDisk `json:"disks,omitempty"`
26715
26716	// Id: [Output Only] The unique identifier for the resource. This
26717	// identifier is defined by the server.
26718	Id uint64 `json:"id,omitempty,string"`
26719
26720	// Kind: [Output Only] The type of the resource. Always
26721	// compute#nodeTemplate for node templates.
26722	Kind string `json:"kind,omitempty"`
26723
26724	// Name: The name of the resource, provided by the client when initially
26725	// creating the resource. The resource name must be 1-63 characters
26726	// long, and comply with RFC1035. Specifically, the name must be 1-63
26727	// characters long and match the regular expression
26728	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
26729	// a lowercase letter, and all following characters must be a dash,
26730	// lowercase letter, or digit, except the last character, which cannot
26731	// be a dash.
26732	Name string `json:"name,omitempty"`
26733
26734	// NodeAffinityLabels: Labels to use for node affinity, which will be
26735	// used in instance scheduling.
26736	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
26737
26738	// NodeType: The node type to use for nodes group that are created from
26739	// this template.
26740	NodeType string `json:"nodeType,omitempty"`
26741
26742	// NodeTypeFlexibility: The flexible properties of the desired node
26743	// type. Node groups that use this node template will create nodes of a
26744	// type that matches these properties.
26745	//
26746	// This field is mutually exclusive with the node_type property; you can
26747	// only define one or the other, but not both.
26748	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
26749
26750	// Region: [Output Only] The name of the region where the node template
26751	// resides, such as us-central1.
26752	Region string `json:"region,omitempty"`
26753
26754	// SelfLink: [Output Only] Server-defined URL for the resource.
26755	SelfLink string `json:"selfLink,omitempty"`
26756
26757	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
26758	// with the resource id.
26759	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
26760
26761	// ServerBinding: Sets the binding properties for the physical server.
26762	// Valid values include:
26763	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
26764	// physical server
26765	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
26766	// server whenever possible
26767	//
26768	// See Sole-tenant node options for more information.
26769	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
26770
26771	// Status: [Output Only] The status of the node template. One of the
26772	// following values: CREATING, READY, and DELETING.
26773	//
26774	// Possible values:
26775	//   "CREATING"
26776	//   "DELETING"
26777	//   "INVALID"
26778	//   "READY"
26779	Status string `json:"status,omitempty"`
26780
26781	// StatusMessage: [Output Only] An optional, human-readable explanation
26782	// of the status.
26783	StatusMessage string `json:"statusMessage,omitempty"`
26784
26785	// ServerResponse contains the HTTP response code and headers from the
26786	// server.
26787	googleapi.ServerResponse `json:"-"`
26788
26789	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26790	// unconditionally include in API requests. By default, fields with
26791	// empty values are omitted from API requests. However, any non-pointer,
26792	// non-interface field appearing in ForceSendFields will be sent to the
26793	// server regardless of whether the field is empty or not. This may be
26794	// used to include empty fields in Patch requests.
26795	ForceSendFields []string `json:"-"`
26796
26797	// NullFields is a list of field names (e.g. "Accelerators") to include
26798	// in API requests with the JSON null value. By default, fields with
26799	// empty values are omitted from API requests. However, any field with
26800	// an empty value appearing in NullFields will be sent to the server as
26801	// null. It is an error if a field in this list has a non-empty value.
26802	// This may be used to include null fields in Patch requests.
26803	NullFields []string `json:"-"`
26804}
26805
26806func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
26807	type NoMethod NodeTemplate
26808	raw := NoMethod(*s)
26809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26810}
26811
26812type NodeTemplateAggregatedList struct {
26813	// Id: [Output Only] Unique identifier for the resource; defined by the
26814	// server.
26815	Id string `json:"id,omitempty"`
26816
26817	// Items: A list of NodeTemplatesScopedList resources.
26818	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
26819
26820	// Kind: [Output Only] Type of resource.Always
26821	// compute#nodeTemplateAggregatedList for aggregated lists of node
26822	// templates.
26823	Kind string `json:"kind,omitempty"`
26824
26825	// NextPageToken: [Output Only] This token allows you to get the next
26826	// page of results for list requests. If the number of results is larger
26827	// than maxResults, use the nextPageToken as a value for the query
26828	// parameter pageToken in the next list request. Subsequent list
26829	// requests will have their own nextPageToken to continue paging through
26830	// the results.
26831	NextPageToken string `json:"nextPageToken,omitempty"`
26832
26833	// SelfLink: [Output Only] Server-defined URL for this resource.
26834	SelfLink string `json:"selfLink,omitempty"`
26835
26836	// Unreachables: [Output Only] Unreachable resources.
26837	Unreachables []string `json:"unreachables,omitempty"`
26838
26839	// Warning: [Output Only] Informational warning message.
26840	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
26841
26842	// ServerResponse contains the HTTP response code and headers from the
26843	// server.
26844	googleapi.ServerResponse `json:"-"`
26845
26846	// ForceSendFields is a list of field names (e.g. "Id") to
26847	// unconditionally include in API requests. By default, fields with
26848	// empty values are omitted from API requests. However, any non-pointer,
26849	// non-interface field appearing in ForceSendFields will be sent to the
26850	// server regardless of whether the field is empty or not. This may be
26851	// used to include empty fields in Patch requests.
26852	ForceSendFields []string `json:"-"`
26853
26854	// NullFields is a list of field names (e.g. "Id") to include in API
26855	// requests with the JSON null value. By default, fields with empty
26856	// values are omitted from API requests. However, any field with an
26857	// empty value appearing in NullFields will be sent to the server as
26858	// null. It is an error if a field in this list has a non-empty value.
26859	// This may be used to include null fields in Patch requests.
26860	NullFields []string `json:"-"`
26861}
26862
26863func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
26864	type NoMethod NodeTemplateAggregatedList
26865	raw := NoMethod(*s)
26866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26867}
26868
26869// NodeTemplateAggregatedListWarning: [Output Only] Informational
26870// warning message.
26871type NodeTemplateAggregatedListWarning struct {
26872	// Code: [Output Only] A warning code, if applicable. For example,
26873	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26874	// the response.
26875	//
26876	// Possible values:
26877	//   "CLEANUP_FAILED"
26878	//   "DEPRECATED_RESOURCE_USED"
26879	//   "DEPRECATED_TYPE_USED"
26880	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26881	//   "EXPERIMENTAL_TYPE_USED"
26882	//   "EXTERNAL_API_WARNING"
26883	//   "FIELD_VALUE_OVERRIDEN"
26884	//   "INJECTED_KERNELS_DEPRECATED"
26885	//   "MISSING_TYPE_DEPENDENCY"
26886	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26887	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26888	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26889	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26890	//   "NEXT_HOP_NOT_RUNNING"
26891	//   "NOT_CRITICAL_ERROR"
26892	//   "NO_RESULTS_ON_PAGE"
26893	//   "PARTIAL_SUCCESS"
26894	//   "REQUIRED_TOS_AGREEMENT"
26895	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26896	//   "RESOURCE_NOT_DELETED"
26897	//   "SCHEMA_VALIDATION_IGNORED"
26898	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26899	//   "UNDECLARED_PROPERTIES"
26900	//   "UNREACHABLE"
26901	Code string `json:"code,omitempty"`
26902
26903	// Data: [Output Only] Metadata about this warning in key: value format.
26904	// For example:
26905	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26906	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
26907
26908	// Message: [Output Only] A human-readable description of the warning
26909	// code.
26910	Message string `json:"message,omitempty"`
26911
26912	// ForceSendFields is a list of field names (e.g. "Code") to
26913	// unconditionally include in API requests. By default, fields with
26914	// empty values are omitted from API requests. However, any non-pointer,
26915	// non-interface field appearing in ForceSendFields will be sent to the
26916	// server regardless of whether the field is empty or not. This may be
26917	// used to include empty fields in Patch requests.
26918	ForceSendFields []string `json:"-"`
26919
26920	// NullFields is a list of field names (e.g. "Code") to include in API
26921	// requests with the JSON null value. By default, fields with empty
26922	// values are omitted from API requests. However, any field with an
26923	// empty value appearing in NullFields will be sent to the server as
26924	// null. It is an error if a field in this list has a non-empty value.
26925	// This may be used to include null fields in Patch requests.
26926	NullFields []string `json:"-"`
26927}
26928
26929func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
26930	type NoMethod NodeTemplateAggregatedListWarning
26931	raw := NoMethod(*s)
26932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26933}
26934
26935type NodeTemplateAggregatedListWarningData struct {
26936	// Key: [Output Only] A key that provides more detail on the warning
26937	// being returned. For example, for warnings where there are no results
26938	// in a list request for a particular zone, this key might be scope and
26939	// the key value might be the zone name. Other examples might be a key
26940	// indicating a deprecated resource and a suggested replacement, or a
26941	// warning about invalid network settings (for example, if an instance
26942	// attempts to perform IP forwarding but is not enabled for IP
26943	// forwarding).
26944	Key string `json:"key,omitempty"`
26945
26946	// Value: [Output Only] A warning data value corresponding to the key.
26947	Value string `json:"value,omitempty"`
26948
26949	// ForceSendFields is a list of field names (e.g. "Key") to
26950	// unconditionally include in API requests. By default, fields with
26951	// empty values are omitted from API requests. However, any non-pointer,
26952	// non-interface field appearing in ForceSendFields will be sent to the
26953	// server regardless of whether the field is empty or not. This may be
26954	// used to include empty fields in Patch requests.
26955	ForceSendFields []string `json:"-"`
26956
26957	// NullFields is a list of field names (e.g. "Key") to include in API
26958	// requests with the JSON null value. By default, fields with empty
26959	// values are omitted from API requests. However, any field with an
26960	// empty value appearing in NullFields will be sent to the server as
26961	// null. It is an error if a field in this list has a non-empty value.
26962	// This may be used to include null fields in Patch requests.
26963	NullFields []string `json:"-"`
26964}
26965
26966func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26967	type NoMethod NodeTemplateAggregatedListWarningData
26968	raw := NoMethod(*s)
26969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26970}
26971
26972// NodeTemplateList: Contains a list of node templates.
26973type NodeTemplateList struct {
26974	// Id: [Output Only] Unique identifier for the resource; defined by the
26975	// server.
26976	Id string `json:"id,omitempty"`
26977
26978	// Items: A list of NodeTemplate resources.
26979	Items []*NodeTemplate `json:"items,omitempty"`
26980
26981	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
26982	// for lists of node templates.
26983	Kind string `json:"kind,omitempty"`
26984
26985	// NextPageToken: [Output Only] This token allows you to get the next
26986	// page of results for list requests. If the number of results is larger
26987	// than maxResults, use the nextPageToken as a value for the query
26988	// parameter pageToken in the next list request. Subsequent list
26989	// requests will have their own nextPageToken to continue paging through
26990	// the results.
26991	NextPageToken string `json:"nextPageToken,omitempty"`
26992
26993	// SelfLink: [Output Only] Server-defined URL for this resource.
26994	SelfLink string `json:"selfLink,omitempty"`
26995
26996	// Warning: [Output Only] Informational warning message.
26997	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
26998
26999	// ServerResponse contains the HTTP response code and headers from the
27000	// server.
27001	googleapi.ServerResponse `json:"-"`
27002
27003	// ForceSendFields is a list of field names (e.g. "Id") to
27004	// unconditionally include in API requests. By default, fields with
27005	// empty values are omitted from API requests. However, any non-pointer,
27006	// non-interface field appearing in ForceSendFields will be sent to the
27007	// server regardless of whether the field is empty or not. This may be
27008	// used to include empty fields in Patch requests.
27009	ForceSendFields []string `json:"-"`
27010
27011	// NullFields is a list of field names (e.g. "Id") to include in API
27012	// requests with the JSON null value. By default, fields with empty
27013	// values are omitted from API requests. However, any field with an
27014	// empty value appearing in NullFields will be sent to the server as
27015	// null. It is an error if a field in this list has a non-empty value.
27016	// This may be used to include null fields in Patch requests.
27017	NullFields []string `json:"-"`
27018}
27019
27020func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
27021	type NoMethod NodeTemplateList
27022	raw := NoMethod(*s)
27023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27024}
27025
27026// NodeTemplateListWarning: [Output Only] Informational warning message.
27027type NodeTemplateListWarning struct {
27028	// Code: [Output Only] A warning code, if applicable. For example,
27029	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27030	// the response.
27031	//
27032	// Possible values:
27033	//   "CLEANUP_FAILED"
27034	//   "DEPRECATED_RESOURCE_USED"
27035	//   "DEPRECATED_TYPE_USED"
27036	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27037	//   "EXPERIMENTAL_TYPE_USED"
27038	//   "EXTERNAL_API_WARNING"
27039	//   "FIELD_VALUE_OVERRIDEN"
27040	//   "INJECTED_KERNELS_DEPRECATED"
27041	//   "MISSING_TYPE_DEPENDENCY"
27042	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27043	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27044	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27045	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27046	//   "NEXT_HOP_NOT_RUNNING"
27047	//   "NOT_CRITICAL_ERROR"
27048	//   "NO_RESULTS_ON_PAGE"
27049	//   "PARTIAL_SUCCESS"
27050	//   "REQUIRED_TOS_AGREEMENT"
27051	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27052	//   "RESOURCE_NOT_DELETED"
27053	//   "SCHEMA_VALIDATION_IGNORED"
27054	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27055	//   "UNDECLARED_PROPERTIES"
27056	//   "UNREACHABLE"
27057	Code string `json:"code,omitempty"`
27058
27059	// Data: [Output Only] Metadata about this warning in key: value format.
27060	// For example:
27061	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27062	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
27063
27064	// Message: [Output Only] A human-readable description of the warning
27065	// code.
27066	Message string `json:"message,omitempty"`
27067
27068	// ForceSendFields is a list of field names (e.g. "Code") to
27069	// unconditionally include in API requests. By default, fields with
27070	// empty values are omitted from API requests. However, any non-pointer,
27071	// non-interface field appearing in ForceSendFields will be sent to the
27072	// server regardless of whether the field is empty or not. This may be
27073	// used to include empty fields in Patch requests.
27074	ForceSendFields []string `json:"-"`
27075
27076	// NullFields is a list of field names (e.g. "Code") to include in API
27077	// requests with the JSON null value. By default, fields with empty
27078	// values are omitted from API requests. However, any field with an
27079	// empty value appearing in NullFields will be sent to the server as
27080	// null. It is an error if a field in this list has a non-empty value.
27081	// This may be used to include null fields in Patch requests.
27082	NullFields []string `json:"-"`
27083}
27084
27085func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
27086	type NoMethod NodeTemplateListWarning
27087	raw := NoMethod(*s)
27088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27089}
27090
27091type NodeTemplateListWarningData struct {
27092	// Key: [Output Only] A key that provides more detail on the warning
27093	// being returned. For example, for warnings where there are no results
27094	// in a list request for a particular zone, this key might be scope and
27095	// the key value might be the zone name. Other examples might be a key
27096	// indicating a deprecated resource and a suggested replacement, or a
27097	// warning about invalid network settings (for example, if an instance
27098	// attempts to perform IP forwarding but is not enabled for IP
27099	// forwarding).
27100	Key string `json:"key,omitempty"`
27101
27102	// Value: [Output Only] A warning data value corresponding to the key.
27103	Value string `json:"value,omitempty"`
27104
27105	// ForceSendFields is a list of field names (e.g. "Key") to
27106	// unconditionally include in API requests. By default, fields with
27107	// empty values are omitted from API requests. However, any non-pointer,
27108	// non-interface field appearing in ForceSendFields will be sent to the
27109	// server regardless of whether the field is empty or not. This may be
27110	// used to include empty fields in Patch requests.
27111	ForceSendFields []string `json:"-"`
27112
27113	// NullFields is a list of field names (e.g. "Key") to include in API
27114	// requests with the JSON null value. By default, fields with empty
27115	// values are omitted from API requests. However, any field with an
27116	// empty value appearing in NullFields will be sent to the server as
27117	// null. It is an error if a field in this list has a non-empty value.
27118	// This may be used to include null fields in Patch requests.
27119	NullFields []string `json:"-"`
27120}
27121
27122func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
27123	type NoMethod NodeTemplateListWarningData
27124	raw := NoMethod(*s)
27125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27126}
27127
27128type NodeTemplateNodeTypeFlexibility struct {
27129	Cpus string `json:"cpus,omitempty"`
27130
27131	LocalSsd string `json:"localSsd,omitempty"`
27132
27133	Memory string `json:"memory,omitempty"`
27134
27135	// ForceSendFields is a list of field names (e.g. "Cpus") to
27136	// unconditionally include in API requests. By default, fields with
27137	// empty values are omitted from API requests. However, any non-pointer,
27138	// non-interface field appearing in ForceSendFields will be sent to the
27139	// server regardless of whether the field is empty or not. This may be
27140	// used to include empty fields in Patch requests.
27141	ForceSendFields []string `json:"-"`
27142
27143	// NullFields is a list of field names (e.g. "Cpus") to include in API
27144	// requests with the JSON null value. By default, fields with empty
27145	// values are omitted from API requests. However, any field with an
27146	// empty value appearing in NullFields will be sent to the server as
27147	// null. It is an error if a field in this list has a non-empty value.
27148	// This may be used to include null fields in Patch requests.
27149	NullFields []string `json:"-"`
27150}
27151
27152func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
27153	type NoMethod NodeTemplateNodeTypeFlexibility
27154	raw := NoMethod(*s)
27155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27156}
27157
27158type NodeTemplatesScopedList struct {
27159	// NodeTemplates: [Output Only] A list of node templates contained in
27160	// this scope.
27161	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
27162
27163	// Warning: [Output Only] An informational warning that appears when the
27164	// node templates list is empty.
27165	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
27166
27167	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
27168	// unconditionally include in API requests. By default, fields with
27169	// empty values are omitted from API requests. However, any non-pointer,
27170	// non-interface field appearing in ForceSendFields will be sent to the
27171	// server regardless of whether the field is empty or not. This may be
27172	// used to include empty fields in Patch requests.
27173	ForceSendFields []string `json:"-"`
27174
27175	// NullFields is a list of field names (e.g. "NodeTemplates") to include
27176	// in API requests with the JSON null value. By default, fields with
27177	// empty values are omitted from API requests. However, any field with
27178	// an empty value appearing in NullFields will be sent to the server as
27179	// null. It is an error if a field in this list has a non-empty value.
27180	// This may be used to include null fields in Patch requests.
27181	NullFields []string `json:"-"`
27182}
27183
27184func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
27185	type NoMethod NodeTemplatesScopedList
27186	raw := NoMethod(*s)
27187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27188}
27189
27190// NodeTemplatesScopedListWarning: [Output Only] An informational
27191// warning that appears when the node templates list is empty.
27192type NodeTemplatesScopedListWarning struct {
27193	// Code: [Output Only] A warning code, if applicable. For example,
27194	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27195	// the response.
27196	//
27197	// Possible values:
27198	//   "CLEANUP_FAILED"
27199	//   "DEPRECATED_RESOURCE_USED"
27200	//   "DEPRECATED_TYPE_USED"
27201	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27202	//   "EXPERIMENTAL_TYPE_USED"
27203	//   "EXTERNAL_API_WARNING"
27204	//   "FIELD_VALUE_OVERRIDEN"
27205	//   "INJECTED_KERNELS_DEPRECATED"
27206	//   "MISSING_TYPE_DEPENDENCY"
27207	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27208	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27209	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27210	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27211	//   "NEXT_HOP_NOT_RUNNING"
27212	//   "NOT_CRITICAL_ERROR"
27213	//   "NO_RESULTS_ON_PAGE"
27214	//   "PARTIAL_SUCCESS"
27215	//   "REQUIRED_TOS_AGREEMENT"
27216	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27217	//   "RESOURCE_NOT_DELETED"
27218	//   "SCHEMA_VALIDATION_IGNORED"
27219	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27220	//   "UNDECLARED_PROPERTIES"
27221	//   "UNREACHABLE"
27222	Code string `json:"code,omitempty"`
27223
27224	// Data: [Output Only] Metadata about this warning in key: value format.
27225	// For example:
27226	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27227	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
27228
27229	// Message: [Output Only] A human-readable description of the warning
27230	// code.
27231	Message string `json:"message,omitempty"`
27232
27233	// ForceSendFields is a list of field names (e.g. "Code") to
27234	// unconditionally include in API requests. By default, fields with
27235	// empty values are omitted from API requests. However, any non-pointer,
27236	// non-interface field appearing in ForceSendFields will be sent to the
27237	// server regardless of whether the field is empty or not. This may be
27238	// used to include empty fields in Patch requests.
27239	ForceSendFields []string `json:"-"`
27240
27241	// NullFields is a list of field names (e.g. "Code") to include in API
27242	// requests with the JSON null value. By default, fields with empty
27243	// values are omitted from API requests. However, any field with an
27244	// empty value appearing in NullFields will be sent to the server as
27245	// null. It is an error if a field in this list has a non-empty value.
27246	// This may be used to include null fields in Patch requests.
27247	NullFields []string `json:"-"`
27248}
27249
27250func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
27251	type NoMethod NodeTemplatesScopedListWarning
27252	raw := NoMethod(*s)
27253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27254}
27255
27256type NodeTemplatesScopedListWarningData struct {
27257	// Key: [Output Only] A key that provides more detail on the warning
27258	// being returned. For example, for warnings where there are no results
27259	// in a list request for a particular zone, this key might be scope and
27260	// the key value might be the zone name. Other examples might be a key
27261	// indicating a deprecated resource and a suggested replacement, or a
27262	// warning about invalid network settings (for example, if an instance
27263	// attempts to perform IP forwarding but is not enabled for IP
27264	// forwarding).
27265	Key string `json:"key,omitempty"`
27266
27267	// Value: [Output Only] A warning data value corresponding to the key.
27268	Value string `json:"value,omitempty"`
27269
27270	// ForceSendFields is a list of field names (e.g. "Key") to
27271	// unconditionally include in API requests. By default, fields with
27272	// empty values are omitted from API requests. However, any non-pointer,
27273	// non-interface field appearing in ForceSendFields will be sent to the
27274	// server regardless of whether the field is empty or not. This may be
27275	// used to include empty fields in Patch requests.
27276	ForceSendFields []string `json:"-"`
27277
27278	// NullFields is a list of field names (e.g. "Key") to include in API
27279	// requests with the JSON null value. By default, fields with empty
27280	// values are omitted from API requests. However, any field with an
27281	// empty value appearing in NullFields will be sent to the server as
27282	// null. It is an error if a field in this list has a non-empty value.
27283	// This may be used to include null fields in Patch requests.
27284	NullFields []string `json:"-"`
27285}
27286
27287func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
27288	type NoMethod NodeTemplatesScopedListWarningData
27289	raw := NoMethod(*s)
27290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27291}
27292
27293// NodeType: Represent a sole-tenant Node Type resource.
27294//
27295// Each node within a node group must have a node type. A node type
27296// specifies the total amount of cores and memory for that node.
27297// Currently, the only available node type is n1-node-96-624 node type
27298// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
27299// For more information read Node types. (== resource_for
27300// {$api_version}.nodeTypes ==)
27301type NodeType struct {
27302	// CpuPlatform: [Output Only] The CPU platform used by this node type.
27303	CpuPlatform string `json:"cpuPlatform,omitempty"`
27304
27305	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27306	// format.
27307	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27308
27309	// Deprecated: [Output Only] The deprecation status associated with this
27310	// node type.
27311	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
27312
27313	// Description: [Output Only] An optional textual description of the
27314	// resource.
27315	Description string `json:"description,omitempty"`
27316
27317	// GuestCpus: [Output Only] The number of virtual CPUs that are
27318	// available to the node type.
27319	GuestCpus int64 `json:"guestCpus,omitempty"`
27320
27321	// Id: [Output Only] The unique identifier for the resource. This
27322	// identifier is defined by the server.
27323	Id uint64 `json:"id,omitempty,string"`
27324
27325	// Kind: [Output Only] The type of the resource. Always compute#nodeType
27326	// for node types.
27327	Kind string `json:"kind,omitempty"`
27328
27329	// LocalSsdGb: [Output Only] Local SSD available to the node type,
27330	// defined in GB.
27331	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
27332
27333	// MemoryMb: [Output Only] The amount of physical memory available to
27334	// the node type, defined in MB.
27335	MemoryMb int64 `json:"memoryMb,omitempty"`
27336
27337	// Name: [Output Only] Name of the resource.
27338	Name string `json:"name,omitempty"`
27339
27340	// SelfLink: [Output Only] Server-defined URL for the resource.
27341	SelfLink string `json:"selfLink,omitempty"`
27342
27343	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
27344	// with the resource id.
27345	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
27346
27347	// Zone: [Output Only] The name of the zone where the node type resides,
27348	// such as us-central1-a.
27349	Zone string `json:"zone,omitempty"`
27350
27351	// ServerResponse contains the HTTP response code and headers from the
27352	// server.
27353	googleapi.ServerResponse `json:"-"`
27354
27355	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
27356	// unconditionally include in API requests. By default, fields with
27357	// empty values are omitted from API requests. However, any non-pointer,
27358	// non-interface field appearing in ForceSendFields will be sent to the
27359	// server regardless of whether the field is empty or not. This may be
27360	// used to include empty fields in Patch requests.
27361	ForceSendFields []string `json:"-"`
27362
27363	// NullFields is a list of field names (e.g. "CpuPlatform") to include
27364	// in API requests with the JSON null value. By default, fields with
27365	// empty values are omitted from API requests. However, any field with
27366	// an empty value appearing in NullFields will be sent to the server as
27367	// null. It is an error if a field in this list has a non-empty value.
27368	// This may be used to include null fields in Patch requests.
27369	NullFields []string `json:"-"`
27370}
27371
27372func (s *NodeType) MarshalJSON() ([]byte, error) {
27373	type NoMethod NodeType
27374	raw := NoMethod(*s)
27375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27376}
27377
27378type NodeTypeAggregatedList struct {
27379	// Id: [Output Only] Unique identifier for the resource; defined by the
27380	// server.
27381	Id string `json:"id,omitempty"`
27382
27383	// Items: A list of NodeTypesScopedList resources.
27384	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
27385
27386	// Kind: [Output Only] Type of resource.Always
27387	// compute#nodeTypeAggregatedList for aggregated lists of node types.
27388	Kind string `json:"kind,omitempty"`
27389
27390	// NextPageToken: [Output Only] This token allows you to get the next
27391	// page of results for list requests. If the number of results is larger
27392	// than maxResults, use the nextPageToken as a value for the query
27393	// parameter pageToken in the next list request. Subsequent list
27394	// requests will have their own nextPageToken to continue paging through
27395	// the results.
27396	NextPageToken string `json:"nextPageToken,omitempty"`
27397
27398	// SelfLink: [Output Only] Server-defined URL for this resource.
27399	SelfLink string `json:"selfLink,omitempty"`
27400
27401	// Unreachables: [Output Only] Unreachable resources.
27402	Unreachables []string `json:"unreachables,omitempty"`
27403
27404	// Warning: [Output Only] Informational warning message.
27405	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
27406
27407	// ServerResponse contains the HTTP response code and headers from the
27408	// server.
27409	googleapi.ServerResponse `json:"-"`
27410
27411	// ForceSendFields is a list of field names (e.g. "Id") to
27412	// unconditionally include in API requests. By default, fields with
27413	// empty values are omitted from API requests. However, any non-pointer,
27414	// non-interface field appearing in ForceSendFields will be sent to the
27415	// server regardless of whether the field is empty or not. This may be
27416	// used to include empty fields in Patch requests.
27417	ForceSendFields []string `json:"-"`
27418
27419	// NullFields is a list of field names (e.g. "Id") to include in API
27420	// requests with the JSON null value. By default, fields with empty
27421	// values are omitted from API requests. However, any field with an
27422	// empty value appearing in NullFields will be sent to the server as
27423	// null. It is an error if a field in this list has a non-empty value.
27424	// This may be used to include null fields in Patch requests.
27425	NullFields []string `json:"-"`
27426}
27427
27428func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
27429	type NoMethod NodeTypeAggregatedList
27430	raw := NoMethod(*s)
27431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27432}
27433
27434// NodeTypeAggregatedListWarning: [Output Only] Informational warning
27435// message.
27436type NodeTypeAggregatedListWarning struct {
27437	// Code: [Output Only] A warning code, if applicable. For example,
27438	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27439	// the response.
27440	//
27441	// Possible values:
27442	//   "CLEANUP_FAILED"
27443	//   "DEPRECATED_RESOURCE_USED"
27444	//   "DEPRECATED_TYPE_USED"
27445	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27446	//   "EXPERIMENTAL_TYPE_USED"
27447	//   "EXTERNAL_API_WARNING"
27448	//   "FIELD_VALUE_OVERRIDEN"
27449	//   "INJECTED_KERNELS_DEPRECATED"
27450	//   "MISSING_TYPE_DEPENDENCY"
27451	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27452	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27453	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27454	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27455	//   "NEXT_HOP_NOT_RUNNING"
27456	//   "NOT_CRITICAL_ERROR"
27457	//   "NO_RESULTS_ON_PAGE"
27458	//   "PARTIAL_SUCCESS"
27459	//   "REQUIRED_TOS_AGREEMENT"
27460	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27461	//   "RESOURCE_NOT_DELETED"
27462	//   "SCHEMA_VALIDATION_IGNORED"
27463	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27464	//   "UNDECLARED_PROPERTIES"
27465	//   "UNREACHABLE"
27466	Code string `json:"code,omitempty"`
27467
27468	// Data: [Output Only] Metadata about this warning in key: value format.
27469	// For example:
27470	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27471	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
27472
27473	// Message: [Output Only] A human-readable description of the warning
27474	// code.
27475	Message string `json:"message,omitempty"`
27476
27477	// ForceSendFields is a list of field names (e.g. "Code") to
27478	// unconditionally include in API requests. By default, fields with
27479	// empty values are omitted from API requests. However, any non-pointer,
27480	// non-interface field appearing in ForceSendFields will be sent to the
27481	// server regardless of whether the field is empty or not. This may be
27482	// used to include empty fields in Patch requests.
27483	ForceSendFields []string `json:"-"`
27484
27485	// NullFields is a list of field names (e.g. "Code") to include in API
27486	// requests with the JSON null value. By default, fields with empty
27487	// values are omitted from API requests. However, any field with an
27488	// empty value appearing in NullFields will be sent to the server as
27489	// null. It is an error if a field in this list has a non-empty value.
27490	// This may be used to include null fields in Patch requests.
27491	NullFields []string `json:"-"`
27492}
27493
27494func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
27495	type NoMethod NodeTypeAggregatedListWarning
27496	raw := NoMethod(*s)
27497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27498}
27499
27500type NodeTypeAggregatedListWarningData struct {
27501	// Key: [Output Only] A key that provides more detail on the warning
27502	// being returned. For example, for warnings where there are no results
27503	// in a list request for a particular zone, this key might be scope and
27504	// the key value might be the zone name. Other examples might be a key
27505	// indicating a deprecated resource and a suggested replacement, or a
27506	// warning about invalid network settings (for example, if an instance
27507	// attempts to perform IP forwarding but is not enabled for IP
27508	// forwarding).
27509	Key string `json:"key,omitempty"`
27510
27511	// Value: [Output Only] A warning data value corresponding to the key.
27512	Value string `json:"value,omitempty"`
27513
27514	// ForceSendFields is a list of field names (e.g. "Key") to
27515	// unconditionally include in API requests. By default, fields with
27516	// empty values are omitted from API requests. However, any non-pointer,
27517	// non-interface field appearing in ForceSendFields will be sent to the
27518	// server regardless of whether the field is empty or not. This may be
27519	// used to include empty fields in Patch requests.
27520	ForceSendFields []string `json:"-"`
27521
27522	// NullFields is a list of field names (e.g. "Key") to include in API
27523	// requests with the JSON null value. By default, fields with empty
27524	// values are omitted from API requests. However, any field with an
27525	// empty value appearing in NullFields will be sent to the server as
27526	// null. It is an error if a field in this list has a non-empty value.
27527	// This may be used to include null fields in Patch requests.
27528	NullFields []string `json:"-"`
27529}
27530
27531func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27532	type NoMethod NodeTypeAggregatedListWarningData
27533	raw := NoMethod(*s)
27534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27535}
27536
27537// NodeTypeList: Contains a list of node types.
27538type NodeTypeList struct {
27539	// Id: [Output Only] Unique identifier for the resource; defined by the
27540	// server.
27541	Id string `json:"id,omitempty"`
27542
27543	// Items: A list of NodeType resources.
27544	Items []*NodeType `json:"items,omitempty"`
27545
27546	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
27547	// lists of node types.
27548	Kind string `json:"kind,omitempty"`
27549
27550	// NextPageToken: [Output Only] This token allows you to get the next
27551	// page of results for list requests. If the number of results is larger
27552	// than maxResults, use the nextPageToken as a value for the query
27553	// parameter pageToken in the next list request. Subsequent list
27554	// requests will have their own nextPageToken to continue paging through
27555	// the results.
27556	NextPageToken string `json:"nextPageToken,omitempty"`
27557
27558	// SelfLink: [Output Only] Server-defined URL for this resource.
27559	SelfLink string `json:"selfLink,omitempty"`
27560
27561	// Warning: [Output Only] Informational warning message.
27562	Warning *NodeTypeListWarning `json:"warning,omitempty"`
27563
27564	// ServerResponse contains the HTTP response code and headers from the
27565	// server.
27566	googleapi.ServerResponse `json:"-"`
27567
27568	// ForceSendFields is a list of field names (e.g. "Id") to
27569	// unconditionally include in API requests. By default, fields with
27570	// empty values are omitted from API requests. However, any non-pointer,
27571	// non-interface field appearing in ForceSendFields will be sent to the
27572	// server regardless of whether the field is empty or not. This may be
27573	// used to include empty fields in Patch requests.
27574	ForceSendFields []string `json:"-"`
27575
27576	// NullFields is a list of field names (e.g. "Id") to include in API
27577	// requests with the JSON null value. By default, fields with empty
27578	// values are omitted from API requests. However, any field with an
27579	// empty value appearing in NullFields will be sent to the server as
27580	// null. It is an error if a field in this list has a non-empty value.
27581	// This may be used to include null fields in Patch requests.
27582	NullFields []string `json:"-"`
27583}
27584
27585func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
27586	type NoMethod NodeTypeList
27587	raw := NoMethod(*s)
27588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27589}
27590
27591// NodeTypeListWarning: [Output Only] Informational warning message.
27592type NodeTypeListWarning struct {
27593	// Code: [Output Only] A warning code, if applicable. For example,
27594	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27595	// the response.
27596	//
27597	// Possible values:
27598	//   "CLEANUP_FAILED"
27599	//   "DEPRECATED_RESOURCE_USED"
27600	//   "DEPRECATED_TYPE_USED"
27601	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27602	//   "EXPERIMENTAL_TYPE_USED"
27603	//   "EXTERNAL_API_WARNING"
27604	//   "FIELD_VALUE_OVERRIDEN"
27605	//   "INJECTED_KERNELS_DEPRECATED"
27606	//   "MISSING_TYPE_DEPENDENCY"
27607	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27608	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27609	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27610	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27611	//   "NEXT_HOP_NOT_RUNNING"
27612	//   "NOT_CRITICAL_ERROR"
27613	//   "NO_RESULTS_ON_PAGE"
27614	//   "PARTIAL_SUCCESS"
27615	//   "REQUIRED_TOS_AGREEMENT"
27616	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27617	//   "RESOURCE_NOT_DELETED"
27618	//   "SCHEMA_VALIDATION_IGNORED"
27619	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27620	//   "UNDECLARED_PROPERTIES"
27621	//   "UNREACHABLE"
27622	Code string `json:"code,omitempty"`
27623
27624	// Data: [Output Only] Metadata about this warning in key: value format.
27625	// For example:
27626	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27627	Data []*NodeTypeListWarningData `json:"data,omitempty"`
27628
27629	// Message: [Output Only] A human-readable description of the warning
27630	// code.
27631	Message string `json:"message,omitempty"`
27632
27633	// ForceSendFields is a list of field names (e.g. "Code") to
27634	// unconditionally include in API requests. By default, fields with
27635	// empty values are omitted from API requests. However, any non-pointer,
27636	// non-interface field appearing in ForceSendFields will be sent to the
27637	// server regardless of whether the field is empty or not. This may be
27638	// used to include empty fields in Patch requests.
27639	ForceSendFields []string `json:"-"`
27640
27641	// NullFields is a list of field names (e.g. "Code") to include in API
27642	// requests with the JSON null value. By default, fields with empty
27643	// values are omitted from API requests. However, any field with an
27644	// empty value appearing in NullFields will be sent to the server as
27645	// null. It is an error if a field in this list has a non-empty value.
27646	// This may be used to include null fields in Patch requests.
27647	NullFields []string `json:"-"`
27648}
27649
27650func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
27651	type NoMethod NodeTypeListWarning
27652	raw := NoMethod(*s)
27653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27654}
27655
27656type NodeTypeListWarningData struct {
27657	// Key: [Output Only] A key that provides more detail on the warning
27658	// being returned. For example, for warnings where there are no results
27659	// in a list request for a particular zone, this key might be scope and
27660	// the key value might be the zone name. Other examples might be a key
27661	// indicating a deprecated resource and a suggested replacement, or a
27662	// warning about invalid network settings (for example, if an instance
27663	// attempts to perform IP forwarding but is not enabled for IP
27664	// forwarding).
27665	Key string `json:"key,omitempty"`
27666
27667	// Value: [Output Only] A warning data value corresponding to the key.
27668	Value string `json:"value,omitempty"`
27669
27670	// ForceSendFields is a list of field names (e.g. "Key") to
27671	// unconditionally include in API requests. By default, fields with
27672	// empty values are omitted from API requests. However, any non-pointer,
27673	// non-interface field appearing in ForceSendFields will be sent to the
27674	// server regardless of whether the field is empty or not. This may be
27675	// used to include empty fields in Patch requests.
27676	ForceSendFields []string `json:"-"`
27677
27678	// NullFields is a list of field names (e.g. "Key") to include in API
27679	// requests with the JSON null value. By default, fields with empty
27680	// values are omitted from API requests. However, any field with an
27681	// empty value appearing in NullFields will be sent to the server as
27682	// null. It is an error if a field in this list has a non-empty value.
27683	// This may be used to include null fields in Patch requests.
27684	NullFields []string `json:"-"`
27685}
27686
27687func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
27688	type NoMethod NodeTypeListWarningData
27689	raw := NoMethod(*s)
27690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27691}
27692
27693type NodeTypesScopedList struct {
27694	// NodeTypes: [Output Only] A list of node types contained in this
27695	// scope.
27696	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
27697
27698	// Warning: [Output Only] An informational warning that appears when the
27699	// node types list is empty.
27700	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
27701
27702	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
27703	// unconditionally include in API requests. By default, fields with
27704	// empty values are omitted from API requests. However, any non-pointer,
27705	// non-interface field appearing in ForceSendFields will be sent to the
27706	// server regardless of whether the field is empty or not. This may be
27707	// used to include empty fields in Patch requests.
27708	ForceSendFields []string `json:"-"`
27709
27710	// NullFields is a list of field names (e.g. "NodeTypes") to include in
27711	// API requests with the JSON null value. By default, fields with empty
27712	// values are omitted from API requests. However, any field with an
27713	// empty value appearing in NullFields will be sent to the server as
27714	// null. It is an error if a field in this list has a non-empty value.
27715	// This may be used to include null fields in Patch requests.
27716	NullFields []string `json:"-"`
27717}
27718
27719func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
27720	type NoMethod NodeTypesScopedList
27721	raw := NoMethod(*s)
27722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27723}
27724
27725// NodeTypesScopedListWarning: [Output Only] An informational warning
27726// that appears when the node types list is empty.
27727type NodeTypesScopedListWarning struct {
27728	// Code: [Output Only] A warning code, if applicable. For example,
27729	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27730	// the response.
27731	//
27732	// Possible values:
27733	//   "CLEANUP_FAILED"
27734	//   "DEPRECATED_RESOURCE_USED"
27735	//   "DEPRECATED_TYPE_USED"
27736	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27737	//   "EXPERIMENTAL_TYPE_USED"
27738	//   "EXTERNAL_API_WARNING"
27739	//   "FIELD_VALUE_OVERRIDEN"
27740	//   "INJECTED_KERNELS_DEPRECATED"
27741	//   "MISSING_TYPE_DEPENDENCY"
27742	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27743	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27744	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27745	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27746	//   "NEXT_HOP_NOT_RUNNING"
27747	//   "NOT_CRITICAL_ERROR"
27748	//   "NO_RESULTS_ON_PAGE"
27749	//   "PARTIAL_SUCCESS"
27750	//   "REQUIRED_TOS_AGREEMENT"
27751	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27752	//   "RESOURCE_NOT_DELETED"
27753	//   "SCHEMA_VALIDATION_IGNORED"
27754	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27755	//   "UNDECLARED_PROPERTIES"
27756	//   "UNREACHABLE"
27757	Code string `json:"code,omitempty"`
27758
27759	// Data: [Output Only] Metadata about this warning in key: value format.
27760	// For example:
27761	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27762	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
27763
27764	// Message: [Output Only] A human-readable description of the warning
27765	// code.
27766	Message string `json:"message,omitempty"`
27767
27768	// ForceSendFields is a list of field names (e.g. "Code") to
27769	// unconditionally include in API requests. By default, fields with
27770	// empty values are omitted from API requests. However, any non-pointer,
27771	// non-interface field appearing in ForceSendFields will be sent to the
27772	// server regardless of whether the field is empty or not. This may be
27773	// used to include empty fields in Patch requests.
27774	ForceSendFields []string `json:"-"`
27775
27776	// NullFields is a list of field names (e.g. "Code") to include in API
27777	// requests with the JSON null value. By default, fields with empty
27778	// values are omitted from API requests. However, any field with an
27779	// empty value appearing in NullFields will be sent to the server as
27780	// null. It is an error if a field in this list has a non-empty value.
27781	// This may be used to include null fields in Patch requests.
27782	NullFields []string `json:"-"`
27783}
27784
27785func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
27786	type NoMethod NodeTypesScopedListWarning
27787	raw := NoMethod(*s)
27788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27789}
27790
27791type NodeTypesScopedListWarningData struct {
27792	// Key: [Output Only] A key that provides more detail on the warning
27793	// being returned. For example, for warnings where there are no results
27794	// in a list request for a particular zone, this key might be scope and
27795	// the key value might be the zone name. Other examples might be a key
27796	// indicating a deprecated resource and a suggested replacement, or a
27797	// warning about invalid network settings (for example, if an instance
27798	// attempts to perform IP forwarding but is not enabled for IP
27799	// forwarding).
27800	Key string `json:"key,omitempty"`
27801
27802	// Value: [Output Only] A warning data value corresponding to the key.
27803	Value string `json:"value,omitempty"`
27804
27805	// ForceSendFields is a list of field names (e.g. "Key") to
27806	// unconditionally include in API requests. By default, fields with
27807	// empty values are omitted from API requests. However, any non-pointer,
27808	// non-interface field appearing in ForceSendFields will be sent to the
27809	// server regardless of whether the field is empty or not. This may be
27810	// used to include empty fields in Patch requests.
27811	ForceSendFields []string `json:"-"`
27812
27813	// NullFields is a list of field names (e.g. "Key") to include in API
27814	// requests with the JSON null value. By default, fields with empty
27815	// values are omitted from API requests. However, any field with an
27816	// empty value appearing in NullFields will be sent to the server as
27817	// null. It is an error if a field in this list has a non-empty value.
27818	// This may be used to include null fields in Patch requests.
27819	NullFields []string `json:"-"`
27820}
27821
27822func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
27823	type NoMethod NodeTypesScopedListWarningData
27824	raw := NoMethod(*s)
27825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27826}
27827
27828// NotificationEndpoint: A notification endpoint resource defines an
27829// endpoint to receive notifications when there are status changes
27830// detected by the associated health check service.
27831type NotificationEndpoint struct {
27832	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27833	// format.
27834	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27835
27836	// Description: An optional description of this resource. Provide this
27837	// property when you create the resource.
27838	Description string `json:"description,omitempty"`
27839
27840	// GrpcSettings: Settings of the gRPC notification endpoint including
27841	// the endpoint URL and the retry duration.
27842	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
27843
27844	// Id: [Output Only] A unique identifier for this resource type. The
27845	// server generates this identifier.
27846	Id uint64 `json:"id,omitempty,string"`
27847
27848	// Kind: [Output Only] Type of the resource. Always
27849	// compute#notificationEndpoint for notification endpoints.
27850	Kind string `json:"kind,omitempty"`
27851
27852	// Name: Name of the resource. Provided by the client when the resource
27853	// is created. The name must be 1-63 characters long, and comply with
27854	// RFC1035. Specifically, the name must be 1-63 characters long and
27855	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
27856	// the first character must be a lowercase letter, and all following
27857	// characters must be a dash, lowercase letter, or digit, except the
27858	// last character, which cannot be a dash.
27859	Name string `json:"name,omitempty"`
27860
27861	// Region: [Output Only] URL of the region where the notification
27862	// endpoint resides. This field applies only to the regional resource.
27863	// You must specify this field as part of the HTTP request URL. It is
27864	// not settable as a field in the request body.
27865	Region string `json:"region,omitempty"`
27866
27867	// SelfLink: [Output Only] Server-defined URL for the resource.
27868	SelfLink string `json:"selfLink,omitempty"`
27869
27870	// ServerResponse contains the HTTP response code and headers from the
27871	// server.
27872	googleapi.ServerResponse `json:"-"`
27873
27874	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
27875	// to unconditionally include in API requests. By default, fields with
27876	// empty values are omitted from API requests. However, any non-pointer,
27877	// non-interface field appearing in ForceSendFields will be sent to the
27878	// server regardless of whether the field is empty or not. This may be
27879	// used to include empty fields in Patch requests.
27880	ForceSendFields []string `json:"-"`
27881
27882	// NullFields is a list of field names (e.g. "CreationTimestamp") to
27883	// include in API requests with the JSON null value. By default, fields
27884	// with empty values are omitted from API requests. However, any field
27885	// with an empty value appearing in NullFields will be sent to the
27886	// server as null. It is an error if a field in this list has a
27887	// non-empty value. This may be used to include null fields in Patch
27888	// requests.
27889	NullFields []string `json:"-"`
27890}
27891
27892func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
27893	type NoMethod NotificationEndpoint
27894	raw := NoMethod(*s)
27895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27896}
27897
27898// NotificationEndpointGrpcSettings: Represents a gRPC setting that
27899// describes one gRPC notification endpoint and the retry duration
27900// attempting to send notification to this endpoint.
27901type NotificationEndpointGrpcSettings struct {
27902	// Authority: Optional. If specified, this field is used to set the
27903	// authority header by the sender of notifications. See
27904	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
27905	Authority string `json:"authority,omitempty"`
27906
27907	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
27908	// a valid gRPCLB DNS name.
27909	Endpoint string `json:"endpoint,omitempty"`
27910
27911	// PayloadName: Optional. If specified, this field is used to populate
27912	// the "name" field in gRPC requests.
27913	PayloadName string `json:"payloadName,omitempty"`
27914
27915	// ResendInterval: Optional. This field is used to configure how often
27916	// to send a full update of all non-healthy backends. If unspecified,
27917	// full updates are not sent. If specified, must be in the range between
27918	// 600 seconds to 3600 seconds. Nanos are disallowed.
27919	ResendInterval *Duration `json:"resendInterval,omitempty"`
27920
27921	// RetryDurationSec: How much time (in seconds) is spent attempting
27922	// notification retries until a successful response is received. Default
27923	// is 30s. Limit is 20m (1200s). Must be a positive number.
27924	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
27925
27926	// ForceSendFields is a list of field names (e.g. "Authority") to
27927	// unconditionally include in API requests. By default, fields with
27928	// empty values are omitted from API requests. However, any non-pointer,
27929	// non-interface field appearing in ForceSendFields will be sent to the
27930	// server regardless of whether the field is empty or not. This may be
27931	// used to include empty fields in Patch requests.
27932	ForceSendFields []string `json:"-"`
27933
27934	// NullFields is a list of field names (e.g. "Authority") to include in
27935	// API requests with the JSON null value. By default, fields with empty
27936	// values are omitted from API requests. However, any field with an
27937	// empty value appearing in NullFields will be sent to the server as
27938	// null. It is an error if a field in this list has a non-empty value.
27939	// This may be used to include null fields in Patch requests.
27940	NullFields []string `json:"-"`
27941}
27942
27943func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
27944	type NoMethod NotificationEndpointGrpcSettings
27945	raw := NoMethod(*s)
27946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27947}
27948
27949type NotificationEndpointList struct {
27950	// Id: [Output Only] Unique identifier for the resource; defined by the
27951	// server.
27952	Id string `json:"id,omitempty"`
27953
27954	// Items: A list of NotificationEndpoint resources.
27955	Items []*NotificationEndpoint `json:"items,omitempty"`
27956
27957	// Kind: [Output Only] Type of the resource. Always
27958	// compute#notificationEndpoint for notification endpoints.
27959	Kind string `json:"kind,omitempty"`
27960
27961	// NextPageToken: [Output Only] This token allows you to get the next
27962	// page of results for list requests. If the number of results is larger
27963	// than maxResults, use the nextPageToken as a value for the query
27964	// parameter pageToken in the next list request. Subsequent list
27965	// requests will have their own nextPageToken to continue paging through
27966	// the results.
27967	NextPageToken string `json:"nextPageToken,omitempty"`
27968
27969	// SelfLink: [Output Only] Server-defined URL for this resource.
27970	SelfLink string `json:"selfLink,omitempty"`
27971
27972	// Warning: [Output Only] Informational warning message.
27973	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
27974
27975	// ServerResponse contains the HTTP response code and headers from the
27976	// server.
27977	googleapi.ServerResponse `json:"-"`
27978
27979	// ForceSendFields is a list of field names (e.g. "Id") to
27980	// unconditionally include in API requests. By default, fields with
27981	// empty values are omitted from API requests. However, any non-pointer,
27982	// non-interface field appearing in ForceSendFields will be sent to the
27983	// server regardless of whether the field is empty or not. This may be
27984	// used to include empty fields in Patch requests.
27985	ForceSendFields []string `json:"-"`
27986
27987	// NullFields is a list of field names (e.g. "Id") to include in API
27988	// requests with the JSON null value. By default, fields with empty
27989	// values are omitted from API requests. However, any field with an
27990	// empty value appearing in NullFields will be sent to the server as
27991	// null. It is an error if a field in this list has a non-empty value.
27992	// This may be used to include null fields in Patch requests.
27993	NullFields []string `json:"-"`
27994}
27995
27996func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
27997	type NoMethod NotificationEndpointList
27998	raw := NoMethod(*s)
27999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28000}
28001
28002// NotificationEndpointListWarning: [Output Only] Informational warning
28003// message.
28004type NotificationEndpointListWarning struct {
28005	// Code: [Output Only] A warning code, if applicable. For example,
28006	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28007	// the response.
28008	//
28009	// Possible values:
28010	//   "CLEANUP_FAILED"
28011	//   "DEPRECATED_RESOURCE_USED"
28012	//   "DEPRECATED_TYPE_USED"
28013	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28014	//   "EXPERIMENTAL_TYPE_USED"
28015	//   "EXTERNAL_API_WARNING"
28016	//   "FIELD_VALUE_OVERRIDEN"
28017	//   "INJECTED_KERNELS_DEPRECATED"
28018	//   "MISSING_TYPE_DEPENDENCY"
28019	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28020	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28021	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28022	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28023	//   "NEXT_HOP_NOT_RUNNING"
28024	//   "NOT_CRITICAL_ERROR"
28025	//   "NO_RESULTS_ON_PAGE"
28026	//   "PARTIAL_SUCCESS"
28027	//   "REQUIRED_TOS_AGREEMENT"
28028	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28029	//   "RESOURCE_NOT_DELETED"
28030	//   "SCHEMA_VALIDATION_IGNORED"
28031	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28032	//   "UNDECLARED_PROPERTIES"
28033	//   "UNREACHABLE"
28034	Code string `json:"code,omitempty"`
28035
28036	// Data: [Output Only] Metadata about this warning in key: value format.
28037	// For example:
28038	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28039	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
28040
28041	// Message: [Output Only] A human-readable description of the warning
28042	// code.
28043	Message string `json:"message,omitempty"`
28044
28045	// ForceSendFields is a list of field names (e.g. "Code") to
28046	// unconditionally include in API requests. By default, fields with
28047	// empty values are omitted from API requests. However, any non-pointer,
28048	// non-interface field appearing in ForceSendFields will be sent to the
28049	// server regardless of whether the field is empty or not. This may be
28050	// used to include empty fields in Patch requests.
28051	ForceSendFields []string `json:"-"`
28052
28053	// NullFields is a list of field names (e.g. "Code") to include in API
28054	// requests with the JSON null value. By default, fields with empty
28055	// values are omitted from API requests. However, any field with an
28056	// empty value appearing in NullFields will be sent to the server as
28057	// null. It is an error if a field in this list has a non-empty value.
28058	// This may be used to include null fields in Patch requests.
28059	NullFields []string `json:"-"`
28060}
28061
28062func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
28063	type NoMethod NotificationEndpointListWarning
28064	raw := NoMethod(*s)
28065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28066}
28067
28068type NotificationEndpointListWarningData struct {
28069	// Key: [Output Only] A key that provides more detail on the warning
28070	// being returned. For example, for warnings where there are no results
28071	// in a list request for a particular zone, this key might be scope and
28072	// the key value might be the zone name. Other examples might be a key
28073	// indicating a deprecated resource and a suggested replacement, or a
28074	// warning about invalid network settings (for example, if an instance
28075	// attempts to perform IP forwarding but is not enabled for IP
28076	// forwarding).
28077	Key string `json:"key,omitempty"`
28078
28079	// Value: [Output Only] A warning data value corresponding to the key.
28080	Value string `json:"value,omitempty"`
28081
28082	// ForceSendFields is a list of field names (e.g. "Key") to
28083	// unconditionally include in API requests. By default, fields with
28084	// empty values are omitted from API requests. However, any non-pointer,
28085	// non-interface field appearing in ForceSendFields will be sent to the
28086	// server regardless of whether the field is empty or not. This may be
28087	// used to include empty fields in Patch requests.
28088	ForceSendFields []string `json:"-"`
28089
28090	// NullFields is a list of field names (e.g. "Key") to include in API
28091	// requests with the JSON null value. By default, fields with empty
28092	// values are omitted from API requests. However, any field with an
28093	// empty value appearing in NullFields will be sent to the server as
28094	// null. It is an error if a field in this list has a non-empty value.
28095	// This may be used to include null fields in Patch requests.
28096	NullFields []string `json:"-"`
28097}
28098
28099func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
28100	type NoMethod NotificationEndpointListWarningData
28101	raw := NoMethod(*s)
28102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28103}
28104
28105// Operation: Represents an Operation resource.
28106//
28107// Google Compute Engine has three Operation resources:
28108//
28109// *
28110// [Global](/compute/docs/reference/rest/{$api_version}/globalOperations)
28111//  *
28112// [Regional](/compute/docs/reference/rest/{$api_version}/regionOperation
28113// s) *
28114// [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations)
28115//
28116// Y
28117// ou can use an operation resource to manage asynchronous API requests.
28118// For more information, read Handling API responses.
28119//
28120// Operations can be global, regional or zonal.
28121// - For global operations, use the `globalOperations` resource.
28122// - For regional operations, use the `regionOperations` resource.
28123// - For zonal operations, use the `zonalOperations` resource.
28124//
28125// For more information, read  Global, Regional, and Zonal Resources.
28126// (== resource_for {$api_version}.globalOperations ==) (== resource_for
28127// {$api_version}.regionOperations ==) (== resource_for
28128// {$api_version}.zoneOperations ==)
28129type Operation struct {
28130	// ClientOperationId: [Output Only] The value of `requestId` if you
28131	// provided it in the request. Not present otherwise.
28132	ClientOperationId string `json:"clientOperationId,omitempty"`
28133
28134	// CreationTimestamp: [Deprecated] This field is deprecated.
28135	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28136
28137	// Description: [Output Only] A textual description of the operation,
28138	// which is set when the operation is created.
28139	Description string `json:"description,omitempty"`
28140
28141	// EndTime: [Output Only] The time that this operation was completed.
28142	// This value is in RFC3339 text format.
28143	EndTime string `json:"endTime,omitempty"`
28144
28145	// Error: [Output Only] If errors are generated during processing of the
28146	// operation, this field will be populated.
28147	Error *OperationError `json:"error,omitempty"`
28148
28149	// HttpErrorMessage: [Output Only] If the operation fails, this field
28150	// contains the HTTP error message that was returned, such as `NOT
28151	// FOUND`.
28152	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
28153
28154	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
28155	// contains the HTTP error status code that was returned. For example, a
28156	// `404` means the resource was not found.
28157	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
28158
28159	// Id: [Output Only] The unique identifier for the operation. This
28160	// identifier is defined by the server.
28161	Id uint64 `json:"id,omitempty,string"`
28162
28163	// InsertTime: [Output Only] The time that this operation was requested.
28164	// This value is in RFC3339 text format.
28165	InsertTime string `json:"insertTime,omitempty"`
28166
28167	// Kind: [Output Only] Type of the resource. Always `compute#operation`
28168	// for Operation resources.
28169	Kind string `json:"kind,omitempty"`
28170
28171	// Name: [Output Only] Name of the operation.
28172	Name string `json:"name,omitempty"`
28173
28174	// OperationType: [Output Only] The type of operation, such as `insert`,
28175	// `update`, or `delete`, and so on.
28176	OperationType string `json:"operationType,omitempty"`
28177
28178	// Progress: [Output Only] An optional progress indicator that ranges
28179	// from 0 to 100. There is no requirement that this be linear or support
28180	// any granularity of operations. This should not be used to guess when
28181	// the operation will be complete. This number should monotonically
28182	// increase as the operation progresses.
28183	Progress int64 `json:"progress,omitempty"`
28184
28185	// Region: [Output Only] The URL of the region where the operation
28186	// resides. Only applicable when performing regional operations.
28187	Region string `json:"region,omitempty"`
28188
28189	// SelfLink: [Output Only] Server-defined URL for the resource.
28190	SelfLink string `json:"selfLink,omitempty"`
28191
28192	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
28193	// with the resource id.
28194	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
28195
28196	// StartTime: [Output Only] The time that this operation was started by
28197	// the server. This value is in RFC3339 text format.
28198	StartTime string `json:"startTime,omitempty"`
28199
28200	// Status: [Output Only] The status of the operation, which can be one
28201	// of the following: `PENDING`, `RUNNING`, or `DONE`.
28202	//
28203	// Possible values:
28204	//   "DONE"
28205	//   "PENDING"
28206	//   "RUNNING"
28207	Status string `json:"status,omitempty"`
28208
28209	// StatusMessage: [Output Only] An optional textual description of the
28210	// current status of the operation.
28211	StatusMessage string `json:"statusMessage,omitempty"`
28212
28213	// TargetId: [Output Only] The unique target ID, which identifies a
28214	// specific incarnation of the target resource.
28215	TargetId uint64 `json:"targetId,omitempty,string"`
28216
28217	// TargetLink: [Output Only] The URL of the resource that the operation
28218	// modifies. For operations related to creating a snapshot, this points
28219	// to the persistent disk that the snapshot was created from.
28220	TargetLink string `json:"targetLink,omitempty"`
28221
28222	// User: [Output Only] User who requested the operation, for example:
28223	// `user@example.com`.
28224	User string `json:"user,omitempty"`
28225
28226	// Warnings: [Output Only] If warning messages are generated during
28227	// processing of the operation, this field will be populated.
28228	Warnings []*OperationWarnings `json:"warnings,omitempty"`
28229
28230	// Zone: [Output Only] The URL of the zone where the operation resides.
28231	// Only applicable when performing per-zone operations.
28232	Zone string `json:"zone,omitempty"`
28233
28234	// ServerResponse contains the HTTP response code and headers from the
28235	// server.
28236	googleapi.ServerResponse `json:"-"`
28237
28238	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
28239	// to unconditionally include in API requests. By default, fields with
28240	// empty values are omitted from API requests. However, any non-pointer,
28241	// non-interface field appearing in ForceSendFields will be sent to the
28242	// server regardless of whether the field is empty or not. This may be
28243	// used to include empty fields in Patch requests.
28244	ForceSendFields []string `json:"-"`
28245
28246	// NullFields is a list of field names (e.g. "ClientOperationId") to
28247	// include in API requests with the JSON null value. By default, fields
28248	// with empty values are omitted from API requests. However, any field
28249	// with an empty value appearing in NullFields will be sent to the
28250	// server as null. It is an error if a field in this list has a
28251	// non-empty value. This may be used to include null fields in Patch
28252	// requests.
28253	NullFields []string `json:"-"`
28254}
28255
28256func (s *Operation) MarshalJSON() ([]byte, error) {
28257	type NoMethod Operation
28258	raw := NoMethod(*s)
28259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28260}
28261
28262// OperationError: [Output Only] If errors are generated during
28263// processing of the operation, this field will be populated.
28264type OperationError struct {
28265	// Errors: [Output Only] The array of errors encountered while
28266	// processing this operation.
28267	Errors []*OperationErrorErrors `json:"errors,omitempty"`
28268
28269	// ForceSendFields is a list of field names (e.g. "Errors") to
28270	// unconditionally include in API requests. By default, fields with
28271	// empty values are omitted from API requests. However, any non-pointer,
28272	// non-interface field appearing in ForceSendFields will be sent to the
28273	// server regardless of whether the field is empty or not. This may be
28274	// used to include empty fields in Patch requests.
28275	ForceSendFields []string `json:"-"`
28276
28277	// NullFields is a list of field names (e.g. "Errors") to include in API
28278	// requests with the JSON null value. By default, fields with empty
28279	// values are omitted from API requests. However, any field with an
28280	// empty value appearing in NullFields will be sent to the server as
28281	// null. It is an error if a field in this list has a non-empty value.
28282	// This may be used to include null fields in Patch requests.
28283	NullFields []string `json:"-"`
28284}
28285
28286func (s *OperationError) MarshalJSON() ([]byte, error) {
28287	type NoMethod OperationError
28288	raw := NoMethod(*s)
28289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28290}
28291
28292type OperationErrorErrors struct {
28293	// Code: [Output Only] The error type identifier for this error.
28294	Code string `json:"code,omitempty"`
28295
28296	// Location: [Output Only] Indicates the field in the request that
28297	// caused the error. This property is optional.
28298	Location string `json:"location,omitempty"`
28299
28300	// Message: [Output Only] An optional, human-readable error message.
28301	Message string `json:"message,omitempty"`
28302
28303	// ForceSendFields is a list of field names (e.g. "Code") to
28304	// unconditionally include in API requests. By default, fields with
28305	// empty values are omitted from API requests. However, any non-pointer,
28306	// non-interface field appearing in ForceSendFields will be sent to the
28307	// server regardless of whether the field is empty or not. This may be
28308	// used to include empty fields in Patch requests.
28309	ForceSendFields []string `json:"-"`
28310
28311	// NullFields is a list of field names (e.g. "Code") to include in API
28312	// requests with the JSON null value. By default, fields with empty
28313	// values are omitted from API requests. However, any field with an
28314	// empty value appearing in NullFields will be sent to the server as
28315	// null. It is an error if a field in this list has a non-empty value.
28316	// This may be used to include null fields in Patch requests.
28317	NullFields []string `json:"-"`
28318}
28319
28320func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
28321	type NoMethod OperationErrorErrors
28322	raw := NoMethod(*s)
28323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28324}
28325
28326type OperationWarnings struct {
28327	// Code: [Output Only] A warning code, if applicable. For example,
28328	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28329	// the response.
28330	//
28331	// Possible values:
28332	//   "CLEANUP_FAILED"
28333	//   "DEPRECATED_RESOURCE_USED"
28334	//   "DEPRECATED_TYPE_USED"
28335	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28336	//   "EXPERIMENTAL_TYPE_USED"
28337	//   "EXTERNAL_API_WARNING"
28338	//   "FIELD_VALUE_OVERRIDEN"
28339	//   "INJECTED_KERNELS_DEPRECATED"
28340	//   "MISSING_TYPE_DEPENDENCY"
28341	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28342	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28343	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28344	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28345	//   "NEXT_HOP_NOT_RUNNING"
28346	//   "NOT_CRITICAL_ERROR"
28347	//   "NO_RESULTS_ON_PAGE"
28348	//   "PARTIAL_SUCCESS"
28349	//   "REQUIRED_TOS_AGREEMENT"
28350	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28351	//   "RESOURCE_NOT_DELETED"
28352	//   "SCHEMA_VALIDATION_IGNORED"
28353	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28354	//   "UNDECLARED_PROPERTIES"
28355	//   "UNREACHABLE"
28356	Code string `json:"code,omitempty"`
28357
28358	// Data: [Output Only] Metadata about this warning in key: value format.
28359	// For example:
28360	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28361	Data []*OperationWarningsData `json:"data,omitempty"`
28362
28363	// Message: [Output Only] A human-readable description of the warning
28364	// code.
28365	Message string `json:"message,omitempty"`
28366
28367	// ForceSendFields is a list of field names (e.g. "Code") to
28368	// unconditionally include in API requests. By default, fields with
28369	// empty values are omitted from API requests. However, any non-pointer,
28370	// non-interface field appearing in ForceSendFields will be sent to the
28371	// server regardless of whether the field is empty or not. This may be
28372	// used to include empty fields in Patch requests.
28373	ForceSendFields []string `json:"-"`
28374
28375	// NullFields is a list of field names (e.g. "Code") to include in API
28376	// requests with the JSON null value. By default, fields with empty
28377	// values are omitted from API requests. However, any field with an
28378	// empty value appearing in NullFields will be sent to the server as
28379	// null. It is an error if a field in this list has a non-empty value.
28380	// This may be used to include null fields in Patch requests.
28381	NullFields []string `json:"-"`
28382}
28383
28384func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
28385	type NoMethod OperationWarnings
28386	raw := NoMethod(*s)
28387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28388}
28389
28390type OperationWarningsData struct {
28391	// Key: [Output Only] A key that provides more detail on the warning
28392	// being returned. For example, for warnings where there are no results
28393	// in a list request for a particular zone, this key might be scope and
28394	// the key value might be the zone name. Other examples might be a key
28395	// indicating a deprecated resource and a suggested replacement, or a
28396	// warning about invalid network settings (for example, if an instance
28397	// attempts to perform IP forwarding but is not enabled for IP
28398	// forwarding).
28399	Key string `json:"key,omitempty"`
28400
28401	// Value: [Output Only] A warning data value corresponding to the key.
28402	Value string `json:"value,omitempty"`
28403
28404	// ForceSendFields is a list of field names (e.g. "Key") to
28405	// unconditionally include in API requests. By default, fields with
28406	// empty values are omitted from API requests. However, any non-pointer,
28407	// non-interface field appearing in ForceSendFields will be sent to the
28408	// server regardless of whether the field is empty or not. This may be
28409	// used to include empty fields in Patch requests.
28410	ForceSendFields []string `json:"-"`
28411
28412	// NullFields is a list of field names (e.g. "Key") to include in API
28413	// requests with the JSON null value. By default, fields with empty
28414	// values are omitted from API requests. However, any field with an
28415	// empty value appearing in NullFields will be sent to the server as
28416	// null. It is an error if a field in this list has a non-empty value.
28417	// This may be used to include null fields in Patch requests.
28418	NullFields []string `json:"-"`
28419}
28420
28421func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
28422	type NoMethod OperationWarningsData
28423	raw := NoMethod(*s)
28424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28425}
28426
28427type OperationAggregatedList struct {
28428	// Id: [Output Only] The unique identifier for the resource. This
28429	// identifier is defined by the server.
28430	Id string `json:"id,omitempty"`
28431
28432	// Items: [Output Only] A map of scoped operation lists.
28433	Items map[string]OperationsScopedList `json:"items,omitempty"`
28434
28435	// Kind: [Output Only] Type of resource. Always
28436	// `compute#operationAggregatedList` for aggregated lists of operations.
28437	Kind string `json:"kind,omitempty"`
28438
28439	// NextPageToken: [Output Only] This token allows you to get the next
28440	// page of results for list requests. If the number of results is larger
28441	// than `maxResults`, use the `nextPageToken` as a value for the query
28442	// parameter `pageToken` in the next list request. Subsequent list
28443	// requests will have their own `nextPageToken` to continue paging
28444	// through the results.
28445	NextPageToken string `json:"nextPageToken,omitempty"`
28446
28447	// SelfLink: [Output Only] Server-defined URL for this resource.
28448	SelfLink string `json:"selfLink,omitempty"`
28449
28450	// Unreachables: [Output Only] Unreachable resources.
28451	Unreachables []string `json:"unreachables,omitempty"`
28452
28453	// Warning: [Output Only] Informational warning message.
28454	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
28455
28456	// ServerResponse contains the HTTP response code and headers from the
28457	// server.
28458	googleapi.ServerResponse `json:"-"`
28459
28460	// ForceSendFields is a list of field names (e.g. "Id") to
28461	// unconditionally include in API requests. By default, fields with
28462	// empty values are omitted from API requests. However, any non-pointer,
28463	// non-interface field appearing in ForceSendFields will be sent to the
28464	// server regardless of whether the field is empty or not. This may be
28465	// used to include empty fields in Patch requests.
28466	ForceSendFields []string `json:"-"`
28467
28468	// NullFields is a list of field names (e.g. "Id") to include in API
28469	// requests with the JSON null value. By default, fields with empty
28470	// values are omitted from API requests. However, any field with an
28471	// empty value appearing in NullFields will be sent to the server as
28472	// null. It is an error if a field in this list has a non-empty value.
28473	// This may be used to include null fields in Patch requests.
28474	NullFields []string `json:"-"`
28475}
28476
28477func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
28478	type NoMethod OperationAggregatedList
28479	raw := NoMethod(*s)
28480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28481}
28482
28483// OperationAggregatedListWarning: [Output Only] Informational warning
28484// message.
28485type OperationAggregatedListWarning struct {
28486	// Code: [Output Only] A warning code, if applicable. For example,
28487	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28488	// the response.
28489	//
28490	// Possible values:
28491	//   "CLEANUP_FAILED"
28492	//   "DEPRECATED_RESOURCE_USED"
28493	//   "DEPRECATED_TYPE_USED"
28494	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28495	//   "EXPERIMENTAL_TYPE_USED"
28496	//   "EXTERNAL_API_WARNING"
28497	//   "FIELD_VALUE_OVERRIDEN"
28498	//   "INJECTED_KERNELS_DEPRECATED"
28499	//   "MISSING_TYPE_DEPENDENCY"
28500	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28501	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28502	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28503	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28504	//   "NEXT_HOP_NOT_RUNNING"
28505	//   "NOT_CRITICAL_ERROR"
28506	//   "NO_RESULTS_ON_PAGE"
28507	//   "PARTIAL_SUCCESS"
28508	//   "REQUIRED_TOS_AGREEMENT"
28509	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28510	//   "RESOURCE_NOT_DELETED"
28511	//   "SCHEMA_VALIDATION_IGNORED"
28512	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28513	//   "UNDECLARED_PROPERTIES"
28514	//   "UNREACHABLE"
28515	Code string `json:"code,omitempty"`
28516
28517	// Data: [Output Only] Metadata about this warning in key: value format.
28518	// For example:
28519	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28520	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
28521
28522	// Message: [Output Only] A human-readable description of the warning
28523	// code.
28524	Message string `json:"message,omitempty"`
28525
28526	// ForceSendFields is a list of field names (e.g. "Code") to
28527	// unconditionally include in API requests. By default, fields with
28528	// empty values are omitted from API requests. However, any non-pointer,
28529	// non-interface field appearing in ForceSendFields will be sent to the
28530	// server regardless of whether the field is empty or not. This may be
28531	// used to include empty fields in Patch requests.
28532	ForceSendFields []string `json:"-"`
28533
28534	// NullFields is a list of field names (e.g. "Code") to include in API
28535	// requests with the JSON null value. By default, fields with empty
28536	// values are omitted from API requests. However, any field with an
28537	// empty value appearing in NullFields will be sent to the server as
28538	// null. It is an error if a field in this list has a non-empty value.
28539	// This may be used to include null fields in Patch requests.
28540	NullFields []string `json:"-"`
28541}
28542
28543func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
28544	type NoMethod OperationAggregatedListWarning
28545	raw := NoMethod(*s)
28546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28547}
28548
28549type OperationAggregatedListWarningData struct {
28550	// Key: [Output Only] A key that provides more detail on the warning
28551	// being returned. For example, for warnings where there are no results
28552	// in a list request for a particular zone, this key might be scope and
28553	// the key value might be the zone name. Other examples might be a key
28554	// indicating a deprecated resource and a suggested replacement, or a
28555	// warning about invalid network settings (for example, if an instance
28556	// attempts to perform IP forwarding but is not enabled for IP
28557	// forwarding).
28558	Key string `json:"key,omitempty"`
28559
28560	// Value: [Output Only] A warning data value corresponding to the key.
28561	Value string `json:"value,omitempty"`
28562
28563	// ForceSendFields is a list of field names (e.g. "Key") to
28564	// unconditionally include in API requests. By default, fields with
28565	// empty values are omitted from API requests. However, any non-pointer,
28566	// non-interface field appearing in ForceSendFields will be sent to the
28567	// server regardless of whether the field is empty or not. This may be
28568	// used to include empty fields in Patch requests.
28569	ForceSendFields []string `json:"-"`
28570
28571	// NullFields is a list of field names (e.g. "Key") to include in API
28572	// requests with the JSON null value. By default, fields with empty
28573	// values are omitted from API requests. However, any field with an
28574	// empty value appearing in NullFields will be sent to the server as
28575	// null. It is an error if a field in this list has a non-empty value.
28576	// This may be used to include null fields in Patch requests.
28577	NullFields []string `json:"-"`
28578}
28579
28580func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28581	type NoMethod OperationAggregatedListWarningData
28582	raw := NoMethod(*s)
28583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28584}
28585
28586// OperationList: Contains a list of Operation resources.
28587type OperationList struct {
28588	// Id: [Output Only] The unique identifier for the resource. This
28589	// identifier is defined by the server.
28590	Id string `json:"id,omitempty"`
28591
28592	// Items: [Output Only] A list of Operation resources.
28593	Items []*Operation `json:"items,omitempty"`
28594
28595	// Kind: [Output Only] Type of resource. Always `compute#operations` for
28596	// Operations resource.
28597	Kind string `json:"kind,omitempty"`
28598
28599	// NextPageToken: [Output Only] This token allows you to get the next
28600	// page of results for list requests. If the number of results is larger
28601	// than `maxResults`, use the `nextPageToken` as a value for the query
28602	// parameter `pageToken` in the next list request. Subsequent list
28603	// requests will have their own `nextPageToken` to continue paging
28604	// through the results.
28605	NextPageToken string `json:"nextPageToken,omitempty"`
28606
28607	// SelfLink: [Output Only] Server-defined URL for this resource.
28608	SelfLink string `json:"selfLink,omitempty"`
28609
28610	// Warning: [Output Only] Informational warning message.
28611	Warning *OperationListWarning `json:"warning,omitempty"`
28612
28613	// ServerResponse contains the HTTP response code and headers from the
28614	// server.
28615	googleapi.ServerResponse `json:"-"`
28616
28617	// ForceSendFields is a list of field names (e.g. "Id") to
28618	// unconditionally include in API requests. By default, fields with
28619	// empty values are omitted from API requests. However, any non-pointer,
28620	// non-interface field appearing in ForceSendFields will be sent to the
28621	// server regardless of whether the field is empty or not. This may be
28622	// used to include empty fields in Patch requests.
28623	ForceSendFields []string `json:"-"`
28624
28625	// NullFields is a list of field names (e.g. "Id") to include in API
28626	// requests with the JSON null value. By default, fields with empty
28627	// values are omitted from API requests. However, any field with an
28628	// empty value appearing in NullFields will be sent to the server as
28629	// null. It is an error if a field in this list has a non-empty value.
28630	// This may be used to include null fields in Patch requests.
28631	NullFields []string `json:"-"`
28632}
28633
28634func (s *OperationList) MarshalJSON() ([]byte, error) {
28635	type NoMethod OperationList
28636	raw := NoMethod(*s)
28637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28638}
28639
28640// OperationListWarning: [Output Only] Informational warning message.
28641type OperationListWarning struct {
28642	// Code: [Output Only] A warning code, if applicable. For example,
28643	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28644	// the response.
28645	//
28646	// Possible values:
28647	//   "CLEANUP_FAILED"
28648	//   "DEPRECATED_RESOURCE_USED"
28649	//   "DEPRECATED_TYPE_USED"
28650	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28651	//   "EXPERIMENTAL_TYPE_USED"
28652	//   "EXTERNAL_API_WARNING"
28653	//   "FIELD_VALUE_OVERRIDEN"
28654	//   "INJECTED_KERNELS_DEPRECATED"
28655	//   "MISSING_TYPE_DEPENDENCY"
28656	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28657	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28658	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28659	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28660	//   "NEXT_HOP_NOT_RUNNING"
28661	//   "NOT_CRITICAL_ERROR"
28662	//   "NO_RESULTS_ON_PAGE"
28663	//   "PARTIAL_SUCCESS"
28664	//   "REQUIRED_TOS_AGREEMENT"
28665	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28666	//   "RESOURCE_NOT_DELETED"
28667	//   "SCHEMA_VALIDATION_IGNORED"
28668	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28669	//   "UNDECLARED_PROPERTIES"
28670	//   "UNREACHABLE"
28671	Code string `json:"code,omitempty"`
28672
28673	// Data: [Output Only] Metadata about this warning in key: value format.
28674	// For example:
28675	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28676	Data []*OperationListWarningData `json:"data,omitempty"`
28677
28678	// Message: [Output Only] A human-readable description of the warning
28679	// code.
28680	Message string `json:"message,omitempty"`
28681
28682	// ForceSendFields is a list of field names (e.g. "Code") to
28683	// unconditionally include in API requests. By default, fields with
28684	// empty values are omitted from API requests. However, any non-pointer,
28685	// non-interface field appearing in ForceSendFields will be sent to the
28686	// server regardless of whether the field is empty or not. This may be
28687	// used to include empty fields in Patch requests.
28688	ForceSendFields []string `json:"-"`
28689
28690	// NullFields is a list of field names (e.g. "Code") to include in API
28691	// requests with the JSON null value. By default, fields with empty
28692	// values are omitted from API requests. However, any field with an
28693	// empty value appearing in NullFields will be sent to the server as
28694	// null. It is an error if a field in this list has a non-empty value.
28695	// This may be used to include null fields in Patch requests.
28696	NullFields []string `json:"-"`
28697}
28698
28699func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
28700	type NoMethod OperationListWarning
28701	raw := NoMethod(*s)
28702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28703}
28704
28705type OperationListWarningData struct {
28706	// Key: [Output Only] A key that provides more detail on the warning
28707	// being returned. For example, for warnings where there are no results
28708	// in a list request for a particular zone, this key might be scope and
28709	// the key value might be the zone name. Other examples might be a key
28710	// indicating a deprecated resource and a suggested replacement, or a
28711	// warning about invalid network settings (for example, if an instance
28712	// attempts to perform IP forwarding but is not enabled for IP
28713	// forwarding).
28714	Key string `json:"key,omitempty"`
28715
28716	// Value: [Output Only] A warning data value corresponding to the key.
28717	Value string `json:"value,omitempty"`
28718
28719	// ForceSendFields is a list of field names (e.g. "Key") to
28720	// unconditionally include in API requests. By default, fields with
28721	// empty values are omitted from API requests. However, any non-pointer,
28722	// non-interface field appearing in ForceSendFields will be sent to the
28723	// server regardless of whether the field is empty or not. This may be
28724	// used to include empty fields in Patch requests.
28725	ForceSendFields []string `json:"-"`
28726
28727	// NullFields is a list of field names (e.g. "Key") to include in API
28728	// requests with the JSON null value. By default, fields with empty
28729	// values are omitted from API requests. However, any field with an
28730	// empty value appearing in NullFields will be sent to the server as
28731	// null. It is an error if a field in this list has a non-empty value.
28732	// This may be used to include null fields in Patch requests.
28733	NullFields []string `json:"-"`
28734}
28735
28736func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
28737	type NoMethod OperationListWarningData
28738	raw := NoMethod(*s)
28739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28740}
28741
28742type OperationsScopedList struct {
28743	// Operations: [Output Only] A list of operations contained in this
28744	// scope.
28745	Operations []*Operation `json:"operations,omitempty"`
28746
28747	// Warning: [Output Only] Informational warning which replaces the list
28748	// of operations when the list is empty.
28749	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
28750
28751	// ForceSendFields is a list of field names (e.g. "Operations") to
28752	// unconditionally include in API requests. By default, fields with
28753	// empty values are omitted from API requests. However, any non-pointer,
28754	// non-interface field appearing in ForceSendFields will be sent to the
28755	// server regardless of whether the field is empty or not. This may be
28756	// used to include empty fields in Patch requests.
28757	ForceSendFields []string `json:"-"`
28758
28759	// NullFields is a list of field names (e.g. "Operations") to include in
28760	// API requests with the JSON null value. By default, fields with empty
28761	// values are omitted from API requests. However, any field with an
28762	// empty value appearing in NullFields will be sent to the server as
28763	// null. It is an error if a field in this list has a non-empty value.
28764	// This may be used to include null fields in Patch requests.
28765	NullFields []string `json:"-"`
28766}
28767
28768func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
28769	type NoMethod OperationsScopedList
28770	raw := NoMethod(*s)
28771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28772}
28773
28774// OperationsScopedListWarning: [Output Only] Informational warning
28775// which replaces the list of operations when the list is empty.
28776type OperationsScopedListWarning struct {
28777	// Code: [Output Only] A warning code, if applicable. For example,
28778	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28779	// the response.
28780	//
28781	// Possible values:
28782	//   "CLEANUP_FAILED"
28783	//   "DEPRECATED_RESOURCE_USED"
28784	//   "DEPRECATED_TYPE_USED"
28785	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28786	//   "EXPERIMENTAL_TYPE_USED"
28787	//   "EXTERNAL_API_WARNING"
28788	//   "FIELD_VALUE_OVERRIDEN"
28789	//   "INJECTED_KERNELS_DEPRECATED"
28790	//   "MISSING_TYPE_DEPENDENCY"
28791	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28792	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28793	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28794	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28795	//   "NEXT_HOP_NOT_RUNNING"
28796	//   "NOT_CRITICAL_ERROR"
28797	//   "NO_RESULTS_ON_PAGE"
28798	//   "PARTIAL_SUCCESS"
28799	//   "REQUIRED_TOS_AGREEMENT"
28800	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28801	//   "RESOURCE_NOT_DELETED"
28802	//   "SCHEMA_VALIDATION_IGNORED"
28803	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28804	//   "UNDECLARED_PROPERTIES"
28805	//   "UNREACHABLE"
28806	Code string `json:"code,omitempty"`
28807
28808	// Data: [Output Only] Metadata about this warning in key: value format.
28809	// For example:
28810	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28811	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
28812
28813	// Message: [Output Only] A human-readable description of the warning
28814	// code.
28815	Message string `json:"message,omitempty"`
28816
28817	// ForceSendFields is a list of field names (e.g. "Code") to
28818	// unconditionally include in API requests. By default, fields with
28819	// empty values are omitted from API requests. However, any non-pointer,
28820	// non-interface field appearing in ForceSendFields will be sent to the
28821	// server regardless of whether the field is empty or not. This may be
28822	// used to include empty fields in Patch requests.
28823	ForceSendFields []string `json:"-"`
28824
28825	// NullFields is a list of field names (e.g. "Code") to include in API
28826	// requests with the JSON null value. By default, fields with empty
28827	// values are omitted from API requests. However, any field with an
28828	// empty value appearing in NullFields will be sent to the server as
28829	// null. It is an error if a field in this list has a non-empty value.
28830	// This may be used to include null fields in Patch requests.
28831	NullFields []string `json:"-"`
28832}
28833
28834func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
28835	type NoMethod OperationsScopedListWarning
28836	raw := NoMethod(*s)
28837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28838}
28839
28840type OperationsScopedListWarningData struct {
28841	// Key: [Output Only] A key that provides more detail on the warning
28842	// being returned. For example, for warnings where there are no results
28843	// in a list request for a particular zone, this key might be scope and
28844	// the key value might be the zone name. Other examples might be a key
28845	// indicating a deprecated resource and a suggested replacement, or a
28846	// warning about invalid network settings (for example, if an instance
28847	// attempts to perform IP forwarding but is not enabled for IP
28848	// forwarding).
28849	Key string `json:"key,omitempty"`
28850
28851	// Value: [Output Only] A warning data value corresponding to the key.
28852	Value string `json:"value,omitempty"`
28853
28854	// ForceSendFields is a list of field names (e.g. "Key") to
28855	// unconditionally include in API requests. By default, fields with
28856	// empty values are omitted from API requests. However, any non-pointer,
28857	// non-interface field appearing in ForceSendFields will be sent to the
28858	// server regardless of whether the field is empty or not. This may be
28859	// used to include empty fields in Patch requests.
28860	ForceSendFields []string `json:"-"`
28861
28862	// NullFields is a list of field names (e.g. "Key") to include in API
28863	// requests with the JSON null value. By default, fields with empty
28864	// values are omitted from API requests. However, any field with an
28865	// empty value appearing in NullFields will be sent to the server as
28866	// null. It is an error if a field in this list has a non-empty value.
28867	// This may be used to include null fields in Patch requests.
28868	NullFields []string `json:"-"`
28869}
28870
28871func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
28872	type NoMethod OperationsScopedListWarningData
28873	raw := NoMethod(*s)
28874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28875}
28876
28877type OrganizationSecurityPoliciesListAssociationsResponse struct {
28878	// Associations: A list of associations.
28879	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
28880
28881	// Kind: [Output Only] Type of securityPolicy associations. Always
28882	// compute#organizationSecurityPoliciesListAssociations for lists of
28883	// securityPolicy associations.
28884	Kind string `json:"kind,omitempty"`
28885
28886	// ServerResponse contains the HTTP response code and headers from the
28887	// server.
28888	googleapi.ServerResponse `json:"-"`
28889
28890	// ForceSendFields is a list of field names (e.g. "Associations") to
28891	// unconditionally include in API requests. By default, fields with
28892	// empty values are omitted from API requests. However, any non-pointer,
28893	// non-interface field appearing in ForceSendFields will be sent to the
28894	// server regardless of whether the field is empty or not. This may be
28895	// used to include empty fields in Patch requests.
28896	ForceSendFields []string `json:"-"`
28897
28898	// NullFields is a list of field names (e.g. "Associations") to include
28899	// in API requests with the JSON null value. By default, fields with
28900	// empty values are omitted from API requests. However, any field with
28901	// an empty value appearing in NullFields will be sent to the server as
28902	// null. It is an error if a field in this list has a non-empty value.
28903	// This may be used to include null fields in Patch requests.
28904	NullFields []string `json:"-"`
28905}
28906
28907func (s *OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
28908	type NoMethod OrganizationSecurityPoliciesListAssociationsResponse
28909	raw := NoMethod(*s)
28910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28911}
28912
28913// OriginAuthenticationMethod: [Deprecated] Configuration for the origin
28914// authentication method. Configuration for the origin authentication
28915// method.
28916type OriginAuthenticationMethod struct {
28917	Jwt *Jwt `json:"jwt,omitempty"`
28918
28919	// ForceSendFields is a list of field names (e.g. "Jwt") to
28920	// unconditionally include in API requests. By default, fields with
28921	// empty values are omitted from API requests. However, any non-pointer,
28922	// non-interface field appearing in ForceSendFields will be sent to the
28923	// server regardless of whether the field is empty or not. This may be
28924	// used to include empty fields in Patch requests.
28925	ForceSendFields []string `json:"-"`
28926
28927	// NullFields is a list of field names (e.g. "Jwt") to include in API
28928	// requests with the JSON null value. By default, fields with empty
28929	// values are omitted from API requests. However, any field with an
28930	// empty value appearing in NullFields will be sent to the server as
28931	// null. It is an error if a field in this list has a non-empty value.
28932	// This may be used to include null fields in Patch requests.
28933	NullFields []string `json:"-"`
28934}
28935
28936func (s *OriginAuthenticationMethod) MarshalJSON() ([]byte, error) {
28937	type NoMethod OriginAuthenticationMethod
28938	raw := NoMethod(*s)
28939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28940}
28941
28942// OutlierDetection: Settings controlling the eviction of unhealthy
28943// hosts from the load balancing pool for the backend service.
28944type OutlierDetection struct {
28945	// BaseEjectionTime: The base time that a host is ejected for. The real
28946	// ejection time is equal to the base ejection time multiplied by the
28947	// number of times the host has been ejected. Defaults to 30000ms or
28948	// 30s.
28949	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
28950
28951	// ConsecutiveErrors: Number of errors before a host is ejected from the
28952	// connection pool. When the backend host is accessed over HTTP, a 5xx
28953	// return code qualifies as an error. Defaults to 5.
28954	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
28955
28956	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
28957	// (502, 503, 504 status or connection errors that are mapped to one of
28958	// those status codes) before a consecutive gateway failure ejection
28959	// occurs. Defaults to 3.
28960	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
28961
28962	// EnforcingConsecutiveErrors: The percentage chance that a host will be
28963	// actually ejected when an outlier status is detected through
28964	// consecutive 5xx. This setting can be used to disable ejection or to
28965	// ramp it up slowly. Defaults to 0.
28966	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
28967
28968	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
28969	// will be actually ejected when an outlier status is detected through
28970	// consecutive gateway failures. This setting can be used to disable
28971	// ejection or to ramp it up slowly. Defaults to 100.
28972	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
28973
28974	// EnforcingSuccessRate: The percentage chance that a host will be
28975	// actually ejected when an outlier status is detected through success
28976	// rate statistics. This setting can be used to disable ejection or to
28977	// ramp it up slowly. Defaults to 100.
28978	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
28979
28980	// Interval: Time interval between ejection analysis sweeps. This can
28981	// result in both new ejections as well as hosts being returned to
28982	// service. Defaults to 1 second.
28983	Interval *Duration `json:"interval,omitempty"`
28984
28985	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
28986	// pool for the backend service that can be ejected. Defaults to 50%.
28987	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
28988
28989	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
28990	// have enough request volume to detect success rate outliers. If the
28991	// number of hosts is less than this setting, outlier detection via
28992	// success rate statistics is not performed for any host in the cluster.
28993	// Defaults to 5.
28994	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
28995
28996	// SuccessRateRequestVolume: The minimum number of total requests that
28997	// must be collected in one interval (as defined by the interval
28998	// duration above) to include this host in success rate based outlier
28999	// detection. If the volume is lower than this setting, outlier
29000	// detection via success rate statistics is not performed for that host.
29001	// Defaults to 100.
29002	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
29003
29004	// SuccessRateStdevFactor: This factor is used to determine the ejection
29005	// threshold for success rate outlier ejection. The ejection threshold
29006	// is the difference between the mean success rate, and the product of
29007	// this factor and the standard deviation of the mean success rate: mean
29008	// - (stdev * success_rate_stdev_factor). This factor is divided by a
29009	// thousand to get a double. That is, if the desired factor is 1.9, the
29010	// runtime value should be 1900. Defaults to 1900.
29011	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
29012
29013	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
29014	// unconditionally include in API requests. By default, fields with
29015	// empty values are omitted from API requests. However, any non-pointer,
29016	// non-interface field appearing in ForceSendFields will be sent to the
29017	// server regardless of whether the field is empty or not. This may be
29018	// used to include empty fields in Patch requests.
29019	ForceSendFields []string `json:"-"`
29020
29021	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
29022	// include in API requests with the JSON null value. By default, fields
29023	// with empty values are omitted from API requests. However, any field
29024	// with an empty value appearing in NullFields will be sent to the
29025	// server as null. It is an error if a field in this list has a
29026	// non-empty value. This may be used to include null fields in Patch
29027	// requests.
29028	NullFields []string `json:"-"`
29029}
29030
29031func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
29032	type NoMethod OutlierDetection
29033	raw := NoMethod(*s)
29034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29035}
29036
29037// PacketIntervals: Next free: 7
29038type PacketIntervals struct {
29039	// AvgMs: Average observed inter-packet interval in milliseconds.
29040	AvgMs int64 `json:"avgMs,omitempty,string"`
29041
29042	// Duration: From how long ago in the past these intervals were
29043	// observed.
29044	//
29045	// Possible values:
29046	//   "DURATION_UNSPECIFIED"
29047	//   "HOUR"
29048	//   "MAX"
29049	//   "MINUTE"
29050	Duration string `json:"duration,omitempty"`
29051
29052	// MaxMs: Maximum observed inter-packet interval in milliseconds.
29053	MaxMs int64 `json:"maxMs,omitempty,string"`
29054
29055	// MinMs: Minimum observed inter-packet interval in milliseconds.
29056	MinMs int64 `json:"minMs,omitempty,string"`
29057
29058	// NumIntervals: Number of inter-packet intervals from which these
29059	// statistics were derived.
29060	NumIntervals int64 `json:"numIntervals,omitempty,string"`
29061
29062	// Type: The type of packets for which inter-packet intervals were
29063	// computed.
29064	//
29065	// Possible values:
29066	//   "LOOPBACK"
29067	//   "RECEIVE"
29068	//   "TRANSMIT"
29069	//   "TYPE_UNSPECIFIED"
29070	Type string `json:"type,omitempty"`
29071
29072	// ForceSendFields is a list of field names (e.g. "AvgMs") to
29073	// unconditionally include in API requests. By default, fields with
29074	// empty values are omitted from API requests. However, any non-pointer,
29075	// non-interface field appearing in ForceSendFields will be sent to the
29076	// server regardless of whether the field is empty or not. This may be
29077	// used to include empty fields in Patch requests.
29078	ForceSendFields []string `json:"-"`
29079
29080	// NullFields is a list of field names (e.g. "AvgMs") to include in API
29081	// requests with the JSON null value. By default, fields with empty
29082	// values are omitted from API requests. However, any field with an
29083	// empty value appearing in NullFields will be sent to the server as
29084	// null. It is an error if a field in this list has a non-empty value.
29085	// This may be used to include null fields in Patch requests.
29086	NullFields []string `json:"-"`
29087}
29088
29089func (s *PacketIntervals) MarshalJSON() ([]byte, error) {
29090	type NoMethod PacketIntervals
29091	raw := NoMethod(*s)
29092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29093}
29094
29095// PacketMirroring: Represents a PacketMirroring resource.
29096type PacketMirroring struct {
29097	// CollectorIlb: The Forwarding Rule resource of type
29098	// loadBalancingScheme=INTERNAL that will be used as collector for
29099	// mirrored traffic. The specified forwarding rule must have
29100	// isMirroringCollector set to true.
29101	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
29102
29103	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29104	// format.
29105	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29106
29107	// Description: An optional description of this resource. Provide this
29108	// property when you create the resource.
29109	Description string `json:"description,omitempty"`
29110
29111	// Enable: Indicates whether or not this packet mirroring takes effect.
29112	// If set to FALSE, this packet mirroring policy will not be enforced on
29113	// the network.
29114	//
29115	// The default is TRUE.
29116	//
29117	// Possible values:
29118	//   "FALSE"
29119	//   "TRUE"
29120	Enable string `json:"enable,omitempty"`
29121
29122	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
29123	// mirrored.
29124	Filter *PacketMirroringFilter `json:"filter,omitempty"`
29125
29126	// Id: [Output Only] The unique identifier for the resource. This
29127	// identifier is defined by the server.
29128	Id uint64 `json:"id,omitempty,string"`
29129
29130	// Kind: [Output Only] Type of the resource. Always
29131	// compute#packetMirroring for packet mirrorings.
29132	Kind string `json:"kind,omitempty"`
29133
29134	// MirroredResources: PacketMirroring mirroredResourceInfos.
29135	// MirroredResourceInfo specifies a set of mirrored VM instances,
29136	// subnetworks and/or tags for which traffic from/to all VM instances
29137	// will be mirrored.
29138	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
29139
29140	// Name: Name of the resource; provided by the client when the resource
29141	// is created. The name must be 1-63 characters long, and comply with
29142	// RFC1035. Specifically, the name must be 1-63 characters long and
29143	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29144	// the first character must be a lowercase letter, and all following
29145	// characters must be a dash, lowercase letter, or digit, except the
29146	// last character, which cannot be a dash.
29147	Name string `json:"name,omitempty"`
29148
29149	// Network: Specifies the mirrored VPC network. Only packets in this
29150	// network will be mirrored. All mirrored VMs should have a NIC in the
29151	// given network. All mirrored subnetworks should belong to the given
29152	// network.
29153	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
29154
29155	// Priority: The priority of applying this configuration. Priority is
29156	// used to break ties in cases where there is more than one matching
29157	// rule. In the case of two rules that apply for a given Instance, the
29158	// one with the lowest-numbered priority value wins.
29159	//
29160	// Default value is 1000. Valid range is 0 through 65535.
29161	Priority int64 `json:"priority,omitempty"`
29162
29163	// Region: [Output Only] URI of the region where the packetMirroring
29164	// resides.
29165	Region string `json:"region,omitempty"`
29166
29167	// SelfLink: [Output Only] Server-defined URL for the resource.
29168	SelfLink string `json:"selfLink,omitempty"`
29169
29170	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
29171	// with the resource id.
29172	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
29173
29174	// ServerResponse contains the HTTP response code and headers from the
29175	// server.
29176	googleapi.ServerResponse `json:"-"`
29177
29178	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
29179	// unconditionally include in API requests. By default, fields with
29180	// empty values are omitted from API requests. However, any non-pointer,
29181	// non-interface field appearing in ForceSendFields will be sent to the
29182	// server regardless of whether the field is empty or not. This may be
29183	// used to include empty fields in Patch requests.
29184	ForceSendFields []string `json:"-"`
29185
29186	// NullFields is a list of field names (e.g. "CollectorIlb") to include
29187	// in API requests with the JSON null value. By default, fields with
29188	// empty values are omitted from API requests. However, any field with
29189	// an empty value appearing in NullFields will be sent to the server as
29190	// null. It is an error if a field in this list has a non-empty value.
29191	// This may be used to include null fields in Patch requests.
29192	NullFields []string `json:"-"`
29193}
29194
29195func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
29196	type NoMethod PacketMirroring
29197	raw := NoMethod(*s)
29198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29199}
29200
29201// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
29202type PacketMirroringAggregatedList struct {
29203	// Id: [Output Only] Unique identifier for the resource; defined by the
29204	// server.
29205	Id string `json:"id,omitempty"`
29206
29207	// Items: A list of PacketMirroring resources.
29208	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
29209
29210	// Kind: Type of resource.
29211	Kind string `json:"kind,omitempty"`
29212
29213	// NextPageToken: [Output Only] This token allows you to get the next
29214	// page of results for list requests. If the number of results is larger
29215	// than maxResults, use the nextPageToken as a value for the query
29216	// parameter pageToken in the next list request. Subsequent list
29217	// requests will have their own nextPageToken to continue paging through
29218	// the results.
29219	NextPageToken string `json:"nextPageToken,omitempty"`
29220
29221	// SelfLink: [Output Only] Server-defined URL for this resource.
29222	SelfLink string `json:"selfLink,omitempty"`
29223
29224	// Unreachables: [Output Only] Unreachable resources.
29225	Unreachables []string `json:"unreachables,omitempty"`
29226
29227	// Warning: [Output Only] Informational warning message.
29228	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
29229
29230	// ServerResponse contains the HTTP response code and headers from the
29231	// server.
29232	googleapi.ServerResponse `json:"-"`
29233
29234	// ForceSendFields is a list of field names (e.g. "Id") to
29235	// unconditionally include in API requests. By default, fields with
29236	// empty values are omitted from API requests. However, any non-pointer,
29237	// non-interface field appearing in ForceSendFields will be sent to the
29238	// server regardless of whether the field is empty or not. This may be
29239	// used to include empty fields in Patch requests.
29240	ForceSendFields []string `json:"-"`
29241
29242	// NullFields is a list of field names (e.g. "Id") to include in API
29243	// requests with the JSON null value. By default, fields with empty
29244	// values are omitted from API requests. However, any field with an
29245	// empty value appearing in NullFields will be sent to the server as
29246	// null. It is an error if a field in this list has a non-empty value.
29247	// This may be used to include null fields in Patch requests.
29248	NullFields []string `json:"-"`
29249}
29250
29251func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
29252	type NoMethod PacketMirroringAggregatedList
29253	raw := NoMethod(*s)
29254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29255}
29256
29257// PacketMirroringAggregatedListWarning: [Output Only] Informational
29258// warning message.
29259type PacketMirroringAggregatedListWarning struct {
29260	// Code: [Output Only] A warning code, if applicable. For example,
29261	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29262	// the response.
29263	//
29264	// Possible values:
29265	//   "CLEANUP_FAILED"
29266	//   "DEPRECATED_RESOURCE_USED"
29267	//   "DEPRECATED_TYPE_USED"
29268	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29269	//   "EXPERIMENTAL_TYPE_USED"
29270	//   "EXTERNAL_API_WARNING"
29271	//   "FIELD_VALUE_OVERRIDEN"
29272	//   "INJECTED_KERNELS_DEPRECATED"
29273	//   "MISSING_TYPE_DEPENDENCY"
29274	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29275	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29276	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29277	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29278	//   "NEXT_HOP_NOT_RUNNING"
29279	//   "NOT_CRITICAL_ERROR"
29280	//   "NO_RESULTS_ON_PAGE"
29281	//   "PARTIAL_SUCCESS"
29282	//   "REQUIRED_TOS_AGREEMENT"
29283	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29284	//   "RESOURCE_NOT_DELETED"
29285	//   "SCHEMA_VALIDATION_IGNORED"
29286	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29287	//   "UNDECLARED_PROPERTIES"
29288	//   "UNREACHABLE"
29289	Code string `json:"code,omitempty"`
29290
29291	// Data: [Output Only] Metadata about this warning in key: value format.
29292	// For example:
29293	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29294	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
29295
29296	// Message: [Output Only] A human-readable description of the warning
29297	// code.
29298	Message string `json:"message,omitempty"`
29299
29300	// ForceSendFields is a list of field names (e.g. "Code") to
29301	// unconditionally include in API requests. By default, fields with
29302	// empty values are omitted from API requests. However, any non-pointer,
29303	// non-interface field appearing in ForceSendFields will be sent to the
29304	// server regardless of whether the field is empty or not. This may be
29305	// used to include empty fields in Patch requests.
29306	ForceSendFields []string `json:"-"`
29307
29308	// NullFields is a list of field names (e.g. "Code") to include in API
29309	// requests with the JSON null value. By default, fields with empty
29310	// values are omitted from API requests. However, any field with an
29311	// empty value appearing in NullFields will be sent to the server as
29312	// null. It is an error if a field in this list has a non-empty value.
29313	// This may be used to include null fields in Patch requests.
29314	NullFields []string `json:"-"`
29315}
29316
29317func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
29318	type NoMethod PacketMirroringAggregatedListWarning
29319	raw := NoMethod(*s)
29320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29321}
29322
29323type PacketMirroringAggregatedListWarningData struct {
29324	// Key: [Output Only] A key that provides more detail on the warning
29325	// being returned. For example, for warnings where there are no results
29326	// in a list request for a particular zone, this key might be scope and
29327	// the key value might be the zone name. Other examples might be a key
29328	// indicating a deprecated resource and a suggested replacement, or a
29329	// warning about invalid network settings (for example, if an instance
29330	// attempts to perform IP forwarding but is not enabled for IP
29331	// forwarding).
29332	Key string `json:"key,omitempty"`
29333
29334	// Value: [Output Only] A warning data value corresponding to the key.
29335	Value string `json:"value,omitempty"`
29336
29337	// ForceSendFields is a list of field names (e.g. "Key") to
29338	// unconditionally include in API requests. By default, fields with
29339	// empty values are omitted from API requests. However, any non-pointer,
29340	// non-interface field appearing in ForceSendFields will be sent to the
29341	// server regardless of whether the field is empty or not. This may be
29342	// used to include empty fields in Patch requests.
29343	ForceSendFields []string `json:"-"`
29344
29345	// NullFields is a list of field names (e.g. "Key") to include in API
29346	// requests with the JSON null value. By default, fields with empty
29347	// values are omitted from API requests. However, any field with an
29348	// empty value appearing in NullFields will be sent to the server as
29349	// null. It is an error if a field in this list has a non-empty value.
29350	// This may be used to include null fields in Patch requests.
29351	NullFields []string `json:"-"`
29352}
29353
29354func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29355	type NoMethod PacketMirroringAggregatedListWarningData
29356	raw := NoMethod(*s)
29357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29358}
29359
29360type PacketMirroringFilter struct {
29361	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
29362	// no protocols are specified, all traffic that matches the specified
29363	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
29364	// specified, all traffic is mirrored.
29365	IPProtocols []string `json:"IPProtocols,omitempty"`
29366
29367	// CidrRanges: IP CIDR ranges that apply as filter on the source
29368	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
29369	// supported. If no ranges are specified, all traffic that matches the
29370	// specified IPProtocols is mirrored. If neither cidrRanges nor
29371	// IPProtocols is specified, all traffic is mirrored.
29372	CidrRanges []string `json:"cidrRanges,omitempty"`
29373
29374	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
29375	// unconditionally include in API requests. By default, fields with
29376	// empty values are omitted from API requests. However, any non-pointer,
29377	// non-interface field appearing in ForceSendFields will be sent to the
29378	// server regardless of whether the field is empty or not. This may be
29379	// used to include empty fields in Patch requests.
29380	ForceSendFields []string `json:"-"`
29381
29382	// NullFields is a list of field names (e.g. "IPProtocols") to include
29383	// in API requests with the JSON null value. By default, fields with
29384	// empty values are omitted from API requests. However, any field with
29385	// an empty value appearing in NullFields will be sent to the server as
29386	// null. It is an error if a field in this list has a non-empty value.
29387	// This may be used to include null fields in Patch requests.
29388	NullFields []string `json:"-"`
29389}
29390
29391func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
29392	type NoMethod PacketMirroringFilter
29393	raw := NoMethod(*s)
29394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29395}
29396
29397type PacketMirroringForwardingRuleInfo struct {
29398	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
29399	// rule; defined by the server.
29400	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29401
29402	// Url: Resource URL to the forwarding rule representing the ILB
29403	// configured as destination of the mirrored traffic.
29404	Url string `json:"url,omitempty"`
29405
29406	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29407	// unconditionally include in API requests. By default, fields with
29408	// empty values are omitted from API requests. However, any non-pointer,
29409	// non-interface field appearing in ForceSendFields will be sent to the
29410	// server regardless of whether the field is empty or not. This may be
29411	// used to include empty fields in Patch requests.
29412	ForceSendFields []string `json:"-"`
29413
29414	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29415	// in API requests with the JSON null value. By default, fields with
29416	// empty values are omitted from API requests. However, any field with
29417	// an empty value appearing in NullFields will be sent to the server as
29418	// null. It is an error if a field in this list has a non-empty value.
29419	// This may be used to include null fields in Patch requests.
29420	NullFields []string `json:"-"`
29421}
29422
29423func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
29424	type NoMethod PacketMirroringForwardingRuleInfo
29425	raw := NoMethod(*s)
29426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29427}
29428
29429// PacketMirroringList: Contains a list of PacketMirroring resources.
29430type PacketMirroringList struct {
29431	// Id: [Output Only] Unique identifier for the resource; defined by the
29432	// server.
29433	Id string `json:"id,omitempty"`
29434
29435	// Items: A list of PacketMirroring resources.
29436	Items []*PacketMirroring `json:"items,omitempty"`
29437
29438	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
29439	// for packetMirrorings.
29440	Kind string `json:"kind,omitempty"`
29441
29442	// NextPageToken: [Output Only] This token allows you to get the next
29443	// page of results for list requests. If the number of results is larger
29444	// than maxResults, use the nextPageToken as a value for the query
29445	// parameter pageToken in the next list request. Subsequent list
29446	// requests will have their own nextPageToken to continue paging through
29447	// the results.
29448	NextPageToken string `json:"nextPageToken,omitempty"`
29449
29450	// SelfLink: [Output Only] Server-defined URL for this resource.
29451	SelfLink string `json:"selfLink,omitempty"`
29452
29453	// Warning: [Output Only] Informational warning message.
29454	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
29455
29456	// ServerResponse contains the HTTP response code and headers from the
29457	// server.
29458	googleapi.ServerResponse `json:"-"`
29459
29460	// ForceSendFields is a list of field names (e.g. "Id") to
29461	// unconditionally include in API requests. By default, fields with
29462	// empty values are omitted from API requests. However, any non-pointer,
29463	// non-interface field appearing in ForceSendFields will be sent to the
29464	// server regardless of whether the field is empty or not. This may be
29465	// used to include empty fields in Patch requests.
29466	ForceSendFields []string `json:"-"`
29467
29468	// NullFields is a list of field names (e.g. "Id") to include in API
29469	// requests with the JSON null value. By default, fields with empty
29470	// values are omitted from API requests. However, any field with an
29471	// empty value appearing in NullFields will be sent to the server as
29472	// null. It is an error if a field in this list has a non-empty value.
29473	// This may be used to include null fields in Patch requests.
29474	NullFields []string `json:"-"`
29475}
29476
29477func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
29478	type NoMethod PacketMirroringList
29479	raw := NoMethod(*s)
29480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29481}
29482
29483// PacketMirroringListWarning: [Output Only] Informational warning
29484// message.
29485type PacketMirroringListWarning struct {
29486	// Code: [Output Only] A warning code, if applicable. For example,
29487	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29488	// the response.
29489	//
29490	// Possible values:
29491	//   "CLEANUP_FAILED"
29492	//   "DEPRECATED_RESOURCE_USED"
29493	//   "DEPRECATED_TYPE_USED"
29494	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29495	//   "EXPERIMENTAL_TYPE_USED"
29496	//   "EXTERNAL_API_WARNING"
29497	//   "FIELD_VALUE_OVERRIDEN"
29498	//   "INJECTED_KERNELS_DEPRECATED"
29499	//   "MISSING_TYPE_DEPENDENCY"
29500	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29501	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29502	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29503	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29504	//   "NEXT_HOP_NOT_RUNNING"
29505	//   "NOT_CRITICAL_ERROR"
29506	//   "NO_RESULTS_ON_PAGE"
29507	//   "PARTIAL_SUCCESS"
29508	//   "REQUIRED_TOS_AGREEMENT"
29509	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29510	//   "RESOURCE_NOT_DELETED"
29511	//   "SCHEMA_VALIDATION_IGNORED"
29512	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29513	//   "UNDECLARED_PROPERTIES"
29514	//   "UNREACHABLE"
29515	Code string `json:"code,omitempty"`
29516
29517	// Data: [Output Only] Metadata about this warning in key: value format.
29518	// For example:
29519	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29520	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
29521
29522	// Message: [Output Only] A human-readable description of the warning
29523	// code.
29524	Message string `json:"message,omitempty"`
29525
29526	// ForceSendFields is a list of field names (e.g. "Code") to
29527	// unconditionally include in API requests. By default, fields with
29528	// empty values are omitted from API requests. However, any non-pointer,
29529	// non-interface field appearing in ForceSendFields will be sent to the
29530	// server regardless of whether the field is empty or not. This may be
29531	// used to include empty fields in Patch requests.
29532	ForceSendFields []string `json:"-"`
29533
29534	// NullFields is a list of field names (e.g. "Code") to include in API
29535	// requests with the JSON null value. By default, fields with empty
29536	// values are omitted from API requests. However, any field with an
29537	// empty value appearing in NullFields will be sent to the server as
29538	// null. It is an error if a field in this list has a non-empty value.
29539	// This may be used to include null fields in Patch requests.
29540	NullFields []string `json:"-"`
29541}
29542
29543func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
29544	type NoMethod PacketMirroringListWarning
29545	raw := NoMethod(*s)
29546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29547}
29548
29549type PacketMirroringListWarningData struct {
29550	// Key: [Output Only] A key that provides more detail on the warning
29551	// being returned. For example, for warnings where there are no results
29552	// in a list request for a particular zone, this key might be scope and
29553	// the key value might be the zone name. Other examples might be a key
29554	// indicating a deprecated resource and a suggested replacement, or a
29555	// warning about invalid network settings (for example, if an instance
29556	// attempts to perform IP forwarding but is not enabled for IP
29557	// forwarding).
29558	Key string `json:"key,omitempty"`
29559
29560	// Value: [Output Only] A warning data value corresponding to the key.
29561	Value string `json:"value,omitempty"`
29562
29563	// ForceSendFields is a list of field names (e.g. "Key") to
29564	// unconditionally include in API requests. By default, fields with
29565	// empty values are omitted from API requests. However, any non-pointer,
29566	// non-interface field appearing in ForceSendFields will be sent to the
29567	// server regardless of whether the field is empty or not. This may be
29568	// used to include empty fields in Patch requests.
29569	ForceSendFields []string `json:"-"`
29570
29571	// NullFields is a list of field names (e.g. "Key") to include in API
29572	// requests with the JSON null value. By default, fields with empty
29573	// values are omitted from API requests. However, any field with an
29574	// empty value appearing in NullFields will be sent to the server as
29575	// null. It is an error if a field in this list has a non-empty value.
29576	// This may be used to include null fields in Patch requests.
29577	NullFields []string `json:"-"`
29578}
29579
29580func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
29581	type NoMethod PacketMirroringListWarningData
29582	raw := NoMethod(*s)
29583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29584}
29585
29586type PacketMirroringMirroredResourceInfo struct {
29587	// Instances: A set of virtual machine instances that are being
29588	// mirrored. They must live in zones contained in the same region as
29589	// this packetMirroring.
29590	//
29591	// Note that this config will apply only to those network interfaces of
29592	// the Instances that belong to the network specified in this
29593	// packetMirroring.
29594	//
29595	// You may specify a maximum of 50 Instances.
29596	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
29597
29598	// Subnetworks: A set of subnetworks for which traffic from/to all VM
29599	// instances will be mirrored. They must live in the same region as this
29600	// packetMirroring.
29601	//
29602	// You may specify a maximum of 5 subnetworks.
29603	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
29604
29605	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
29606	// have one or more of these tags will be mirrored.
29607	Tags []string `json:"tags,omitempty"`
29608
29609	// ForceSendFields is a list of field names (e.g. "Instances") to
29610	// unconditionally include in API requests. By default, fields with
29611	// empty values are omitted from API requests. However, any non-pointer,
29612	// non-interface field appearing in ForceSendFields will be sent to the
29613	// server regardless of whether the field is empty or not. This may be
29614	// used to include empty fields in Patch requests.
29615	ForceSendFields []string `json:"-"`
29616
29617	// NullFields is a list of field names (e.g. "Instances") to include in
29618	// API requests with the JSON null value. By default, fields with empty
29619	// values are omitted from API requests. However, any field with an
29620	// empty value appearing in NullFields will be sent to the server as
29621	// null. It is an error if a field in this list has a non-empty value.
29622	// This may be used to include null fields in Patch requests.
29623	NullFields []string `json:"-"`
29624}
29625
29626func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
29627	type NoMethod PacketMirroringMirroredResourceInfo
29628	raw := NoMethod(*s)
29629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29630}
29631
29632type PacketMirroringMirroredResourceInfoInstanceInfo struct {
29633	// CanonicalUrl: [Output Only] Unique identifier for the instance;
29634	// defined by the server.
29635	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29636
29637	// Url: Resource URL to the virtual machine instance which is being
29638	// mirrored.
29639	Url string `json:"url,omitempty"`
29640
29641	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29642	// unconditionally include in API requests. By default, fields with
29643	// empty values are omitted from API requests. However, any non-pointer,
29644	// non-interface field appearing in ForceSendFields will be sent to the
29645	// server regardless of whether the field is empty or not. This may be
29646	// used to include empty fields in Patch requests.
29647	ForceSendFields []string `json:"-"`
29648
29649	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29650	// in API requests with the JSON null value. By default, fields with
29651	// empty values are omitted from API requests. However, any field with
29652	// an empty value appearing in NullFields will be sent to the server as
29653	// null. It is an error if a field in this list has a non-empty value.
29654	// This may be used to include null fields in Patch requests.
29655	NullFields []string `json:"-"`
29656}
29657
29658func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
29659	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
29660	raw := NoMethod(*s)
29661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29662}
29663
29664type PacketMirroringMirroredResourceInfoSubnetInfo struct {
29665	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
29666	// defined by the server.
29667	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29668
29669	// Url: Resource URL to the subnetwork for which traffic from/to all VM
29670	// instances will be mirrored.
29671	Url string `json:"url,omitempty"`
29672
29673	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29674	// unconditionally include in API requests. By default, fields with
29675	// empty values are omitted from API requests. However, any non-pointer,
29676	// non-interface field appearing in ForceSendFields will be sent to the
29677	// server regardless of whether the field is empty or not. This may be
29678	// used to include empty fields in Patch requests.
29679	ForceSendFields []string `json:"-"`
29680
29681	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29682	// in API requests with the JSON null value. By default, fields with
29683	// empty values are omitted from API requests. However, any field with
29684	// an empty value appearing in NullFields will be sent to the server as
29685	// null. It is an error if a field in this list has a non-empty value.
29686	// This may be used to include null fields in Patch requests.
29687	NullFields []string `json:"-"`
29688}
29689
29690func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
29691	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
29692	raw := NoMethod(*s)
29693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29694}
29695
29696type PacketMirroringNetworkInfo struct {
29697	// CanonicalUrl: [Output Only] Unique identifier for the network;
29698	// defined by the server.
29699	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29700
29701	// Url: URL of the network resource.
29702	Url string `json:"url,omitempty"`
29703
29704	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29705	// unconditionally include in API requests. By default, fields with
29706	// empty values are omitted from API requests. However, any non-pointer,
29707	// non-interface field appearing in ForceSendFields will be sent to the
29708	// server regardless of whether the field is empty or not. This may be
29709	// used to include empty fields in Patch requests.
29710	ForceSendFields []string `json:"-"`
29711
29712	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29713	// in API requests with the JSON null value. By default, fields with
29714	// empty values are omitted from API requests. However, any field with
29715	// an empty value appearing in NullFields will be sent to the server as
29716	// null. It is an error if a field in this list has a non-empty value.
29717	// This may be used to include null fields in Patch requests.
29718	NullFields []string `json:"-"`
29719}
29720
29721func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
29722	type NoMethod PacketMirroringNetworkInfo
29723	raw := NoMethod(*s)
29724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29725}
29726
29727type PacketMirroringsScopedList struct {
29728	// PacketMirrorings: A list of packetMirrorings contained in this scope.
29729	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
29730
29731	// Warning: Informational warning which replaces the list of
29732	// packetMirrorings when the list is empty.
29733	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
29734
29735	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
29736	// unconditionally include in API requests. By default, fields with
29737	// empty values are omitted from API requests. However, any non-pointer,
29738	// non-interface field appearing in ForceSendFields will be sent to the
29739	// server regardless of whether the field is empty or not. This may be
29740	// used to include empty fields in Patch requests.
29741	ForceSendFields []string `json:"-"`
29742
29743	// NullFields is a list of field names (e.g. "PacketMirrorings") to
29744	// include in API requests with the JSON null value. By default, fields
29745	// with empty values are omitted from API requests. However, any field
29746	// with an empty value appearing in NullFields will be sent to the
29747	// server as null. It is an error if a field in this list has a
29748	// non-empty value. This may be used to include null fields in Patch
29749	// requests.
29750	NullFields []string `json:"-"`
29751}
29752
29753func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
29754	type NoMethod PacketMirroringsScopedList
29755	raw := NoMethod(*s)
29756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29757}
29758
29759// PacketMirroringsScopedListWarning: Informational warning which
29760// replaces the list of packetMirrorings when the list is empty.
29761type PacketMirroringsScopedListWarning struct {
29762	// Code: [Output Only] A warning code, if applicable. For example,
29763	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29764	// the response.
29765	//
29766	// Possible values:
29767	//   "CLEANUP_FAILED"
29768	//   "DEPRECATED_RESOURCE_USED"
29769	//   "DEPRECATED_TYPE_USED"
29770	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29771	//   "EXPERIMENTAL_TYPE_USED"
29772	//   "EXTERNAL_API_WARNING"
29773	//   "FIELD_VALUE_OVERRIDEN"
29774	//   "INJECTED_KERNELS_DEPRECATED"
29775	//   "MISSING_TYPE_DEPENDENCY"
29776	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29777	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29778	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29779	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29780	//   "NEXT_HOP_NOT_RUNNING"
29781	//   "NOT_CRITICAL_ERROR"
29782	//   "NO_RESULTS_ON_PAGE"
29783	//   "PARTIAL_SUCCESS"
29784	//   "REQUIRED_TOS_AGREEMENT"
29785	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29786	//   "RESOURCE_NOT_DELETED"
29787	//   "SCHEMA_VALIDATION_IGNORED"
29788	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29789	//   "UNDECLARED_PROPERTIES"
29790	//   "UNREACHABLE"
29791	Code string `json:"code,omitempty"`
29792
29793	// Data: [Output Only] Metadata about this warning in key: value format.
29794	// For example:
29795	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29796	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
29797
29798	// Message: [Output Only] A human-readable description of the warning
29799	// code.
29800	Message string `json:"message,omitempty"`
29801
29802	// ForceSendFields is a list of field names (e.g. "Code") to
29803	// unconditionally include in API requests. By default, fields with
29804	// empty values are omitted from API requests. However, any non-pointer,
29805	// non-interface field appearing in ForceSendFields will be sent to the
29806	// server regardless of whether the field is empty or not. This may be
29807	// used to include empty fields in Patch requests.
29808	ForceSendFields []string `json:"-"`
29809
29810	// NullFields is a list of field names (e.g. "Code") to include in API
29811	// requests with the JSON null value. By default, fields with empty
29812	// values are omitted from API requests. However, any field with an
29813	// empty value appearing in NullFields will be sent to the server as
29814	// null. It is an error if a field in this list has a non-empty value.
29815	// This may be used to include null fields in Patch requests.
29816	NullFields []string `json:"-"`
29817}
29818
29819func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
29820	type NoMethod PacketMirroringsScopedListWarning
29821	raw := NoMethod(*s)
29822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29823}
29824
29825type PacketMirroringsScopedListWarningData struct {
29826	// Key: [Output Only] A key that provides more detail on the warning
29827	// being returned. For example, for warnings where there are no results
29828	// in a list request for a particular zone, this key might be scope and
29829	// the key value might be the zone name. Other examples might be a key
29830	// indicating a deprecated resource and a suggested replacement, or a
29831	// warning about invalid network settings (for example, if an instance
29832	// attempts to perform IP forwarding but is not enabled for IP
29833	// forwarding).
29834	Key string `json:"key,omitempty"`
29835
29836	// Value: [Output Only] A warning data value corresponding to the key.
29837	Value string `json:"value,omitempty"`
29838
29839	// ForceSendFields is a list of field names (e.g. "Key") to
29840	// unconditionally include in API requests. By default, fields with
29841	// empty values are omitted from API requests. However, any non-pointer,
29842	// non-interface field appearing in ForceSendFields will be sent to the
29843	// server regardless of whether the field is empty or not. This may be
29844	// used to include empty fields in Patch requests.
29845	ForceSendFields []string `json:"-"`
29846
29847	// NullFields is a list of field names (e.g. "Key") to include in API
29848	// requests with the JSON null value. By default, fields with empty
29849	// values are omitted from API requests. However, any field with an
29850	// empty value appearing in NullFields will be sent to the server as
29851	// null. It is an error if a field in this list has a non-empty value.
29852	// This may be used to include null fields in Patch requests.
29853	NullFields []string `json:"-"`
29854}
29855
29856func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
29857	type NoMethod PacketMirroringsScopedListWarningData
29858	raw := NoMethod(*s)
29859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29860}
29861
29862// PathMatcher: A matcher for the path portion of the URL. The
29863// BackendService from the longest-matched rule will serve the URL. If
29864// no rule was matched, the default service will be used.
29865type PathMatcher struct {
29866	// DefaultRouteAction: defaultRouteAction takes effect when none of the
29867	// pathRules or routeRules match. The load balancer performs advanced
29868	// routing actions like URL rewrites, header transformations, etc. prior
29869	// to forwarding the request to the selected backend. If
29870	// defaultRouteAction specifies any weightedBackendServices,
29871	// defaultService must not be set. Conversely if defaultService is set,
29872	// defaultRouteAction cannot contain any  weightedBackendServices.
29873	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
29874	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
29875
29876	// DefaultService: The full or partial URL to the BackendService
29877	// resource. This will be used if none of the pathRules or routeRules
29878	// defined by this PathMatcher are matched. For example, the following
29879	// are all valid URLs to a BackendService resource:
29880	// -
29881	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
29882	// - compute/v1/projects/project/global/backendServices/backendService
29883	//
29884	// - global/backendServices/backendService  If defaultRouteAction is
29885	// additionally specified, advanced routing actions like URL Rewrites,
29886	// etc. take effect prior to sending the request to the backend.
29887	// However, if defaultService is specified, defaultRouteAction cannot
29888	// contain any weightedBackendServices. Conversely, if
29889	// defaultRouteAction specifies any weightedBackendServices,
29890	// defaultService must not be specified.
29891	// Only one of defaultService, defaultUrlRedirect  or
29892	// defaultRouteAction.weightedBackendService must be set.
29893	// Authorization requires one or more of the following Google IAM
29894	// permissions on the specified resource default_service:
29895	// - compute.backendBuckets.use
29896	// - compute.backendServices.use
29897	DefaultService string `json:"defaultService,omitempty"`
29898
29899	// DefaultUrlRedirect: When none of the specified pathRules or
29900	// routeRules match, the request is redirected to a URL specified by
29901	// defaultUrlRedirect.
29902	// If defaultUrlRedirect is specified, defaultService or
29903	// defaultRouteAction must not be set.
29904	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
29905
29906	// Description: An optional description of this resource. Provide this
29907	// property when you create the resource.
29908	Description string `json:"description,omitempty"`
29909
29910	// HeaderAction: Specifies changes to request and response headers that
29911	// need to take effect for the selected backendService.
29912	// HeaderAction specified here are applied after the matching
29913	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
29914	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
29915
29916	// Name: The name to which this PathMatcher is referred by the HostRule.
29917	Name string `json:"name,omitempty"`
29918
29919	// PathRules: The list of path rules. Use this list instead of
29920	// routeRules when routing based on simple path matching is all that's
29921	// required. The order by which path rules are specified does not
29922	// matter. Matches are always done on the longest-path-first basis.
29923	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
29924	// irrespective of the order in which those paths appear in this
29925	// list.
29926	// Within a given pathMatcher, only one of pathRules or routeRules must
29927	// be set.
29928	PathRules []*PathRule `json:"pathRules,omitempty"`
29929
29930	// RouteRules: The list of HTTP route rules. Use this list instead of
29931	// pathRules when advanced route matching and routing actions are
29932	// desired. routeRules are evaluated in order of priority, from the
29933	// lowest to highest number.
29934	// Within a given pathMatcher, you can set only one of pathRules or
29935	// routeRules.
29936	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
29937
29938	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
29939	// to unconditionally include in API requests. By default, fields with
29940	// empty values are omitted from API requests. However, any non-pointer,
29941	// non-interface field appearing in ForceSendFields will be sent to the
29942	// server regardless of whether the field is empty or not. This may be
29943	// used to include empty fields in Patch requests.
29944	ForceSendFields []string `json:"-"`
29945
29946	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
29947	// include in API requests with the JSON null value. By default, fields
29948	// with empty values are omitted from API requests. However, any field
29949	// with an empty value appearing in NullFields will be sent to the
29950	// server as null. It is an error if a field in this list has a
29951	// non-empty value. This may be used to include null fields in Patch
29952	// requests.
29953	NullFields []string `json:"-"`
29954}
29955
29956func (s *PathMatcher) MarshalJSON() ([]byte, error) {
29957	type NoMethod PathMatcher
29958	raw := NoMethod(*s)
29959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29960}
29961
29962// PathRule: A path-matching rule for a URL. If matched, will use the
29963// specified BackendService to handle the traffic arriving at this URL.
29964type PathRule struct {
29965	// Paths: The list of path patterns to match. Each must start with / and
29966	// the only place a * is allowed is at the end following a /. The string
29967	// fed to the path matcher does not include any text after the first ?
29968	// or #, and those chars are not allowed here.
29969	Paths []string `json:"paths,omitempty"`
29970
29971	// RouteAction: In response to a matching path, the load balancer
29972	// performs advanced routing actions like URL rewrites, header
29973	// transformations, etc. prior to forwarding the request to the selected
29974	// backend. If routeAction specifies any  weightedBackendServices,
29975	// service must not be set. Conversely if service is set, routeAction
29976	// cannot contain any  weightedBackendServices.
29977	// Only one of routeAction or urlRedirect must be set.
29978	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
29979
29980	// Service: The full or partial URL of the backend service resource to
29981	// which traffic is directed if this rule is matched. If routeAction is
29982	// additionally specified, advanced routing actions like URL Rewrites,
29983	// etc. take effect prior to sending the request to the backend.
29984	// However, if service is specified, routeAction cannot contain any
29985	// weightedBackendService s. Conversely, if routeAction specifies any
29986	// weightedBackendServices, service must not be specified.
29987	// Only one of urlRedirect, service or
29988	// routeAction.weightedBackendService must be set.
29989	Service string `json:"service,omitempty"`
29990
29991	// UrlRedirect: When a path pattern is matched, the request is
29992	// redirected to a URL specified by urlRedirect.
29993	// If urlRedirect is specified, service or routeAction must not be set.
29994	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
29995
29996	// ForceSendFields is a list of field names (e.g. "Paths") to
29997	// unconditionally include in API requests. By default, fields with
29998	// empty values are omitted from API requests. However, any non-pointer,
29999	// non-interface field appearing in ForceSendFields will be sent to the
30000	// server regardless of whether the field is empty or not. This may be
30001	// used to include empty fields in Patch requests.
30002	ForceSendFields []string `json:"-"`
30003
30004	// NullFields is a list of field names (e.g. "Paths") to include in API
30005	// requests with the JSON null value. By default, fields with empty
30006	// values are omitted from API requests. However, any field with an
30007	// empty value appearing in NullFields will be sent to the server as
30008	// null. It is an error if a field in this list has a non-empty value.
30009	// This may be used to include null fields in Patch requests.
30010	NullFields []string `json:"-"`
30011}
30012
30013func (s *PathRule) MarshalJSON() ([]byte, error) {
30014	type NoMethod PathRule
30015	raw := NoMethod(*s)
30016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30017}
30018
30019// PeerAuthenticationMethod: [Deprecated] Configuration for the peer
30020// authentication method. Configuration for the peer authentication
30021// method.
30022type PeerAuthenticationMethod struct {
30023	// Mtls: Set if mTLS is used for peer authentication.
30024	Mtls *MutualTls `json:"mtls,omitempty"`
30025
30026	// ForceSendFields is a list of field names (e.g. "Mtls") to
30027	// unconditionally include in API requests. By default, fields with
30028	// empty values are omitted from API requests. However, any non-pointer,
30029	// non-interface field appearing in ForceSendFields will be sent to the
30030	// server regardless of whether the field is empty or not. This may be
30031	// used to include empty fields in Patch requests.
30032	ForceSendFields []string `json:"-"`
30033
30034	// NullFields is a list of field names (e.g. "Mtls") to include in API
30035	// requests with the JSON null value. By default, fields with empty
30036	// values are omitted from API requests. However, any field with an
30037	// empty value appearing in NullFields will be sent to the server as
30038	// null. It is an error if a field in this list has a non-empty value.
30039	// This may be used to include null fields in Patch requests.
30040	NullFields []string `json:"-"`
30041}
30042
30043func (s *PeerAuthenticationMethod) MarshalJSON() ([]byte, error) {
30044	type NoMethod PeerAuthenticationMethod
30045	raw := NoMethod(*s)
30046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30047}
30048
30049type PerInstanceConfig struct {
30050	// Fingerprint: Fingerprint of this per-instance config. This field can
30051	// be used in optimistic locking. It is ignored when inserting a
30052	// per-instance config. An up-to-date fingerprint must be provided in
30053	// order to update an existing per-instance config or the field needs to
30054	// be unset.
30055	Fingerprint string `json:"fingerprint,omitempty"`
30056
30057	// Name: The name of a per-instance config and its corresponding
30058	// instance. Serves as a merge key during UpdatePerInstanceConfigs
30059	// operations, that is, if a per-instance config with the same name
30060	// exists then it will be updated, otherwise a new one will be created
30061	// for the VM instance with the same name. An attempt to create a
30062	// per-instance config for a VM instance that either doesn't exist or is
30063	// not part of the group will result in an error.
30064	Name string `json:"name,omitempty"`
30065
30066	// PreservedState: The intended preserved state for the given instance.
30067	// Does not contain preserved state generated from a stateful policy.
30068	PreservedState *PreservedState `json:"preservedState,omitempty"`
30069
30070	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
30071	// unconditionally include in API requests. By default, fields with
30072	// empty values are omitted from API requests. However, any non-pointer,
30073	// non-interface field appearing in ForceSendFields will be sent to the
30074	// server regardless of whether the field is empty or not. This may be
30075	// used to include empty fields in Patch requests.
30076	ForceSendFields []string `json:"-"`
30077
30078	// NullFields is a list of field names (e.g. "Fingerprint") to include
30079	// in API requests with the JSON null value. By default, fields with
30080	// empty values are omitted from API requests. However, any field with
30081	// an empty value appearing in NullFields will be sent to the server as
30082	// null. It is an error if a field in this list has a non-empty value.
30083	// This may be used to include null fields in Patch requests.
30084	NullFields []string `json:"-"`
30085}
30086
30087func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
30088	type NoMethod PerInstanceConfig
30089	raw := NoMethod(*s)
30090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30091}
30092
30093// Permission: [Deprecated] All fields defined in a permission are
30094// ANDed.
30095type Permission struct {
30096	// Constraints: Extra custom constraints. The constraints are ANDed
30097	// together.
30098	Constraints []*PermissionConstraint `json:"constraints,omitempty"`
30099
30100	// Hosts: Used in Ingress or Egress Gateway cases to specify hosts that
30101	// the policy applies to. Exact match, prefix match, and suffix match
30102	// are supported.
30103	Hosts []string `json:"hosts,omitempty"`
30104
30105	// Methods: HTTP method.
30106	Methods []string `json:"methods,omitempty"`
30107
30108	// NotHosts: Negate of hosts. Specifies exclusions.
30109	NotHosts []string `json:"notHosts,omitempty"`
30110
30111	// NotMethods: Negate of methods. Specifies exclusions.
30112	NotMethods []string `json:"notMethods,omitempty"`
30113
30114	// NotPaths: Negate of paths. Specifies exclusions.
30115	NotPaths []string `json:"notPaths,omitempty"`
30116
30117	// NotPorts: Negate of ports. Specifies exclusions.
30118	NotPorts []string `json:"notPorts,omitempty"`
30119
30120	// Paths: HTTP request paths or gRPC methods. Exact match, prefix match,
30121	// and suffix match are supported.
30122	Paths []string `json:"paths,omitempty"`
30123
30124	// Ports: Port names or numbers.
30125	Ports []string `json:"ports,omitempty"`
30126
30127	// ForceSendFields is a list of field names (e.g. "Constraints") to
30128	// unconditionally include in API requests. By default, fields with
30129	// empty values are omitted from API requests. However, any non-pointer,
30130	// non-interface field appearing in ForceSendFields will be sent to the
30131	// server regardless of whether the field is empty or not. This may be
30132	// used to include empty fields in Patch requests.
30133	ForceSendFields []string `json:"-"`
30134
30135	// NullFields is a list of field names (e.g. "Constraints") to include
30136	// in API requests with the JSON null value. By default, fields with
30137	// empty values are omitted from API requests. However, any field with
30138	// an empty value appearing in NullFields will be sent to the server as
30139	// null. It is an error if a field in this list has a non-empty value.
30140	// This may be used to include null fields in Patch requests.
30141	NullFields []string `json:"-"`
30142}
30143
30144func (s *Permission) MarshalJSON() ([]byte, error) {
30145	type NoMethod Permission
30146	raw := NoMethod(*s)
30147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30148}
30149
30150// PermissionConstraint: Custom constraint that specifies a key and a
30151// list of allowed values for Istio attributes.
30152type PermissionConstraint struct {
30153	// Key: Key of the constraint.
30154	Key string `json:"key,omitempty"`
30155
30156	// Values: A list of allowed values.
30157	Values []string `json:"values,omitempty"`
30158
30159	// ForceSendFields is a list of field names (e.g. "Key") to
30160	// unconditionally include in API requests. By default, fields with
30161	// empty values are omitted from API requests. However, any non-pointer,
30162	// non-interface field appearing in ForceSendFields will be sent to the
30163	// server regardless of whether the field is empty or not. This may be
30164	// used to include empty fields in Patch requests.
30165	ForceSendFields []string `json:"-"`
30166
30167	// NullFields is a list of field names (e.g. "Key") to include in API
30168	// requests with the JSON null value. By default, fields with empty
30169	// values are omitted from API requests. However, any field with an
30170	// empty value appearing in NullFields will be sent to the server as
30171	// null. It is an error if a field in this list has a non-empty value.
30172	// This may be used to include null fields in Patch requests.
30173	NullFields []string `json:"-"`
30174}
30175
30176func (s *PermissionConstraint) MarshalJSON() ([]byte, error) {
30177	type NoMethod PermissionConstraint
30178	raw := NoMethod(*s)
30179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30180}
30181
30182// Policy: An Identity and Access Management (IAM) policy, which
30183// specifies access controls for Google Cloud resources.
30184//
30185//
30186//
30187// A `Policy` is a collection of `bindings`. A `binding` binds one or
30188// more `members` to a single `role`. Members can be user accounts,
30189// service accounts, Google groups, and domains (such as G Suite). A
30190// `role` is a named list of permissions; each `role` can be an IAM
30191// predefined role or a user-created custom role.
30192//
30193// Optionally, a `binding` can specify a `condition`, which is a logical
30194// expression that allows access to a resource only if the expression
30195// evaluates to `true`. A condition can add constraints based on
30196// attributes of the request, the resource, or both.
30197//
30198// **JSON example:**
30199//
30200// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
30201// "members": [ "user:mike@example.com", "group:admins@example.com",
30202// "domain:google.com",
30203// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
30204// "role": "roles/resourcemanager.organizationViewer", "members":
30205// ["user:eve@example.com"], "condition": { "title": "expirable access",
30206// "description": "Does not grant access after Sep 2020", "expression":
30207// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
30208// "etag": "BwWWja0YfJA=", "version": 3 }
30209//
30210// **YAML example:**
30211//
30212// bindings: - members: - user:mike@example.com -
30213// group:admins@example.com - domain:google.com -
30214// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
30215// roles/resourcemanager.organizationAdmin - members: -
30216// user:eve@example.com role: roles/resourcemanager.organizationViewer
30217// condition: title: expirable access description: Does not grant access
30218// after Sep 2020 expression: request.time <
30219// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
30220// 3
30221//
30222// For a description of IAM and its features, see the [IAM
30223// documentation](https://cloud.google.com/iam/docs/).
30224type Policy struct {
30225	// AuditConfigs: Specifies cloud audit logging configuration for this
30226	// policy.
30227	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
30228
30229	// Bindings: Associates a list of `members` to a `role`. Optionally, may
30230	// specify a `condition` that determines how and when the `bindings` are
30231	// applied. Each of the `bindings` must contain at least one member.
30232	Bindings []*Binding `json:"bindings,omitempty"`
30233
30234	// Etag: `etag` is used for optimistic concurrency control as a way to
30235	// help prevent simultaneous updates of a policy from overwriting each
30236	// other. It is strongly suggested that systems make use of the `etag`
30237	// in the read-modify-write cycle to perform policy updates in order to
30238	// avoid race conditions: An `etag` is returned in the response to
30239	// `getIamPolicy`, and systems are expected to put that etag in the
30240	// request to `setIamPolicy` to ensure that their change will be applied
30241	// to the same version of the policy.
30242	//
30243	// **Important:** If you use IAM Conditions, you must include the `etag`
30244	// field whenever you call `setIamPolicy`. If you omit this field, then
30245	// IAM allows you to overwrite a version `3` policy with a version `1`
30246	// policy, and all of the conditions in the version `3` policy are lost.
30247	Etag string `json:"etag,omitempty"`
30248
30249	IamOwned bool `json:"iamOwned,omitempty"`
30250
30251	// Rules: If more than one rule is specified, the rules are applied in
30252	// the following manner: - All matching LOG rules are always applied. -
30253	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
30254	// will be applied if one or more matching rule requires logging. -
30255	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
30256	// granted. Logging will be applied if one or more matching rule
30257	// requires logging. - Otherwise, if no rule applies, permission is
30258	// denied.
30259	Rules []*Rule `json:"rules,omitempty"`
30260
30261	// Version: Specifies the format of the policy.
30262	//
30263	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
30264	// value are rejected.
30265	//
30266	// Any operation that affects conditional role bindings must specify
30267	// version `3`. This requirement applies to the following operations:
30268	//
30269	// * Getting a policy that includes a conditional role binding * Adding
30270	// a conditional role binding to a policy * Changing a conditional role
30271	// binding in a policy * Removing any role binding, with or without a
30272	// condition, from a policy that includes conditions
30273	//
30274	// **Important:** If you use IAM Conditions, you must include the `etag`
30275	// field whenever you call `setIamPolicy`. If you omit this field, then
30276	// IAM allows you to overwrite a version `3` policy with a version `1`
30277	// policy, and all of the conditions in the version `3` policy are
30278	// lost.
30279	//
30280	// If a policy does not include any conditions, operations on that
30281	// policy may specify any valid version or leave the field unset.
30282	Version int64 `json:"version,omitempty"`
30283
30284	// ServerResponse contains the HTTP response code and headers from the
30285	// server.
30286	googleapi.ServerResponse `json:"-"`
30287
30288	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
30289	// unconditionally include in API requests. By default, fields with
30290	// empty values are omitted from API requests. However, any non-pointer,
30291	// non-interface field appearing in ForceSendFields will be sent to the
30292	// server regardless of whether the field is empty or not. This may be
30293	// used to include empty fields in Patch requests.
30294	ForceSendFields []string `json:"-"`
30295
30296	// NullFields is a list of field names (e.g. "AuditConfigs") to include
30297	// in API requests with the JSON null value. By default, fields with
30298	// empty values are omitted from API requests. However, any field with
30299	// an empty value appearing in NullFields will be sent to the server as
30300	// null. It is an error if a field in this list has a non-empty value.
30301	// This may be used to include null fields in Patch requests.
30302	NullFields []string `json:"-"`
30303}
30304
30305func (s *Policy) MarshalJSON() ([]byte, error) {
30306	type NoMethod Policy
30307	raw := NoMethod(*s)
30308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30309}
30310
30311type PreconfiguredWafSet struct {
30312	// ExpressionSets: List of entities that are currently supported for WAF
30313	// rules.
30314	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
30315
30316	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
30317	// unconditionally include in API requests. By default, fields with
30318	// empty values are omitted from API requests. However, any non-pointer,
30319	// non-interface field appearing in ForceSendFields will be sent to the
30320	// server regardless of whether the field is empty or not. This may be
30321	// used to include empty fields in Patch requests.
30322	ForceSendFields []string `json:"-"`
30323
30324	// NullFields is a list of field names (e.g. "ExpressionSets") to
30325	// include in API requests with the JSON null value. By default, fields
30326	// with empty values are omitted from API requests. However, any field
30327	// with an empty value appearing in NullFields will be sent to the
30328	// server as null. It is an error if a field in this list has a
30329	// non-empty value. This may be used to include null fields in Patch
30330	// requests.
30331	NullFields []string `json:"-"`
30332}
30333
30334func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
30335	type NoMethod PreconfiguredWafSet
30336	raw := NoMethod(*s)
30337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30338}
30339
30340// PreservedState: Preserved state for a given instance.
30341type PreservedState struct {
30342	// Disks: Preserved disks defined for this instance. This map is keyed
30343	// with the device names of the disks.
30344	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
30345
30346	// Metadata: Preserved metadata defined for this instance.
30347	Metadata map[string]string `json:"metadata,omitempty"`
30348
30349	// ForceSendFields is a list of field names (e.g. "Disks") to
30350	// unconditionally include in API requests. By default, fields with
30351	// empty values are omitted from API requests. However, any non-pointer,
30352	// non-interface field appearing in ForceSendFields will be sent to the
30353	// server regardless of whether the field is empty or not. This may be
30354	// used to include empty fields in Patch requests.
30355	ForceSendFields []string `json:"-"`
30356
30357	// NullFields is a list of field names (e.g. "Disks") to include in API
30358	// requests with the JSON null value. By default, fields with empty
30359	// values are omitted from API requests. However, any field with an
30360	// empty value appearing in NullFields will be sent to the server as
30361	// null. It is an error if a field in this list has a non-empty value.
30362	// This may be used to include null fields in Patch requests.
30363	NullFields []string `json:"-"`
30364}
30365
30366func (s *PreservedState) MarshalJSON() ([]byte, error) {
30367	type NoMethod PreservedState
30368	raw := NoMethod(*s)
30369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30370}
30371
30372type PreservedStatePreservedDisk struct {
30373	// AutoDelete: These stateful disks will never be deleted during
30374	// autohealing, update, instance recreate operations. This flag is used
30375	// to configure if the disk should be deleted after it is no longer used
30376	// by the group, e.g. when the given instance or the whole MIG is
30377	// deleted. Note: disks attached in READ_ONLY mode cannot be
30378	// auto-deleted.
30379	//
30380	// Possible values:
30381	//   "NEVER"
30382	//   "ON_PERMANENT_INSTANCE_DELETION"
30383	AutoDelete string `json:"autoDelete,omitempty"`
30384
30385	// Mode: The mode in which to attach this disk, either READ_WRITE or
30386	// READ_ONLY. If not specified, the default is to attach the disk in
30387	// READ_WRITE mode.
30388	//
30389	// Possible values:
30390	//   "READ_ONLY"
30391	//   "READ_WRITE"
30392	Mode string `json:"mode,omitempty"`
30393
30394	// Source: The URL of the disk resource that is stateful and should be
30395	// attached to the VM instance.
30396	Source string `json:"source,omitempty"`
30397
30398	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
30399	// unconditionally include in API requests. By default, fields with
30400	// empty values are omitted from API requests. However, any non-pointer,
30401	// non-interface field appearing in ForceSendFields will be sent to the
30402	// server regardless of whether the field is empty or not. This may be
30403	// used to include empty fields in Patch requests.
30404	ForceSendFields []string `json:"-"`
30405
30406	// NullFields is a list of field names (e.g. "AutoDelete") to include in
30407	// API requests with the JSON null value. By default, fields with empty
30408	// values are omitted from API requests. However, any field with an
30409	// empty value appearing in NullFields will be sent to the server as
30410	// null. It is an error if a field in this list has a non-empty value.
30411	// This may be used to include null fields in Patch requests.
30412	NullFields []string `json:"-"`
30413}
30414
30415func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
30416	type NoMethod PreservedStatePreservedDisk
30417	raw := NoMethod(*s)
30418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30419}
30420
30421// Principal: [Deprecated] All fields defined in a principal are ANDed.
30422type Principal struct {
30423	// Condition: An expression to specify custom condition.
30424	Condition string `json:"condition,omitempty"`
30425
30426	// Groups: The groups the principal belongs to. Exact match, prefix
30427	// match, and suffix match are supported.
30428	Groups []string `json:"groups,omitempty"`
30429
30430	// Ips: IPv4 or IPv6 address or range (In CIDR format)
30431	Ips []string `json:"ips,omitempty"`
30432
30433	// Namespaces: The namespaces. Exact match, prefix match, and suffix
30434	// match are supported.
30435	Namespaces []string `json:"namespaces,omitempty"`
30436
30437	// NotGroups: Negate of groups. Specifies exclusions.
30438	NotGroups []string `json:"notGroups,omitempty"`
30439
30440	// NotIps: Negate of IPs. Specifies exclusions.
30441	NotIps []string `json:"notIps,omitempty"`
30442
30443	// NotNamespaces: Negate of namespaces. Specifies exclusions.
30444	NotNamespaces []string `json:"notNamespaces,omitempty"`
30445
30446	// NotUsers: Negate of users. Specifies exclusions.
30447	NotUsers []string `json:"notUsers,omitempty"`
30448
30449	// Properties: A map of Istio attribute to expected values. Exact match,
30450	// prefix match, and suffix match are supported for values. For example,
30451	// `request.headers[version]: "v1". The properties are ANDed together.
30452	Properties map[string]string `json:"properties,omitempty"`
30453
30454	// Users: The user names/IDs or service accounts. Exact match, prefix
30455	// match, and suffix match are supported.
30456	Users []string `json:"users,omitempty"`
30457
30458	// ForceSendFields is a list of field names (e.g. "Condition") to
30459	// unconditionally include in API requests. By default, fields with
30460	// empty values are omitted from API requests. However, any non-pointer,
30461	// non-interface field appearing in ForceSendFields will be sent to the
30462	// server regardless of whether the field is empty or not. This may be
30463	// used to include empty fields in Patch requests.
30464	ForceSendFields []string `json:"-"`
30465
30466	// NullFields is a list of field names (e.g. "Condition") to include in
30467	// API requests with the JSON null value. By default, fields with empty
30468	// values are omitted from API requests. However, any field with an
30469	// empty value appearing in NullFields will be sent to the server as
30470	// null. It is an error if a field in this list has a non-empty value.
30471	// This may be used to include null fields in Patch requests.
30472	NullFields []string `json:"-"`
30473}
30474
30475func (s *Principal) MarshalJSON() ([]byte, error) {
30476	type NoMethod Principal
30477	raw := NoMethod(*s)
30478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30479}
30480
30481// Project: Represents a Project resource.
30482//
30483// A project is used to organize resources in a Google Cloud Platform
30484// environment. For more information, read about the  Resource
30485// Hierarchy. (== resource_for {$api_version}.projects ==)
30486type Project struct {
30487	// CommonInstanceMetadata: Metadata key/value pairs available to all
30488	// instances contained in this project. See Custom metadata for more
30489	// information.
30490	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
30491
30492	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30493	// format.
30494	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30495
30496	// DefaultNetworkTier: This signifies the default network tier used for
30497	// configuring resources of the project and can only take the following
30498	// values: PREMIUM, STANDARD. Initially the default network tier is
30499	// PREMIUM.
30500	//
30501	// Possible values:
30502	//   "PREMIUM"
30503	//   "SELECT"
30504	//   "STANDARD"
30505	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
30506
30507	// DefaultServiceAccount: [Output Only] Default service account used by
30508	// VMs running in this project.
30509	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
30510
30511	// Description: An optional textual description of the resource.
30512	Description string `json:"description,omitempty"`
30513
30514	// EnabledFeatures: Restricted features enabled for use on this project.
30515	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
30516
30517	// Id: [Output Only] The unique identifier for the resource. This
30518	// identifier is defined by the server. This is not the project ID, and
30519	// is just a unique ID used by Compute Engine to identify resources.
30520	Id uint64 `json:"id,omitempty,string"`
30521
30522	// Kind: [Output Only] Type of the resource. Always compute#project for
30523	// projects.
30524	Kind string `json:"kind,omitempty"`
30525
30526	// Name: The project ID. For example: my-example-project. Use the
30527	// project ID to make requests to Compute Engine.
30528	Name string `json:"name,omitempty"`
30529
30530	// Quotas: [Output Only] Quotas assigned to this project.
30531	Quotas []*Quota `json:"quotas,omitempty"`
30532
30533	// SelfLink: [Output Only] Server-defined URL for the resource.
30534	SelfLink string `json:"selfLink,omitempty"`
30535
30536	// UsageExportLocation: The naming prefix for daily usage reports and
30537	// the Google Cloud Storage bucket where they are stored.
30538	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
30539
30540	// XpnProjectStatus: [Output Only] The role this project has in a shared
30541	// VPC configuration. Currently only HOST projects are differentiated.
30542	//
30543	// Possible values:
30544	//   "HOST"
30545	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
30546	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
30547
30548	// ServerResponse contains the HTTP response code and headers from the
30549	// server.
30550	googleapi.ServerResponse `json:"-"`
30551
30552	// ForceSendFields is a list of field names (e.g.
30553	// "CommonInstanceMetadata") to unconditionally include in API requests.
30554	// By default, fields with empty values are omitted from API requests.
30555	// However, any non-pointer, non-interface field appearing in
30556	// ForceSendFields will be sent to the server regardless of whether the
30557	// field is empty or not. This may be used to include empty fields in
30558	// Patch requests.
30559	ForceSendFields []string `json:"-"`
30560
30561	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
30562	// to include in API requests with the JSON null value. By default,
30563	// fields with empty values are omitted from API requests. However, any
30564	// field with an empty value appearing in NullFields will be sent to the
30565	// server as null. It is an error if a field in this list has a
30566	// non-empty value. This may be used to include null fields in Patch
30567	// requests.
30568	NullFields []string `json:"-"`
30569}
30570
30571func (s *Project) MarshalJSON() ([]byte, error) {
30572	type NoMethod Project
30573	raw := NoMethod(*s)
30574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30575}
30576
30577type ProjectsDisableXpnResourceRequest struct {
30578	// XpnResource: Service resource (a.k.a service project) ID.
30579	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
30580
30581	// ForceSendFields is a list of field names (e.g. "XpnResource") to
30582	// unconditionally include in API requests. By default, fields with
30583	// empty values are omitted from API requests. However, any non-pointer,
30584	// non-interface field appearing in ForceSendFields will be sent to the
30585	// server regardless of whether the field is empty or not. This may be
30586	// used to include empty fields in Patch requests.
30587	ForceSendFields []string `json:"-"`
30588
30589	// NullFields is a list of field names (e.g. "XpnResource") to include
30590	// in API requests with the JSON null value. By default, fields with
30591	// empty values are omitted from API requests. However, any field with
30592	// an empty value appearing in NullFields will be sent to the server as
30593	// null. It is an error if a field in this list has a non-empty value.
30594	// This may be used to include null fields in Patch requests.
30595	NullFields []string `json:"-"`
30596}
30597
30598func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
30599	type NoMethod ProjectsDisableXpnResourceRequest
30600	raw := NoMethod(*s)
30601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30602}
30603
30604type ProjectsEnableXpnResourceRequest struct {
30605	// XpnResource: Service resource (a.k.a service project) ID.
30606	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
30607
30608	// ForceSendFields is a list of field names (e.g. "XpnResource") to
30609	// unconditionally include in API requests. By default, fields with
30610	// empty values are omitted from API requests. However, any non-pointer,
30611	// non-interface field appearing in ForceSendFields will be sent to the
30612	// server regardless of whether the field is empty or not. This may be
30613	// used to include empty fields in Patch requests.
30614	ForceSendFields []string `json:"-"`
30615
30616	// NullFields is a list of field names (e.g. "XpnResource") to include
30617	// in API requests with the JSON null value. By default, fields with
30618	// empty values are omitted from API requests. However, any field with
30619	// an 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 *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
30626	type NoMethod ProjectsEnableXpnResourceRequest
30627	raw := NoMethod(*s)
30628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30629}
30630
30631type ProjectsGetXpnResources struct {
30632	// Kind: [Output Only] Type of resource. Always
30633	// compute#projectsGetXpnResources for lists of service resources (a.k.a
30634	// service projects)
30635	Kind string `json:"kind,omitempty"`
30636
30637	// NextPageToken: [Output Only] This token allows you to get the next
30638	// page of results for list requests. If the number of results is larger
30639	// than maxResults, use the nextPageToken as a value for the query
30640	// parameter pageToken in the next list request. Subsequent list
30641	// requests will have their own nextPageToken to continue paging through
30642	// the results.
30643	NextPageToken string `json:"nextPageToken,omitempty"`
30644
30645	// Resources: Service resources (a.k.a service projects) attached to
30646	// this project as their shared VPC host.
30647	Resources []*XpnResourceId `json:"resources,omitempty"`
30648
30649	// ServerResponse contains the HTTP response code and headers from the
30650	// server.
30651	googleapi.ServerResponse `json:"-"`
30652
30653	// ForceSendFields is a list of field names (e.g. "Kind") to
30654	// unconditionally include in API requests. By default, fields with
30655	// empty values are omitted from API requests. However, any non-pointer,
30656	// non-interface field appearing in ForceSendFields will be sent to the
30657	// server regardless of whether the field is empty or not. This may be
30658	// used to include empty fields in Patch requests.
30659	ForceSendFields []string `json:"-"`
30660
30661	// NullFields is a list of field names (e.g. "Kind") to include in API
30662	// requests with the JSON null value. By default, fields with empty
30663	// values are omitted from API requests. However, any field with an
30664	// empty value appearing in NullFields will be sent to the server as
30665	// null. It is an error if a field in this list has a non-empty value.
30666	// This may be used to include null fields in Patch requests.
30667	NullFields []string `json:"-"`
30668}
30669
30670func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
30671	type NoMethod ProjectsGetXpnResources
30672	raw := NoMethod(*s)
30673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30674}
30675
30676type ProjectsListXpnHostsRequest struct {
30677	// Organization: Optional organization ID managed by Cloud Resource
30678	// Manager, for which to list shared VPC host projects. If not
30679	// specified, the organization will be inferred from the project.
30680	Organization string `json:"organization,omitempty"`
30681
30682	// ForceSendFields is a list of field names (e.g. "Organization") to
30683	// unconditionally include in API requests. By default, fields with
30684	// empty values are omitted from API requests. However, any non-pointer,
30685	// non-interface field appearing in ForceSendFields will be sent to the
30686	// server regardless of whether the field is empty or not. This may be
30687	// used to include empty fields in Patch requests.
30688	ForceSendFields []string `json:"-"`
30689
30690	// NullFields is a list of field names (e.g. "Organization") to include
30691	// in API requests with the JSON null value. By default, fields with
30692	// empty values are omitted from API requests. However, any field with
30693	// an empty value appearing in NullFields will be sent to the server as
30694	// null. It is an error if a field in this list has a non-empty value.
30695	// This may be used to include null fields in Patch requests.
30696	NullFields []string `json:"-"`
30697}
30698
30699func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
30700	type NoMethod ProjectsListXpnHostsRequest
30701	raw := NoMethod(*s)
30702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30703}
30704
30705type ProjectsSetDefaultNetworkTierRequest struct {
30706	// NetworkTier: Default network tier to be set.
30707	//
30708	// Possible values:
30709	//   "PREMIUM"
30710	//   "SELECT"
30711	//   "STANDARD"
30712	NetworkTier string `json:"networkTier,omitempty"`
30713
30714	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
30715	// unconditionally include in API requests. By default, fields with
30716	// empty values are omitted from API requests. However, any non-pointer,
30717	// non-interface field appearing in ForceSendFields will be sent to the
30718	// server regardless of whether the field is empty or not. This may be
30719	// used to include empty fields in Patch requests.
30720	ForceSendFields []string `json:"-"`
30721
30722	// NullFields is a list of field names (e.g. "NetworkTier") to include
30723	// in API requests with the JSON null value. By default, fields with
30724	// empty values are omitted from API requests. However, any field with
30725	// an empty value appearing in NullFields will be sent to the server as
30726	// null. It is an error if a field in this list has a non-empty value.
30727	// This may be used to include null fields in Patch requests.
30728	NullFields []string `json:"-"`
30729}
30730
30731func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
30732	type NoMethod ProjectsSetDefaultNetworkTierRequest
30733	raw := NoMethod(*s)
30734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30735}
30736
30737type ProjectsSetDefaultServiceAccountRequest struct {
30738	// Email: Email address of the service account.
30739	Email string `json:"email,omitempty"`
30740
30741	// ForceSendFields is a list of field names (e.g. "Email") to
30742	// unconditionally include in API requests. By default, fields with
30743	// empty values are omitted from API requests. However, any non-pointer,
30744	// non-interface field appearing in ForceSendFields will be sent to the
30745	// server regardless of whether the field is empty or not. This may be
30746	// used to include empty fields in Patch requests.
30747	ForceSendFields []string `json:"-"`
30748
30749	// NullFields is a list of field names (e.g. "Email") to include in API
30750	// requests with the JSON null value. By default, fields with empty
30751	// values are omitted from API requests. However, any field with an
30752	// empty value appearing in NullFields will be sent to the server as
30753	// null. It is an error if a field in this list has a non-empty value.
30754	// This may be used to include null fields in Patch requests.
30755	NullFields []string `json:"-"`
30756}
30757
30758func (s *ProjectsSetDefaultServiceAccountRequest) MarshalJSON() ([]byte, error) {
30759	type NoMethod ProjectsSetDefaultServiceAccountRequest
30760	raw := NoMethod(*s)
30761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30762}
30763
30764// PublicAdvertisedPrefix: A public advertised prefix represents an
30765// aggregated IP prefix or netblock which customers bring to cloud. The
30766// IP prefix is a single unit of route advertisement and is announced
30767// globally to the internet.
30768type PublicAdvertisedPrefix struct {
30769	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30770	// format.
30771	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30772
30773	// Description: An optional description of this resource. Provide this
30774	// property when you create the resource.
30775	Description string `json:"description,omitempty"`
30776
30777	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
30778	// verification.
30779	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
30780
30781	// Fingerprint: Fingerprint of this resource. A hash of the contents
30782	// stored in this object. This field is used in optimistic locking. This
30783	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
30784	// up-to-date fingerprint must be provided in order to update the
30785	// PublicAdvertisedPrefix, otherwise the request will fail with error
30786	// 412 conditionNotMet.
30787	//
30788	// To see the latest fingerprint, make a get() request to retrieve a
30789	// PublicAdvertisedPrefix.
30790	Fingerprint string `json:"fingerprint,omitempty"`
30791
30792	// Id: [Output Only] The unique identifier for the resource type. The
30793	// server generates this identifier.
30794	Id uint64 `json:"id,omitempty,string"`
30795
30796	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
30797	// this public advertised prefix.
30798	IpCidrRange string `json:"ipCidrRange,omitempty"`
30799
30800	// Kind: [Output Only] Type of the resource. Always
30801	// compute#publicAdvertisedPrefix for public advertised prefixes.
30802	Kind string `json:"kind,omitempty"`
30803
30804	// Name: Name of the resource. Provided by the client when the resource
30805	// is created. The name must be 1-63 characters long, and comply with
30806	// RFC1035. Specifically, the name must be 1-63 characters long and
30807	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
30808	// the first character must be a lowercase letter, and all following
30809	// characters must be a dash, lowercase letter, or digit, except the
30810	// last character, which cannot be a dash.
30811	Name string `json:"name,omitempty"`
30812
30813	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
30814	// prefixes that exist for this public advertised prefix.
30815	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
30816
30817	// SelfLink: [Output Only] Server-defined URL for the resource.
30818	SelfLink string `json:"selfLink,omitempty"`
30819
30820	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
30821	// resource.
30822	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
30823
30824	// SharedSecret: [Output Only] The shared secret to be used for reverse
30825	// DNS verification.
30826	SharedSecret string `json:"sharedSecret,omitempty"`
30827
30828	// Status: The status of the public advertised prefix.
30829	//
30830	// Possible values:
30831	//   "INITIAL"
30832	//   "PREFIX_CONFIGURATION_COMPLETE"
30833	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
30834	//   "PREFIX_REMOVAL_IN_PROGRESS"
30835	//   "PTR_CONFIGURED"
30836	//   "REVERSE_DNS_LOOKUP_FAILED"
30837	//   "VALIDATED"
30838	Status string `json:"status,omitempty"`
30839
30840	// ServerResponse contains the HTTP response code and headers from the
30841	// server.
30842	googleapi.ServerResponse `json:"-"`
30843
30844	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30845	// to unconditionally include in API requests. By default, fields with
30846	// empty values are omitted from API requests. However, any non-pointer,
30847	// non-interface field appearing in ForceSendFields will be sent to the
30848	// server regardless of whether the field is empty or not. This may be
30849	// used to include empty fields in Patch requests.
30850	ForceSendFields []string `json:"-"`
30851
30852	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30853	// include in API requests with the JSON null value. By default, fields
30854	// with empty values are omitted from API requests. However, any field
30855	// with an empty value appearing in NullFields will be sent to the
30856	// server as null. It is an error if a field in this list has a
30857	// non-empty value. This may be used to include null fields in Patch
30858	// requests.
30859	NullFields []string `json:"-"`
30860}
30861
30862func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
30863	type NoMethod PublicAdvertisedPrefix
30864	raw := NoMethod(*s)
30865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30866}
30867
30868type PublicAdvertisedPrefixList struct {
30869	// Id: [Output Only] Unique identifier for the resource; defined by the
30870	// server.
30871	Id string `json:"id,omitempty"`
30872
30873	// Items: A list of PublicAdvertisedPrefix resources.
30874	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
30875
30876	// Kind: [Output Only] Type of the resource. Always
30877	// compute#publicAdvertisedPrefix for public advertised prefixes.
30878	Kind string `json:"kind,omitempty"`
30879
30880	// NextPageToken: [Output Only] This token allows you to get the next
30881	// page of results for list requests. If the number of results is larger
30882	// than maxResults, use the nextPageToken as a value for the query
30883	// parameter pageToken in the next list request. Subsequent list
30884	// requests will have their own nextPageToken to continue paging through
30885	// the results.
30886	NextPageToken string `json:"nextPageToken,omitempty"`
30887
30888	// SelfLink: [Output Only] Server-defined URL for this resource.
30889	SelfLink string `json:"selfLink,omitempty"`
30890
30891	// Warning: [Output Only] Informational warning message.
30892	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
30893
30894	// ServerResponse contains the HTTP response code and headers from the
30895	// server.
30896	googleapi.ServerResponse `json:"-"`
30897
30898	// ForceSendFields is a list of field names (e.g. "Id") to
30899	// unconditionally include in API requests. By default, fields with
30900	// empty values are omitted from API requests. However, any non-pointer,
30901	// non-interface field appearing in ForceSendFields will be sent to the
30902	// server regardless of whether the field is empty or not. This may be
30903	// used to include empty fields in Patch requests.
30904	ForceSendFields []string `json:"-"`
30905
30906	// NullFields is a list of field names (e.g. "Id") to include in API
30907	// requests with the JSON null value. By default, fields with empty
30908	// values are omitted from API requests. However, any field with an
30909	// empty value appearing in NullFields will be sent to the server as
30910	// null. It is an error if a field in this list has a non-empty value.
30911	// This may be used to include null fields in Patch requests.
30912	NullFields []string `json:"-"`
30913}
30914
30915func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
30916	type NoMethod PublicAdvertisedPrefixList
30917	raw := NoMethod(*s)
30918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30919}
30920
30921// PublicAdvertisedPrefixListWarning: [Output Only] Informational
30922// warning message.
30923type PublicAdvertisedPrefixListWarning struct {
30924	// Code: [Output Only] A warning code, if applicable. For example,
30925	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30926	// the response.
30927	//
30928	// Possible values:
30929	//   "CLEANUP_FAILED"
30930	//   "DEPRECATED_RESOURCE_USED"
30931	//   "DEPRECATED_TYPE_USED"
30932	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30933	//   "EXPERIMENTAL_TYPE_USED"
30934	//   "EXTERNAL_API_WARNING"
30935	//   "FIELD_VALUE_OVERRIDEN"
30936	//   "INJECTED_KERNELS_DEPRECATED"
30937	//   "MISSING_TYPE_DEPENDENCY"
30938	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30939	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30940	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30941	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30942	//   "NEXT_HOP_NOT_RUNNING"
30943	//   "NOT_CRITICAL_ERROR"
30944	//   "NO_RESULTS_ON_PAGE"
30945	//   "PARTIAL_SUCCESS"
30946	//   "REQUIRED_TOS_AGREEMENT"
30947	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30948	//   "RESOURCE_NOT_DELETED"
30949	//   "SCHEMA_VALIDATION_IGNORED"
30950	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30951	//   "UNDECLARED_PROPERTIES"
30952	//   "UNREACHABLE"
30953	Code string `json:"code,omitempty"`
30954
30955	// Data: [Output Only] Metadata about this warning in key: value format.
30956	// For example:
30957	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30958	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
30959
30960	// Message: [Output Only] A human-readable description of the warning
30961	// code.
30962	Message string `json:"message,omitempty"`
30963
30964	// ForceSendFields is a list of field names (e.g. "Code") to
30965	// unconditionally include in API requests. By default, fields with
30966	// empty values are omitted from API requests. However, any non-pointer,
30967	// non-interface field appearing in ForceSendFields will be sent to the
30968	// server regardless of whether the field is empty or not. This may be
30969	// used to include empty fields in Patch requests.
30970	ForceSendFields []string `json:"-"`
30971
30972	// NullFields is a list of field names (e.g. "Code") to include in API
30973	// requests with the JSON null value. By default, fields with empty
30974	// values are omitted from API requests. However, any field with an
30975	// empty value appearing in NullFields will be sent to the server as
30976	// null. It is an error if a field in this list has a non-empty value.
30977	// This may be used to include null fields in Patch requests.
30978	NullFields []string `json:"-"`
30979}
30980
30981func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
30982	type NoMethod PublicAdvertisedPrefixListWarning
30983	raw := NoMethod(*s)
30984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30985}
30986
30987type PublicAdvertisedPrefixListWarningData struct {
30988	// Key: [Output Only] A key that provides more detail on the warning
30989	// being returned. For example, for warnings where there are no results
30990	// in a list request for a particular zone, this key might be scope and
30991	// the key value might be the zone name. Other examples might be a key
30992	// indicating a deprecated resource and a suggested replacement, or a
30993	// warning about invalid network settings (for example, if an instance
30994	// attempts to perform IP forwarding but is not enabled for IP
30995	// forwarding).
30996	Key string `json:"key,omitempty"`
30997
30998	// Value: [Output Only] A warning data value corresponding to the key.
30999	Value string `json:"value,omitempty"`
31000
31001	// ForceSendFields is a list of field names (e.g. "Key") to
31002	// unconditionally include in API requests. By default, fields with
31003	// empty values are omitted from API requests. However, any non-pointer,
31004	// non-interface field appearing in ForceSendFields will be sent to the
31005	// server regardless of whether the field is empty or not. This may be
31006	// used to include empty fields in Patch requests.
31007	ForceSendFields []string `json:"-"`
31008
31009	// NullFields is a list of field names (e.g. "Key") to include in API
31010	// requests with the JSON null value. By default, fields with empty
31011	// values are omitted from API requests. However, any field with an
31012	// empty value appearing in NullFields will be sent to the server as
31013	// null. It is an error if a field in this list has a non-empty value.
31014	// This may be used to include null fields in Patch requests.
31015	NullFields []string `json:"-"`
31016}
31017
31018func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31019	type NoMethod PublicAdvertisedPrefixListWarningData
31020	raw := NoMethod(*s)
31021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31022}
31023
31024// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
31025// which can be used to assign addresses.
31026type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
31027	// Name: The name of the public delegated prefix
31028	Name string `json:"name,omitempty"`
31029
31030	// Region: The region of the public delegated prefix if it is regional.
31031	// If absent, the prefix is global.
31032	Region string `json:"region,omitempty"`
31033
31034	// Status: The status of the public delegated prefix. Possible values
31035	// are: ACTIVE: The public delegated prefix is active DRAINED: The
31036	// public delegated prefix is drained.
31037	Status string `json:"status,omitempty"`
31038
31039	// ForceSendFields is a list of field names (e.g. "Name") to
31040	// unconditionally include in API requests. By default, fields with
31041	// empty values are omitted from API requests. However, any non-pointer,
31042	// non-interface field appearing in ForceSendFields will be sent to the
31043	// server regardless of whether the field is empty or not. This may be
31044	// used to include empty fields in Patch requests.
31045	ForceSendFields []string `json:"-"`
31046
31047	// NullFields is a list of field names (e.g. "Name") to include in API
31048	// requests with the JSON null value. By default, fields with empty
31049	// values are omitted from API requests. However, any field with an
31050	// empty value appearing in NullFields will be sent to the server as
31051	// null. It is an error if a field in this list has a non-empty value.
31052	// This may be used to include null fields in Patch requests.
31053	NullFields []string `json:"-"`
31054}
31055
31056func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31057	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
31058	raw := NoMethod(*s)
31059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31060}
31061
31062// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
31063// IP block within a PublicAdvertisedPrefix that is configured within a
31064// single cloud scope (global or region). IPs in the block can be
31065// allocated to resources within that scope. Public delegated prefixes
31066// may be further broken up into smaller IP blocks in the same scope as
31067// the parent block.
31068type PublicDelegatedPrefix struct {
31069	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31070	// format.
31071	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31072
31073	// Description: An optional description of this resource. Provide this
31074	// property when you create the resource.
31075	Description string `json:"description,omitempty"`
31076
31077	// Fingerprint: Fingerprint of this resource. A hash of the contents
31078	// stored in this object. This field is used in optimistic locking. This
31079	// field will be ignored when inserting a new PublicDelegatedPrefix. An
31080	// up-to-date fingerprint must be provided in order to update the
31081	// PublicDelegatedPrefix, otherwise the request will fail with error 412
31082	// conditionNotMet.
31083	//
31084	// To see the latest fingerprint, make a get() request to retrieve a
31085	// PublicDelegatedPrefix.
31086	Fingerprint string `json:"fingerprint,omitempty"`
31087
31088	// Id: [Output Only] The unique identifier for the resource type. The
31089	// server generates this identifier.
31090	Id uint64 `json:"id,omitempty,string"`
31091
31092	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31093	// this public delegated prefix.
31094	IpCidrRange string `json:"ipCidrRange,omitempty"`
31095
31096	// Kind: [Output Only] Type of the resource. Always
31097	// compute#publicDelegatedPrefix for public delegated prefixes.
31098	Kind string `json:"kind,omitempty"`
31099
31100	// Name: Name of the resource. Provided by the client when the resource
31101	// is created. The name must be 1-63 characters long, and comply with
31102	// RFC1035. Specifically, the name must be 1-63 characters long and
31103	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31104	// the first character must be a lowercase letter, and all following
31105	// characters must be a dash, lowercase letter, or digit, except the
31106	// last character, which cannot be a dash.
31107	Name string `json:"name,omitempty"`
31108
31109	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
31110	// or PublicDelegatedPrefix.
31111	ParentPrefix string `json:"parentPrefix,omitempty"`
31112
31113	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
31114	// that exist for this public delegated prefix.
31115	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
31116
31117	// Region: [Output Only] URL of the region where the public delegated
31118	// prefix resides. This field applies only to the region resource. You
31119	// must specify this field as part of the HTTP request URL. It is not
31120	// settable as a field in the request body.
31121	Region string `json:"region,omitempty"`
31122
31123	// SelfLink: [Output Only] Server-defined URL for the resource.
31124	SelfLink string `json:"selfLink,omitempty"`
31125
31126	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
31127	// resource.
31128	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
31129
31130	// Status: [Output Only] The status of the public delegated prefix.
31131	//
31132	// Possible values:
31133	//   "ANNOUNCED"
31134	//   "INITIALIZING"
31135	Status string `json:"status,omitempty"`
31136
31137	// ServerResponse contains the HTTP response code and headers from the
31138	// server.
31139	googleapi.ServerResponse `json:"-"`
31140
31141	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31142	// to unconditionally include in API requests. By default, fields with
31143	// empty values are omitted from API requests. However, any non-pointer,
31144	// non-interface field appearing in ForceSendFields will be sent to the
31145	// server regardless of whether the field is empty or not. This may be
31146	// used to include empty fields in Patch requests.
31147	ForceSendFields []string `json:"-"`
31148
31149	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31150	// include in API requests with the JSON null value. By default, fields
31151	// with empty values are omitted from API requests. However, any field
31152	// with an empty value appearing in NullFields will be sent to the
31153	// server as null. It is an error if a field in this list has a
31154	// non-empty value. This may be used to include null fields in Patch
31155	// requests.
31156	NullFields []string `json:"-"`
31157}
31158
31159func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31160	type NoMethod PublicDelegatedPrefix
31161	raw := NoMethod(*s)
31162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31163}
31164
31165type PublicDelegatedPrefixAggregatedList struct {
31166	// Id: [Output Only] Unique identifier for the resource; defined by the
31167	// server.
31168	Id string `json:"id,omitempty"`
31169
31170	// Items: A list of PublicDelegatedPrefixesScopedList resources.
31171	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
31172
31173	// Kind: [Output Only] Type of the resource. Always
31174	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
31175	// public delegated prefixes.
31176	Kind string `json:"kind,omitempty"`
31177
31178	// NextPageToken: [Output Only] This token allows you to get the next
31179	// page of results for list requests. If the number of results is larger
31180	// than maxResults, use the nextPageToken as a value for the query
31181	// parameter pageToken in the next list request. Subsequent list
31182	// requests will have their own nextPageToken to continue paging through
31183	// the results.
31184	NextPageToken string `json:"nextPageToken,omitempty"`
31185
31186	// SelfLink: [Output Only] Server-defined URL for this resource.
31187	SelfLink string `json:"selfLink,omitempty"`
31188
31189	// Unreachables: [Output Only] Unreachable resources.
31190	Unreachables []string `json:"unreachables,omitempty"`
31191
31192	// Warning: [Output Only] Informational warning message.
31193	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
31194
31195	// ServerResponse contains the HTTP response code and headers from the
31196	// server.
31197	googleapi.ServerResponse `json:"-"`
31198
31199	// ForceSendFields is a list of field names (e.g. "Id") to
31200	// unconditionally include in API requests. By default, fields with
31201	// empty values are omitted from API requests. However, any non-pointer,
31202	// non-interface field appearing in ForceSendFields will be sent to the
31203	// server regardless of whether the field is empty or not. This may be
31204	// used to include empty fields in Patch requests.
31205	ForceSendFields []string `json:"-"`
31206
31207	// NullFields is a list of field names (e.g. "Id") to include in API
31208	// requests with the JSON null value. By default, fields with empty
31209	// values are omitted from API requests. However, any field with an
31210	// empty value appearing in NullFields will be sent to the server as
31211	// null. It is an error if a field in this list has a non-empty value.
31212	// This may be used to include null fields in Patch requests.
31213	NullFields []string `json:"-"`
31214}
31215
31216func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
31217	type NoMethod PublicDelegatedPrefixAggregatedList
31218	raw := NoMethod(*s)
31219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31220}
31221
31222// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
31223// Informational warning message.
31224type PublicDelegatedPrefixAggregatedListWarning struct {
31225	// Code: [Output Only] A warning code, if applicable. For example,
31226	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31227	// the response.
31228	//
31229	// Possible values:
31230	//   "CLEANUP_FAILED"
31231	//   "DEPRECATED_RESOURCE_USED"
31232	//   "DEPRECATED_TYPE_USED"
31233	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31234	//   "EXPERIMENTAL_TYPE_USED"
31235	//   "EXTERNAL_API_WARNING"
31236	//   "FIELD_VALUE_OVERRIDEN"
31237	//   "INJECTED_KERNELS_DEPRECATED"
31238	//   "MISSING_TYPE_DEPENDENCY"
31239	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31240	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31241	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31242	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31243	//   "NEXT_HOP_NOT_RUNNING"
31244	//   "NOT_CRITICAL_ERROR"
31245	//   "NO_RESULTS_ON_PAGE"
31246	//   "PARTIAL_SUCCESS"
31247	//   "REQUIRED_TOS_AGREEMENT"
31248	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31249	//   "RESOURCE_NOT_DELETED"
31250	//   "SCHEMA_VALIDATION_IGNORED"
31251	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31252	//   "UNDECLARED_PROPERTIES"
31253	//   "UNREACHABLE"
31254	Code string `json:"code,omitempty"`
31255
31256	// Data: [Output Only] Metadata about this warning in key: value format.
31257	// For example:
31258	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31259	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
31260
31261	// Message: [Output Only] A human-readable description of the warning
31262	// code.
31263	Message string `json:"message,omitempty"`
31264
31265	// ForceSendFields is a list of field names (e.g. "Code") to
31266	// unconditionally include in API requests. By default, fields with
31267	// empty values are omitted from API requests. However, any non-pointer,
31268	// non-interface field appearing in ForceSendFields will be sent to the
31269	// server regardless of whether the field is empty or not. This may be
31270	// used to include empty fields in Patch requests.
31271	ForceSendFields []string `json:"-"`
31272
31273	// NullFields is a list of field names (e.g. "Code") to include in API
31274	// requests with the JSON null value. By default, fields with empty
31275	// values are omitted from API requests. However, any field with an
31276	// empty value appearing in NullFields will be sent to the server as
31277	// null. It is an error if a field in this list has a non-empty value.
31278	// This may be used to include null fields in Patch requests.
31279	NullFields []string `json:"-"`
31280}
31281
31282func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
31283	type NoMethod PublicDelegatedPrefixAggregatedListWarning
31284	raw := NoMethod(*s)
31285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31286}
31287
31288type PublicDelegatedPrefixAggregatedListWarningData struct {
31289	// Key: [Output Only] A key that provides more detail on the warning
31290	// being returned. For example, for warnings where there are no results
31291	// in a list request for a particular zone, this key might be scope and
31292	// the key value might be the zone name. Other examples might be a key
31293	// indicating a deprecated resource and a suggested replacement, or a
31294	// warning about invalid network settings (for example, if an instance
31295	// attempts to perform IP forwarding but is not enabled for IP
31296	// forwarding).
31297	Key string `json:"key,omitempty"`
31298
31299	// Value: [Output Only] A warning data value corresponding to the key.
31300	Value string `json:"value,omitempty"`
31301
31302	// ForceSendFields is a list of field names (e.g. "Key") to
31303	// unconditionally include in API requests. By default, fields with
31304	// empty values are omitted from API requests. However, any non-pointer,
31305	// non-interface field appearing in ForceSendFields will be sent to the
31306	// server regardless of whether the field is empty or not. This may be
31307	// used to include empty fields in Patch requests.
31308	ForceSendFields []string `json:"-"`
31309
31310	// NullFields is a list of field names (e.g. "Key") to include in API
31311	// requests with the JSON null value. By default, fields with empty
31312	// values are omitted from API requests. However, any field with an
31313	// empty value appearing in NullFields will be sent to the server as
31314	// null. It is an error if a field in this list has a non-empty value.
31315	// This may be used to include null fields in Patch requests.
31316	NullFields []string `json:"-"`
31317}
31318
31319func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
31320	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
31321	raw := NoMethod(*s)
31322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31323}
31324
31325type PublicDelegatedPrefixList struct {
31326	// Id: [Output Only] Unique identifier for the resource; defined by the
31327	// server.
31328	Id string `json:"id,omitempty"`
31329
31330	// Items: A list of PublicDelegatedPrefix resources.
31331	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
31332
31333	// Kind: [Output Only] Type of the resource. Always
31334	// compute#publicDelegatedPrefixList for public delegated prefixes.
31335	Kind string `json:"kind,omitempty"`
31336
31337	// NextPageToken: [Output Only] This token allows you to get the next
31338	// page of results for list requests. If the number of results is larger
31339	// than maxResults, use the nextPageToken as a value for the query
31340	// parameter pageToken in the next list request. Subsequent list
31341	// requests will have their own nextPageToken to continue paging through
31342	// the results.
31343	NextPageToken string `json:"nextPageToken,omitempty"`
31344
31345	// SelfLink: [Output Only] Server-defined URL for this resource.
31346	SelfLink string `json:"selfLink,omitempty"`
31347
31348	// Warning: [Output Only] Informational warning message.
31349	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
31350
31351	// ServerResponse contains the HTTP response code and headers from the
31352	// server.
31353	googleapi.ServerResponse `json:"-"`
31354
31355	// ForceSendFields is a list of field names (e.g. "Id") to
31356	// unconditionally include in API requests. By default, fields with
31357	// empty values are omitted from API requests. However, any non-pointer,
31358	// non-interface field appearing in ForceSendFields will be sent to the
31359	// server regardless of whether the field is empty or not. This may be
31360	// used to include empty fields in Patch requests.
31361	ForceSendFields []string `json:"-"`
31362
31363	// NullFields is a list of field names (e.g. "Id") to include in API
31364	// requests with the JSON null value. By default, fields with empty
31365	// values are omitted from API requests. However, any field with an
31366	// empty value appearing in NullFields will be sent to the server as
31367	// null. It is an error if a field in this list has a non-empty value.
31368	// This may be used to include null fields in Patch requests.
31369	NullFields []string `json:"-"`
31370}
31371
31372func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
31373	type NoMethod PublicDelegatedPrefixList
31374	raw := NoMethod(*s)
31375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31376}
31377
31378// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
31379// message.
31380type PublicDelegatedPrefixListWarning struct {
31381	// Code: [Output Only] A warning code, if applicable. For example,
31382	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31383	// the response.
31384	//
31385	// Possible values:
31386	//   "CLEANUP_FAILED"
31387	//   "DEPRECATED_RESOURCE_USED"
31388	//   "DEPRECATED_TYPE_USED"
31389	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31390	//   "EXPERIMENTAL_TYPE_USED"
31391	//   "EXTERNAL_API_WARNING"
31392	//   "FIELD_VALUE_OVERRIDEN"
31393	//   "INJECTED_KERNELS_DEPRECATED"
31394	//   "MISSING_TYPE_DEPENDENCY"
31395	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31396	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31397	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31398	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31399	//   "NEXT_HOP_NOT_RUNNING"
31400	//   "NOT_CRITICAL_ERROR"
31401	//   "NO_RESULTS_ON_PAGE"
31402	//   "PARTIAL_SUCCESS"
31403	//   "REQUIRED_TOS_AGREEMENT"
31404	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31405	//   "RESOURCE_NOT_DELETED"
31406	//   "SCHEMA_VALIDATION_IGNORED"
31407	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31408	//   "UNDECLARED_PROPERTIES"
31409	//   "UNREACHABLE"
31410	Code string `json:"code,omitempty"`
31411
31412	// Data: [Output Only] Metadata about this warning in key: value format.
31413	// For example:
31414	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31415	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
31416
31417	// Message: [Output Only] A human-readable description of the warning
31418	// code.
31419	Message string `json:"message,omitempty"`
31420
31421	// ForceSendFields is a list of field names (e.g. "Code") to
31422	// unconditionally include in API requests. By default, fields with
31423	// empty values are omitted from API requests. However, any non-pointer,
31424	// non-interface field appearing in ForceSendFields will be sent to the
31425	// server regardless of whether the field is empty or not. This may be
31426	// used to include empty fields in Patch requests.
31427	ForceSendFields []string `json:"-"`
31428
31429	// NullFields is a list of field names (e.g. "Code") to include in API
31430	// requests with the JSON null value. By default, fields with empty
31431	// values are omitted from API requests. However, any field with an
31432	// empty value appearing in NullFields will be sent to the server as
31433	// null. It is an error if a field in this list has a non-empty value.
31434	// This may be used to include null fields in Patch requests.
31435	NullFields []string `json:"-"`
31436}
31437
31438func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
31439	type NoMethod PublicDelegatedPrefixListWarning
31440	raw := NoMethod(*s)
31441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31442}
31443
31444type PublicDelegatedPrefixListWarningData struct {
31445	// Key: [Output Only] A key that provides more detail on the warning
31446	// being returned. For example, for warnings where there are no results
31447	// in a list request for a particular zone, this key might be scope and
31448	// the key value might be the zone name. Other examples might be a key
31449	// indicating a deprecated resource and a suggested replacement, or a
31450	// warning about invalid network settings (for example, if an instance
31451	// attempts to perform IP forwarding but is not enabled for IP
31452	// forwarding).
31453	Key string `json:"key,omitempty"`
31454
31455	// Value: [Output Only] A warning data value corresponding to the key.
31456	Value string `json:"value,omitempty"`
31457
31458	// ForceSendFields is a list of field names (e.g. "Key") to
31459	// unconditionally include in API requests. By default, fields with
31460	// empty values are omitted from API requests. However, any non-pointer,
31461	// non-interface field appearing in ForceSendFields will be sent to the
31462	// server regardless of whether the field is empty or not. This may be
31463	// used to include empty fields in Patch requests.
31464	ForceSendFields []string `json:"-"`
31465
31466	// NullFields is a list of field names (e.g. "Key") to include in API
31467	// requests with the JSON null value. By default, fields with empty
31468	// values are omitted from API requests. However, any field with an
31469	// empty value appearing in NullFields will be sent to the server as
31470	// null. It is an error if a field in this list has a non-empty value.
31471	// This may be used to include null fields in Patch requests.
31472	NullFields []string `json:"-"`
31473}
31474
31475func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31476	type NoMethod PublicDelegatedPrefixListWarningData
31477	raw := NoMethod(*s)
31478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31479}
31480
31481// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
31482// PublicDelegatedPrefix.
31483type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
31484	// DelegateeProject: Name of the project scoping this
31485	// PublicDelegatedSubPrefix.
31486	DelegateeProject string `json:"delegateeProject,omitempty"`
31487
31488	// Description: An optional description of this resource. Provide this
31489	// property when you create the resource.
31490	Description string `json:"description,omitempty"`
31491
31492	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31493	// this sub public delegated prefix.
31494	IpCidrRange string `json:"ipCidrRange,omitempty"`
31495
31496	// IsAddress: Whether the sub prefix is delegated to create Address
31497	// resources in the delegatee project.
31498	IsAddress bool `json:"isAddress,omitempty"`
31499
31500	// Name: The name of the sub public delegated prefix.
31501	Name string `json:"name,omitempty"`
31502
31503	// Region: [Output Only] The region of the sub public delegated prefix
31504	// if it is regional. If absent, the sub prefix is global.
31505	Region string `json:"region,omitempty"`
31506
31507	// Status: [Output Only] The status of the sub public delegated prefix.
31508	//
31509	// Possible values:
31510	//   "ACTIVE"
31511	//   "INACTIVE"
31512	Status string `json:"status,omitempty"`
31513
31514	// ForceSendFields is a list of field names (e.g. "DelegateeProject") to
31515	// unconditionally include in API requests. By default, fields with
31516	// empty values are omitted from API requests. However, any non-pointer,
31517	// non-interface field appearing in ForceSendFields will be sent to the
31518	// server regardless of whether the field is empty or not. This may be
31519	// used to include empty fields in Patch requests.
31520	ForceSendFields []string `json:"-"`
31521
31522	// NullFields is a list of field names (e.g. "DelegateeProject") to
31523	// include in API requests with the JSON null value. By default, fields
31524	// with empty values are omitted from API requests. However, any field
31525	// with an empty value appearing in NullFields will be sent to the
31526	// server as null. It is an error if a field in this list has a
31527	// non-empty value. This may be used to include null fields in Patch
31528	// requests.
31529	NullFields []string `json:"-"`
31530}
31531
31532func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
31533	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
31534	raw := NoMethod(*s)
31535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31536}
31537
31538type PublicDelegatedPrefixesScopedList struct {
31539	// PublicDelegatedPrefixes: [Output Only] A list of
31540	// PublicDelegatedPrefixes contained in this scope.
31541	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
31542
31543	// Warning: [Output Only] Informational warning which replaces the list
31544	// of public delegated prefixes when the list is empty.
31545	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
31546
31547	// ForceSendFields is a list of field names (e.g.
31548	// "PublicDelegatedPrefixes") to unconditionally include in API
31549	// requests. By default, fields with empty values are omitted from API
31550	// requests. However, any non-pointer, non-interface field appearing in
31551	// ForceSendFields will be sent to the server regardless of whether the
31552	// field is empty or not. This may be used to include empty fields in
31553	// Patch requests.
31554	ForceSendFields []string `json:"-"`
31555
31556	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
31557	// to include in API requests with the JSON null value. By default,
31558	// fields with empty values are omitted from API requests. However, any
31559	// field with an empty value appearing in NullFields will be sent to the
31560	// server as null. It is an error if a field in this list has a
31561	// non-empty value. This may be used to include null fields in Patch
31562	// requests.
31563	NullFields []string `json:"-"`
31564}
31565
31566func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
31567	type NoMethod PublicDelegatedPrefixesScopedList
31568	raw := NoMethod(*s)
31569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31570}
31571
31572// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
31573// warning which replaces the list of public delegated prefixes when the
31574// list is empty.
31575type PublicDelegatedPrefixesScopedListWarning struct {
31576	// Code: [Output Only] A warning code, if applicable. For example,
31577	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31578	// the response.
31579	//
31580	// Possible values:
31581	//   "CLEANUP_FAILED"
31582	//   "DEPRECATED_RESOURCE_USED"
31583	//   "DEPRECATED_TYPE_USED"
31584	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31585	//   "EXPERIMENTAL_TYPE_USED"
31586	//   "EXTERNAL_API_WARNING"
31587	//   "FIELD_VALUE_OVERRIDEN"
31588	//   "INJECTED_KERNELS_DEPRECATED"
31589	//   "MISSING_TYPE_DEPENDENCY"
31590	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31591	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31592	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31593	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31594	//   "NEXT_HOP_NOT_RUNNING"
31595	//   "NOT_CRITICAL_ERROR"
31596	//   "NO_RESULTS_ON_PAGE"
31597	//   "PARTIAL_SUCCESS"
31598	//   "REQUIRED_TOS_AGREEMENT"
31599	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31600	//   "RESOURCE_NOT_DELETED"
31601	//   "SCHEMA_VALIDATION_IGNORED"
31602	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31603	//   "UNDECLARED_PROPERTIES"
31604	//   "UNREACHABLE"
31605	Code string `json:"code,omitempty"`
31606
31607	// Data: [Output Only] Metadata about this warning in key: value format.
31608	// For example:
31609	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31610	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
31611
31612	// Message: [Output Only] A human-readable description of the warning
31613	// code.
31614	Message string `json:"message,omitempty"`
31615
31616	// ForceSendFields is a list of field names (e.g. "Code") to
31617	// unconditionally include in API requests. By default, fields with
31618	// empty values are omitted from API requests. However, any non-pointer,
31619	// non-interface field appearing in ForceSendFields will be sent to the
31620	// server regardless of whether the field is empty or not. This may be
31621	// used to include empty fields in Patch requests.
31622	ForceSendFields []string `json:"-"`
31623
31624	// NullFields is a list of field names (e.g. "Code") to include in API
31625	// requests with the JSON null value. By default, fields with empty
31626	// values are omitted from API requests. However, any field with an
31627	// empty value appearing in NullFields will be sent to the server as
31628	// null. It is an error if a field in this list has a non-empty value.
31629	// This may be used to include null fields in Patch requests.
31630	NullFields []string `json:"-"`
31631}
31632
31633func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
31634	type NoMethod PublicDelegatedPrefixesScopedListWarning
31635	raw := NoMethod(*s)
31636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31637}
31638
31639type PublicDelegatedPrefixesScopedListWarningData struct {
31640	// Key: [Output Only] A key that provides more detail on the warning
31641	// being returned. For example, for warnings where there are no results
31642	// in a list request for a particular zone, this key might be scope and
31643	// the key value might be the zone name. Other examples might be a key
31644	// indicating a deprecated resource and a suggested replacement, or a
31645	// warning about invalid network settings (for example, if an instance
31646	// attempts to perform IP forwarding but is not enabled for IP
31647	// forwarding).
31648	Key string `json:"key,omitempty"`
31649
31650	// Value: [Output Only] A warning data value corresponding to the key.
31651	Value string `json:"value,omitempty"`
31652
31653	// ForceSendFields is a list of field names (e.g. "Key") to
31654	// unconditionally include in API requests. By default, fields with
31655	// empty values are omitted from API requests. However, any non-pointer,
31656	// non-interface field appearing in ForceSendFields will be sent to the
31657	// server regardless of whether the field is empty or not. This may be
31658	// used to include empty fields in Patch requests.
31659	ForceSendFields []string `json:"-"`
31660
31661	// NullFields is a list of field names (e.g. "Key") to include in API
31662	// requests with the JSON null value. By default, fields with empty
31663	// values are omitted from API requests. However, any field with an
31664	// empty value appearing in NullFields will be sent to the server as
31665	// null. It is an error if a field in this list has a non-empty value.
31666	// This may be used to include null fields in Patch requests.
31667	NullFields []string `json:"-"`
31668}
31669
31670func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
31671	type NoMethod PublicDelegatedPrefixesScopedListWarningData
31672	raw := NoMethod(*s)
31673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31674}
31675
31676// Quota: A quotas entry.
31677type Quota struct {
31678	// Limit: [Output Only] Quota limit for this metric.
31679	Limit float64 `json:"limit,omitempty"`
31680
31681	// Metric: [Output Only] Name of the quota metric.
31682	//
31683	// Possible values:
31684	//   "AFFINITY_GROUPS"
31685	//   "ALIASES_PER_NETWORK_GLOBAL"
31686	//   "AMD_S9300_GPUS"
31687	//   "AUTOSCALERS"
31688	//   "BACKEND_BUCKETS"
31689	//   "BACKEND_SERVICES"
31690	//   "C2_CPUS"
31691	//   "COMMITMENTS"
31692	//   "COMMITTED_C2_CPUS"
31693	//   "COMMITTED_CPUS"
31694	//   "COMMITTED_LICENSES"
31695	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
31696	//   "COMMITTED_N2D_CPUS"
31697	//   "COMMITTED_N2_CPUS"
31698	//   "COMMITTED_NVIDIA_K80_GPUS"
31699	//   "COMMITTED_NVIDIA_P100_GPUS"
31700	//   "COMMITTED_NVIDIA_P4_GPUS"
31701	//   "COMMITTED_NVIDIA_T4_GPUS"
31702	//   "COMMITTED_NVIDIA_V100_GPUS"
31703	//   "CPUS"
31704	//   "CPUS_ALL_REGIONS"
31705	//   "DISKS_TOTAL_GB"
31706	//   "EXTERNAL_VPN_GATEWAYS"
31707	//   "FIREWALLS"
31708	//   "FORWARDING_RULES"
31709	//   "GLOBAL_INTERNAL_ADDRESSES"
31710	//   "GPUS_ALL_REGIONS"
31711	//   "HEALTH_CHECKS"
31712	//   "IMAGES"
31713	//   "INSTANCES"
31714	//   "INSTANCES_PER_NETWORK_GLOBAL"
31715	//   "INSTANCE_GROUPS"
31716	//   "INSTANCE_GROUP_MANAGERS"
31717	//   "INSTANCE_TEMPLATES"
31718	//   "INTERCONNECTS"
31719	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
31720	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
31721	//   "INTERCONNECT_TOTAL_GBPS"
31722	//   "INTERNAL_ADDRESSES"
31723	//   "INTERNAL_FORWARDING_RULES_PER_NETWORK"
31724	//   "INTERNAL_FORWARDING_RULES_WITH_GLOBAL_ACCESS_PER_NETWORK"
31725	//   "INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK"
31726	//   "INTERNAL_TARGET_INSTANCE_WITH_GLOBAL_ACCESS_PER_NETWORK"
31727	//   "IN_PLACE_SNAPSHOTS"
31728	//   "IN_USE_ADDRESSES"
31729	//   "IN_USE_BACKUP_SCHEDULES"
31730	//   "IN_USE_MAINTENANCE_WINDOWS"
31731	//   "IN_USE_SNAPSHOT_SCHEDULES"
31732	//   "LOCAL_SSD_TOTAL_GB"
31733	//   "MACHINE_IMAGES"
31734	//   "N2D_CPUS"
31735	//   "N2_CPUS"
31736	//   "NETWORKS"
31737	//   "NETWORK_ENDPOINT_GROUPS"
31738	//   "NODE_GROUPS"
31739	//   "NODE_TEMPLATES"
31740	//   "NVIDIA_K80_GPUS"
31741	//   "NVIDIA_P100_GPUS"
31742	//   "NVIDIA_P100_VWS_GPUS"
31743	//   "NVIDIA_P4_GPUS"
31744	//   "NVIDIA_P4_VWS_GPUS"
31745	//   "NVIDIA_T4_GPUS"
31746	//   "NVIDIA_T4_VWS_GPUS"
31747	//   "NVIDIA_V100_GPUS"
31748	//   "PACKET_MIRRORINGS"
31749	//   "PREEMPTIBLE_CPUS"
31750	//   "PREEMPTIBLE_LOCAL_SSD_GB"
31751	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
31752	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
31753	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
31754	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
31755	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
31756	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
31757	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
31758	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
31759	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
31760	//   "PUBLIC_ADVERTISED_PREFIXES"
31761	//   "PUBLIC_DELEGATED_PREFIXES"
31762	//   "REGIONAL_AUTOSCALERS"
31763	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
31764	//   "RESERVATIONS"
31765	//   "RESOURCE_POLICIES"
31766	//   "ROUTERS"
31767	//   "ROUTES"
31768	//   "SECURITY_POLICIES"
31769	//   "SECURITY_POLICY_CEVAL_RULES"
31770	//   "SECURITY_POLICY_RULES"
31771	//   "SNAPSHOTS"
31772	//   "SSD_TOTAL_GB"
31773	//   "SSL_CERTIFICATES"
31774	//   "STATIC_ADDRESSES"
31775	//   "STATIC_BYOIP_ADDRESSES"
31776	//   "SUBNETWORKS"
31777	//   "SUBNET_RANGES_PER_NETWORK"
31778	//   "TARGET_HTTPS_PROXIES"
31779	//   "TARGET_HTTP_PROXIES"
31780	//   "TARGET_INSTANCES"
31781	//   "TARGET_POOLS"
31782	//   "TARGET_SSL_PROXIES"
31783	//   "TARGET_TCP_PROXIES"
31784	//   "TARGET_VPN_GATEWAYS"
31785	//   "URL_MAPS"
31786	//   "VPN_GATEWAYS"
31787	//   "VPN_TUNNELS"
31788	//   "XPN_SERVICE_PROJECTS"
31789	Metric string `json:"metric,omitempty"`
31790
31791	// Owner: [Output Only] Owning resource. This is the resource on which
31792	// this quota is applied.
31793	Owner string `json:"owner,omitempty"`
31794
31795	// Usage: [Output Only] Current usage of this metric.
31796	Usage float64 `json:"usage,omitempty"`
31797
31798	// ForceSendFields is a list of field names (e.g. "Limit") to
31799	// unconditionally include in API requests. By default, fields with
31800	// empty values are omitted from API requests. However, any non-pointer,
31801	// non-interface field appearing in ForceSendFields will be sent to the
31802	// server regardless of whether the field is empty or not. This may be
31803	// used to include empty fields in Patch requests.
31804	ForceSendFields []string `json:"-"`
31805
31806	// NullFields is a list of field names (e.g. "Limit") to include in API
31807	// requests with the JSON null value. By default, fields with empty
31808	// values are omitted from API requests. However, any field with an
31809	// empty value appearing in NullFields will be sent to the server as
31810	// null. It is an error if a field in this list has a non-empty value.
31811	// This may be used to include null fields in Patch requests.
31812	NullFields []string `json:"-"`
31813}
31814
31815func (s *Quota) MarshalJSON() ([]byte, error) {
31816	type NoMethod Quota
31817	raw := NoMethod(*s)
31818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31819}
31820
31821func (s *Quota) UnmarshalJSON(data []byte) error {
31822	type NoMethod Quota
31823	var s1 struct {
31824		Limit gensupport.JSONFloat64 `json:"limit"`
31825		Usage gensupport.JSONFloat64 `json:"usage"`
31826		*NoMethod
31827	}
31828	s1.NoMethod = (*NoMethod)(s)
31829	if err := json.Unmarshal(data, &s1); err != nil {
31830		return err
31831	}
31832	s.Limit = float64(s1.Limit)
31833	s.Usage = float64(s1.Usage)
31834	return nil
31835}
31836
31837type RbacPolicy struct {
31838	// Name: Name of the RbacPolicy.
31839	Name string `json:"name,omitempty"`
31840
31841	// Permissions: The list of permissions.
31842	Permissions []*Permission `json:"permissions,omitempty"`
31843
31844	// Principals: The list of principals.
31845	Principals []*Principal `json:"principals,omitempty"`
31846
31847	// ForceSendFields is a list of field names (e.g. "Name") to
31848	// unconditionally include in API requests. By default, fields with
31849	// empty values are omitted from API requests. However, any non-pointer,
31850	// non-interface field appearing in ForceSendFields will be sent to the
31851	// server regardless of whether the field is empty or not. This may be
31852	// used to include empty fields in Patch requests.
31853	ForceSendFields []string `json:"-"`
31854
31855	// NullFields is a list of field names (e.g. "Name") to include in API
31856	// requests with the JSON null value. By default, fields with empty
31857	// values are omitted from API requests. However, any field with an
31858	// empty value appearing in NullFields will be sent to the server as
31859	// null. It is an error if a field in this list has a non-empty value.
31860	// This may be used to include null fields in Patch requests.
31861	NullFields []string `json:"-"`
31862}
31863
31864func (s *RbacPolicy) MarshalJSON() ([]byte, error) {
31865	type NoMethod RbacPolicy
31866	raw := NoMethod(*s)
31867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31868}
31869
31870// Reference: Represents a reference to a resource.
31871type Reference struct {
31872	// Kind: [Output Only] Type of the resource. Always compute#reference
31873	// for references.
31874	Kind string `json:"kind,omitempty"`
31875
31876	// ReferenceType: A description of the reference type with no implied
31877	// semantics. Possible values include:
31878	// - MEMBER_OF
31879	ReferenceType string `json:"referenceType,omitempty"`
31880
31881	// Referrer: URL of the resource which refers to the target.
31882	Referrer string `json:"referrer,omitempty"`
31883
31884	// Target: URL of the resource to which this reference points.
31885	Target string `json:"target,omitempty"`
31886
31887	// ForceSendFields is a list of field names (e.g. "Kind") to
31888	// unconditionally include in API requests. By default, fields with
31889	// empty values are omitted from API requests. However, any non-pointer,
31890	// non-interface field appearing in ForceSendFields will be sent to the
31891	// server regardless of whether the field is empty or not. This may be
31892	// used to include empty fields in Patch requests.
31893	ForceSendFields []string `json:"-"`
31894
31895	// NullFields is a list of field names (e.g. "Kind") to include in API
31896	// requests with the JSON null value. By default, fields with empty
31897	// values are omitted from API requests. However, any field with an
31898	// empty value appearing in NullFields will be sent to the server as
31899	// null. It is an error if a field in this list has a non-empty value.
31900	// This may be used to include null fields in Patch requests.
31901	NullFields []string `json:"-"`
31902}
31903
31904func (s *Reference) MarshalJSON() ([]byte, error) {
31905	type NoMethod Reference
31906	raw := NoMethod(*s)
31907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31908}
31909
31910// Region: Represents a Region resource.
31911//
31912// A region is a geographical area where a resource is located. For more
31913// information, read Regions and Zones. (== resource_for
31914// {$api_version}.regions ==)
31915type Region struct {
31916	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31917	// format.
31918	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31919
31920	// Deprecated: [Output Only] The deprecation status associated with this
31921	// region.
31922	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
31923
31924	// Description: [Output Only] Textual description of the resource.
31925	Description string `json:"description,omitempty"`
31926
31927	// Id: [Output Only] The unique identifier for the resource. This
31928	// identifier is defined by the server.
31929	Id uint64 `json:"id,omitempty,string"`
31930
31931	// Kind: [Output Only] Type of the resource. Always compute#region for
31932	// regions.
31933	Kind string `json:"kind,omitempty"`
31934
31935	// Name: [Output Only] Name of the resource.
31936	Name string `json:"name,omitempty"`
31937
31938	// Quotas: [Output Only] Quotas assigned to this region.
31939	Quotas []*Quota `json:"quotas,omitempty"`
31940
31941	// SelfLink: [Output Only] Server-defined URL for the resource.
31942	SelfLink string `json:"selfLink,omitempty"`
31943
31944	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
31945	// with the resource id.
31946	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
31947
31948	// Status: [Output Only] Status of the region, either UP or DOWN.
31949	//
31950	// Possible values:
31951	//   "DOWN"
31952	//   "UP"
31953	Status string `json:"status,omitempty"`
31954
31955	// Zones: [Output Only] A list of zones available in this region, in the
31956	// form of resource URLs.
31957	Zones []string `json:"zones,omitempty"`
31958
31959	// ServerResponse contains the HTTP response code and headers from the
31960	// server.
31961	googleapi.ServerResponse `json:"-"`
31962
31963	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31964	// to unconditionally include in API requests. By default, fields with
31965	// empty values are omitted from API requests. However, any non-pointer,
31966	// non-interface field appearing in ForceSendFields will be sent to the
31967	// server regardless of whether the field is empty or not. This may be
31968	// used to include empty fields in Patch requests.
31969	ForceSendFields []string `json:"-"`
31970
31971	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31972	// include in API requests with the JSON null value. By default, fields
31973	// with empty values are omitted from API requests. However, any field
31974	// with an empty value appearing in NullFields will be sent to the
31975	// server as null. It is an error if a field in this list has a
31976	// non-empty value. This may be used to include null fields in Patch
31977	// requests.
31978	NullFields []string `json:"-"`
31979}
31980
31981func (s *Region) MarshalJSON() ([]byte, error) {
31982	type NoMethod Region
31983	raw := NoMethod(*s)
31984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31985}
31986
31987// RegionAutoscalerList: Contains a list of autoscalers.
31988type RegionAutoscalerList struct {
31989	// Id: [Output Only] Unique identifier for the resource; defined by the
31990	// server.
31991	Id string `json:"id,omitempty"`
31992
31993	// Items: A list of Autoscaler resources.
31994	Items []*Autoscaler `json:"items,omitempty"`
31995
31996	// Kind: Type of resource.
31997	Kind string `json:"kind,omitempty"`
31998
31999	// NextPageToken: [Output Only] This token allows you to get the next
32000	// page of results for list requests. If the number of results is larger
32001	// than maxResults, use the nextPageToken as a value for the query
32002	// parameter pageToken in the next list request. Subsequent list
32003	// requests will have their own nextPageToken to continue paging through
32004	// the results.
32005	NextPageToken string `json:"nextPageToken,omitempty"`
32006
32007	// SelfLink: [Output Only] Server-defined URL for this resource.
32008	SelfLink string `json:"selfLink,omitempty"`
32009
32010	// Warning: [Output Only] Informational warning message.
32011	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
32012
32013	// ServerResponse contains the HTTP response code and headers from the
32014	// server.
32015	googleapi.ServerResponse `json:"-"`
32016
32017	// ForceSendFields is a list of field names (e.g. "Id") to
32018	// unconditionally include in API requests. By default, fields with
32019	// empty values are omitted from API requests. However, any non-pointer,
32020	// non-interface field appearing in ForceSendFields will be sent to the
32021	// server regardless of whether the field is empty or not. This may be
32022	// used to include empty fields in Patch requests.
32023	ForceSendFields []string `json:"-"`
32024
32025	// NullFields is a list of field names (e.g. "Id") to include in API
32026	// requests with the JSON null value. By default, fields with empty
32027	// values are omitted from API requests. However, any field with an
32028	// empty value appearing in NullFields will be sent to the server as
32029	// null. It is an error if a field in this list has a non-empty value.
32030	// This may be used to include null fields in Patch requests.
32031	NullFields []string `json:"-"`
32032}
32033
32034func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
32035	type NoMethod RegionAutoscalerList
32036	raw := NoMethod(*s)
32037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32038}
32039
32040// RegionAutoscalerListWarning: [Output Only] Informational warning
32041// message.
32042type RegionAutoscalerListWarning struct {
32043	// Code: [Output Only] A warning code, if applicable. For example,
32044	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32045	// the response.
32046	//
32047	// Possible values:
32048	//   "CLEANUP_FAILED"
32049	//   "DEPRECATED_RESOURCE_USED"
32050	//   "DEPRECATED_TYPE_USED"
32051	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32052	//   "EXPERIMENTAL_TYPE_USED"
32053	//   "EXTERNAL_API_WARNING"
32054	//   "FIELD_VALUE_OVERRIDEN"
32055	//   "INJECTED_KERNELS_DEPRECATED"
32056	//   "MISSING_TYPE_DEPENDENCY"
32057	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32058	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32059	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32060	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32061	//   "NEXT_HOP_NOT_RUNNING"
32062	//   "NOT_CRITICAL_ERROR"
32063	//   "NO_RESULTS_ON_PAGE"
32064	//   "PARTIAL_SUCCESS"
32065	//   "REQUIRED_TOS_AGREEMENT"
32066	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32067	//   "RESOURCE_NOT_DELETED"
32068	//   "SCHEMA_VALIDATION_IGNORED"
32069	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32070	//   "UNDECLARED_PROPERTIES"
32071	//   "UNREACHABLE"
32072	Code string `json:"code,omitempty"`
32073
32074	// Data: [Output Only] Metadata about this warning in key: value format.
32075	// For example:
32076	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32077	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
32078
32079	// Message: [Output Only] A human-readable description of the warning
32080	// code.
32081	Message string `json:"message,omitempty"`
32082
32083	// ForceSendFields is a list of field names (e.g. "Code") to
32084	// unconditionally include in API requests. By default, fields with
32085	// empty values are omitted from API requests. However, any non-pointer,
32086	// non-interface field appearing in ForceSendFields will be sent to the
32087	// server regardless of whether the field is empty or not. This may be
32088	// used to include empty fields in Patch requests.
32089	ForceSendFields []string `json:"-"`
32090
32091	// NullFields is a list of field names (e.g. "Code") to include in API
32092	// requests with the JSON null value. By default, fields with empty
32093	// values are omitted from API requests. However, any field with an
32094	// empty value appearing in NullFields will be sent to the server as
32095	// null. It is an error if a field in this list has a non-empty value.
32096	// This may be used to include null fields in Patch requests.
32097	NullFields []string `json:"-"`
32098}
32099
32100func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
32101	type NoMethod RegionAutoscalerListWarning
32102	raw := NoMethod(*s)
32103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32104}
32105
32106type RegionAutoscalerListWarningData struct {
32107	// Key: [Output Only] A key that provides more detail on the warning
32108	// being returned. For example, for warnings where there are no results
32109	// in a list request for a particular zone, this key might be scope and
32110	// the key value might be the zone name. Other examples might be a key
32111	// indicating a deprecated resource and a suggested replacement, or a
32112	// warning about invalid network settings (for example, if an instance
32113	// attempts to perform IP forwarding but is not enabled for IP
32114	// forwarding).
32115	Key string `json:"key,omitempty"`
32116
32117	// Value: [Output Only] A warning data value corresponding to the key.
32118	Value string `json:"value,omitempty"`
32119
32120	// ForceSendFields is a list of field names (e.g. "Key") to
32121	// unconditionally include in API requests. By default, fields with
32122	// empty values are omitted from API requests. However, any non-pointer,
32123	// non-interface field appearing in ForceSendFields will be sent to the
32124	// server regardless of whether the field is empty or not. This may be
32125	// used to include empty fields in Patch requests.
32126	ForceSendFields []string `json:"-"`
32127
32128	// NullFields is a list of field names (e.g. "Key") to include in API
32129	// requests with the JSON null value. By default, fields with empty
32130	// values are omitted from API requests. However, any field with an
32131	// empty value appearing in NullFields will be sent to the server as
32132	// null. It is an error if a field in this list has a non-empty value.
32133	// This may be used to include null fields in Patch requests.
32134	NullFields []string `json:"-"`
32135}
32136
32137func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
32138	type NoMethod RegionAutoscalerListWarningData
32139	raw := NoMethod(*s)
32140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32141}
32142
32143type RegionCommitmentsUpdateReservationsRequest struct {
32144	// Reservations: A list of two reservations to transfer GPUs and local
32145	// SSD between.
32146	Reservations []*Reservation `json:"reservations,omitempty"`
32147
32148	// ForceSendFields is a list of field names (e.g. "Reservations") to
32149	// unconditionally include in API requests. By default, fields with
32150	// empty values are omitted from API requests. However, any non-pointer,
32151	// non-interface field appearing in ForceSendFields will be sent to the
32152	// server regardless of whether the field is empty or not. This may be
32153	// used to include empty fields in Patch requests.
32154	ForceSendFields []string `json:"-"`
32155
32156	// NullFields is a list of field names (e.g. "Reservations") to include
32157	// in API requests with the JSON null value. By default, fields with
32158	// empty values are omitted from API requests. However, any field with
32159	// an empty value appearing in NullFields will be sent to the server as
32160	// null. It is an error if a field in this list has a non-empty value.
32161	// This may be used to include null fields in Patch requests.
32162	NullFields []string `json:"-"`
32163}
32164
32165func (s *RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
32166	type NoMethod RegionCommitmentsUpdateReservationsRequest
32167	raw := NoMethod(*s)
32168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32169}
32170
32171type RegionDiskTypeList struct {
32172	// Id: [Output Only] Unique identifier for the resource; defined by the
32173	// server.
32174	Id string `json:"id,omitempty"`
32175
32176	// Items: A list of DiskType resources.
32177	Items []*DiskType `json:"items,omitempty"`
32178
32179	// Kind: [Output Only] Type of resource. Always
32180	// compute#regionDiskTypeList for region disk types.
32181	Kind string `json:"kind,omitempty"`
32182
32183	// NextPageToken: [Output Only] This token allows you to get the next
32184	// page of results for list requests. If the number of results is larger
32185	// than maxResults, use the nextPageToken as a value for the query
32186	// parameter pageToken in the next list request. Subsequent list
32187	// requests will have their own nextPageToken to continue paging through
32188	// the results.
32189	NextPageToken string `json:"nextPageToken,omitempty"`
32190
32191	// SelfLink: [Output Only] Server-defined URL for this resource.
32192	SelfLink string `json:"selfLink,omitempty"`
32193
32194	// Warning: [Output Only] Informational warning message.
32195	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
32196
32197	// ServerResponse contains the HTTP response code and headers from the
32198	// server.
32199	googleapi.ServerResponse `json:"-"`
32200
32201	// ForceSendFields is a list of field names (e.g. "Id") to
32202	// unconditionally include in API requests. By default, fields with
32203	// empty values are omitted from API requests. However, any non-pointer,
32204	// non-interface field appearing in ForceSendFields will be sent to the
32205	// server regardless of whether the field is empty or not. This may be
32206	// used to include empty fields in Patch requests.
32207	ForceSendFields []string `json:"-"`
32208
32209	// NullFields is a list of field names (e.g. "Id") to include in API
32210	// requests with the JSON null value. By default, fields with empty
32211	// values are omitted from API requests. However, any field with an
32212	// empty value appearing in NullFields will be sent to the server as
32213	// null. It is an error if a field in this list has a non-empty value.
32214	// This may be used to include null fields in Patch requests.
32215	NullFields []string `json:"-"`
32216}
32217
32218func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
32219	type NoMethod RegionDiskTypeList
32220	raw := NoMethod(*s)
32221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32222}
32223
32224// RegionDiskTypeListWarning: [Output Only] Informational warning
32225// message.
32226type RegionDiskTypeListWarning struct {
32227	// Code: [Output Only] A warning code, if applicable. For example,
32228	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32229	// the response.
32230	//
32231	// Possible values:
32232	//   "CLEANUP_FAILED"
32233	//   "DEPRECATED_RESOURCE_USED"
32234	//   "DEPRECATED_TYPE_USED"
32235	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32236	//   "EXPERIMENTAL_TYPE_USED"
32237	//   "EXTERNAL_API_WARNING"
32238	//   "FIELD_VALUE_OVERRIDEN"
32239	//   "INJECTED_KERNELS_DEPRECATED"
32240	//   "MISSING_TYPE_DEPENDENCY"
32241	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32242	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32243	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32244	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32245	//   "NEXT_HOP_NOT_RUNNING"
32246	//   "NOT_CRITICAL_ERROR"
32247	//   "NO_RESULTS_ON_PAGE"
32248	//   "PARTIAL_SUCCESS"
32249	//   "REQUIRED_TOS_AGREEMENT"
32250	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32251	//   "RESOURCE_NOT_DELETED"
32252	//   "SCHEMA_VALIDATION_IGNORED"
32253	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32254	//   "UNDECLARED_PROPERTIES"
32255	//   "UNREACHABLE"
32256	Code string `json:"code,omitempty"`
32257
32258	// Data: [Output Only] Metadata about this warning in key: value format.
32259	// For example:
32260	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32261	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
32262
32263	// Message: [Output Only] A human-readable description of the warning
32264	// code.
32265	Message string `json:"message,omitempty"`
32266
32267	// ForceSendFields is a list of field names (e.g. "Code") to
32268	// unconditionally include in API requests. By default, fields with
32269	// empty values are omitted from API requests. However, any non-pointer,
32270	// non-interface field appearing in ForceSendFields will be sent to the
32271	// server regardless of whether the field is empty or not. This may be
32272	// used to include empty fields in Patch requests.
32273	ForceSendFields []string `json:"-"`
32274
32275	// NullFields is a list of field names (e.g. "Code") to include in API
32276	// requests with the JSON null value. By default, fields with empty
32277	// values are omitted from API requests. However, any field with an
32278	// empty value appearing in NullFields will be sent to the server as
32279	// null. It is an error if a field in this list has a non-empty value.
32280	// This may be used to include null fields in Patch requests.
32281	NullFields []string `json:"-"`
32282}
32283
32284func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
32285	type NoMethod RegionDiskTypeListWarning
32286	raw := NoMethod(*s)
32287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32288}
32289
32290type RegionDiskTypeListWarningData struct {
32291	// Key: [Output Only] A key that provides more detail on the warning
32292	// being returned. For example, for warnings where there are no results
32293	// in a list request for a particular zone, this key might be scope and
32294	// the key value might be the zone name. Other examples might be a key
32295	// indicating a deprecated resource and a suggested replacement, or a
32296	// warning about invalid network settings (for example, if an instance
32297	// attempts to perform IP forwarding but is not enabled for IP
32298	// forwarding).
32299	Key string `json:"key,omitempty"`
32300
32301	// Value: [Output Only] A warning data value corresponding to the key.
32302	Value string `json:"value,omitempty"`
32303
32304	// ForceSendFields is a list of field names (e.g. "Key") to
32305	// unconditionally include in API requests. By default, fields with
32306	// empty values are omitted from API requests. However, any non-pointer,
32307	// non-interface field appearing in ForceSendFields will be sent to the
32308	// server regardless of whether the field is empty or not. This may be
32309	// used to include empty fields in Patch requests.
32310	ForceSendFields []string `json:"-"`
32311
32312	// NullFields is a list of field names (e.g. "Key") to include in API
32313	// requests with the JSON null value. By default, fields with empty
32314	// values are omitted from API requests. However, any field with an
32315	// empty value appearing in NullFields will be sent to the server as
32316	// null. It is an error if a field in this list has a non-empty value.
32317	// This may be used to include null fields in Patch requests.
32318	NullFields []string `json:"-"`
32319}
32320
32321func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
32322	type NoMethod RegionDiskTypeListWarningData
32323	raw := NoMethod(*s)
32324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32325}
32326
32327type RegionDisksAddResourcePoliciesRequest struct {
32328	// ResourcePolicies: Resource policies to be added to this disk.
32329	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
32330
32331	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
32332	// unconditionally include in API requests. By default, fields with
32333	// empty values are omitted from API requests. However, any non-pointer,
32334	// non-interface field appearing in ForceSendFields will be sent to the
32335	// server regardless of whether the field is empty or not. This may be
32336	// used to include empty fields in Patch requests.
32337	ForceSendFields []string `json:"-"`
32338
32339	// NullFields is a list of field names (e.g. "ResourcePolicies") to
32340	// include in API requests with the JSON null value. By default, fields
32341	// with empty values are omitted from API requests. However, any field
32342	// with an empty value appearing in NullFields will be sent to the
32343	// server as null. It is an error if a field in this list has a
32344	// non-empty value. This may be used to include null fields in Patch
32345	// requests.
32346	NullFields []string `json:"-"`
32347}
32348
32349func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
32350	type NoMethod RegionDisksAddResourcePoliciesRequest
32351	raw := NoMethod(*s)
32352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32353}
32354
32355type RegionDisksRemoveResourcePoliciesRequest struct {
32356	// ResourcePolicies: Resource policies to be removed from this disk.
32357	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
32358
32359	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
32360	// unconditionally include in API requests. By default, fields with
32361	// empty values are omitted from API requests. However, any non-pointer,
32362	// non-interface field appearing in ForceSendFields will be sent to the
32363	// server regardless of whether the field is empty or not. This may be
32364	// used to include empty fields in Patch requests.
32365	ForceSendFields []string `json:"-"`
32366
32367	// NullFields is a list of field names (e.g. "ResourcePolicies") to
32368	// include in API requests with the JSON null value. By default, fields
32369	// with empty values are omitted from API requests. However, any field
32370	// with an empty value appearing in NullFields will be sent to the
32371	// server as null. It is an error if a field in this list has a
32372	// non-empty value. This may be used to include null fields in Patch
32373	// requests.
32374	NullFields []string `json:"-"`
32375}
32376
32377func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
32378	type NoMethod RegionDisksRemoveResourcePoliciesRequest
32379	raw := NoMethod(*s)
32380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32381}
32382
32383type RegionDisksResizeRequest struct {
32384	// SizeGb: The new size of the regional persistent disk, which is
32385	// specified in GB.
32386	SizeGb int64 `json:"sizeGb,omitempty,string"`
32387
32388	// ForceSendFields is a list of field names (e.g. "SizeGb") to
32389	// unconditionally include in API requests. By default, fields with
32390	// empty values are omitted from API requests. However, any non-pointer,
32391	// non-interface field appearing in ForceSendFields will be sent to the
32392	// server regardless of whether the field is empty or not. This may be
32393	// used to include empty fields in Patch requests.
32394	ForceSendFields []string `json:"-"`
32395
32396	// NullFields is a list of field names (e.g. "SizeGb") to include in API
32397	// requests with the JSON null value. By default, fields with empty
32398	// values are omitted from API requests. However, any field with an
32399	// empty value appearing in NullFields will be sent to the server as
32400	// null. It is an error if a field in this list has a non-empty value.
32401	// This may be used to include null fields in Patch requests.
32402	NullFields []string `json:"-"`
32403}
32404
32405func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
32406	type NoMethod RegionDisksResizeRequest
32407	raw := NoMethod(*s)
32408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32409}
32410
32411// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
32412type RegionInstanceGroupList struct {
32413	// Id: [Output Only] Unique identifier for the resource; defined by the
32414	// server.
32415	Id string `json:"id,omitempty"`
32416
32417	// Items: A list of InstanceGroup resources.
32418	Items []*InstanceGroup `json:"items,omitempty"`
32419
32420	// Kind: The resource type.
32421	Kind string `json:"kind,omitempty"`
32422
32423	// NextPageToken: [Output Only] This token allows you to get the next
32424	// page of results for list requests. If the number of results is larger
32425	// than maxResults, use the nextPageToken as a value for the query
32426	// parameter pageToken in the next list request. Subsequent list
32427	// requests will have their own nextPageToken to continue paging through
32428	// the results.
32429	NextPageToken string `json:"nextPageToken,omitempty"`
32430
32431	// SelfLink: [Output Only] Server-defined URL for this resource.
32432	SelfLink string `json:"selfLink,omitempty"`
32433
32434	// Warning: [Output Only] Informational warning message.
32435	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
32436
32437	// ServerResponse contains the HTTP response code and headers from the
32438	// server.
32439	googleapi.ServerResponse `json:"-"`
32440
32441	// ForceSendFields is a list of field names (e.g. "Id") to
32442	// unconditionally include in API requests. By default, fields with
32443	// empty values are omitted from API requests. However, any non-pointer,
32444	// non-interface field appearing in ForceSendFields will be sent to the
32445	// server regardless of whether the field is empty or not. This may be
32446	// used to include empty fields in Patch requests.
32447	ForceSendFields []string `json:"-"`
32448
32449	// NullFields is a list of field names (e.g. "Id") to include in API
32450	// requests with the JSON null value. By default, fields with empty
32451	// values are omitted from API requests. However, any field with an
32452	// empty value appearing in NullFields will be sent to the server as
32453	// null. It is an error if a field in this list has a non-empty value.
32454	// This may be used to include null fields in Patch requests.
32455	NullFields []string `json:"-"`
32456}
32457
32458func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
32459	type NoMethod RegionInstanceGroupList
32460	raw := NoMethod(*s)
32461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32462}
32463
32464// RegionInstanceGroupListWarning: [Output Only] Informational warning
32465// message.
32466type RegionInstanceGroupListWarning struct {
32467	// Code: [Output Only] A warning code, if applicable. For example,
32468	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32469	// the response.
32470	//
32471	// Possible values:
32472	//   "CLEANUP_FAILED"
32473	//   "DEPRECATED_RESOURCE_USED"
32474	//   "DEPRECATED_TYPE_USED"
32475	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32476	//   "EXPERIMENTAL_TYPE_USED"
32477	//   "EXTERNAL_API_WARNING"
32478	//   "FIELD_VALUE_OVERRIDEN"
32479	//   "INJECTED_KERNELS_DEPRECATED"
32480	//   "MISSING_TYPE_DEPENDENCY"
32481	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32482	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32483	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32484	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32485	//   "NEXT_HOP_NOT_RUNNING"
32486	//   "NOT_CRITICAL_ERROR"
32487	//   "NO_RESULTS_ON_PAGE"
32488	//   "PARTIAL_SUCCESS"
32489	//   "REQUIRED_TOS_AGREEMENT"
32490	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32491	//   "RESOURCE_NOT_DELETED"
32492	//   "SCHEMA_VALIDATION_IGNORED"
32493	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32494	//   "UNDECLARED_PROPERTIES"
32495	//   "UNREACHABLE"
32496	Code string `json:"code,omitempty"`
32497
32498	// Data: [Output Only] Metadata about this warning in key: value format.
32499	// For example:
32500	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32501	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
32502
32503	// Message: [Output Only] A human-readable description of the warning
32504	// code.
32505	Message string `json:"message,omitempty"`
32506
32507	// ForceSendFields is a list of field names (e.g. "Code") to
32508	// unconditionally include in API requests. By default, fields with
32509	// empty values are omitted from API requests. However, any non-pointer,
32510	// non-interface field appearing in ForceSendFields will be sent to the
32511	// server regardless of whether the field is empty or not. This may be
32512	// used to include empty fields in Patch requests.
32513	ForceSendFields []string `json:"-"`
32514
32515	// NullFields is a list of field names (e.g. "Code") to include in API
32516	// requests with the JSON null value. By default, fields with empty
32517	// values are omitted from API requests. However, any field with an
32518	// empty value appearing in NullFields will be sent to the server as
32519	// null. It is an error if a field in this list has a non-empty value.
32520	// This may be used to include null fields in Patch requests.
32521	NullFields []string `json:"-"`
32522}
32523
32524func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
32525	type NoMethod RegionInstanceGroupListWarning
32526	raw := NoMethod(*s)
32527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32528}
32529
32530type RegionInstanceGroupListWarningData struct {
32531	// Key: [Output Only] A key that provides more detail on the warning
32532	// being returned. For example, for warnings where there are no results
32533	// in a list request for a particular zone, this key might be scope and
32534	// the key value might be the zone name. Other examples might be a key
32535	// indicating a deprecated resource and a suggested replacement, or a
32536	// warning about invalid network settings (for example, if an instance
32537	// attempts to perform IP forwarding but is not enabled for IP
32538	// forwarding).
32539	Key string `json:"key,omitempty"`
32540
32541	// Value: [Output Only] A warning data value corresponding to the key.
32542	Value string `json:"value,omitempty"`
32543
32544	// ForceSendFields is a list of field names (e.g. "Key") to
32545	// unconditionally include in API requests. By default, fields with
32546	// empty values are omitted from API requests. However, any non-pointer,
32547	// non-interface field appearing in ForceSendFields will be sent to the
32548	// server regardless of whether the field is empty or not. This may be
32549	// used to include empty fields in Patch requests.
32550	ForceSendFields []string `json:"-"`
32551
32552	// NullFields is a list of field names (e.g. "Key") to include in API
32553	// requests with the JSON null value. By default, fields with empty
32554	// values are omitted from API requests. However, any field with an
32555	// empty value appearing in NullFields will be sent to the server as
32556	// null. It is an error if a field in this list has a non-empty value.
32557	// This may be used to include null fields in Patch requests.
32558	NullFields []string `json:"-"`
32559}
32560
32561func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
32562	type NoMethod RegionInstanceGroupListWarningData
32563	raw := NoMethod(*s)
32564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32565}
32566
32567// RegionInstanceGroupManagerDeleteInstanceConfigReq:
32568// RegionInstanceGroupManagers.deletePerInstanceConfigs
32569type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
32570	// Names: The list of instance names for which we want to delete
32571	// per-instance configs on this managed instance group.
32572	Names []string `json:"names,omitempty"`
32573
32574	// ForceSendFields is a list of field names (e.g. "Names") to
32575	// unconditionally include in API requests. By default, fields with
32576	// empty values are omitted from API requests. However, any non-pointer,
32577	// non-interface field appearing in ForceSendFields will be sent to the
32578	// server regardless of whether the field is empty or not. This may be
32579	// used to include empty fields in Patch requests.
32580	ForceSendFields []string `json:"-"`
32581
32582	// NullFields is a list of field names (e.g. "Names") to include in API
32583	// requests with the JSON null value. By default, fields with empty
32584	// values are omitted from API requests. However, any field with an
32585	// empty value appearing in NullFields will be sent to the server as
32586	// null. It is an error if a field in this list has a non-empty value.
32587	// This may be used to include null fields in Patch requests.
32588	NullFields []string `json:"-"`
32589}
32590
32591func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
32592	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
32593	raw := NoMethod(*s)
32594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32595}
32596
32597// RegionInstanceGroupManagerList: Contains a list of managed instance
32598// groups.
32599type RegionInstanceGroupManagerList struct {
32600	// Id: [Output Only] Unique identifier for the resource; defined by the
32601	// server.
32602	Id string `json:"id,omitempty"`
32603
32604	// Items: A list of InstanceGroupManager resources.
32605	Items []*InstanceGroupManager `json:"items,omitempty"`
32606
32607	// Kind: [Output Only] The resource type, which is always
32608	// compute#instanceGroupManagerList for a list of managed instance
32609	// groups that exist in th regional scope.
32610	Kind string `json:"kind,omitempty"`
32611
32612	// NextPageToken: [Output Only] This token allows you to get the next
32613	// page of results for list requests. If the number of results is larger
32614	// than maxResults, use the nextPageToken as a value for the query
32615	// parameter pageToken in the next list request. Subsequent list
32616	// requests will have their own nextPageToken to continue paging through
32617	// the results.
32618	NextPageToken string `json:"nextPageToken,omitempty"`
32619
32620	// SelfLink: [Output Only] Server-defined URL for this resource.
32621	SelfLink string `json:"selfLink,omitempty"`
32622
32623	// Warning: [Output Only] Informational warning message.
32624	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
32625
32626	// ServerResponse contains the HTTP response code and headers from the
32627	// server.
32628	googleapi.ServerResponse `json:"-"`
32629
32630	// ForceSendFields is a list of field names (e.g. "Id") to
32631	// unconditionally include in API requests. By default, fields with
32632	// empty values are omitted from API requests. However, any non-pointer,
32633	// non-interface field appearing in ForceSendFields will be sent to the
32634	// server regardless of whether the field is empty or not. This may be
32635	// used to include empty fields in Patch requests.
32636	ForceSendFields []string `json:"-"`
32637
32638	// NullFields is a list of field names (e.g. "Id") to include in API
32639	// requests with the JSON null value. By default, fields with empty
32640	// values are omitted from API requests. However, any field with an
32641	// empty value appearing in NullFields will be sent to the server as
32642	// null. It is an error if a field in this list has a non-empty value.
32643	// This may be used to include null fields in Patch requests.
32644	NullFields []string `json:"-"`
32645}
32646
32647func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
32648	type NoMethod RegionInstanceGroupManagerList
32649	raw := NoMethod(*s)
32650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32651}
32652
32653// RegionInstanceGroupManagerListWarning: [Output Only] Informational
32654// warning message.
32655type RegionInstanceGroupManagerListWarning struct {
32656	// Code: [Output Only] A warning code, if applicable. For example,
32657	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32658	// the response.
32659	//
32660	// Possible values:
32661	//   "CLEANUP_FAILED"
32662	//   "DEPRECATED_RESOURCE_USED"
32663	//   "DEPRECATED_TYPE_USED"
32664	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32665	//   "EXPERIMENTAL_TYPE_USED"
32666	//   "EXTERNAL_API_WARNING"
32667	//   "FIELD_VALUE_OVERRIDEN"
32668	//   "INJECTED_KERNELS_DEPRECATED"
32669	//   "MISSING_TYPE_DEPENDENCY"
32670	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32671	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32672	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32673	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32674	//   "NEXT_HOP_NOT_RUNNING"
32675	//   "NOT_CRITICAL_ERROR"
32676	//   "NO_RESULTS_ON_PAGE"
32677	//   "PARTIAL_SUCCESS"
32678	//   "REQUIRED_TOS_AGREEMENT"
32679	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32680	//   "RESOURCE_NOT_DELETED"
32681	//   "SCHEMA_VALIDATION_IGNORED"
32682	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32683	//   "UNDECLARED_PROPERTIES"
32684	//   "UNREACHABLE"
32685	Code string `json:"code,omitempty"`
32686
32687	// Data: [Output Only] Metadata about this warning in key: value format.
32688	// For example:
32689	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32690	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
32691
32692	// Message: [Output Only] A human-readable description of the warning
32693	// code.
32694	Message string `json:"message,omitempty"`
32695
32696	// ForceSendFields is a list of field names (e.g. "Code") to
32697	// unconditionally include in API requests. By default, fields with
32698	// empty values are omitted from API requests. However, any non-pointer,
32699	// non-interface field appearing in ForceSendFields will be sent to the
32700	// server regardless of whether the field is empty or not. This may be
32701	// used to include empty fields in Patch requests.
32702	ForceSendFields []string `json:"-"`
32703
32704	// NullFields is a list of field names (e.g. "Code") to include in API
32705	// requests with the JSON null value. By default, fields with empty
32706	// values are omitted from API requests. However, any field with an
32707	// empty value appearing in NullFields will be sent to the server as
32708	// null. It is an error if a field in this list has a non-empty value.
32709	// This may be used to include null fields in Patch requests.
32710	NullFields []string `json:"-"`
32711}
32712
32713func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
32714	type NoMethod RegionInstanceGroupManagerListWarning
32715	raw := NoMethod(*s)
32716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32717}
32718
32719type RegionInstanceGroupManagerListWarningData struct {
32720	// Key: [Output Only] A key that provides more detail on the warning
32721	// being returned. For example, for warnings where there are no results
32722	// in a list request for a particular zone, this key might be scope and
32723	// the key value might be the zone name. Other examples might be a key
32724	// indicating a deprecated resource and a suggested replacement, or a
32725	// warning about invalid network settings (for example, if an instance
32726	// attempts to perform IP forwarding but is not enabled for IP
32727	// forwarding).
32728	Key string `json:"key,omitempty"`
32729
32730	// Value: [Output Only] A warning data value corresponding to the key.
32731	Value string `json:"value,omitempty"`
32732
32733	// ForceSendFields is a list of field names (e.g. "Key") to
32734	// unconditionally include in API requests. By default, fields with
32735	// empty values are omitted from API requests. However, any non-pointer,
32736	// non-interface field appearing in ForceSendFields will be sent to the
32737	// server regardless of whether the field is empty or not. This may be
32738	// used to include empty fields in Patch requests.
32739	ForceSendFields []string `json:"-"`
32740
32741	// NullFields is a list of field names (e.g. "Key") to include in API
32742	// requests with the JSON null value. By default, fields with empty
32743	// values are omitted from API requests. However, any field with an
32744	// empty value appearing in NullFields will be sent to the server as
32745	// null. It is an error if a field in this list has a non-empty value.
32746	// This may be used to include null fields in Patch requests.
32747	NullFields []string `json:"-"`
32748}
32749
32750func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
32751	type NoMethod RegionInstanceGroupManagerListWarningData
32752	raw := NoMethod(*s)
32753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32754}
32755
32756// RegionInstanceGroupManagerPatchInstanceConfigReq:
32757// RegionInstanceGroupManagers.patchPerInstanceConfigs
32758type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
32759	// PerInstanceConfigs: The list of per-instance configs to insert or
32760	// patch on this managed instance group.
32761	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
32762
32763	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
32764	// to unconditionally include in API requests. By default, fields with
32765	// empty values are omitted from API requests. However, any non-pointer,
32766	// non-interface field appearing in ForceSendFields will be sent to the
32767	// server regardless of whether the field is empty or not. This may be
32768	// used to include empty fields in Patch requests.
32769	ForceSendFields []string `json:"-"`
32770
32771	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
32772	// include in API requests with the JSON null value. By default, fields
32773	// with empty values are omitted from API requests. However, any field
32774	// with an empty value appearing in NullFields will be sent to the
32775	// server as null. It is an error if a field in this list has a
32776	// non-empty value. This may be used to include null fields in Patch
32777	// requests.
32778	NullFields []string `json:"-"`
32779}
32780
32781func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
32782	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
32783	raw := NoMethod(*s)
32784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32785}
32786
32787// RegionInstanceGroupManagerUpdateInstanceConfigReq:
32788// RegionInstanceGroupManagers.updatePerInstanceConfigs
32789type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
32790	// PerInstanceConfigs: The list of per-instance configs to insert or
32791	// patch on this managed instance group.
32792	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
32793
32794	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
32795	// to unconditionally include in API requests. By default, fields with
32796	// empty values are omitted from API requests. However, any non-pointer,
32797	// non-interface field appearing in ForceSendFields will be sent to the
32798	// server regardless of whether the field is empty or not. This may be
32799	// used to include empty fields in Patch requests.
32800	ForceSendFields []string `json:"-"`
32801
32802	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
32803	// include in API requests with the JSON null value. By default, fields
32804	// with empty values are omitted from API requests. However, any field
32805	// with an empty value appearing in NullFields will be sent to the
32806	// server as null. It is an error if a field in this list has a
32807	// non-empty value. This may be used to include null fields in Patch
32808	// requests.
32809	NullFields []string `json:"-"`
32810}
32811
32812func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
32813	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
32814	raw := NoMethod(*s)
32815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32816}
32817
32818type RegionInstanceGroupManagersAbandonInstancesRequest struct {
32819	// Instances: The URLs of one or more instances to abandon. This can be
32820	// a full URL or a partial URL, such as
32821	// zones/[ZONE]/instances/[INSTANCE_NAME].
32822	Instances []string `json:"instances,omitempty"`
32823
32824	// ForceSendFields is a list of field names (e.g. "Instances") to
32825	// unconditionally include in API requests. By default, fields with
32826	// empty values are omitted from API requests. However, any non-pointer,
32827	// non-interface field appearing in ForceSendFields will be sent to the
32828	// server regardless of whether the field is empty or not. This may be
32829	// used to include empty fields in Patch requests.
32830	ForceSendFields []string `json:"-"`
32831
32832	// NullFields is a list of field names (e.g. "Instances") to include in
32833	// API requests with the JSON null value. By default, fields with empty
32834	// values are omitted from API requests. However, any field with an
32835	// empty value appearing in NullFields will be sent to the server as
32836	// null. It is an error if a field in this list has a non-empty value.
32837	// This may be used to include null fields in Patch requests.
32838	NullFields []string `json:"-"`
32839}
32840
32841func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
32842	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
32843	raw := NoMethod(*s)
32844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32845}
32846
32847// RegionInstanceGroupManagersApplyUpdatesRequest:
32848// InstanceGroupManagers.applyUpdatesToInstances
32849type RegionInstanceGroupManagersApplyUpdatesRequest struct {
32850	// Instances: The list of URLs of one or more instances for which you
32851	// want to apply updates. Each URL can be a full URL or a partial URL,
32852	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
32853	Instances []string `json:"instances,omitempty"`
32854
32855	// MaximalAction: The maximal action that should be performed on the
32856	// instances. By default REPLACE. This field is deprecated, please use
32857	// most_disruptive_allowed_action.
32858	//
32859	// Possible values:
32860	//   "NONE"
32861	//   "REFRESH"
32862	//   "REPLACE"
32863	//   "RESTART"
32864	MaximalAction string `json:"maximalAction,omitempty"`
32865
32866	// MinimalAction: The minimal action that you want to perform on each
32867	// instance during the update:
32868	// - REPLACE: At minimum, delete the instance and create it again.
32869	// - RESTART: Stop the instance and start it again.
32870	// - REFRESH: Do not stop the instance.
32871	// - NONE: Do not disrupt the instance at all.  By default, the minimum
32872	// action is NONE. If your update requires a more disruptive action than
32873	// you set with this flag, the necessary action is performed to execute
32874	// the update.
32875	//
32876	// Possible values:
32877	//   "NONE"
32878	//   "REFRESH"
32879	//   "REPLACE"
32880	//   "RESTART"
32881	MinimalAction string `json:"minimalAction,omitempty"`
32882
32883	// MostDisruptiveAllowedAction: The most disruptive action that you want
32884	// to perform on each instance during the update:
32885	// - REPLACE: Delete the instance and create it again.
32886	// - RESTART: Stop the instance and start it again.
32887	// - REFRESH: Do not stop the instance.
32888	// - NONE: Do not disrupt the instance at all.  By default, the most
32889	// disruptive allowed action is REPLACE. If your update requires a more
32890	// disruptive action than you set with this flag, the update request
32891	// will fail.
32892	//
32893	// Possible values:
32894	//   "NONE"
32895	//   "REFRESH"
32896	//   "REPLACE"
32897	//   "RESTART"
32898	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
32899
32900	// ForceSendFields is a list of field names (e.g. "Instances") to
32901	// unconditionally include in API requests. By default, fields with
32902	// empty values are omitted from API requests. However, any non-pointer,
32903	// non-interface field appearing in ForceSendFields will be sent to the
32904	// server regardless of whether the field is empty or not. This may be
32905	// used to include empty fields in Patch requests.
32906	ForceSendFields []string `json:"-"`
32907
32908	// NullFields is a list of field names (e.g. "Instances") to include in
32909	// API 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 *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
32918	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
32919	raw := NoMethod(*s)
32920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32921}
32922
32923// RegionInstanceGroupManagersCreateInstancesRequest:
32924// RegionInstanceGroupManagers.createInstances
32925type RegionInstanceGroupManagersCreateInstancesRequest struct {
32926	// Instances: [Required] List of specifications of per-instance configs.
32927	Instances []*PerInstanceConfig `json:"instances,omitempty"`
32928
32929	// ForceSendFields is a list of field names (e.g. "Instances") to
32930	// unconditionally include in API requests. By default, fields with
32931	// empty values are omitted from API requests. However, any non-pointer,
32932	// non-interface field appearing in ForceSendFields will be sent to the
32933	// server regardless of whether the field is empty or not. This may be
32934	// used to include empty fields in Patch requests.
32935	ForceSendFields []string `json:"-"`
32936
32937	// NullFields is a list of field names (e.g. "Instances") to include in
32938	// API requests with the JSON null value. By default, fields with empty
32939	// values are omitted from API requests. However, any field with an
32940	// empty value appearing in NullFields will be sent to the server as
32941	// null. It is an error if a field in this list has a non-empty value.
32942	// This may be used to include null fields in Patch requests.
32943	NullFields []string `json:"-"`
32944}
32945
32946func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
32947	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
32948	raw := NoMethod(*s)
32949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32950}
32951
32952type RegionInstanceGroupManagersDeleteInstancesRequest struct {
32953	// Instances: The URLs of one or more instances to delete. This can be a
32954	// full URL or a partial URL, such as
32955	// zones/[ZONE]/instances/[INSTANCE_NAME].
32956	Instances []string `json:"instances,omitempty"`
32957
32958	// ForceSendFields is a list of field names (e.g. "Instances") to
32959	// unconditionally include in API requests. By default, fields with
32960	// empty values are omitted from API requests. However, any non-pointer,
32961	// non-interface field appearing in ForceSendFields will be sent to the
32962	// server regardless of whether the field is empty or not. This may be
32963	// used to include empty fields in Patch requests.
32964	ForceSendFields []string `json:"-"`
32965
32966	// NullFields is a list of field names (e.g. "Instances") to include in
32967	// API requests with the JSON null value. By default, fields with empty
32968	// values are omitted from API requests. However, any field with an
32969	// empty value appearing in NullFields will be sent to the server as
32970	// null. It is an error if a field in this list has a non-empty value.
32971	// This may be used to include null fields in Patch requests.
32972	NullFields []string `json:"-"`
32973}
32974
32975func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
32976	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
32977	raw := NoMethod(*s)
32978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32979}
32980
32981type RegionInstanceGroupManagersListErrorsResponse struct {
32982	// Items: [Output Only] The list of errors of the managed instance
32983	// group.
32984	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
32985
32986	// NextPageToken: [Output Only] This token allows you to get the next
32987	// page of results for list requests. If the number of results is larger
32988	// than maxResults, use the nextPageToken as a value for the query
32989	// parameter pageToken in the next list request. Subsequent list
32990	// requests will have their own nextPageToken to continue paging through
32991	// the results.
32992	NextPageToken string `json:"nextPageToken,omitempty"`
32993
32994	// ServerResponse contains the HTTP response code and headers from the
32995	// server.
32996	googleapi.ServerResponse `json:"-"`
32997
32998	// ForceSendFields is a list of field names (e.g. "Items") to
32999	// unconditionally include in API requests. By default, fields with
33000	// empty values are omitted from API requests. However, any non-pointer,
33001	// non-interface field appearing in ForceSendFields will be sent to the
33002	// server regardless of whether the field is empty or not. This may be
33003	// used to include empty fields in Patch requests.
33004	ForceSendFields []string `json:"-"`
33005
33006	// NullFields is a list of field names (e.g. "Items") to include in API
33007	// requests with the JSON null value. By default, fields with empty
33008	// values are omitted from API requests. However, any field with an
33009	// empty value appearing in NullFields will be sent to the server as
33010	// null. It is an error if a field in this list has a non-empty value.
33011	// This may be used to include null fields in Patch requests.
33012	NullFields []string `json:"-"`
33013}
33014
33015func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
33016	type NoMethod RegionInstanceGroupManagersListErrorsResponse
33017	raw := NoMethod(*s)
33018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33019}
33020
33021type RegionInstanceGroupManagersListInstanceConfigsResp struct {
33022	// Items: [Output Only] The list of PerInstanceConfig.
33023	Items []*PerInstanceConfig `json:"items,omitempty"`
33024
33025	// NextPageToken: [Output Only] This token allows you to get the next
33026	// page of results for list requests. If the number of results is larger
33027	// than maxResults, use the nextPageToken as a value for the query
33028	// parameter pageToken in the next list request. Subsequent list
33029	// requests will have their own nextPageToken to continue paging through
33030	// the results.
33031	NextPageToken string `json:"nextPageToken,omitempty"`
33032
33033	// Warning: [Output Only] Informational warning message.
33034	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
33035
33036	// ServerResponse contains the HTTP response code and headers from the
33037	// server.
33038	googleapi.ServerResponse `json:"-"`
33039
33040	// ForceSendFields is a list of field names (e.g. "Items") to
33041	// unconditionally include in API requests. By default, fields with
33042	// empty values are omitted from API requests. However, any non-pointer,
33043	// non-interface field appearing in ForceSendFields will be sent to the
33044	// server regardless of whether the field is empty or not. This may be
33045	// used to include empty fields in Patch requests.
33046	ForceSendFields []string `json:"-"`
33047
33048	// NullFields is a list of field names (e.g. "Items") to include in API
33049	// requests with the JSON null value. By default, fields with empty
33050	// values are omitted from API requests. However, any field with an
33051	// empty value appearing in NullFields will be sent to the server as
33052	// null. It is an error if a field in this list has a non-empty value.
33053	// This may be used to include null fields in Patch requests.
33054	NullFields []string `json:"-"`
33055}
33056
33057func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
33058	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
33059	raw := NoMethod(*s)
33060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33061}
33062
33063// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
33064// Only] Informational warning message.
33065type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
33066	// Code: [Output Only] A warning code, if applicable. For example,
33067	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33068	// the response.
33069	//
33070	// Possible values:
33071	//   "CLEANUP_FAILED"
33072	//   "DEPRECATED_RESOURCE_USED"
33073	//   "DEPRECATED_TYPE_USED"
33074	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33075	//   "EXPERIMENTAL_TYPE_USED"
33076	//   "EXTERNAL_API_WARNING"
33077	//   "FIELD_VALUE_OVERRIDEN"
33078	//   "INJECTED_KERNELS_DEPRECATED"
33079	//   "MISSING_TYPE_DEPENDENCY"
33080	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33081	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33082	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33083	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33084	//   "NEXT_HOP_NOT_RUNNING"
33085	//   "NOT_CRITICAL_ERROR"
33086	//   "NO_RESULTS_ON_PAGE"
33087	//   "PARTIAL_SUCCESS"
33088	//   "REQUIRED_TOS_AGREEMENT"
33089	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33090	//   "RESOURCE_NOT_DELETED"
33091	//   "SCHEMA_VALIDATION_IGNORED"
33092	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33093	//   "UNDECLARED_PROPERTIES"
33094	//   "UNREACHABLE"
33095	Code string `json:"code,omitempty"`
33096
33097	// Data: [Output Only] Metadata about this warning in key: value format.
33098	// For example:
33099	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33100	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
33101
33102	// Message: [Output Only] A human-readable description of the warning
33103	// code.
33104	Message string `json:"message,omitempty"`
33105
33106	// ForceSendFields is a list of field names (e.g. "Code") to
33107	// unconditionally include in API requests. By default, fields with
33108	// empty values are omitted from API requests. However, any non-pointer,
33109	// non-interface field appearing in ForceSendFields will be sent to the
33110	// server regardless of whether the field is empty or not. This may be
33111	// used to include empty fields in Patch requests.
33112	ForceSendFields []string `json:"-"`
33113
33114	// NullFields is a list of field names (e.g. "Code") to include in API
33115	// requests with the JSON null value. By default, fields with empty
33116	// values are omitted from API requests. However, any field with an
33117	// empty value appearing in NullFields will be sent to the server as
33118	// null. It is an error if a field in this list has a non-empty value.
33119	// This may be used to include null fields in Patch requests.
33120	NullFields []string `json:"-"`
33121}
33122
33123func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
33124	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
33125	raw := NoMethod(*s)
33126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33127}
33128
33129type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
33130	// Key: [Output Only] A key that provides more detail on the warning
33131	// being returned. For example, for warnings where there are no results
33132	// in a list request for a particular zone, this key might be scope and
33133	// the key value might be the zone name. Other examples might be a key
33134	// indicating a deprecated resource and a suggested replacement, or a
33135	// warning about invalid network settings (for example, if an instance
33136	// attempts to perform IP forwarding but is not enabled for IP
33137	// forwarding).
33138	Key string `json:"key,omitempty"`
33139
33140	// Value: [Output Only] A warning data value corresponding to the key.
33141	Value string `json:"value,omitempty"`
33142
33143	// ForceSendFields is a list of field names (e.g. "Key") to
33144	// unconditionally include in API requests. By default, fields with
33145	// empty values are omitted from API requests. However, any non-pointer,
33146	// non-interface field appearing in ForceSendFields will be sent to the
33147	// server regardless of whether the field is empty or not. This may be
33148	// used to include empty fields in Patch requests.
33149	ForceSendFields []string `json:"-"`
33150
33151	// NullFields is a list of field names (e.g. "Key") to include in API
33152	// requests with the JSON null value. By default, fields with empty
33153	// values are omitted from API requests. However, any field with an
33154	// empty value appearing in NullFields will be sent to the server as
33155	// null. It is an error if a field in this list has a non-empty value.
33156	// This may be used to include null fields in Patch requests.
33157	NullFields []string `json:"-"`
33158}
33159
33160func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
33161	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
33162	raw := NoMethod(*s)
33163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33164}
33165
33166type RegionInstanceGroupManagersListInstancesResponse struct {
33167	// ManagedInstances: A list of managed instances.
33168	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
33169
33170	// NextPageToken: [Output Only] This token allows you to get the next
33171	// page of results for list requests. If the number of results is larger
33172	// than maxResults, use the nextPageToken as a value for the query
33173	// parameter pageToken in the next list request. Subsequent list
33174	// requests will have their own nextPageToken to continue paging through
33175	// the results.
33176	NextPageToken string `json:"nextPageToken,omitempty"`
33177
33178	// ServerResponse contains the HTTP response code and headers from the
33179	// server.
33180	googleapi.ServerResponse `json:"-"`
33181
33182	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
33183	// unconditionally include in API requests. By default, fields with
33184	// empty values are omitted from API requests. However, any non-pointer,
33185	// non-interface field appearing in ForceSendFields will be sent to the
33186	// server regardless of whether the field is empty or not. This may be
33187	// used to include empty fields in Patch requests.
33188	ForceSendFields []string `json:"-"`
33189
33190	// NullFields is a list of field names (e.g. "ManagedInstances") to
33191	// include in API requests with the JSON null value. By default, fields
33192	// with empty values are omitted from API requests. However, any field
33193	// with an empty value appearing in NullFields will be sent to the
33194	// server as null. It is an error if a field in this list has a
33195	// non-empty value. This may be used to include null fields in Patch
33196	// requests.
33197	NullFields []string `json:"-"`
33198}
33199
33200func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
33201	type NoMethod RegionInstanceGroupManagersListInstancesResponse
33202	raw := NoMethod(*s)
33203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33204}
33205
33206type RegionInstanceGroupManagersRecreateRequest struct {
33207	// Instances: The URLs of one or more instances to recreate. This can be
33208	// a full URL or a partial URL, such as
33209	// zones/[ZONE]/instances/[INSTANCE_NAME].
33210	Instances []string `json:"instances,omitempty"`
33211
33212	// ForceSendFields is a list of field names (e.g. "Instances") to
33213	// unconditionally include in API requests. By default, fields with
33214	// empty values are omitted from API requests. However, any non-pointer,
33215	// non-interface field appearing in ForceSendFields will be sent to the
33216	// server regardless of whether the field is empty or not. This may be
33217	// used to include empty fields in Patch requests.
33218	ForceSendFields []string `json:"-"`
33219
33220	// NullFields is a list of field names (e.g. "Instances") to include in
33221	// API requests with the JSON null value. By default, fields with empty
33222	// values are omitted from API requests. However, any field with an
33223	// empty value appearing in NullFields will be sent to the server as
33224	// null. It is an error if a field in this list has a non-empty value.
33225	// This may be used to include null fields in Patch requests.
33226	NullFields []string `json:"-"`
33227}
33228
33229func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
33230	type NoMethod RegionInstanceGroupManagersRecreateRequest
33231	raw := NoMethod(*s)
33232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33233}
33234
33235type RegionInstanceGroupManagersSetAutoHealingRequest struct {
33236	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
33237
33238	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
33239	// to unconditionally include in API requests. By default, fields with
33240	// empty values are omitted from API requests. However, any non-pointer,
33241	// non-interface field appearing in ForceSendFields will be sent to the
33242	// server regardless of whether the field is empty or not. This may be
33243	// used to include empty fields in Patch requests.
33244	ForceSendFields []string `json:"-"`
33245
33246	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
33247	// include in API requests with the JSON null value. By default, fields
33248	// with empty values are omitted from API requests. However, any field
33249	// with an empty value appearing in NullFields will be sent to the
33250	// server as null. It is an error if a field in this list has a
33251	// non-empty value. This may be used to include null fields in Patch
33252	// requests.
33253	NullFields []string `json:"-"`
33254}
33255
33256func (s *RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
33257	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
33258	raw := NoMethod(*s)
33259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33260}
33261
33262type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
33263	// Fingerprint: Fingerprint of the target pools information, which is a
33264	// hash of the contents. This field is used for optimistic locking when
33265	// you update the target pool entries. This field is optional.
33266	Fingerprint string `json:"fingerprint,omitempty"`
33267
33268	// TargetPools: The URL of all TargetPool resources to which instances
33269	// in the instanceGroup field are added. The target pools automatically
33270	// apply to all of the instances in the managed instance group.
33271	TargetPools []string `json:"targetPools,omitempty"`
33272
33273	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
33274	// unconditionally include in API requests. By default, fields with
33275	// empty values are omitted from API requests. However, any non-pointer,
33276	// non-interface field appearing in ForceSendFields will be sent to the
33277	// server regardless of whether the field is empty or not. This may be
33278	// used to include empty fields in Patch requests.
33279	ForceSendFields []string `json:"-"`
33280
33281	// NullFields is a list of field names (e.g. "Fingerprint") to include
33282	// in API requests with the JSON null value. By default, fields with
33283	// empty values are omitted from API requests. However, any field with
33284	// an empty value appearing in NullFields will be sent to the server as
33285	// null. It is an error if a field in this list has a non-empty value.
33286	// This may be used to include null fields in Patch requests.
33287	NullFields []string `json:"-"`
33288}
33289
33290func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
33291	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
33292	raw := NoMethod(*s)
33293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33294}
33295
33296type RegionInstanceGroupManagersSetTemplateRequest struct {
33297	// InstanceTemplate: URL of the InstanceTemplate resource from which all
33298	// new instances will be created.
33299	InstanceTemplate string `json:"instanceTemplate,omitempty"`
33300
33301	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
33302	// unconditionally include in API requests. By default, fields with
33303	// empty values are omitted from API requests. However, any non-pointer,
33304	// non-interface field appearing in ForceSendFields will be sent to the
33305	// server regardless of whether the field is empty or not. This may be
33306	// used to include empty fields in Patch requests.
33307	ForceSendFields []string `json:"-"`
33308
33309	// NullFields is a list of field names (e.g. "InstanceTemplate") to
33310	// include in API requests with the JSON null value. By default, fields
33311	// with empty values are omitted from API requests. However, any field
33312	// with an empty value appearing in NullFields will be sent to the
33313	// server as null. It is an error if a field in this list has a
33314	// non-empty value. This may be used to include null fields in Patch
33315	// requests.
33316	NullFields []string `json:"-"`
33317}
33318
33319func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
33320	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
33321	raw := NoMethod(*s)
33322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33323}
33324
33325type RegionInstanceGroupsListInstances struct {
33326	// Id: [Output Only] Unique identifier for the resource; defined by the
33327	// server.
33328	Id string `json:"id,omitempty"`
33329
33330	// Items: A list of InstanceWithNamedPorts resources.
33331	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
33332
33333	// Kind: The resource type.
33334	Kind string `json:"kind,omitempty"`
33335
33336	// NextPageToken: [Output Only] This token allows you to get the next
33337	// page of results for list requests. If the number of results is larger
33338	// than maxResults, use the nextPageToken as a value for the query
33339	// parameter pageToken in the next list request. Subsequent list
33340	// requests will have their own nextPageToken to continue paging through
33341	// the results.
33342	NextPageToken string `json:"nextPageToken,omitempty"`
33343
33344	// SelfLink: [Output Only] Server-defined URL for this resource.
33345	SelfLink string `json:"selfLink,omitempty"`
33346
33347	// Warning: [Output Only] Informational warning message.
33348	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
33349
33350	// ServerResponse contains the HTTP response code and headers from the
33351	// server.
33352	googleapi.ServerResponse `json:"-"`
33353
33354	// ForceSendFields is a list of field names (e.g. "Id") to
33355	// unconditionally include in API requests. By default, fields with
33356	// empty values are omitted from API requests. However, any non-pointer,
33357	// non-interface field appearing in ForceSendFields will be sent to the
33358	// server regardless of whether the field is empty or not. This may be
33359	// used to include empty fields in Patch requests.
33360	ForceSendFields []string `json:"-"`
33361
33362	// NullFields is a list of field names (e.g. "Id") to include in API
33363	// requests with the JSON null value. By default, fields with empty
33364	// values are omitted from API requests. However, any field with an
33365	// empty value appearing in NullFields will be sent to the server as
33366	// null. It is an error if a field in this list has a non-empty value.
33367	// This may be used to include null fields in Patch requests.
33368	NullFields []string `json:"-"`
33369}
33370
33371func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
33372	type NoMethod RegionInstanceGroupsListInstances
33373	raw := NoMethod(*s)
33374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33375}
33376
33377// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
33378// warning message.
33379type RegionInstanceGroupsListInstancesWarning struct {
33380	// Code: [Output Only] A warning code, if applicable. For example,
33381	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33382	// the response.
33383	//
33384	// Possible values:
33385	//   "CLEANUP_FAILED"
33386	//   "DEPRECATED_RESOURCE_USED"
33387	//   "DEPRECATED_TYPE_USED"
33388	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33389	//   "EXPERIMENTAL_TYPE_USED"
33390	//   "EXTERNAL_API_WARNING"
33391	//   "FIELD_VALUE_OVERRIDEN"
33392	//   "INJECTED_KERNELS_DEPRECATED"
33393	//   "MISSING_TYPE_DEPENDENCY"
33394	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33395	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33396	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33397	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33398	//   "NEXT_HOP_NOT_RUNNING"
33399	//   "NOT_CRITICAL_ERROR"
33400	//   "NO_RESULTS_ON_PAGE"
33401	//   "PARTIAL_SUCCESS"
33402	//   "REQUIRED_TOS_AGREEMENT"
33403	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33404	//   "RESOURCE_NOT_DELETED"
33405	//   "SCHEMA_VALIDATION_IGNORED"
33406	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33407	//   "UNDECLARED_PROPERTIES"
33408	//   "UNREACHABLE"
33409	Code string `json:"code,omitempty"`
33410
33411	// Data: [Output Only] Metadata about this warning in key: value format.
33412	// For example:
33413	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33414	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
33415
33416	// Message: [Output Only] A human-readable description of the warning
33417	// code.
33418	Message string `json:"message,omitempty"`
33419
33420	// ForceSendFields is a list of field names (e.g. "Code") to
33421	// unconditionally include in API requests. By default, fields with
33422	// empty values are omitted from API requests. However, any non-pointer,
33423	// non-interface field appearing in ForceSendFields will be sent to the
33424	// server regardless of whether the field is empty or not. This may be
33425	// used to include empty fields in Patch requests.
33426	ForceSendFields []string `json:"-"`
33427
33428	// NullFields is a list of field names (e.g. "Code") to include in API
33429	// requests with the JSON null value. By default, fields with empty
33430	// values are omitted from API requests. However, any field with an
33431	// empty value appearing in NullFields will be sent to the server as
33432	// null. It is an error if a field in this list has a non-empty value.
33433	// This may be used to include null fields in Patch requests.
33434	NullFields []string `json:"-"`
33435}
33436
33437func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
33438	type NoMethod RegionInstanceGroupsListInstancesWarning
33439	raw := NoMethod(*s)
33440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33441}
33442
33443type RegionInstanceGroupsListInstancesWarningData struct {
33444	// Key: [Output Only] A key that provides more detail on the warning
33445	// being returned. For example, for warnings where there are no results
33446	// in a list request for a particular zone, this key might be scope and
33447	// the key value might be the zone name. Other examples might be a key
33448	// indicating a deprecated resource and a suggested replacement, or a
33449	// warning about invalid network settings (for example, if an instance
33450	// attempts to perform IP forwarding but is not enabled for IP
33451	// forwarding).
33452	Key string `json:"key,omitempty"`
33453
33454	// Value: [Output Only] A warning data value corresponding to the key.
33455	Value string `json:"value,omitempty"`
33456
33457	// ForceSendFields is a list of field names (e.g. "Key") to
33458	// unconditionally include in API requests. By default, fields with
33459	// empty values are omitted from API requests. However, any non-pointer,
33460	// non-interface field appearing in ForceSendFields will be sent to the
33461	// server regardless of whether the field is empty or not. This may be
33462	// used to include empty fields in Patch requests.
33463	ForceSendFields []string `json:"-"`
33464
33465	// NullFields is a list of field names (e.g. "Key") to include in API
33466	// requests with the JSON null value. By default, fields with empty
33467	// values are omitted from API requests. However, any field with an
33468	// empty value appearing in NullFields will be sent to the server as
33469	// null. It is an error if a field in this list has a non-empty value.
33470	// This may be used to include null fields in Patch requests.
33471	NullFields []string `json:"-"`
33472}
33473
33474func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
33475	type NoMethod RegionInstanceGroupsListInstancesWarningData
33476	raw := NoMethod(*s)
33477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33478}
33479
33480type RegionInstanceGroupsListInstancesRequest struct {
33481	// InstanceState: Instances in which state should be returned. Valid
33482	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
33483	//
33484	// Possible values:
33485	//   "ALL"
33486	//   "RUNNING"
33487	InstanceState string `json:"instanceState,omitempty"`
33488
33489	// PortName: Name of port user is interested in. It is optional. If it
33490	// is set, only information about this ports will be returned. If it is
33491	// not set, all the named ports will be returned. Always lists all
33492	// instances.
33493	PortName string `json:"portName,omitempty"`
33494
33495	// ForceSendFields is a list of field names (e.g. "InstanceState") to
33496	// unconditionally include in API requests. By default, fields with
33497	// empty values are omitted from API requests. However, any non-pointer,
33498	// non-interface field appearing in ForceSendFields will be sent to the
33499	// server regardless of whether the field is empty or not. This may be
33500	// used to include empty fields in Patch requests.
33501	ForceSendFields []string `json:"-"`
33502
33503	// NullFields is a list of field names (e.g. "InstanceState") to include
33504	// in API requests with the JSON null value. By default, fields with
33505	// empty values are omitted from API requests. However, any field with
33506	// an empty value appearing in NullFields will be sent to the server as
33507	// null. It is an error if a field in this list has a non-empty value.
33508	// This may be used to include null fields in Patch requests.
33509	NullFields []string `json:"-"`
33510}
33511
33512func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
33513	type NoMethod RegionInstanceGroupsListInstancesRequest
33514	raw := NoMethod(*s)
33515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33516}
33517
33518type RegionInstanceGroupsSetNamedPortsRequest struct {
33519	// Fingerprint: The fingerprint of the named ports information for this
33520	// instance group. Use this optional property to prevent conflicts when
33521	// multiple users change the named ports settings concurrently. Obtain
33522	// the fingerprint with the instanceGroups.get method. Then, include the
33523	// fingerprint in your request to ensure that you do not overwrite
33524	// changes that were applied from another concurrent request.
33525	Fingerprint string `json:"fingerprint,omitempty"`
33526
33527	// NamedPorts: The list of named ports to set for this instance group.
33528	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
33529
33530	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
33531	// unconditionally include in API requests. By default, fields with
33532	// empty values are omitted from API requests. However, any non-pointer,
33533	// non-interface field appearing in ForceSendFields will be sent to the
33534	// server regardless of whether the field is empty or not. This may be
33535	// used to include empty fields in Patch requests.
33536	ForceSendFields []string `json:"-"`
33537
33538	// NullFields is a list of field names (e.g. "Fingerprint") to include
33539	// in API requests with the JSON null value. By default, fields with
33540	// empty values are omitted from API requests. However, any field with
33541	// an empty value appearing in NullFields will be sent to the server as
33542	// null. It is an error if a field in this list has a non-empty value.
33543	// This may be used to include null fields in Patch requests.
33544	NullFields []string `json:"-"`
33545}
33546
33547func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
33548	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
33549	raw := NoMethod(*s)
33550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33551}
33552
33553// RegionList: Contains a list of region resources.
33554type RegionList struct {
33555	// Id: [Output Only] Unique identifier for the resource; defined by the
33556	// server.
33557	Id string `json:"id,omitempty"`
33558
33559	// Items: A list of Region resources.
33560	Items []*Region `json:"items,omitempty"`
33561
33562	// Kind: [Output Only] Type of resource. Always compute#regionList for
33563	// lists of regions.
33564	Kind string `json:"kind,omitempty"`
33565
33566	// NextPageToken: [Output Only] This token allows you to get the next
33567	// page of results for list requests. If the number of results is larger
33568	// than maxResults, use the nextPageToken as a value for the query
33569	// parameter pageToken in the next list request. Subsequent list
33570	// requests will have their own nextPageToken to continue paging through
33571	// the results.
33572	NextPageToken string `json:"nextPageToken,omitempty"`
33573
33574	// SelfLink: [Output Only] Server-defined URL for this resource.
33575	SelfLink string `json:"selfLink,omitempty"`
33576
33577	// Warning: [Output Only] Informational warning message.
33578	Warning *RegionListWarning `json:"warning,omitempty"`
33579
33580	// ServerResponse contains the HTTP response code and headers from the
33581	// server.
33582	googleapi.ServerResponse `json:"-"`
33583
33584	// ForceSendFields is a list of field names (e.g. "Id") to
33585	// unconditionally include in API requests. By default, fields with
33586	// empty values are omitted from API requests. However, any non-pointer,
33587	// non-interface field appearing in ForceSendFields will be sent to the
33588	// server regardless of whether the field is empty or not. This may be
33589	// used to include empty fields in Patch requests.
33590	ForceSendFields []string `json:"-"`
33591
33592	// NullFields is a list of field names (e.g. "Id") to include in API
33593	// requests with the JSON null value. By default, fields with empty
33594	// values are omitted from API requests. However, any field with an
33595	// empty value appearing in NullFields will be sent to the server as
33596	// null. It is an error if a field in this list has a non-empty value.
33597	// This may be used to include null fields in Patch requests.
33598	NullFields []string `json:"-"`
33599}
33600
33601func (s *RegionList) MarshalJSON() ([]byte, error) {
33602	type NoMethod RegionList
33603	raw := NoMethod(*s)
33604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33605}
33606
33607// RegionListWarning: [Output Only] Informational warning message.
33608type RegionListWarning struct {
33609	// Code: [Output Only] A warning code, if applicable. For example,
33610	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33611	// the response.
33612	//
33613	// Possible values:
33614	//   "CLEANUP_FAILED"
33615	//   "DEPRECATED_RESOURCE_USED"
33616	//   "DEPRECATED_TYPE_USED"
33617	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33618	//   "EXPERIMENTAL_TYPE_USED"
33619	//   "EXTERNAL_API_WARNING"
33620	//   "FIELD_VALUE_OVERRIDEN"
33621	//   "INJECTED_KERNELS_DEPRECATED"
33622	//   "MISSING_TYPE_DEPENDENCY"
33623	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33624	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33625	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33626	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33627	//   "NEXT_HOP_NOT_RUNNING"
33628	//   "NOT_CRITICAL_ERROR"
33629	//   "NO_RESULTS_ON_PAGE"
33630	//   "PARTIAL_SUCCESS"
33631	//   "REQUIRED_TOS_AGREEMENT"
33632	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33633	//   "RESOURCE_NOT_DELETED"
33634	//   "SCHEMA_VALIDATION_IGNORED"
33635	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33636	//   "UNDECLARED_PROPERTIES"
33637	//   "UNREACHABLE"
33638	Code string `json:"code,omitempty"`
33639
33640	// Data: [Output Only] Metadata about this warning in key: value format.
33641	// For example:
33642	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33643	Data []*RegionListWarningData `json:"data,omitempty"`
33644
33645	// Message: [Output Only] A human-readable description of the warning
33646	// code.
33647	Message string `json:"message,omitempty"`
33648
33649	// ForceSendFields is a list of field names (e.g. "Code") to
33650	// unconditionally include in API requests. By default, fields with
33651	// empty values are omitted from API requests. However, any non-pointer,
33652	// non-interface field appearing in ForceSendFields will be sent to the
33653	// server regardless of whether the field is empty or not. This may be
33654	// used to include empty fields in Patch requests.
33655	ForceSendFields []string `json:"-"`
33656
33657	// NullFields is a list of field names (e.g. "Code") to include in API
33658	// requests with the JSON null value. By default, fields with empty
33659	// values are omitted from API requests. However, any field with an
33660	// empty value appearing in NullFields will be sent to the server as
33661	// null. It is an error if a field in this list has a non-empty value.
33662	// This may be used to include null fields in Patch requests.
33663	NullFields []string `json:"-"`
33664}
33665
33666func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
33667	type NoMethod RegionListWarning
33668	raw := NoMethod(*s)
33669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33670}
33671
33672type RegionListWarningData struct {
33673	// Key: [Output Only] A key that provides more detail on the warning
33674	// being returned. For example, for warnings where there are no results
33675	// in a list request for a particular zone, this key might be scope and
33676	// the key value might be the zone name. Other examples might be a key
33677	// indicating a deprecated resource and a suggested replacement, or a
33678	// warning about invalid network settings (for example, if an instance
33679	// attempts to perform IP forwarding but is not enabled for IP
33680	// forwarding).
33681	Key string `json:"key,omitempty"`
33682
33683	// Value: [Output Only] A warning data value corresponding to the key.
33684	Value string `json:"value,omitempty"`
33685
33686	// ForceSendFields is a list of field names (e.g. "Key") to
33687	// unconditionally include in API requests. By default, fields with
33688	// empty values are omitted from API requests. However, any non-pointer,
33689	// non-interface field appearing in ForceSendFields will be sent to the
33690	// server regardless of whether the field is empty or not. This may be
33691	// used to include empty fields in Patch requests.
33692	ForceSendFields []string `json:"-"`
33693
33694	// NullFields is a list of field names (e.g. "Key") to include in API
33695	// requests with the JSON null value. By default, fields with empty
33696	// values are omitted from API requests. However, any field with an
33697	// empty value appearing in NullFields will be sent to the server as
33698	// null. It is an error if a field in this list has a non-empty value.
33699	// This may be used to include null fields in Patch requests.
33700	NullFields []string `json:"-"`
33701}
33702
33703func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
33704	type NoMethod RegionListWarningData
33705	raw := NoMethod(*s)
33706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33707}
33708
33709type RegionSetLabelsRequest struct {
33710	// LabelFingerprint: The fingerprint of the previous set of labels for
33711	// this resource, used to detect conflicts. The fingerprint is initially
33712	// generated by Compute Engine and changes after every request to modify
33713	// or update labels. You must always provide an up-to-date fingerprint
33714	// hash in order to update or change labels. Make a get() request to the
33715	// resource to get the latest fingerprint.
33716	LabelFingerprint string `json:"labelFingerprint,omitempty"`
33717
33718	// Labels: The labels to set for this resource.
33719	Labels map[string]string `json:"labels,omitempty"`
33720
33721	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
33722	// unconditionally include in API requests. By default, fields with
33723	// empty values are omitted from API requests. However, any non-pointer,
33724	// non-interface field appearing in ForceSendFields will be sent to the
33725	// server regardless of whether the field is empty or not. This may be
33726	// used to include empty fields in Patch requests.
33727	ForceSendFields []string `json:"-"`
33728
33729	// NullFields is a list of field names (e.g. "LabelFingerprint") to
33730	// include in API requests with the JSON null value. By default, fields
33731	// with empty values are omitted from API requests. However, any field
33732	// with an empty value appearing in NullFields will be sent to the
33733	// server as null. It is an error if a field in this list has a
33734	// non-empty value. This may be used to include null fields in Patch
33735	// requests.
33736	NullFields []string `json:"-"`
33737}
33738
33739func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
33740	type NoMethod RegionSetLabelsRequest
33741	raw := NoMethod(*s)
33742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33743}
33744
33745type RegionSetPolicyRequest struct {
33746	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
33747	// Deprecated. Use 'policy' to specify bindings.
33748	Bindings []*Binding `json:"bindings,omitempty"`
33749
33750	// Etag: Flatten Policy to create a backward compatible wire-format.
33751	// Deprecated. Use 'policy' to specify the etag.
33752	Etag string `json:"etag,omitempty"`
33753
33754	// Policy: REQUIRED: The complete policy to be applied to the
33755	// 'resource'. The size of the policy is limited to a few 10s of KB. An
33756	// empty policy is in general a valid policy but certain services (like
33757	// Projects) might reject them.
33758	Policy *Policy `json:"policy,omitempty"`
33759
33760	// ForceSendFields is a list of field names (e.g. "Bindings") to
33761	// unconditionally include in API requests. By default, fields with
33762	// empty values are omitted from API requests. However, any non-pointer,
33763	// non-interface field appearing in ForceSendFields will be sent to the
33764	// server regardless of whether the field is empty or not. This may be
33765	// used to include empty fields in Patch requests.
33766	ForceSendFields []string `json:"-"`
33767
33768	// NullFields is a list of field names (e.g. "Bindings") to include in
33769	// API requests with the JSON null value. By default, fields with empty
33770	// values are omitted from API requests. However, any field with an
33771	// empty value appearing in NullFields will be sent to the server as
33772	// null. It is an error if a field in this list has a non-empty value.
33773	// This may be used to include null fields in Patch requests.
33774	NullFields []string `json:"-"`
33775}
33776
33777func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
33778	type NoMethod RegionSetPolicyRequest
33779	raw := NoMethod(*s)
33780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33781}
33782
33783type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
33784	// SslCertificates: New set of SslCertificate resources to associate
33785	// with this TargetHttpsProxy resource. Currently exactly one
33786	// SslCertificate resource must be specified.
33787	SslCertificates []string `json:"sslCertificates,omitempty"`
33788
33789	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
33790	// unconditionally include in API requests. By default, fields with
33791	// empty values are omitted from API requests. However, any non-pointer,
33792	// non-interface field appearing in ForceSendFields will be sent to the
33793	// server regardless of whether the field is empty or not. This may be
33794	// used to include empty fields in Patch requests.
33795	ForceSendFields []string `json:"-"`
33796
33797	// NullFields is a list of field names (e.g. "SslCertificates") to
33798	// include in API requests with the JSON null value. By default, fields
33799	// with empty values are omitted from API requests. However, any field
33800	// with an empty value appearing in NullFields will be sent to the
33801	// server as null. It is an error if a field in this list has a
33802	// non-empty value. This may be used to include null fields in Patch
33803	// requests.
33804	NullFields []string `json:"-"`
33805}
33806
33807func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
33808	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
33809	raw := NoMethod(*s)
33810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33811}
33812
33813type RegionUrlMapsValidateRequest struct {
33814	// Resource: Content of the UrlMap to be validated.
33815	Resource *UrlMap `json:"resource,omitempty"`
33816
33817	// ForceSendFields is a list of field names (e.g. "Resource") to
33818	// unconditionally include in API requests. By default, fields with
33819	// empty values are omitted from API requests. However, any non-pointer,
33820	// non-interface field appearing in ForceSendFields will be sent to the
33821	// server regardless of whether the field is empty or not. This may be
33822	// used to include empty fields in Patch requests.
33823	ForceSendFields []string `json:"-"`
33824
33825	// NullFields is a list of field names (e.g. "Resource") to include in
33826	// API requests with the JSON null value. By default, fields with empty
33827	// values are omitted from API requests. However, any field with an
33828	// empty value appearing in NullFields will be sent to the server as
33829	// null. It is an error if a field in this list has a non-empty value.
33830	// This may be used to include null fields in Patch requests.
33831	NullFields []string `json:"-"`
33832}
33833
33834func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
33835	type NoMethod RegionUrlMapsValidateRequest
33836	raw := NoMethod(*s)
33837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33838}
33839
33840// RequestMirrorPolicy: A policy that specifies how requests intended
33841// for the route's backends are shadowed to a separate mirrored backend
33842// service. Loadbalancer does not wait for responses from the shadow
33843// service. Prior to sending traffic to the shadow service, the host /
33844// authority header is suffixed with -shadow.
33845type RequestMirrorPolicy struct {
33846	// BackendService: The full or partial URL to the BackendService
33847	// resource being mirrored to.
33848	BackendService string `json:"backendService,omitempty"`
33849
33850	// ForceSendFields is a list of field names (e.g. "BackendService") to
33851	// unconditionally include in API requests. By default, fields with
33852	// empty values are omitted from API requests. However, any non-pointer,
33853	// non-interface field appearing in ForceSendFields will be sent to the
33854	// server regardless of whether the field is empty or not. This may be
33855	// used to include empty fields in Patch requests.
33856	ForceSendFields []string `json:"-"`
33857
33858	// NullFields is a list of field names (e.g. "BackendService") to
33859	// include in API requests with the JSON null value. By default, fields
33860	// with empty values are omitted from API requests. However, any field
33861	// with an empty value appearing in NullFields will be sent to the
33862	// server as null. It is an error if a field in this list has a
33863	// non-empty value. This may be used to include null fields in Patch
33864	// requests.
33865	NullFields []string `json:"-"`
33866}
33867
33868func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
33869	type NoMethod RequestMirrorPolicy
33870	raw := NoMethod(*s)
33871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33872}
33873
33874// Reservation: Represents a reservation resource. A reservation ensures
33875// that capacity is held in a specific zone even if the reserved VMs are
33876// not running. For more information, read  Reserving zonal resources.
33877// (== resource_for {$api_version}.reservations ==)
33878type Reservation struct {
33879	// Commitment: [Output Only] Full or partial URL to a parent commitment.
33880	// This field displays for reservations that are tied to a commitment.
33881	Commitment string `json:"commitment,omitempty"`
33882
33883	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33884	// format.
33885	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33886
33887	// Description: An optional description of this resource. Provide this
33888	// property when you create the resource.
33889	Description string `json:"description,omitempty"`
33890
33891	// Id: [Output Only] The unique identifier for the resource. This
33892	// identifier is defined by the server.
33893	Id uint64 `json:"id,omitempty,string"`
33894
33895	// Kind: [Output Only] Type of the resource. Always compute#reservations
33896	// for reservations.
33897	Kind string `json:"kind,omitempty"`
33898
33899	// Name: The name of the resource, provided by the client when initially
33900	// creating the resource. The resource name must be 1-63 characters
33901	// long, and comply with RFC1035. Specifically, the name must be 1-63
33902	// characters long and match the regular expression
33903	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33904	// a lowercase letter, and all following characters must be a dash,
33905	// lowercase letter, or digit, except the last character, which cannot
33906	// be a dash.
33907	Name string `json:"name,omitempty"`
33908
33909	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
33910	// resource.
33911	SelfLink string `json:"selfLink,omitempty"`
33912
33913	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
33914	// with the resource id.
33915	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
33916
33917	// SpecificReservation: Reservation for instances with specific machine
33918	// shapes.
33919	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
33920
33921	// SpecificReservationRequired: Indicates whether the reservation can be
33922	// consumed by VMs with affinity for "any" reservation. If the field is
33923	// set, then only VMs that target the reservation by name can consume
33924	// from this reservation.
33925	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
33926
33927	// Status: [Output Only] The status of the reservation.
33928	//
33929	// Possible values:
33930	//   "CREATING"
33931	//   "DELETING"
33932	//   "INVALID"
33933	//   "READY"
33934	//   "UPDATING"
33935	Status string `json:"status,omitempty"`
33936
33937	// Zone: Zone in which the reservation resides. A zone must be provided
33938	// if the reservation is created within a commitment.
33939	Zone string `json:"zone,omitempty"`
33940
33941	// ServerResponse contains the HTTP response code and headers from the
33942	// server.
33943	googleapi.ServerResponse `json:"-"`
33944
33945	// ForceSendFields is a list of field names (e.g. "Commitment") to
33946	// unconditionally include in API requests. By default, fields with
33947	// empty values are omitted from API requests. However, any non-pointer,
33948	// non-interface field appearing in ForceSendFields will be sent to the
33949	// server regardless of whether the field is empty or not. This may be
33950	// used to include empty fields in Patch requests.
33951	ForceSendFields []string `json:"-"`
33952
33953	// NullFields is a list of field names (e.g. "Commitment") to include in
33954	// API requests with the JSON null value. By default, fields with empty
33955	// values are omitted from API requests. However, any field with an
33956	// empty value appearing in NullFields will be sent to the server as
33957	// null. It is an error if a field in this list has a non-empty value.
33958	// This may be used to include null fields in Patch requests.
33959	NullFields []string `json:"-"`
33960}
33961
33962func (s *Reservation) MarshalJSON() ([]byte, error) {
33963	type NoMethod Reservation
33964	raw := NoMethod(*s)
33965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33966}
33967
33968// ReservationAffinity: Specifies the reservations that this instance
33969// can consume from.
33970type ReservationAffinity struct {
33971	// ConsumeReservationType: Specifies the type of reservation from which
33972	// this instance can consume resources: ANY_RESERVATION (default),
33973	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
33974	// instances for examples.
33975	//
33976	// Possible values:
33977	//   "ANY_RESERVATION"
33978	//   "NO_RESERVATION"
33979	//   "SPECIFIC_RESERVATION"
33980	//   "SPECIFIC_THEN_ANY_RESERVATION"
33981	//   "UNSPECIFIED"
33982	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
33983
33984	// Key: Corresponds to the label key of a reservation resource. To
33985	// target a SPECIFIC_RESERVATION by name, specify
33986	// googleapis.com/reservation-name as the key and specify the name of
33987	// your reservation as its value.
33988	Key string `json:"key,omitempty"`
33989
33990	// Values: Corresponds to the label values of a reservation resource.
33991	Values []string `json:"values,omitempty"`
33992
33993	// ForceSendFields is a list of field names (e.g.
33994	// "ConsumeReservationType") to unconditionally include in API requests.
33995	// By default, fields with empty values are omitted from API requests.
33996	// However, any non-pointer, non-interface field appearing in
33997	// ForceSendFields will be sent to the server regardless of whether the
33998	// field is empty or not. This may be used to include empty fields in
33999	// Patch requests.
34000	ForceSendFields []string `json:"-"`
34001
34002	// NullFields is a list of field names (e.g. "ConsumeReservationType")
34003	// to include in API requests with the JSON null value. By default,
34004	// fields with empty values are omitted from API requests. However, any
34005	// field with an empty value appearing in NullFields will be sent to the
34006	// server as null. It is an error if a field in this list has a
34007	// non-empty value. This may be used to include null fields in Patch
34008	// requests.
34009	NullFields []string `json:"-"`
34010}
34011
34012func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
34013	type NoMethod ReservationAffinity
34014	raw := NoMethod(*s)
34015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34016}
34017
34018// ReservationAggregatedList: Contains a list of reservations.
34019type ReservationAggregatedList struct {
34020	// Id: [Output Only] Unique identifier for the resource; defined by the
34021	// server.
34022	Id string `json:"id,omitempty"`
34023
34024	// Items: A list of Allocation resources.
34025	Items map[string]ReservationsScopedList `json:"items,omitempty"`
34026
34027	// Kind: Type of resource.
34028	Kind string `json:"kind,omitempty"`
34029
34030	// NextPageToken: [Output Only] This token allows you to get the next
34031	// page of results for list requests. If the number of results is larger
34032	// than maxResults, use the nextPageToken as a value for the query
34033	// parameter pageToken in the next list request. Subsequent list
34034	// requests will have their own nextPageToken to continue paging through
34035	// the results.
34036	NextPageToken string `json:"nextPageToken,omitempty"`
34037
34038	// SelfLink: [Output Only] Server-defined URL for this resource.
34039	SelfLink string `json:"selfLink,omitempty"`
34040
34041	// Unreachables: [Output Only] Unreachable resources.
34042	Unreachables []string `json:"unreachables,omitempty"`
34043
34044	// Warning: [Output Only] Informational warning message.
34045	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
34046
34047	// ServerResponse contains the HTTP response code and headers from the
34048	// server.
34049	googleapi.ServerResponse `json:"-"`
34050
34051	// ForceSendFields is a list of field names (e.g. "Id") to
34052	// unconditionally include in API requests. By default, fields with
34053	// empty values are omitted from API requests. However, any non-pointer,
34054	// non-interface field appearing in ForceSendFields will be sent to the
34055	// server regardless of whether the field is empty or not. This may be
34056	// used to include empty fields in Patch requests.
34057	ForceSendFields []string `json:"-"`
34058
34059	// NullFields is a list of field names (e.g. "Id") to include in API
34060	// requests with the JSON null value. By default, fields with empty
34061	// values are omitted from API requests. However, any field with an
34062	// empty value appearing in NullFields will be sent to the server as
34063	// null. It is an error if a field in this list has a non-empty value.
34064	// This may be used to include null fields in Patch requests.
34065	NullFields []string `json:"-"`
34066}
34067
34068func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
34069	type NoMethod ReservationAggregatedList
34070	raw := NoMethod(*s)
34071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34072}
34073
34074// ReservationAggregatedListWarning: [Output Only] Informational warning
34075// message.
34076type ReservationAggregatedListWarning struct {
34077	// Code: [Output Only] A warning code, if applicable. For example,
34078	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34079	// the response.
34080	//
34081	// Possible values:
34082	//   "CLEANUP_FAILED"
34083	//   "DEPRECATED_RESOURCE_USED"
34084	//   "DEPRECATED_TYPE_USED"
34085	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34086	//   "EXPERIMENTAL_TYPE_USED"
34087	//   "EXTERNAL_API_WARNING"
34088	//   "FIELD_VALUE_OVERRIDEN"
34089	//   "INJECTED_KERNELS_DEPRECATED"
34090	//   "MISSING_TYPE_DEPENDENCY"
34091	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34092	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34093	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34094	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34095	//   "NEXT_HOP_NOT_RUNNING"
34096	//   "NOT_CRITICAL_ERROR"
34097	//   "NO_RESULTS_ON_PAGE"
34098	//   "PARTIAL_SUCCESS"
34099	//   "REQUIRED_TOS_AGREEMENT"
34100	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34101	//   "RESOURCE_NOT_DELETED"
34102	//   "SCHEMA_VALIDATION_IGNORED"
34103	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34104	//   "UNDECLARED_PROPERTIES"
34105	//   "UNREACHABLE"
34106	Code string `json:"code,omitempty"`
34107
34108	// Data: [Output Only] Metadata about this warning in key: value format.
34109	// For example:
34110	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34111	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
34112
34113	// Message: [Output Only] A human-readable description of the warning
34114	// code.
34115	Message string `json:"message,omitempty"`
34116
34117	// ForceSendFields is a list of field names (e.g. "Code") to
34118	// unconditionally include in API requests. By default, fields with
34119	// empty values are omitted from API requests. However, any non-pointer,
34120	// non-interface field appearing in ForceSendFields will be sent to the
34121	// server regardless of whether the field is empty or not. This may be
34122	// used to include empty fields in Patch requests.
34123	ForceSendFields []string `json:"-"`
34124
34125	// NullFields is a list of field names (e.g. "Code") to include in API
34126	// requests with the JSON null value. By default, fields with empty
34127	// values are omitted from API requests. However, any field with an
34128	// empty value appearing in NullFields will be sent to the server as
34129	// null. It is an error if a field in this list has a non-empty value.
34130	// This may be used to include null fields in Patch requests.
34131	NullFields []string `json:"-"`
34132}
34133
34134func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
34135	type NoMethod ReservationAggregatedListWarning
34136	raw := NoMethod(*s)
34137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34138}
34139
34140type ReservationAggregatedListWarningData struct {
34141	// Key: [Output Only] A key that provides more detail on the warning
34142	// being returned. For example, for warnings where there are no results
34143	// in a list request for a particular zone, this key might be scope and
34144	// the key value might be the zone name. Other examples might be a key
34145	// indicating a deprecated resource and a suggested replacement, or a
34146	// warning about invalid network settings (for example, if an instance
34147	// attempts to perform IP forwarding but is not enabled for IP
34148	// forwarding).
34149	Key string `json:"key,omitempty"`
34150
34151	// Value: [Output Only] A warning data value corresponding to the key.
34152	Value string `json:"value,omitempty"`
34153
34154	// ForceSendFields is a list of field names (e.g. "Key") to
34155	// unconditionally include in API requests. By default, fields with
34156	// empty values are omitted from API requests. However, any non-pointer,
34157	// non-interface field appearing in ForceSendFields will be sent to the
34158	// server regardless of whether the field is empty or not. This may be
34159	// used to include empty fields in Patch requests.
34160	ForceSendFields []string `json:"-"`
34161
34162	// NullFields is a list of field names (e.g. "Key") to include in API
34163	// requests with the JSON null value. By default, fields with empty
34164	// values are omitted from API requests. However, any field with an
34165	// empty value appearing in NullFields will be sent to the server as
34166	// null. It is an error if a field in this list has a non-empty value.
34167	// This may be used to include null fields in Patch requests.
34168	NullFields []string `json:"-"`
34169}
34170
34171func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34172	type NoMethod ReservationAggregatedListWarningData
34173	raw := NoMethod(*s)
34174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34175}
34176
34177type ReservationList struct {
34178	// Id: [Output Only] The unique identifier for the resource. This
34179	// identifier is defined by the server.
34180	Id string `json:"id,omitempty"`
34181
34182	// Items: [Output Only] A list of Allocation resources.
34183	Items []*Reservation `json:"items,omitempty"`
34184
34185	// Kind: [Output Only] Type of resource.Always compute#reservationsList
34186	// for listsof reservations
34187	Kind string `json:"kind,omitempty"`
34188
34189	// NextPageToken: [Output Only] This token allows you to get the next
34190	// page of results for list requests. If the number of results is larger
34191	// than maxResults, use the nextPageToken as a value for the query
34192	// parameter pageToken in the next list request. Subsequent list
34193	// requests will have their own nextPageToken to continue paging through
34194	// the results.
34195	NextPageToken string `json:"nextPageToken,omitempty"`
34196
34197	// SelfLink: [Output Only] Server-defined URL for this resource.
34198	SelfLink string `json:"selfLink,omitempty"`
34199
34200	// Warning: [Output Only] Informational warning message.
34201	Warning *ReservationListWarning `json:"warning,omitempty"`
34202
34203	// ServerResponse contains the HTTP response code and headers from the
34204	// server.
34205	googleapi.ServerResponse `json:"-"`
34206
34207	// ForceSendFields is a list of field names (e.g. "Id") to
34208	// unconditionally include in API requests. By default, fields with
34209	// empty values are omitted from API requests. However, any non-pointer,
34210	// non-interface field appearing in ForceSendFields will be sent to the
34211	// server regardless of whether the field is empty or not. This may be
34212	// used to include empty fields in Patch requests.
34213	ForceSendFields []string `json:"-"`
34214
34215	// NullFields is a list of field names (e.g. "Id") to include in API
34216	// requests with the JSON null value. By default, fields with empty
34217	// values are omitted from API requests. However, any field with an
34218	// empty value appearing in NullFields will be sent to the server as
34219	// null. It is an error if a field in this list has a non-empty value.
34220	// This may be used to include null fields in Patch requests.
34221	NullFields []string `json:"-"`
34222}
34223
34224func (s *ReservationList) MarshalJSON() ([]byte, error) {
34225	type NoMethod ReservationList
34226	raw := NoMethod(*s)
34227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34228}
34229
34230// ReservationListWarning: [Output Only] Informational warning message.
34231type ReservationListWarning struct {
34232	// Code: [Output Only] A warning code, if applicable. For example,
34233	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34234	// the response.
34235	//
34236	// Possible values:
34237	//   "CLEANUP_FAILED"
34238	//   "DEPRECATED_RESOURCE_USED"
34239	//   "DEPRECATED_TYPE_USED"
34240	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34241	//   "EXPERIMENTAL_TYPE_USED"
34242	//   "EXTERNAL_API_WARNING"
34243	//   "FIELD_VALUE_OVERRIDEN"
34244	//   "INJECTED_KERNELS_DEPRECATED"
34245	//   "MISSING_TYPE_DEPENDENCY"
34246	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34247	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34248	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34249	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34250	//   "NEXT_HOP_NOT_RUNNING"
34251	//   "NOT_CRITICAL_ERROR"
34252	//   "NO_RESULTS_ON_PAGE"
34253	//   "PARTIAL_SUCCESS"
34254	//   "REQUIRED_TOS_AGREEMENT"
34255	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34256	//   "RESOURCE_NOT_DELETED"
34257	//   "SCHEMA_VALIDATION_IGNORED"
34258	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34259	//   "UNDECLARED_PROPERTIES"
34260	//   "UNREACHABLE"
34261	Code string `json:"code,omitempty"`
34262
34263	// Data: [Output Only] Metadata about this warning in key: value format.
34264	// For example:
34265	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34266	Data []*ReservationListWarningData `json:"data,omitempty"`
34267
34268	// Message: [Output Only] A human-readable description of the warning
34269	// code.
34270	Message string `json:"message,omitempty"`
34271
34272	// ForceSendFields is a list of field names (e.g. "Code") to
34273	// unconditionally include in API requests. By default, fields with
34274	// empty values are omitted from API requests. However, any non-pointer,
34275	// non-interface field appearing in ForceSendFields will be sent to the
34276	// server regardless of whether the field is empty or not. This may be
34277	// used to include empty fields in Patch requests.
34278	ForceSendFields []string `json:"-"`
34279
34280	// NullFields is a list of field names (e.g. "Code") to include in API
34281	// requests with the JSON null value. By default, fields with empty
34282	// values are omitted from API requests. However, any field with an
34283	// empty value appearing in NullFields will be sent to the server as
34284	// null. It is an error if a field in this list has a non-empty value.
34285	// This may be used to include null fields in Patch requests.
34286	NullFields []string `json:"-"`
34287}
34288
34289func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
34290	type NoMethod ReservationListWarning
34291	raw := NoMethod(*s)
34292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34293}
34294
34295type ReservationListWarningData struct {
34296	// Key: [Output Only] A key that provides more detail on the warning
34297	// being returned. For example, for warnings where there are no results
34298	// in a list request for a particular zone, this key might be scope and
34299	// the key value might be the zone name. Other examples might be a key
34300	// indicating a deprecated resource and a suggested replacement, or a
34301	// warning about invalid network settings (for example, if an instance
34302	// attempts to perform IP forwarding but is not enabled for IP
34303	// forwarding).
34304	Key string `json:"key,omitempty"`
34305
34306	// Value: [Output Only] A warning data value corresponding to the key.
34307	Value string `json:"value,omitempty"`
34308
34309	// ForceSendFields is a list of field names (e.g. "Key") to
34310	// unconditionally include in API requests. By default, fields with
34311	// empty values are omitted from API requests. However, any non-pointer,
34312	// non-interface field appearing in ForceSendFields will be sent to the
34313	// server regardless of whether the field is empty or not. This may be
34314	// used to include empty fields in Patch requests.
34315	ForceSendFields []string `json:"-"`
34316
34317	// NullFields is a list of field names (e.g. "Key") to include in API
34318	// requests with the JSON null value. By default, fields with empty
34319	// values are omitted from API requests. However, any field with an
34320	// empty value appearing in NullFields will be sent to the server as
34321	// null. It is an error if a field in this list has a non-empty value.
34322	// This may be used to include null fields in Patch requests.
34323	NullFields []string `json:"-"`
34324}
34325
34326func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
34327	type NoMethod ReservationListWarningData
34328	raw := NoMethod(*s)
34329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34330}
34331
34332type ReservationsResizeRequest struct {
34333	// SpecificSkuCount: Number of allocated resources can be resized with
34334	// minimum = 1 and maximum = 1000.
34335	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
34336
34337	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
34338	// unconditionally include in API requests. By default, fields with
34339	// empty values are omitted from API requests. However, any non-pointer,
34340	// non-interface field appearing in ForceSendFields will be sent to the
34341	// server regardless of whether the field is empty or not. This may be
34342	// used to include empty fields in Patch requests.
34343	ForceSendFields []string `json:"-"`
34344
34345	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
34346	// include in API requests with the JSON null value. By default, fields
34347	// with empty values are omitted from API requests. However, any field
34348	// with an empty value appearing in NullFields will be sent to the
34349	// server as null. It is an error if a field in this list has a
34350	// non-empty value. This may be used to include null fields in Patch
34351	// requests.
34352	NullFields []string `json:"-"`
34353}
34354
34355func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
34356	type NoMethod ReservationsResizeRequest
34357	raw := NoMethod(*s)
34358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34359}
34360
34361type ReservationsScopedList struct {
34362	// Reservations: A list of reservations contained in this scope.
34363	Reservations []*Reservation `json:"reservations,omitempty"`
34364
34365	// Warning: Informational warning which replaces the list of
34366	// reservations when the list is empty.
34367	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
34368
34369	// ForceSendFields is a list of field names (e.g. "Reservations") to
34370	// unconditionally include in API requests. By default, fields with
34371	// empty values are omitted from API requests. However, any non-pointer,
34372	// non-interface field appearing in ForceSendFields will be sent to the
34373	// server regardless of whether the field is empty or not. This may be
34374	// used to include empty fields in Patch requests.
34375	ForceSendFields []string `json:"-"`
34376
34377	// NullFields is a list of field names (e.g. "Reservations") to include
34378	// in API requests with the JSON null value. By default, fields with
34379	// empty values are omitted from API requests. However, any field with
34380	// an empty value appearing in NullFields will be sent to the server as
34381	// null. It is an error if a field in this list has a non-empty value.
34382	// This may be used to include null fields in Patch requests.
34383	NullFields []string `json:"-"`
34384}
34385
34386func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
34387	type NoMethod ReservationsScopedList
34388	raw := NoMethod(*s)
34389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34390}
34391
34392// ReservationsScopedListWarning: Informational warning which replaces
34393// the list of reservations when the list is empty.
34394type ReservationsScopedListWarning struct {
34395	// Code: [Output Only] A warning code, if applicable. For example,
34396	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34397	// the response.
34398	//
34399	// Possible values:
34400	//   "CLEANUP_FAILED"
34401	//   "DEPRECATED_RESOURCE_USED"
34402	//   "DEPRECATED_TYPE_USED"
34403	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34404	//   "EXPERIMENTAL_TYPE_USED"
34405	//   "EXTERNAL_API_WARNING"
34406	//   "FIELD_VALUE_OVERRIDEN"
34407	//   "INJECTED_KERNELS_DEPRECATED"
34408	//   "MISSING_TYPE_DEPENDENCY"
34409	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34410	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34411	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34412	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34413	//   "NEXT_HOP_NOT_RUNNING"
34414	//   "NOT_CRITICAL_ERROR"
34415	//   "NO_RESULTS_ON_PAGE"
34416	//   "PARTIAL_SUCCESS"
34417	//   "REQUIRED_TOS_AGREEMENT"
34418	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34419	//   "RESOURCE_NOT_DELETED"
34420	//   "SCHEMA_VALIDATION_IGNORED"
34421	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34422	//   "UNDECLARED_PROPERTIES"
34423	//   "UNREACHABLE"
34424	Code string `json:"code,omitempty"`
34425
34426	// Data: [Output Only] Metadata about this warning in key: value format.
34427	// For example:
34428	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34429	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
34430
34431	// Message: [Output Only] A human-readable description of the warning
34432	// code.
34433	Message string `json:"message,omitempty"`
34434
34435	// ForceSendFields is a list of field names (e.g. "Code") to
34436	// unconditionally include in API requests. By default, fields with
34437	// empty values are omitted from API requests. However, any non-pointer,
34438	// non-interface field appearing in ForceSendFields will be sent to the
34439	// server regardless of whether the field is empty or not. This may be
34440	// used to include empty fields in Patch requests.
34441	ForceSendFields []string `json:"-"`
34442
34443	// NullFields is a list of field names (e.g. "Code") to include in API
34444	// requests with the JSON null value. By default, fields with empty
34445	// values are omitted from API requests. However, any field with an
34446	// empty value appearing in NullFields will be sent to the server as
34447	// null. It is an error if a field in this list has a non-empty value.
34448	// This may be used to include null fields in Patch requests.
34449	NullFields []string `json:"-"`
34450}
34451
34452func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
34453	type NoMethod ReservationsScopedListWarning
34454	raw := NoMethod(*s)
34455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34456}
34457
34458type ReservationsScopedListWarningData struct {
34459	// Key: [Output Only] A key that provides more detail on the warning
34460	// being returned. For example, for warnings where there are no results
34461	// in a list request for a particular zone, this key might be scope and
34462	// the key value might be the zone name. Other examples might be a key
34463	// indicating a deprecated resource and a suggested replacement, or a
34464	// warning about invalid network settings (for example, if an instance
34465	// attempts to perform IP forwarding but is not enabled for IP
34466	// forwarding).
34467	Key string `json:"key,omitempty"`
34468
34469	// Value: [Output Only] A warning data value corresponding to the key.
34470	Value string `json:"value,omitempty"`
34471
34472	// ForceSendFields is a list of field names (e.g. "Key") to
34473	// unconditionally include in API requests. By default, fields with
34474	// empty values are omitted from API requests. However, any non-pointer,
34475	// non-interface field appearing in ForceSendFields will be sent to the
34476	// server regardless of whether the field is empty or not. This may be
34477	// used to include empty fields in Patch requests.
34478	ForceSendFields []string `json:"-"`
34479
34480	// NullFields is a list of field names (e.g. "Key") to include in API
34481	// requests with the JSON null value. By default, fields with empty
34482	// values are omitted from API requests. However, any field with an
34483	// empty value appearing in NullFields will be sent to the server as
34484	// null. It is an error if a field in this list has a non-empty value.
34485	// This may be used to include null fields in Patch requests.
34486	NullFields []string `json:"-"`
34487}
34488
34489func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
34490	type NoMethod ReservationsScopedListWarningData
34491	raw := NoMethod(*s)
34492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34493}
34494
34495// ResourceCommitment: Commitment for a particular resource (a
34496// Commitment is composed of one or more of these).
34497type ResourceCommitment struct {
34498	// AcceleratorType: Name of the accelerator type resource. Applicable
34499	// only when the type is ACCELERATOR.
34500	AcceleratorType string `json:"acceleratorType,omitempty"`
34501
34502	// Amount: The amount of the resource purchased (in a type-dependent
34503	// unit, such as bytes). For vCPUs, this can just be an integer. For
34504	// memory, this must be provided in MB. Memory must be a multiple of 256
34505	// MB, with up to 6.5GB of memory per every vCPU.
34506	Amount int64 `json:"amount,omitempty,string"`
34507
34508	// Type: Type of resource for which this commitment applies. Possible
34509	// values are VCPU and MEMORY
34510	//
34511	// Possible values:
34512	//   "ACCELERATOR"
34513	//   "LOCAL_SSD"
34514	//   "MEMORY"
34515	//   "UNSPECIFIED"
34516	//   "VCPU"
34517	Type string `json:"type,omitempty"`
34518
34519	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
34520	// unconditionally include in API requests. By default, fields with
34521	// empty values are omitted from API requests. However, any non-pointer,
34522	// non-interface field appearing in ForceSendFields will be sent to the
34523	// server regardless of whether the field is empty or not. This may be
34524	// used to include empty fields in Patch requests.
34525	ForceSendFields []string `json:"-"`
34526
34527	// NullFields is a list of field names (e.g. "AcceleratorType") to
34528	// include in API requests with the JSON null value. By default, fields
34529	// with empty values are omitted from API requests. However, any field
34530	// with an empty value appearing in NullFields will be sent to the
34531	// server as null. It is an error if a field in this list has a
34532	// non-empty value. This may be used to include null fields in Patch
34533	// requests.
34534	NullFields []string `json:"-"`
34535}
34536
34537func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
34538	type NoMethod ResourceCommitment
34539	raw := NoMethod(*s)
34540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34541}
34542
34543type ResourceGroupReference struct {
34544	// Group: A URI referencing one of the instance groups or network
34545	// endpoint groups listed in the backend service.
34546	Group string `json:"group,omitempty"`
34547
34548	// ForceSendFields is a list of field names (e.g. "Group") to
34549	// unconditionally include in API requests. By default, fields with
34550	// empty values are omitted from API requests. However, any non-pointer,
34551	// non-interface field appearing in ForceSendFields will be sent to the
34552	// server regardless of whether the field is empty or not. This may be
34553	// used to include empty fields in Patch requests.
34554	ForceSendFields []string `json:"-"`
34555
34556	// NullFields is a list of field names (e.g. "Group") to include in API
34557	// requests with the JSON null value. By default, fields with empty
34558	// values are omitted from API requests. However, any field with an
34559	// empty value appearing in NullFields will be sent to the server as
34560	// null. It is an error if a field in this list has a non-empty value.
34561	// This may be used to include null fields in Patch requests.
34562	NullFields []string `json:"-"`
34563}
34564
34565func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
34566	type NoMethod ResourceGroupReference
34567	raw := NoMethod(*s)
34568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34569}
34570
34571type ResourcePoliciesScopedList struct {
34572	// ResourcePolicies: A list of resourcePolicies contained in this scope.
34573	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
34574
34575	// Warning: Informational warning which replaces the list of
34576	// resourcePolicies when the list is empty.
34577	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
34578
34579	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
34580	// unconditionally include in API requests. By default, fields with
34581	// empty values are omitted from API requests. However, any non-pointer,
34582	// non-interface field appearing in ForceSendFields will be sent to the
34583	// server regardless of whether the field is empty or not. This may be
34584	// used to include empty fields in Patch requests.
34585	ForceSendFields []string `json:"-"`
34586
34587	// NullFields is a list of field names (e.g. "ResourcePolicies") to
34588	// include in API requests with the JSON null value. By default, fields
34589	// with empty values are omitted from API requests. However, any field
34590	// with an empty value appearing in NullFields will be sent to the
34591	// server as null. It is an error if a field in this list has a
34592	// non-empty value. This may be used to include null fields in Patch
34593	// requests.
34594	NullFields []string `json:"-"`
34595}
34596
34597func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
34598	type NoMethod ResourcePoliciesScopedList
34599	raw := NoMethod(*s)
34600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34601}
34602
34603// ResourcePoliciesScopedListWarning: Informational warning which
34604// replaces the list of resourcePolicies when the list is empty.
34605type ResourcePoliciesScopedListWarning struct {
34606	// Code: [Output Only] A warning code, if applicable. For example,
34607	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34608	// the response.
34609	//
34610	// Possible values:
34611	//   "CLEANUP_FAILED"
34612	//   "DEPRECATED_RESOURCE_USED"
34613	//   "DEPRECATED_TYPE_USED"
34614	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34615	//   "EXPERIMENTAL_TYPE_USED"
34616	//   "EXTERNAL_API_WARNING"
34617	//   "FIELD_VALUE_OVERRIDEN"
34618	//   "INJECTED_KERNELS_DEPRECATED"
34619	//   "MISSING_TYPE_DEPENDENCY"
34620	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34621	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34622	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34623	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34624	//   "NEXT_HOP_NOT_RUNNING"
34625	//   "NOT_CRITICAL_ERROR"
34626	//   "NO_RESULTS_ON_PAGE"
34627	//   "PARTIAL_SUCCESS"
34628	//   "REQUIRED_TOS_AGREEMENT"
34629	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34630	//   "RESOURCE_NOT_DELETED"
34631	//   "SCHEMA_VALIDATION_IGNORED"
34632	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34633	//   "UNDECLARED_PROPERTIES"
34634	//   "UNREACHABLE"
34635	Code string `json:"code,omitempty"`
34636
34637	// Data: [Output Only] Metadata about this warning in key: value format.
34638	// For example:
34639	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34640	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
34641
34642	// Message: [Output Only] A human-readable description of the warning
34643	// code.
34644	Message string `json:"message,omitempty"`
34645
34646	// ForceSendFields is a list of field names (e.g. "Code") to
34647	// unconditionally include in API requests. By default, fields with
34648	// empty values are omitted from API requests. However, any non-pointer,
34649	// non-interface field appearing in ForceSendFields will be sent to the
34650	// server regardless of whether the field is empty or not. This may be
34651	// used to include empty fields in Patch requests.
34652	ForceSendFields []string `json:"-"`
34653
34654	// NullFields is a list of field names (e.g. "Code") to include in API
34655	// requests with the JSON null value. By default, fields with empty
34656	// values are omitted from API requests. However, any field with an
34657	// empty value appearing in NullFields will be sent to the server as
34658	// null. It is an error if a field in this list has a non-empty value.
34659	// This may be used to include null fields in Patch requests.
34660	NullFields []string `json:"-"`
34661}
34662
34663func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
34664	type NoMethod ResourcePoliciesScopedListWarning
34665	raw := NoMethod(*s)
34666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34667}
34668
34669type ResourcePoliciesScopedListWarningData struct {
34670	// Key: [Output Only] A key that provides more detail on the warning
34671	// being returned. For example, for warnings where there are no results
34672	// in a list request for a particular zone, this key might be scope and
34673	// the key value might be the zone name. Other examples might be a key
34674	// indicating a deprecated resource and a suggested replacement, or a
34675	// warning about invalid network settings (for example, if an instance
34676	// attempts to perform IP forwarding but is not enabled for IP
34677	// forwarding).
34678	Key string `json:"key,omitempty"`
34679
34680	// Value: [Output Only] A warning data value corresponding to the key.
34681	Value string `json:"value,omitempty"`
34682
34683	// ForceSendFields is a list of field names (e.g. "Key") to
34684	// unconditionally include in API requests. By default, fields with
34685	// empty values are omitted from API requests. However, any non-pointer,
34686	// non-interface field appearing in ForceSendFields will be sent to the
34687	// server regardless of whether the field is empty or not. This may be
34688	// used to include empty fields in Patch requests.
34689	ForceSendFields []string `json:"-"`
34690
34691	// NullFields is a list of field names (e.g. "Key") to include in API
34692	// requests with the JSON null value. By default, fields with empty
34693	// values are omitted from API requests. However, any field with an
34694	// empty value appearing in NullFields will be sent to the server as
34695	// null. It is an error if a field in this list has a non-empty value.
34696	// This may be used to include null fields in Patch requests.
34697	NullFields []string `json:"-"`
34698}
34699
34700func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
34701	type NoMethod ResourcePoliciesScopedListWarningData
34702	raw := NoMethod(*s)
34703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34704}
34705
34706// ResourcePolicy: Represents a Resource Policy resource. You can use
34707// resource policies to schedule actions for some Compute Engine
34708// resources. For example, you can use them to schedule persistent disk
34709// snapshots.
34710//
34711// (== resource_for {$api_version}.resourcePolicies ==)
34712type ResourcePolicy struct {
34713	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34714	// format.
34715	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34716
34717	Description string `json:"description,omitempty"`
34718
34719	// GroupPlacementPolicy: Resource policy for instacnes for placement
34720	// configuration.
34721	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
34722
34723	// Id: [Output Only] The unique identifier for the resource. This
34724	// identifier is defined by the server.
34725	Id uint64 `json:"id,omitempty,string"`
34726
34727	// Kind: [Output Only] Type of the resource. Always
34728	// compute#resource_policies for resource policies.
34729	Kind string `json:"kind,omitempty"`
34730
34731	// Name: The name of the resource, provided by the client when initially
34732	// creating the resource. The resource name must be 1-63 characters
34733	// long, and comply with RFC1035. Specifically, the name must be 1-63
34734	// characters long and match the regular expression
34735	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
34736	// a lowercase letter, and all following characters must be a dash,
34737	// lowercase letter, or digit, except the last character, which cannot
34738	// be a dash.
34739	Name string `json:"name,omitempty"`
34740
34741	Region string `json:"region,omitempty"`
34742
34743	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34744	// resource.
34745	SelfLink string `json:"selfLink,omitempty"`
34746
34747	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
34748	// with the resource id.
34749	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
34750
34751	// SnapshotSchedulePolicy: Resource policy for persistent disks for
34752	// creating snapshots.
34753	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
34754
34755	// Status: [Output Only] The status of resource policy creation.
34756	//
34757	// Possible values:
34758	//   "CREATING"
34759	//   "DELETING"
34760	//   "INVALID"
34761	//   "READY"
34762	Status string `json:"status,omitempty"`
34763
34764	// VmMaintenancePolicy: Resource policy applicable to VMs for
34765	// infrastructure maintenance.
34766	VmMaintenancePolicy *ResourcePolicyVmMaintenancePolicy `json:"vmMaintenancePolicy,omitempty"`
34767
34768	// ServerResponse contains the HTTP response code and headers from the
34769	// server.
34770	googleapi.ServerResponse `json:"-"`
34771
34772	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
34773	// to unconditionally include in API requests. By default, fields with
34774	// empty values are omitted from API requests. However, any non-pointer,
34775	// non-interface field appearing in ForceSendFields will be sent to the
34776	// server regardless of whether the field is empty or not. This may be
34777	// used to include empty fields in Patch requests.
34778	ForceSendFields []string `json:"-"`
34779
34780	// NullFields is a list of field names (e.g. "CreationTimestamp") to
34781	// include in API requests with the JSON null value. By default, fields
34782	// with empty values are omitted from API requests. However, any field
34783	// with an empty value appearing in NullFields will be sent to the
34784	// server as null. It is an error if a field in this list has a
34785	// non-empty value. This may be used to include null fields in Patch
34786	// requests.
34787	NullFields []string `json:"-"`
34788}
34789
34790func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
34791	type NoMethod ResourcePolicy
34792	raw := NoMethod(*s)
34793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34794}
34795
34796// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
34797type ResourcePolicyAggregatedList struct {
34798	Etag string `json:"etag,omitempty"`
34799
34800	// Id: [Output Only] Unique identifier for the resource; defined by the
34801	// server.
34802	Id string `json:"id,omitempty"`
34803
34804	// Items: A list of ResourcePolicy resources.
34805	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
34806
34807	// Kind: Type of resource.
34808	Kind string `json:"kind,omitempty"`
34809
34810	// NextPageToken: [Output Only] This token allows you to get the next
34811	// page of results for list requests. If the number of results is larger
34812	// than maxResults, use the nextPageToken as a value for the query
34813	// parameter pageToken in the next list request. Subsequent list
34814	// requests will have their own nextPageToken to continue paging through
34815	// the results.
34816	NextPageToken string `json:"nextPageToken,omitempty"`
34817
34818	// SelfLink: [Output Only] Server-defined URL for this resource.
34819	SelfLink string `json:"selfLink,omitempty"`
34820
34821	// Unreachables: [Output Only] Unreachable resources.
34822	Unreachables []string `json:"unreachables,omitempty"`
34823
34824	// Warning: [Output Only] Informational warning message.
34825	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
34826
34827	// ServerResponse contains the HTTP response code and headers from the
34828	// server.
34829	googleapi.ServerResponse `json:"-"`
34830
34831	// ForceSendFields is a list of field names (e.g. "Etag") to
34832	// unconditionally include in API requests. By default, fields with
34833	// empty values are omitted from API requests. However, any non-pointer,
34834	// non-interface field appearing in ForceSendFields will be sent to the
34835	// server regardless of whether the field is empty or not. This may be
34836	// used to include empty fields in Patch requests.
34837	ForceSendFields []string `json:"-"`
34838
34839	// NullFields is a list of field names (e.g. "Etag") to include in API
34840	// requests with the JSON null value. By default, fields with empty
34841	// values are omitted from API requests. However, any field with an
34842	// empty value appearing in NullFields will be sent to the server as
34843	// null. It is an error if a field in this list has a non-empty value.
34844	// This may be used to include null fields in Patch requests.
34845	NullFields []string `json:"-"`
34846}
34847
34848func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
34849	type NoMethod ResourcePolicyAggregatedList
34850	raw := NoMethod(*s)
34851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34852}
34853
34854// ResourcePolicyAggregatedListWarning: [Output Only] Informational
34855// warning message.
34856type ResourcePolicyAggregatedListWarning struct {
34857	// Code: [Output Only] A warning code, if applicable. For example,
34858	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34859	// the response.
34860	//
34861	// Possible values:
34862	//   "CLEANUP_FAILED"
34863	//   "DEPRECATED_RESOURCE_USED"
34864	//   "DEPRECATED_TYPE_USED"
34865	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34866	//   "EXPERIMENTAL_TYPE_USED"
34867	//   "EXTERNAL_API_WARNING"
34868	//   "FIELD_VALUE_OVERRIDEN"
34869	//   "INJECTED_KERNELS_DEPRECATED"
34870	//   "MISSING_TYPE_DEPENDENCY"
34871	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34872	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34873	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34874	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34875	//   "NEXT_HOP_NOT_RUNNING"
34876	//   "NOT_CRITICAL_ERROR"
34877	//   "NO_RESULTS_ON_PAGE"
34878	//   "PARTIAL_SUCCESS"
34879	//   "REQUIRED_TOS_AGREEMENT"
34880	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34881	//   "RESOURCE_NOT_DELETED"
34882	//   "SCHEMA_VALIDATION_IGNORED"
34883	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34884	//   "UNDECLARED_PROPERTIES"
34885	//   "UNREACHABLE"
34886	Code string `json:"code,omitempty"`
34887
34888	// Data: [Output Only] Metadata about this warning in key: value format.
34889	// For example:
34890	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34891	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
34892
34893	// Message: [Output Only] A human-readable description of the warning
34894	// code.
34895	Message string `json:"message,omitempty"`
34896
34897	// ForceSendFields is a list of field names (e.g. "Code") to
34898	// unconditionally include in API requests. By default, fields with
34899	// empty values are omitted from API requests. However, any non-pointer,
34900	// non-interface field appearing in ForceSendFields will be sent to the
34901	// server regardless of whether the field is empty or not. This may be
34902	// used to include empty fields in Patch requests.
34903	ForceSendFields []string `json:"-"`
34904
34905	// NullFields is a list of field names (e.g. "Code") to include in API
34906	// requests with the JSON null value. By default, fields with empty
34907	// values are omitted from API requests. However, any field with an
34908	// empty value appearing in NullFields will be sent to the server as
34909	// null. It is an error if a field in this list has a non-empty value.
34910	// This may be used to include null fields in Patch requests.
34911	NullFields []string `json:"-"`
34912}
34913
34914func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
34915	type NoMethod ResourcePolicyAggregatedListWarning
34916	raw := NoMethod(*s)
34917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34918}
34919
34920type ResourcePolicyAggregatedListWarningData struct {
34921	// Key: [Output Only] A key that provides more detail on the warning
34922	// being returned. For example, for warnings where there are no results
34923	// in a list request for a particular zone, this key might be scope and
34924	// the key value might be the zone name. Other examples might be a key
34925	// indicating a deprecated resource and a suggested replacement, or a
34926	// warning about invalid network settings (for example, if an instance
34927	// attempts to perform IP forwarding but is not enabled for IP
34928	// forwarding).
34929	Key string `json:"key,omitempty"`
34930
34931	// Value: [Output Only] A warning data value corresponding to the key.
34932	Value string `json:"value,omitempty"`
34933
34934	// ForceSendFields is a list of field names (e.g. "Key") to
34935	// unconditionally include in API requests. By default, fields with
34936	// empty values are omitted from API requests. However, any non-pointer,
34937	// non-interface field appearing in ForceSendFields will be sent to the
34938	// server regardless of whether the field is empty or not. This may be
34939	// used to include empty fields in Patch requests.
34940	ForceSendFields []string `json:"-"`
34941
34942	// NullFields is a list of field names (e.g. "Key") to include in API
34943	// requests with the JSON null value. By default, fields with empty
34944	// values are omitted from API requests. However, any field with an
34945	// empty value appearing in NullFields will be sent to the server as
34946	// null. It is an error if a field in this list has a non-empty value.
34947	// This may be used to include null fields in Patch requests.
34948	NullFields []string `json:"-"`
34949}
34950
34951func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34952	type NoMethod ResourcePolicyAggregatedListWarningData
34953	raw := NoMethod(*s)
34954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34955}
34956
34957// ResourcePolicyDailyCycle: Time window specified for daily operations.
34958type ResourcePolicyDailyCycle struct {
34959	// DaysInCycle: Defines a schedule with units measured in months. The
34960	// value determines how many months pass between the start of each
34961	// cycle.
34962	DaysInCycle int64 `json:"daysInCycle,omitempty"`
34963
34964	// Duration: [Output only] A predetermined duration for the window,
34965	// automatically chosen to be the smallest possible in the given
34966	// scenario.
34967	Duration string `json:"duration,omitempty"`
34968
34969	// StartTime: Start time of the window. This must be in UTC format that
34970	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
34971	// example, both 13:00-5 and 08:00 are valid.
34972	StartTime string `json:"startTime,omitempty"`
34973
34974	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
34975	// unconditionally include in API requests. By default, fields with
34976	// empty values are omitted from API requests. However, any non-pointer,
34977	// non-interface field appearing in ForceSendFields will be sent to the
34978	// server regardless of whether the field is empty or not. This may be
34979	// used to include empty fields in Patch requests.
34980	ForceSendFields []string `json:"-"`
34981
34982	// NullFields is a list of field names (e.g. "DaysInCycle") to include
34983	// in API requests with the JSON null value. By default, fields with
34984	// empty values are omitted from API requests. However, any field with
34985	// an empty value appearing in NullFields will be sent to the server as
34986	// null. It is an error if a field in this list has a non-empty value.
34987	// This may be used to include null fields in Patch requests.
34988	NullFields []string `json:"-"`
34989}
34990
34991func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
34992	type NoMethod ResourcePolicyDailyCycle
34993	raw := NoMethod(*s)
34994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34995}
34996
34997// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
34998// resource placement configuration. It specifies the failure bucket
34999// separation as well as network locality
35000type ResourcePolicyGroupPlacementPolicy struct {
35001	// AvailabilityDomainCount: The number of availability domains instances
35002	// will be spread across. If two instances are in different availability
35003	// domain, they will not be put in the same low latency network
35004	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
35005
35006	// Collocation: Specifies network collocation
35007	//
35008	// Possible values:
35009	//   "COLLOCATED"
35010	//   "UNSPECIFIED_COLLOCATION"
35011	Collocation string `json:"collocation,omitempty"`
35012
35013	// Locality: Specifies network locality
35014	//
35015	// Possible values:
35016	//   "BEST_EFFORT"
35017	//   "STRICT"
35018	//   "UNSPECIFIED_LOCALITY"
35019	Locality string `json:"locality,omitempty"`
35020
35021	// Style: Specifies instances to hosts placement relationship
35022	//
35023	// Possible values:
35024	//   "COMPACT"
35025	//   "FULLY_SPREAD"
35026	//   "UNSPECIFIED_PLACEMENT_TYPE"
35027	Style string `json:"style,omitempty"`
35028
35029	// VmCount: Number of vms in this placement group
35030	VmCount int64 `json:"vmCount,omitempty"`
35031
35032	// ForceSendFields is a list of field names (e.g.
35033	// "AvailabilityDomainCount") to unconditionally include in API
35034	// requests. By default, fields with empty values are omitted from API
35035	// requests. However, any non-pointer, non-interface field appearing in
35036	// ForceSendFields will be sent to the server regardless of whether the
35037	// field is empty or not. This may be used to include empty fields in
35038	// Patch requests.
35039	ForceSendFields []string `json:"-"`
35040
35041	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
35042	// to include in API requests with the JSON null value. By default,
35043	// fields with empty values are omitted from API requests. However, any
35044	// field with an empty value appearing in NullFields will be sent to the
35045	// server as null. It is an error if a field in this list has a
35046	// non-empty value. This may be used to include null fields in Patch
35047	// requests.
35048	NullFields []string `json:"-"`
35049}
35050
35051func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
35052	type NoMethod ResourcePolicyGroupPlacementPolicy
35053	raw := NoMethod(*s)
35054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35055}
35056
35057// ResourcePolicyHourlyCycle: Time window specified for hourly
35058// operations.
35059type ResourcePolicyHourlyCycle struct {
35060	// Duration: [Output only] Duration of the time window, automatically
35061	// chosen to be smallest possible in the given scenario.
35062	Duration string `json:"duration,omitempty"`
35063
35064	// HoursInCycle: Defines a schedule with units measured in hours. The
35065	// value determines how many hours pass between the start of each cycle.
35066	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
35067
35068	// StartTime: Time within the window to start the operations. It must be
35069	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
35070	StartTime string `json:"startTime,omitempty"`
35071
35072	// ForceSendFields is a list of field names (e.g. "Duration") to
35073	// unconditionally include in API requests. By default, fields with
35074	// empty values are omitted from API requests. However, any non-pointer,
35075	// non-interface field appearing in ForceSendFields will be sent to the
35076	// server regardless of whether the field is empty or not. This may be
35077	// used to include empty fields in Patch requests.
35078	ForceSendFields []string `json:"-"`
35079
35080	// NullFields is a list of field names (e.g. "Duration") to include in
35081	// API requests with the JSON null value. By default, fields with empty
35082	// values are omitted from API requests. However, any field with an
35083	// empty value appearing in NullFields will be sent to the server as
35084	// null. It is an error if a field in this list has a non-empty value.
35085	// This may be used to include null fields in Patch requests.
35086	NullFields []string `json:"-"`
35087}
35088
35089func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
35090	type NoMethod ResourcePolicyHourlyCycle
35091	raw := NoMethod(*s)
35092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35093}
35094
35095type ResourcePolicyList struct {
35096	Etag string `json:"etag,omitempty"`
35097
35098	// Id: [Output Only] The unique identifier for the resource. This
35099	// identifier is defined by the server.
35100	Id string `json:"id,omitempty"`
35101
35102	// Items: [Output Only] A list of ResourcePolicy resources.
35103	Items []*ResourcePolicy `json:"items,omitempty"`
35104
35105	// Kind: [Output Only] Type of resource.Always
35106	// compute#resourcePoliciesList for listsof resourcePolicies
35107	Kind string `json:"kind,omitempty"`
35108
35109	// NextPageToken: [Output Only] This token allows you to get the next
35110	// page of results for list requests. If the number of results is larger
35111	// than maxResults, use the nextPageToken as a value for the query
35112	// parameter pageToken in the next list request. Subsequent list
35113	// requests will have their own nextPageToken to continue paging through
35114	// the results.
35115	NextPageToken string `json:"nextPageToken,omitempty"`
35116
35117	// SelfLink: [Output Only] Server-defined URL for this resource.
35118	SelfLink string `json:"selfLink,omitempty"`
35119
35120	// Warning: [Output Only] Informational warning message.
35121	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
35122
35123	// ServerResponse contains the HTTP response code and headers from the
35124	// server.
35125	googleapi.ServerResponse `json:"-"`
35126
35127	// ForceSendFields is a list of field names (e.g. "Etag") to
35128	// unconditionally include in API requests. By default, fields with
35129	// empty values are omitted from API requests. However, any non-pointer,
35130	// non-interface field appearing in ForceSendFields will be sent to the
35131	// server regardless of whether the field is empty or not. This may be
35132	// used to include empty fields in Patch requests.
35133	ForceSendFields []string `json:"-"`
35134
35135	// NullFields is a list of field names (e.g. "Etag") to include in API
35136	// requests with the JSON null value. By default, fields with empty
35137	// values are omitted from API requests. However, any field with an
35138	// empty value appearing in NullFields will be sent to the server as
35139	// null. It is an error if a field in this list has a non-empty value.
35140	// This may be used to include null fields in Patch requests.
35141	NullFields []string `json:"-"`
35142}
35143
35144func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
35145	type NoMethod ResourcePolicyList
35146	raw := NoMethod(*s)
35147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35148}
35149
35150// ResourcePolicyListWarning: [Output Only] Informational warning
35151// message.
35152type ResourcePolicyListWarning struct {
35153	// Code: [Output Only] A warning code, if applicable. For example,
35154	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35155	// the response.
35156	//
35157	// Possible values:
35158	//   "CLEANUP_FAILED"
35159	//   "DEPRECATED_RESOURCE_USED"
35160	//   "DEPRECATED_TYPE_USED"
35161	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35162	//   "EXPERIMENTAL_TYPE_USED"
35163	//   "EXTERNAL_API_WARNING"
35164	//   "FIELD_VALUE_OVERRIDEN"
35165	//   "INJECTED_KERNELS_DEPRECATED"
35166	//   "MISSING_TYPE_DEPENDENCY"
35167	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35168	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35169	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35170	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35171	//   "NEXT_HOP_NOT_RUNNING"
35172	//   "NOT_CRITICAL_ERROR"
35173	//   "NO_RESULTS_ON_PAGE"
35174	//   "PARTIAL_SUCCESS"
35175	//   "REQUIRED_TOS_AGREEMENT"
35176	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35177	//   "RESOURCE_NOT_DELETED"
35178	//   "SCHEMA_VALIDATION_IGNORED"
35179	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35180	//   "UNDECLARED_PROPERTIES"
35181	//   "UNREACHABLE"
35182	Code string `json:"code,omitempty"`
35183
35184	// Data: [Output Only] Metadata about this warning in key: value format.
35185	// For example:
35186	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35187	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
35188
35189	// Message: [Output Only] A human-readable description of the warning
35190	// code.
35191	Message string `json:"message,omitempty"`
35192
35193	// ForceSendFields is a list of field names (e.g. "Code") to
35194	// unconditionally include in API requests. By default, fields with
35195	// empty values are omitted from API requests. However, any non-pointer,
35196	// non-interface field appearing in ForceSendFields will be sent to the
35197	// server regardless of whether the field is empty or not. This may be
35198	// used to include empty fields in Patch requests.
35199	ForceSendFields []string `json:"-"`
35200
35201	// NullFields is a list of field names (e.g. "Code") to include in API
35202	// requests with the JSON null value. By default, fields with empty
35203	// values are omitted from API requests. However, any field with an
35204	// empty value appearing in NullFields will be sent to the server as
35205	// null. It is an error if a field in this list has a non-empty value.
35206	// This may be used to include null fields in Patch requests.
35207	NullFields []string `json:"-"`
35208}
35209
35210func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
35211	type NoMethod ResourcePolicyListWarning
35212	raw := NoMethod(*s)
35213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35214}
35215
35216type ResourcePolicyListWarningData struct {
35217	// Key: [Output Only] A key that provides more detail on the warning
35218	// being returned. For example, for warnings where there are no results
35219	// in a list request for a particular zone, this key might be scope and
35220	// the key value might be the zone name. Other examples might be a key
35221	// indicating a deprecated resource and a suggested replacement, or a
35222	// warning about invalid network settings (for example, if an instance
35223	// attempts to perform IP forwarding but is not enabled for IP
35224	// forwarding).
35225	Key string `json:"key,omitempty"`
35226
35227	// Value: [Output Only] A warning data value corresponding to the key.
35228	Value string `json:"value,omitempty"`
35229
35230	// ForceSendFields is a list of field names (e.g. "Key") to
35231	// unconditionally include in API requests. By default, fields with
35232	// empty values are omitted from API requests. However, any non-pointer,
35233	// non-interface field appearing in ForceSendFields will be sent to the
35234	// server regardless of whether the field is empty or not. This may be
35235	// used to include empty fields in Patch requests.
35236	ForceSendFields []string `json:"-"`
35237
35238	// NullFields is a list of field names (e.g. "Key") to include in API
35239	// requests with the JSON null value. By default, fields with empty
35240	// values are omitted from API requests. However, any field with an
35241	// empty value appearing in NullFields will be sent to the server as
35242	// null. It is an error if a field in this list has a non-empty value.
35243	// This may be used to include null fields in Patch requests.
35244	NullFields []string `json:"-"`
35245}
35246
35247func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
35248	type NoMethod ResourcePolicyListWarningData
35249	raw := NoMethod(*s)
35250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35251}
35252
35253// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
35254// specifies when and how frequently snapshots are to be created for the
35255// target disk. Also specifies how many and how long these scheduled
35256// snapshots should be retained.
35257type ResourcePolicySnapshotSchedulePolicy struct {
35258	// RetentionPolicy: Retention policy applied to snapshots created by
35259	// this resource policy.
35260	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
35261
35262	// Schedule: A Vm Maintenance Policy specifies what kind of
35263	// infrastructure maintenance we are allowed to perform on this VM and
35264	// when. Schedule that is applied to disks covered by this policy.
35265	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
35266
35267	// SnapshotProperties: Properties with which snapshots are created such
35268	// as labels, encryption keys.
35269	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
35270
35271	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
35272	// unconditionally include in API requests. By default, fields with
35273	// empty values are omitted from API requests. However, any non-pointer,
35274	// non-interface field appearing in ForceSendFields will be sent to the
35275	// server regardless of whether the field is empty or not. This may be
35276	// used to include empty fields in Patch requests.
35277	ForceSendFields []string `json:"-"`
35278
35279	// NullFields is a list of field names (e.g. "RetentionPolicy") to
35280	// include in API requests with the JSON null value. By default, fields
35281	// with empty values are omitted from API requests. However, any field
35282	// with an empty value appearing in NullFields will be sent to the
35283	// server as null. It is an error if a field in this list has a
35284	// non-empty value. This may be used to include null fields in Patch
35285	// requests.
35286	NullFields []string `json:"-"`
35287}
35288
35289func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
35290	type NoMethod ResourcePolicySnapshotSchedulePolicy
35291	raw := NoMethod(*s)
35292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35293}
35294
35295// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
35296// retention of scheduled snapshots.
35297type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
35298	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
35299	// kept.
35300	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
35301
35302	// OnPolicySwitch: Specifies the behavior to apply to existing,
35303	// scheduled snapshots snapshots if the policy is changed.
35304	//
35305	// Possible values:
35306	//   "DO_NOT_RETROACTIVELY_APPLY"
35307	//   "RETROACTIVELY_APPLY"
35308	//   "UNSPECIFIED_ON_POLICY_SWITCH"
35309	OnPolicySwitch string `json:"onPolicySwitch,omitempty"`
35310
35311	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
35312	// snapshots when the source disk is deleted.
35313	//
35314	// Possible values:
35315	//   "APPLY_RETENTION_POLICY"
35316	//   "KEEP_AUTO_SNAPSHOTS"
35317	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
35318	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
35319
35320	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
35321	// unconditionally include in API requests. By default, fields with
35322	// empty values are omitted from API requests. However, any non-pointer,
35323	// non-interface field appearing in ForceSendFields will be sent to the
35324	// server regardless of whether the field is empty or not. This may be
35325	// used to include empty fields in Patch requests.
35326	ForceSendFields []string `json:"-"`
35327
35328	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
35329	// include in API requests with the JSON null value. By default, fields
35330	// with empty values are omitted from API requests. However, any field
35331	// with an empty value appearing in NullFields will be sent to the
35332	// server as null. It is an error if a field in this list has a
35333	// non-empty value. This may be used to include null fields in Patch
35334	// requests.
35335	NullFields []string `json:"-"`
35336}
35337
35338func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
35339	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
35340	raw := NoMethod(*s)
35341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35342}
35343
35344// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
35345// where the schedueled operations are performed.
35346type ResourcePolicySnapshotSchedulePolicySchedule struct {
35347	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
35348
35349	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
35350
35351	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
35352
35353	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
35354	// unconditionally include in API requests. By default, fields with
35355	// empty values are omitted from API requests. However, any non-pointer,
35356	// non-interface field appearing in ForceSendFields will be sent to the
35357	// server regardless of whether the field is empty or not. This may be
35358	// used to include empty fields in Patch requests.
35359	ForceSendFields []string `json:"-"`
35360
35361	// NullFields is a list of field names (e.g. "DailySchedule") to include
35362	// in API requests with the JSON null value. By default, fields with
35363	// empty values are omitted from API requests. However, any field with
35364	// an empty value appearing in NullFields will be sent to the server as
35365	// null. It is an error if a field in this list has a non-empty value.
35366	// This may be used to include null fields in Patch requests.
35367	NullFields []string `json:"-"`
35368}
35369
35370func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
35371	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
35372	raw := NoMethod(*s)
35373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35374}
35375
35376// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
35377// snapshot properties for scheduled snapshots created by this policy.
35378type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
35379	// GuestFlush: Indication to perform a 'guest aware' snapshot.
35380	GuestFlush bool `json:"guestFlush,omitempty"`
35381
35382	// Labels: Labels to apply to scheduled snapshots. These can be later
35383	// modified by the setLabels method. Label values may be empty.
35384	Labels map[string]string `json:"labels,omitempty"`
35385
35386	// StorageLocations: Cloud Storage bucket storage location of the auto
35387	// snapshot (regional or multi-regional).
35388	StorageLocations []string `json:"storageLocations,omitempty"`
35389
35390	// ForceSendFields is a list of field names (e.g. "GuestFlush") to
35391	// unconditionally include in API requests. By default, fields with
35392	// empty values are omitted from API requests. However, any non-pointer,
35393	// non-interface field appearing in ForceSendFields will be sent to the
35394	// server regardless of whether the field is empty or not. This may be
35395	// used to include empty fields in Patch requests.
35396	ForceSendFields []string `json:"-"`
35397
35398	// NullFields is a list of field names (e.g. "GuestFlush") to include in
35399	// API requests with the JSON null value. By default, fields with empty
35400	// values are omitted from API requests. However, any field with an
35401	// empty value appearing in NullFields will be sent to the server as
35402	// null. It is an error if a field in this list has a non-empty value.
35403	// This may be used to include null fields in Patch requests.
35404	NullFields []string `json:"-"`
35405}
35406
35407func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
35408	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
35409	raw := NoMethod(*s)
35410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35411}
35412
35413type ResourcePolicyVmMaintenancePolicy struct {
35414	ConcurrencyControlGroup *ResourcePolicyVmMaintenancePolicyConcurrencyControl `json:"concurrencyControlGroup,omitempty"`
35415
35416	// MaintenanceWindow: Maintenance windows that are applied to VMs
35417	// covered by this policy.
35418	MaintenanceWindow *ResourcePolicyVmMaintenancePolicyMaintenanceWindow `json:"maintenanceWindow,omitempty"`
35419
35420	// ForceSendFields is a list of field names (e.g.
35421	// "ConcurrencyControlGroup") to unconditionally include in API
35422	// requests. By default, fields with empty values are omitted from API
35423	// requests. However, any non-pointer, non-interface field appearing in
35424	// ForceSendFields will be sent to the server regardless of whether the
35425	// field is empty or not. This may be used to include empty fields in
35426	// Patch requests.
35427	ForceSendFields []string `json:"-"`
35428
35429	// NullFields is a list of field names (e.g. "ConcurrencyControlGroup")
35430	// to include in API requests with the JSON null value. By default,
35431	// fields with empty values are omitted from API requests. However, any
35432	// field with an empty value appearing in NullFields will be sent to the
35433	// server as null. It is an error if a field in this list has a
35434	// non-empty value. This may be used to include null fields in Patch
35435	// requests.
35436	NullFields []string `json:"-"`
35437}
35438
35439func (s *ResourcePolicyVmMaintenancePolicy) MarshalJSON() ([]byte, error) {
35440	type NoMethod ResourcePolicyVmMaintenancePolicy
35441	raw := NoMethod(*s)
35442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35443}
35444
35445// ResourcePolicyVmMaintenancePolicyConcurrencyControl: A concurrency
35446// control configuration. Defines a group config that, when attached to
35447// an instance, recognizes that instance as part of a group of instances
35448// where only up the concurrency_limit of instances in that group can
35449// undergo simultaneous maintenance. For more information:
35450// go/concurrency-control-design-doc
35451type ResourcePolicyVmMaintenancePolicyConcurrencyControl struct {
35452	ConcurrencyLimit int64 `json:"concurrencyLimit,omitempty"`
35453
35454	// ForceSendFields is a list of field names (e.g. "ConcurrencyLimit") to
35455	// unconditionally include in API requests. By default, fields with
35456	// empty values are omitted from API requests. However, any non-pointer,
35457	// non-interface field appearing in ForceSendFields will be sent to the
35458	// server regardless of whether the field is empty or not. This may be
35459	// used to include empty fields in Patch requests.
35460	ForceSendFields []string `json:"-"`
35461
35462	// NullFields is a list of field names (e.g. "ConcurrencyLimit") to
35463	// include in API requests with the JSON null value. By default, fields
35464	// with empty values are omitted from API requests. However, any field
35465	// with an empty value appearing in NullFields will be sent to the
35466	// server as null. It is an error if a field in this list has a
35467	// non-empty value. This may be used to include null fields in Patch
35468	// requests.
35469	NullFields []string `json:"-"`
35470}
35471
35472func (s *ResourcePolicyVmMaintenancePolicyConcurrencyControl) MarshalJSON() ([]byte, error) {
35473	type NoMethod ResourcePolicyVmMaintenancePolicyConcurrencyControl
35474	raw := NoMethod(*s)
35475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35476}
35477
35478// ResourcePolicyVmMaintenancePolicyMaintenanceWindow: A maintenance
35479// window for VMs. When set, we restrict our maintenance operations to
35480// this window.
35481type ResourcePolicyVmMaintenancePolicyMaintenanceWindow struct {
35482	DailyMaintenanceWindow *ResourcePolicyDailyCycle `json:"dailyMaintenanceWindow,omitempty"`
35483
35484	// ForceSendFields is a list of field names (e.g.
35485	// "DailyMaintenanceWindow") to unconditionally include in API requests.
35486	// By default, fields with empty values are omitted from API requests.
35487	// However, any non-pointer, non-interface field appearing in
35488	// ForceSendFields will be sent to the server regardless of whether the
35489	// field is empty or not. This may be used to include empty fields in
35490	// Patch requests.
35491	ForceSendFields []string `json:"-"`
35492
35493	// NullFields is a list of field names (e.g. "DailyMaintenanceWindow")
35494	// to include in API requests with the JSON null value. By default,
35495	// fields with empty values are omitted from API requests. However, any
35496	// field with an empty value appearing in NullFields will be sent to the
35497	// server as null. It is an error if a field in this list has a
35498	// non-empty value. This may be used to include null fields in Patch
35499	// requests.
35500	NullFields []string `json:"-"`
35501}
35502
35503func (s *ResourcePolicyVmMaintenancePolicyMaintenanceWindow) MarshalJSON() ([]byte, error) {
35504	type NoMethod ResourcePolicyVmMaintenancePolicyMaintenanceWindow
35505	raw := NoMethod(*s)
35506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35507}
35508
35509// ResourcePolicyWeeklyCycle: Time window specified for weekly
35510// operations.
35511type ResourcePolicyWeeklyCycle struct {
35512	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
35513	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
35514
35515	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
35516	// unconditionally include in API requests. By default, fields with
35517	// empty values are omitted from API requests. However, any non-pointer,
35518	// non-interface field appearing in ForceSendFields will be sent to the
35519	// server regardless of whether the field is empty or not. This may be
35520	// used to include empty fields in Patch requests.
35521	ForceSendFields []string `json:"-"`
35522
35523	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
35524	// API requests with the JSON null value. By default, fields with empty
35525	// values are omitted from API requests. However, any field with an
35526	// empty value appearing in NullFields will be sent to the server as
35527	// null. It is an error if a field in this list has a non-empty value.
35528	// This may be used to include null fields in Patch requests.
35529	NullFields []string `json:"-"`
35530}
35531
35532func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
35533	type NoMethod ResourcePolicyWeeklyCycle
35534	raw := NoMethod(*s)
35535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35536}
35537
35538type ResourcePolicyWeeklyCycleDayOfWeek struct {
35539	// Day: Defines a schedule that runs on specific days of the week.
35540	// Specify one or more days. The following options are available:
35541	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
35542	//
35543	// Possible values:
35544	//   "FRIDAY"
35545	//   "INVALID"
35546	//   "MONDAY"
35547	//   "SATURDAY"
35548	//   "SUNDAY"
35549	//   "THURSDAY"
35550	//   "TUESDAY"
35551	//   "WEDNESDAY"
35552	Day string `json:"day,omitempty"`
35553
35554	// Duration: [Output only] Duration of the time window, automatically
35555	// chosen to be smallest possible in the given scenario.
35556	Duration string `json:"duration,omitempty"`
35557
35558	// StartTime: Time within the window to start the operations. It must be
35559	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
35560	StartTime string `json:"startTime,omitempty"`
35561
35562	// ForceSendFields is a list of field names (e.g. "Day") to
35563	// unconditionally include in API requests. By default, fields with
35564	// empty values are omitted from API requests. However, any non-pointer,
35565	// non-interface field appearing in ForceSendFields will be sent to the
35566	// server regardless of whether the field is empty or not. This may be
35567	// used to include empty fields in Patch requests.
35568	ForceSendFields []string `json:"-"`
35569
35570	// NullFields is a list of field names (e.g. "Day") to include in API
35571	// requests with the JSON null value. By default, fields with empty
35572	// values are omitted from API requests. However, any field with an
35573	// empty value appearing in NullFields will be sent to the server as
35574	// null. It is an error if a field in this list has a non-empty value.
35575	// This may be used to include null fields in Patch requests.
35576	NullFields []string `json:"-"`
35577}
35578
35579func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
35580	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
35581	raw := NoMethod(*s)
35582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35583}
35584
35585// Route: Represents a Route resource.
35586//
35587// A route defines a path from VM instances in the VPC network to a
35588// specific destination. This destination can be inside or outside the
35589// VPC network. For more information, read the Routes overview. (==
35590// resource_for {$api_version}.routes ==)
35591type Route struct {
35592	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35593	// format.
35594	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35595
35596	// Description: An optional description of this resource. Provide this
35597	// field when you create the resource.
35598	Description string `json:"description,omitempty"`
35599
35600	// DestRange: The destination range of outgoing packets that this route
35601	// applies to. Only IPv4 is supported.
35602	DestRange string `json:"destRange,omitempty"`
35603
35604	// Id: [Output Only] The unique identifier for the resource. This
35605	// identifier is defined by the server.
35606	Id uint64 `json:"id,omitempty,string"`
35607
35608	// Kind: [Output Only] Type of this resource. Always compute#routes for
35609	// Route resources.
35610	Kind string `json:"kind,omitempty"`
35611
35612	// Name: Name of the resource. Provided by the client when the resource
35613	// is created. The name must be 1-63 characters long, and comply with
35614	// RFC1035. Specifically, the name must be 1-63 characters long and
35615	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
35616	// character must be a lowercase letter, and all following characters
35617	// (except for the last character) must be a dash, lowercase letter, or
35618	// digit. The last character must be a lowercase letter or digit.
35619	Name string `json:"name,omitempty"`
35620
35621	// Network: Fully-qualified URL of the network that this route applies
35622	// to.
35623	Network string `json:"network,omitempty"`
35624
35625	// NextHopGateway: The URL to a gateway that should handle matching
35626	// packets. You can only specify the internet gateway using a full or
35627	// partial valid URL:
35628	// projects/project/global/gateways/default-internet-gateway
35629	NextHopGateway string `json:"nextHopGateway,omitempty"`
35630
35631	// NextHopIlb: The URL to a forwarding rule of type
35632	// loadBalancingScheme=INTERNAL that should handle matching packets. You
35633	// can only specify the forwarding rule as a partial or full URL. For
35634	// example, the following are all valid URLs:
35635	// -
35636	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
35637	// - regions/region/forwardingRules/forwardingRule
35638	NextHopIlb string `json:"nextHopIlb,omitempty"`
35639
35640	// NextHopInstance: The URL to an instance that should handle matching
35641	// packets. You can specify this as a full or partial URL. For
35642	// example:
35643	// https://www.googleapis.com/compute/v1/projects/project/zones/
35644	// zone/instances/
35645	NextHopInstance string `json:"nextHopInstance,omitempty"`
35646
35647	// NextHopInterconnectAttachment: [Output Only] The URL to an
35648	// InterconnectAttachment which is the next hop for the route. This
35649	// field will only be populated for the dynamic routes generated by
35650	// Cloud Router with a linked interconnectAttachment.
35651	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
35652
35653	// NextHopIp: The network IP address of an instance that should handle
35654	// matching packets. Only IPv4 is supported.
35655	NextHopIp string `json:"nextHopIp,omitempty"`
35656
35657	// NextHopNetwork: The URL of the local network if it should handle
35658	// matching packets.
35659	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
35660
35661	// NextHopPeering: [Output Only] The network peering name that should
35662	// handle matching packets, which should conform to RFC1035.
35663	NextHopPeering string `json:"nextHopPeering,omitempty"`
35664
35665	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
35666	// packets.
35667	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
35668
35669	// Priority: The priority of this route. Priority is used to break ties
35670	// in cases where there is more than one matching route of equal prefix
35671	// length. In cases where multiple routes have equal prefix length, the
35672	// one with the lowest-numbered priority value wins. The default value
35673	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
35674	Priority int64 `json:"priority,omitempty"`
35675
35676	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
35677	// resource.
35678	SelfLink string `json:"selfLink,omitempty"`
35679
35680	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
35681	// with the resource id.
35682	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
35683
35684	// Tags: A list of instance tags to which this route applies.
35685	Tags []string `json:"tags,omitempty"`
35686
35687	// Warnings: [Output Only] If potential misconfigurations are detected
35688	// for this route, this field will be populated with warning messages.
35689	Warnings []*RouteWarnings `json:"warnings,omitempty"`
35690
35691	// ServerResponse contains the HTTP response code and headers from the
35692	// server.
35693	googleapi.ServerResponse `json:"-"`
35694
35695	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35696	// to unconditionally include in API requests. By default, fields with
35697	// empty values are omitted from API requests. However, any non-pointer,
35698	// non-interface field appearing in ForceSendFields will be sent to the
35699	// server regardless of whether the field is empty or not. This may be
35700	// used to include empty fields in Patch requests.
35701	ForceSendFields []string `json:"-"`
35702
35703	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35704	// include in API requests with the JSON null value. By default, fields
35705	// with empty values are omitted from API requests. However, any field
35706	// with an empty value appearing in NullFields will be sent to the
35707	// server as null. It is an error if a field in this list has a
35708	// non-empty value. This may be used to include null fields in Patch
35709	// requests.
35710	NullFields []string `json:"-"`
35711}
35712
35713func (s *Route) MarshalJSON() ([]byte, error) {
35714	type NoMethod Route
35715	raw := NoMethod(*s)
35716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35717}
35718
35719type RouteWarnings struct {
35720	// Code: [Output Only] A warning code, if applicable. For example,
35721	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35722	// the response.
35723	//
35724	// Possible values:
35725	//   "CLEANUP_FAILED"
35726	//   "DEPRECATED_RESOURCE_USED"
35727	//   "DEPRECATED_TYPE_USED"
35728	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35729	//   "EXPERIMENTAL_TYPE_USED"
35730	//   "EXTERNAL_API_WARNING"
35731	//   "FIELD_VALUE_OVERRIDEN"
35732	//   "INJECTED_KERNELS_DEPRECATED"
35733	//   "MISSING_TYPE_DEPENDENCY"
35734	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35735	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35736	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35737	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35738	//   "NEXT_HOP_NOT_RUNNING"
35739	//   "NOT_CRITICAL_ERROR"
35740	//   "NO_RESULTS_ON_PAGE"
35741	//   "PARTIAL_SUCCESS"
35742	//   "REQUIRED_TOS_AGREEMENT"
35743	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35744	//   "RESOURCE_NOT_DELETED"
35745	//   "SCHEMA_VALIDATION_IGNORED"
35746	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35747	//   "UNDECLARED_PROPERTIES"
35748	//   "UNREACHABLE"
35749	Code string `json:"code,omitempty"`
35750
35751	// Data: [Output Only] Metadata about this warning in key: value format.
35752	// For example:
35753	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35754	Data []*RouteWarningsData `json:"data,omitempty"`
35755
35756	// Message: [Output Only] A human-readable description of the warning
35757	// code.
35758	Message string `json:"message,omitempty"`
35759
35760	// ForceSendFields is a list of field names (e.g. "Code") to
35761	// unconditionally include in API requests. By default, fields with
35762	// empty values are omitted from API requests. However, any non-pointer,
35763	// non-interface field appearing in ForceSendFields will be sent to the
35764	// server regardless of whether the field is empty or not. This may be
35765	// used to include empty fields in Patch requests.
35766	ForceSendFields []string `json:"-"`
35767
35768	// NullFields is a list of field names (e.g. "Code") to include in API
35769	// requests with the JSON null value. By default, fields with empty
35770	// values are omitted from API requests. However, any field with an
35771	// empty value appearing in NullFields will be sent to the server as
35772	// null. It is an error if a field in this list has a non-empty value.
35773	// This may be used to include null fields in Patch requests.
35774	NullFields []string `json:"-"`
35775}
35776
35777func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
35778	type NoMethod RouteWarnings
35779	raw := NoMethod(*s)
35780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35781}
35782
35783type RouteWarningsData struct {
35784	// Key: [Output Only] A key that provides more detail on the warning
35785	// being returned. For example, for warnings where there are no results
35786	// in a list request for a particular zone, this key might be scope and
35787	// the key value might be the zone name. Other examples might be a key
35788	// indicating a deprecated resource and a suggested replacement, or a
35789	// warning about invalid network settings (for example, if an instance
35790	// attempts to perform IP forwarding but is not enabled for IP
35791	// forwarding).
35792	Key string `json:"key,omitempty"`
35793
35794	// Value: [Output Only] A warning data value corresponding to the key.
35795	Value string `json:"value,omitempty"`
35796
35797	// ForceSendFields is a list of field names (e.g. "Key") to
35798	// unconditionally include in API requests. By default, fields with
35799	// empty values are omitted from API requests. However, any non-pointer,
35800	// non-interface field appearing in ForceSendFields will be sent to the
35801	// server regardless of whether the field is empty or not. This may be
35802	// used to include empty fields in Patch requests.
35803	ForceSendFields []string `json:"-"`
35804
35805	// NullFields is a list of field names (e.g. "Key") to include in API
35806	// requests with the JSON null value. By default, fields with empty
35807	// values are omitted from API requests. However, any field with an
35808	// empty value appearing in NullFields will be sent to the server as
35809	// null. It is an error if a field in this list has a non-empty value.
35810	// This may be used to include null fields in Patch requests.
35811	NullFields []string `json:"-"`
35812}
35813
35814func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
35815	type NoMethod RouteWarningsData
35816	raw := NoMethod(*s)
35817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35818}
35819
35820// RouteList: Contains a list of Route resources.
35821type RouteList struct {
35822	// Id: [Output Only] Unique identifier for the resource; defined by the
35823	// server.
35824	Id string `json:"id,omitempty"`
35825
35826	// Items: A list of Route resources.
35827	Items []*Route `json:"items,omitempty"`
35828
35829	// Kind: Type of resource.
35830	Kind string `json:"kind,omitempty"`
35831
35832	// NextPageToken: [Output Only] This token allows you to get the next
35833	// page of results for list requests. If the number of results is larger
35834	// than maxResults, use the nextPageToken as a value for the query
35835	// parameter pageToken in the next list request. Subsequent list
35836	// requests will have their own nextPageToken to continue paging through
35837	// the results.
35838	NextPageToken string `json:"nextPageToken,omitempty"`
35839
35840	// SelfLink: [Output Only] Server-defined URL for this resource.
35841	SelfLink string `json:"selfLink,omitempty"`
35842
35843	// Warning: [Output Only] Informational warning message.
35844	Warning *RouteListWarning `json:"warning,omitempty"`
35845
35846	// ServerResponse contains the HTTP response code and headers from the
35847	// server.
35848	googleapi.ServerResponse `json:"-"`
35849
35850	// ForceSendFields is a list of field names (e.g. "Id") to
35851	// unconditionally include in API requests. By default, fields with
35852	// empty values are omitted from API requests. However, any non-pointer,
35853	// non-interface field appearing in ForceSendFields will be sent to the
35854	// server regardless of whether the field is empty or not. This may be
35855	// used to include empty fields in Patch requests.
35856	ForceSendFields []string `json:"-"`
35857
35858	// NullFields is a list of field names (e.g. "Id") to include in API
35859	// requests with the JSON null value. By default, fields with empty
35860	// values are omitted from API requests. However, any field with an
35861	// empty value appearing in NullFields will be sent to the server as
35862	// null. It is an error if a field in this list has a non-empty value.
35863	// This may be used to include null fields in Patch requests.
35864	NullFields []string `json:"-"`
35865}
35866
35867func (s *RouteList) MarshalJSON() ([]byte, error) {
35868	type NoMethod RouteList
35869	raw := NoMethod(*s)
35870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35871}
35872
35873// RouteListWarning: [Output Only] Informational warning message.
35874type RouteListWarning struct {
35875	// Code: [Output Only] A warning code, if applicable. For example,
35876	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35877	// the response.
35878	//
35879	// Possible values:
35880	//   "CLEANUP_FAILED"
35881	//   "DEPRECATED_RESOURCE_USED"
35882	//   "DEPRECATED_TYPE_USED"
35883	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35884	//   "EXPERIMENTAL_TYPE_USED"
35885	//   "EXTERNAL_API_WARNING"
35886	//   "FIELD_VALUE_OVERRIDEN"
35887	//   "INJECTED_KERNELS_DEPRECATED"
35888	//   "MISSING_TYPE_DEPENDENCY"
35889	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35890	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35891	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35892	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35893	//   "NEXT_HOP_NOT_RUNNING"
35894	//   "NOT_CRITICAL_ERROR"
35895	//   "NO_RESULTS_ON_PAGE"
35896	//   "PARTIAL_SUCCESS"
35897	//   "REQUIRED_TOS_AGREEMENT"
35898	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35899	//   "RESOURCE_NOT_DELETED"
35900	//   "SCHEMA_VALIDATION_IGNORED"
35901	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35902	//   "UNDECLARED_PROPERTIES"
35903	//   "UNREACHABLE"
35904	Code string `json:"code,omitempty"`
35905
35906	// Data: [Output Only] Metadata about this warning in key: value format.
35907	// For example:
35908	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35909	Data []*RouteListWarningData `json:"data,omitempty"`
35910
35911	// Message: [Output Only] A human-readable description of the warning
35912	// code.
35913	Message string `json:"message,omitempty"`
35914
35915	// ForceSendFields is a list of field names (e.g. "Code") to
35916	// unconditionally include in API requests. By default, fields with
35917	// empty values are omitted from API requests. However, any non-pointer,
35918	// non-interface field appearing in ForceSendFields will be sent to the
35919	// server regardless of whether the field is empty or not. This may be
35920	// used to include empty fields in Patch requests.
35921	ForceSendFields []string `json:"-"`
35922
35923	// NullFields is a list of field names (e.g. "Code") to include in API
35924	// requests with the JSON null value. By default, fields with empty
35925	// values are omitted from API requests. However, any field with an
35926	// empty value appearing in NullFields will be sent to the server as
35927	// null. It is an error if a field in this list has a non-empty value.
35928	// This may be used to include null fields in Patch requests.
35929	NullFields []string `json:"-"`
35930}
35931
35932func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
35933	type NoMethod RouteListWarning
35934	raw := NoMethod(*s)
35935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35936}
35937
35938type RouteListWarningData struct {
35939	// Key: [Output Only] A key that provides more detail on the warning
35940	// being returned. For example, for warnings where there are no results
35941	// in a list request for a particular zone, this key might be scope and
35942	// the key value might be the zone name. Other examples might be a key
35943	// indicating a deprecated resource and a suggested replacement, or a
35944	// warning about invalid network settings (for example, if an instance
35945	// attempts to perform IP forwarding but is not enabled for IP
35946	// forwarding).
35947	Key string `json:"key,omitempty"`
35948
35949	// Value: [Output Only] A warning data value corresponding to the key.
35950	Value string `json:"value,omitempty"`
35951
35952	// ForceSendFields is a list of field names (e.g. "Key") to
35953	// unconditionally include in API requests. By default, fields with
35954	// empty values are omitted from API requests. However, any non-pointer,
35955	// non-interface field appearing in ForceSendFields will be sent to the
35956	// server regardless of whether the field is empty or not. This may be
35957	// used to include empty fields in Patch requests.
35958	ForceSendFields []string `json:"-"`
35959
35960	// NullFields is a list of field names (e.g. "Key") to include in API
35961	// requests with the JSON null value. By default, fields with empty
35962	// values are omitted from API requests. However, any field with an
35963	// empty value appearing in NullFields will be sent to the server as
35964	// null. It is an error if a field in this list has a non-empty value.
35965	// This may be used to include null fields in Patch requests.
35966	NullFields []string `json:"-"`
35967}
35968
35969func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
35970	type NoMethod RouteListWarningData
35971	raw := NoMethod(*s)
35972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35973}
35974
35975// Router: Represents a Cloud Router resource.
35976//
35977// For more information about Cloud Router, read the the Cloud Router
35978// overview.
35979type Router struct {
35980	// Bgp: BGP information specific to this router.
35981	Bgp *RouterBgp `json:"bgp,omitempty"`
35982
35983	// BgpPeers: BGP information that must be configured into the routing
35984	// stack to establish BGP peering. This information must specify the
35985	// peer ASN and either the interface name, IP address, or peer IP
35986	// address. Please refer to RFC4273.
35987	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
35988
35989	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35990	// format.
35991	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35992
35993	// Description: An optional description of this resource. Provide this
35994	// property when you create the resource.
35995	Description string `json:"description,omitempty"`
35996
35997	// Id: [Output Only] The unique identifier for the resource. This
35998	// identifier is defined by the server.
35999	Id uint64 `json:"id,omitempty,string"`
36000
36001	// Interfaces: Router interfaces. Each interface requires either one
36002	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
36003	// address range (for example, ipRange), or both.
36004	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
36005
36006	// Kind: [Output Only] Type of resource. Always compute#router for
36007	// routers.
36008	Kind string `json:"kind,omitempty"`
36009
36010	// Name: Name of the resource. Provided by the client when the resource
36011	// is created. The name must be 1-63 characters long, and comply with
36012	// RFC1035. Specifically, the name must be 1-63 characters long and
36013	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36014	// the first character must be a lowercase letter, and all following
36015	// characters must be a dash, lowercase letter, or digit, except the
36016	// last character, which cannot be a dash.
36017	Name string `json:"name,omitempty"`
36018
36019	// Nats: A list of NAT services created in this router.
36020	Nats []*RouterNat `json:"nats,omitempty"`
36021
36022	// Network: URI of the network to which this router belongs.
36023	Network string `json:"network,omitempty"`
36024
36025	// Region: [Output Only] URI of the region where the router resides. You
36026	// must specify this field as part of the HTTP request URL. It is not
36027	// settable as a field in the request body.
36028	Region string `json:"region,omitempty"`
36029
36030	// SelfLink: [Output Only] Server-defined URL for the resource.
36031	SelfLink string `json:"selfLink,omitempty"`
36032
36033	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
36034	// with the resource id.
36035	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
36036
36037	// ServerResponse contains the HTTP response code and headers from the
36038	// server.
36039	googleapi.ServerResponse `json:"-"`
36040
36041	// ForceSendFields is a list of field names (e.g. "Bgp") to
36042	// unconditionally include in API requests. By default, fields with
36043	// empty values are omitted from API requests. However, any non-pointer,
36044	// non-interface field appearing in ForceSendFields will be sent to the
36045	// server regardless of whether the field is empty or not. This may be
36046	// used to include empty fields in Patch requests.
36047	ForceSendFields []string `json:"-"`
36048
36049	// NullFields is a list of field names (e.g. "Bgp") to include in API
36050	// requests with the JSON null value. By default, fields with empty
36051	// values are omitted from API requests. However, any field with an
36052	// empty value appearing in NullFields will be sent to the server as
36053	// null. It is an error if a field in this list has a non-empty value.
36054	// This may be used to include null fields in Patch requests.
36055	NullFields []string `json:"-"`
36056}
36057
36058func (s *Router) MarshalJSON() ([]byte, error) {
36059	type NoMethod Router
36060	raw := NoMethod(*s)
36061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36062}
36063
36064// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
36065// to advertise.
36066type RouterAdvertisedIpRange struct {
36067	// Description: User-specified description for the IP range.
36068	Description string `json:"description,omitempty"`
36069
36070	// Range: The IP range to advertise. The value must be a CIDR-formatted
36071	// string.
36072	Range string `json:"range,omitempty"`
36073
36074	// ForceSendFields is a list of field names (e.g. "Description") to
36075	// unconditionally include in API requests. By default, fields with
36076	// empty values are omitted from API requests. However, any non-pointer,
36077	// non-interface field appearing in ForceSendFields will be sent to the
36078	// server regardless of whether the field is empty or not. This may be
36079	// used to include empty fields in Patch requests.
36080	ForceSendFields []string `json:"-"`
36081
36082	// NullFields is a list of field names (e.g. "Description") to include
36083	// in API requests with the JSON null value. By default, fields with
36084	// empty values are omitted from API requests. However, any field with
36085	// an empty value appearing in NullFields will be sent to the server as
36086	// null. It is an error if a field in this list has a non-empty value.
36087	// This may be used to include null fields in Patch requests.
36088	NullFields []string `json:"-"`
36089}
36090
36091func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
36092	type NoMethod RouterAdvertisedIpRange
36093	raw := NoMethod(*s)
36094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36095}
36096
36097// RouterAggregatedList: Contains a list of routers.
36098type RouterAggregatedList struct {
36099	// Id: [Output Only] Unique identifier for the resource; defined by the
36100	// server.
36101	Id string `json:"id,omitempty"`
36102
36103	// Items: A list of Router resources.
36104	Items map[string]RoutersScopedList `json:"items,omitempty"`
36105
36106	// Kind: Type of resource.
36107	Kind string `json:"kind,omitempty"`
36108
36109	// NextPageToken: [Output Only] This token allows you to get the next
36110	// page of results for list requests. If the number of results is larger
36111	// than maxResults, use the nextPageToken as a value for the query
36112	// parameter pageToken in the next list request. Subsequent list
36113	// requests will have their own nextPageToken to continue paging through
36114	// the results.
36115	NextPageToken string `json:"nextPageToken,omitempty"`
36116
36117	// SelfLink: [Output Only] Server-defined URL for this resource.
36118	SelfLink string `json:"selfLink,omitempty"`
36119
36120	// Unreachables: [Output Only] Unreachable resources.
36121	Unreachables []string `json:"unreachables,omitempty"`
36122
36123	// Warning: [Output Only] Informational warning message.
36124	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
36125
36126	// ServerResponse contains the HTTP response code and headers from the
36127	// server.
36128	googleapi.ServerResponse `json:"-"`
36129
36130	// ForceSendFields is a list of field names (e.g. "Id") to
36131	// unconditionally include in API requests. By default, fields with
36132	// empty values are omitted from API requests. However, any non-pointer,
36133	// non-interface field appearing in ForceSendFields will be sent to the
36134	// server regardless of whether the field is empty or not. This may be
36135	// used to include empty fields in Patch requests.
36136	ForceSendFields []string `json:"-"`
36137
36138	// NullFields is a list of field names (e.g. "Id") to include in API
36139	// requests with the JSON null value. By default, fields with empty
36140	// values are omitted from API requests. However, any field with an
36141	// empty value appearing in NullFields will be sent to the server as
36142	// null. It is an error if a field in this list has a non-empty value.
36143	// This may be used to include null fields in Patch requests.
36144	NullFields []string `json:"-"`
36145}
36146
36147func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
36148	type NoMethod RouterAggregatedList
36149	raw := NoMethod(*s)
36150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36151}
36152
36153// RouterAggregatedListWarning: [Output Only] Informational warning
36154// message.
36155type RouterAggregatedListWarning struct {
36156	// Code: [Output Only] A warning code, if applicable. For example,
36157	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36158	// the response.
36159	//
36160	// Possible values:
36161	//   "CLEANUP_FAILED"
36162	//   "DEPRECATED_RESOURCE_USED"
36163	//   "DEPRECATED_TYPE_USED"
36164	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36165	//   "EXPERIMENTAL_TYPE_USED"
36166	//   "EXTERNAL_API_WARNING"
36167	//   "FIELD_VALUE_OVERRIDEN"
36168	//   "INJECTED_KERNELS_DEPRECATED"
36169	//   "MISSING_TYPE_DEPENDENCY"
36170	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36171	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36172	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36173	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36174	//   "NEXT_HOP_NOT_RUNNING"
36175	//   "NOT_CRITICAL_ERROR"
36176	//   "NO_RESULTS_ON_PAGE"
36177	//   "PARTIAL_SUCCESS"
36178	//   "REQUIRED_TOS_AGREEMENT"
36179	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36180	//   "RESOURCE_NOT_DELETED"
36181	//   "SCHEMA_VALIDATION_IGNORED"
36182	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36183	//   "UNDECLARED_PROPERTIES"
36184	//   "UNREACHABLE"
36185	Code string `json:"code,omitempty"`
36186
36187	// Data: [Output Only] Metadata about this warning in key: value format.
36188	// For example:
36189	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36190	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
36191
36192	// Message: [Output Only] A human-readable description of the warning
36193	// code.
36194	Message string `json:"message,omitempty"`
36195
36196	// ForceSendFields is a list of field names (e.g. "Code") to
36197	// unconditionally include in API requests. By default, fields with
36198	// empty values are omitted from API requests. However, any non-pointer,
36199	// non-interface field appearing in ForceSendFields will be sent to the
36200	// server regardless of whether the field is empty or not. This may be
36201	// used to include empty fields in Patch requests.
36202	ForceSendFields []string `json:"-"`
36203
36204	// NullFields is a list of field names (e.g. "Code") to include in API
36205	// requests with the JSON null value. By default, fields with empty
36206	// values are omitted from API requests. However, any field with an
36207	// empty value appearing in NullFields will be sent to the server as
36208	// null. It is an error if a field in this list has a non-empty value.
36209	// This may be used to include null fields in Patch requests.
36210	NullFields []string `json:"-"`
36211}
36212
36213func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
36214	type NoMethod RouterAggregatedListWarning
36215	raw := NoMethod(*s)
36216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36217}
36218
36219type RouterAggregatedListWarningData struct {
36220	// Key: [Output Only] A key that provides more detail on the warning
36221	// being returned. For example, for warnings where there are no results
36222	// in a list request for a particular zone, this key might be scope and
36223	// the key value might be the zone name. Other examples might be a key
36224	// indicating a deprecated resource and a suggested replacement, or a
36225	// warning about invalid network settings (for example, if an instance
36226	// attempts to perform IP forwarding but is not enabled for IP
36227	// forwarding).
36228	Key string `json:"key,omitempty"`
36229
36230	// Value: [Output Only] A warning data value corresponding to the key.
36231	Value string `json:"value,omitempty"`
36232
36233	// ForceSendFields is a list of field names (e.g. "Key") to
36234	// unconditionally include in API requests. By default, fields with
36235	// empty values are omitted from API requests. However, any non-pointer,
36236	// non-interface field appearing in ForceSendFields will be sent to the
36237	// server regardless of whether the field is empty or not. This may be
36238	// used to include empty fields in Patch requests.
36239	ForceSendFields []string `json:"-"`
36240
36241	// NullFields is a list of field names (e.g. "Key") to include in API
36242	// requests with the JSON null value. By default, fields with empty
36243	// values are omitted from API requests. However, any field with an
36244	// empty value appearing in NullFields will be sent to the server as
36245	// null. It is an error if a field in this list has a non-empty value.
36246	// This may be used to include null fields in Patch requests.
36247	NullFields []string `json:"-"`
36248}
36249
36250func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
36251	type NoMethod RouterAggregatedListWarningData
36252	raw := NoMethod(*s)
36253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36254}
36255
36256type RouterBgp struct {
36257	// AdvertiseMode: User-specified flag to indicate which mode to use for
36258	// advertisement. The options are DEFAULT or CUSTOM.
36259	//
36260	// Possible values:
36261	//   "CUSTOM"
36262	//   "DEFAULT"
36263	AdvertiseMode string `json:"advertiseMode,omitempty"`
36264
36265	// AdvertisedGroups: User-specified list of prefix groups to advertise
36266	// in custom mode. This field can only be populated if advertise_mode is
36267	// CUSTOM and is advertised to all peers of the router. These groups
36268	// will be advertised in addition to any specified prefixes. Leave this
36269	// field blank to advertise no custom groups.
36270	//
36271	// Possible values:
36272	//   "ALL_PEER_VPC_SUBNETS"
36273	//   "ALL_SUBNETS"
36274	//   "ALL_VPC_SUBNETS"
36275	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
36276
36277	// AdvertisedIpRanges: User-specified list of individual IP ranges to
36278	// advertise in custom mode. This field can only be populated if
36279	// advertise_mode is CUSTOM and is advertised to all peers of the
36280	// router. These IP ranges will be advertised in addition to any
36281	// specified groups. Leave this field blank to advertise no custom IP
36282	// ranges.
36283	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
36284
36285	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
36286	// private ASN, either 16-bit or 32-bit. The value will be fixed for
36287	// this router resource. All VPN tunnels that link to this router will
36288	// have the same local ASN.
36289	Asn int64 `json:"asn,omitempty"`
36290
36291	// KeepaliveInterval: The interval in seconds between BGP keepalive
36292	// messages that are sent to the peer. Hold time is three times the
36293	// interval at which keepalive messages are sent, and the hold time is
36294	// the maximum number of seconds allowed to elapse between successive
36295	// keepalive messages that BGP receives from a peer. BGP will use the
36296	// smaller of either the local hold time value or the peer's hold time
36297	// value as the hold time for the BGP connection between the two peers.
36298	// If set, this value must be between 1 and 120. The default is 20.
36299	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
36300
36301	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
36302	// unconditionally include in API requests. By default, fields with
36303	// empty values are omitted from API requests. However, any non-pointer,
36304	// non-interface field appearing in ForceSendFields will be sent to the
36305	// server regardless of whether the field is empty or not. This may be
36306	// used to include empty fields in Patch requests.
36307	ForceSendFields []string `json:"-"`
36308
36309	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
36310	// in API requests with the JSON null value. By default, fields with
36311	// empty values are omitted from API requests. However, any field with
36312	// an empty value appearing in NullFields will be sent to the server as
36313	// null. It is an error if a field in this list has a non-empty value.
36314	// This may be used to include null fields in Patch requests.
36315	NullFields []string `json:"-"`
36316}
36317
36318func (s *RouterBgp) MarshalJSON() ([]byte, error) {
36319	type NoMethod RouterBgp
36320	raw := NoMethod(*s)
36321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36322}
36323
36324type RouterBgpPeer struct {
36325	// AdvertiseMode: User-specified flag to indicate which mode to use for
36326	// advertisement.
36327	//
36328	// Possible values:
36329	//   "CUSTOM"
36330	//   "DEFAULT"
36331	AdvertiseMode string `json:"advertiseMode,omitempty"`
36332
36333	// AdvertisedGroups: User-specified list of prefix groups to advertise
36334	// in custom mode, which can take one of the following options:
36335	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
36336	// subnets.
36337	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
36338	// - ALL_PEER_VPC_SUBNETS: Advertises peer subnets of the router's VPC
36339	// network. Note that this field can only be populated if advertise_mode
36340	// is CUSTOM and overrides the list defined for the router (in the "bgp"
36341	// message). These groups are advertised in addition to any specified
36342	// prefixes. Leave this field blank to advertise no custom groups.
36343	//
36344	// Possible values:
36345	//   "ALL_PEER_VPC_SUBNETS"
36346	//   "ALL_SUBNETS"
36347	//   "ALL_VPC_SUBNETS"
36348	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
36349
36350	// AdvertisedIpRanges: User-specified list of individual IP ranges to
36351	// advertise in custom mode. This field can only be populated if
36352	// advertise_mode is CUSTOM and overrides the list defined for the
36353	// router (in the "bgp" message). These IP ranges are advertised in
36354	// addition to any specified groups. Leave this field blank to advertise
36355	// no custom IP ranges.
36356	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
36357
36358	// AdvertisedRoutePriority: The priority of routes advertised to this
36359	// BGP peer. Where there is more than one matching route of maximum
36360	// length, the routes with the lowest priority value win.
36361	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
36362
36363	// Bfd: BFD configuration for the BGP peering.
36364	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
36365
36366	// Enable: The status of the BGP peer connection. If set to FALSE, any
36367	// active session with the peer is terminated and all associated routing
36368	// information is removed. If set to TRUE, the peer connection can be
36369	// established with routing information. The default is TRUE.
36370	//
36371	// Possible values:
36372	//   "FALSE"
36373	//   "TRUE"
36374	Enable string `json:"enable,omitempty"`
36375
36376	// InterfaceName: Name of the interface the BGP peer is associated with.
36377	InterfaceName string `json:"interfaceName,omitempty"`
36378
36379	// IpAddress: IP address of the interface inside Google Cloud Platform.
36380	// Only IPv4 is supported.
36381	IpAddress string `json:"ipAddress,omitempty"`
36382
36383	// ManagementType: [Output Only] The resource that configures and
36384	// manages this BGP peer.
36385	// - MANAGED_BY_USER is the default value and can be managed by you or
36386	// other users
36387	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
36388	// by Cloud Interconnect, specifically by an InterconnectAttachment of
36389	// type PARTNER. Google automatically creates, updates, and deletes this
36390	// type of BGP peer when the PARTNER InterconnectAttachment is created,
36391	// updated, or deleted.
36392	//
36393	// Possible values:
36394	//   "MANAGED_BY_ATTACHMENT"
36395	//   "MANAGED_BY_USER"
36396	ManagementType string `json:"managementType,omitempty"`
36397
36398	// Name: Name of this BGP peer. The name must be 1-63 characters long,
36399	// and comply with RFC1035. Specifically, the name must be 1-63
36400	// characters long and match the regular expression
36401	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
36402	// a lowercase letter, and all following characters must be a dash,
36403	// lowercase letter, or digit, except the last character, which cannot
36404	// be a dash.
36405	Name string `json:"name,omitempty"`
36406
36407	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
36408	// may use a different value.
36409	PeerAsn int64 `json:"peerAsn,omitempty"`
36410
36411	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
36412	// Platform. Only IPv4 is supported.
36413	PeerIpAddress string `json:"peerIpAddress,omitempty"`
36414
36415	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
36416	// unconditionally include in API requests. By default, fields with
36417	// empty values are omitted from API requests. However, any non-pointer,
36418	// non-interface field appearing in ForceSendFields will be sent to the
36419	// server regardless of whether the field is empty or not. This may be
36420	// used to include empty fields in Patch requests.
36421	ForceSendFields []string `json:"-"`
36422
36423	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
36424	// in API requests with the JSON null value. By default, fields with
36425	// empty values are omitted from API requests. However, any field with
36426	// an empty value appearing in NullFields will be sent to the server as
36427	// null. It is an error if a field in this list has a non-empty value.
36428	// This may be used to include null fields in Patch requests.
36429	NullFields []string `json:"-"`
36430}
36431
36432func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
36433	type NoMethod RouterBgpPeer
36434	raw := NoMethod(*s)
36435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36436}
36437
36438type RouterBgpPeerBfd struct {
36439	// MinReceiveInterval: The minimum interval, in milliseconds, between
36440	// BFD control packets received from the peer router. The actual value
36441	// is negotiated between the two routers and is equal to the greater of
36442	// this value and the transmit interval of the other router. If set,
36443	// this value must be between 100 and 30000. The default is 300.
36444	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
36445
36446	// MinTransmitInterval: The minimum interval, in milliseconds, between
36447	// BFD control packets transmitted to the peer router. The actual value
36448	// is negotiated between the two routers and is equal to the greater of
36449	// this value and the corresponding receive interval of the other
36450	// router. If set, this value must be between 100 and 30000. The default
36451	// is 300.
36452	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
36453
36454	// Mode: The BFD session initialization mode for this BGP peer. If set
36455	// to ACTIVE, the Cloud Router will initiate the BFD session for this
36456	// BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer
36457	// router to initiate the BFD session for this BGP peer. If set to
36458	// DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE.
36459	//
36460	// Possible values:
36461	//   "ACTIVE"
36462	//   "DISABLED"
36463	//   "PASSIVE"
36464	Mode string `json:"mode,omitempty"`
36465
36466	// Multiplier: The number of consecutive BFD packets that must be missed
36467	// before BFD declares that a peer is unavailable. If set, the value
36468	// must be a value between 2 and 16. The default is 3.
36469	Multiplier int64 `json:"multiplier,omitempty"`
36470
36471	// PacketMode: The BFD packet mode for this BGP peer. If set to
36472	// CONTROL_AND_ECHO, BFD echo mode is enabled for this BGP peer. In this
36473	// mode, if the peer router also has BFD echo mode enabled, BFD echo
36474	// packets will be sent to the other router. If the peer router does not
36475	// have BFD echo mode enabled, only control packets will be sent. If set
36476	// to CONTROL_ONLY, BFD echo mode is disabled for this BGP peer. If this
36477	// router and the peer router have a multihop connection, this should be
36478	// set to CONTROL_ONLY as BFD echo mode is only supported on singlehop
36479	// connections. The default is CONTROL_AND_ECHO.
36480	//
36481	// Possible values:
36482	//   "CONTROL_AND_ECHO"
36483	//   "CONTROL_ONLY"
36484	PacketMode string `json:"packetMode,omitempty"`
36485
36486	// SessionInitializationMode: The BFD session initialization mode for
36487	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
36488	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
36489	// will wait for the peer router to initiate the BFD session for this
36490	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The
36491	// default is PASSIVE.
36492	//
36493	// Possible values:
36494	//   "ACTIVE"
36495	//   "DISABLED"
36496	//   "PASSIVE"
36497	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
36498
36499	// SlowTimerInterval: The minimum interval, in milliseconds, between BFD
36500	// control packets transmitted to and received from the peer router when
36501	// BFD echo mode is enabled on both routers. The actual transmit and
36502	// receive intervals are negotiated between the two routers and are
36503	// equal to the greater of this value and the corresponding interval on
36504	// the other router. If set, this value must be between 1000 and 30000.
36505	// The default is 5000.
36506	SlowTimerInterval int64 `json:"slowTimerInterval,omitempty"`
36507
36508	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
36509	// to unconditionally include in API requests. By default, fields with
36510	// empty values are omitted from API requests. However, any non-pointer,
36511	// non-interface field appearing in ForceSendFields will be sent to the
36512	// server regardless of whether the field is empty or not. This may be
36513	// used to include empty fields in Patch requests.
36514	ForceSendFields []string `json:"-"`
36515
36516	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
36517	// include in API requests with the JSON null value. By default, fields
36518	// with empty values are omitted from API requests. However, any field
36519	// with an empty value appearing in NullFields will be sent to the
36520	// server as null. It is an error if a field in this list has a
36521	// non-empty value. This may be used to include null fields in Patch
36522	// requests.
36523	NullFields []string `json:"-"`
36524}
36525
36526func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
36527	type NoMethod RouterBgpPeerBfd
36528	raw := NoMethod(*s)
36529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36530}
36531
36532type RouterInterface struct {
36533	// IpRange: IP address and range of the interface. The IP range must be
36534	// in the RFC3927 link-local IP address space. The value must be a
36535	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
36536	// truncate the address as it represents the IP address of the
36537	// interface.
36538	IpRange string `json:"ipRange,omitempty"`
36539
36540	// LinkedInterconnectAttachment: URI of the linked Interconnect
36541	// attachment. It must be in the same region as the router. Each
36542	// interface can have one linked resource, which can be a VPN tunnel, an
36543	// Interconnect attachment, or a virtual machine instance.
36544	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
36545
36546	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
36547	// same region as the router. Each interface can have one linked
36548	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
36549	// virtual machine instance.
36550	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
36551
36552	// ManagementType: [Output Only] The resource that configures and
36553	// manages this interface.
36554	// - MANAGED_BY_USER is the default value and can be managed directly by
36555	// users.
36556	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
36557	// managed by Cloud Interconnect, specifically, by an
36558	// InterconnectAttachment of type PARTNER. Google automatically creates,
36559	// updates, and deletes this type of interface when the PARTNER
36560	// InterconnectAttachment is created, updated, or deleted.
36561	//
36562	// Possible values:
36563	//   "MANAGED_BY_ATTACHMENT"
36564	//   "MANAGED_BY_USER"
36565	ManagementType string `json:"managementType,omitempty"`
36566
36567	// Name: Name of this interface entry. The name must be 1-63 characters
36568	// long, and comply with RFC1035. Specifically, the name must be 1-63
36569	// characters long and match the regular expression
36570	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
36571	// a lowercase letter, and all following characters must be a dash,
36572	// lowercase letter, or digit, except the last character, which cannot
36573	// be a dash.
36574	Name string `json:"name,omitempty"`
36575
36576	// ForceSendFields is a list of field names (e.g. "IpRange") to
36577	// unconditionally include in API requests. By default, fields with
36578	// empty values are omitted from API requests. However, any non-pointer,
36579	// non-interface field appearing in ForceSendFields will be sent to the
36580	// server regardless of whether the field is empty or not. This may be
36581	// used to include empty fields in Patch requests.
36582	ForceSendFields []string `json:"-"`
36583
36584	// NullFields is a list of field names (e.g. "IpRange") to include in
36585	// API requests with the JSON null value. By default, fields with empty
36586	// values are omitted from API requests. However, any field with an
36587	// empty value appearing in NullFields will be sent to the server as
36588	// null. It is an error if a field in this list has a non-empty value.
36589	// This may be used to include null fields in Patch requests.
36590	NullFields []string `json:"-"`
36591}
36592
36593func (s *RouterInterface) MarshalJSON() ([]byte, error) {
36594	type NoMethod RouterInterface
36595	raw := NoMethod(*s)
36596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36597}
36598
36599// RouterList: Contains a list of Router resources.
36600type RouterList struct {
36601	// Id: [Output Only] Unique identifier for the resource; defined by the
36602	// server.
36603	Id string `json:"id,omitempty"`
36604
36605	// Items: A list of Router resources.
36606	Items []*Router `json:"items,omitempty"`
36607
36608	// Kind: [Output Only] Type of resource. Always compute#router for
36609	// routers.
36610	Kind string `json:"kind,omitempty"`
36611
36612	// NextPageToken: [Output Only] This token allows you to get the next
36613	// page of results for list requests. If the number of results is larger
36614	// than maxResults, use the nextPageToken as a value for the query
36615	// parameter pageToken in the next list request. Subsequent list
36616	// requests will have their own nextPageToken to continue paging through
36617	// the results.
36618	NextPageToken string `json:"nextPageToken,omitempty"`
36619
36620	// SelfLink: [Output Only] Server-defined URL for this resource.
36621	SelfLink string `json:"selfLink,omitempty"`
36622
36623	// Warning: [Output Only] Informational warning message.
36624	Warning *RouterListWarning `json:"warning,omitempty"`
36625
36626	// ServerResponse contains the HTTP response code and headers from the
36627	// server.
36628	googleapi.ServerResponse `json:"-"`
36629
36630	// ForceSendFields is a list of field names (e.g. "Id") to
36631	// unconditionally include in API requests. By default, fields with
36632	// empty values are omitted from API requests. However, any non-pointer,
36633	// non-interface field appearing in ForceSendFields will be sent to the
36634	// server regardless of whether the field is empty or not. This may be
36635	// used to include empty fields in Patch requests.
36636	ForceSendFields []string `json:"-"`
36637
36638	// NullFields is a list of field names (e.g. "Id") to include in API
36639	// requests with the JSON null value. By default, fields with empty
36640	// values are omitted from API requests. However, any field with an
36641	// empty value appearing in NullFields will be sent to the server as
36642	// null. It is an error if a field in this list has a non-empty value.
36643	// This may be used to include null fields in Patch requests.
36644	NullFields []string `json:"-"`
36645}
36646
36647func (s *RouterList) MarshalJSON() ([]byte, error) {
36648	type NoMethod RouterList
36649	raw := NoMethod(*s)
36650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36651}
36652
36653// RouterListWarning: [Output Only] Informational warning message.
36654type RouterListWarning struct {
36655	// Code: [Output Only] A warning code, if applicable. For example,
36656	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36657	// the response.
36658	//
36659	// Possible values:
36660	//   "CLEANUP_FAILED"
36661	//   "DEPRECATED_RESOURCE_USED"
36662	//   "DEPRECATED_TYPE_USED"
36663	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36664	//   "EXPERIMENTAL_TYPE_USED"
36665	//   "EXTERNAL_API_WARNING"
36666	//   "FIELD_VALUE_OVERRIDEN"
36667	//   "INJECTED_KERNELS_DEPRECATED"
36668	//   "MISSING_TYPE_DEPENDENCY"
36669	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36670	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36671	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36672	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36673	//   "NEXT_HOP_NOT_RUNNING"
36674	//   "NOT_CRITICAL_ERROR"
36675	//   "NO_RESULTS_ON_PAGE"
36676	//   "PARTIAL_SUCCESS"
36677	//   "REQUIRED_TOS_AGREEMENT"
36678	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36679	//   "RESOURCE_NOT_DELETED"
36680	//   "SCHEMA_VALIDATION_IGNORED"
36681	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36682	//   "UNDECLARED_PROPERTIES"
36683	//   "UNREACHABLE"
36684	Code string `json:"code,omitempty"`
36685
36686	// Data: [Output Only] Metadata about this warning in key: value format.
36687	// For example:
36688	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36689	Data []*RouterListWarningData `json:"data,omitempty"`
36690
36691	// Message: [Output Only] A human-readable description of the warning
36692	// code.
36693	Message string `json:"message,omitempty"`
36694
36695	// ForceSendFields is a list of field names (e.g. "Code") to
36696	// unconditionally include in API requests. By default, fields with
36697	// empty values are omitted from API requests. However, any non-pointer,
36698	// non-interface field appearing in ForceSendFields will be sent to the
36699	// server regardless of whether the field is empty or not. This may be
36700	// used to include empty fields in Patch requests.
36701	ForceSendFields []string `json:"-"`
36702
36703	// NullFields is a list of field names (e.g. "Code") to include in API
36704	// requests with the JSON null value. By default, fields with empty
36705	// values are omitted from API requests. However, any field with an
36706	// empty value appearing in NullFields will be sent to the server as
36707	// null. It is an error if a field in this list has a non-empty value.
36708	// This may be used to include null fields in Patch requests.
36709	NullFields []string `json:"-"`
36710}
36711
36712func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
36713	type NoMethod RouterListWarning
36714	raw := NoMethod(*s)
36715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36716}
36717
36718type RouterListWarningData struct {
36719	// Key: [Output Only] A key that provides more detail on the warning
36720	// being returned. For example, for warnings where there are no results
36721	// in a list request for a particular zone, this key might be scope and
36722	// the key value might be the zone name. Other examples might be a key
36723	// indicating a deprecated resource and a suggested replacement, or a
36724	// warning about invalid network settings (for example, if an instance
36725	// attempts to perform IP forwarding but is not enabled for IP
36726	// forwarding).
36727	Key string `json:"key,omitempty"`
36728
36729	// Value: [Output Only] A warning data value corresponding to the key.
36730	Value string `json:"value,omitempty"`
36731
36732	// ForceSendFields is a list of field names (e.g. "Key") to
36733	// unconditionally include in API requests. By default, fields with
36734	// empty values are omitted from API requests. However, any non-pointer,
36735	// non-interface field appearing in ForceSendFields will be sent to the
36736	// server regardless of whether the field is empty or not. This may be
36737	// used to include empty fields in Patch requests.
36738	ForceSendFields []string `json:"-"`
36739
36740	// NullFields is a list of field names (e.g. "Key") to include in API
36741	// requests with the JSON null value. By default, fields with empty
36742	// values are omitted from API requests. However, any field with an
36743	// empty value appearing in NullFields will be sent to the server as
36744	// null. It is an error if a field in this list has a non-empty value.
36745	// This may be used to include null fields in Patch requests.
36746	NullFields []string `json:"-"`
36747}
36748
36749func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
36750	type NoMethod RouterListWarningData
36751	raw := NoMethod(*s)
36752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36753}
36754
36755// RouterNat: Represents a Nat resource. It enables the VMs within the
36756// specified subnetworks to access Internet without external IP
36757// addresses. It specifies a list of subnetworks (and the ranges within)
36758// that want to use NAT. Customers can also provide the external IPs
36759// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
36760// no external IPs are provided.
36761type RouterNat struct {
36762	// DrainNatIps: A list of URLs of the IP resources to be drained. These
36763	// IPs must be valid static external IPs that have been assigned to the
36764	// NAT. These IPs should be used for updating/patching a NAT only.
36765	DrainNatIps []string `json:"drainNatIps,omitempty"`
36766
36767	EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"`
36768
36769	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
36770	// Defaults to 30s if not set.
36771	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
36772
36773	// LogConfig: Configure logging on this NAT.
36774	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
36775
36776	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
36777	// NAT config. If not set, a default number of ports is allocated to a
36778	// VM. This is rounded up to the nearest power of 2. For example, if the
36779	// value of this field is 50, at least 64 ports are allocated to a VM.
36780	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
36781
36782	// Name: Unique name of this Nat service. The name must be 1-63
36783	// characters long and comply with RFC1035.
36784	Name string `json:"name,omitempty"`
36785
36786	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
36787	// one of the following values:
36788	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
36789	// there are not enough specified Nat IPs, the Nat service fails for new
36790	// VMs.
36791	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
36792	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
36793	// nat_ip should be empty.
36794	//
36795	// Possible values:
36796	//   "AUTO_ONLY"
36797	//   "MANUAL_ONLY"
36798	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
36799
36800	// NatIps: A list of URLs of the IP resources used for this Nat service.
36801	// These IP addresses must be valid static external IP addresses
36802	// assigned to the project.
36803	NatIps []string `json:"natIps,omitempty"`
36804
36805	// Rules: A list of rules associated with this NAT.
36806	Rules []*RouterNatRule `json:"rules,omitempty"`
36807
36808	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
36809	// one of the following values:
36810	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
36811	// Subnetwork are allowed to Nat.
36812	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
36813	// in every Subnetwork are allowed to Nat.
36814	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
36815	// (specified in the field subnetwork below) The default is
36816	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
36817	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
36818	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
36819	// other Router.Nat section in any Router for this network in this
36820	// region.
36821	//
36822	// Possible values:
36823	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
36824	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
36825	//   "LIST_OF_SUBNETWORKS"
36826	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
36827
36828	// Subnetworks: A list of Subnetwork resources whose traffic should be
36829	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
36830	// is selected for the SubnetworkIpRangeToNatOption above.
36831	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
36832
36833	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
36834	// established connections. Defaults to 1200s if not set.
36835	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
36836
36837	// TcpTimeWaitTimeoutSec: Timeout (in seconds) for TCP connections that
36838	// are in TIME_WAIT state. Defaults to 120s if not set.
36839	TcpTimeWaitTimeoutSec int64 `json:"tcpTimeWaitTimeoutSec,omitempty"`
36840
36841	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
36842	// connections. Defaults to 30s if not set.
36843	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
36844
36845	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
36846	// to 30s if not set.
36847	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
36848
36849	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
36850	// unconditionally include in API requests. By default, fields with
36851	// empty values are omitted from API requests. However, any non-pointer,
36852	// non-interface field appearing in ForceSendFields will be sent to the
36853	// server regardless of whether the field is empty or not. This may be
36854	// used to include empty fields in Patch requests.
36855	ForceSendFields []string `json:"-"`
36856
36857	// NullFields is a list of field names (e.g. "DrainNatIps") to include
36858	// in API requests with the JSON null value. By default, fields with
36859	// empty values are omitted from API requests. However, any field with
36860	// an empty value appearing in NullFields will be sent to the server as
36861	// null. It is an error if a field in this list has a non-empty value.
36862	// This may be used to include null fields in Patch requests.
36863	NullFields []string `json:"-"`
36864}
36865
36866func (s *RouterNat) MarshalJSON() ([]byte, error) {
36867	type NoMethod RouterNat
36868	raw := NoMethod(*s)
36869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36870}
36871
36872// RouterNatLogConfig: Configuration of logging on a NAT.
36873type RouterNatLogConfig struct {
36874	// Enable: Indicates whether or not to export logs. This is false by
36875	// default.
36876	Enable bool `json:"enable,omitempty"`
36877
36878	// Filter: Specify the desired filtering of logs on this NAT. If
36879	// unspecified, logs are exported for all connections handled by this
36880	// NAT. This option can take one of the following values:
36881	// - ERRORS_ONLY: Export logs only for connection failures.
36882	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
36883	// - ALL: Export logs for all connections, successful and unsuccessful.
36884	//
36885	// Possible values:
36886	//   "ALL"
36887	//   "ERRORS_ONLY"
36888	//   "TRANSLATIONS_ONLY"
36889	Filter string `json:"filter,omitempty"`
36890
36891	// ForceSendFields is a list of field names (e.g. "Enable") to
36892	// unconditionally include in API requests. By default, fields with
36893	// empty values are omitted from API requests. However, any non-pointer,
36894	// non-interface field appearing in ForceSendFields will be sent to the
36895	// server regardless of whether the field is empty or not. This may be
36896	// used to include empty fields in Patch requests.
36897	ForceSendFields []string `json:"-"`
36898
36899	// NullFields is a list of field names (e.g. "Enable") to include in API
36900	// requests with the JSON null value. By default, fields with empty
36901	// values are omitted from API requests. However, any field with an
36902	// empty value appearing in NullFields will be sent to the server as
36903	// null. It is an error if a field in this list has a non-empty value.
36904	// This may be used to include null fields in Patch requests.
36905	NullFields []string `json:"-"`
36906}
36907
36908func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
36909	type NoMethod RouterNatLogConfig
36910	raw := NoMethod(*s)
36911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36912}
36913
36914type RouterNatRule struct {
36915	// Action: The action to be enforced for traffic that matches this rule.
36916	Action *RouterNatRuleAction `json:"action,omitempty"`
36917
36918	// Description: An optional description of this rule.
36919	Description string `json:"description,omitempty"`
36920
36921	// Match: CEL expression that specifies the match condition that egress
36922	// traffic from a VM is evaluated against. If it evaluates to true, the
36923	// corresponding ?action? is enforced.
36924	//
36925	// The following examples are valid match
36926	// expressions:
36927	//
36928	// "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip,
36929	// '2.2.0.0/16')"
36930	//
36931	// "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'"
36932	Match string `json:"match,omitempty"`
36933
36934	// Priority: An integer indicating the priority of a rule in the list.
36935	// The priority must be a positive value between 0 and 65000. The
36936	// priority must be unique among rules within a NAT.
36937	Priority int64 `json:"priority,omitempty"`
36938
36939	// ForceSendFields is a list of field names (e.g. "Action") to
36940	// unconditionally include in API requests. By default, fields with
36941	// empty values are omitted from API requests. However, any non-pointer,
36942	// non-interface field appearing in ForceSendFields will be sent to the
36943	// server regardless of whether the field is empty or not. This may be
36944	// used to include empty fields in Patch requests.
36945	ForceSendFields []string `json:"-"`
36946
36947	// NullFields is a list of field names (e.g. "Action") to include in API
36948	// requests with the JSON null value. By default, fields with empty
36949	// values are omitted from API requests. However, any field with an
36950	// empty value appearing in NullFields will be sent to the server as
36951	// null. It is an error if a field in this list has a non-empty value.
36952	// This may be used to include null fields in Patch requests.
36953	NullFields []string `json:"-"`
36954}
36955
36956func (s *RouterNatRule) MarshalJSON() ([]byte, error) {
36957	type NoMethod RouterNatRule
36958	raw := NoMethod(*s)
36959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36960}
36961
36962type RouterNatRuleAction struct {
36963	// SourceNatActiveIps: A list of URLs of the IP resources used for this
36964	// NAT rule. These IP addresses must be valid static external IP
36965	// addresses assigned to the project.
36966	SourceNatActiveIps []string `json:"sourceNatActiveIps,omitempty"`
36967
36968	// SourceNatDrainIps: A list of URLs of the IP resources to be drained.
36969	// These IPs must be valid static external IPs that have been assigned
36970	// to the NAT. These IPs should be used for updating/patching a NAT rule
36971	// only.
36972	SourceNatDrainIps []string `json:"sourceNatDrainIps,omitempty"`
36973
36974	// ForceSendFields is a list of field names (e.g. "SourceNatActiveIps")
36975	// to unconditionally include in API requests. By default, fields with
36976	// empty values are omitted from API requests. However, any non-pointer,
36977	// non-interface field appearing in ForceSendFields will be sent to the
36978	// server regardless of whether the field is empty or not. This may be
36979	// used to include empty fields in Patch requests.
36980	ForceSendFields []string `json:"-"`
36981
36982	// NullFields is a list of field names (e.g. "SourceNatActiveIps") to
36983	// include in API requests with the JSON null value. By default, fields
36984	// with empty values are omitted from API requests. However, any field
36985	// with an empty value appearing in NullFields will be sent to the
36986	// server as null. It is an error if a field in this list has a
36987	// non-empty value. This may be used to include null fields in Patch
36988	// requests.
36989	NullFields []string `json:"-"`
36990}
36991
36992func (s *RouterNatRuleAction) MarshalJSON() ([]byte, error) {
36993	type NoMethod RouterNatRuleAction
36994	raw := NoMethod(*s)
36995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36996}
36997
36998// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
36999// for a subnetwork.
37000type RouterNatSubnetworkToNat struct {
37001	// Name: URL for the subnetwork resource that will use NAT.
37002	Name string `json:"name,omitempty"`
37003
37004	// SecondaryIpRangeNames: A list of the secondary ranges of the
37005	// Subnetwork that are allowed to use NAT. This can be populated only if
37006	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
37007	// source_ip_ranges_to_nat.
37008	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
37009
37010	// SourceIpRangesToNat: Specify the options for NAT ranges in the
37011	// Subnetwork. All options of a single value are valid except
37012	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
37013	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
37014	// Default: [ALL_IP_RANGES]
37015	//
37016	// Possible values:
37017	//   "ALL_IP_RANGES"
37018	//   "LIST_OF_SECONDARY_IP_RANGES"
37019	//   "PRIMARY_IP_RANGE"
37020	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
37021
37022	// ForceSendFields is a list of field names (e.g. "Name") to
37023	// unconditionally include in API requests. By default, fields with
37024	// empty values are omitted from API requests. However, any non-pointer,
37025	// non-interface field appearing in ForceSendFields will be sent to the
37026	// server regardless of whether the field is empty or not. This may be
37027	// used to include empty fields in Patch requests.
37028	ForceSendFields []string `json:"-"`
37029
37030	// NullFields is a list of field names (e.g. "Name") to include in API
37031	// requests with the JSON null value. By default, fields with empty
37032	// values are omitted from API requests. However, any field with an
37033	// empty value appearing in NullFields will be sent to the server as
37034	// null. It is an error if a field in this list has a non-empty value.
37035	// This may be used to include null fields in Patch requests.
37036	NullFields []string `json:"-"`
37037}
37038
37039func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
37040	type NoMethod RouterNatSubnetworkToNat
37041	raw := NoMethod(*s)
37042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37043}
37044
37045type RouterStatus struct {
37046	// BestRoutes: Best routes for this router's network.
37047	BestRoutes []*Route `json:"bestRoutes,omitempty"`
37048
37049	// BestRoutesForRouter: Best routes learned by this router.
37050	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
37051
37052	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
37053
37054	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
37055
37056	// Network: URI of the network to which this router belongs.
37057	Network string `json:"network,omitempty"`
37058
37059	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
37060	// unconditionally include in API requests. By default, fields with
37061	// empty values are omitted from API requests. However, any non-pointer,
37062	// non-interface field appearing in ForceSendFields will be sent to the
37063	// server regardless of whether the field is empty or not. This may be
37064	// used to include empty fields in Patch requests.
37065	ForceSendFields []string `json:"-"`
37066
37067	// NullFields is a list of field names (e.g. "BestRoutes") to include in
37068	// API requests with the JSON null value. By default, fields with empty
37069	// values are omitted from API requests. However, any field with an
37070	// empty value appearing in NullFields will be sent to the server as
37071	// null. It is an error if a field in this list has a non-empty value.
37072	// This may be used to include null fields in Patch requests.
37073	NullFields []string `json:"-"`
37074}
37075
37076func (s *RouterStatus) MarshalJSON() ([]byte, error) {
37077	type NoMethod RouterStatus
37078	raw := NoMethod(*s)
37079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37080}
37081
37082type RouterStatusBgpPeerStatus struct {
37083	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
37084	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
37085
37086	BfdStatus *BfdStatus `json:"bfdStatus,omitempty"`
37087
37088	// IpAddress: IP address of the local BGP interface.
37089	IpAddress string `json:"ipAddress,omitempty"`
37090
37091	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
37092	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
37093
37094	// Name: Name of this BGP peer. Unique within the Routers resource.
37095	Name string `json:"name,omitempty"`
37096
37097	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
37098	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
37099
37100	// PeerIpAddress: IP address of the remote BGP interface.
37101	PeerIpAddress string `json:"peerIpAddress,omitempty"`
37102
37103	// State: BGP state as specified in RFC1771.
37104	State string `json:"state,omitempty"`
37105
37106	// Status: Status of the BGP peer: {UP, DOWN}
37107	//
37108	// Possible values:
37109	//   "DOWN"
37110	//   "UNKNOWN"
37111	//   "UP"
37112	Status string `json:"status,omitempty"`
37113
37114	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
37115	// days, 23 hours, 59 minutes, 59 seconds
37116	Uptime string `json:"uptime,omitempty"`
37117
37118	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
37119	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
37120
37121	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
37122	// unconditionally include in API requests. By default, fields with
37123	// empty values are omitted from API requests. However, any non-pointer,
37124	// non-interface field appearing in ForceSendFields will be sent to the
37125	// server regardless of whether the field is empty or not. This may be
37126	// used to include empty fields in Patch requests.
37127	ForceSendFields []string `json:"-"`
37128
37129	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
37130	// include in API requests with the JSON null value. By default, fields
37131	// with empty values are omitted from API requests. However, any field
37132	// with an empty value appearing in NullFields will be sent to the
37133	// server as null. It is an error if a field in this list has a
37134	// non-empty value. This may be used to include null fields in Patch
37135	// requests.
37136	NullFields []string `json:"-"`
37137}
37138
37139func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
37140	type NoMethod RouterStatusBgpPeerStatus
37141	raw := NoMethod(*s)
37142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37143}
37144
37145// RouterStatusNatStatus: Status of a NAT contained in this router. Next
37146// tag: 9
37147type RouterStatusNatStatus struct {
37148	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
37149	// ["1.1.1.1", "129.2.16.89"]
37150	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
37151
37152	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
37153	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
37154	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
37155
37156	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
37157	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
37158	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
37159
37160	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
37161	// be greater than 0 only if user-specified IPs are NOT enough to allow
37162	// all configured VMs to use NAT. This value is meaningful only when
37163	// auto-allocation of NAT IPs is *not* used.
37164	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
37165
37166	// Name: Unique name of this NAT.
37167	Name string `json:"name,omitempty"`
37168
37169	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
37170	// that can use NAT.
37171	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
37172
37173	// UserAllocatedNatIpResources: A list of fully qualified URLs of
37174	// reserved IP address resources.
37175	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
37176
37177	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
37178	// be raw IP strings like "179.12.26.133".
37179	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
37180
37181	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
37182	// to unconditionally include in API requests. By default, fields with
37183	// empty values are omitted from API requests. However, any non-pointer,
37184	// non-interface field appearing in ForceSendFields will be sent to the
37185	// server regardless of whether the field is empty or not. This may be
37186	// used to include empty fields in Patch requests.
37187	ForceSendFields []string `json:"-"`
37188
37189	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
37190	// include in API requests with the JSON null value. By default, fields
37191	// with empty values are omitted from API requests. However, any field
37192	// with an empty value appearing in NullFields will be sent to the
37193	// server as null. It is an error if a field in this list has a
37194	// non-empty value. This may be used to include null fields in Patch
37195	// requests.
37196	NullFields []string `json:"-"`
37197}
37198
37199func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
37200	type NoMethod RouterStatusNatStatus
37201	raw := NoMethod(*s)
37202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37203}
37204
37205type RouterStatusResponse struct {
37206	// Kind: Type of resource.
37207	Kind string `json:"kind,omitempty"`
37208
37209	Result *RouterStatus `json:"result,omitempty"`
37210
37211	// ServerResponse contains the HTTP response code and headers from the
37212	// server.
37213	googleapi.ServerResponse `json:"-"`
37214
37215	// ForceSendFields is a list of field names (e.g. "Kind") to
37216	// unconditionally include in API requests. By default, fields with
37217	// empty values are omitted from API requests. However, any non-pointer,
37218	// non-interface field appearing in ForceSendFields will be sent to the
37219	// server regardless of whether the field is empty or not. This may be
37220	// used to include empty fields in Patch requests.
37221	ForceSendFields []string `json:"-"`
37222
37223	// NullFields is a list of field names (e.g. "Kind") to include in API
37224	// requests with the JSON null value. By default, fields with empty
37225	// values are omitted from API requests. However, any field with an
37226	// empty value appearing in NullFields will be sent to the server as
37227	// null. It is an error if a field in this list has a non-empty value.
37228	// This may be used to include null fields in Patch requests.
37229	NullFields []string `json:"-"`
37230}
37231
37232func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
37233	type NoMethod RouterStatusResponse
37234	raw := NoMethod(*s)
37235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37236}
37237
37238type RoutersPreviewResponse struct {
37239	// Resource: Preview of given router.
37240	Resource *Router `json:"resource,omitempty"`
37241
37242	// ServerResponse contains the HTTP response code and headers from the
37243	// server.
37244	googleapi.ServerResponse `json:"-"`
37245
37246	// ForceSendFields is a list of field names (e.g. "Resource") to
37247	// unconditionally include in API requests. By default, fields with
37248	// empty values are omitted from API requests. However, any non-pointer,
37249	// non-interface field appearing in ForceSendFields will be sent to the
37250	// server regardless of whether the field is empty or not. This may be
37251	// used to include empty fields in Patch requests.
37252	ForceSendFields []string `json:"-"`
37253
37254	// NullFields is a list of field names (e.g. "Resource") to include in
37255	// API requests with the JSON null value. By default, fields with empty
37256	// values are omitted from API requests. However, any field with an
37257	// empty value appearing in NullFields will be sent to the server as
37258	// null. It is an error if a field in this list has a non-empty value.
37259	// This may be used to include null fields in Patch requests.
37260	NullFields []string `json:"-"`
37261}
37262
37263func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
37264	type NoMethod RoutersPreviewResponse
37265	raw := NoMethod(*s)
37266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37267}
37268
37269type RoutersScopedList struct {
37270	// Routers: A list of routers contained in this scope.
37271	Routers []*Router `json:"routers,omitempty"`
37272
37273	// Warning: Informational warning which replaces the list of routers
37274	// when the list is empty.
37275	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
37276
37277	// ForceSendFields is a list of field names (e.g. "Routers") to
37278	// unconditionally include in API requests. By default, fields with
37279	// empty values are omitted from API requests. However, any non-pointer,
37280	// non-interface field appearing in ForceSendFields will be sent to the
37281	// server regardless of whether the field is empty or not. This may be
37282	// used to include empty fields in Patch requests.
37283	ForceSendFields []string `json:"-"`
37284
37285	// NullFields is a list of field names (e.g. "Routers") to include in
37286	// API requests with the JSON null value. By default, fields with empty
37287	// values are omitted from API requests. However, any field with an
37288	// empty value appearing in NullFields will be sent to the server as
37289	// null. It is an error if a field in this list has a non-empty value.
37290	// This may be used to include null fields in Patch requests.
37291	NullFields []string `json:"-"`
37292}
37293
37294func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
37295	type NoMethod RoutersScopedList
37296	raw := NoMethod(*s)
37297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37298}
37299
37300// RoutersScopedListWarning: Informational warning which replaces the
37301// list of routers when the list is empty.
37302type RoutersScopedListWarning struct {
37303	// Code: [Output Only] A warning code, if applicable. For example,
37304	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37305	// the response.
37306	//
37307	// Possible values:
37308	//   "CLEANUP_FAILED"
37309	//   "DEPRECATED_RESOURCE_USED"
37310	//   "DEPRECATED_TYPE_USED"
37311	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37312	//   "EXPERIMENTAL_TYPE_USED"
37313	//   "EXTERNAL_API_WARNING"
37314	//   "FIELD_VALUE_OVERRIDEN"
37315	//   "INJECTED_KERNELS_DEPRECATED"
37316	//   "MISSING_TYPE_DEPENDENCY"
37317	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37318	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37319	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37320	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37321	//   "NEXT_HOP_NOT_RUNNING"
37322	//   "NOT_CRITICAL_ERROR"
37323	//   "NO_RESULTS_ON_PAGE"
37324	//   "PARTIAL_SUCCESS"
37325	//   "REQUIRED_TOS_AGREEMENT"
37326	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37327	//   "RESOURCE_NOT_DELETED"
37328	//   "SCHEMA_VALIDATION_IGNORED"
37329	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37330	//   "UNDECLARED_PROPERTIES"
37331	//   "UNREACHABLE"
37332	Code string `json:"code,omitempty"`
37333
37334	// Data: [Output Only] Metadata about this warning in key: value format.
37335	// For example:
37336	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37337	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
37338
37339	// Message: [Output Only] A human-readable description of the warning
37340	// code.
37341	Message string `json:"message,omitempty"`
37342
37343	// ForceSendFields is a list of field names (e.g. "Code") to
37344	// unconditionally include in API requests. By default, fields with
37345	// empty values are omitted from API requests. However, any non-pointer,
37346	// non-interface field appearing in ForceSendFields will be sent to the
37347	// server regardless of whether the field is empty or not. This may be
37348	// used to include empty fields in Patch requests.
37349	ForceSendFields []string `json:"-"`
37350
37351	// NullFields is a list of field names (e.g. "Code") to include in API
37352	// requests with the JSON null value. By default, fields with empty
37353	// values are omitted from API requests. However, any field with an
37354	// empty value appearing in NullFields will be sent to the server as
37355	// null. It is an error if a field in this list has a non-empty value.
37356	// This may be used to include null fields in Patch requests.
37357	NullFields []string `json:"-"`
37358}
37359
37360func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
37361	type NoMethod RoutersScopedListWarning
37362	raw := NoMethod(*s)
37363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37364}
37365
37366type RoutersScopedListWarningData struct {
37367	// Key: [Output Only] A key that provides more detail on the warning
37368	// being returned. For example, for warnings where there are no results
37369	// in a list request for a particular zone, this key might be scope and
37370	// the key value might be the zone name. Other examples might be a key
37371	// indicating a deprecated resource and a suggested replacement, or a
37372	// warning about invalid network settings (for example, if an instance
37373	// attempts to perform IP forwarding but is not enabled for IP
37374	// forwarding).
37375	Key string `json:"key,omitempty"`
37376
37377	// Value: [Output Only] A warning data value corresponding to the key.
37378	Value string `json:"value,omitempty"`
37379
37380	// ForceSendFields is a list of field names (e.g. "Key") to
37381	// unconditionally include in API requests. By default, fields with
37382	// empty values are omitted from API requests. However, any non-pointer,
37383	// non-interface field appearing in ForceSendFields will be sent to the
37384	// server regardless of whether the field is empty or not. This may be
37385	// used to include empty fields in Patch requests.
37386	ForceSendFields []string `json:"-"`
37387
37388	// NullFields is a list of field names (e.g. "Key") to include in API
37389	// requests with the JSON null value. By default, fields with empty
37390	// values are omitted from API requests. However, any field with an
37391	// empty value appearing in NullFields will be sent to the server as
37392	// null. It is an error if a field in this list has a non-empty value.
37393	// This may be used to include null fields in Patch requests.
37394	NullFields []string `json:"-"`
37395}
37396
37397func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
37398	type NoMethod RoutersScopedListWarningData
37399	raw := NoMethod(*s)
37400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37401}
37402
37403// Rule: A rule to be applied in a Policy.
37404type Rule struct {
37405	// Action: Required
37406	//
37407	// Possible values:
37408	//   "ALLOW"
37409	//   "ALLOW_WITH_LOG"
37410	//   "DENY"
37411	//   "DENY_WITH_LOG"
37412	//   "LOG"
37413	//   "NO_ACTION"
37414	Action string `json:"action,omitempty"`
37415
37416	// Conditions: Additional restrictions that must be met. All conditions
37417	// must pass for the rule to match.
37418	Conditions []*Condition `json:"conditions,omitempty"`
37419
37420	// Description: Human-readable description of the rule.
37421	Description string `json:"description,omitempty"`
37422
37423	// Ins: If one or more 'in' clauses are specified, the rule matches if
37424	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
37425	Ins []string `json:"ins,omitempty"`
37426
37427	// LogConfigs: The config returned to callers of
37428	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
37429	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
37430
37431	// NotIns: If one or more 'not_in' clauses are specified, the rule
37432	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
37433	// entries.
37434	NotIns []string `json:"notIns,omitempty"`
37435
37436	// Permissions: A permission is a string of form '..' (e.g.,
37437	// 'storage.buckets.list'). A value of '*' matches all permissions, and
37438	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
37439	Permissions []string `json:"permissions,omitempty"`
37440
37441	// ForceSendFields is a list of field names (e.g. "Action") to
37442	// unconditionally include in API requests. By default, fields with
37443	// empty values are omitted from API requests. However, any non-pointer,
37444	// non-interface field appearing in ForceSendFields will be sent to the
37445	// server regardless of whether the field is empty or not. This may be
37446	// used to include empty fields in Patch requests.
37447	ForceSendFields []string `json:"-"`
37448
37449	// NullFields is a list of field names (e.g. "Action") to include in API
37450	// requests with the JSON null value. By default, fields with empty
37451	// values are omitted from API requests. However, any field with an
37452	// empty value appearing in NullFields will be sent to the server as
37453	// null. It is an error if a field in this list has a non-empty value.
37454	// This may be used to include null fields in Patch requests.
37455	NullFields []string `json:"-"`
37456}
37457
37458func (s *Rule) MarshalJSON() ([]byte, error) {
37459	type NoMethod Rule
37460	raw := NoMethod(*s)
37461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37462}
37463
37464type SSLHealthCheck struct {
37465	// Port: The TCP port number for the health check request. The default
37466	// value is 443. Valid values are 1 through 65535.
37467	Port int64 `json:"port,omitempty"`
37468
37469	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
37470	// both port and port_name are defined, port takes precedence.
37471	PortName string `json:"portName,omitempty"`
37472
37473	// PortSpecification: Specifies how port is selected for health
37474	// checking, can be one of following values:
37475	// USE_FIXED_PORT: The port number in port is used for health
37476	// checking.
37477	// USE_NAMED_PORT: The portName is used for health
37478	// checking.
37479	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
37480	// each network endpoint is used for health checking. For other
37481	// backends, the port or named port specified in the Backend Service is
37482	// used for health checking.
37483	//
37484	//
37485	// If not specified, SSL health check follows behavior specified in port
37486	// and portName fields.
37487	//
37488	// Possible values:
37489	//   "USE_FIXED_PORT"
37490	//   "USE_NAMED_PORT"
37491	//   "USE_SERVING_PORT"
37492	PortSpecification string `json:"portSpecification,omitempty"`
37493
37494	// ProxyHeader: Specifies the type of proxy header to append before
37495	// sending data to the backend, either NONE or PROXY_V1. The default is
37496	// NONE.
37497	//
37498	// Possible values:
37499	//   "NONE"
37500	//   "PROXY_V1"
37501	ProxyHeader string `json:"proxyHeader,omitempty"`
37502
37503	// Request: The application data to send once the SSL connection has
37504	// been established (default value is empty). If both request and
37505	// response are empty, the connection establishment alone will indicate
37506	// health. The request data can only be ASCII.
37507	Request string `json:"request,omitempty"`
37508
37509	// Response: The bytes to match against the beginning of the response
37510	// data. If left empty (the default value), any response will indicate
37511	// health. The response data can only be ASCII.
37512	Response string `json:"response,omitempty"`
37513
37514	// ForceSendFields is a list of field names (e.g. "Port") to
37515	// unconditionally include in API requests. By default, fields with
37516	// empty values are omitted from API requests. However, any non-pointer,
37517	// non-interface field appearing in ForceSendFields will be sent to the
37518	// server regardless of whether the field is empty or not. This may be
37519	// used to include empty fields in Patch requests.
37520	ForceSendFields []string `json:"-"`
37521
37522	// NullFields is a list of field names (e.g. "Port") to include in API
37523	// requests with the JSON null value. By default, fields with empty
37524	// values are omitted from API requests. However, any field with an
37525	// empty value appearing in NullFields will be sent to the server as
37526	// null. It is an error if a field in this list has a non-empty value.
37527	// This may be used to include null fields in Patch requests.
37528	NullFields []string `json:"-"`
37529}
37530
37531func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
37532	type NoMethod SSLHealthCheck
37533	raw := NoMethod(*s)
37534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37535}
37536
37537// SavedAttachedDisk: An instance-attached disk resource.
37538type SavedAttachedDisk struct {
37539	// AutoDelete: Specifies whether the disk will be auto-deleted when the
37540	// instance is deleted (but not when the disk is detached from the
37541	// instance).
37542	AutoDelete bool `json:"autoDelete,omitempty"`
37543
37544	// Boot: Indicates that this is a boot disk. The virtual machine will
37545	// use the first partition of the disk for its root filesystem.
37546	Boot bool `json:"boot,omitempty"`
37547
37548	// DeviceName: Specifies the name of the disk attached to the source
37549	// instance.
37550	DeviceName string `json:"deviceName,omitempty"`
37551
37552	// DiskEncryptionKey: The encryption key for the disk.
37553	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
37554
37555	// DiskSizeGb: The size of the disk in base-2 GB.
37556	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
37557
37558	// DiskType: [Output Only] URL of the disk type resource. For example:
37559	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
37560	DiskType string `json:"diskType,omitempty"`
37561
37562	// GuestOsFeatures: A list of features to enable on the guest operating
37563	// system. Applicable only for bootable images. Read  Enabling guest
37564	// operating system features to see a list of available options.
37565	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
37566
37567	// Index: Specifies zero-based index of the disk that is attached to the
37568	// source instance.
37569	Index int64 `json:"index,omitempty"`
37570
37571	// Interface: Specifies the disk interface to use for attaching this
37572	// disk, which is either SCSI or NVME.
37573	//
37574	// Possible values:
37575	//   "NVDIMM"
37576	//   "NVME"
37577	//   "SCSI"
37578	Interface string `json:"interface,omitempty"`
37579
37580	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
37581	// for attached disks.
37582	Kind string `json:"kind,omitempty"`
37583
37584	// Licenses: [Output Only] Any valid publicly visible licenses.
37585	Licenses []string `json:"licenses,omitempty"`
37586
37587	// Mode: The mode in which this disk is attached to the source instance,
37588	// either READ_WRITE or READ_ONLY.
37589	//
37590	// Possible values:
37591	//   "READ_ONLY"
37592	//   "READ_WRITE"
37593	Mode string `json:"mode,omitempty"`
37594
37595	// Source: Specifies a URL of the disk attached to the source instance.
37596	Source string `json:"source,omitempty"`
37597
37598	// StorageBytes: [Output Only] A size of the storage used by the disk's
37599	// snapshot by this machine image.
37600	StorageBytes int64 `json:"storageBytes,omitempty,string"`
37601
37602	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
37603	// is in a stable state or it is being adjusted as a result of shared
37604	// storage reallocation. This status can either be UPDATING, meaning the
37605	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
37606	// size of the snapshot is up-to-date.
37607	//
37608	// Possible values:
37609	//   "UPDATING"
37610	//   "UP_TO_DATE"
37611	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
37612
37613	// Type: Specifies the type of the attached disk, either SCRATCH or
37614	// PERSISTENT.
37615	//
37616	// Possible values:
37617	//   "PERSISTENT"
37618	//   "SCRATCH"
37619	Type string `json:"type,omitempty"`
37620
37621	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
37622	// unconditionally include in API requests. By default, fields with
37623	// empty values are omitted from API requests. However, any non-pointer,
37624	// non-interface field appearing in ForceSendFields will be sent to the
37625	// server regardless of whether the field is empty or not. This may be
37626	// used to include empty fields in Patch requests.
37627	ForceSendFields []string `json:"-"`
37628
37629	// NullFields is a list of field names (e.g. "AutoDelete") to include in
37630	// API requests with the JSON null value. By default, fields with empty
37631	// values are omitted from API requests. However, any field with an
37632	// empty value appearing in NullFields will be sent to the server as
37633	// null. It is an error if a field in this list has a non-empty value.
37634	// This may be used to include null fields in Patch requests.
37635	NullFields []string `json:"-"`
37636}
37637
37638func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) {
37639	type NoMethod SavedAttachedDisk
37640	raw := NoMethod(*s)
37641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37642}
37643
37644// Scheduling: Sets the scheduling options for an Instance. NextID: 10
37645type Scheduling struct {
37646	// AutomaticRestart: Specifies whether the instance should be
37647	// automatically restarted if it is terminated by Compute Engine (not
37648	// terminated by a user). You can only set the automatic restart option
37649	// for standard instances. Preemptible instances cannot be automatically
37650	// restarted.
37651	//
37652	// By default, this is set to true so an instance is automatically
37653	// restarted if it is terminated by Compute Engine.
37654	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
37655
37656	// LatencyTolerant: Defines whether the instance is tolerant of higher
37657	// cpu latency. This can only be set during instance creation, or when
37658	// the instance is not currently running. It must not be set if the
37659	// preemptible option is also set.
37660	LatencyTolerant bool `json:"latencyTolerant,omitempty"`
37661
37662	// LocationHint: An opaque location hint used to place the instance
37663	// close to other resources. This field is for use by internal tools
37664	// that use the public API.
37665	LocationHint string `json:"locationHint,omitempty"`
37666
37667	// LongTermRelease: Compute Engine Long Term Release. When specified,
37668	// VMs that have this policy become long term release (internal: stable
37669	// fleet) VMs.
37670	//
37671	// For all VM shapes, this should result in fewer disruptions due to
37672	// software updates and greater predictability via 1 week extended
37673	// notifications.
37674	//
37675	// For GPU VMs, this should also result in an 2 week uptime guarantee.
37676	// See go/stable-fleet-gpus-design for more details.
37677	LongTermRelease bool `json:"longTermRelease,omitempty"`
37678
37679	// MinNodeCpus: The minimum number of virtual CPUs this instance will
37680	// consume when running on a sole-tenant node.
37681	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
37682
37683	// NodeAffinities: A set of node affinity and anti-affinity
37684	// configurations. Refer to Configuring node affinity for more
37685	// information. Overrides reservationAffinity.
37686	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
37687
37688	// OnHostMaintenance: Defines the maintenance behavior for this
37689	// instance. For standard instances, the default behavior is MIGRATE.
37690	// For preemptible instances, the default and only possible behavior is
37691	// TERMINATE. For more information, see Setting Instance Scheduling
37692	// Options.
37693	//
37694	// Possible values:
37695	//   "MIGRATE"
37696	//   "TERMINATE"
37697	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
37698
37699	// Preemptible: Defines whether the instance is preemptible. This can
37700	// only be set during instance creation, it cannot be set or changed
37701	// after the instance has been created.
37702	Preemptible bool `json:"preemptible,omitempty"`
37703
37704	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
37705	// unconditionally include in API requests. By default, fields with
37706	// empty values are omitted from API requests. However, any non-pointer,
37707	// non-interface field appearing in ForceSendFields will be sent to the
37708	// server regardless of whether the field is empty or not. This may be
37709	// used to include empty fields in Patch requests.
37710	ForceSendFields []string `json:"-"`
37711
37712	// NullFields is a list of field names (e.g. "AutomaticRestart") to
37713	// include in API requests with the JSON null value. By default, fields
37714	// with empty values are omitted from API requests. However, any field
37715	// with an empty value appearing in NullFields will be sent to the
37716	// server as null. It is an error if a field in this list has a
37717	// non-empty value. This may be used to include null fields in Patch
37718	// requests.
37719	NullFields []string `json:"-"`
37720}
37721
37722func (s *Scheduling) MarshalJSON() ([]byte, error) {
37723	type NoMethod Scheduling
37724	raw := NoMethod(*s)
37725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37726}
37727
37728// SchedulingNodeAffinity: Node Affinity: the configuration of desired
37729// nodes onto which this Instance could be scheduled.
37730type SchedulingNodeAffinity struct {
37731	// Key: Corresponds to the label key of Node resource.
37732	Key string `json:"key,omitempty"`
37733
37734	// Operator: Defines the operation of node selection. Valid operators
37735	// are IN for affinity and NOT_IN for anti-affinity.
37736	//
37737	// Possible values:
37738	//   "IN"
37739	//   "NOT_IN"
37740	//   "OPERATOR_UNSPECIFIED"
37741	Operator string `json:"operator,omitempty"`
37742
37743	// Values: Corresponds to the label values of Node resource.
37744	Values []string `json:"values,omitempty"`
37745
37746	// ForceSendFields is a list of field names (e.g. "Key") to
37747	// unconditionally include in API requests. By default, fields with
37748	// empty values are omitted from API requests. However, any non-pointer,
37749	// non-interface field appearing in ForceSendFields will be sent to the
37750	// server regardless of whether the field is empty or not. This may be
37751	// used to include empty fields in Patch requests.
37752	ForceSendFields []string `json:"-"`
37753
37754	// NullFields is a list of field names (e.g. "Key") to include in API
37755	// requests with the JSON null value. By default, fields with empty
37756	// values are omitted from API requests. However, any field with an
37757	// empty value appearing in NullFields will be sent to the server as
37758	// null. It is an error if a field in this list has a non-empty value.
37759	// This may be used to include null fields in Patch requests.
37760	NullFields []string `json:"-"`
37761}
37762
37763func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
37764	type NoMethod SchedulingNodeAffinity
37765	raw := NoMethod(*s)
37766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37767}
37768
37769// Screenshot: An instance's screenshot.
37770type Screenshot struct {
37771	// Contents: [Output Only] The Base64-encoded screenshot data.
37772	Contents string `json:"contents,omitempty"`
37773
37774	// Kind: [Output Only] Type of the resource. Always compute#screenshot
37775	// for the screenshots.
37776	Kind string `json:"kind,omitempty"`
37777
37778	// ServerResponse contains the HTTP response code and headers from the
37779	// server.
37780	googleapi.ServerResponse `json:"-"`
37781
37782	// ForceSendFields is a list of field names (e.g. "Contents") to
37783	// unconditionally include in API requests. By default, fields with
37784	// empty values are omitted from API requests. However, any non-pointer,
37785	// non-interface field appearing in ForceSendFields will be sent to the
37786	// server regardless of whether the field is empty or not. This may be
37787	// used to include empty fields in Patch requests.
37788	ForceSendFields []string `json:"-"`
37789
37790	// NullFields is a list of field names (e.g. "Contents") to include in
37791	// API requests with the JSON null value. By default, fields with empty
37792	// values are omitted from API requests. However, any field with an
37793	// empty value appearing in NullFields will be sent to the server as
37794	// null. It is an error if a field in this list has a non-empty value.
37795	// This may be used to include null fields in Patch requests.
37796	NullFields []string `json:"-"`
37797}
37798
37799func (s *Screenshot) MarshalJSON() ([]byte, error) {
37800	type NoMethod Screenshot
37801	raw := NoMethod(*s)
37802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37803}
37804
37805// SdsConfig: [Deprecated] The configuration to access the SDS server.
37806// The configuration to access the SDS server.
37807type SdsConfig struct {
37808	// GrpcServiceConfig: The configuration to access the SDS server over
37809	// GRPC.
37810	GrpcServiceConfig *GrpcServiceConfig `json:"grpcServiceConfig,omitempty"`
37811
37812	// ForceSendFields is a list of field names (e.g. "GrpcServiceConfig")
37813	// to unconditionally include in API requests. By default, fields with
37814	// empty values are omitted from API requests. However, any non-pointer,
37815	// non-interface field appearing in ForceSendFields will be sent to the
37816	// server regardless of whether the field is empty or not. This may be
37817	// used to include empty fields in Patch requests.
37818	ForceSendFields []string `json:"-"`
37819
37820	// NullFields is a list of field names (e.g. "GrpcServiceConfig") to
37821	// include in API requests with the JSON null value. By default, fields
37822	// with empty values are omitted from API requests. However, any field
37823	// with an empty value appearing in NullFields will be sent to the
37824	// server as null. It is an error if a field in this list has a
37825	// non-empty value. This may be used to include null fields in Patch
37826	// requests.
37827	NullFields []string `json:"-"`
37828}
37829
37830func (s *SdsConfig) MarshalJSON() ([]byte, error) {
37831	type NoMethod SdsConfig
37832	raw := NoMethod(*s)
37833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37834}
37835
37836type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
37837	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
37838
37839	// ServerResponse contains the HTTP response code and headers from the
37840	// server.
37841	googleapi.ServerResponse `json:"-"`
37842
37843	// ForceSendFields is a list of field names (e.g.
37844	// "PreconfiguredExpressionSets") to unconditionally include in API
37845	// requests. By default, fields with empty values are omitted from API
37846	// requests. However, any non-pointer, non-interface field appearing in
37847	// ForceSendFields will be sent to the server regardless of whether the
37848	// field is empty or not. This may be used to include empty fields in
37849	// Patch requests.
37850	ForceSendFields []string `json:"-"`
37851
37852	// NullFields is a list of field names (e.g.
37853	// "PreconfiguredExpressionSets") to include in API requests with the
37854	// JSON null value. By default, fields with empty values are omitted
37855	// from API requests. However, any field with an empty value appearing
37856	// in NullFields will be sent to the server as null. It is an error if a
37857	// field in this list has a non-empty value. This may be used to include
37858	// null fields in Patch requests.
37859	NullFields []string `json:"-"`
37860}
37861
37862func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
37863	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
37864	raw := NoMethod(*s)
37865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37866}
37867
37868type SecurityPoliciesWafConfig struct {
37869	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
37870
37871	// ForceSendFields is a list of field names (e.g. "WafRules") to
37872	// unconditionally include in API requests. By default, fields with
37873	// empty values are omitted from API requests. However, any non-pointer,
37874	// non-interface field appearing in ForceSendFields will be sent to the
37875	// server regardless of whether the field is empty or not. This may be
37876	// used to include empty fields in Patch requests.
37877	ForceSendFields []string `json:"-"`
37878
37879	// NullFields is a list of field names (e.g. "WafRules") to include in
37880	// API requests with the JSON null value. By default, fields with empty
37881	// values are omitted from API requests. However, any field with an
37882	// empty value appearing in NullFields will be sent to the server as
37883	// null. It is an error if a field in this list has a non-empty value.
37884	// This may be used to include null fields in Patch requests.
37885	NullFields []string `json:"-"`
37886}
37887
37888func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
37889	type NoMethod SecurityPoliciesWafConfig
37890	raw := NoMethod(*s)
37891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37892}
37893
37894// SecurityPolicy: Represents a Cloud Armor Security Policy
37895// resource.
37896//
37897// Only external backend services that use load balancers can reference
37898// a Security Policy. For more information, read  Cloud Armor Security
37899// Policy Concepts. (== resource_for {$api_version}.securityPolicies ==)
37900type SecurityPolicy struct {
37901	// Associations: A list of associations that belong to this policy.
37902	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
37903
37904	CloudArmorConfig *SecurityPolicyCloudArmorConfig `json:"cloudArmorConfig,omitempty"`
37905
37906	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37907	// format.
37908	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37909
37910	// Description: An optional description of this resource. Provide this
37911	// property when you create the resource.
37912	Description string `json:"description,omitempty"`
37913
37914	// DisplayName: User-provided name of the Organization security plicy.
37915	// The name should be unique in the organization in which the security
37916	// policy is created. This should only be used when SecurityPolicyType
37917	// is FIREWALL. The name must be 1-63 characters long, and comply with
37918	// RFC1035. Specifically, the name must be 1-63 characters long and
37919	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37920	// the first character must be a lowercase letter, and all following
37921	// characters must be a dash, lowercase letter, or digit, except the
37922	// last character, which cannot be a dash.
37923	DisplayName string `json:"displayName,omitempty"`
37924
37925	// Fingerprint: Specifies a fingerprint for this resource, which is
37926	// essentially a hash of the metadata's contents and used for optimistic
37927	// locking. The fingerprint is initially generated by Compute Engine and
37928	// changes after every request to modify or update metadata. You must
37929	// always provide an up-to-date fingerprint hash in order to update or
37930	// change metadata, otherwise the request will fail with error 412
37931	// conditionNotMet.
37932	//
37933	// To see the latest fingerprint, make get() request to the security
37934	// policy.
37935	Fingerprint string `json:"fingerprint,omitempty"`
37936
37937	// Id: [Output Only] The unique identifier for the resource. This
37938	// identifier is defined by the server.
37939	Id uint64 `json:"id,omitempty,string"`
37940
37941	// Kind: [Output only] Type of the resource. Always
37942	// compute#securityPolicyfor security policies
37943	Kind string `json:"kind,omitempty"`
37944
37945	// LabelFingerprint: A fingerprint for the labels being applied to this
37946	// security policy, which is essentially a hash of the labels set used
37947	// for optimistic locking. The fingerprint is initially generated by
37948	// Compute Engine and changes after every request to modify or update
37949	// labels. You must always provide an up-to-date fingerprint hash in
37950	// order to update or change labels.
37951	//
37952	// To see the latest fingerprint, make get() request to the security
37953	// policy.
37954	LabelFingerprint string `json:"labelFingerprint,omitempty"`
37955
37956	// Labels: Labels for this resource. These can only be added or modified
37957	// by the setLabels method. Each label key/value pair must comply with
37958	// RFC1035. Label values may be empty.
37959	Labels map[string]string `json:"labels,omitempty"`
37960
37961	// Name: Name of the resource. Provided by the client when the resource
37962	// is created. The name must be 1-63 characters long, and comply with
37963	// RFC1035. Specifically, the name must be 1-63 characters long and
37964	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37965	// the first character must be a lowercase letter, and all following
37966	// characters must be a dash, lowercase letter, or digit, except the
37967	// last character, which cannot be a dash.
37968	Name string `json:"name,omitempty"`
37969
37970	// Parent: [Output Only] The parent of the security policy.
37971	Parent string `json:"parent,omitempty"`
37972
37973	// RuleTupleCount: [Output Only] Total count of all security policy rule
37974	// tuples. A security policy can not exceed a set number of tuples.
37975	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
37976
37977	// Rules: A list of rules that belong to this policy. There must always
37978	// be a default rule (rule with priority 2147483647 and match "*"). If
37979	// no rules are provided when creating a security policy, a default rule
37980	// with action "allow" will be added.
37981	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
37982
37983	// SelfLink: [Output Only] Server-defined URL for the resource.
37984	SelfLink string `json:"selfLink,omitempty"`
37985
37986	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
37987	// with the resource id.
37988	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
37989
37990	// Type: The type indicates the intended use of the security policy.
37991	// CLOUD_ARMOR policies apply to backend services. FIREWALL policies
37992	// apply to organizations.
37993	//
37994	// Possible values:
37995	//   "CLOUD_ARMOR"
37996	//   "FIREWALL"
37997	Type string `json:"type,omitempty"`
37998
37999	// ServerResponse contains the HTTP response code and headers from the
38000	// server.
38001	googleapi.ServerResponse `json:"-"`
38002
38003	// ForceSendFields is a list of field names (e.g. "Associations") to
38004	// unconditionally include in API requests. By default, fields with
38005	// empty values are omitted from API requests. However, any non-pointer,
38006	// non-interface field appearing in ForceSendFields will be sent to the
38007	// server regardless of whether the field is empty or not. This may be
38008	// used to include empty fields in Patch requests.
38009	ForceSendFields []string `json:"-"`
38010
38011	// NullFields is a list of field names (e.g. "Associations") to include
38012	// in API requests with the JSON null value. By default, fields with
38013	// empty values are omitted from API requests. However, any field with
38014	// an empty value appearing in NullFields will be sent to the server as
38015	// null. It is an error if a field in this list has a non-empty value.
38016	// This may be used to include null fields in Patch requests.
38017	NullFields []string `json:"-"`
38018}
38019
38020func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
38021	type NoMethod SecurityPolicy
38022	raw := NoMethod(*s)
38023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38024}
38025
38026type SecurityPolicyAssociation struct {
38027	// AttachmentId: The resource that the security policy is attached to.
38028	AttachmentId string `json:"attachmentId,omitempty"`
38029
38030	// DisplayName: [Output Only] The display name of the security policy of
38031	// the association.
38032	DisplayName string `json:"displayName,omitempty"`
38033
38034	// Name: The name for an association.
38035	Name string `json:"name,omitempty"`
38036
38037	// SecurityPolicyId: [Output Only] The security policy ID of the
38038	// association.
38039	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
38040
38041	// ServerResponse contains the HTTP response code and headers from the
38042	// server.
38043	googleapi.ServerResponse `json:"-"`
38044
38045	// ForceSendFields is a list of field names (e.g. "AttachmentId") to
38046	// unconditionally include in API requests. By default, fields with
38047	// empty values are omitted from API requests. However, any non-pointer,
38048	// non-interface field appearing in ForceSendFields will be sent to the
38049	// server regardless of whether the field is empty or not. This may be
38050	// used to include empty fields in Patch requests.
38051	ForceSendFields []string `json:"-"`
38052
38053	// NullFields is a list of field names (e.g. "AttachmentId") to include
38054	// in API requests with the JSON null value. By default, fields with
38055	// empty values are omitted from API requests. However, any field with
38056	// an empty value appearing in NullFields will be sent to the server as
38057	// null. It is an error if a field in this list has a non-empty value.
38058	// This may be used to include null fields in Patch requests.
38059	NullFields []string `json:"-"`
38060}
38061
38062func (s *SecurityPolicyAssociation) MarshalJSON() ([]byte, error) {
38063	type NoMethod SecurityPolicyAssociation
38064	raw := NoMethod(*s)
38065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38066}
38067
38068// SecurityPolicyCloudArmorConfig: Configuration options for Cloud
38069// Armor.
38070type SecurityPolicyCloudArmorConfig struct {
38071	// EnableMl: If set to true, enables Cloud Armor Machine Learning.
38072	EnableMl bool `json:"enableMl,omitempty"`
38073
38074	// ForceSendFields is a list of field names (e.g. "EnableMl") to
38075	// unconditionally include in API requests. By default, fields with
38076	// empty values are omitted from API requests. However, any non-pointer,
38077	// non-interface field appearing in ForceSendFields will be sent to the
38078	// server regardless of whether the field is empty or not. This may be
38079	// used to include empty fields in Patch requests.
38080	ForceSendFields []string `json:"-"`
38081
38082	// NullFields is a list of field names (e.g. "EnableMl") to include in
38083	// API requests with the JSON null value. By default, fields with empty
38084	// values are omitted from API requests. However, any field with an
38085	// empty value appearing in NullFields will be sent to the server as
38086	// null. It is an error if a field in this list has a non-empty value.
38087	// This may be used to include null fields in Patch requests.
38088	NullFields []string `json:"-"`
38089}
38090
38091func (s *SecurityPolicyCloudArmorConfig) MarshalJSON() ([]byte, error) {
38092	type NoMethod SecurityPolicyCloudArmorConfig
38093	raw := NoMethod(*s)
38094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38095}
38096
38097type SecurityPolicyList struct {
38098	// Id: [Output Only] Unique identifier for the resource; defined by the
38099	// server.
38100	Id string `json:"id,omitempty"`
38101
38102	// Items: A list of SecurityPolicy resources.
38103	Items []*SecurityPolicy `json:"items,omitempty"`
38104
38105	// Kind: [Output Only] Type of resource. Always
38106	// compute#securityPolicyList for listsof securityPolicies
38107	Kind string `json:"kind,omitempty"`
38108
38109	// NextPageToken: [Output Only] This token allows you to get the next
38110	// page of results for list requests. If the number of results is larger
38111	// than maxResults, use the nextPageToken as a value for the query
38112	// parameter pageToken in the next list request. Subsequent list
38113	// requests will have their own nextPageToken to continue paging through
38114	// the results.
38115	NextPageToken string `json:"nextPageToken,omitempty"`
38116
38117	// Warning: [Output Only] Informational warning message.
38118	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
38119
38120	// ServerResponse contains the HTTP response code and headers from the
38121	// server.
38122	googleapi.ServerResponse `json:"-"`
38123
38124	// ForceSendFields is a list of field names (e.g. "Id") to
38125	// unconditionally include in API requests. By default, fields with
38126	// empty values are omitted from API requests. However, any non-pointer,
38127	// non-interface field appearing in ForceSendFields will be sent to the
38128	// server regardless of whether the field is empty or not. This may be
38129	// used to include empty fields in Patch requests.
38130	ForceSendFields []string `json:"-"`
38131
38132	// NullFields is a list of field names (e.g. "Id") to include in API
38133	// requests with the JSON null value. By default, fields with empty
38134	// values are omitted from API requests. However, any field with an
38135	// empty value appearing in NullFields will be sent to the server as
38136	// null. It is an error if a field in this list has a non-empty value.
38137	// This may be used to include null fields in Patch requests.
38138	NullFields []string `json:"-"`
38139}
38140
38141func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
38142	type NoMethod SecurityPolicyList
38143	raw := NoMethod(*s)
38144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38145}
38146
38147// SecurityPolicyListWarning: [Output Only] Informational warning
38148// message.
38149type SecurityPolicyListWarning struct {
38150	// Code: [Output Only] A warning code, if applicable. For example,
38151	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38152	// the response.
38153	//
38154	// Possible values:
38155	//   "CLEANUP_FAILED"
38156	//   "DEPRECATED_RESOURCE_USED"
38157	//   "DEPRECATED_TYPE_USED"
38158	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38159	//   "EXPERIMENTAL_TYPE_USED"
38160	//   "EXTERNAL_API_WARNING"
38161	//   "FIELD_VALUE_OVERRIDEN"
38162	//   "INJECTED_KERNELS_DEPRECATED"
38163	//   "MISSING_TYPE_DEPENDENCY"
38164	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38165	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38166	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38167	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38168	//   "NEXT_HOP_NOT_RUNNING"
38169	//   "NOT_CRITICAL_ERROR"
38170	//   "NO_RESULTS_ON_PAGE"
38171	//   "PARTIAL_SUCCESS"
38172	//   "REQUIRED_TOS_AGREEMENT"
38173	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38174	//   "RESOURCE_NOT_DELETED"
38175	//   "SCHEMA_VALIDATION_IGNORED"
38176	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38177	//   "UNDECLARED_PROPERTIES"
38178	//   "UNREACHABLE"
38179	Code string `json:"code,omitempty"`
38180
38181	// Data: [Output Only] Metadata about this warning in key: value format.
38182	// For example:
38183	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38184	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
38185
38186	// Message: [Output Only] A human-readable description of the warning
38187	// code.
38188	Message string `json:"message,omitempty"`
38189
38190	// ForceSendFields is a list of field names (e.g. "Code") to
38191	// unconditionally include in API requests. By default, fields with
38192	// empty values are omitted from API requests. However, any non-pointer,
38193	// non-interface field appearing in ForceSendFields will be sent to the
38194	// server regardless of whether the field is empty or not. This may be
38195	// used to include empty fields in Patch requests.
38196	ForceSendFields []string `json:"-"`
38197
38198	// NullFields is a list of field names (e.g. "Code") to include in API
38199	// requests with the JSON null value. By default, fields with empty
38200	// values are omitted from API requests. However, any field with an
38201	// empty value appearing in NullFields will be sent to the server as
38202	// null. It is an error if a field in this list has a non-empty value.
38203	// This may be used to include null fields in Patch requests.
38204	NullFields []string `json:"-"`
38205}
38206
38207func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
38208	type NoMethod SecurityPolicyListWarning
38209	raw := NoMethod(*s)
38210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38211}
38212
38213type SecurityPolicyListWarningData struct {
38214	// Key: [Output Only] A key that provides more detail on the warning
38215	// being returned. For example, for warnings where there are no results
38216	// in a list request for a particular zone, this key might be scope and
38217	// the key value might be the zone name. Other examples might be a key
38218	// indicating a deprecated resource and a suggested replacement, or a
38219	// warning about invalid network settings (for example, if an instance
38220	// attempts to perform IP forwarding but is not enabled for IP
38221	// forwarding).
38222	Key string `json:"key,omitempty"`
38223
38224	// Value: [Output Only] A warning data value corresponding to the key.
38225	Value string `json:"value,omitempty"`
38226
38227	// ForceSendFields is a list of field names (e.g. "Key") to
38228	// unconditionally include in API requests. By default, fields with
38229	// empty values are omitted from API requests. However, any non-pointer,
38230	// non-interface field appearing in ForceSendFields will be sent to the
38231	// server regardless of whether the field is empty or not. This may be
38232	// used to include empty fields in Patch requests.
38233	ForceSendFields []string `json:"-"`
38234
38235	// NullFields is a list of field names (e.g. "Key") to include in API
38236	// requests with the JSON null value. By default, fields with empty
38237	// values are omitted from API requests. However, any field with an
38238	// empty value appearing in NullFields will be sent to the server as
38239	// null. It is an error if a field in this list has a non-empty value.
38240	// This may be used to include null fields in Patch requests.
38241	NullFields []string `json:"-"`
38242}
38243
38244func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
38245	type NoMethod SecurityPolicyListWarningData
38246	raw := NoMethod(*s)
38247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38248}
38249
38250type SecurityPolicyReference struct {
38251	SecurityPolicy string `json:"securityPolicy,omitempty"`
38252
38253	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
38254	// unconditionally include in API requests. By default, fields with
38255	// empty values are omitted from API requests. However, any non-pointer,
38256	// non-interface field appearing in ForceSendFields will be sent to the
38257	// server regardless of whether the field is empty or not. This may be
38258	// used to include empty fields in Patch requests.
38259	ForceSendFields []string `json:"-"`
38260
38261	// NullFields is a list of field names (e.g. "SecurityPolicy") to
38262	// include in API requests with the JSON null value. By default, fields
38263	// with empty values are omitted from API requests. However, any field
38264	// with an empty value appearing in NullFields will be sent to the
38265	// server as null. It is an error if a field in this list has a
38266	// non-empty value. This may be used to include null fields in Patch
38267	// requests.
38268	NullFields []string `json:"-"`
38269}
38270
38271func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
38272	type NoMethod SecurityPolicyReference
38273	raw := NoMethod(*s)
38274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38275}
38276
38277// SecurityPolicyRule: Represents a rule that describes one or more
38278// match conditions along with the action to be taken when traffic
38279// matches this condition (allow or deny).
38280type SecurityPolicyRule struct {
38281	// Action: The Action to preform when the client connection triggers the
38282	// rule. Can currently be either "allow" or "deny()" where valid values
38283	// for status are 403, 404, and 502.
38284	Action string `json:"action,omitempty"`
38285
38286	// Description: An optional description of this resource. Provide this
38287	// property when you create the resource.
38288	Description string `json:"description,omitempty"`
38289
38290	// Direction: The direction in which this rule applies. This field may
38291	// only be specified when versioned_expr is set to FIREWALL.
38292	//
38293	// Possible values:
38294	//   "EGRESS"
38295	//   "INGRESS"
38296	Direction string `json:"direction,omitempty"`
38297
38298	// EnableLogging: Denotes whether to enable logging for a particular
38299	// rule. If logging is enabled, logs will be exported to the configured
38300	// export destination in Stackdriver. Logs may be exported to BigQuery
38301	// or Pub/Sub. Note: you cannot enable logging on "goto_next"
38302	// rules.
38303	//
38304	// This field may only be specified when the versioned_expr is set to
38305	// FIREWALL.
38306	EnableLogging bool `json:"enableLogging,omitempty"`
38307
38308	// Kind: [Output only] Type of the resource. Always
38309	// compute#securityPolicyRule for security policy rules
38310	Kind string `json:"kind,omitempty"`
38311
38312	// Match: A match condition that incoming traffic is evaluated against.
38313	// If it evaluates to true, the corresponding 'action' is enforced.
38314	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
38315
38316	// Preview: If set to true, the specified action is not enforced.
38317	Preview bool `json:"preview,omitempty"`
38318
38319	// Priority: An integer indicating the priority of a rule in the list.
38320	// The priority must be a positive value between 0 and 2147483647. Rules
38321	// are evaluated from highest to lowest priority where 0 is the highest
38322	// priority and 2147483647 is the lowest prority.
38323	Priority int64 `json:"priority,omitempty"`
38324
38325	// RateLimitOptions: Must be specified if the action is
38326	// "rate_based_blacklist" or "throttle". Cannot be specified for any
38327	// other actions.
38328	RateLimitOptions *SecurityPolicyRuleRateLimitOptions `json:"rateLimitOptions,omitempty"`
38329
38330	// RuleTupleCount: [Output Only] Calculation of the complexity of a
38331	// single firewall security policy rule.
38332	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
38333
38334	// TargetResources: A list of network resource URLs to which this rule
38335	// applies. This field allows you to control which network's VMs get
38336	// this rule. If this field is left blank, all VMs within the
38337	// organization will receive the rule.
38338	//
38339	// This field may only be specified when versioned_expr is set to
38340	// FIREWALL.
38341	TargetResources []string `json:"targetResources,omitempty"`
38342
38343	// TargetServiceAccounts: A list of service accounts indicating the sets
38344	// of instances that are applied with this rule.
38345	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
38346
38347	// ServerResponse contains the HTTP response code and headers from the
38348	// server.
38349	googleapi.ServerResponse `json:"-"`
38350
38351	// ForceSendFields is a list of field names (e.g. "Action") to
38352	// unconditionally include in API requests. By default, fields with
38353	// empty values are omitted from API requests. However, any non-pointer,
38354	// non-interface field appearing in ForceSendFields will be sent to the
38355	// server regardless of whether the field is empty or not. This may be
38356	// used to include empty fields in Patch requests.
38357	ForceSendFields []string `json:"-"`
38358
38359	// NullFields is a list of field names (e.g. "Action") to include in API
38360	// requests with the JSON null value. By default, fields with empty
38361	// values are omitted from API requests. However, any field with an
38362	// empty value appearing in NullFields will be sent to the server as
38363	// null. It is an error if a field in this list has a non-empty value.
38364	// This may be used to include null fields in Patch requests.
38365	NullFields []string `json:"-"`
38366}
38367
38368func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
38369	type NoMethod SecurityPolicyRule
38370	raw := NoMethod(*s)
38371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38372}
38373
38374// SecurityPolicyRuleMatcher: Represents a match condition that incoming
38375// traffic is evaluated against. Exactly one field must be specified.
38376type SecurityPolicyRuleMatcher struct {
38377	// Config: The configuration options available when specifying
38378	// versioned_expr. This field must be specified if versioned_expr is
38379	// specified and cannot be specified if versioned_expr is not specified.
38380	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
38381
38382	// Expr: User defined CEVAL expression. A CEVAL expression is used to
38383	// specify match criteria such as origin.ip, source.region_code and
38384	// contents in the request header.
38385	Expr *Expr `json:"expr,omitempty"`
38386
38387	// VersionedExpr: Preconfigured versioned expression. If this field is
38388	// specified, config must also be specified. Available preconfigured
38389	// expressions along with their requirements are: SRC_IPS_V1 - must
38390	// specify the corresponding src_ip_range field in config.
38391	//
38392	// Possible values:
38393	//   "FIREWALL"
38394	//   "SRC_IPS_V1"
38395	VersionedExpr string `json:"versionedExpr,omitempty"`
38396
38397	// ForceSendFields is a list of field names (e.g. "Config") to
38398	// unconditionally include in API requests. By default, fields with
38399	// empty values are omitted from API requests. However, any non-pointer,
38400	// non-interface field appearing in ForceSendFields will be sent to the
38401	// server regardless of whether the field is empty or not. This may be
38402	// used to include empty fields in Patch requests.
38403	ForceSendFields []string `json:"-"`
38404
38405	// NullFields is a list of field names (e.g. "Config") to include in API
38406	// requests with the JSON null value. By default, fields with empty
38407	// values are omitted from API requests. However, any field with an
38408	// empty value appearing in NullFields will be sent to the server as
38409	// null. It is an error if a field in this list has a non-empty value.
38410	// This may be used to include null fields in Patch requests.
38411	NullFields []string `json:"-"`
38412}
38413
38414func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
38415	type NoMethod SecurityPolicyRuleMatcher
38416	raw := NoMethod(*s)
38417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38418}
38419
38420type SecurityPolicyRuleMatcherConfig struct {
38421	// DestIpRanges: CIDR IP address range.
38422	//
38423	// This field may only be specified when versioned_expr is set to
38424	// FIREWALL.
38425	DestIpRanges []string `json:"destIpRanges,omitempty"`
38426
38427	// DestPorts: Pairs of IP protocols and ports that the rule should
38428	// match.
38429	//
38430	// This field may only be specified when versioned_expr is set to
38431	// FIREWALL.
38432	DestPorts []*SecurityPolicyRuleMatcherConfigDestinationPort `json:"destPorts,omitempty"`
38433
38434	// Layer4Configs: Pairs of IP protocols and ports that the rule should
38435	// match.
38436	//
38437	// This field may only be specified when versioned_expr is set to
38438	// FIREWALL.
38439	Layer4Configs []*SecurityPolicyRuleMatcherConfigLayer4Config `json:"layer4Configs,omitempty"`
38440
38441	// SrcIpRanges: CIDR IP address range.
38442	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
38443
38444	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
38445	// unconditionally include in API requests. By default, fields with
38446	// empty values are omitted from API requests. However, any non-pointer,
38447	// non-interface field appearing in ForceSendFields will be sent to the
38448	// server regardless of whether the field is empty or not. This may be
38449	// used to include empty fields in Patch requests.
38450	ForceSendFields []string `json:"-"`
38451
38452	// NullFields is a list of field names (e.g. "DestIpRanges") to include
38453	// in API requests with the JSON null value. By default, fields with
38454	// empty values are omitted from API requests. However, any field with
38455	// an empty value appearing in NullFields will be sent to the server as
38456	// null. It is an error if a field in this list has a non-empty value.
38457	// This may be used to include null fields in Patch requests.
38458	NullFields []string `json:"-"`
38459}
38460
38461func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
38462	type NoMethod SecurityPolicyRuleMatcherConfig
38463	raw := NoMethod(*s)
38464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38465}
38466
38467type SecurityPolicyRuleMatcherConfigDestinationPort struct {
38468	// IpProtocol: The IP protocol to which this rule applies. The protocol
38469	// type is required when creating a firewall rule. This value can either
38470	// be one of the following well known protocol strings (tcp, udp, icmp,
38471	// esp, ah, ipip, sctp), or the IP protocol number.
38472	IpProtocol string `json:"ipProtocol,omitempty"`
38473
38474	// Ports: An optional list of ports to which this rule applies. This
38475	// field is only applicable for UDP or TCP protocol. Each entry must be
38476	// either an integer or a range. If not specified, this rule applies to
38477	// connections through any port.
38478	//
38479	// Example inputs include: ["22"], ["80","443"], and
38480	// ["12345-12349"].
38481	//
38482	// This field may only be specified when versioned_expr is set to
38483	// FIREWALL.
38484	Ports []string `json:"ports,omitempty"`
38485
38486	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
38487	// unconditionally include in API requests. By default, fields with
38488	// empty values are omitted from API requests. However, any non-pointer,
38489	// non-interface field appearing in ForceSendFields will be sent to the
38490	// server regardless of whether the field is empty or not. This may be
38491	// used to include empty fields in Patch requests.
38492	ForceSendFields []string `json:"-"`
38493
38494	// NullFields is a list of field names (e.g. "IpProtocol") 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 *SecurityPolicyRuleMatcherConfigDestinationPort) MarshalJSON() ([]byte, error) {
38504	type NoMethod SecurityPolicyRuleMatcherConfigDestinationPort
38505	raw := NoMethod(*s)
38506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38507}
38508
38509type SecurityPolicyRuleMatcherConfigLayer4Config struct {
38510	// IpProtocol: The IP protocol to which this rule applies. The protocol
38511	// type is required when creating a firewall rule. This value can either
38512	// be one of the following well known protocol strings (tcp, udp, icmp,
38513	// esp, ah, ipip, sctp), or the IP protocol number.
38514	IpProtocol string `json:"ipProtocol,omitempty"`
38515
38516	// Ports: An optional list of ports to which this rule applies. This
38517	// field is only applicable for UDP or TCP protocol. Each entry must be
38518	// either an integer or a range. If not specified, this rule applies to
38519	// connections through any port.
38520	//
38521	// Example inputs include: ["22"], ["80","443"], and
38522	// ["12345-12349"].
38523	//
38524	// This field may only be specified when versioned_expr is set to
38525	// FIREWALL.
38526	Ports []string `json:"ports,omitempty"`
38527
38528	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
38529	// unconditionally include in API requests. By default, fields with
38530	// empty values are omitted from API requests. However, any non-pointer,
38531	// non-interface field appearing in ForceSendFields will be sent to the
38532	// server regardless of whether the field is empty or not. This may be
38533	// used to include empty fields in Patch requests.
38534	ForceSendFields []string `json:"-"`
38535
38536	// NullFields is a list of field names (e.g. "IpProtocol") to include in
38537	// API requests with the JSON null value. By default, fields with empty
38538	// values are omitted from API requests. However, any field with an
38539	// empty value appearing in NullFields will be sent to the server as
38540	// null. It is an error if a field in this list has a non-empty value.
38541	// This may be used to include null fields in Patch requests.
38542	NullFields []string `json:"-"`
38543}
38544
38545func (s *SecurityPolicyRuleMatcherConfigLayer4Config) MarshalJSON() ([]byte, error) {
38546	type NoMethod SecurityPolicyRuleMatcherConfigLayer4Config
38547	raw := NoMethod(*s)
38548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38549}
38550
38551type SecurityPolicyRuleRateLimitOptions struct {
38552	// BlockDuration: Can only be specifed if the action for the rule is
38553	// "rate_based_blacklist" If specified, determines the time (in seconds)
38554	// the traffic will continue to be blocked by the rate limit after the
38555	// rate falls below the threshold. The default value is 0 seconds.
38556	BlockDuration int64 `json:"blockDuration,omitempty"`
38557
38558	// ConformAction: Action to take when requests are under the given
38559	// threshold. When requests are throttled, this is also the action for
38560	// all requests which are not dropped. Valid options are "allow",
38561	// "fairshare", and "drop_overload".
38562	ConformAction string `json:"conformAction,omitempty"`
38563
38564	// EnforceOnKey: Determines the key to enforce the threshold_rps limit
38565	// on. If key is "IP", each IP has this limit enforced separately,
38566	// whereas "ALL_IPs" means a single limit is applied to all requests
38567	// matching this rule.
38568	//
38569	// Possible values:
38570	//   "ALL_IPS"
38571	//   "IP"
38572	EnforceOnKey string `json:"enforceOnKey,omitempty"`
38573
38574	// ExceedAction: When a request is denied, returns the HTTP response
38575	// code specified. Valid options are "deny()" where valid values for
38576	// status are 403, 404, 429, and 502.
38577	ExceedAction string `json:"exceedAction,omitempty"`
38578
38579	// ThresholdRps: Rate in requests per second at which to begin
38580	// ratelimiting.
38581	ThresholdRps int64 `json:"thresholdRps,omitempty"`
38582
38583	// ForceSendFields is a list of field names (e.g. "BlockDuration") to
38584	// unconditionally include in API requests. By default, fields with
38585	// empty values are omitted from API requests. However, any non-pointer,
38586	// non-interface field appearing in ForceSendFields will be sent to the
38587	// server regardless of whether the field is empty or not. This may be
38588	// used to include empty fields in Patch requests.
38589	ForceSendFields []string `json:"-"`
38590
38591	// NullFields is a list of field names (e.g. "BlockDuration") to include
38592	// in API requests with the JSON null value. By default, fields with
38593	// empty values are omitted from API requests. However, any field with
38594	// an empty value appearing in NullFields will be sent to the server as
38595	// null. It is an error if a field in this list has a non-empty value.
38596	// This may be used to include null fields in Patch requests.
38597	NullFields []string `json:"-"`
38598}
38599
38600func (s *SecurityPolicyRuleRateLimitOptions) MarshalJSON() ([]byte, error) {
38601	type NoMethod SecurityPolicyRuleRateLimitOptions
38602	raw := NoMethod(*s)
38603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38604}
38605
38606// SecuritySettings: The authentication and authorization settings for a
38607// BackendService.
38608type SecuritySettings struct {
38609	// Authentication: A URL referring to a networksecurity.Authentication
38610	// resource that describes how clients should authenticate with this
38611	// service's backends. If left blank, communications between services
38612	// are not encrypted (i.e., the TLS policy is set to OPEN). When sending
38613	// traffic to this service's backends, the OriginationTls setting of
38614	// Authentication.TransportAuthentication is applied. Refer to the
38615	// Authentication and
38616	// Authentication.TransportAuthentication.OriginationTls resources for
38617	// additional details. authentication only applies to a global
38618	// BackendService with the loadBalancingScheme set to
38619	// INTERNAL_SELF_MANAGED.
38620	Authentication string `json:"authentication,omitempty"`
38621
38622	// AuthenticationPolicy: [Deprecated] Authentication policy defines what
38623	// authentication methods can be accepted on backends, and if
38624	// authenticated, which method/certificate will set the request
38625	// principal. request principal.
38626	AuthenticationPolicy *AuthenticationPolicy `json:"authenticationPolicy,omitempty"`
38627
38628	// AuthorizationConfig: [Deprecated] Authorization config defines the
38629	// Role Based Access Control (RBAC) config. Authorization config defines
38630	// the Role Based Access Control (RBAC) config.
38631	AuthorizationConfig *AuthorizationConfig `json:"authorizationConfig,omitempty"`
38632
38633	// ClientTlsSettings: [Deprecated] TLS Settings for the backend service.
38634	ClientTlsSettings *ClientTlsSettings `json:"clientTlsSettings,omitempty"`
38635
38636	// SubjectAltNames: Optional. A list of subject alternate names to
38637	// verify the subject identity (SAN) in the certificate presented by the
38638	// server, to authorize the SAN list as identities to run the service
38639	// represented by this BackendService. If specified, the client will
38640	// verify that the server certificate's subject alt name matches one of
38641	// the specified values. Only applies to a global BackendService with
38642	// the loadBalancingScheme set to INTERNAL_SELF_MANAGED.
38643	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
38644
38645	// ForceSendFields is a list of field names (e.g. "Authentication") to
38646	// unconditionally include in API requests. By default, fields with
38647	// empty values are omitted from API requests. However, any non-pointer,
38648	// non-interface field appearing in ForceSendFields will be sent to the
38649	// server regardless of whether the field is empty or not. This may be
38650	// used to include empty fields in Patch requests.
38651	ForceSendFields []string `json:"-"`
38652
38653	// NullFields is a list of field names (e.g. "Authentication") to
38654	// include in API requests with the JSON null value. By default, fields
38655	// with empty values are omitted from API requests. However, any field
38656	// with an empty value appearing in NullFields will be sent to the
38657	// server as null. It is an error if a field in this list has a
38658	// non-empty value. This may be used to include null fields in Patch
38659	// requests.
38660	NullFields []string `json:"-"`
38661}
38662
38663func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
38664	type NoMethod SecuritySettings
38665	raw := NoMethod(*s)
38666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38667}
38668
38669// SerialPortOutput: An instance's serial console output.
38670type SerialPortOutput struct {
38671	// Contents: [Output Only] The contents of the console output.
38672	Contents string `json:"contents,omitempty"`
38673
38674	// Kind: [Output Only] Type of the resource. Always
38675	// compute#serialPortOutput for serial port output.
38676	Kind string `json:"kind,omitempty"`
38677
38678	// Next: [Output Only] The position of the next byte of content from the
38679	// serial console output. Use this value in the next request as the
38680	// start parameter.
38681	Next int64 `json:"next,omitempty,string"`
38682
38683	// SelfLink: [Output Only] Server-defined URL for this resource.
38684	SelfLink string `json:"selfLink,omitempty"`
38685
38686	// Start: The starting byte position of the output that was returned.
38687	// This should match the start parameter sent with the request. If the
38688	// serial console output exceeds the size of the buffer, older output
38689	// will be overwritten by newer content and the start values will be
38690	// mismatched.
38691	Start int64 `json:"start,omitempty,string"`
38692
38693	// ServerResponse contains the HTTP response code and headers from the
38694	// server.
38695	googleapi.ServerResponse `json:"-"`
38696
38697	// ForceSendFields is a list of field names (e.g. "Contents") to
38698	// unconditionally include in API requests. By default, fields with
38699	// empty values are omitted from API requests. However, any non-pointer,
38700	// non-interface field appearing in ForceSendFields will be sent to the
38701	// server regardless of whether the field is empty or not. This may be
38702	// used to include empty fields in Patch requests.
38703	ForceSendFields []string `json:"-"`
38704
38705	// NullFields is a list of field names (e.g. "Contents") to include in
38706	// API requests with the JSON null value. By default, fields with empty
38707	// values are omitted from API requests. However, any field with an
38708	// empty value appearing in NullFields will be sent to the server as
38709	// null. It is an error if a field in this list has a non-empty value.
38710	// This may be used to include null fields in Patch requests.
38711	NullFields []string `json:"-"`
38712}
38713
38714func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
38715	type NoMethod SerialPortOutput
38716	raw := NoMethod(*s)
38717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38718}
38719
38720type ServerBinding struct {
38721	// Possible values:
38722	//   "RESTART_NODE_ON_ANY_SERVER"
38723	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
38724	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
38725	Type string `json:"type,omitempty"`
38726
38727	// ForceSendFields is a list of field names (e.g. "Type") to
38728	// unconditionally include in API requests. By default, fields with
38729	// empty values are omitted from API requests. However, any non-pointer,
38730	// non-interface field appearing in ForceSendFields will be sent to the
38731	// server regardless of whether the field is empty or not. This may be
38732	// used to include empty fields in Patch requests.
38733	ForceSendFields []string `json:"-"`
38734
38735	// NullFields is a list of field names (e.g. "Type") to include in API
38736	// requests with the JSON null value. By default, fields with empty
38737	// values are omitted from API requests. However, any field with an
38738	// empty value appearing in NullFields will be sent to the server as
38739	// null. It is an error if a field in this list has a non-empty value.
38740	// This may be used to include null fields in Patch requests.
38741	NullFields []string `json:"-"`
38742}
38743
38744func (s *ServerBinding) MarshalJSON() ([]byte, error) {
38745	type NoMethod ServerBinding
38746	raw := NoMethod(*s)
38747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38748}
38749
38750// ServerTlsSettings: The TLS settings for the server.
38751type ServerTlsSettings struct {
38752	// ProxyTlsContext: Configures the mechanism to obtain security
38753	// certificates and identity information.
38754	ProxyTlsContext *TlsContext `json:"proxyTlsContext,omitempty"`
38755
38756	// SubjectAltNames: A list of alternate names to verify the subject
38757	// identity in the certificate presented by the client.
38758	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
38759
38760	// TlsMode: Indicates whether connections should be secured using TLS.
38761	// The value of this field determines how TLS is enforced. This field
38762	// can be set to one of the following:
38763	// - SIMPLE Secure connections with standard TLS semantics.
38764	// - MUTUAL Secure connections to the backends using mutual TLS by
38765	// presenting client certificates for authentication.
38766	//
38767	// Possible values:
38768	//   "INVALID"
38769	//   "MUTUAL"
38770	//   "SIMPLE"
38771	TlsMode string `json:"tlsMode,omitempty"`
38772
38773	// ForceSendFields is a list of field names (e.g. "ProxyTlsContext") to
38774	// unconditionally include in API requests. By default, fields with
38775	// empty values are omitted from API requests. However, any non-pointer,
38776	// non-interface field appearing in ForceSendFields will be sent to the
38777	// server regardless of whether the field is empty or not. This may be
38778	// used to include empty fields in Patch requests.
38779	ForceSendFields []string `json:"-"`
38780
38781	// NullFields is a list of field names (e.g. "ProxyTlsContext") to
38782	// include in API requests with the JSON null value. By default, fields
38783	// with empty values are omitted from API requests. However, any field
38784	// with an empty value appearing in NullFields will be sent to the
38785	// server as null. It is an error if a field in this list has a
38786	// non-empty value. This may be used to include null fields in Patch
38787	// requests.
38788	NullFields []string `json:"-"`
38789}
38790
38791func (s *ServerTlsSettings) MarshalJSON() ([]byte, error) {
38792	type NoMethod ServerTlsSettings
38793	raw := NoMethod(*s)
38794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38795}
38796
38797// ServiceAccount: A service account.
38798type ServiceAccount struct {
38799	// Email: Email address of the service account.
38800	Email string `json:"email,omitempty"`
38801
38802	// Scopes: The list of scopes to be made available for this service
38803	// account.
38804	Scopes []string `json:"scopes,omitempty"`
38805
38806	// ForceSendFields is a list of field names (e.g. "Email") to
38807	// unconditionally include in API requests. By default, fields with
38808	// empty values are omitted from API requests. However, any non-pointer,
38809	// non-interface field appearing in ForceSendFields will be sent to the
38810	// server regardless of whether the field is empty or not. This may be
38811	// used to include empty fields in Patch requests.
38812	ForceSendFields []string `json:"-"`
38813
38814	// NullFields is a list of field names (e.g. "Email") to include in API
38815	// requests with the JSON null value. By default, fields with empty
38816	// values are omitted from API requests. However, any field with an
38817	// empty value appearing in NullFields will be sent to the server as
38818	// null. It is an error if a field in this list has a non-empty value.
38819	// This may be used to include null fields in Patch requests.
38820	NullFields []string `json:"-"`
38821}
38822
38823func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
38824	type NoMethod ServiceAccount
38825	raw := NoMethod(*s)
38826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38827}
38828
38829// ServiceAttachment: Represents a ServiceAttachment resource.
38830//
38831// A service attachment represents a service that a producer has
38832// exposed. It encapsulates the load balancer which fronts the service
38833// runs and a list of NAT IP ranges that the producers uses to represent
38834// the consumers connecting to the service.
38835type ServiceAttachment struct {
38836	// Possible values:
38837	//   "ACCEPT_AUTOMATIC"
38838	//   "CONNECTION_PREFERENCE_UNSPECIFIED"
38839	ConnectionPreference string `json:"connectionPreference,omitempty"`
38840
38841	// ConsumerForwardingRules: An array of forwarding rules for all the
38842	// consumers connected to this service attachment.
38843	ConsumerForwardingRules []*ServiceAttachmentConsumerForwardingRule `json:"consumerForwardingRules,omitempty"`
38844
38845	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38846	// format.
38847	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38848
38849	// Description: An optional description of this resource. Provide this
38850	// property when you create the resource.
38851	Description string `json:"description,omitempty"`
38852
38853	// Id: [Output Only] The unique identifier for the resource type. The
38854	// server generates this identifier.
38855	Id uint64 `json:"id,omitempty,string"`
38856
38857	// Kind: [Output Only] Type of the resource. Always
38858	// compute#serviceAttachment for service attachments.
38859	Kind string `json:"kind,omitempty"`
38860
38861	// Name: Name of the resource. Provided by the client when the resource
38862	// is created. The name must be 1-63 characters long, and comply with
38863	// RFC1035. Specifically, the name must be 1-63 characters long and
38864	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38865	// the first character must be a lowercase letter, and all following
38866	// characters must be a dash, lowercase letter, or digit, except the
38867	// last character, which cannot be a dash.
38868	Name string `json:"name,omitempty"`
38869
38870	// NatIpCidrRanges: An array of IP CIDR ranges where each range is the
38871	// url of the address resource which represents the range provided by
38872	// the service producer to use for NAT in this service attachment.
38873	NatIpCidrRanges []string `json:"natIpCidrRanges,omitempty"`
38874
38875	// ProducerForwardingRule: The URL of a forwarding rule with
38876	// loadBalancingScheme INTERNAL* that is serving the endpoint identified
38877	// by this service attachment.
38878	ProducerForwardingRule string `json:"producerForwardingRule,omitempty"`
38879
38880	// Region: [Output Only] URL of the region where the service attachment
38881	// resides. This field applies only to the region resource. You must
38882	// specify this field as part of the HTTP request URL. It is not
38883	// settable as a field in the request body.
38884	Region string `json:"region,omitempty"`
38885
38886	// SelfLink: [Output Only] Server-defined URL for the resource.
38887	SelfLink string `json:"selfLink,omitempty"`
38888
38889	// ServerResponse contains the HTTP response code and headers from the
38890	// server.
38891	googleapi.ServerResponse `json:"-"`
38892
38893	// ForceSendFields is a list of field names (e.g.
38894	// "ConnectionPreference") to unconditionally include in API requests.
38895	// By default, fields with empty values are omitted from API requests.
38896	// However, any non-pointer, non-interface field appearing in
38897	// ForceSendFields will be sent to the server regardless of whether the
38898	// field is empty or not. This may be used to include empty fields in
38899	// Patch requests.
38900	ForceSendFields []string `json:"-"`
38901
38902	// NullFields is a list of field names (e.g. "ConnectionPreference") to
38903	// include in API requests with the JSON null value. By default, fields
38904	// with empty values are omitted from API requests. However, any field
38905	// with an empty value appearing in NullFields will be sent to the
38906	// server as null. It is an error if a field in this list has a
38907	// non-empty value. This may be used to include null fields in Patch
38908	// requests.
38909	NullFields []string `json:"-"`
38910}
38911
38912func (s *ServiceAttachment) MarshalJSON() ([]byte, error) {
38913	type NoMethod ServiceAttachment
38914	raw := NoMethod(*s)
38915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38916}
38917
38918// ServiceAttachmentConsumerForwardingRule: [Output Only] A consumer
38919// forwarding rule connected to this service attachment.
38920type ServiceAttachmentConsumerForwardingRule struct {
38921	// ForwardingRule: The url of a consumer forwarding rule.
38922	ForwardingRule string `json:"forwardingRule,omitempty"`
38923
38924	// Status: The status of the forwarding rule.
38925	//
38926	// Possible values:
38927	//   "ACTIVE"
38928	//   "INACTIVE"
38929	//   "PENDING"
38930	//   "STATUS_UNSPECIFIED"
38931	Status string `json:"status,omitempty"`
38932
38933	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
38934	// unconditionally include in API requests. By default, fields with
38935	// empty values are omitted from API requests. However, any non-pointer,
38936	// non-interface field appearing in ForceSendFields will be sent to the
38937	// server regardless of whether the field is empty or not. This may be
38938	// used to include empty fields in Patch requests.
38939	ForceSendFields []string `json:"-"`
38940
38941	// NullFields is a list of field names (e.g. "ForwardingRule") to
38942	// include in API requests with the JSON null value. By default, fields
38943	// with empty values are omitted from API requests. However, any field
38944	// with an empty value appearing in NullFields will be sent to the
38945	// server as null. It is an error if a field in this list has a
38946	// non-empty value. This may be used to include null fields in Patch
38947	// requests.
38948	NullFields []string `json:"-"`
38949}
38950
38951func (s *ServiceAttachmentConsumerForwardingRule) MarshalJSON() ([]byte, error) {
38952	type NoMethod ServiceAttachmentConsumerForwardingRule
38953	raw := NoMethod(*s)
38954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38955}
38956
38957type ServiceAttachmentList struct {
38958	// Id: [Output Only] Unique identifier for the resource; defined by the
38959	// server.
38960	Id string `json:"id,omitempty"`
38961
38962	// Items: A list of ServiceAttachment resources.
38963	Items []*ServiceAttachment `json:"items,omitempty"`
38964
38965	// Kind: [Output Only] Type of the resource. Always
38966	// compute#serviceAttachment for service attachments.
38967	Kind string `json:"kind,omitempty"`
38968
38969	// NextPageToken: [Output Only] This token allows you to get the next
38970	// page of results for list requests. If the number of results is larger
38971	// than maxResults, use the nextPageToken as a value for the query
38972	// parameter pageToken in the next list request. Subsequent list
38973	// requests will have their own nextPageToken to continue paging through
38974	// the results.
38975	NextPageToken string `json:"nextPageToken,omitempty"`
38976
38977	// SelfLink: [Output Only] Server-defined URL for this resource.
38978	SelfLink string `json:"selfLink,omitempty"`
38979
38980	// Warning: [Output Only] Informational warning message.
38981	Warning *ServiceAttachmentListWarning `json:"warning,omitempty"`
38982
38983	// ServerResponse contains the HTTP response code and headers from the
38984	// server.
38985	googleapi.ServerResponse `json:"-"`
38986
38987	// ForceSendFields is a list of field names (e.g. "Id") to
38988	// unconditionally include in API requests. By default, fields with
38989	// empty values are omitted from API requests. However, any non-pointer,
38990	// non-interface field appearing in ForceSendFields will be sent to the
38991	// server regardless of whether the field is empty or not. This may be
38992	// used to include empty fields in Patch requests.
38993	ForceSendFields []string `json:"-"`
38994
38995	// NullFields is a list of field names (e.g. "Id") to include in API
38996	// requests with the JSON null value. By default, fields with empty
38997	// values are omitted from API requests. However, any field with an
38998	// empty value appearing in NullFields will be sent to the server as
38999	// null. It is an error if a field in this list has a non-empty value.
39000	// This may be used to include null fields in Patch requests.
39001	NullFields []string `json:"-"`
39002}
39003
39004func (s *ServiceAttachmentList) MarshalJSON() ([]byte, error) {
39005	type NoMethod ServiceAttachmentList
39006	raw := NoMethod(*s)
39007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39008}
39009
39010// ServiceAttachmentListWarning: [Output Only] Informational warning
39011// message.
39012type ServiceAttachmentListWarning struct {
39013	// Code: [Output Only] A warning code, if applicable. For example,
39014	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39015	// the response.
39016	//
39017	// Possible values:
39018	//   "CLEANUP_FAILED"
39019	//   "DEPRECATED_RESOURCE_USED"
39020	//   "DEPRECATED_TYPE_USED"
39021	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39022	//   "EXPERIMENTAL_TYPE_USED"
39023	//   "EXTERNAL_API_WARNING"
39024	//   "FIELD_VALUE_OVERRIDEN"
39025	//   "INJECTED_KERNELS_DEPRECATED"
39026	//   "MISSING_TYPE_DEPENDENCY"
39027	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39028	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39029	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39030	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39031	//   "NEXT_HOP_NOT_RUNNING"
39032	//   "NOT_CRITICAL_ERROR"
39033	//   "NO_RESULTS_ON_PAGE"
39034	//   "PARTIAL_SUCCESS"
39035	//   "REQUIRED_TOS_AGREEMENT"
39036	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39037	//   "RESOURCE_NOT_DELETED"
39038	//   "SCHEMA_VALIDATION_IGNORED"
39039	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39040	//   "UNDECLARED_PROPERTIES"
39041	//   "UNREACHABLE"
39042	Code string `json:"code,omitempty"`
39043
39044	// Data: [Output Only] Metadata about this warning in key: value format.
39045	// For example:
39046	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39047	Data []*ServiceAttachmentListWarningData `json:"data,omitempty"`
39048
39049	// Message: [Output Only] A human-readable description of the warning
39050	// code.
39051	Message string `json:"message,omitempty"`
39052
39053	// ForceSendFields is a list of field names (e.g. "Code") to
39054	// unconditionally include in API requests. By default, fields with
39055	// empty values are omitted from API requests. However, any non-pointer,
39056	// non-interface field appearing in ForceSendFields will be sent to the
39057	// server regardless of whether the field is empty or not. This may be
39058	// used to include empty fields in Patch requests.
39059	ForceSendFields []string `json:"-"`
39060
39061	// NullFields is a list of field names (e.g. "Code") to include in API
39062	// requests with the JSON null value. By default, fields with empty
39063	// values are omitted from API requests. However, any field with an
39064	// empty value appearing in NullFields will be sent to the server as
39065	// null. It is an error if a field in this list has a non-empty value.
39066	// This may be used to include null fields in Patch requests.
39067	NullFields []string `json:"-"`
39068}
39069
39070func (s *ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) {
39071	type NoMethod ServiceAttachmentListWarning
39072	raw := NoMethod(*s)
39073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39074}
39075
39076type ServiceAttachmentListWarningData struct {
39077	// Key: [Output Only] A key that provides more detail on the warning
39078	// being returned. For example, for warnings where there are no results
39079	// in a list request for a particular zone, this key might be scope and
39080	// the key value might be the zone name. Other examples might be a key
39081	// indicating a deprecated resource and a suggested replacement, or a
39082	// warning about invalid network settings (for example, if an instance
39083	// attempts to perform IP forwarding but is not enabled for IP
39084	// forwarding).
39085	Key string `json:"key,omitempty"`
39086
39087	// Value: [Output Only] A warning data value corresponding to the key.
39088	Value string `json:"value,omitempty"`
39089
39090	// ForceSendFields is a list of field names (e.g. "Key") to
39091	// unconditionally include in API requests. By default, fields with
39092	// empty values are omitted from API requests. However, any non-pointer,
39093	// non-interface field appearing in ForceSendFields will be sent to the
39094	// server regardless of whether the field is empty or not. This may be
39095	// used to include empty fields in Patch requests.
39096	ForceSendFields []string `json:"-"`
39097
39098	// NullFields is a list of field names (e.g. "Key") to include in API
39099	// requests with the JSON null value. By default, fields with empty
39100	// values are omitted from API requests. However, any field with an
39101	// empty value appearing in NullFields will be sent to the server as
39102	// null. It is an error if a field in this list has a non-empty value.
39103	// This may be used to include null fields in Patch requests.
39104	NullFields []string `json:"-"`
39105}
39106
39107func (s *ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) {
39108	type NoMethod ServiceAttachmentListWarningData
39109	raw := NoMethod(*s)
39110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39111}
39112
39113// ShieldedInstanceConfig: A set of Shielded Instance options.
39114type ShieldedInstanceConfig struct {
39115	// EnableIntegrityMonitoring: Defines whether the instance has integrity
39116	// monitoring enabled.
39117	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
39118
39119	// EnableSecureBoot: Defines whether the instance has Secure Boot
39120	// enabled.
39121	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
39122
39123	// EnableVtpm: Defines whether the instance has the vTPM enabled.
39124	EnableVtpm bool `json:"enableVtpm,omitempty"`
39125
39126	// ForceSendFields is a list of field names (e.g.
39127	// "EnableIntegrityMonitoring") to unconditionally include in API
39128	// requests. By default, fields with empty values are omitted from API
39129	// requests. However, any non-pointer, non-interface field appearing in
39130	// ForceSendFields will be sent to the server regardless of whether the
39131	// field is empty or not. This may be used to include empty fields in
39132	// Patch requests.
39133	ForceSendFields []string `json:"-"`
39134
39135	// NullFields is a list of field names (e.g.
39136	// "EnableIntegrityMonitoring") to include in API requests with the JSON
39137	// null value. By default, fields with empty values are omitted from API
39138	// requests. However, any field with an empty value appearing in
39139	// NullFields will be sent to the server as null. It is an error if a
39140	// field in this list has a non-empty value. This may be used to include
39141	// null fields in Patch requests.
39142	NullFields []string `json:"-"`
39143}
39144
39145func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
39146	type NoMethod ShieldedInstanceConfig
39147	raw := NoMethod(*s)
39148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39149}
39150
39151// ShieldedInstanceIdentity: A shielded Instance identity entry.
39152type ShieldedInstanceIdentity struct {
39153	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
39154	// issued to the Shielded Instance's vTPM.
39155	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
39156
39157	// Kind: [Output Only] Type of the resource. Always
39158	// compute#shieldedInstanceIdentity for shielded Instance identity
39159	// entry.
39160	Kind string `json:"kind,omitempty"`
39161
39162	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
39163	// issued to the Shielded Instance's vTPM.
39164	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
39165
39166	// ServerResponse contains the HTTP response code and headers from the
39167	// server.
39168	googleapi.ServerResponse `json:"-"`
39169
39170	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
39171	// unconditionally include in API requests. By default, fields with
39172	// empty values are omitted from API requests. However, any non-pointer,
39173	// non-interface field appearing in ForceSendFields will be sent to the
39174	// server regardless of whether the field is empty or not. This may be
39175	// used to include empty fields in Patch requests.
39176	ForceSendFields []string `json:"-"`
39177
39178	// NullFields is a list of field names (e.g. "EncryptionKey") to include
39179	// in API requests with the JSON null value. By default, fields with
39180	// empty values are omitted from API requests. However, any field with
39181	// an empty value appearing in NullFields will be sent to the server as
39182	// null. It is an error if a field in this list has a non-empty value.
39183	// This may be used to include null fields in Patch requests.
39184	NullFields []string `json:"-"`
39185}
39186
39187func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
39188	type NoMethod ShieldedInstanceIdentity
39189	raw := NoMethod(*s)
39190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39191}
39192
39193// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
39194type ShieldedInstanceIdentityEntry struct {
39195	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
39196	EkCert string `json:"ekCert,omitempty"`
39197
39198	// EkPub: A PEM-encoded public key.
39199	EkPub string `json:"ekPub,omitempty"`
39200
39201	// ForceSendFields is a list of field names (e.g. "EkCert") to
39202	// unconditionally include in API requests. By default, fields with
39203	// empty values are omitted from API requests. However, any non-pointer,
39204	// non-interface field appearing in ForceSendFields will be sent to the
39205	// server regardless of whether the field is empty or not. This may be
39206	// used to include empty fields in Patch requests.
39207	ForceSendFields []string `json:"-"`
39208
39209	// NullFields is a list of field names (e.g. "EkCert") to include in API
39210	// requests with the JSON null value. By default, fields with empty
39211	// values are omitted from API requests. However, any field with an
39212	// empty value appearing in NullFields will be sent to the server as
39213	// null. It is an error if a field in this list has a non-empty value.
39214	// This may be used to include null fields in Patch requests.
39215	NullFields []string `json:"-"`
39216}
39217
39218func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
39219	type NoMethod ShieldedInstanceIdentityEntry
39220	raw := NoMethod(*s)
39221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39222}
39223
39224// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
39225// against which Instance boot integrity is measured.
39226type ShieldedInstanceIntegrityPolicy struct {
39227	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
39228	// the measurements from the VM instance's most recent boot.
39229	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
39230
39231	// ForceSendFields is a list of field names (e.g.
39232	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
39233	// By default, fields with empty values are omitted from API requests.
39234	// However, any non-pointer, non-interface field appearing in
39235	// ForceSendFields will be sent to the server regardless of whether the
39236	// field is empty or not. This may be used to include empty fields in
39237	// Patch requests.
39238	ForceSendFields []string `json:"-"`
39239
39240	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
39241	// include in API requests with the JSON null value. By default, fields
39242	// with empty values are omitted from API requests. However, any field
39243	// with an empty value appearing in NullFields will be sent to the
39244	// server as null. It is an error if a field in this list has a
39245	// non-empty value. This may be used to include null fields in Patch
39246	// requests.
39247	NullFields []string `json:"-"`
39248}
39249
39250func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
39251	type NoMethod ShieldedInstanceIntegrityPolicy
39252	raw := NoMethod(*s)
39253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39254}
39255
39256// ShieldedVmConfig: A set of Shielded VM options.
39257type ShieldedVmConfig struct {
39258	// EnableIntegrityMonitoring: Defines whether the instance has integrity
39259	// monitoring enabled.
39260	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
39261
39262	// EnableSecureBoot: Defines whether the instance has Secure Boot
39263	// enabled.
39264	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
39265
39266	// EnableVtpm: Defines whether the instance has the vTPM enabled.
39267	EnableVtpm bool `json:"enableVtpm,omitempty"`
39268
39269	// ForceSendFields is a list of field names (e.g.
39270	// "EnableIntegrityMonitoring") to unconditionally include in API
39271	// requests. By default, fields with empty values are omitted from API
39272	// requests. However, any non-pointer, non-interface field appearing in
39273	// ForceSendFields will be sent to the server regardless of whether the
39274	// field is empty or not. This may be used to include empty fields in
39275	// Patch requests.
39276	ForceSendFields []string `json:"-"`
39277
39278	// NullFields is a list of field names (e.g.
39279	// "EnableIntegrityMonitoring") to include in API requests with the JSON
39280	// null value. By default, fields with empty values are omitted from API
39281	// requests. However, any field with an empty value appearing in
39282	// NullFields will be sent to the server as null. It is an error if a
39283	// field in this list has a non-empty value. This may be used to include
39284	// null fields in Patch requests.
39285	NullFields []string `json:"-"`
39286}
39287
39288func (s *ShieldedVmConfig) MarshalJSON() ([]byte, error) {
39289	type NoMethod ShieldedVmConfig
39290	raw := NoMethod(*s)
39291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39292}
39293
39294// ShieldedVmIdentity: A shielded VM identity entry.
39295type ShieldedVmIdentity struct {
39296	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's
39297	// vTPM.
39298	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
39299
39300	// Kind: [Output Only] Type of the resource. Always
39301	// compute#shieldedVmIdentity for shielded VM identity entry.
39302	Kind string `json:"kind,omitempty"`
39303
39304	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
39305	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`
39306
39307	// ServerResponse contains the HTTP response code and headers from the
39308	// server.
39309	googleapi.ServerResponse `json:"-"`
39310
39311	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
39312	// unconditionally include in API requests. By default, fields with
39313	// empty values are omitted from API requests. However, any non-pointer,
39314	// non-interface field appearing in ForceSendFields will be sent to the
39315	// server regardless of whether the field is empty or not. This may be
39316	// used to include empty fields in Patch requests.
39317	ForceSendFields []string `json:"-"`
39318
39319	// NullFields is a list of field names (e.g. "EncryptionKey") to include
39320	// in API requests with the JSON null value. By default, fields with
39321	// empty values are omitted from API requests. However, any field with
39322	// an empty value appearing in NullFields will be sent to the server as
39323	// null. It is an error if a field in this list has a non-empty value.
39324	// This may be used to include null fields in Patch requests.
39325	NullFields []string `json:"-"`
39326}
39327
39328func (s *ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
39329	type NoMethod ShieldedVmIdentity
39330	raw := NoMethod(*s)
39331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39332}
39333
39334// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
39335type ShieldedVmIdentityEntry struct {
39336	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
39337	EkCert string `json:"ekCert,omitempty"`
39338
39339	// EkPub: A PEM-encoded public key.
39340	EkPub string `json:"ekPub,omitempty"`
39341
39342	// ForceSendFields is a list of field names (e.g. "EkCert") to
39343	// unconditionally include in API requests. By default, fields with
39344	// empty values are omitted from API requests. However, any non-pointer,
39345	// non-interface field appearing in ForceSendFields will be sent to the
39346	// server regardless of whether the field is empty or not. This may be
39347	// used to include empty fields in Patch requests.
39348	ForceSendFields []string `json:"-"`
39349
39350	// NullFields is a list of field names (e.g. "EkCert") to include in API
39351	// requests with the JSON null value. By default, fields with empty
39352	// values are omitted from API requests. However, any field with an
39353	// empty value appearing in NullFields will be sent to the server as
39354	// null. It is an error if a field in this list has a non-empty value.
39355	// This may be used to include null fields in Patch requests.
39356	NullFields []string `json:"-"`
39357}
39358
39359func (s *ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
39360	type NoMethod ShieldedVmIdentityEntry
39361	raw := NoMethod(*s)
39362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39363}
39364
39365// ShieldedVmIntegrityPolicy: The policy describes the baseline against
39366// which VM instance boot integrity is measured.
39367type ShieldedVmIntegrityPolicy struct {
39368	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
39369	// the measurements from the VM instance's most recent boot.
39370	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
39371
39372	// ForceSendFields is a list of field names (e.g.
39373	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
39374	// By default, fields with empty values are omitted from API requests.
39375	// However, any non-pointer, non-interface field appearing in
39376	// ForceSendFields will be sent to the server regardless of whether the
39377	// field is empty or not. This may be used to include empty fields in
39378	// Patch requests.
39379	ForceSendFields []string `json:"-"`
39380
39381	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
39382	// include in API requests with the JSON null value. By default, fields
39383	// with empty values are omitted from API requests. However, any field
39384	// with an empty value appearing in NullFields will be sent to the
39385	// server as null. It is an error if a field in this list has a
39386	// non-empty value. This may be used to include null fields in Patch
39387	// requests.
39388	NullFields []string `json:"-"`
39389}
39390
39391func (s *ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
39392	type NoMethod ShieldedVmIntegrityPolicy
39393	raw := NoMethod(*s)
39394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39395}
39396
39397// SignedUrlKey: Represents a customer-supplied Signing Key used by
39398// Cloud CDN Signed URLs
39399type SignedUrlKey struct {
39400	// KeyName: Name of the key. The name must be 1-63 characters long, and
39401	// comply with RFC1035. Specifically, the name must be 1-63 characters
39402	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
39403	// which means the first character must be a lowercase letter, and all
39404	// following characters must be a dash, lowercase letter, or digit,
39405	// except the last character, which cannot be a dash.
39406	KeyName string `json:"keyName,omitempty"`
39407
39408	// KeyValue: 128-bit key value used for signing the URL. The key value
39409	// must be a valid RFC 4648 Section 5 base64url encoded string.
39410	KeyValue string `json:"keyValue,omitempty"`
39411
39412	// ForceSendFields is a list of field names (e.g. "KeyName") to
39413	// unconditionally include in API requests. By default, fields with
39414	// empty values are omitted from API requests. However, any non-pointer,
39415	// non-interface field appearing in ForceSendFields will be sent to the
39416	// server regardless of whether the field is empty or not. This may be
39417	// used to include empty fields in Patch requests.
39418	ForceSendFields []string `json:"-"`
39419
39420	// NullFields is a list of field names (e.g. "KeyName") to include in
39421	// API requests with the JSON null value. By default, fields with empty
39422	// values are omitted from API requests. However, any field with an
39423	// empty value appearing in NullFields will be sent to the server as
39424	// null. It is an error if a field in this list has a non-empty value.
39425	// This may be used to include null fields in Patch requests.
39426	NullFields []string `json:"-"`
39427}
39428
39429func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
39430	type NoMethod SignedUrlKey
39431	raw := NoMethod(*s)
39432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39433}
39434
39435// Snapshot: Represents a Persistent Disk Snapshot resource.
39436//
39437// You can use snapshots to back up data on a regular interval. For more
39438// information, read  Creating persistent disk snapshots. (==
39439// resource_for {$api_version}.snapshots ==)
39440type Snapshot struct {
39441	// AutoCreated: [Output Only] Set to true if snapshots are automatically
39442	// created by applying resource policy on the target disk.
39443	AutoCreated bool `json:"autoCreated,omitempty"`
39444
39445	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39446	// format.
39447	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39448
39449	// Description: An optional description of this resource. Provide this
39450	// property when you create the resource.
39451	Description string `json:"description,omitempty"`
39452
39453	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
39454	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
39455
39456	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
39457	// snapshot to a disk.
39458	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
39459
39460	// GuestOsFeatures: [Output Only] A list of features to enable on the
39461	// guest operating system. Applicable only for bootable images. Read
39462	// Enabling guest operating system features to see a list of available
39463	// options.
39464	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
39465
39466	// Id: [Output Only] The unique identifier for the resource. This
39467	// identifier is defined by the server.
39468	Id uint64 `json:"id,omitempty,string"`
39469
39470	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
39471	// Snapshot resources.
39472	Kind string `json:"kind,omitempty"`
39473
39474	// LabelFingerprint: A fingerprint for the labels being applied to this
39475	// snapshot, which is essentially a hash of the labels set used for
39476	// optimistic locking. The fingerprint is initially generated by Compute
39477	// Engine and changes after every request to modify or update labels.
39478	// You must always provide an up-to-date fingerprint hash in order to
39479	// update or change labels, otherwise the request will fail with error
39480	// 412 conditionNotMet.
39481	//
39482	// To see the latest fingerprint, make a get() request to retrieve a
39483	// snapshot.
39484	LabelFingerprint string `json:"labelFingerprint,omitempty"`
39485
39486	// Labels: Labels to apply to this snapshot. These can be later modified
39487	// by the setLabels method. Label values may be empty.
39488	Labels map[string]string `json:"labels,omitempty"`
39489
39490	// LicenseCodes: [Output Only] Integer license codes indicating which
39491	// licenses are attached to this snapshot.
39492	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
39493
39494	// Licenses: [Output Only] A list of public visible licenses that apply
39495	// to this snapshot. This can be because the original image had licenses
39496	// attached (such as a Windows image).
39497	Licenses []string `json:"licenses,omitempty"`
39498
39499	// Name: Name of the resource; provided by the client when the resource
39500	// is created. The name must be 1-63 characters long, and comply with
39501	// RFC1035. Specifically, the name must be 1-63 characters long and
39502	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39503	// the first character must be a lowercase letter, and all following
39504	// characters must be a dash, lowercase letter, or digit, except the
39505	// last character, which cannot be a dash.
39506	Name string `json:"name,omitempty"`
39507
39508	// SelfLink: [Output Only] Server-defined URL for the resource.
39509	SelfLink string `json:"selfLink,omitempty"`
39510
39511	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
39512	// resource id.
39513	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
39514
39515	// SnapshotEncryptionKey: Encrypts the snapshot using a
39516	// customer-supplied encryption key.
39517	//
39518	// After you encrypt a snapshot using a customer-supplied key, you must
39519	// provide the same key if you use the snapshot later. For example, you
39520	// must provide the encryption key when you create a disk from the
39521	// encrypted snapshot in a future request.
39522	//
39523	// Customer-supplied encryption keys do not protect access to metadata
39524	// of the snapshot.
39525	//
39526	// If you do not provide an encryption key when creating the snapshot,
39527	// then the snapshot will be encrypted using an automatically generated
39528	// key and you do not need to provide a key to use the snapshot later.
39529	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
39530
39531	// SourceDisk: [Output Only] The source disk used to create this
39532	// snapshot.
39533	SourceDisk string `json:"sourceDisk,omitempty"`
39534
39535	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
39536	// source disk. Required if the source disk is protected by a
39537	// customer-supplied encryption key.
39538	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
39539
39540	// SourceDiskId: [Output Only] The ID value of the disk used to create
39541	// this snapshot. This value may be used to determine whether the
39542	// snapshot was taken from the current or a previous instance of a given
39543	// disk name.
39544	SourceDiskId string `json:"sourceDiskId,omitempty"`
39545
39546	// Status: [Output Only] The status of the snapshot. This can be
39547	// CREATING, DELETING, FAILED, READY, or UPLOADING.
39548	//
39549	// Possible values:
39550	//   "CREATING"
39551	//   "DELETING"
39552	//   "FAILED"
39553	//   "READY"
39554	//   "UPLOADING"
39555	Status string `json:"status,omitempty"`
39556
39557	// StorageBytes: [Output Only] A size of the storage used by the
39558	// snapshot. As snapshots share storage, this number is expected to
39559	// change with snapshot creation/deletion.
39560	StorageBytes int64 `json:"storageBytes,omitempty,string"`
39561
39562	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
39563	// is in a stable state or it is being adjusted as a result of shared
39564	// storage reallocation. This status can either be UPDATING, meaning the
39565	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
39566	// size of the snapshot is up-to-date.
39567	//
39568	// Possible values:
39569	//   "UPDATING"
39570	//   "UP_TO_DATE"
39571	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
39572
39573	// StorageLocations: Cloud Storage bucket storage location of the
39574	// snapshot (regional or multi-regional).
39575	StorageLocations []string `json:"storageLocations,omitempty"`
39576
39577	// ServerResponse contains the HTTP response code and headers from the
39578	// server.
39579	googleapi.ServerResponse `json:"-"`
39580
39581	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
39582	// unconditionally include in API requests. By default, fields with
39583	// empty values are omitted from API requests. However, any non-pointer,
39584	// non-interface field appearing in ForceSendFields will be sent to the
39585	// server regardless of whether the field is empty or not. This may be
39586	// used to include empty fields in Patch requests.
39587	ForceSendFields []string `json:"-"`
39588
39589	// NullFields is a list of field names (e.g. "AutoCreated") to include
39590	// in API requests with the JSON null value. By default, fields with
39591	// empty values are omitted from API requests. However, any field with
39592	// an empty value appearing in NullFields will be sent to the server as
39593	// null. It is an error if a field in this list has a non-empty value.
39594	// This may be used to include null fields in Patch requests.
39595	NullFields []string `json:"-"`
39596}
39597
39598func (s *Snapshot) MarshalJSON() ([]byte, error) {
39599	type NoMethod Snapshot
39600	raw := NoMethod(*s)
39601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39602}
39603
39604// SnapshotList: Contains a list of Snapshot resources.
39605type SnapshotList struct {
39606	// Id: [Output Only] Unique identifier for the resource; defined by the
39607	// server.
39608	Id string `json:"id,omitempty"`
39609
39610	// Items: A list of Snapshot resources.
39611	Items []*Snapshot `json:"items,omitempty"`
39612
39613	// Kind: Type of resource.
39614	Kind string `json:"kind,omitempty"`
39615
39616	// NextPageToken: [Output Only] This token allows you to get the next
39617	// page of results for list requests. If the number of results is larger
39618	// than maxResults, use the nextPageToken as a value for the query
39619	// parameter pageToken in the next list request. Subsequent list
39620	// requests will have their own nextPageToken to continue paging through
39621	// the results.
39622	NextPageToken string `json:"nextPageToken,omitempty"`
39623
39624	// SelfLink: [Output Only] Server-defined URL for this resource.
39625	SelfLink string `json:"selfLink,omitempty"`
39626
39627	// Warning: [Output Only] Informational warning message.
39628	Warning *SnapshotListWarning `json:"warning,omitempty"`
39629
39630	// ServerResponse contains the HTTP response code and headers from the
39631	// server.
39632	googleapi.ServerResponse `json:"-"`
39633
39634	// ForceSendFields is a list of field names (e.g. "Id") to
39635	// unconditionally include in API requests. By default, fields with
39636	// empty values are omitted from API requests. However, any non-pointer,
39637	// non-interface field appearing in ForceSendFields will be sent to the
39638	// server regardless of whether the field is empty or not. This may be
39639	// used to include empty fields in Patch requests.
39640	ForceSendFields []string `json:"-"`
39641
39642	// NullFields is a list of field names (e.g. "Id") to include in API
39643	// requests with the JSON null value. By default, fields with empty
39644	// values are omitted from API requests. However, any field with an
39645	// empty value appearing in NullFields will be sent to the server as
39646	// null. It is an error if a field in this list has a non-empty value.
39647	// This may be used to include null fields in Patch requests.
39648	NullFields []string `json:"-"`
39649}
39650
39651func (s *SnapshotList) MarshalJSON() ([]byte, error) {
39652	type NoMethod SnapshotList
39653	raw := NoMethod(*s)
39654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39655}
39656
39657// SnapshotListWarning: [Output Only] Informational warning message.
39658type SnapshotListWarning struct {
39659	// Code: [Output Only] A warning code, if applicable. For example,
39660	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39661	// the response.
39662	//
39663	// Possible values:
39664	//   "CLEANUP_FAILED"
39665	//   "DEPRECATED_RESOURCE_USED"
39666	//   "DEPRECATED_TYPE_USED"
39667	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39668	//   "EXPERIMENTAL_TYPE_USED"
39669	//   "EXTERNAL_API_WARNING"
39670	//   "FIELD_VALUE_OVERRIDEN"
39671	//   "INJECTED_KERNELS_DEPRECATED"
39672	//   "MISSING_TYPE_DEPENDENCY"
39673	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39674	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39675	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39676	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39677	//   "NEXT_HOP_NOT_RUNNING"
39678	//   "NOT_CRITICAL_ERROR"
39679	//   "NO_RESULTS_ON_PAGE"
39680	//   "PARTIAL_SUCCESS"
39681	//   "REQUIRED_TOS_AGREEMENT"
39682	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39683	//   "RESOURCE_NOT_DELETED"
39684	//   "SCHEMA_VALIDATION_IGNORED"
39685	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39686	//   "UNDECLARED_PROPERTIES"
39687	//   "UNREACHABLE"
39688	Code string `json:"code,omitempty"`
39689
39690	// Data: [Output Only] Metadata about this warning in key: value format.
39691	// For example:
39692	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39693	Data []*SnapshotListWarningData `json:"data,omitempty"`
39694
39695	// Message: [Output Only] A human-readable description of the warning
39696	// code.
39697	Message string `json:"message,omitempty"`
39698
39699	// ForceSendFields is a list of field names (e.g. "Code") to
39700	// unconditionally include in API requests. By default, fields with
39701	// empty values are omitted from API requests. However, any non-pointer,
39702	// non-interface field appearing in ForceSendFields will be sent to the
39703	// server regardless of whether the field is empty or not. This may be
39704	// used to include empty fields in Patch requests.
39705	ForceSendFields []string `json:"-"`
39706
39707	// NullFields is a list of field names (e.g. "Code") to include in API
39708	// requests with the JSON null value. By default, fields with empty
39709	// values are omitted from API requests. However, any field with an
39710	// empty value appearing in NullFields will be sent to the server as
39711	// null. It is an error if a field in this list has a non-empty value.
39712	// This may be used to include null fields in Patch requests.
39713	NullFields []string `json:"-"`
39714}
39715
39716func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
39717	type NoMethod SnapshotListWarning
39718	raw := NoMethod(*s)
39719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39720}
39721
39722type SnapshotListWarningData struct {
39723	// Key: [Output Only] A key that provides more detail on the warning
39724	// being returned. For example, for warnings where there are no results
39725	// in a list request for a particular zone, this key might be scope and
39726	// the key value might be the zone name. Other examples might be a key
39727	// indicating a deprecated resource and a suggested replacement, or a
39728	// warning about invalid network settings (for example, if an instance
39729	// attempts to perform IP forwarding but is not enabled for IP
39730	// forwarding).
39731	Key string `json:"key,omitempty"`
39732
39733	// Value: [Output Only] A warning data value corresponding to the key.
39734	Value string `json:"value,omitempty"`
39735
39736	// ForceSendFields is a list of field names (e.g. "Key") to
39737	// unconditionally include in API requests. By default, fields with
39738	// empty values are omitted from API requests. However, any non-pointer,
39739	// non-interface field appearing in ForceSendFields will be sent to the
39740	// server regardless of whether the field is empty or not. This may be
39741	// used to include empty fields in Patch requests.
39742	ForceSendFields []string `json:"-"`
39743
39744	// NullFields is a list of field names (e.g. "Key") to include in API
39745	// requests with the JSON null value. By default, fields with empty
39746	// values are omitted from API requests. However, any field with an
39747	// empty value appearing in NullFields will be sent to the server as
39748	// null. It is an error if a field in this list has a non-empty value.
39749	// This may be used to include null fields in Patch requests.
39750	NullFields []string `json:"-"`
39751}
39752
39753func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
39754	type NoMethod SnapshotListWarningData
39755	raw := NoMethod(*s)
39756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39757}
39758
39759type SourceDiskEncryptionKey struct {
39760	// DiskEncryptionKey: The customer-supplied encryption key of the source
39761	// disk. Required if the source disk is protected by a customer-supplied
39762	// encryption key.
39763	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
39764
39765	// SourceDisk: URL of the disk attached to the source instance. This can
39766	// be a full or valid partial URL. For example, the following are valid
39767	// values:
39768	// -
39769	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
39770	// - projects/project/zones/zone/disks/disk
39771	// - zones/zone/disks/disk
39772	SourceDisk string `json:"sourceDisk,omitempty"`
39773
39774	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
39775	// to unconditionally include in API requests. By default, fields with
39776	// empty values are omitted from API requests. However, any non-pointer,
39777	// non-interface field appearing in ForceSendFields will be sent to the
39778	// server regardless of whether the field is empty or not. This may be
39779	// used to include empty fields in Patch requests.
39780	ForceSendFields []string `json:"-"`
39781
39782	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
39783	// include in API requests with the JSON null value. By default, fields
39784	// with empty values are omitted from API requests. However, any field
39785	// with an empty value appearing in NullFields will be sent to the
39786	// server as null. It is an error if a field in this list has a
39787	// non-empty value. This may be used to include null fields in Patch
39788	// requests.
39789	NullFields []string `json:"-"`
39790}
39791
39792func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
39793	type NoMethod SourceDiskEncryptionKey
39794	raw := NoMethod(*s)
39795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39796}
39797
39798// SourceInstanceParams: A specification of the parameters to use when
39799// creating the instance template from a source instance.
39800type SourceInstanceParams struct {
39801	// DiskConfigs: Attached disks configuration. If not provided, defaults
39802	// are applied: For boot disk and any other R/W disks, new custom images
39803	// will be created from each disk. For read-only disks, they will be
39804	// attached in read-only mode. Local SSD disks will be created as blank
39805	// volumes.
39806	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
39807
39808	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
39809	// unconditionally include in API requests. By default, fields with
39810	// empty values are omitted from API requests. However, any non-pointer,
39811	// non-interface field appearing in ForceSendFields will be sent to the
39812	// server regardless of whether the field is empty or not. This may be
39813	// used to include empty fields in Patch requests.
39814	ForceSendFields []string `json:"-"`
39815
39816	// NullFields is a list of field names (e.g. "DiskConfigs") to include
39817	// in API requests with the JSON null value. By default, fields with
39818	// empty values are omitted from API requests. However, any field with
39819	// an empty value appearing in NullFields will be sent to the server as
39820	// null. It is an error if a field in this list has a non-empty value.
39821	// This may be used to include null fields in Patch requests.
39822	NullFields []string `json:"-"`
39823}
39824
39825func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
39826	type NoMethod SourceInstanceParams
39827	raw := NoMethod(*s)
39828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39829}
39830
39831type SourceInstanceProperties struct {
39832	// CanIpForward: Enables instances created based on this machine image
39833	// to send packets with source IP addresses other than their own and
39834	// receive packets with destination IP addresses other than their own.
39835	// If these instances will be used as an IP gateway or it will be set as
39836	// the next-hop in a Route resource, specify true. If unsure, leave this
39837	// set to false. See the Enable IP forwarding documentation for more
39838	// information.
39839	CanIpForward bool `json:"canIpForward,omitempty"`
39840
39841	// DeletionProtection: Whether the instance created from this machine
39842	// image should be protected against deletion.
39843	DeletionProtection bool `json:"deletionProtection,omitempty"`
39844
39845	// Description: An optional text description for the instances that are
39846	// created from this machine image.
39847	Description string `json:"description,omitempty"`
39848
39849	// Disks: An array of disks that are associated with the instances that
39850	// are created from this machine image.
39851	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
39852
39853	// GuestAccelerators: A list of guest accelerator cards' type and count
39854	// to use for instances created from this machine image.
39855	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
39856
39857	// Labels: Labels to apply to instances that are created from this
39858	// machine image.
39859	Labels map[string]string `json:"labels,omitempty"`
39860
39861	// MachineType: The machine type to use for instances that are created
39862	// from this machine image.
39863	MachineType string `json:"machineType,omitempty"`
39864
39865	// Metadata: The metadata key/value pairs to assign to instances that
39866	// are created from this machine image. These pairs can consist of
39867	// custom metadata or predefined keys. See Project and instance metadata
39868	// for more information.
39869	Metadata *Metadata `json:"metadata,omitempty"`
39870
39871	// MinCpuPlatform: Minimum cpu/platform to be used by instances created
39872	// from this machine image. The instance may be scheduled on the
39873	// specified or newer cpu/platform. Applicable values are the friendly
39874	// names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or
39875	// minCpuPlatform: "Intel Sandy Bridge". For more information, read
39876	// Specifying a Minimum CPU Platform.
39877	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
39878
39879	// NetworkInterfaces: An array of network access configurations for this
39880	// interface.
39881	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
39882
39883	// Scheduling: Specifies the scheduling options for the instances that
39884	// are created from this machine image.
39885	Scheduling *Scheduling `json:"scheduling,omitempty"`
39886
39887	// ServiceAccounts: A list of service accounts with specified scopes.
39888	// Access tokens for these service accounts are available to the
39889	// instances that are created from this machine image. Use metadata
39890	// queries to obtain the access tokens for these instances.
39891	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
39892
39893	// Tags: A list of tags to apply to the instances that are created from
39894	// this machine image. The tags identify valid sources or targets for
39895	// network firewalls. The setTags method can modify this list of tags.
39896	// Each tag within the list must comply with RFC1035.
39897	Tags *Tags `json:"tags,omitempty"`
39898
39899	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
39900	// unconditionally include in API requests. By default, fields with
39901	// empty values are omitted from API requests. However, any non-pointer,
39902	// non-interface field appearing in ForceSendFields will be sent to the
39903	// server regardless of whether the field is empty or not. This may be
39904	// used to include empty fields in Patch requests.
39905	ForceSendFields []string `json:"-"`
39906
39907	// NullFields is a list of field names (e.g. "CanIpForward") to include
39908	// in API requests with the JSON null value. By default, fields with
39909	// empty values are omitted from API requests. However, any field with
39910	// an 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 *SourceInstanceProperties) MarshalJSON() ([]byte, error) {
39917	type NoMethod SourceInstanceProperties
39918	raw := NoMethod(*s)
39919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39920}
39921
39922// SslCertificate: Represents an SSL Certificate resource.
39923//
39924// Google Compute Engine has two SSL Certificate resources:
39925//
39926// *
39927// [Global](/compute/docs/reference/rest/{$api_version}/sslCertificates)
39928// *
39929// [Regional](/compute/docs/reference/rest/{$api_version}/regionSslCertif
39930// icates)
39931//
39932//
39933//
39934// The sslCertificates are used by:
39935// - external HTTPS load balancers
39936// - SSL proxy load balancers
39937//
39938// The regionSslCertificates are used by internal HTTPS load
39939// balancers.
39940//
39941// Optionally, certificate file contents that you upload can contain a
39942// set of up to five PEM-encoded certificates. The API call creates an
39943// object (sslCertificate) that holds this data. You can use SSL keys
39944// and certificates to secure connections to a load balancer. For more
39945// information, read  Creating and using SSL certificates and SSL
39946// certificates quotas and limits. (== resource_for
39947// {$api_version}.sslCertificates ==) (== resource_for
39948// {$api_version}.regionSslCertificates ==)
39949type SslCertificate struct {
39950	// Certificate: A local certificate file. The certificate must be in PEM
39951	// format. The certificate chain must be no greater than 5 certs long.
39952	// The chain must include at least one intermediate cert.
39953	Certificate string `json:"certificate,omitempty"`
39954
39955	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39956	// format.
39957	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39958
39959	// Description: An optional description of this resource. Provide this
39960	// property when you create the resource.
39961	Description string `json:"description,omitempty"`
39962
39963	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
39964	ExpireTime string `json:"expireTime,omitempty"`
39965
39966	// Id: [Output Only] The unique identifier for the resource. This
39967	// identifier is defined by the server.
39968	Id uint64 `json:"id,omitempty,string"`
39969
39970	// Kind: [Output Only] Type of the resource. Always
39971	// compute#sslCertificate for SSL certificates.
39972	Kind string `json:"kind,omitempty"`
39973
39974	// Managed: Configuration and status of a managed SSL certificate.
39975	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
39976
39977	// Name: Name of the resource. Provided by the client when the resource
39978	// is created. The name must be 1-63 characters long, and comply with
39979	// RFC1035. Specifically, the name must be 1-63 characters long and
39980	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39981	// the first character must be a lowercase letter, and all following
39982	// characters must be a dash, lowercase letter, or digit, except the
39983	// last character, which cannot be a dash.
39984	Name string `json:"name,omitempty"`
39985
39986	// PrivateKey: A write-only private key in PEM format. Only insert
39987	// requests will include this field.
39988	PrivateKey string `json:"privateKey,omitempty"`
39989
39990	// Region: [Output Only] URL of the region where the regional SSL
39991	// Certificate resides. This field is not applicable to global SSL
39992	// Certificate.
39993	Region string `json:"region,omitempty"`
39994
39995	// SelfLink: [Output only] Server-defined URL for the resource.
39996	SelfLink string `json:"selfLink,omitempty"`
39997
39998	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
39999	// with the resource id.
40000	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
40001
40002	// SelfManaged: Configuration and status of a self-managed SSL
40003	// certificate.
40004	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
40005
40006	// SubjectAlternativeNames: [Output Only] Domains associated with the
40007	// certificate via Subject Alternative Name.
40008	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
40009
40010	// Type: (Optional) Specifies the type of SSL certificate, either
40011	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
40012	// self-managed and the fields certificate and private_key are used.
40013	//
40014	// Possible values:
40015	//   "MANAGED"
40016	//   "SELF_MANAGED"
40017	//   "TYPE_UNSPECIFIED"
40018	Type string `json:"type,omitempty"`
40019
40020	// ServerResponse contains the HTTP response code and headers from the
40021	// server.
40022	googleapi.ServerResponse `json:"-"`
40023
40024	// ForceSendFields is a list of field names (e.g. "Certificate") to
40025	// unconditionally include in API requests. By default, fields with
40026	// empty values are omitted from API requests. However, any non-pointer,
40027	// non-interface field appearing in ForceSendFields will be sent to the
40028	// server regardless of whether the field is empty or not. This may be
40029	// used to include empty fields in Patch requests.
40030	ForceSendFields []string `json:"-"`
40031
40032	// NullFields is a list of field names (e.g. "Certificate") to include
40033	// in API requests with the JSON null value. By default, fields with
40034	// empty values are omitted from API requests. However, any field with
40035	// an empty value appearing in NullFields will be sent to the server as
40036	// null. It is an error if a field in this list has a non-empty value.
40037	// This may be used to include null fields in Patch requests.
40038	NullFields []string `json:"-"`
40039}
40040
40041func (s *SslCertificate) MarshalJSON() ([]byte, error) {
40042	type NoMethod SslCertificate
40043	raw := NoMethod(*s)
40044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40045}
40046
40047type SslCertificateAggregatedList struct {
40048	// Id: [Output Only] Unique identifier for the resource; defined by the
40049	// server.
40050	Id string `json:"id,omitempty"`
40051
40052	// Items: A list of SslCertificatesScopedList resources.
40053	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
40054
40055	// Kind: [Output Only] Type of resource. Always
40056	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
40057	Kind string `json:"kind,omitempty"`
40058
40059	// NextPageToken: [Output Only] This token allows you to get the next
40060	// page of results for list requests. If the number of results is larger
40061	// than maxResults, use the nextPageToken as a value for the query
40062	// parameter pageToken in the next list request. Subsequent list
40063	// requests will have their own nextPageToken to continue paging through
40064	// the results.
40065	NextPageToken string `json:"nextPageToken,omitempty"`
40066
40067	// SelfLink: [Output Only] Server-defined URL for this resource.
40068	SelfLink string `json:"selfLink,omitempty"`
40069
40070	// Unreachables: [Output Only] Unreachable resources.
40071	Unreachables []string `json:"unreachables,omitempty"`
40072
40073	// Warning: [Output Only] Informational warning message.
40074	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
40075
40076	// ServerResponse contains the HTTP response code and headers from the
40077	// server.
40078	googleapi.ServerResponse `json:"-"`
40079
40080	// ForceSendFields is a list of field names (e.g. "Id") to
40081	// unconditionally include in API requests. By default, fields with
40082	// empty values are omitted from API requests. However, any non-pointer,
40083	// non-interface field appearing in ForceSendFields will be sent to the
40084	// server regardless of whether the field is empty or not. This may be
40085	// used to include empty fields in Patch requests.
40086	ForceSendFields []string `json:"-"`
40087
40088	// NullFields is a list of field names (e.g. "Id") to include in API
40089	// requests with the JSON null value. By default, fields with empty
40090	// values are omitted from API requests. However, any field with an
40091	// empty value appearing in NullFields will be sent to the server as
40092	// null. It is an error if a field in this list has a non-empty value.
40093	// This may be used to include null fields in Patch requests.
40094	NullFields []string `json:"-"`
40095}
40096
40097func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
40098	type NoMethod SslCertificateAggregatedList
40099	raw := NoMethod(*s)
40100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40101}
40102
40103// SslCertificateAggregatedListWarning: [Output Only] Informational
40104// warning message.
40105type SslCertificateAggregatedListWarning struct {
40106	// Code: [Output Only] A warning code, if applicable. For example,
40107	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40108	// the response.
40109	//
40110	// Possible values:
40111	//   "CLEANUP_FAILED"
40112	//   "DEPRECATED_RESOURCE_USED"
40113	//   "DEPRECATED_TYPE_USED"
40114	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40115	//   "EXPERIMENTAL_TYPE_USED"
40116	//   "EXTERNAL_API_WARNING"
40117	//   "FIELD_VALUE_OVERRIDEN"
40118	//   "INJECTED_KERNELS_DEPRECATED"
40119	//   "MISSING_TYPE_DEPENDENCY"
40120	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40121	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40122	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40123	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40124	//   "NEXT_HOP_NOT_RUNNING"
40125	//   "NOT_CRITICAL_ERROR"
40126	//   "NO_RESULTS_ON_PAGE"
40127	//   "PARTIAL_SUCCESS"
40128	//   "REQUIRED_TOS_AGREEMENT"
40129	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40130	//   "RESOURCE_NOT_DELETED"
40131	//   "SCHEMA_VALIDATION_IGNORED"
40132	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40133	//   "UNDECLARED_PROPERTIES"
40134	//   "UNREACHABLE"
40135	Code string `json:"code,omitempty"`
40136
40137	// Data: [Output Only] Metadata about this warning in key: value format.
40138	// For example:
40139	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40140	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
40141
40142	// Message: [Output Only] A human-readable description of the warning
40143	// code.
40144	Message string `json:"message,omitempty"`
40145
40146	// ForceSendFields is a list of field names (e.g. "Code") to
40147	// unconditionally include in API requests. By default, fields with
40148	// empty values are omitted from API requests. However, any non-pointer,
40149	// non-interface field appearing in ForceSendFields will be sent to the
40150	// server regardless of whether the field is empty or not. This may be
40151	// used to include empty fields in Patch requests.
40152	ForceSendFields []string `json:"-"`
40153
40154	// NullFields is a list of field names (e.g. "Code") to include in API
40155	// requests with the JSON null value. By default, fields with empty
40156	// values are omitted from API requests. However, any field with an
40157	// empty value appearing in NullFields will be sent to the server as
40158	// null. It is an error if a field in this list has a non-empty value.
40159	// This may be used to include null fields in Patch requests.
40160	NullFields []string `json:"-"`
40161}
40162
40163func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
40164	type NoMethod SslCertificateAggregatedListWarning
40165	raw := NoMethod(*s)
40166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40167}
40168
40169type SslCertificateAggregatedListWarningData struct {
40170	// Key: [Output Only] A key that provides more detail on the warning
40171	// being returned. For example, for warnings where there are no results
40172	// in a list request for a particular zone, this key might be scope and
40173	// the key value might be the zone name. Other examples might be a key
40174	// indicating a deprecated resource and a suggested replacement, or a
40175	// warning about invalid network settings (for example, if an instance
40176	// attempts to perform IP forwarding but is not enabled for IP
40177	// forwarding).
40178	Key string `json:"key,omitempty"`
40179
40180	// Value: [Output Only] A warning data value corresponding to the key.
40181	Value string `json:"value,omitempty"`
40182
40183	// ForceSendFields is a list of field names (e.g. "Key") to
40184	// unconditionally include in API requests. By default, fields with
40185	// empty values are omitted from API requests. However, any non-pointer,
40186	// non-interface field appearing in ForceSendFields will be sent to the
40187	// server regardless of whether the field is empty or not. This may be
40188	// used to include empty fields in Patch requests.
40189	ForceSendFields []string `json:"-"`
40190
40191	// NullFields is a list of field names (e.g. "Key") to include in API
40192	// requests with the JSON null value. By default, fields with empty
40193	// values are omitted from API requests. However, any field with an
40194	// empty value appearing in NullFields will be sent to the server as
40195	// null. It is an error if a field in this list has a non-empty value.
40196	// This may be used to include null fields in Patch requests.
40197	NullFields []string `json:"-"`
40198}
40199
40200func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40201	type NoMethod SslCertificateAggregatedListWarningData
40202	raw := NoMethod(*s)
40203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40204}
40205
40206// SslCertificateList: Contains a list of SslCertificate resources.
40207type SslCertificateList struct {
40208	// Id: [Output Only] Unique identifier for the resource; defined by the
40209	// server.
40210	Id string `json:"id,omitempty"`
40211
40212	// Items: A list of SslCertificate resources.
40213	Items []*SslCertificate `json:"items,omitempty"`
40214
40215	// Kind: Type of resource.
40216	Kind string `json:"kind,omitempty"`
40217
40218	// NextPageToken: [Output Only] This token allows you to get the next
40219	// page of results for list requests. If the number of results is larger
40220	// than maxResults, use the nextPageToken as a value for the query
40221	// parameter pageToken in the next list request. Subsequent list
40222	// requests will have their own nextPageToken to continue paging through
40223	// the results.
40224	NextPageToken string `json:"nextPageToken,omitempty"`
40225
40226	// SelfLink: [Output Only] Server-defined URL for this resource.
40227	SelfLink string `json:"selfLink,omitempty"`
40228
40229	// Warning: [Output Only] Informational warning message.
40230	Warning *SslCertificateListWarning `json:"warning,omitempty"`
40231
40232	// ServerResponse contains the HTTP response code and headers from the
40233	// server.
40234	googleapi.ServerResponse `json:"-"`
40235
40236	// ForceSendFields is a list of field names (e.g. "Id") to
40237	// unconditionally include in API requests. By default, fields with
40238	// empty values are omitted from API requests. However, any non-pointer,
40239	// non-interface field appearing in ForceSendFields will be sent to the
40240	// server regardless of whether the field is empty or not. This may be
40241	// used to include empty fields in Patch requests.
40242	ForceSendFields []string `json:"-"`
40243
40244	// NullFields is a list of field names (e.g. "Id") to include in API
40245	// requests with the JSON null value. By default, fields with empty
40246	// values are omitted from API requests. However, any field with an
40247	// empty value appearing in NullFields will be sent to the server as
40248	// null. It is an error if a field in this list has a non-empty value.
40249	// This may be used to include null fields in Patch requests.
40250	NullFields []string `json:"-"`
40251}
40252
40253func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
40254	type NoMethod SslCertificateList
40255	raw := NoMethod(*s)
40256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40257}
40258
40259// SslCertificateListWarning: [Output Only] Informational warning
40260// message.
40261type SslCertificateListWarning struct {
40262	// Code: [Output Only] A warning code, if applicable. For example,
40263	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40264	// the response.
40265	//
40266	// Possible values:
40267	//   "CLEANUP_FAILED"
40268	//   "DEPRECATED_RESOURCE_USED"
40269	//   "DEPRECATED_TYPE_USED"
40270	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40271	//   "EXPERIMENTAL_TYPE_USED"
40272	//   "EXTERNAL_API_WARNING"
40273	//   "FIELD_VALUE_OVERRIDEN"
40274	//   "INJECTED_KERNELS_DEPRECATED"
40275	//   "MISSING_TYPE_DEPENDENCY"
40276	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40277	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40278	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40279	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40280	//   "NEXT_HOP_NOT_RUNNING"
40281	//   "NOT_CRITICAL_ERROR"
40282	//   "NO_RESULTS_ON_PAGE"
40283	//   "PARTIAL_SUCCESS"
40284	//   "REQUIRED_TOS_AGREEMENT"
40285	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40286	//   "RESOURCE_NOT_DELETED"
40287	//   "SCHEMA_VALIDATION_IGNORED"
40288	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40289	//   "UNDECLARED_PROPERTIES"
40290	//   "UNREACHABLE"
40291	Code string `json:"code,omitempty"`
40292
40293	// Data: [Output Only] Metadata about this warning in key: value format.
40294	// For example:
40295	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40296	Data []*SslCertificateListWarningData `json:"data,omitempty"`
40297
40298	// Message: [Output Only] A human-readable description of the warning
40299	// code.
40300	Message string `json:"message,omitempty"`
40301
40302	// ForceSendFields is a list of field names (e.g. "Code") to
40303	// unconditionally include in API requests. By default, fields with
40304	// empty values are omitted from API requests. However, any non-pointer,
40305	// non-interface field appearing in ForceSendFields will be sent to the
40306	// server regardless of whether the field is empty or not. This may be
40307	// used to include empty fields in Patch requests.
40308	ForceSendFields []string `json:"-"`
40309
40310	// NullFields is a list of field names (e.g. "Code") to include in API
40311	// requests with the JSON null value. By default, fields with empty
40312	// values are omitted from API requests. However, any field with an
40313	// empty value appearing in NullFields will be sent to the server as
40314	// null. It is an error if a field in this list has a non-empty value.
40315	// This may be used to include null fields in Patch requests.
40316	NullFields []string `json:"-"`
40317}
40318
40319func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
40320	type NoMethod SslCertificateListWarning
40321	raw := NoMethod(*s)
40322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40323}
40324
40325type SslCertificateListWarningData struct {
40326	// Key: [Output Only] A key that provides more detail on the warning
40327	// being returned. For example, for warnings where there are no results
40328	// in a list request for a particular zone, this key might be scope and
40329	// the key value might be the zone name. Other examples might be a key
40330	// indicating a deprecated resource and a suggested replacement, or a
40331	// warning about invalid network settings (for example, if an instance
40332	// attempts to perform IP forwarding but is not enabled for IP
40333	// forwarding).
40334	Key string `json:"key,omitempty"`
40335
40336	// Value: [Output Only] A warning data value corresponding to the key.
40337	Value string `json:"value,omitempty"`
40338
40339	// ForceSendFields is a list of field names (e.g. "Key") to
40340	// unconditionally include in API requests. By default, fields with
40341	// empty values are omitted from API requests. However, any non-pointer,
40342	// non-interface field appearing in ForceSendFields will be sent to the
40343	// server regardless of whether the field is empty or not. This may be
40344	// used to include empty fields in Patch requests.
40345	ForceSendFields []string `json:"-"`
40346
40347	// NullFields is a list of field names (e.g. "Key") to include in API
40348	// requests with the JSON null value. By default, fields with empty
40349	// values are omitted from API requests. However, any field with an
40350	// empty value appearing in NullFields will be sent to the server as
40351	// null. It is an error if a field in this list has a non-empty value.
40352	// This may be used to include null fields in Patch requests.
40353	NullFields []string `json:"-"`
40354}
40355
40356func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
40357	type NoMethod SslCertificateListWarningData
40358	raw := NoMethod(*s)
40359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40360}
40361
40362// SslCertificateManagedSslCertificate: Configuration and status of a
40363// managed SSL certificate.
40364type SslCertificateManagedSslCertificate struct {
40365	// DomainStatus: [Output only] Detailed statuses of the domains
40366	// specified for managed certificate resource.
40367	DomainStatus map[string]string `json:"domainStatus,omitempty"`
40368
40369	// Domains: The domains for which a managed SSL certificate will be
40370	// generated. Currently only single-domain certs are supported.
40371	Domains []string `json:"domains,omitempty"`
40372
40373	// Status: [Output only] Status of the managed certificate resource.
40374	//
40375	// Possible values:
40376	//   "ACTIVE"
40377	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
40378	//   "PROVISIONING"
40379	//   "PROVISIONING_FAILED"
40380	//   "PROVISIONING_FAILED_PERMANENTLY"
40381	//   "RENEWAL_FAILED"
40382	Status string `json:"status,omitempty"`
40383
40384	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
40385	// unconditionally include in API requests. By default, fields with
40386	// empty values are omitted from API requests. However, any non-pointer,
40387	// non-interface field appearing in ForceSendFields will be sent to the
40388	// server regardless of whether the field is empty or not. This may be
40389	// used to include empty fields in Patch requests.
40390	ForceSendFields []string `json:"-"`
40391
40392	// NullFields is a list of field names (e.g. "DomainStatus") to include
40393	// in API requests with the JSON null value. By default, fields with
40394	// empty values are omitted from API requests. However, any field with
40395	// an empty value appearing in NullFields will be sent to the server as
40396	// null. It is an error if a field in this list has a non-empty value.
40397	// This may be used to include null fields in Patch requests.
40398	NullFields []string `json:"-"`
40399}
40400
40401func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
40402	type NoMethod SslCertificateManagedSslCertificate
40403	raw := NoMethod(*s)
40404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40405}
40406
40407// SslCertificateSelfManagedSslCertificate: Configuration and status of
40408// a self-managed SSL certificate.
40409type SslCertificateSelfManagedSslCertificate struct {
40410	// Certificate: A local certificate file. The certificate must be in PEM
40411	// format. The certificate chain must be no greater than 5 certs long.
40412	// The chain must include at least one intermediate cert.
40413	Certificate string `json:"certificate,omitempty"`
40414
40415	// PrivateKey: A write-only private key in PEM format. Only insert
40416	// requests will include this field.
40417	PrivateKey string `json:"privateKey,omitempty"`
40418
40419	// ForceSendFields is a list of field names (e.g. "Certificate") to
40420	// unconditionally include in API requests. By default, fields with
40421	// empty values are omitted from API requests. However, any non-pointer,
40422	// non-interface field appearing in ForceSendFields will be sent to the
40423	// server regardless of whether the field is empty or not. This may be
40424	// used to include empty fields in Patch requests.
40425	ForceSendFields []string `json:"-"`
40426
40427	// NullFields is a list of field names (e.g. "Certificate") to include
40428	// in API requests with the JSON null value. By default, fields with
40429	// empty values are omitted from API requests. However, any field with
40430	// an empty value appearing in NullFields will be sent to the server as
40431	// null. It is an error if a field in this list has a non-empty value.
40432	// This may be used to include null fields in Patch requests.
40433	NullFields []string `json:"-"`
40434}
40435
40436func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
40437	type NoMethod SslCertificateSelfManagedSslCertificate
40438	raw := NoMethod(*s)
40439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40440}
40441
40442type SslCertificatesScopedList struct {
40443	// SslCertificates: List of SslCertificates contained in this scope.
40444	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
40445
40446	// Warning: Informational warning which replaces the list of backend
40447	// services when the list is empty.
40448	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
40449
40450	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
40451	// unconditionally include in API requests. By default, fields with
40452	// empty values are omitted from API requests. However, any non-pointer,
40453	// non-interface field appearing in ForceSendFields will be sent to the
40454	// server regardless of whether the field is empty or not. This may be
40455	// used to include empty fields in Patch requests.
40456	ForceSendFields []string `json:"-"`
40457
40458	// NullFields is a list of field names (e.g. "SslCertificates") to
40459	// include in API requests with the JSON null value. By default, fields
40460	// with empty values are omitted from API requests. However, any field
40461	// with an empty value appearing in NullFields will be sent to the
40462	// server as null. It is an error if a field in this list has a
40463	// non-empty value. This may be used to include null fields in Patch
40464	// requests.
40465	NullFields []string `json:"-"`
40466}
40467
40468func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
40469	type NoMethod SslCertificatesScopedList
40470	raw := NoMethod(*s)
40471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40472}
40473
40474// SslCertificatesScopedListWarning: Informational warning which
40475// replaces the list of backend services when the list is empty.
40476type SslCertificatesScopedListWarning struct {
40477	// Code: [Output Only] A warning code, if applicable. For example,
40478	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40479	// the response.
40480	//
40481	// Possible values:
40482	//   "CLEANUP_FAILED"
40483	//   "DEPRECATED_RESOURCE_USED"
40484	//   "DEPRECATED_TYPE_USED"
40485	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40486	//   "EXPERIMENTAL_TYPE_USED"
40487	//   "EXTERNAL_API_WARNING"
40488	//   "FIELD_VALUE_OVERRIDEN"
40489	//   "INJECTED_KERNELS_DEPRECATED"
40490	//   "MISSING_TYPE_DEPENDENCY"
40491	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40492	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40493	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40494	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40495	//   "NEXT_HOP_NOT_RUNNING"
40496	//   "NOT_CRITICAL_ERROR"
40497	//   "NO_RESULTS_ON_PAGE"
40498	//   "PARTIAL_SUCCESS"
40499	//   "REQUIRED_TOS_AGREEMENT"
40500	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40501	//   "RESOURCE_NOT_DELETED"
40502	//   "SCHEMA_VALIDATION_IGNORED"
40503	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40504	//   "UNDECLARED_PROPERTIES"
40505	//   "UNREACHABLE"
40506	Code string `json:"code,omitempty"`
40507
40508	// Data: [Output Only] Metadata about this warning in key: value format.
40509	// For example:
40510	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40511	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
40512
40513	// Message: [Output Only] A human-readable description of the warning
40514	// code.
40515	Message string `json:"message,omitempty"`
40516
40517	// ForceSendFields is a list of field names (e.g. "Code") to
40518	// unconditionally include in API requests. By default, fields with
40519	// empty values are omitted from API requests. However, any non-pointer,
40520	// non-interface field appearing in ForceSendFields will be sent to the
40521	// server regardless of whether the field is empty or not. This may be
40522	// used to include empty fields in Patch requests.
40523	ForceSendFields []string `json:"-"`
40524
40525	// NullFields is a list of field names (e.g. "Code") to include in API
40526	// requests with the JSON null value. By default, fields with empty
40527	// values are omitted from API requests. However, any field with an
40528	// empty value appearing in NullFields will be sent to the server as
40529	// null. It is an error if a field in this list has a non-empty value.
40530	// This may be used to include null fields in Patch requests.
40531	NullFields []string `json:"-"`
40532}
40533
40534func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
40535	type NoMethod SslCertificatesScopedListWarning
40536	raw := NoMethod(*s)
40537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40538}
40539
40540type SslCertificatesScopedListWarningData struct {
40541	// Key: [Output Only] A key that provides more detail on the warning
40542	// being returned. For example, for warnings where there are no results
40543	// in a list request for a particular zone, this key might be scope and
40544	// the key value might be the zone name. Other examples might be a key
40545	// indicating a deprecated resource and a suggested replacement, or a
40546	// warning about invalid network settings (for example, if an instance
40547	// attempts to perform IP forwarding but is not enabled for IP
40548	// forwarding).
40549	Key string `json:"key,omitempty"`
40550
40551	// Value: [Output Only] A warning data value corresponding to the key.
40552	Value string `json:"value,omitempty"`
40553
40554	// ForceSendFields is a list of field names (e.g. "Key") to
40555	// unconditionally include in API requests. By default, fields with
40556	// empty values are omitted from API requests. However, any non-pointer,
40557	// non-interface field appearing in ForceSendFields will be sent to the
40558	// server regardless of whether the field is empty or not. This may be
40559	// used to include empty fields in Patch requests.
40560	ForceSendFields []string `json:"-"`
40561
40562	// NullFields is a list of field names (e.g. "Key") to include in API
40563	// requests with the JSON null value. By default, fields with empty
40564	// values are omitted from API requests. However, any field with an
40565	// empty value appearing in NullFields will be sent to the server as
40566	// null. It is an error if a field in this list has a non-empty value.
40567	// This may be used to include null fields in Patch requests.
40568	NullFields []string `json:"-"`
40569}
40570
40571func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
40572	type NoMethod SslCertificatesScopedListWarningData
40573	raw := NoMethod(*s)
40574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40575}
40576
40577type SslPoliciesList struct {
40578	// Id: [Output Only] Unique identifier for the resource; defined by the
40579	// server.
40580	Id string `json:"id,omitempty"`
40581
40582	// Items: A list of SslPolicy resources.
40583	Items []*SslPolicy `json:"items,omitempty"`
40584
40585	// Kind: [Output Only] Type of the resource. Always
40586	// compute#sslPoliciesList for lists of sslPolicies.
40587	Kind string `json:"kind,omitempty"`
40588
40589	// NextPageToken: [Output Only] This token allows you to get the next
40590	// page of results for list requests. If the number of results is larger
40591	// than maxResults, use the nextPageToken as a value for the query
40592	// parameter pageToken in the next list request. Subsequent list
40593	// requests will have their own nextPageToken to continue paging through
40594	// the results.
40595	NextPageToken string `json:"nextPageToken,omitempty"`
40596
40597	// SelfLink: [Output Only] Server-defined URL for this resource.
40598	SelfLink string `json:"selfLink,omitempty"`
40599
40600	// Warning: [Output Only] Informational warning message.
40601	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
40602
40603	// ServerResponse contains the HTTP response code and headers from the
40604	// server.
40605	googleapi.ServerResponse `json:"-"`
40606
40607	// ForceSendFields is a list of field names (e.g. "Id") to
40608	// unconditionally include in API requests. By default, fields with
40609	// empty values are omitted from API requests. However, any non-pointer,
40610	// non-interface field appearing in ForceSendFields will be sent to the
40611	// server regardless of whether the field is empty or not. This may be
40612	// used to include empty fields in Patch requests.
40613	ForceSendFields []string `json:"-"`
40614
40615	// NullFields is a list of field names (e.g. "Id") to include in API
40616	// requests with the JSON null value. By default, fields with empty
40617	// values are omitted from API requests. However, any field with an
40618	// empty value appearing in NullFields will be sent to the server as
40619	// null. It is an error if a field in this list has a non-empty value.
40620	// This may be used to include null fields in Patch requests.
40621	NullFields []string `json:"-"`
40622}
40623
40624func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
40625	type NoMethod SslPoliciesList
40626	raw := NoMethod(*s)
40627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40628}
40629
40630// SslPoliciesListWarning: [Output Only] Informational warning message.
40631type SslPoliciesListWarning struct {
40632	// Code: [Output Only] A warning code, if applicable. For example,
40633	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40634	// the response.
40635	//
40636	// Possible values:
40637	//   "CLEANUP_FAILED"
40638	//   "DEPRECATED_RESOURCE_USED"
40639	//   "DEPRECATED_TYPE_USED"
40640	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40641	//   "EXPERIMENTAL_TYPE_USED"
40642	//   "EXTERNAL_API_WARNING"
40643	//   "FIELD_VALUE_OVERRIDEN"
40644	//   "INJECTED_KERNELS_DEPRECATED"
40645	//   "MISSING_TYPE_DEPENDENCY"
40646	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40647	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40648	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40649	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40650	//   "NEXT_HOP_NOT_RUNNING"
40651	//   "NOT_CRITICAL_ERROR"
40652	//   "NO_RESULTS_ON_PAGE"
40653	//   "PARTIAL_SUCCESS"
40654	//   "REQUIRED_TOS_AGREEMENT"
40655	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40656	//   "RESOURCE_NOT_DELETED"
40657	//   "SCHEMA_VALIDATION_IGNORED"
40658	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40659	//   "UNDECLARED_PROPERTIES"
40660	//   "UNREACHABLE"
40661	Code string `json:"code,omitempty"`
40662
40663	// Data: [Output Only] Metadata about this warning in key: value format.
40664	// For example:
40665	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40666	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
40667
40668	// Message: [Output Only] A human-readable description of the warning
40669	// code.
40670	Message string `json:"message,omitempty"`
40671
40672	// ForceSendFields is a list of field names (e.g. "Code") to
40673	// unconditionally include in API requests. By default, fields with
40674	// empty values are omitted from API requests. However, any non-pointer,
40675	// non-interface field appearing in ForceSendFields will be sent to the
40676	// server regardless of whether the field is empty or not. This may be
40677	// used to include empty fields in Patch requests.
40678	ForceSendFields []string `json:"-"`
40679
40680	// NullFields is a list of field names (e.g. "Code") to include in API
40681	// requests with the JSON null value. By default, fields with empty
40682	// values are omitted from API requests. However, any field with an
40683	// empty value appearing in NullFields will be sent to the server as
40684	// null. It is an error if a field in this list has a non-empty value.
40685	// This may be used to include null fields in Patch requests.
40686	NullFields []string `json:"-"`
40687}
40688
40689func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
40690	type NoMethod SslPoliciesListWarning
40691	raw := NoMethod(*s)
40692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40693}
40694
40695type SslPoliciesListWarningData struct {
40696	// Key: [Output Only] A key that provides more detail on the warning
40697	// being returned. For example, for warnings where there are no results
40698	// in a list request for a particular zone, this key might be scope and
40699	// the key value might be the zone name. Other examples might be a key
40700	// indicating a deprecated resource and a suggested replacement, or a
40701	// warning about invalid network settings (for example, if an instance
40702	// attempts to perform IP forwarding but is not enabled for IP
40703	// forwarding).
40704	Key string `json:"key,omitempty"`
40705
40706	// Value: [Output Only] A warning data value corresponding to the key.
40707	Value string `json:"value,omitempty"`
40708
40709	// ForceSendFields is a list of field names (e.g. "Key") to
40710	// unconditionally include in API requests. By default, fields with
40711	// empty values are omitted from API requests. However, any non-pointer,
40712	// non-interface field appearing in ForceSendFields will be sent to the
40713	// server regardless of whether the field is empty or not. This may be
40714	// used to include empty fields in Patch requests.
40715	ForceSendFields []string `json:"-"`
40716
40717	// NullFields is a list of field names (e.g. "Key") to include in API
40718	// requests with the JSON null value. By default, fields with empty
40719	// values are omitted from API requests. However, any field with an
40720	// empty value appearing in NullFields will be sent to the server as
40721	// null. It is an error if a field in this list has a non-empty value.
40722	// This may be used to include null fields in Patch requests.
40723	NullFields []string `json:"-"`
40724}
40725
40726func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
40727	type NoMethod SslPoliciesListWarningData
40728	raw := NoMethod(*s)
40729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40730}
40731
40732type SslPoliciesListAvailableFeaturesResponse struct {
40733	Features []string `json:"features,omitempty"`
40734
40735	// ServerResponse contains the HTTP response code and headers from the
40736	// server.
40737	googleapi.ServerResponse `json:"-"`
40738
40739	// ForceSendFields is a list of field names (e.g. "Features") to
40740	// unconditionally include in API requests. By default, fields with
40741	// empty values are omitted from API requests. However, any non-pointer,
40742	// non-interface field appearing in ForceSendFields will be sent to the
40743	// server regardless of whether the field is empty or not. This may be
40744	// used to include empty fields in Patch requests.
40745	ForceSendFields []string `json:"-"`
40746
40747	// NullFields is a list of field names (e.g. "Features") to include in
40748	// API requests with the JSON null value. By default, fields with empty
40749	// values are omitted from API requests. However, any field with an
40750	// empty value appearing in NullFields will be sent to the server as
40751	// null. It is an error if a field in this list has a non-empty value.
40752	// This may be used to include null fields in Patch requests.
40753	NullFields []string `json:"-"`
40754}
40755
40756func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
40757	type NoMethod SslPoliciesListAvailableFeaturesResponse
40758	raw := NoMethod(*s)
40759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40760}
40761
40762// SslPolicy: Represents a Cloud Armor Security Policy resource.
40763//
40764// Only external backend services used by HTTP or HTTPS load balancers
40765// can reference a Security Policy. For more information, read read
40766// Cloud Armor Security Policy Concepts. (== resource_for
40767// {$api_version}.sslPolicies ==)
40768type SslPolicy struct {
40769	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40770	// format.
40771	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40772
40773	// CustomFeatures: A list of features enabled when the selected profile
40774	// is CUSTOM. The
40775	// - method returns the set of features that can be specified in this
40776	// list. This field must be empty if the profile is not CUSTOM.
40777	CustomFeatures []string `json:"customFeatures,omitempty"`
40778
40779	// Description: An optional description of this resource. Provide this
40780	// property when you create the resource.
40781	Description string `json:"description,omitempty"`
40782
40783	// EnabledFeatures: [Output Only] The list of features enabled in the
40784	// SSL policy.
40785	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
40786
40787	// Fingerprint: Fingerprint of this resource. A hash of the contents
40788	// stored in this object. This field is used in optimistic locking. This
40789	// field will be ignored when inserting a SslPolicy. An up-to-date
40790	// fingerprint must be provided in order to update the SslPolicy,
40791	// otherwise the request will fail with error 412 conditionNotMet.
40792	//
40793	// To see the latest fingerprint, make a get() request to retrieve an
40794	// SslPolicy.
40795	Fingerprint string `json:"fingerprint,omitempty"`
40796
40797	// Id: [Output Only] The unique identifier for the resource. This
40798	// identifier is defined by the server.
40799	Id uint64 `json:"id,omitempty,string"`
40800
40801	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
40802	// SSL policies.
40803	Kind string `json:"kind,omitempty"`
40804
40805	// MinTlsVersion: The minimum version of SSL protocol that can be used
40806	// by the clients to establish a connection with the load balancer. This
40807	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
40808	//
40809	// Possible values:
40810	//   "TLS_1_0"
40811	//   "TLS_1_1"
40812	//   "TLS_1_2"
40813	MinTlsVersion string `json:"minTlsVersion,omitempty"`
40814
40815	// Name: Name of the resource. The name must be 1-63 characters long,
40816	// and comply with RFC1035. Specifically, the name must be 1-63
40817	// characters long and match the regular expression
40818	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
40819	// a lowercase letter, and all following characters must be a dash,
40820	// lowercase letter, or digit, except the last character, which cannot
40821	// be a dash.
40822	Name string `json:"name,omitempty"`
40823
40824	// Profile: Profile specifies the set of SSL features that can be used
40825	// by the load balancer when negotiating SSL with clients. This can be
40826	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
40827	// the set of SSL features to enable must be specified in the
40828	// customFeatures field.
40829	//
40830	// Possible values:
40831	//   "COMPATIBLE"
40832	//   "CUSTOM"
40833	//   "MODERN"
40834	//   "RESTRICTED"
40835	Profile string `json:"profile,omitempty"`
40836
40837	// SelfLink: [Output Only] Server-defined URL for the resource.
40838	SelfLink string `json:"selfLink,omitempty"`
40839
40840	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
40841	// with the resource id.
40842	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
40843
40844	// TlsSettings: Security settings for the proxy. This field is only
40845	// applicable to a global backend service with the loadBalancingScheme
40846	// set to INTERNAL_SELF_MANAGED.
40847	TlsSettings *ServerTlsSettings `json:"tlsSettings,omitempty"`
40848
40849	// Warnings: [Output Only] If potential misconfigurations are detected
40850	// for this SSL policy, this field will be populated with warning
40851	// messages.
40852	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
40853
40854	// ServerResponse contains the HTTP response code and headers from the
40855	// server.
40856	googleapi.ServerResponse `json:"-"`
40857
40858	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40859	// to unconditionally include in API requests. By default, fields with
40860	// empty values are omitted from API requests. However, any non-pointer,
40861	// non-interface field appearing in ForceSendFields will be sent to the
40862	// server regardless of whether the field is empty or not. This may be
40863	// used to include empty fields in Patch requests.
40864	ForceSendFields []string `json:"-"`
40865
40866	// NullFields is a list of field names (e.g. "CreationTimestamp") to
40867	// include in API requests with the JSON null value. By default, fields
40868	// with empty values are omitted from API requests. However, any field
40869	// with an empty value appearing in NullFields will be sent to the
40870	// server as null. It is an error if a field in this list has a
40871	// non-empty value. This may be used to include null fields in Patch
40872	// requests.
40873	NullFields []string `json:"-"`
40874}
40875
40876func (s *SslPolicy) MarshalJSON() ([]byte, error) {
40877	type NoMethod SslPolicy
40878	raw := NoMethod(*s)
40879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40880}
40881
40882type SslPolicyWarnings struct {
40883	// Code: [Output Only] A warning code, if applicable. For example,
40884	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40885	// the response.
40886	//
40887	// Possible values:
40888	//   "CLEANUP_FAILED"
40889	//   "DEPRECATED_RESOURCE_USED"
40890	//   "DEPRECATED_TYPE_USED"
40891	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40892	//   "EXPERIMENTAL_TYPE_USED"
40893	//   "EXTERNAL_API_WARNING"
40894	//   "FIELD_VALUE_OVERRIDEN"
40895	//   "INJECTED_KERNELS_DEPRECATED"
40896	//   "MISSING_TYPE_DEPENDENCY"
40897	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40898	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40899	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40900	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40901	//   "NEXT_HOP_NOT_RUNNING"
40902	//   "NOT_CRITICAL_ERROR"
40903	//   "NO_RESULTS_ON_PAGE"
40904	//   "PARTIAL_SUCCESS"
40905	//   "REQUIRED_TOS_AGREEMENT"
40906	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40907	//   "RESOURCE_NOT_DELETED"
40908	//   "SCHEMA_VALIDATION_IGNORED"
40909	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40910	//   "UNDECLARED_PROPERTIES"
40911	//   "UNREACHABLE"
40912	Code string `json:"code,omitempty"`
40913
40914	// Data: [Output Only] Metadata about this warning in key: value format.
40915	// For example:
40916	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40917	Data []*SslPolicyWarningsData `json:"data,omitempty"`
40918
40919	// Message: [Output Only] A human-readable description of the warning
40920	// code.
40921	Message string `json:"message,omitempty"`
40922
40923	// ForceSendFields is a list of field names (e.g. "Code") to
40924	// unconditionally include in API requests. By default, fields with
40925	// empty values are omitted from API requests. However, any non-pointer,
40926	// non-interface field appearing in ForceSendFields will be sent to the
40927	// server regardless of whether the field is empty or not. This may be
40928	// used to include empty fields in Patch requests.
40929	ForceSendFields []string `json:"-"`
40930
40931	// NullFields is a list of field names (e.g. "Code") to include in API
40932	// requests with the JSON null value. By default, fields with empty
40933	// values are omitted from API requests. However, any field with an
40934	// empty value appearing in NullFields will be sent to the server as
40935	// null. It is an error if a field in this list has a non-empty value.
40936	// This may be used to include null fields in Patch requests.
40937	NullFields []string `json:"-"`
40938}
40939
40940func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
40941	type NoMethod SslPolicyWarnings
40942	raw := NoMethod(*s)
40943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40944}
40945
40946type SslPolicyWarningsData struct {
40947	// Key: [Output Only] A key that provides more detail on the warning
40948	// being returned. For example, for warnings where there are no results
40949	// in a list request for a particular zone, this key might be scope and
40950	// the key value might be the zone name. Other examples might be a key
40951	// indicating a deprecated resource and a suggested replacement, or a
40952	// warning about invalid network settings (for example, if an instance
40953	// attempts to perform IP forwarding but is not enabled for IP
40954	// forwarding).
40955	Key string `json:"key,omitempty"`
40956
40957	// Value: [Output Only] A warning data value corresponding to the key.
40958	Value string `json:"value,omitempty"`
40959
40960	// ForceSendFields is a list of field names (e.g. "Key") to
40961	// unconditionally include in API requests. By default, fields with
40962	// empty values are omitted from API requests. However, any non-pointer,
40963	// non-interface field appearing in ForceSendFields will be sent to the
40964	// server regardless of whether the field is empty or not. This may be
40965	// used to include empty fields in Patch requests.
40966	ForceSendFields []string `json:"-"`
40967
40968	// NullFields is a list of field names (e.g. "Key") to include in API
40969	// requests with the JSON null value. By default, fields with empty
40970	// values are omitted from API requests. However, any field with an
40971	// empty value appearing in NullFields will be sent to the server as
40972	// null. It is an error if a field in this list has a non-empty value.
40973	// This may be used to include null fields in Patch requests.
40974	NullFields []string `json:"-"`
40975}
40976
40977func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
40978	type NoMethod SslPolicyWarningsData
40979	raw := NoMethod(*s)
40980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40981}
40982
40983type SslPolicyReference struct {
40984	// SslPolicy: URL of the SSL policy resource. Set this to empty string
40985	// to clear any existing SSL policy associated with the target proxy
40986	// resource.
40987	SslPolicy string `json:"sslPolicy,omitempty"`
40988
40989	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
40990	// unconditionally include in API requests. By default, fields with
40991	// empty values are omitted from API requests. However, any non-pointer,
40992	// non-interface field appearing in ForceSendFields will be sent to the
40993	// server regardless of whether the field is empty or not. This may be
40994	// used to include empty fields in Patch requests.
40995	ForceSendFields []string `json:"-"`
40996
40997	// NullFields is a list of field names (e.g. "SslPolicy") to include in
40998	// API requests with the JSON null value. By default, fields with empty
40999	// values are omitted from API requests. However, any field with an
41000	// empty value appearing in NullFields will be sent to the server as
41001	// null. It is an error if a field in this list has a non-empty value.
41002	// This may be used to include null fields in Patch requests.
41003	NullFields []string `json:"-"`
41004}
41005
41006func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
41007	type NoMethod SslPolicyReference
41008	raw := NoMethod(*s)
41009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41010}
41011
41012type StatefulPolicy struct {
41013	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
41014
41015	// ForceSendFields is a list of field names (e.g. "PreservedState") to
41016	// unconditionally include in API requests. By default, fields with
41017	// empty values are omitted from API requests. However, any non-pointer,
41018	// non-interface field appearing in ForceSendFields will be sent to the
41019	// server regardless of whether the field is empty or not. This may be
41020	// used to include empty fields in Patch requests.
41021	ForceSendFields []string `json:"-"`
41022
41023	// NullFields is a list of field names (e.g. "PreservedState") to
41024	// include in API requests with the JSON null value. By default, fields
41025	// with empty values are omitted from API requests. However, any field
41026	// with an empty value appearing in NullFields will be sent to the
41027	// server as null. It is an error if a field in this list has a
41028	// non-empty value. This may be used to include null fields in Patch
41029	// requests.
41030	NullFields []string `json:"-"`
41031}
41032
41033func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
41034	type NoMethod StatefulPolicy
41035	raw := NoMethod(*s)
41036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41037}
41038
41039// StatefulPolicyPreservedState: Configuration of preserved resources.
41040type StatefulPolicyPreservedState struct {
41041	// Disks: Disks created on the instances that will be preserved on
41042	// instance delete, update, etc. This map is keyed with the device names
41043	// of the disks.
41044	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
41045
41046	// ForceSendFields is a list of field names (e.g. "Disks") to
41047	// unconditionally include in API requests. By default, fields with
41048	// empty values are omitted from API requests. However, any non-pointer,
41049	// non-interface field appearing in ForceSendFields will be sent to the
41050	// server regardless of whether the field is empty or not. This may be
41051	// used to include empty fields in Patch requests.
41052	ForceSendFields []string `json:"-"`
41053
41054	// NullFields is a list of field names (e.g. "Disks") to include in API
41055	// requests with the JSON null value. By default, fields with empty
41056	// values are omitted from API requests. However, any field with an
41057	// empty value appearing in NullFields will be sent to the server as
41058	// null. It is an error if a field in this list has a non-empty value.
41059	// This may be used to include null fields in Patch requests.
41060	NullFields []string `json:"-"`
41061}
41062
41063func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
41064	type NoMethod StatefulPolicyPreservedState
41065	raw := NoMethod(*s)
41066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41067}
41068
41069type StatefulPolicyPreservedStateDiskDevice struct {
41070	// AutoDelete: These stateful disks will never be deleted during
41071	// autohealing, update or VM instance recreate operations. This flag is
41072	// used to configure if the disk should be deleted after it is no longer
41073	// used by the group, e.g. when the given instance or the whole group is
41074	// deleted. Note: disks attached in READ_ONLY mode cannot be
41075	// auto-deleted.
41076	//
41077	// Possible values:
41078	//   "NEVER"
41079	//   "ON_PERMANENT_INSTANCE_DELETION"
41080	AutoDelete string `json:"autoDelete,omitempty"`
41081
41082	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
41083	// unconditionally include in API requests. By default, fields with
41084	// empty values are omitted from API requests. However, any non-pointer,
41085	// non-interface field appearing in ForceSendFields will be sent to the
41086	// server regardless of whether the field is empty or not. This may be
41087	// used to include empty fields in Patch requests.
41088	ForceSendFields []string `json:"-"`
41089
41090	// NullFields is a list of field names (e.g. "AutoDelete") to include in
41091	// API requests with the JSON null value. By default, fields with empty
41092	// values are omitted from API requests. However, any field with an
41093	// empty value appearing in NullFields will be sent to the server as
41094	// null. It is an error if a field in this list has a non-empty value.
41095	// This may be used to include null fields in Patch requests.
41096	NullFields []string `json:"-"`
41097}
41098
41099func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
41100	type NoMethod StatefulPolicyPreservedStateDiskDevice
41101	raw := NoMethod(*s)
41102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41103}
41104
41105// Subnetwork: Represents a Subnetwork resource.
41106//
41107// A subnetwork (also known as a subnet) is a logical partition of a
41108// Virtual Private Cloud network with one primary IP range and zero or
41109// more secondary IP ranges. For more information, read  Virtual Private
41110// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
41111type Subnetwork struct {
41112	// AggregationInterval: Can only be specified if VPC flow logging for
41113	// this subnetwork is enabled. Sets the aggregation interval for
41114	// collecting flow logs. Increasing the interval time reduces the amount
41115	// of generated flow logs for long-lasting connections. Default is an
41116	// interval of 5 seconds per connection. Valid values: INTERVAL_5_SEC,
41117	// INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN,
41118	// INTERVAL_15_MIN.
41119	//
41120	// Possible values:
41121	//   "INTERVAL_10_MIN"
41122	//   "INTERVAL_15_MIN"
41123	//   "INTERVAL_1_MIN"
41124	//   "INTERVAL_30_SEC"
41125	//   "INTERVAL_5_MIN"
41126	//   "INTERVAL_5_SEC"
41127	AggregationInterval string `json:"aggregationInterval,omitempty"`
41128
41129	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict
41130	// with static routes. Setting this to true allows this subnetwork's
41131	// primary and secondary ranges to conflict with routes that have
41132	// already been configured on the corresponding network. Static routes
41133	// will take precedence over the subnetwork route if the route prefix
41134	// length is at least as large as the subnetwork prefix length.
41135	//
41136	// Also, packets destined to IPs within subnetwork may contain
41137	// private/sensitive data and are prevented from leaving the virtual
41138	// network. Setting this field to true will disable this feature.
41139	//
41140	// The default value is false and applies to all existing subnetworks
41141	// and automatically created subnetworks.
41142	//
41143	// This field cannot be set to true at resource creation time.
41144	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
41145
41146	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41147	// format.
41148	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41149
41150	// Description: An optional description of this resource. Provide this
41151	// property when you create the resource. This field can be set only at
41152	// resource creation time.
41153	Description string `json:"description,omitempty"`
41154
41155	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
41156	// If this field is not explicitly set, it will not appear in get
41157	// listings. If not set the default behavior is to disable flow logging.
41158	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
41159
41160	// EnablePrivateV6Access: Deprecated in favor of enable in
41161	// PrivateIpv6GoogleAccess. Whether the VMs in this subnet can directly
41162	// access Google services via internal IPv6 addresses. This field can be
41163	// both set at resource creation time and updated using patch.
41164	EnablePrivateV6Access bool `json:"enablePrivateV6Access,omitempty"`
41165
41166	// Fingerprint: Fingerprint of this resource. A hash of the contents
41167	// stored in this object. This field is used in optimistic locking. This
41168	// field will be ignored when inserting a Subnetwork. An up-to-date
41169	// fingerprint must be provided in order to update the Subnetwork,
41170	// otherwise the request will fail with error 412 conditionNotMet.
41171	//
41172	// To see the latest fingerprint, make a get() request to retrieve a
41173	// Subnetwork.
41174	Fingerprint string `json:"fingerprint,omitempty"`
41175
41176	// FlowSampling: Can only be specified if VPC flow logging for this
41177	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
41178	// the sampling rate of VPC flow logs within the subnetwork where 1.0
41179	// means all collected logs are reported and 0.0 means no logs are
41180	// reported. Default is 0.5, which means half of all collected logs are
41181	// reported.
41182	FlowSampling float64 `json:"flowSampling,omitempty"`
41183
41184	// GatewayAddress: [Output Only] The gateway address for default routes
41185	// to reach destination addresses outside this subnetwork.
41186	GatewayAddress string `json:"gatewayAddress,omitempty"`
41187
41188	// Id: [Output Only] The unique identifier for the resource. This
41189	// identifier is defined by the server.
41190	Id uint64 `json:"id,omitempty,string"`
41191
41192	// IpCidrRange: The range of internal addresses that are owned by this
41193	// subnetwork. Provide this property when you create the subnetwork. For
41194	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
41195	// non-overlapping within a network. Only IPv4 is supported. This field
41196	// can be set only at resource creation time.
41197	IpCidrRange string `json:"ipCidrRange,omitempty"`
41198
41199	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
41200	// that are owned by this subnetwork.
41201	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
41202
41203	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
41204	// for Subnetwork resources.
41205	Kind string `json:"kind,omitempty"`
41206
41207	// LogConfig: This field denotes the VPC flow logging options for this
41208	// subnetwork. If logging is enabled, logs are exported to Stackdriver.
41209	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
41210
41211	// Metadata: Can only be specified if VPC flow logging for this
41212	// subnetwork is enabled. Configures whether metadata fields should be
41213	// added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
41214	//
41215	// Possible values:
41216	//   "EXCLUDE_ALL_METADATA"
41217	//   "INCLUDE_ALL_METADATA"
41218	Metadata string `json:"metadata,omitempty"`
41219
41220	// Name: The name of the resource, provided by the client when initially
41221	// creating the resource. The name must be 1-63 characters long, and
41222	// comply with RFC1035. Specifically, the name must be 1-63 characters
41223	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
41224	// which means the first character must be a lowercase letter, and all
41225	// following characters must be a dash, lowercase letter, or digit,
41226	// except the last character, which cannot be a dash.
41227	Name string `json:"name,omitempty"`
41228
41229	// Network: The URL of the network to which this subnetwork belongs,
41230	// provided by the client when initially creating the subnetwork. Only
41231	// networks that are in the distributed mode can have subnetworks. This
41232	// field can be set only at resource creation time.
41233	Network string `json:"network,omitempty"`
41234
41235	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
41236	// Google services without assigned external IP addresses. This field
41237	// can be both set at resource creation time and updated using
41238	// setPrivateIpGoogleAccess.
41239	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
41240
41241	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
41242	// VMs in this subnet. This is an expanded field of
41243	// enablePrivateV6Access. If both fields are set,
41244	// privateIpv6GoogleAccess will take priority.
41245	//
41246	// This field can be both set at resource creation time and updated
41247	// using patch.
41248	//
41249	// Possible values:
41250	//   "DISABLE_GOOGLE_ACCESS"
41251	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
41252	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
41253	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS"
41254	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
41255
41256	// PrivateIpv6GoogleAccessServiceAccounts: Deprecated in favor of enable
41257	// PrivateIpv6GoogleAccess on instance directly. The service accounts
41258	// can be used to selectively turn on Private IPv6 Google Access only on
41259	// the VMs primary service account matching the value. This value only
41260	// takes effect when PrivateIpv6GoogleAccess is
41261	// ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or
41262	// ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS.
41263	PrivateIpv6GoogleAccessServiceAccounts []string `json:"privateIpv6GoogleAccessServiceAccounts,omitempty"`
41264
41265	// Purpose: The purpose of the resource. This field can be either
41266	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
41267	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
41268	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
41269	// unspecified, the purpose defaults to PRIVATE_RFC_1918.
41270	//
41271	// Possible values:
41272	//   "AGGREGATE"
41273	//   "INTERNAL_HTTPS_LOAD_BALANCER"
41274	//   "PRIVATE"
41275	//   "PRIVATE_RFC_1918"
41276	Purpose string `json:"purpose,omitempty"`
41277
41278	// Region: URL of the region where the Subnetwork resides. This field
41279	// can be set only at resource creation time.
41280	Region string `json:"region,omitempty"`
41281
41282	// Role: The role of subnetwork. Currently, this field is only used when
41283	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
41284	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
41285	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
41286	// that is ready to be promoted to ACTIVE or is currently draining. This
41287	// field can be updated with a patch request.
41288	//
41289	// Possible values:
41290	//   "ACTIVE"
41291	//   "BACKUP"
41292	Role string `json:"role,omitempty"`
41293
41294	// SecondaryIpRanges: An array of configurations for secondary IP ranges
41295	// for VM instances contained in this subnetwork. The primary IP of such
41296	// VM must belong to the primary ipCidrRange of the subnetwork. The
41297	// alias IPs may belong to either primary or secondary ranges. This
41298	// field can be updated with a patch request.
41299	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
41300
41301	// SelfLink: [Output Only] Server-defined URL for the resource.
41302	SelfLink string `json:"selfLink,omitempty"`
41303
41304	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
41305	// with the resource id.
41306	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
41307
41308	// State: [Output Only] The state of the subnetwork, which can be one of
41309	// READY or DRAINING. A subnetwork that is READY is ready to be used.
41310	// The state of DRAINING is only applicable to subnetworks that have the
41311	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that
41312	// connections to the load balancer are being drained. A subnetwork that
41313	// is draining cannot be used or modified until it reaches a status of
41314	// READY.
41315	//
41316	// Possible values:
41317	//   "DRAINING"
41318	//   "READY"
41319	State string `json:"state,omitempty"`
41320
41321	// ServerResponse contains the HTTP response code and headers from the
41322	// server.
41323	googleapi.ServerResponse `json:"-"`
41324
41325	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
41326	// to unconditionally include in API requests. By default, fields with
41327	// empty values are omitted from API requests. However, any non-pointer,
41328	// non-interface field appearing in ForceSendFields will be sent to the
41329	// server regardless of whether the field is empty or not. This may be
41330	// used to include empty fields in Patch requests.
41331	ForceSendFields []string `json:"-"`
41332
41333	// NullFields is a list of field names (e.g. "AggregationInterval") to
41334	// include in API requests with the JSON null value. By default, fields
41335	// with empty values are omitted from API requests. However, any field
41336	// with an empty value appearing in NullFields will be sent to the
41337	// server as null. It is an error if a field in this list has a
41338	// non-empty value. This may be used to include null fields in Patch
41339	// requests.
41340	NullFields []string `json:"-"`
41341}
41342
41343func (s *Subnetwork) MarshalJSON() ([]byte, error) {
41344	type NoMethod Subnetwork
41345	raw := NoMethod(*s)
41346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41347}
41348
41349func (s *Subnetwork) UnmarshalJSON(data []byte) error {
41350	type NoMethod Subnetwork
41351	var s1 struct {
41352		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
41353		*NoMethod
41354	}
41355	s1.NoMethod = (*NoMethod)(s)
41356	if err := json.Unmarshal(data, &s1); err != nil {
41357		return err
41358	}
41359	s.FlowSampling = float64(s1.FlowSampling)
41360	return nil
41361}
41362
41363type SubnetworkAggregatedList struct {
41364	// Id: [Output Only] Unique identifier for the resource; defined by the
41365	// server.
41366	Id string `json:"id,omitempty"`
41367
41368	// Items: A list of SubnetworksScopedList resources.
41369	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
41370
41371	// Kind: [Output Only] Type of resource. Always
41372	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
41373	Kind string `json:"kind,omitempty"`
41374
41375	// NextPageToken: [Output Only] This token allows you to get the next
41376	// page of results for list requests. If the number of results is larger
41377	// than maxResults, use the nextPageToken as a value for the query
41378	// parameter pageToken in the next list request. Subsequent list
41379	// requests will have their own nextPageToken to continue paging through
41380	// the results.
41381	NextPageToken string `json:"nextPageToken,omitempty"`
41382
41383	// SelfLink: [Output Only] Server-defined URL for this resource.
41384	SelfLink string `json:"selfLink,omitempty"`
41385
41386	// Unreachables: [Output Only] Unreachable resources.
41387	Unreachables []string `json:"unreachables,omitempty"`
41388
41389	// Warning: [Output Only] Informational warning message.
41390	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
41391
41392	// ServerResponse contains the HTTP response code and headers from the
41393	// server.
41394	googleapi.ServerResponse `json:"-"`
41395
41396	// ForceSendFields is a list of field names (e.g. "Id") to
41397	// unconditionally include in API requests. By default, fields with
41398	// empty values are omitted from API requests. However, any non-pointer,
41399	// non-interface field appearing in ForceSendFields will be sent to the
41400	// server regardless of whether the field is empty or not. This may be
41401	// used to include empty fields in Patch requests.
41402	ForceSendFields []string `json:"-"`
41403
41404	// NullFields is a list of field names (e.g. "Id") to include in API
41405	// requests with the JSON null value. By default, fields with empty
41406	// values are omitted from API requests. However, any field with an
41407	// empty value appearing in NullFields will be sent to the server as
41408	// null. It is an error if a field in this list has a non-empty value.
41409	// This may be used to include null fields in Patch requests.
41410	NullFields []string `json:"-"`
41411}
41412
41413func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
41414	type NoMethod SubnetworkAggregatedList
41415	raw := NoMethod(*s)
41416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41417}
41418
41419// SubnetworkAggregatedListWarning: [Output Only] Informational warning
41420// message.
41421type SubnetworkAggregatedListWarning struct {
41422	// Code: [Output Only] A warning code, if applicable. For example,
41423	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41424	// the response.
41425	//
41426	// Possible values:
41427	//   "CLEANUP_FAILED"
41428	//   "DEPRECATED_RESOURCE_USED"
41429	//   "DEPRECATED_TYPE_USED"
41430	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41431	//   "EXPERIMENTAL_TYPE_USED"
41432	//   "EXTERNAL_API_WARNING"
41433	//   "FIELD_VALUE_OVERRIDEN"
41434	//   "INJECTED_KERNELS_DEPRECATED"
41435	//   "MISSING_TYPE_DEPENDENCY"
41436	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41437	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41438	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41439	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41440	//   "NEXT_HOP_NOT_RUNNING"
41441	//   "NOT_CRITICAL_ERROR"
41442	//   "NO_RESULTS_ON_PAGE"
41443	//   "PARTIAL_SUCCESS"
41444	//   "REQUIRED_TOS_AGREEMENT"
41445	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41446	//   "RESOURCE_NOT_DELETED"
41447	//   "SCHEMA_VALIDATION_IGNORED"
41448	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41449	//   "UNDECLARED_PROPERTIES"
41450	//   "UNREACHABLE"
41451	Code string `json:"code,omitempty"`
41452
41453	// Data: [Output Only] Metadata about this warning in key: value format.
41454	// For example:
41455	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41456	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
41457
41458	// Message: [Output Only] A human-readable description of the warning
41459	// code.
41460	Message string `json:"message,omitempty"`
41461
41462	// ForceSendFields is a list of field names (e.g. "Code") to
41463	// unconditionally include in API requests. By default, fields with
41464	// empty values are omitted from API requests. However, any non-pointer,
41465	// non-interface field appearing in ForceSendFields will be sent to the
41466	// server regardless of whether the field is empty or not. This may be
41467	// used to include empty fields in Patch requests.
41468	ForceSendFields []string `json:"-"`
41469
41470	// NullFields is a list of field names (e.g. "Code") to include in API
41471	// requests with the JSON null value. By default, fields with empty
41472	// values are omitted from API requests. However, any field with an
41473	// empty value appearing in NullFields will be sent to the server as
41474	// null. It is an error if a field in this list has a non-empty value.
41475	// This may be used to include null fields in Patch requests.
41476	NullFields []string `json:"-"`
41477}
41478
41479func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
41480	type NoMethod SubnetworkAggregatedListWarning
41481	raw := NoMethod(*s)
41482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41483}
41484
41485type SubnetworkAggregatedListWarningData struct {
41486	// Key: [Output Only] A key that provides more detail on the warning
41487	// being returned. For example, for warnings where there are no results
41488	// in a list request for a particular zone, this key might be scope and
41489	// the key value might be the zone name. Other examples might be a key
41490	// indicating a deprecated resource and a suggested replacement, or a
41491	// warning about invalid network settings (for example, if an instance
41492	// attempts to perform IP forwarding but is not enabled for IP
41493	// forwarding).
41494	Key string `json:"key,omitempty"`
41495
41496	// Value: [Output Only] A warning data value corresponding to the key.
41497	Value string `json:"value,omitempty"`
41498
41499	// ForceSendFields is a list of field names (e.g. "Key") to
41500	// unconditionally include in API requests. By default, fields with
41501	// empty values are omitted from API requests. However, any non-pointer,
41502	// non-interface field appearing in ForceSendFields will be sent to the
41503	// server regardless of whether the field is empty or not. This may be
41504	// used to include empty fields in Patch requests.
41505	ForceSendFields []string `json:"-"`
41506
41507	// NullFields is a list of field names (e.g. "Key") to include in API
41508	// requests with the JSON null value. By default, fields with empty
41509	// values are omitted from API requests. However, any field with an
41510	// empty value appearing in NullFields will be sent to the server as
41511	// null. It is an error if a field in this list has a non-empty value.
41512	// This may be used to include null fields in Patch requests.
41513	NullFields []string `json:"-"`
41514}
41515
41516func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41517	type NoMethod SubnetworkAggregatedListWarningData
41518	raw := NoMethod(*s)
41519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41520}
41521
41522// SubnetworkList: Contains a list of Subnetwork resources.
41523type SubnetworkList struct {
41524	// Id: [Output Only] Unique identifier for the resource; defined by the
41525	// server.
41526	Id string `json:"id,omitempty"`
41527
41528	// Items: A list of Subnetwork resources.
41529	Items []*Subnetwork `json:"items,omitempty"`
41530
41531	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
41532	// for lists of subnetworks.
41533	Kind string `json:"kind,omitempty"`
41534
41535	// NextPageToken: [Output Only] This token allows you to get the next
41536	// page of results for list requests. If the number of results is larger
41537	// than maxResults, use the nextPageToken as a value for the query
41538	// parameter pageToken in the next list request. Subsequent list
41539	// requests will have their own nextPageToken to continue paging through
41540	// the results.
41541	NextPageToken string `json:"nextPageToken,omitempty"`
41542
41543	// SelfLink: [Output Only] Server-defined URL for this resource.
41544	SelfLink string `json:"selfLink,omitempty"`
41545
41546	// Warning: [Output Only] Informational warning message.
41547	Warning *SubnetworkListWarning `json:"warning,omitempty"`
41548
41549	// ServerResponse contains the HTTP response code and headers from the
41550	// server.
41551	googleapi.ServerResponse `json:"-"`
41552
41553	// ForceSendFields is a list of field names (e.g. "Id") to
41554	// unconditionally include in API requests. By default, fields with
41555	// empty values are omitted from API requests. However, any non-pointer,
41556	// non-interface field appearing in ForceSendFields will be sent to the
41557	// server regardless of whether the field is empty or not. This may be
41558	// used to include empty fields in Patch requests.
41559	ForceSendFields []string `json:"-"`
41560
41561	// NullFields is a list of field names (e.g. "Id") to include in API
41562	// requests with the JSON null value. By default, fields with empty
41563	// values are omitted from API requests. However, any field with an
41564	// empty value appearing in NullFields will be sent to the server as
41565	// null. It is an error if a field in this list has a non-empty value.
41566	// This may be used to include null fields in Patch requests.
41567	NullFields []string `json:"-"`
41568}
41569
41570func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
41571	type NoMethod SubnetworkList
41572	raw := NoMethod(*s)
41573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41574}
41575
41576// SubnetworkListWarning: [Output Only] Informational warning message.
41577type SubnetworkListWarning struct {
41578	// Code: [Output Only] A warning code, if applicable. For example,
41579	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41580	// the response.
41581	//
41582	// Possible values:
41583	//   "CLEANUP_FAILED"
41584	//   "DEPRECATED_RESOURCE_USED"
41585	//   "DEPRECATED_TYPE_USED"
41586	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41587	//   "EXPERIMENTAL_TYPE_USED"
41588	//   "EXTERNAL_API_WARNING"
41589	//   "FIELD_VALUE_OVERRIDEN"
41590	//   "INJECTED_KERNELS_DEPRECATED"
41591	//   "MISSING_TYPE_DEPENDENCY"
41592	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41593	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41594	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41595	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41596	//   "NEXT_HOP_NOT_RUNNING"
41597	//   "NOT_CRITICAL_ERROR"
41598	//   "NO_RESULTS_ON_PAGE"
41599	//   "PARTIAL_SUCCESS"
41600	//   "REQUIRED_TOS_AGREEMENT"
41601	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41602	//   "RESOURCE_NOT_DELETED"
41603	//   "SCHEMA_VALIDATION_IGNORED"
41604	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41605	//   "UNDECLARED_PROPERTIES"
41606	//   "UNREACHABLE"
41607	Code string `json:"code,omitempty"`
41608
41609	// Data: [Output Only] Metadata about this warning in key: value format.
41610	// For example:
41611	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41612	Data []*SubnetworkListWarningData `json:"data,omitempty"`
41613
41614	// Message: [Output Only] A human-readable description of the warning
41615	// code.
41616	Message string `json:"message,omitempty"`
41617
41618	// ForceSendFields is a list of field names (e.g. "Code") to
41619	// unconditionally include in API requests. By default, fields with
41620	// empty values are omitted from API requests. However, any non-pointer,
41621	// non-interface field appearing in ForceSendFields will be sent to the
41622	// server regardless of whether the field is empty or not. This may be
41623	// used to include empty fields in Patch requests.
41624	ForceSendFields []string `json:"-"`
41625
41626	// NullFields is a list of field names (e.g. "Code") to include in API
41627	// requests with the JSON null value. By default, fields with empty
41628	// values are omitted from API requests. However, any field with an
41629	// empty value appearing in NullFields will be sent to the server as
41630	// null. It is an error if a field in this list has a non-empty value.
41631	// This may be used to include null fields in Patch requests.
41632	NullFields []string `json:"-"`
41633}
41634
41635func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
41636	type NoMethod SubnetworkListWarning
41637	raw := NoMethod(*s)
41638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41639}
41640
41641type SubnetworkListWarningData struct {
41642	// Key: [Output Only] A key that provides more detail on the warning
41643	// being returned. For example, for warnings where there are no results
41644	// in a list request for a particular zone, this key might be scope and
41645	// the key value might be the zone name. Other examples might be a key
41646	// indicating a deprecated resource and a suggested replacement, or a
41647	// warning about invalid network settings (for example, if an instance
41648	// attempts to perform IP forwarding but is not enabled for IP
41649	// forwarding).
41650	Key string `json:"key,omitempty"`
41651
41652	// Value: [Output Only] A warning data value corresponding to the key.
41653	Value string `json:"value,omitempty"`
41654
41655	// ForceSendFields is a list of field names (e.g. "Key") to
41656	// unconditionally include in API requests. By default, fields with
41657	// empty values are omitted from API requests. However, any non-pointer,
41658	// non-interface field appearing in ForceSendFields will be sent to the
41659	// server regardless of whether the field is empty or not. This may be
41660	// used to include empty fields in Patch requests.
41661	ForceSendFields []string `json:"-"`
41662
41663	// NullFields is a list of field names (e.g. "Key") to include in API
41664	// requests with the JSON null value. By default, fields with empty
41665	// values are omitted from API requests. However, any field with an
41666	// empty value appearing in NullFields will be sent to the server as
41667	// null. It is an error if a field in this list has a non-empty value.
41668	// This may be used to include null fields in Patch requests.
41669	NullFields []string `json:"-"`
41670}
41671
41672func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
41673	type NoMethod SubnetworkListWarningData
41674	raw := NoMethod(*s)
41675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41676}
41677
41678// SubnetworkLogConfig: The available logging options for this
41679// subnetwork.
41680type SubnetworkLogConfig struct {
41681	// AggregationInterval: Can only be specified if VPC flow logging for
41682	// this subnetwork is enabled. Toggles the aggregation interval for
41683	// collecting flow logs. Increasing the interval time will reduce the
41684	// amount of generated flow logs for long lasting connections. Default
41685	// is an interval of 5 seconds per connection.
41686	//
41687	// Possible values:
41688	//   "INTERVAL_10_MIN"
41689	//   "INTERVAL_15_MIN"
41690	//   "INTERVAL_1_MIN"
41691	//   "INTERVAL_30_SEC"
41692	//   "INTERVAL_5_MIN"
41693	//   "INTERVAL_5_SEC"
41694	AggregationInterval string `json:"aggregationInterval,omitempty"`
41695
41696	// Enable: Whether to enable flow logging for this subnetwork. If this
41697	// field is not explicitly set, it will not appear in get listings. If
41698	// not set the default behavior is to disable flow logging.
41699	Enable bool `json:"enable,omitempty"`
41700
41701	// FilterExpr: Can only be specified if VPC flow logs for this
41702	// subnetwork is enabled. Export filter used to define which VPC flow
41703	// logs should be logged.
41704	FilterExpr string `json:"filterExpr,omitempty"`
41705
41706	// FlowSampling: Can only be specified if VPC flow logging for this
41707	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
41708	// the sampling rate of VPC flow logs within the subnetwork where 1.0
41709	// means all collected logs are reported and 0.0 means no logs are
41710	// reported. Default is 0.5, which means half of all collected logs are
41711	// reported.
41712	FlowSampling float64 `json:"flowSampling,omitempty"`
41713
41714	// Metadata: Can only be specified if VPC flow logs for this subnetwork
41715	// is enabled. Configures whether all, none or a subset of metadata
41716	// fields should be added to the reported VPC flow logs. Default is
41717	// INCLUDE_ALL_METADATA.
41718	//
41719	// Possible values:
41720	//   "CUSTOM_METADATA"
41721	//   "EXCLUDE_ALL_METADATA"
41722	//   "INCLUDE_ALL_METADATA"
41723	Metadata string `json:"metadata,omitempty"`
41724
41725	// MetadataFields: Can only be specified if VPC flow logs for this
41726	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
41727	MetadataFields []string `json:"metadataFields,omitempty"`
41728
41729	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
41730	// to unconditionally include in API requests. By default, fields with
41731	// empty values are omitted from API requests. However, any non-pointer,
41732	// non-interface field appearing in ForceSendFields will be sent to the
41733	// server regardless of whether the field is empty or not. This may be
41734	// used to include empty fields in Patch requests.
41735	ForceSendFields []string `json:"-"`
41736
41737	// NullFields is a list of field names (e.g. "AggregationInterval") to
41738	// include in API requests with the JSON null value. By default, fields
41739	// with empty values are omitted from API requests. However, any field
41740	// with an empty value appearing in NullFields will be sent to the
41741	// server as null. It is an error if a field in this list has a
41742	// non-empty value. This may be used to include null fields in Patch
41743	// requests.
41744	NullFields []string `json:"-"`
41745}
41746
41747func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
41748	type NoMethod SubnetworkLogConfig
41749	raw := NoMethod(*s)
41750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41751}
41752
41753func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
41754	type NoMethod SubnetworkLogConfig
41755	var s1 struct {
41756		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
41757		*NoMethod
41758	}
41759	s1.NoMethod = (*NoMethod)(s)
41760	if err := json.Unmarshal(data, &s1); err != nil {
41761		return err
41762	}
41763	s.FlowSampling = float64(s1.FlowSampling)
41764	return nil
41765}
41766
41767// SubnetworkSecondaryRange: Represents a secondary IP range of a
41768// subnetwork.
41769type SubnetworkSecondaryRange struct {
41770	// IpCidrRange: The range of IP addresses belonging to this subnetwork
41771	// secondary range. Provide this property when you create the
41772	// subnetwork. Ranges must be unique and non-overlapping with all
41773	// primary and secondary IP ranges within a network. Only IPv4 is
41774	// supported.
41775	IpCidrRange string `json:"ipCidrRange,omitempty"`
41776
41777	// RangeName: The name associated with this subnetwork secondary range,
41778	// used when adding an alias IP range to a VM instance. The name must be
41779	// 1-63 characters long, and comply with RFC1035. The name must be
41780	// unique within the subnetwork.
41781	RangeName string `json:"rangeName,omitempty"`
41782
41783	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
41784	// unconditionally include in API requests. By default, fields with
41785	// empty values are omitted from API requests. However, any non-pointer,
41786	// non-interface field appearing in ForceSendFields will be sent to the
41787	// server regardless of whether the field is empty or not. This may be
41788	// used to include empty fields in Patch requests.
41789	ForceSendFields []string `json:"-"`
41790
41791	// NullFields is a list of field names (e.g. "IpCidrRange") to include
41792	// in API requests with the JSON null value. By default, fields with
41793	// empty values are omitted from API requests. However, any field with
41794	// an empty value appearing in NullFields will be sent to the server as
41795	// null. It is an error if a field in this list has a non-empty value.
41796	// This may be used to include null fields in Patch requests.
41797	NullFields []string `json:"-"`
41798}
41799
41800func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
41801	type NoMethod SubnetworkSecondaryRange
41802	raw := NoMethod(*s)
41803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41804}
41805
41806type SubnetworksExpandIpCidrRangeRequest struct {
41807	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
41808	// that are legal on this Subnetwork. This range should be disjoint from
41809	// other subnetworks within this network. This range can only be larger
41810	// than (i.e. a superset of) the range previously defined before the
41811	// update.
41812	IpCidrRange string `json:"ipCidrRange,omitempty"`
41813
41814	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
41815	// unconditionally include in API requests. By default, fields with
41816	// empty values are omitted from API requests. However, any non-pointer,
41817	// non-interface field appearing in ForceSendFields will be sent to the
41818	// server regardless of whether the field is empty or not. This may be
41819	// used to include empty fields in Patch requests.
41820	ForceSendFields []string `json:"-"`
41821
41822	// NullFields is a list of field names (e.g. "IpCidrRange") to include
41823	// in API requests with the JSON null value. By default, fields with
41824	// empty values are omitted from API requests. However, any field with
41825	// an empty value appearing in NullFields will be sent to the server as
41826	// null. It is an error if a field in this list has a non-empty value.
41827	// This may be used to include null fields in Patch requests.
41828	NullFields []string `json:"-"`
41829}
41830
41831func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
41832	type NoMethod SubnetworksExpandIpCidrRangeRequest
41833	raw := NoMethod(*s)
41834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41835}
41836
41837type SubnetworksScopedList struct {
41838	// Subnetworks: A list of subnetworks contained in this scope.
41839	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
41840
41841	// Warning: An informational warning that appears when the list of
41842	// addresses is empty.
41843	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
41844
41845	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
41846	// unconditionally include in API requests. By default, fields with
41847	// empty values are omitted from API requests. However, any non-pointer,
41848	// non-interface field appearing in ForceSendFields will be sent to the
41849	// server regardless of whether the field is empty or not. This may be
41850	// used to include empty fields in Patch requests.
41851	ForceSendFields []string `json:"-"`
41852
41853	// NullFields is a list of field names (e.g. "Subnetworks") to include
41854	// in API requests with the JSON null value. By default, fields with
41855	// empty values are omitted from API requests. However, any field with
41856	// an empty value appearing in NullFields will be sent to the server as
41857	// null. It is an error if a field in this list has a non-empty value.
41858	// This may be used to include null fields in Patch requests.
41859	NullFields []string `json:"-"`
41860}
41861
41862func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
41863	type NoMethod SubnetworksScopedList
41864	raw := NoMethod(*s)
41865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41866}
41867
41868// SubnetworksScopedListWarning: An informational warning that appears
41869// when the list of addresses is empty.
41870type SubnetworksScopedListWarning struct {
41871	// Code: [Output Only] A warning code, if applicable. For example,
41872	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41873	// the response.
41874	//
41875	// Possible values:
41876	//   "CLEANUP_FAILED"
41877	//   "DEPRECATED_RESOURCE_USED"
41878	//   "DEPRECATED_TYPE_USED"
41879	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41880	//   "EXPERIMENTAL_TYPE_USED"
41881	//   "EXTERNAL_API_WARNING"
41882	//   "FIELD_VALUE_OVERRIDEN"
41883	//   "INJECTED_KERNELS_DEPRECATED"
41884	//   "MISSING_TYPE_DEPENDENCY"
41885	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41886	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41887	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41888	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41889	//   "NEXT_HOP_NOT_RUNNING"
41890	//   "NOT_CRITICAL_ERROR"
41891	//   "NO_RESULTS_ON_PAGE"
41892	//   "PARTIAL_SUCCESS"
41893	//   "REQUIRED_TOS_AGREEMENT"
41894	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41895	//   "RESOURCE_NOT_DELETED"
41896	//   "SCHEMA_VALIDATION_IGNORED"
41897	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41898	//   "UNDECLARED_PROPERTIES"
41899	//   "UNREACHABLE"
41900	Code string `json:"code,omitempty"`
41901
41902	// Data: [Output Only] Metadata about this warning in key: value format.
41903	// For example:
41904	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41905	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
41906
41907	// Message: [Output Only] A human-readable description of the warning
41908	// code.
41909	Message string `json:"message,omitempty"`
41910
41911	// ForceSendFields is a list of field names (e.g. "Code") to
41912	// unconditionally include in API requests. By default, fields with
41913	// empty values are omitted from API requests. However, any non-pointer,
41914	// non-interface field appearing in ForceSendFields will be sent to the
41915	// server regardless of whether the field is empty or not. This may be
41916	// used to include empty fields in Patch requests.
41917	ForceSendFields []string `json:"-"`
41918
41919	// NullFields is a list of field names (e.g. "Code") to include in API
41920	// requests with the JSON null value. By default, fields with empty
41921	// values are omitted from API requests. However, any field with an
41922	// empty value appearing in NullFields will be sent to the server as
41923	// null. It is an error if a field in this list has a non-empty value.
41924	// This may be used to include null fields in Patch requests.
41925	NullFields []string `json:"-"`
41926}
41927
41928func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
41929	type NoMethod SubnetworksScopedListWarning
41930	raw := NoMethod(*s)
41931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41932}
41933
41934type SubnetworksScopedListWarningData struct {
41935	// Key: [Output Only] A key that provides more detail on the warning
41936	// being returned. For example, for warnings where there are no results
41937	// in a list request for a particular zone, this key might be scope and
41938	// the key value might be the zone name. Other examples might be a key
41939	// indicating a deprecated resource and a suggested replacement, or a
41940	// warning about invalid network settings (for example, if an instance
41941	// attempts to perform IP forwarding but is not enabled for IP
41942	// forwarding).
41943	Key string `json:"key,omitempty"`
41944
41945	// Value: [Output Only] A warning data value corresponding to the key.
41946	Value string `json:"value,omitempty"`
41947
41948	// ForceSendFields is a list of field names (e.g. "Key") to
41949	// unconditionally include in API requests. By default, fields with
41950	// empty values are omitted from API requests. However, any non-pointer,
41951	// non-interface field appearing in ForceSendFields will be sent to the
41952	// server regardless of whether the field is empty or not. This may be
41953	// used to include empty fields in Patch requests.
41954	ForceSendFields []string `json:"-"`
41955
41956	// NullFields is a list of field names (e.g. "Key") to include in API
41957	// requests with the JSON null value. By default, fields with empty
41958	// values are omitted from API requests. However, any field with an
41959	// empty value appearing in NullFields will be sent to the server as
41960	// null. It is an error if a field in this list has a non-empty value.
41961	// This may be used to include null fields in Patch requests.
41962	NullFields []string `json:"-"`
41963}
41964
41965func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
41966	type NoMethod SubnetworksScopedListWarningData
41967	raw := NoMethod(*s)
41968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41969}
41970
41971type SubnetworksSetPrivateIpGoogleAccessRequest struct {
41972	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
41973
41974	// ForceSendFields is a list of field names (e.g.
41975	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
41976	// By default, fields with empty values are omitted from API requests.
41977	// However, any non-pointer, non-interface field appearing in
41978	// ForceSendFields will be sent to the server regardless of whether the
41979	// field is empty or not. This may be used to include empty fields in
41980	// Patch requests.
41981	ForceSendFields []string `json:"-"`
41982
41983	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
41984	// include in API requests with the JSON null value. By default, fields
41985	// with empty values are omitted from API requests. However, any field
41986	// with an empty value appearing in NullFields will be sent to the
41987	// server as null. It is an error if a field in this list has a
41988	// non-empty value. This may be used to include null fields in Patch
41989	// requests.
41990	NullFields []string `json:"-"`
41991}
41992
41993func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
41994	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
41995	raw := NoMethod(*s)
41996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41997}
41998
41999type TCPHealthCheck struct {
42000	// Port: The TCP port number for the health check request. The default
42001	// value is 80. Valid values are 1 through 65535.
42002	Port int64 `json:"port,omitempty"`
42003
42004	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
42005	// both port and port_name are defined, port takes precedence.
42006	PortName string `json:"portName,omitempty"`
42007
42008	// PortSpecification: Specifies how port is selected for health
42009	// checking, can be one of following values:
42010	// USE_FIXED_PORT: The port number in port is used for health
42011	// checking.
42012	// USE_NAMED_PORT: The portName is used for health
42013	// checking.
42014	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
42015	// each network endpoint is used for health checking. For other
42016	// backends, the port or named port specified in the Backend Service is
42017	// used for health checking.
42018	//
42019	//
42020	// If not specified, TCP health check follows behavior specified in port
42021	// and portName fields.
42022	//
42023	// Possible values:
42024	//   "USE_FIXED_PORT"
42025	//   "USE_NAMED_PORT"
42026	//   "USE_SERVING_PORT"
42027	PortSpecification string `json:"portSpecification,omitempty"`
42028
42029	// ProxyHeader: Specifies the type of proxy header to append before
42030	// sending data to the backend, either NONE or PROXY_V1. The default is
42031	// NONE.
42032	//
42033	// Possible values:
42034	//   "NONE"
42035	//   "PROXY_V1"
42036	ProxyHeader string `json:"proxyHeader,omitempty"`
42037
42038	// Request: The application data to send once the TCP connection has
42039	// been established (default value is empty). If both request and
42040	// response are empty, the connection establishment alone will indicate
42041	// health. The request data can only be ASCII.
42042	Request string `json:"request,omitempty"`
42043
42044	// Response: The bytes to match against the beginning of the response
42045	// data. If left empty (the default value), any response will indicate
42046	// health. The response data can only be ASCII.
42047	Response string `json:"response,omitempty"`
42048
42049	// ForceSendFields is a list of field names (e.g. "Port") to
42050	// unconditionally include in API requests. By default, fields with
42051	// empty values are omitted from API requests. However, any non-pointer,
42052	// non-interface field appearing in ForceSendFields will be sent to the
42053	// server regardless of whether the field is empty or not. This may be
42054	// used to include empty fields in Patch requests.
42055	ForceSendFields []string `json:"-"`
42056
42057	// NullFields is a list of field names (e.g. "Port") to include in API
42058	// requests with the JSON null value. By default, fields with empty
42059	// values are omitted from API requests. However, any field with an
42060	// empty value appearing in NullFields will be sent to the server as
42061	// null. It is an error if a field in this list has a non-empty value.
42062	// This may be used to include null fields in Patch requests.
42063	NullFields []string `json:"-"`
42064}
42065
42066func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
42067	type NoMethod TCPHealthCheck
42068	raw := NoMethod(*s)
42069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42070}
42071
42072// Tags: A set of instance tags.
42073type Tags struct {
42074	// Fingerprint: Specifies a fingerprint for this request, which is
42075	// essentially a hash of the tags' contents and used for optimistic
42076	// locking. The fingerprint is initially generated by Compute Engine and
42077	// changes after every request to modify or update tags. You must always
42078	// provide an up-to-date fingerprint hash in order to update or change
42079	// tags.
42080	//
42081	// To see the latest fingerprint, make get() request to the instance.
42082	Fingerprint string `json:"fingerprint,omitempty"`
42083
42084	// Items: An array of tags. Each tag must be 1-63 characters long, and
42085	// comply with RFC1035.
42086	Items []string `json:"items,omitempty"`
42087
42088	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
42089	// unconditionally include in API requests. By default, fields with
42090	// empty values are omitted from API requests. However, any non-pointer,
42091	// non-interface field appearing in ForceSendFields will be sent to the
42092	// server regardless of whether the field is empty or not. This may be
42093	// used to include empty fields in Patch requests.
42094	ForceSendFields []string `json:"-"`
42095
42096	// NullFields is a list of field names (e.g. "Fingerprint") to include
42097	// in API requests with the JSON null value. By default, fields with
42098	// empty values are omitted from API requests. However, any field with
42099	// an empty value appearing in NullFields will be sent to the server as
42100	// null. It is an error if a field in this list has a non-empty value.
42101	// This may be used to include null fields in Patch requests.
42102	NullFields []string `json:"-"`
42103}
42104
42105func (s *Tags) MarshalJSON() ([]byte, error) {
42106	type NoMethod Tags
42107	raw := NoMethod(*s)
42108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42109}
42110
42111// TargetGrpcProxy: Represents a Target gRPC Proxy resource.
42112//
42113// A target gRPC proxy is a component of load balancers intended for
42114// load balancing gRPC traffic. Global forwarding rules reference a
42115// target gRPC proxy. The Target gRPC Proxy references a URL map which
42116// specifies how traffic routes to gRPC backend services.
42117type TargetGrpcProxy struct {
42118	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42119	// format.
42120	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42121
42122	// Description: An optional description of this resource. Provide this
42123	// property when you create the resource.
42124	Description string `json:"description,omitempty"`
42125
42126	// Id: [Output Only] The unique identifier for the resource type. The
42127	// server generates this identifier.
42128	Id uint64 `json:"id,omitempty,string"`
42129
42130	// Kind: [Output Only] Type of the resource. Always
42131	// compute#targetGrpcProxy for target grpc proxies.
42132	Kind string `json:"kind,omitempty"`
42133
42134	// Name: Name of the resource. Provided by the client when the resource
42135	// is created. The name must be 1-63 characters long, and comply with
42136	// RFC1035. Specifically, the name must be 1-63 characters long and
42137	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42138	// the first character must be a lowercase letter, and all following
42139	// characters must be a dash, lowercase letter, or digit, except the
42140	// last character, which cannot be a dash.
42141	Name string `json:"name,omitempty"`
42142
42143	// SelfLink: [Output Only] Server-defined URL for the resource.
42144	SelfLink string `json:"selfLink,omitempty"`
42145
42146	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
42147	// resource.
42148	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
42149
42150	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
42151	// to the BackendService. The protocol field in the BackendService must
42152	// be set to GRPC.
42153	UrlMap string `json:"urlMap,omitempty"`
42154
42155	// ValidateForProxyless: If true, indicates that the BackendServices
42156	// referenced by the urlMap may be accessed by gRPC applications without
42157	// using a sidecar proxy. This will enable configuration checks on
42158	// urlMap and its referenced BackendServices to not allow unsupported
42159	// features. A gRPC application must use "xds-experimental:///" scheme
42160	// in the target URI of the service it is connecting to. If false,
42161	// indicates that the BackendServices referenced by the urlMap will be
42162	// accessed by gRPC applications via a sidecar proxy. In this case, a
42163	// gRPC application must not use "xds-experimental:///" scheme in the
42164	// target URI of the service it is connecting to
42165	ValidateForProxyless bool `json:"validateForProxyless,omitempty"`
42166
42167	// ServerResponse contains the HTTP response code and headers from the
42168	// server.
42169	googleapi.ServerResponse `json:"-"`
42170
42171	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42172	// to unconditionally include in API requests. By default, fields with
42173	// empty values are omitted from API requests. However, any non-pointer,
42174	// non-interface field appearing in ForceSendFields will be sent to the
42175	// server regardless of whether the field is empty or not. This may be
42176	// used to include empty fields in Patch requests.
42177	ForceSendFields []string `json:"-"`
42178
42179	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42180	// include in API requests with the JSON null value. By default, fields
42181	// with empty values are omitted from API requests. However, any field
42182	// with an empty value appearing in NullFields will be sent to the
42183	// server as null. It is an error if a field in this list has a
42184	// non-empty value. This may be used to include null fields in Patch
42185	// requests.
42186	NullFields []string `json:"-"`
42187}
42188
42189func (s *TargetGrpcProxy) MarshalJSON() ([]byte, error) {
42190	type NoMethod TargetGrpcProxy
42191	raw := NoMethod(*s)
42192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42193}
42194
42195type TargetGrpcProxyList struct {
42196	// Id: [Output Only] Unique identifier for the resource; defined by the
42197	// server.
42198	Id string `json:"id,omitempty"`
42199
42200	// Items: A list of TargetGrpcProxy resources.
42201	Items []*TargetGrpcProxy `json:"items,omitempty"`
42202
42203	// Kind: [Output Only] Type of the resource. Always
42204	// compute#targetGrpcProxy for target grpc proxies.
42205	Kind string `json:"kind,omitempty"`
42206
42207	// NextPageToken: [Output Only] This token allows you to get the next
42208	// page of results for list requests. If the number of results is larger
42209	// than maxResults, use the nextPageToken as a value for the query
42210	// parameter pageToken in the next list request. Subsequent list
42211	// requests will have their own nextPageToken to continue paging through
42212	// the results.
42213	NextPageToken string `json:"nextPageToken,omitempty"`
42214
42215	// SelfLink: [Output Only] Server-defined URL for this resource.
42216	SelfLink string `json:"selfLink,omitempty"`
42217
42218	// Warning: [Output Only] Informational warning message.
42219	Warning *TargetGrpcProxyListWarning `json:"warning,omitempty"`
42220
42221	// ServerResponse contains the HTTP response code and headers from the
42222	// server.
42223	googleapi.ServerResponse `json:"-"`
42224
42225	// ForceSendFields is a list of field names (e.g. "Id") to
42226	// unconditionally include in API requests. By default, fields with
42227	// empty values are omitted from API requests. However, any non-pointer,
42228	// non-interface field appearing in ForceSendFields will be sent to the
42229	// server regardless of whether the field is empty or not. This may be
42230	// used to include empty fields in Patch requests.
42231	ForceSendFields []string `json:"-"`
42232
42233	// NullFields is a list of field names (e.g. "Id") to include in API
42234	// requests with the JSON null value. By default, fields with empty
42235	// values are omitted from API requests. However, any field with an
42236	// empty value appearing in NullFields will be sent to the server as
42237	// null. It is an error if a field in this list has a non-empty value.
42238	// This may be used to include null fields in Patch requests.
42239	NullFields []string `json:"-"`
42240}
42241
42242func (s *TargetGrpcProxyList) MarshalJSON() ([]byte, error) {
42243	type NoMethod TargetGrpcProxyList
42244	raw := NoMethod(*s)
42245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42246}
42247
42248// TargetGrpcProxyListWarning: [Output Only] Informational warning
42249// message.
42250type TargetGrpcProxyListWarning struct {
42251	// Code: [Output Only] A warning code, if applicable. For example,
42252	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42253	// the response.
42254	//
42255	// Possible values:
42256	//   "CLEANUP_FAILED"
42257	//   "DEPRECATED_RESOURCE_USED"
42258	//   "DEPRECATED_TYPE_USED"
42259	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42260	//   "EXPERIMENTAL_TYPE_USED"
42261	//   "EXTERNAL_API_WARNING"
42262	//   "FIELD_VALUE_OVERRIDEN"
42263	//   "INJECTED_KERNELS_DEPRECATED"
42264	//   "MISSING_TYPE_DEPENDENCY"
42265	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42266	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42267	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42268	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42269	//   "NEXT_HOP_NOT_RUNNING"
42270	//   "NOT_CRITICAL_ERROR"
42271	//   "NO_RESULTS_ON_PAGE"
42272	//   "PARTIAL_SUCCESS"
42273	//   "REQUIRED_TOS_AGREEMENT"
42274	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42275	//   "RESOURCE_NOT_DELETED"
42276	//   "SCHEMA_VALIDATION_IGNORED"
42277	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42278	//   "UNDECLARED_PROPERTIES"
42279	//   "UNREACHABLE"
42280	Code string `json:"code,omitempty"`
42281
42282	// Data: [Output Only] Metadata about this warning in key: value format.
42283	// For example:
42284	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42285	Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"`
42286
42287	// Message: [Output Only] A human-readable description of the warning
42288	// code.
42289	Message string `json:"message,omitempty"`
42290
42291	// ForceSendFields is a list of field names (e.g. "Code") to
42292	// unconditionally include in API requests. By default, fields with
42293	// empty values are omitted from API requests. However, any non-pointer,
42294	// non-interface field appearing in ForceSendFields will be sent to the
42295	// server regardless of whether the field is empty or not. This may be
42296	// used to include empty fields in Patch requests.
42297	ForceSendFields []string `json:"-"`
42298
42299	// NullFields is a list of field names (e.g. "Code") to include in API
42300	// requests with the JSON null value. By default, fields with empty
42301	// values are omitted from API requests. However, any field with an
42302	// empty value appearing in NullFields will be sent to the server as
42303	// null. It is an error if a field in this list has a non-empty value.
42304	// This may be used to include null fields in Patch requests.
42305	NullFields []string `json:"-"`
42306}
42307
42308func (s *TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) {
42309	type NoMethod TargetGrpcProxyListWarning
42310	raw := NoMethod(*s)
42311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42312}
42313
42314type TargetGrpcProxyListWarningData struct {
42315	// Key: [Output Only] A key that provides more detail on the warning
42316	// being returned. For example, for warnings where there are no results
42317	// in a list request for a particular zone, this key might be scope and
42318	// the key value might be the zone name. Other examples might be a key
42319	// indicating a deprecated resource and a suggested replacement, or a
42320	// warning about invalid network settings (for example, if an instance
42321	// attempts to perform IP forwarding but is not enabled for IP
42322	// forwarding).
42323	Key string `json:"key,omitempty"`
42324
42325	// Value: [Output Only] A warning data value corresponding to the key.
42326	Value string `json:"value,omitempty"`
42327
42328	// ForceSendFields is a list of field names (e.g. "Key") to
42329	// unconditionally include in API requests. By default, fields with
42330	// empty values are omitted from API requests. However, any non-pointer,
42331	// non-interface field appearing in ForceSendFields will be sent to the
42332	// server regardless of whether the field is empty or not. This may be
42333	// used to include empty fields in Patch requests.
42334	ForceSendFields []string `json:"-"`
42335
42336	// NullFields is a list of field names (e.g. "Key") to include in API
42337	// requests with the JSON null value. By default, fields with empty
42338	// values are omitted from API requests. However, any field with an
42339	// empty value appearing in NullFields will be sent to the server as
42340	// null. It is an error if a field in this list has a non-empty value.
42341	// This may be used to include null fields in Patch requests.
42342	NullFields []string `json:"-"`
42343}
42344
42345func (s *TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) {
42346	type NoMethod TargetGrpcProxyListWarningData
42347	raw := NoMethod(*s)
42348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42349}
42350
42351type TargetHttpProxiesScopedList struct {
42352	// TargetHttpProxies: A list of TargetHttpProxies contained in this
42353	// scope.
42354	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
42355
42356	// Warning: Informational warning which replaces the list of backend
42357	// services when the list is empty.
42358	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
42359
42360	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
42361	// to unconditionally include in API requests. By default, fields with
42362	// empty values are omitted from API requests. However, any non-pointer,
42363	// non-interface field appearing in ForceSendFields will be sent to the
42364	// server regardless of whether the field is empty or not. This may be
42365	// used to include empty fields in Patch requests.
42366	ForceSendFields []string `json:"-"`
42367
42368	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
42369	// include in API requests with the JSON null value. By default, fields
42370	// with empty values are omitted from API requests. However, any field
42371	// with an empty value appearing in NullFields will be sent to the
42372	// server as null. It is an error if a field in this list has a
42373	// non-empty value. This may be used to include null fields in Patch
42374	// requests.
42375	NullFields []string `json:"-"`
42376}
42377
42378func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
42379	type NoMethod TargetHttpProxiesScopedList
42380	raw := NoMethod(*s)
42381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42382}
42383
42384// TargetHttpProxiesScopedListWarning: Informational warning which
42385// replaces the list of backend services when the list is empty.
42386type TargetHttpProxiesScopedListWarning struct {
42387	// Code: [Output Only] A warning code, if applicable. For example,
42388	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42389	// the response.
42390	//
42391	// Possible values:
42392	//   "CLEANUP_FAILED"
42393	//   "DEPRECATED_RESOURCE_USED"
42394	//   "DEPRECATED_TYPE_USED"
42395	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42396	//   "EXPERIMENTAL_TYPE_USED"
42397	//   "EXTERNAL_API_WARNING"
42398	//   "FIELD_VALUE_OVERRIDEN"
42399	//   "INJECTED_KERNELS_DEPRECATED"
42400	//   "MISSING_TYPE_DEPENDENCY"
42401	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42402	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42403	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42404	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42405	//   "NEXT_HOP_NOT_RUNNING"
42406	//   "NOT_CRITICAL_ERROR"
42407	//   "NO_RESULTS_ON_PAGE"
42408	//   "PARTIAL_SUCCESS"
42409	//   "REQUIRED_TOS_AGREEMENT"
42410	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42411	//   "RESOURCE_NOT_DELETED"
42412	//   "SCHEMA_VALIDATION_IGNORED"
42413	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42414	//   "UNDECLARED_PROPERTIES"
42415	//   "UNREACHABLE"
42416	Code string `json:"code,omitempty"`
42417
42418	// Data: [Output Only] Metadata about this warning in key: value format.
42419	// For example:
42420	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42421	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
42422
42423	// Message: [Output Only] A human-readable description of the warning
42424	// code.
42425	Message string `json:"message,omitempty"`
42426
42427	// ForceSendFields is a list of field names (e.g. "Code") to
42428	// unconditionally include in API requests. By default, fields with
42429	// empty values are omitted from API requests. However, any non-pointer,
42430	// non-interface field appearing in ForceSendFields will be sent to the
42431	// server regardless of whether the field is empty or not. This may be
42432	// used to include empty fields in Patch requests.
42433	ForceSendFields []string `json:"-"`
42434
42435	// NullFields is a list of field names (e.g. "Code") to include in API
42436	// requests with the JSON null value. By default, fields with empty
42437	// values are omitted from API requests. However, any field with an
42438	// empty value appearing in NullFields will be sent to the server as
42439	// null. It is an error if a field in this list has a non-empty value.
42440	// This may be used to include null fields in Patch requests.
42441	NullFields []string `json:"-"`
42442}
42443
42444func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
42445	type NoMethod TargetHttpProxiesScopedListWarning
42446	raw := NoMethod(*s)
42447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42448}
42449
42450type TargetHttpProxiesScopedListWarningData struct {
42451	// Key: [Output Only] A key that provides more detail on the warning
42452	// being returned. For example, for warnings where there are no results
42453	// in a list request for a particular zone, this key might be scope and
42454	// the key value might be the zone name. Other examples might be a key
42455	// indicating a deprecated resource and a suggested replacement, or a
42456	// warning about invalid network settings (for example, if an instance
42457	// attempts to perform IP forwarding but is not enabled for IP
42458	// forwarding).
42459	Key string `json:"key,omitempty"`
42460
42461	// Value: [Output Only] A warning data value corresponding to the key.
42462	Value string `json:"value,omitempty"`
42463
42464	// ForceSendFields is a list of field names (e.g. "Key") to
42465	// unconditionally include in API requests. By default, fields with
42466	// empty values are omitted from API requests. However, any non-pointer,
42467	// non-interface field appearing in ForceSendFields will be sent to the
42468	// server regardless of whether the field is empty or not. This may be
42469	// used to include empty fields in Patch requests.
42470	ForceSendFields []string `json:"-"`
42471
42472	// NullFields is a list of field names (e.g. "Key") to include in API
42473	// requests with the JSON null value. By default, fields with empty
42474	// values are omitted from API requests. However, any field with an
42475	// empty value appearing in NullFields will be sent to the server as
42476	// null. It is an error if a field in this list has a non-empty value.
42477	// This may be used to include null fields in Patch requests.
42478	NullFields []string `json:"-"`
42479}
42480
42481func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
42482	type NoMethod TargetHttpProxiesScopedListWarningData
42483	raw := NoMethod(*s)
42484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42485}
42486
42487// TargetHttpProxy: Represents a Target HTTP Proxy resource.
42488//
42489// Google Compute Engine has two Target HTTP Proxy resources:
42490//
42491// *
42492// [Global](/compute/docs/reference/rest/{$api_version}/targetHttpProxies
42493// ) *
42494// [Regional](/compute/docs/reference/rest/{$api_version}/regionTargetHtt
42495// pProxies)
42496//
42497// A target HTTP proxy is a component of GCP HTTP load balancers.
42498//
42499// * targetHttpProxies are used by external HTTP load balancers and
42500// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
42501// load balancers.
42502//
42503// Forwarding rules reference a target HTTP proxy, and the target proxy
42504// then references a URL map. For more information, read Using Target
42505// Proxies and  Forwarding rule concepts. (== resource_for
42506// {$api_version}.targetHttpProxies ==) (== resource_for
42507// {$api_version}.regionTargetHttpProxies ==)
42508type TargetHttpProxy struct {
42509	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42510	// format.
42511	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42512
42513	// Description: An optional description of this resource. Provide this
42514	// property when you create the resource.
42515	Description string `json:"description,omitempty"`
42516
42517	// HttpFilters: Urls to networkservices.HttpFilter resources enabled for
42518	// xDS clients using this configuration. For example,
42519	// https://networkservices.googleapis.com/v1alpha1/projects/project/locations/locationhttpFilters/httpFilter Only filters that handle outbound connection and stream events may be specified. These filters work in conjunction with a default set of HTTP filters that may already be configured by Traffic Director. Traffic Director will determine the final location of these filters within xDS configuration based on the name of the HTTP filter. If Traffic Director positions multiple filters at the same location, those filters will be in the same order as specified in this list.
42520	// httpFilters only applies for loadbalancers with loadBalancingScheme
42521	// set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
42522	HttpFilters []string `json:"httpFilters,omitempty"`
42523
42524	// Id: [Output Only] The unique identifier for the resource. This
42525	// identifier is defined by the server.
42526	Id uint64 `json:"id,omitempty,string"`
42527
42528	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
42529	// for target HTTP proxies.
42530	Kind string `json:"kind,omitempty"`
42531
42532	// Name: Name of the resource. Provided by the client when the resource
42533	// is created. The name must be 1-63 characters long, and comply with
42534	// RFC1035. Specifically, the name must be 1-63 characters long and
42535	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42536	// the first character must be a lowercase letter, and all following
42537	// characters must be a dash, lowercase letter, or digit, except the
42538	// last character, which cannot be a dash.
42539	Name string `json:"name,omitempty"`
42540
42541	// ProxyBind: This field only applies when the loadBalancingScheme is
42542	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
42543	// address specified by the forwarding rule. Default is false.
42544	ProxyBind bool `json:"proxyBind,omitempty"`
42545
42546	// Region: [Output Only] URL of the region where the regional Target
42547	// HTTP Proxy resides. This field is not applicable to global Target
42548	// HTTP Proxies.
42549	Region string `json:"region,omitempty"`
42550
42551	// SelfLink: [Output Only] Server-defined URL for the resource.
42552	SelfLink string `json:"selfLink,omitempty"`
42553
42554	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
42555	// with the resource id.
42556	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
42557
42558	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
42559	// to the BackendService.
42560	UrlMap string `json:"urlMap,omitempty"`
42561
42562	// ServerResponse contains the HTTP response code and headers from the
42563	// server.
42564	googleapi.ServerResponse `json:"-"`
42565
42566	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42567	// to unconditionally include in API requests. By default, fields with
42568	// empty values are omitted from API requests. However, any non-pointer,
42569	// non-interface field appearing in ForceSendFields will be sent to the
42570	// server regardless of whether the field is empty or not. This may be
42571	// used to include empty fields in Patch requests.
42572	ForceSendFields []string `json:"-"`
42573
42574	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42575	// include in API requests with the JSON null value. By default, fields
42576	// with empty values are omitted from API requests. However, any field
42577	// with an empty value appearing in NullFields will be sent to the
42578	// server as null. It is an error if a field in this list has a
42579	// non-empty value. This may be used to include null fields in Patch
42580	// requests.
42581	NullFields []string `json:"-"`
42582}
42583
42584func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
42585	type NoMethod TargetHttpProxy
42586	raw := NoMethod(*s)
42587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42588}
42589
42590type TargetHttpProxyAggregatedList struct {
42591	// Id: [Output Only] Unique identifier for the resource; defined by the
42592	// server.
42593	Id string `json:"id,omitempty"`
42594
42595	// Items: A list of TargetHttpProxiesScopedList resources.
42596	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
42597
42598	// Kind: [Output Only] Type of resource. Always
42599	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
42600	// Proxies.
42601	Kind string `json:"kind,omitempty"`
42602
42603	// NextPageToken: [Output Only] This token allows you to get the next
42604	// page of results for list requests. If the number of results is larger
42605	// than maxResults, use the nextPageToken as a value for the query
42606	// parameter pageToken in the next list request. Subsequent list
42607	// requests will have their own nextPageToken to continue paging through
42608	// the results.
42609	NextPageToken string `json:"nextPageToken,omitempty"`
42610
42611	// SelfLink: [Output Only] Server-defined URL for this resource.
42612	SelfLink string `json:"selfLink,omitempty"`
42613
42614	// Unreachables: [Output Only] Unreachable resources.
42615	Unreachables []string `json:"unreachables,omitempty"`
42616
42617	// Warning: [Output Only] Informational warning message.
42618	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`
42619
42620	// ServerResponse contains the HTTP response code and headers from the
42621	// server.
42622	googleapi.ServerResponse `json:"-"`
42623
42624	// ForceSendFields is a list of field names (e.g. "Id") to
42625	// unconditionally include in API requests. By default, fields with
42626	// empty values are omitted from API requests. However, any non-pointer,
42627	// non-interface field appearing in ForceSendFields will be sent to the
42628	// server regardless of whether the field is empty or not. This may be
42629	// used to include empty fields in Patch requests.
42630	ForceSendFields []string `json:"-"`
42631
42632	// NullFields is a list of field names (e.g. "Id") to include in API
42633	// requests with the JSON null value. By default, fields with empty
42634	// values are omitted from API requests. However, any field with an
42635	// empty value appearing in NullFields will be sent to the server as
42636	// null. It is an error if a field in this list has a non-empty value.
42637	// This may be used to include null fields in Patch requests.
42638	NullFields []string `json:"-"`
42639}
42640
42641func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
42642	type NoMethod TargetHttpProxyAggregatedList
42643	raw := NoMethod(*s)
42644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42645}
42646
42647// TargetHttpProxyAggregatedListWarning: [Output Only] Informational
42648// warning message.
42649type TargetHttpProxyAggregatedListWarning struct {
42650	// Code: [Output Only] A warning code, if applicable. For example,
42651	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42652	// the response.
42653	//
42654	// Possible values:
42655	//   "CLEANUP_FAILED"
42656	//   "DEPRECATED_RESOURCE_USED"
42657	//   "DEPRECATED_TYPE_USED"
42658	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42659	//   "EXPERIMENTAL_TYPE_USED"
42660	//   "EXTERNAL_API_WARNING"
42661	//   "FIELD_VALUE_OVERRIDEN"
42662	//   "INJECTED_KERNELS_DEPRECATED"
42663	//   "MISSING_TYPE_DEPENDENCY"
42664	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42665	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42666	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42667	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42668	//   "NEXT_HOP_NOT_RUNNING"
42669	//   "NOT_CRITICAL_ERROR"
42670	//   "NO_RESULTS_ON_PAGE"
42671	//   "PARTIAL_SUCCESS"
42672	//   "REQUIRED_TOS_AGREEMENT"
42673	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42674	//   "RESOURCE_NOT_DELETED"
42675	//   "SCHEMA_VALIDATION_IGNORED"
42676	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42677	//   "UNDECLARED_PROPERTIES"
42678	//   "UNREACHABLE"
42679	Code string `json:"code,omitempty"`
42680
42681	// Data: [Output Only] Metadata about this warning in key: value format.
42682	// For example:
42683	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42684	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
42685
42686	// Message: [Output Only] A human-readable description of the warning
42687	// code.
42688	Message string `json:"message,omitempty"`
42689
42690	// ForceSendFields is a list of field names (e.g. "Code") to
42691	// unconditionally include in API requests. By default, fields with
42692	// empty values are omitted from API requests. However, any non-pointer,
42693	// non-interface field appearing in ForceSendFields will be sent to the
42694	// server regardless of whether the field is empty or not. This may be
42695	// used to include empty fields in Patch requests.
42696	ForceSendFields []string `json:"-"`
42697
42698	// NullFields is a list of field names (e.g. "Code") to include in API
42699	// requests with the JSON null value. By default, fields with empty
42700	// values are omitted from API requests. However, any field with an
42701	// empty value appearing in NullFields will be sent to the server as
42702	// null. It is an error if a field in this list has a non-empty value.
42703	// This may be used to include null fields in Patch requests.
42704	NullFields []string `json:"-"`
42705}
42706
42707func (s *TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
42708	type NoMethod TargetHttpProxyAggregatedListWarning
42709	raw := NoMethod(*s)
42710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42711}
42712
42713type TargetHttpProxyAggregatedListWarningData struct {
42714	// Key: [Output Only] A key that provides more detail on the warning
42715	// being returned. For example, for warnings where there are no results
42716	// in a list request for a particular zone, this key might be scope and
42717	// the key value might be the zone name. Other examples might be a key
42718	// indicating a deprecated resource and a suggested replacement, or a
42719	// warning about invalid network settings (for example, if an instance
42720	// attempts to perform IP forwarding but is not enabled for IP
42721	// forwarding).
42722	Key string `json:"key,omitempty"`
42723
42724	// Value: [Output Only] A warning data value corresponding to the key.
42725	Value string `json:"value,omitempty"`
42726
42727	// ForceSendFields is a list of field names (e.g. "Key") to
42728	// unconditionally include in API requests. By default, fields with
42729	// empty values are omitted from API requests. However, any non-pointer,
42730	// non-interface field appearing in ForceSendFields will be sent to the
42731	// server regardless of whether the field is empty or not. This may be
42732	// used to include empty fields in Patch requests.
42733	ForceSendFields []string `json:"-"`
42734
42735	// NullFields is a list of field names (e.g. "Key") to include in API
42736	// requests with the JSON null value. By default, fields with empty
42737	// values are omitted from API requests. However, any field with an
42738	// empty value appearing in NullFields will be sent to the server as
42739	// null. It is an error if a field in this list has a non-empty value.
42740	// This may be used to include null fields in Patch requests.
42741	NullFields []string `json:"-"`
42742}
42743
42744func (s *TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42745	type NoMethod TargetHttpProxyAggregatedListWarningData
42746	raw := NoMethod(*s)
42747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42748}
42749
42750// TargetHttpProxyList: A list of TargetHttpProxy resources.
42751type TargetHttpProxyList struct {
42752	// Id: [Output Only] Unique identifier for the resource; defined by the
42753	// server.
42754	Id string `json:"id,omitempty"`
42755
42756	// Items: A list of TargetHttpProxy resources.
42757	Items []*TargetHttpProxy `json:"items,omitempty"`
42758
42759	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
42760	// of target HTTP proxies.
42761	Kind string `json:"kind,omitempty"`
42762
42763	// NextPageToken: [Output Only] This token allows you to get the next
42764	// page of results for list requests. If the number of results is larger
42765	// than maxResults, use the nextPageToken as a value for the query
42766	// parameter pageToken in the next list request. Subsequent list
42767	// requests will have their own nextPageToken to continue paging through
42768	// the results.
42769	NextPageToken string `json:"nextPageToken,omitempty"`
42770
42771	// SelfLink: [Output Only] Server-defined URL for this resource.
42772	SelfLink string `json:"selfLink,omitempty"`
42773
42774	// Warning: [Output Only] Informational warning message.
42775	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
42776
42777	// ServerResponse contains the HTTP response code and headers from the
42778	// server.
42779	googleapi.ServerResponse `json:"-"`
42780
42781	// ForceSendFields is a list of field names (e.g. "Id") to
42782	// unconditionally include in API requests. By default, fields with
42783	// empty values are omitted from API requests. However, any non-pointer,
42784	// non-interface field appearing in ForceSendFields will be sent to the
42785	// server regardless of whether the field is empty or not. This may be
42786	// used to include empty fields in Patch requests.
42787	ForceSendFields []string `json:"-"`
42788
42789	// NullFields is a list of field names (e.g. "Id") to include in API
42790	// requests with the JSON null value. By default, fields with empty
42791	// values are omitted from API requests. However, any field with an
42792	// empty value appearing in NullFields will be sent to the server as
42793	// null. It is an error if a field in this list has a non-empty value.
42794	// This may be used to include null fields in Patch requests.
42795	NullFields []string `json:"-"`
42796}
42797
42798func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
42799	type NoMethod TargetHttpProxyList
42800	raw := NoMethod(*s)
42801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42802}
42803
42804// TargetHttpProxyListWarning: [Output Only] Informational warning
42805// message.
42806type TargetHttpProxyListWarning struct {
42807	// Code: [Output Only] A warning code, if applicable. For example,
42808	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42809	// the response.
42810	//
42811	// Possible values:
42812	//   "CLEANUP_FAILED"
42813	//   "DEPRECATED_RESOURCE_USED"
42814	//   "DEPRECATED_TYPE_USED"
42815	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42816	//   "EXPERIMENTAL_TYPE_USED"
42817	//   "EXTERNAL_API_WARNING"
42818	//   "FIELD_VALUE_OVERRIDEN"
42819	//   "INJECTED_KERNELS_DEPRECATED"
42820	//   "MISSING_TYPE_DEPENDENCY"
42821	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42822	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42823	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42824	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42825	//   "NEXT_HOP_NOT_RUNNING"
42826	//   "NOT_CRITICAL_ERROR"
42827	//   "NO_RESULTS_ON_PAGE"
42828	//   "PARTIAL_SUCCESS"
42829	//   "REQUIRED_TOS_AGREEMENT"
42830	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42831	//   "RESOURCE_NOT_DELETED"
42832	//   "SCHEMA_VALIDATION_IGNORED"
42833	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42834	//   "UNDECLARED_PROPERTIES"
42835	//   "UNREACHABLE"
42836	Code string `json:"code,omitempty"`
42837
42838	// Data: [Output Only] Metadata about this warning in key: value format.
42839	// For example:
42840	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42841	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
42842
42843	// Message: [Output Only] A human-readable description of the warning
42844	// code.
42845	Message string `json:"message,omitempty"`
42846
42847	// ForceSendFields is a list of field names (e.g. "Code") to
42848	// unconditionally include in API requests. By default, fields with
42849	// empty values are omitted from API requests. However, any non-pointer,
42850	// non-interface field appearing in ForceSendFields will be sent to the
42851	// server regardless of whether the field is empty or not. This may be
42852	// used to include empty fields in Patch requests.
42853	ForceSendFields []string `json:"-"`
42854
42855	// NullFields is a list of field names (e.g. "Code") to include in API
42856	// requests with the JSON null value. By default, fields with empty
42857	// values are omitted from API requests. However, any field with an
42858	// empty value appearing in NullFields will be sent to the server as
42859	// null. It is an error if a field in this list has a non-empty value.
42860	// This may be used to include null fields in Patch requests.
42861	NullFields []string `json:"-"`
42862}
42863
42864func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
42865	type NoMethod TargetHttpProxyListWarning
42866	raw := NoMethod(*s)
42867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42868}
42869
42870type TargetHttpProxyListWarningData struct {
42871	// Key: [Output Only] A key that provides more detail on the warning
42872	// being returned. For example, for warnings where there are no results
42873	// in a list request for a particular zone, this key might be scope and
42874	// the key value might be the zone name. Other examples might be a key
42875	// indicating a deprecated resource and a suggested replacement, or a
42876	// warning about invalid network settings (for example, if an instance
42877	// attempts to perform IP forwarding but is not enabled for IP
42878	// forwarding).
42879	Key string `json:"key,omitempty"`
42880
42881	// Value: [Output Only] A warning data value corresponding to the key.
42882	Value string `json:"value,omitempty"`
42883
42884	// ForceSendFields is a list of field names (e.g. "Key") to
42885	// unconditionally include in API requests. By default, fields with
42886	// empty values are omitted from API requests. However, any non-pointer,
42887	// non-interface field appearing in ForceSendFields will be sent to the
42888	// server regardless of whether the field is empty or not. This may be
42889	// used to include empty fields in Patch requests.
42890	ForceSendFields []string `json:"-"`
42891
42892	// NullFields is a list of field names (e.g. "Key") to include in API
42893	// requests with the JSON null value. By default, fields with empty
42894	// values are omitted from API requests. However, any field with an
42895	// empty value appearing in NullFields will be sent to the server as
42896	// null. It is an error if a field in this list has a non-empty value.
42897	// This may be used to include null fields in Patch requests.
42898	NullFields []string `json:"-"`
42899}
42900
42901func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
42902	type NoMethod TargetHttpProxyListWarningData
42903	raw := NoMethod(*s)
42904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42905}
42906
42907type TargetHttpsProxiesScopedList struct {
42908	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
42909	// scope.
42910	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
42911
42912	// Warning: Informational warning which replaces the list of backend
42913	// services when the list is empty.
42914	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
42915
42916	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
42917	// to unconditionally include in API requests. By default, fields with
42918	// empty values are omitted from API requests. However, any non-pointer,
42919	// non-interface field appearing in ForceSendFields will be sent to the
42920	// server regardless of whether the field is empty or not. This may be
42921	// used to include empty fields in Patch requests.
42922	ForceSendFields []string `json:"-"`
42923
42924	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
42925	// include in API requests with the JSON null value. By default, fields
42926	// with empty values are omitted from API requests. However, any field
42927	// with an empty value appearing in NullFields will be sent to the
42928	// server as null. It is an error if a field in this list has a
42929	// non-empty value. This may be used to include null fields in Patch
42930	// requests.
42931	NullFields []string `json:"-"`
42932}
42933
42934func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
42935	type NoMethod TargetHttpsProxiesScopedList
42936	raw := NoMethod(*s)
42937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42938}
42939
42940// TargetHttpsProxiesScopedListWarning: Informational warning which
42941// replaces the list of backend services when the list is empty.
42942type TargetHttpsProxiesScopedListWarning struct {
42943	// Code: [Output Only] A warning code, if applicable. For example,
42944	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42945	// the response.
42946	//
42947	// Possible values:
42948	//   "CLEANUP_FAILED"
42949	//   "DEPRECATED_RESOURCE_USED"
42950	//   "DEPRECATED_TYPE_USED"
42951	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42952	//   "EXPERIMENTAL_TYPE_USED"
42953	//   "EXTERNAL_API_WARNING"
42954	//   "FIELD_VALUE_OVERRIDEN"
42955	//   "INJECTED_KERNELS_DEPRECATED"
42956	//   "MISSING_TYPE_DEPENDENCY"
42957	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42958	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42959	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42960	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42961	//   "NEXT_HOP_NOT_RUNNING"
42962	//   "NOT_CRITICAL_ERROR"
42963	//   "NO_RESULTS_ON_PAGE"
42964	//   "PARTIAL_SUCCESS"
42965	//   "REQUIRED_TOS_AGREEMENT"
42966	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42967	//   "RESOURCE_NOT_DELETED"
42968	//   "SCHEMA_VALIDATION_IGNORED"
42969	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42970	//   "UNDECLARED_PROPERTIES"
42971	//   "UNREACHABLE"
42972	Code string `json:"code,omitempty"`
42973
42974	// Data: [Output Only] Metadata about this warning in key: value format.
42975	// For example:
42976	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42977	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
42978
42979	// Message: [Output Only] A human-readable description of the warning
42980	// code.
42981	Message string `json:"message,omitempty"`
42982
42983	// ForceSendFields is a list of field names (e.g. "Code") to
42984	// unconditionally include in API requests. By default, fields with
42985	// empty values are omitted from API requests. However, any non-pointer,
42986	// non-interface field appearing in ForceSendFields will be sent to the
42987	// server regardless of whether the field is empty or not. This may be
42988	// used to include empty fields in Patch requests.
42989	ForceSendFields []string `json:"-"`
42990
42991	// NullFields is a list of field names (e.g. "Code") to include in API
42992	// requests with the JSON null value. By default, fields with empty
42993	// values are omitted from API requests. However, any field with an
42994	// empty value appearing in NullFields will be sent to the server as
42995	// null. It is an error if a field in this list has a non-empty value.
42996	// This may be used to include null fields in Patch requests.
42997	NullFields []string `json:"-"`
42998}
42999
43000func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
43001	type NoMethod TargetHttpsProxiesScopedListWarning
43002	raw := NoMethod(*s)
43003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43004}
43005
43006type TargetHttpsProxiesScopedListWarningData struct {
43007	// Key: [Output Only] A key that provides more detail on the warning
43008	// being returned. For example, for warnings where there are no results
43009	// in a list request for a particular zone, this key might be scope and
43010	// the key value might be the zone name. Other examples might be a key
43011	// indicating a deprecated resource and a suggested replacement, or a
43012	// warning about invalid network settings (for example, if an instance
43013	// attempts to perform IP forwarding but is not enabled for IP
43014	// forwarding).
43015	Key string `json:"key,omitempty"`
43016
43017	// Value: [Output Only] A warning data value corresponding to the key.
43018	Value string `json:"value,omitempty"`
43019
43020	// ForceSendFields is a list of field names (e.g. "Key") to
43021	// unconditionally include in API requests. By default, fields with
43022	// empty values are omitted from API requests. However, any non-pointer,
43023	// non-interface field appearing in ForceSendFields will be sent to the
43024	// server regardless of whether the field is empty or not. This may be
43025	// used to include empty fields in Patch requests.
43026	ForceSendFields []string `json:"-"`
43027
43028	// NullFields is a list of field names (e.g. "Key") to include in API
43029	// requests with the JSON null value. By default, fields with empty
43030	// values are omitted from API requests. However, any field with an
43031	// empty value appearing in NullFields will be sent to the server as
43032	// null. It is an error if a field in this list has a non-empty value.
43033	// This may be used to include null fields in Patch requests.
43034	NullFields []string `json:"-"`
43035}
43036
43037func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
43038	type NoMethod TargetHttpsProxiesScopedListWarningData
43039	raw := NoMethod(*s)
43040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43041}
43042
43043type TargetHttpsProxiesSetQuicOverrideRequest struct {
43044	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
43045	//
43046	// Possible values:
43047	//   "DISABLE"
43048	//   "ENABLE"
43049	//   "NONE"
43050	QuicOverride string `json:"quicOverride,omitempty"`
43051
43052	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
43053	// unconditionally include in API requests. By default, fields with
43054	// empty values are omitted from API requests. However, any non-pointer,
43055	// non-interface field appearing in ForceSendFields will be sent to the
43056	// server regardless of whether the field is empty or not. This may be
43057	// used to include empty fields in Patch requests.
43058	ForceSendFields []string `json:"-"`
43059
43060	// NullFields is a list of field names (e.g. "QuicOverride") to include
43061	// in API requests with the JSON null value. By default, fields with
43062	// empty values are omitted from API requests. However, any field with
43063	// an empty value appearing in NullFields will be sent to the server as
43064	// null. It is an error if a field in this list has a non-empty value.
43065	// This may be used to include null fields in Patch requests.
43066	NullFields []string `json:"-"`
43067}
43068
43069func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
43070	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
43071	raw := NoMethod(*s)
43072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43073}
43074
43075type TargetHttpsProxiesSetSslCertificatesRequest struct {
43076	// SslCertificates: New set of SslCertificate resources to associate
43077	// with this TargetHttpsProxy resource. Currently exactly one
43078	// SslCertificate resource must be specified.
43079	SslCertificates []string `json:"sslCertificates,omitempty"`
43080
43081	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
43082	// unconditionally include in API requests. By default, fields with
43083	// empty values are omitted from API requests. However, any non-pointer,
43084	// non-interface field appearing in ForceSendFields will be sent to the
43085	// server regardless of whether the field is empty or not. This may be
43086	// used to include empty fields in Patch requests.
43087	ForceSendFields []string `json:"-"`
43088
43089	// NullFields is a list of field names (e.g. "SslCertificates") to
43090	// include in API requests with the JSON null value. By default, fields
43091	// with empty values are omitted from API requests. However, any field
43092	// with an empty value appearing in NullFields will be sent to the
43093	// server as null. It is an error if a field in this list has a
43094	// non-empty value. This may be used to include null fields in Patch
43095	// requests.
43096	NullFields []string `json:"-"`
43097}
43098
43099func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
43100	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
43101	raw := NoMethod(*s)
43102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43103}
43104
43105// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
43106//
43107// Google Compute Engine has two Target HTTPS Proxy resources:
43108//
43109// *
43110// [Global](/compute/docs/reference/rest/{$api_version}/targetHttpsProxie
43111// s) *
43112// [Regional](/compute/docs/reference/rest/{$api_version}/regionTargetHtt
43113// psProxies)
43114//
43115// A target HTTPS proxy is a component of GCP HTTPS load balancers.
43116//
43117// * targetHttpsProxies are used by external HTTPS load balancers. *
43118// regionTargetHttpsProxies are used by internal HTTPS load
43119// balancers.
43120//
43121// Forwarding rules reference a target HTTPS proxy, and the target proxy
43122// then references a URL map. For more information, read Using Target
43123// Proxies and  Forwarding rule concepts. (== resource_for
43124// {$api_version}.targetHttpsProxies ==) (== resource_for
43125// {$api_version}.regionTargetHttpsProxies ==)
43126type TargetHttpsProxy struct {
43127	// Authentication: A URL referring to a networksecurity.Authentication
43128	// resource that describes how the proxy should authenticate inbound
43129	// traffic. If left blank, communications between services are not
43130	// encrypted (i.e., the TLS policy is set to OPEN). When terminating
43131	// inbound traffic to this proxy, the TerminationTls setting of
43132	// Authentication.TransportAuthentication is applied.
43133	// Refer to the Authentication and
43134	// Authentication.TransportAuthentication.TerminationTls resources for
43135	// additional details.
43136	// authentication only applies to a global TargetHttpsProxy attached to
43137	// globalForwardingRules with the loadBalancingScheme set to
43138	// INTERNAL_SELF_MANAGED.
43139	Authentication string `json:"authentication,omitempty"`
43140
43141	// Authorization: A URL referring to a networksecurity.Authorization
43142	// resource that describes how the proxy should authorize inbound
43143	// traffic. If left blank, access will not be restricted by an
43144	// authorization policy.
43145	// Refer to the Authorization resource for additional
43146	// details.
43147	// authorization only applies to a global TargetHttpsProxy attached to
43148	// globalForwardingRules with the loadBalancingScheme set to
43149	// INTERNAL_SELF_MANAGED.
43150	Authorization string `json:"authorization,omitempty"`
43151
43152	// CertificateMap: URL of a certificate map that identifies a
43153	// certificate map associated with the given target proxy. This field
43154	// can only be set for global target proxies. If set, sslCertificates
43155	// will be ignored.
43156	CertificateMap string `json:"certificateMap,omitempty"`
43157
43158	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43159	// format.
43160	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43161
43162	// Description: An optional description of this resource. Provide this
43163	// property when you create the resource.
43164	Description string `json:"description,omitempty"`
43165
43166	// Id: [Output Only] The unique identifier for the resource. This
43167	// identifier is defined by the server.
43168	Id uint64 `json:"id,omitempty,string"`
43169
43170	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
43171	// for target HTTPS proxies.
43172	Kind string `json:"kind,omitempty"`
43173
43174	// Name: Name of the resource. Provided by the client when the resource
43175	// is created. The name must be 1-63 characters long, and comply with
43176	// RFC1035. Specifically, the name must be 1-63 characters long and
43177	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43178	// the first character must be a lowercase letter, and all following
43179	// characters must be a dash, lowercase letter, or digit, except the
43180	// last character, which cannot be a dash.
43181	Name string `json:"name,omitempty"`
43182
43183	// ProxyBind: This field only applies when the loadBalancingScheme is
43184	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
43185	// address specified by the forwarding rule. Default is false.
43186	ProxyBind bool `json:"proxyBind,omitempty"`
43187
43188	// QuicOverride: Specifies the QUIC override policy for this
43189	// TargetHttpsProxy resource. This setting determines whether the load
43190	// balancer attempts to negotiate QUIC with clients. You can specify
43191	// NONE, ENABLE, or DISABLE.
43192	// - When quic-override is set to NONE, Google manages whether QUIC is
43193	// used.
43194	// - When quic-override is set to ENABLE, the load balancer uses QUIC
43195	// when possible.
43196	// - When quic-override is set to DISABLE, the load balancer doesn't use
43197	// QUIC.
43198	// - If the quic-override flag is not specified, NONE is implied.
43199	// -
43200	//
43201	// Possible values:
43202	//   "DISABLE"
43203	//   "ENABLE"
43204	//   "NONE"
43205	QuicOverride string `json:"quicOverride,omitempty"`
43206
43207	// Region: [Output Only] URL of the region where the regional
43208	// TargetHttpsProxy resides. This field is not applicable to global
43209	// TargetHttpsProxies.
43210	Region string `json:"region,omitempty"`
43211
43212	// SelfLink: [Output Only] Server-defined URL for the resource.
43213	SelfLink string `json:"selfLink,omitempty"`
43214
43215	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
43216	// with the resource id.
43217	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
43218
43219	// SslCertificates: URLs to SslCertificate resources that are used to
43220	// authenticate connections between users and the load balancer. At
43221	// least one SSL certificate must be specified. Currently, you may
43222	// specify up to 15 SSL certificates.
43223	SslCertificates []string `json:"sslCertificates,omitempty"`
43224
43225	// SslPolicy: URL of SslPolicy resource that will be associated with the
43226	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
43227	// has no SSL policy configured.
43228	SslPolicy string `json:"sslPolicy,omitempty"`
43229
43230	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
43231	// that defines the mapping from URL to the BackendService. For example,
43232	// the following are all valid URLs for specifying a URL map:
43233	// -
43234	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
43235	// - projects/project/global/urlMaps/url-map
43236	// - global/urlMaps/url-map
43237	UrlMap string `json:"urlMap,omitempty"`
43238
43239	// ServerResponse contains the HTTP response code and headers from the
43240	// server.
43241	googleapi.ServerResponse `json:"-"`
43242
43243	// ForceSendFields is a list of field names (e.g. "Authentication") to
43244	// unconditionally include in API requests. By default, fields with
43245	// empty values are omitted from API requests. However, any non-pointer,
43246	// non-interface field appearing in ForceSendFields will be sent to the
43247	// server regardless of whether the field is empty or not. This may be
43248	// used to include empty fields in Patch requests.
43249	ForceSendFields []string `json:"-"`
43250
43251	// NullFields is a list of field names (e.g. "Authentication") to
43252	// include in API requests with the JSON null value. By default, fields
43253	// with empty values are omitted from API requests. However, any field
43254	// with an empty value appearing in NullFields will be sent to the
43255	// server as null. It is an error if a field in this list has a
43256	// non-empty value. This may be used to include null fields in Patch
43257	// requests.
43258	NullFields []string `json:"-"`
43259}
43260
43261func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
43262	type NoMethod TargetHttpsProxy
43263	raw := NoMethod(*s)
43264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43265}
43266
43267type TargetHttpsProxyAggregatedList struct {
43268	// Id: [Output Only] Unique identifier for the resource; defined by the
43269	// server.
43270	Id string `json:"id,omitempty"`
43271
43272	// Items: A list of TargetHttpsProxiesScopedList resources.
43273	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
43274
43275	// Kind: [Output Only] Type of resource. Always
43276	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
43277	// Proxies.
43278	Kind string `json:"kind,omitempty"`
43279
43280	// NextPageToken: [Output Only] This token allows you to get the next
43281	// page of results for list requests. If the number of results is larger
43282	// than maxResults, use the nextPageToken as a value for the query
43283	// parameter pageToken in the next list request. Subsequent list
43284	// requests will have their own nextPageToken to continue paging through
43285	// the results.
43286	NextPageToken string `json:"nextPageToken,omitempty"`
43287
43288	// SelfLink: [Output Only] Server-defined URL for this resource.
43289	SelfLink string `json:"selfLink,omitempty"`
43290
43291	// Unreachables: [Output Only] Unreachable resources.
43292	Unreachables []string `json:"unreachables,omitempty"`
43293
43294	// Warning: [Output Only] Informational warning message.
43295	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
43296
43297	// ServerResponse contains the HTTP response code and headers from the
43298	// server.
43299	googleapi.ServerResponse `json:"-"`
43300
43301	// ForceSendFields is a list of field names (e.g. "Id") to
43302	// unconditionally include in API requests. By default, fields with
43303	// empty values are omitted from API requests. However, any non-pointer,
43304	// non-interface field appearing in ForceSendFields will be sent to the
43305	// server regardless of whether the field is empty or not. This may be
43306	// used to include empty fields in Patch requests.
43307	ForceSendFields []string `json:"-"`
43308
43309	// NullFields is a list of field names (e.g. "Id") to include in API
43310	// requests with the JSON null value. By default, fields with empty
43311	// values are omitted from API requests. However, any field with an
43312	// empty value appearing in NullFields will be sent to the server as
43313	// null. It is an error if a field in this list has a non-empty value.
43314	// This may be used to include null fields in Patch requests.
43315	NullFields []string `json:"-"`
43316}
43317
43318func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
43319	type NoMethod TargetHttpsProxyAggregatedList
43320	raw := NoMethod(*s)
43321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43322}
43323
43324// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
43325// warning message.
43326type TargetHttpsProxyAggregatedListWarning struct {
43327	// Code: [Output Only] A warning code, if applicable. For example,
43328	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43329	// the response.
43330	//
43331	// Possible values:
43332	//   "CLEANUP_FAILED"
43333	//   "DEPRECATED_RESOURCE_USED"
43334	//   "DEPRECATED_TYPE_USED"
43335	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43336	//   "EXPERIMENTAL_TYPE_USED"
43337	//   "EXTERNAL_API_WARNING"
43338	//   "FIELD_VALUE_OVERRIDEN"
43339	//   "INJECTED_KERNELS_DEPRECATED"
43340	//   "MISSING_TYPE_DEPENDENCY"
43341	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43342	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43343	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43344	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43345	//   "NEXT_HOP_NOT_RUNNING"
43346	//   "NOT_CRITICAL_ERROR"
43347	//   "NO_RESULTS_ON_PAGE"
43348	//   "PARTIAL_SUCCESS"
43349	//   "REQUIRED_TOS_AGREEMENT"
43350	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43351	//   "RESOURCE_NOT_DELETED"
43352	//   "SCHEMA_VALIDATION_IGNORED"
43353	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43354	//   "UNDECLARED_PROPERTIES"
43355	//   "UNREACHABLE"
43356	Code string `json:"code,omitempty"`
43357
43358	// Data: [Output Only] Metadata about this warning in key: value format.
43359	// For example:
43360	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43361	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
43362
43363	// Message: [Output Only] A human-readable description of the warning
43364	// code.
43365	Message string `json:"message,omitempty"`
43366
43367	// ForceSendFields is a list of field names (e.g. "Code") to
43368	// unconditionally include in API requests. By default, fields with
43369	// empty values are omitted from API requests. However, any non-pointer,
43370	// non-interface field appearing in ForceSendFields will be sent to the
43371	// server regardless of whether the field is empty or not. This may be
43372	// used to include empty fields in Patch requests.
43373	ForceSendFields []string `json:"-"`
43374
43375	// NullFields is a list of field names (e.g. "Code") 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 *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
43385	type NoMethod TargetHttpsProxyAggregatedListWarning
43386	raw := NoMethod(*s)
43387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43388}
43389
43390type TargetHttpsProxyAggregatedListWarningData struct {
43391	// Key: [Output Only] A key that provides more detail on the warning
43392	// being returned. For example, for warnings where there are no results
43393	// in a list request for a particular zone, this key might be scope and
43394	// the key value might be the zone name. Other examples might be a key
43395	// indicating a deprecated resource and a suggested replacement, or a
43396	// warning about invalid network settings (for example, if an instance
43397	// attempts to perform IP forwarding but is not enabled for IP
43398	// forwarding).
43399	Key string `json:"key,omitempty"`
43400
43401	// Value: [Output Only] A warning data value corresponding to the key.
43402	Value string `json:"value,omitempty"`
43403
43404	// ForceSendFields is a list of field names (e.g. "Key") to
43405	// unconditionally include in API requests. By default, fields with
43406	// empty values are omitted from API requests. However, any non-pointer,
43407	// non-interface field appearing in ForceSendFields will be sent to the
43408	// server regardless of whether the field is empty or not. This may be
43409	// used to include empty fields in Patch requests.
43410	ForceSendFields []string `json:"-"`
43411
43412	// NullFields is a list of field names (e.g. "Key") to include in API
43413	// requests with the JSON null value. By default, fields with empty
43414	// values are omitted from API requests. However, any field with an
43415	// empty value appearing in NullFields will be sent to the server as
43416	// null. It is an error if a field in this list has a non-empty value.
43417	// This may be used to include null fields in Patch requests.
43418	NullFields []string `json:"-"`
43419}
43420
43421func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
43422	type NoMethod TargetHttpsProxyAggregatedListWarningData
43423	raw := NoMethod(*s)
43424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43425}
43426
43427// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
43428type TargetHttpsProxyList struct {
43429	// Id: [Output Only] Unique identifier for the resource; defined by the
43430	// server.
43431	Id string `json:"id,omitempty"`
43432
43433	// Items: A list of TargetHttpsProxy resources.
43434	Items []*TargetHttpsProxy `json:"items,omitempty"`
43435
43436	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
43437	// of target HTTPS proxies.
43438	Kind string `json:"kind,omitempty"`
43439
43440	// NextPageToken: [Output Only] This token allows you to get the next
43441	// page of results for list requests. If the number of results is larger
43442	// than maxResults, use the nextPageToken as a value for the query
43443	// parameter pageToken in the next list request. Subsequent list
43444	// requests will have their own nextPageToken to continue paging through
43445	// the results.
43446	NextPageToken string `json:"nextPageToken,omitempty"`
43447
43448	// SelfLink: [Output Only] Server-defined URL for this resource.
43449	SelfLink string `json:"selfLink,omitempty"`
43450
43451	// Warning: [Output Only] Informational warning message.
43452	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
43453
43454	// ServerResponse contains the HTTP response code and headers from the
43455	// server.
43456	googleapi.ServerResponse `json:"-"`
43457
43458	// ForceSendFields is a list of field names (e.g. "Id") to
43459	// unconditionally include in API requests. By default, fields with
43460	// empty values are omitted from API requests. However, any non-pointer,
43461	// non-interface field appearing in ForceSendFields will be sent to the
43462	// server regardless of whether the field is empty or not. This may be
43463	// used to include empty fields in Patch requests.
43464	ForceSendFields []string `json:"-"`
43465
43466	// NullFields is a list of field names (e.g. "Id") to include in API
43467	// requests with the JSON null value. By default, fields with empty
43468	// values are omitted from API requests. However, any field with an
43469	// empty value appearing in NullFields will be sent to the server as
43470	// null. It is an error if a field in this list has a non-empty value.
43471	// This may be used to include null fields in Patch requests.
43472	NullFields []string `json:"-"`
43473}
43474
43475func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
43476	type NoMethod TargetHttpsProxyList
43477	raw := NoMethod(*s)
43478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43479}
43480
43481// TargetHttpsProxyListWarning: [Output Only] Informational warning
43482// message.
43483type TargetHttpsProxyListWarning struct {
43484	// Code: [Output Only] A warning code, if applicable. For example,
43485	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43486	// the response.
43487	//
43488	// Possible values:
43489	//   "CLEANUP_FAILED"
43490	//   "DEPRECATED_RESOURCE_USED"
43491	//   "DEPRECATED_TYPE_USED"
43492	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43493	//   "EXPERIMENTAL_TYPE_USED"
43494	//   "EXTERNAL_API_WARNING"
43495	//   "FIELD_VALUE_OVERRIDEN"
43496	//   "INJECTED_KERNELS_DEPRECATED"
43497	//   "MISSING_TYPE_DEPENDENCY"
43498	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43499	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43500	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43501	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43502	//   "NEXT_HOP_NOT_RUNNING"
43503	//   "NOT_CRITICAL_ERROR"
43504	//   "NO_RESULTS_ON_PAGE"
43505	//   "PARTIAL_SUCCESS"
43506	//   "REQUIRED_TOS_AGREEMENT"
43507	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43508	//   "RESOURCE_NOT_DELETED"
43509	//   "SCHEMA_VALIDATION_IGNORED"
43510	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43511	//   "UNDECLARED_PROPERTIES"
43512	//   "UNREACHABLE"
43513	Code string `json:"code,omitempty"`
43514
43515	// Data: [Output Only] Metadata about this warning in key: value format.
43516	// For example:
43517	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43518	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
43519
43520	// Message: [Output Only] A human-readable description of the warning
43521	// code.
43522	Message string `json:"message,omitempty"`
43523
43524	// ForceSendFields is a list of field names (e.g. "Code") to
43525	// unconditionally include in API requests. By default, fields with
43526	// empty values are omitted from API requests. However, any non-pointer,
43527	// non-interface field appearing in ForceSendFields will be sent to the
43528	// server regardless of whether the field is empty or not. This may be
43529	// used to include empty fields in Patch requests.
43530	ForceSendFields []string `json:"-"`
43531
43532	// NullFields is a list of field names (e.g. "Code") to include in API
43533	// requests with the JSON null value. By default, fields with empty
43534	// values are omitted from API requests. However, any field with an
43535	// empty value appearing in NullFields will be sent to the server as
43536	// null. It is an error if a field in this list has a non-empty value.
43537	// This may be used to include null fields in Patch requests.
43538	NullFields []string `json:"-"`
43539}
43540
43541func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
43542	type NoMethod TargetHttpsProxyListWarning
43543	raw := NoMethod(*s)
43544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43545}
43546
43547type TargetHttpsProxyListWarningData struct {
43548	// Key: [Output Only] A key that provides more detail on the warning
43549	// being returned. For example, for warnings where there are no results
43550	// in a list request for a particular zone, this key might be scope and
43551	// the key value might be the zone name. Other examples might be a key
43552	// indicating a deprecated resource and a suggested replacement, or a
43553	// warning about invalid network settings (for example, if an instance
43554	// attempts to perform IP forwarding but is not enabled for IP
43555	// forwarding).
43556	Key string `json:"key,omitempty"`
43557
43558	// Value: [Output Only] A warning data value corresponding to the key.
43559	Value string `json:"value,omitempty"`
43560
43561	// ForceSendFields is a list of field names (e.g. "Key") to
43562	// unconditionally include in API requests. By default, fields with
43563	// empty values are omitted from API requests. However, any non-pointer,
43564	// non-interface field appearing in ForceSendFields will be sent to the
43565	// server regardless of whether the field is empty or not. This may be
43566	// used to include empty fields in Patch requests.
43567	ForceSendFields []string `json:"-"`
43568
43569	// NullFields is a list of field names (e.g. "Key") to include in API
43570	// requests with the JSON null value. By default, fields with empty
43571	// values are omitted from API requests. However, any field with an
43572	// empty value appearing in NullFields will be sent to the server as
43573	// null. It is an error if a field in this list has a non-empty value.
43574	// This may be used to include null fields in Patch requests.
43575	NullFields []string `json:"-"`
43576}
43577
43578func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
43579	type NoMethod TargetHttpsProxyListWarningData
43580	raw := NoMethod(*s)
43581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43582}
43583
43584// TargetInstance: Represents a Target Instance resource.
43585//
43586// You can use a target instance to handle traffic for one or more
43587// forwarding rules, which is ideal for forwarding protocol traffic that
43588// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
43589// more information, read Target instances. (== resource_for
43590// {$api_version}.targetInstances ==)
43591type TargetInstance struct {
43592	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43593	// format.
43594	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43595
43596	// Description: An optional description of this resource. Provide this
43597	// property when you create the resource.
43598	Description string `json:"description,omitempty"`
43599
43600	// Id: [Output Only] The unique identifier for the resource. This
43601	// identifier is defined by the server.
43602	Id uint64 `json:"id,omitempty,string"`
43603
43604	// Instance: A URL to the virtual machine instance that handles traffic
43605	// for this target instance. When creating a target instance, you can
43606	// provide the fully-qualified URL or a valid partial URL to the desired
43607	// virtual machine. For example, the following are all valid URLs:
43608	// -
43609	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
43610	// - projects/project/zones/zone/instances/instance
43611	// - zones/zone/instances/instance
43612	Instance string `json:"instance,omitempty"`
43613
43614	// Kind: [Output Only] The type of the resource. Always
43615	// compute#targetInstance for target instances.
43616	Kind string `json:"kind,omitempty"`
43617
43618	// Name: Name of the resource. Provided by the client when the resource
43619	// is created. The name must be 1-63 characters long, and comply with
43620	// RFC1035. Specifically, the name must be 1-63 characters long and
43621	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43622	// the first character must be a lowercase letter, and all following
43623	// characters must be a dash, lowercase letter, or digit, except the
43624	// last character, which cannot be a dash.
43625	Name string `json:"name,omitempty"`
43626
43627	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
43628	// Currently only NO_NAT (default value) is supported.
43629	//
43630	// Possible values:
43631	//   "NO_NAT"
43632	NatPolicy string `json:"natPolicy,omitempty"`
43633
43634	// Network: The URL of the network this target instance uses to forward
43635	// traffic. If not specified, the traffic will be forwarded to the
43636	// network that the default network interface belongs to.
43637	Network string `json:"network,omitempty"`
43638
43639	// SelfLink: [Output Only] Server-defined URL for the resource.
43640	SelfLink string `json:"selfLink,omitempty"`
43641
43642	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
43643	// with the resource id.
43644	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
43645
43646	// Zone: [Output Only] URL of the zone where the target instance
43647	// resides. You must specify this field as part of the HTTP request URL.
43648	// It is not settable as a field in the request body.
43649	Zone string `json:"zone,omitempty"`
43650
43651	// ServerResponse contains the HTTP response code and headers from the
43652	// server.
43653	googleapi.ServerResponse `json:"-"`
43654
43655	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43656	// to unconditionally include in API requests. By default, fields with
43657	// empty values are omitted from API requests. However, any non-pointer,
43658	// non-interface field appearing in ForceSendFields will be sent to the
43659	// server regardless of whether the field is empty or not. This may be
43660	// used to include empty fields in Patch requests.
43661	ForceSendFields []string `json:"-"`
43662
43663	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43664	// include in API requests with the JSON null value. By default, fields
43665	// with empty values are omitted from API requests. However, any field
43666	// with an empty value appearing in NullFields will be sent to the
43667	// server as null. It is an error if a field in this list has a
43668	// non-empty value. This may be used to include null fields in Patch
43669	// requests.
43670	NullFields []string `json:"-"`
43671}
43672
43673func (s *TargetInstance) MarshalJSON() ([]byte, error) {
43674	type NoMethod TargetInstance
43675	raw := NoMethod(*s)
43676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43677}
43678
43679type TargetInstanceAggregatedList struct {
43680	// Id: [Output Only] Unique identifier for the resource; defined by the
43681	// server.
43682	Id string `json:"id,omitempty"`
43683
43684	// Items: A list of TargetInstance resources.
43685	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
43686
43687	// Kind: Type of resource.
43688	Kind string `json:"kind,omitempty"`
43689
43690	// NextPageToken: [Output Only] This token allows you to get the next
43691	// page of results for list requests. If the number of results is larger
43692	// than maxResults, use the nextPageToken as a value for the query
43693	// parameter pageToken in the next list request. Subsequent list
43694	// requests will have their own nextPageToken to continue paging through
43695	// the results.
43696	NextPageToken string `json:"nextPageToken,omitempty"`
43697
43698	// SelfLink: [Output Only] Server-defined URL for this resource.
43699	SelfLink string `json:"selfLink,omitempty"`
43700
43701	// Unreachables: [Output Only] Unreachable resources.
43702	Unreachables []string `json:"unreachables,omitempty"`
43703
43704	// Warning: [Output Only] Informational warning message.
43705	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
43706
43707	// ServerResponse contains the HTTP response code and headers from the
43708	// server.
43709	googleapi.ServerResponse `json:"-"`
43710
43711	// ForceSendFields is a list of field names (e.g. "Id") to
43712	// unconditionally include in API requests. By default, fields with
43713	// empty values are omitted from API requests. However, any non-pointer,
43714	// non-interface field appearing in ForceSendFields will be sent to the
43715	// server regardless of whether the field is empty or not. This may be
43716	// used to include empty fields in Patch requests.
43717	ForceSendFields []string `json:"-"`
43718
43719	// NullFields is a list of field names (e.g. "Id") to include in API
43720	// requests with the JSON null value. By default, fields with empty
43721	// values are omitted from API requests. However, any field with an
43722	// empty value appearing in NullFields will be sent to the server as
43723	// null. It is an error if a field in this list has a non-empty value.
43724	// This may be used to include null fields in Patch requests.
43725	NullFields []string `json:"-"`
43726}
43727
43728func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
43729	type NoMethod TargetInstanceAggregatedList
43730	raw := NoMethod(*s)
43731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43732}
43733
43734// TargetInstanceAggregatedListWarning: [Output Only] Informational
43735// warning message.
43736type TargetInstanceAggregatedListWarning struct {
43737	// Code: [Output Only] A warning code, if applicable. For example,
43738	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43739	// the response.
43740	//
43741	// Possible values:
43742	//   "CLEANUP_FAILED"
43743	//   "DEPRECATED_RESOURCE_USED"
43744	//   "DEPRECATED_TYPE_USED"
43745	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43746	//   "EXPERIMENTAL_TYPE_USED"
43747	//   "EXTERNAL_API_WARNING"
43748	//   "FIELD_VALUE_OVERRIDEN"
43749	//   "INJECTED_KERNELS_DEPRECATED"
43750	//   "MISSING_TYPE_DEPENDENCY"
43751	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43752	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43753	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43754	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43755	//   "NEXT_HOP_NOT_RUNNING"
43756	//   "NOT_CRITICAL_ERROR"
43757	//   "NO_RESULTS_ON_PAGE"
43758	//   "PARTIAL_SUCCESS"
43759	//   "REQUIRED_TOS_AGREEMENT"
43760	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43761	//   "RESOURCE_NOT_DELETED"
43762	//   "SCHEMA_VALIDATION_IGNORED"
43763	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43764	//   "UNDECLARED_PROPERTIES"
43765	//   "UNREACHABLE"
43766	Code string `json:"code,omitempty"`
43767
43768	// Data: [Output Only] Metadata about this warning in key: value format.
43769	// For example:
43770	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43771	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
43772
43773	// Message: [Output Only] A human-readable description of the warning
43774	// code.
43775	Message string `json:"message,omitempty"`
43776
43777	// ForceSendFields is a list of field names (e.g. "Code") to
43778	// unconditionally include in API requests. By default, fields with
43779	// empty values are omitted from API requests. However, any non-pointer,
43780	// non-interface field appearing in ForceSendFields will be sent to the
43781	// server regardless of whether the field is empty or not. This may be
43782	// used to include empty fields in Patch requests.
43783	ForceSendFields []string `json:"-"`
43784
43785	// NullFields is a list of field names (e.g. "Code") to include in API
43786	// requests with the JSON null value. By default, fields with empty
43787	// values are omitted from API requests. However, any field with an
43788	// empty value appearing in NullFields will be sent to the server as
43789	// null. It is an error if a field in this list has a non-empty value.
43790	// This may be used to include null fields in Patch requests.
43791	NullFields []string `json:"-"`
43792}
43793
43794func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
43795	type NoMethod TargetInstanceAggregatedListWarning
43796	raw := NoMethod(*s)
43797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43798}
43799
43800type TargetInstanceAggregatedListWarningData struct {
43801	// Key: [Output Only] A key that provides more detail on the warning
43802	// being returned. For example, for warnings where there are no results
43803	// in a list request for a particular zone, this key might be scope and
43804	// the key value might be the zone name. Other examples might be a key
43805	// indicating a deprecated resource and a suggested replacement, or a
43806	// warning about invalid network settings (for example, if an instance
43807	// attempts to perform IP forwarding but is not enabled for IP
43808	// forwarding).
43809	Key string `json:"key,omitempty"`
43810
43811	// Value: [Output Only] A warning data value corresponding to the key.
43812	Value string `json:"value,omitempty"`
43813
43814	// ForceSendFields is a list of field names (e.g. "Key") to
43815	// unconditionally include in API requests. By default, fields with
43816	// empty values are omitted from API requests. However, any non-pointer,
43817	// non-interface field appearing in ForceSendFields will be sent to the
43818	// server regardless of whether the field is empty or not. This may be
43819	// used to include empty fields in Patch requests.
43820	ForceSendFields []string `json:"-"`
43821
43822	// NullFields is a list of field names (e.g. "Key") to include in API
43823	// requests with the JSON null value. By default, fields with empty
43824	// values are omitted from API requests. However, any field with an
43825	// empty value appearing in NullFields will be sent to the server as
43826	// null. It is an error if a field in this list has a non-empty value.
43827	// This may be used to include null fields in Patch requests.
43828	NullFields []string `json:"-"`
43829}
43830
43831func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
43832	type NoMethod TargetInstanceAggregatedListWarningData
43833	raw := NoMethod(*s)
43834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43835}
43836
43837// TargetInstanceList: Contains a list of TargetInstance resources.
43838type TargetInstanceList struct {
43839	// Id: [Output Only] Unique identifier for the resource; defined by the
43840	// server.
43841	Id string `json:"id,omitempty"`
43842
43843	// Items: A list of TargetInstance resources.
43844	Items []*TargetInstance `json:"items,omitempty"`
43845
43846	// Kind: Type of resource.
43847	Kind string `json:"kind,omitempty"`
43848
43849	// NextPageToken: [Output Only] This token allows you to get the next
43850	// page of results for list requests. If the number of results is larger
43851	// than maxResults, use the nextPageToken as a value for the query
43852	// parameter pageToken in the next list request. Subsequent list
43853	// requests will have their own nextPageToken to continue paging through
43854	// the results.
43855	NextPageToken string `json:"nextPageToken,omitempty"`
43856
43857	// SelfLink: [Output Only] Server-defined URL for this resource.
43858	SelfLink string `json:"selfLink,omitempty"`
43859
43860	// Warning: [Output Only] Informational warning message.
43861	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
43862
43863	// ServerResponse contains the HTTP response code and headers from the
43864	// server.
43865	googleapi.ServerResponse `json:"-"`
43866
43867	// ForceSendFields is a list of field names (e.g. "Id") to
43868	// unconditionally include in API requests. By default, fields with
43869	// empty values are omitted from API requests. However, any non-pointer,
43870	// non-interface field appearing in ForceSendFields will be sent to the
43871	// server regardless of whether the field is empty or not. This may be
43872	// used to include empty fields in Patch requests.
43873	ForceSendFields []string `json:"-"`
43874
43875	// NullFields is a list of field names (e.g. "Id") to include in API
43876	// requests with the JSON null value. By default, fields with empty
43877	// values are omitted from API requests. However, any field with an
43878	// empty value appearing in NullFields will be sent to the server as
43879	// null. It is an error if a field in this list has a non-empty value.
43880	// This may be used to include null fields in Patch requests.
43881	NullFields []string `json:"-"`
43882}
43883
43884func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
43885	type NoMethod TargetInstanceList
43886	raw := NoMethod(*s)
43887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43888}
43889
43890// TargetInstanceListWarning: [Output Only] Informational warning
43891// message.
43892type TargetInstanceListWarning struct {
43893	// Code: [Output Only] A warning code, if applicable. For example,
43894	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43895	// the response.
43896	//
43897	// Possible values:
43898	//   "CLEANUP_FAILED"
43899	//   "DEPRECATED_RESOURCE_USED"
43900	//   "DEPRECATED_TYPE_USED"
43901	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43902	//   "EXPERIMENTAL_TYPE_USED"
43903	//   "EXTERNAL_API_WARNING"
43904	//   "FIELD_VALUE_OVERRIDEN"
43905	//   "INJECTED_KERNELS_DEPRECATED"
43906	//   "MISSING_TYPE_DEPENDENCY"
43907	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43908	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43909	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43910	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43911	//   "NEXT_HOP_NOT_RUNNING"
43912	//   "NOT_CRITICAL_ERROR"
43913	//   "NO_RESULTS_ON_PAGE"
43914	//   "PARTIAL_SUCCESS"
43915	//   "REQUIRED_TOS_AGREEMENT"
43916	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43917	//   "RESOURCE_NOT_DELETED"
43918	//   "SCHEMA_VALIDATION_IGNORED"
43919	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43920	//   "UNDECLARED_PROPERTIES"
43921	//   "UNREACHABLE"
43922	Code string `json:"code,omitempty"`
43923
43924	// Data: [Output Only] Metadata about this warning in key: value format.
43925	// For example:
43926	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43927	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
43928
43929	// Message: [Output Only] A human-readable description of the warning
43930	// code.
43931	Message string `json:"message,omitempty"`
43932
43933	// ForceSendFields is a list of field names (e.g. "Code") to
43934	// unconditionally include in API requests. By default, fields with
43935	// empty values are omitted from API requests. However, any non-pointer,
43936	// non-interface field appearing in ForceSendFields will be sent to the
43937	// server regardless of whether the field is empty or not. This may be
43938	// used to include empty fields in Patch requests.
43939	ForceSendFields []string `json:"-"`
43940
43941	// NullFields is a list of field names (e.g. "Code") to include in API
43942	// requests with the JSON null value. By default, fields with empty
43943	// values are omitted from API requests. However, any field with an
43944	// empty value appearing in NullFields will be sent to the server as
43945	// null. It is an error if a field in this list has a non-empty value.
43946	// This may be used to include null fields in Patch requests.
43947	NullFields []string `json:"-"`
43948}
43949
43950func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
43951	type NoMethod TargetInstanceListWarning
43952	raw := NoMethod(*s)
43953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43954}
43955
43956type TargetInstanceListWarningData struct {
43957	// Key: [Output Only] A key that provides more detail on the warning
43958	// being returned. For example, for warnings where there are no results
43959	// in a list request for a particular zone, this key might be scope and
43960	// the key value might be the zone name. Other examples might be a key
43961	// indicating a deprecated resource and a suggested replacement, or a
43962	// warning about invalid network settings (for example, if an instance
43963	// attempts to perform IP forwarding but is not enabled for IP
43964	// forwarding).
43965	Key string `json:"key,omitempty"`
43966
43967	// Value: [Output Only] A warning data value corresponding to the key.
43968	Value string `json:"value,omitempty"`
43969
43970	// ForceSendFields is a list of field names (e.g. "Key") to
43971	// unconditionally include in API requests. By default, fields with
43972	// empty values are omitted from API requests. However, any non-pointer,
43973	// non-interface field appearing in ForceSendFields will be sent to the
43974	// server regardless of whether the field is empty or not. This may be
43975	// used to include empty fields in Patch requests.
43976	ForceSendFields []string `json:"-"`
43977
43978	// NullFields is a list of field names (e.g. "Key") to include in API
43979	// requests with the JSON null value. By default, fields with empty
43980	// values are omitted from API requests. However, any field with an
43981	// empty value appearing in NullFields will be sent to the server as
43982	// null. It is an error if a field in this list has a non-empty value.
43983	// This may be used to include null fields in Patch requests.
43984	NullFields []string `json:"-"`
43985}
43986
43987func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
43988	type NoMethod TargetInstanceListWarningData
43989	raw := NoMethod(*s)
43990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43991}
43992
43993type TargetInstancesScopedList struct {
43994	// TargetInstances: A list of target instances contained in this scope.
43995	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
43996
43997	// Warning: Informational warning which replaces the list of addresses
43998	// when the list is empty.
43999	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
44000
44001	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
44002	// unconditionally include in API requests. By default, fields with
44003	// empty values are omitted from API requests. However, any non-pointer,
44004	// non-interface field appearing in ForceSendFields will be sent to the
44005	// server regardless of whether the field is empty or not. This may be
44006	// used to include empty fields in Patch requests.
44007	ForceSendFields []string `json:"-"`
44008
44009	// NullFields is a list of field names (e.g. "TargetInstances") to
44010	// include in API requests with the JSON null value. By default, fields
44011	// with empty values are omitted from API requests. However, any field
44012	// with an empty value appearing in NullFields will be sent to the
44013	// server as null. It is an error if a field in this list has a
44014	// non-empty value. This may be used to include null fields in Patch
44015	// requests.
44016	NullFields []string `json:"-"`
44017}
44018
44019func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
44020	type NoMethod TargetInstancesScopedList
44021	raw := NoMethod(*s)
44022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44023}
44024
44025// TargetInstancesScopedListWarning: Informational warning which
44026// replaces the list of addresses when the list is empty.
44027type TargetInstancesScopedListWarning struct {
44028	// Code: [Output Only] A warning code, if applicable. For example,
44029	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44030	// the response.
44031	//
44032	// Possible values:
44033	//   "CLEANUP_FAILED"
44034	//   "DEPRECATED_RESOURCE_USED"
44035	//   "DEPRECATED_TYPE_USED"
44036	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44037	//   "EXPERIMENTAL_TYPE_USED"
44038	//   "EXTERNAL_API_WARNING"
44039	//   "FIELD_VALUE_OVERRIDEN"
44040	//   "INJECTED_KERNELS_DEPRECATED"
44041	//   "MISSING_TYPE_DEPENDENCY"
44042	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44043	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44044	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44045	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44046	//   "NEXT_HOP_NOT_RUNNING"
44047	//   "NOT_CRITICAL_ERROR"
44048	//   "NO_RESULTS_ON_PAGE"
44049	//   "PARTIAL_SUCCESS"
44050	//   "REQUIRED_TOS_AGREEMENT"
44051	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44052	//   "RESOURCE_NOT_DELETED"
44053	//   "SCHEMA_VALIDATION_IGNORED"
44054	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44055	//   "UNDECLARED_PROPERTIES"
44056	//   "UNREACHABLE"
44057	Code string `json:"code,omitempty"`
44058
44059	// Data: [Output Only] Metadata about this warning in key: value format.
44060	// For example:
44061	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44062	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
44063
44064	// Message: [Output Only] A human-readable description of the warning
44065	// code.
44066	Message string `json:"message,omitempty"`
44067
44068	// ForceSendFields is a list of field names (e.g. "Code") to
44069	// unconditionally include in API requests. By default, fields with
44070	// empty values are omitted from API requests. However, any non-pointer,
44071	// non-interface field appearing in ForceSendFields will be sent to the
44072	// server regardless of whether the field is empty or not. This may be
44073	// used to include empty fields in Patch requests.
44074	ForceSendFields []string `json:"-"`
44075
44076	// NullFields is a list of field names (e.g. "Code") to include in API
44077	// requests with the JSON null value. By default, fields with empty
44078	// values are omitted from API requests. However, any field with an
44079	// empty value appearing in NullFields will be sent to the server as
44080	// null. It is an error if a field in this list has a non-empty value.
44081	// This may be used to include null fields in Patch requests.
44082	NullFields []string `json:"-"`
44083}
44084
44085func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
44086	type NoMethod TargetInstancesScopedListWarning
44087	raw := NoMethod(*s)
44088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44089}
44090
44091type TargetInstancesScopedListWarningData struct {
44092	// Key: [Output Only] A key that provides more detail on the warning
44093	// being returned. For example, for warnings where there are no results
44094	// in a list request for a particular zone, this key might be scope and
44095	// the key value might be the zone name. Other examples might be a key
44096	// indicating a deprecated resource and a suggested replacement, or a
44097	// warning about invalid network settings (for example, if an instance
44098	// attempts to perform IP forwarding but is not enabled for IP
44099	// forwarding).
44100	Key string `json:"key,omitempty"`
44101
44102	// Value: [Output Only] A warning data value corresponding to the key.
44103	Value string `json:"value,omitempty"`
44104
44105	// ForceSendFields is a list of field names (e.g. "Key") to
44106	// unconditionally include in API requests. By default, fields with
44107	// empty values are omitted from API requests. However, any non-pointer,
44108	// non-interface field appearing in ForceSendFields will be sent to the
44109	// server regardless of whether the field is empty or not. This may be
44110	// used to include empty fields in Patch requests.
44111	ForceSendFields []string `json:"-"`
44112
44113	// NullFields is a list of field names (e.g. "Key") to include in API
44114	// requests with the JSON null value. By default, fields with empty
44115	// values are omitted from API requests. However, any field with an
44116	// empty value appearing in NullFields will be sent to the server as
44117	// null. It is an error if a field in this list has a non-empty value.
44118	// This may be used to include null fields in Patch requests.
44119	NullFields []string `json:"-"`
44120}
44121
44122func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
44123	type NoMethod TargetInstancesScopedListWarningData
44124	raw := NoMethod(*s)
44125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44126}
44127
44128// TargetPool: Represents a Target Pool resource.
44129//
44130// Target pools are used for network TCP/UDP load balancing. A target
44131// pool references member instances, an associated legacy
44132// HttpHealthCheck resource, and, optionally, a backup target pool. For
44133// more information, read Using target pools. (== resource_for
44134// {$api_version}.targetPools ==)
44135type TargetPool struct {
44136	// BackupPool: This field is applicable only when the containing target
44137	// pool is serving a forwarding rule as the primary pool, and its
44138	// failoverRatio field is properly set to a value between [0,
44139	// 1].
44140	//
44141	// backupPool and failoverRatio together define the fallback behavior of
44142	// the primary target pool: if the ratio of the healthy instances in the
44143	// primary pool is at or below failoverRatio, traffic arriving at the
44144	// load-balanced IP will be directed to the backup pool.
44145	//
44146	// In case where failoverRatio and backupPool are not set, or all the
44147	// instances in the backup pool are unhealthy, the traffic will be
44148	// directed back to the primary pool in the "force" mode, where traffic
44149	// will be spread to the healthy instances with the best effort, or to
44150	// all instances when no instance is healthy.
44151	BackupPool string `json:"backupPool,omitempty"`
44152
44153	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44154	// format.
44155	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44156
44157	// Description: An optional description of this resource. Provide this
44158	// property when you create the resource.
44159	Description string `json:"description,omitempty"`
44160
44161	// FailoverRatio: This field is applicable only when the containing
44162	// target pool is serving a forwarding rule as the primary pool (i.e.,
44163	// not as a backup pool to some other target pool). The value of the
44164	// field must be in [0, 1].
44165	//
44166	// If set, backupPool must also be set. They together define the
44167	// fallback behavior of the primary target pool: if the ratio of the
44168	// healthy instances in the primary pool is at or below this number,
44169	// traffic arriving at the load-balanced IP will be directed to the
44170	// backup pool.
44171	//
44172	// In case where failoverRatio is not set or all the instances in the
44173	// backup pool are unhealthy, the traffic will be directed back to the
44174	// primary pool in the "force" mode, where traffic will be spread to the
44175	// healthy instances with the best effort, or to all instances when no
44176	// instance is healthy.
44177	FailoverRatio float64 `json:"failoverRatio,omitempty"`
44178
44179	// HealthChecks: The URL of the HttpHealthCheck resource. A member
44180	// instance in this pool is considered healthy if and only if the health
44181	// checks pass. An empty list means all member instances will be
44182	// considered healthy at all times. Only HttpHealthChecks are supported.
44183	// Only one health check may be specified.
44184	HealthChecks []string `json:"healthChecks,omitempty"`
44185
44186	// Id: [Output Only] The unique identifier for the resource. This
44187	// identifier is defined by the server.
44188	Id uint64 `json:"id,omitempty,string"`
44189
44190	// Instances: A list of resource URLs to the virtual machine instances
44191	// serving this pool. They must live in zones contained in the same
44192	// region as this pool.
44193	Instances []string `json:"instances,omitempty"`
44194
44195	// Kind: [Output Only] Type of the resource. Always compute#targetPool
44196	// for target pools.
44197	Kind string `json:"kind,omitempty"`
44198
44199	// Name: Name of the resource. Provided by the client when the resource
44200	// is created. The name must be 1-63 characters long, and comply with
44201	// RFC1035. Specifically, the name must be 1-63 characters long and
44202	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44203	// the first character must be a lowercase letter, and all following
44204	// characters must be a dash, lowercase letter, or digit, except the
44205	// last character, which cannot be a dash.
44206	Name string `json:"name,omitempty"`
44207
44208	// Region: [Output Only] URL of the region where the target pool
44209	// resides.
44210	Region string `json:"region,omitempty"`
44211
44212	// SelfLink: [Output Only] Server-defined URL for the resource.
44213	SelfLink string `json:"selfLink,omitempty"`
44214
44215	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
44216	// with the resource id.
44217	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
44218
44219	// SessionAffinity: Session affinity option, must be one of the
44220	// following values:
44221	// NONE: Connections from the same client IP may go to any instance in
44222	// the pool.
44223	// CLIENT_IP: Connections from the same client IP will go to the same
44224	// instance in the pool while that instance remains
44225	// healthy.
44226	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
44227	// protocol will go to the same instance in the pool while that instance
44228	// remains healthy.
44229	//
44230	// Possible values:
44231	//   "CLIENT_IP"
44232	//   "CLIENT_IP_NO_DESTINATION"
44233	//   "CLIENT_IP_PORT_PROTO"
44234	//   "CLIENT_IP_PROTO"
44235	//   "GENERATED_COOKIE"
44236	//   "HEADER_FIELD"
44237	//   "HTTP_COOKIE"
44238	//   "NONE"
44239	SessionAffinity string `json:"sessionAffinity,omitempty"`
44240
44241	// ServerResponse contains the HTTP response code and headers from the
44242	// server.
44243	googleapi.ServerResponse `json:"-"`
44244
44245	// ForceSendFields is a list of field names (e.g. "BackupPool") to
44246	// unconditionally include in API requests. By default, fields with
44247	// empty values are omitted from API requests. However, any non-pointer,
44248	// non-interface field appearing in ForceSendFields will be sent to the
44249	// server regardless of whether the field is empty or not. This may be
44250	// used to include empty fields in Patch requests.
44251	ForceSendFields []string `json:"-"`
44252
44253	// NullFields is a list of field names (e.g. "BackupPool") to include in
44254	// API requests with the JSON null value. By default, fields with empty
44255	// values are omitted from API requests. However, any field with an
44256	// empty value appearing in NullFields will be sent to the server as
44257	// null. It is an error if a field in this list has a non-empty value.
44258	// This may be used to include null fields in Patch requests.
44259	NullFields []string `json:"-"`
44260}
44261
44262func (s *TargetPool) MarshalJSON() ([]byte, error) {
44263	type NoMethod TargetPool
44264	raw := NoMethod(*s)
44265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44266}
44267
44268func (s *TargetPool) UnmarshalJSON(data []byte) error {
44269	type NoMethod TargetPool
44270	var s1 struct {
44271		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
44272		*NoMethod
44273	}
44274	s1.NoMethod = (*NoMethod)(s)
44275	if err := json.Unmarshal(data, &s1); err != nil {
44276		return err
44277	}
44278	s.FailoverRatio = float64(s1.FailoverRatio)
44279	return nil
44280}
44281
44282type TargetPoolAggregatedList struct {
44283	// Id: [Output Only] Unique identifier for the resource; defined by the
44284	// server.
44285	Id string `json:"id,omitempty"`
44286
44287	// Items: A list of TargetPool resources.
44288	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
44289
44290	// Kind: [Output Only] Type of resource. Always
44291	// compute#targetPoolAggregatedList for aggregated lists of target
44292	// pools.
44293	Kind string `json:"kind,omitempty"`
44294
44295	// NextPageToken: [Output Only] This token allows you to get the next
44296	// page of results for list requests. If the number of results is larger
44297	// than maxResults, use the nextPageToken as a value for the query
44298	// parameter pageToken in the next list request. Subsequent list
44299	// requests will have their own nextPageToken to continue paging through
44300	// the results.
44301	NextPageToken string `json:"nextPageToken,omitempty"`
44302
44303	// SelfLink: [Output Only] Server-defined URL for this resource.
44304	SelfLink string `json:"selfLink,omitempty"`
44305
44306	// Unreachables: [Output Only] Unreachable resources.
44307	Unreachables []string `json:"unreachables,omitempty"`
44308
44309	// Warning: [Output Only] Informational warning message.
44310	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
44311
44312	// ServerResponse contains the HTTP response code and headers from the
44313	// server.
44314	googleapi.ServerResponse `json:"-"`
44315
44316	// ForceSendFields is a list of field names (e.g. "Id") to
44317	// unconditionally include in API requests. By default, fields with
44318	// empty values are omitted from API requests. However, any non-pointer,
44319	// non-interface field appearing in ForceSendFields will be sent to the
44320	// server regardless of whether the field is empty or not. This may be
44321	// used to include empty fields in Patch requests.
44322	ForceSendFields []string `json:"-"`
44323
44324	// NullFields is a list of field names (e.g. "Id") to include in API
44325	// requests with the JSON null value. By default, fields with empty
44326	// values are omitted from API requests. However, any field with an
44327	// empty value appearing in NullFields will be sent to the server as
44328	// null. It is an error if a field in this list has a non-empty value.
44329	// This may be used to include null fields in Patch requests.
44330	NullFields []string `json:"-"`
44331}
44332
44333func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
44334	type NoMethod TargetPoolAggregatedList
44335	raw := NoMethod(*s)
44336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44337}
44338
44339// TargetPoolAggregatedListWarning: [Output Only] Informational warning
44340// message.
44341type TargetPoolAggregatedListWarning struct {
44342	// Code: [Output Only] A warning code, if applicable. For example,
44343	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44344	// the response.
44345	//
44346	// Possible values:
44347	//   "CLEANUP_FAILED"
44348	//   "DEPRECATED_RESOURCE_USED"
44349	//   "DEPRECATED_TYPE_USED"
44350	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44351	//   "EXPERIMENTAL_TYPE_USED"
44352	//   "EXTERNAL_API_WARNING"
44353	//   "FIELD_VALUE_OVERRIDEN"
44354	//   "INJECTED_KERNELS_DEPRECATED"
44355	//   "MISSING_TYPE_DEPENDENCY"
44356	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44357	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44358	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44359	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44360	//   "NEXT_HOP_NOT_RUNNING"
44361	//   "NOT_CRITICAL_ERROR"
44362	//   "NO_RESULTS_ON_PAGE"
44363	//   "PARTIAL_SUCCESS"
44364	//   "REQUIRED_TOS_AGREEMENT"
44365	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44366	//   "RESOURCE_NOT_DELETED"
44367	//   "SCHEMA_VALIDATION_IGNORED"
44368	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44369	//   "UNDECLARED_PROPERTIES"
44370	//   "UNREACHABLE"
44371	Code string `json:"code,omitempty"`
44372
44373	// Data: [Output Only] Metadata about this warning in key: value format.
44374	// For example:
44375	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44376	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
44377
44378	// Message: [Output Only] A human-readable description of the warning
44379	// code.
44380	Message string `json:"message,omitempty"`
44381
44382	// ForceSendFields is a list of field names (e.g. "Code") to
44383	// unconditionally include in API requests. By default, fields with
44384	// empty values are omitted from API requests. However, any non-pointer,
44385	// non-interface field appearing in ForceSendFields will be sent to the
44386	// server regardless of whether the field is empty or not. This may be
44387	// used to include empty fields in Patch requests.
44388	ForceSendFields []string `json:"-"`
44389
44390	// NullFields is a list of field names (e.g. "Code") to include in API
44391	// requests with the JSON null value. By default, fields with empty
44392	// values are omitted from API requests. However, any field with an
44393	// empty value appearing in NullFields will be sent to the server as
44394	// null. It is an error if a field in this list has a non-empty value.
44395	// This may be used to include null fields in Patch requests.
44396	NullFields []string `json:"-"`
44397}
44398
44399func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
44400	type NoMethod TargetPoolAggregatedListWarning
44401	raw := NoMethod(*s)
44402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44403}
44404
44405type TargetPoolAggregatedListWarningData struct {
44406	// Key: [Output Only] A key that provides more detail on the warning
44407	// being returned. For example, for warnings where there are no results
44408	// in a list request for a particular zone, this key might be scope and
44409	// the key value might be the zone name. Other examples might be a key
44410	// indicating a deprecated resource and a suggested replacement, or a
44411	// warning about invalid network settings (for example, if an instance
44412	// attempts to perform IP forwarding but is not enabled for IP
44413	// forwarding).
44414	Key string `json:"key,omitempty"`
44415
44416	// Value: [Output Only] A warning data value corresponding to the key.
44417	Value string `json:"value,omitempty"`
44418
44419	// ForceSendFields is a list of field names (e.g. "Key") to
44420	// unconditionally include in API requests. By default, fields with
44421	// empty values are omitted from API requests. However, any non-pointer,
44422	// non-interface field appearing in ForceSendFields will be sent to the
44423	// server regardless of whether the field is empty or not. This may be
44424	// used to include empty fields in Patch requests.
44425	ForceSendFields []string `json:"-"`
44426
44427	// NullFields is a list of field names (e.g. "Key") to include in API
44428	// requests with the JSON null value. By default, fields with empty
44429	// values are omitted from API requests. However, any field with an
44430	// empty value appearing in NullFields will be sent to the server as
44431	// null. It is an error if a field in this list has a non-empty value.
44432	// This may be used to include null fields in Patch requests.
44433	NullFields []string `json:"-"`
44434}
44435
44436func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44437	type NoMethod TargetPoolAggregatedListWarningData
44438	raw := NoMethod(*s)
44439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44440}
44441
44442type TargetPoolInstanceHealth struct {
44443	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
44444
44445	// Kind: [Output Only] Type of resource. Always
44446	// compute#targetPoolInstanceHealth when checking the health of an
44447	// instance.
44448	Kind string `json:"kind,omitempty"`
44449
44450	// ServerResponse contains the HTTP response code and headers from the
44451	// server.
44452	googleapi.ServerResponse `json:"-"`
44453
44454	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
44455	// unconditionally include in API requests. By default, fields with
44456	// empty values are omitted from API requests. However, any non-pointer,
44457	// non-interface field appearing in ForceSendFields will be sent to the
44458	// server regardless of whether the field is empty or not. This may be
44459	// used to include empty fields in Patch requests.
44460	ForceSendFields []string `json:"-"`
44461
44462	// NullFields is a list of field names (e.g. "HealthStatus") to include
44463	// in API requests with the JSON null value. By default, fields with
44464	// empty values are omitted from API requests. However, any field with
44465	// an empty value appearing in NullFields will be sent to the server as
44466	// null. It is an error if a field in this list has a non-empty value.
44467	// This may be used to include null fields in Patch requests.
44468	NullFields []string `json:"-"`
44469}
44470
44471func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
44472	type NoMethod TargetPoolInstanceHealth
44473	raw := NoMethod(*s)
44474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44475}
44476
44477// TargetPoolList: Contains a list of TargetPool resources.
44478type TargetPoolList struct {
44479	// Id: [Output Only] Unique identifier for the resource; defined by the
44480	// server.
44481	Id string `json:"id,omitempty"`
44482
44483	// Items: A list of TargetPool resources.
44484	Items []*TargetPool `json:"items,omitempty"`
44485
44486	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
44487	// for lists of target pools.
44488	Kind string `json:"kind,omitempty"`
44489
44490	// NextPageToken: [Output Only] This token allows you to get the next
44491	// page of results for list requests. If the number of results is larger
44492	// than maxResults, use the nextPageToken as a value for the query
44493	// parameter pageToken in the next list request. Subsequent list
44494	// requests will have their own nextPageToken to continue paging through
44495	// the results.
44496	NextPageToken string `json:"nextPageToken,omitempty"`
44497
44498	// SelfLink: [Output Only] Server-defined URL for this resource.
44499	SelfLink string `json:"selfLink,omitempty"`
44500
44501	// Warning: [Output Only] Informational warning message.
44502	Warning *TargetPoolListWarning `json:"warning,omitempty"`
44503
44504	// ServerResponse contains the HTTP response code and headers from the
44505	// server.
44506	googleapi.ServerResponse `json:"-"`
44507
44508	// ForceSendFields is a list of field names (e.g. "Id") to
44509	// unconditionally include in API requests. By default, fields with
44510	// empty values are omitted from API requests. However, any non-pointer,
44511	// non-interface field appearing in ForceSendFields will be sent to the
44512	// server regardless of whether the field is empty or not. This may be
44513	// used to include empty fields in Patch requests.
44514	ForceSendFields []string `json:"-"`
44515
44516	// NullFields is a list of field names (e.g. "Id") to include in API
44517	// requests with the JSON null value. By default, fields with empty
44518	// values are omitted from API requests. However, any field with an
44519	// empty value appearing in NullFields will be sent to the server as
44520	// null. It is an error if a field in this list has a non-empty value.
44521	// This may be used to include null fields in Patch requests.
44522	NullFields []string `json:"-"`
44523}
44524
44525func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
44526	type NoMethod TargetPoolList
44527	raw := NoMethod(*s)
44528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44529}
44530
44531// TargetPoolListWarning: [Output Only] Informational warning message.
44532type TargetPoolListWarning struct {
44533	// Code: [Output Only] A warning code, if applicable. For example,
44534	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44535	// the response.
44536	//
44537	// Possible values:
44538	//   "CLEANUP_FAILED"
44539	//   "DEPRECATED_RESOURCE_USED"
44540	//   "DEPRECATED_TYPE_USED"
44541	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44542	//   "EXPERIMENTAL_TYPE_USED"
44543	//   "EXTERNAL_API_WARNING"
44544	//   "FIELD_VALUE_OVERRIDEN"
44545	//   "INJECTED_KERNELS_DEPRECATED"
44546	//   "MISSING_TYPE_DEPENDENCY"
44547	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44548	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44549	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44550	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44551	//   "NEXT_HOP_NOT_RUNNING"
44552	//   "NOT_CRITICAL_ERROR"
44553	//   "NO_RESULTS_ON_PAGE"
44554	//   "PARTIAL_SUCCESS"
44555	//   "REQUIRED_TOS_AGREEMENT"
44556	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44557	//   "RESOURCE_NOT_DELETED"
44558	//   "SCHEMA_VALIDATION_IGNORED"
44559	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44560	//   "UNDECLARED_PROPERTIES"
44561	//   "UNREACHABLE"
44562	Code string `json:"code,omitempty"`
44563
44564	// Data: [Output Only] Metadata about this warning in key: value format.
44565	// For example:
44566	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44567	Data []*TargetPoolListWarningData `json:"data,omitempty"`
44568
44569	// Message: [Output Only] A human-readable description of the warning
44570	// code.
44571	Message string `json:"message,omitempty"`
44572
44573	// ForceSendFields is a list of field names (e.g. "Code") to
44574	// unconditionally include in API requests. By default, fields with
44575	// empty values are omitted from API requests. However, any non-pointer,
44576	// non-interface field appearing in ForceSendFields will be sent to the
44577	// server regardless of whether the field is empty or not. This may be
44578	// used to include empty fields in Patch requests.
44579	ForceSendFields []string `json:"-"`
44580
44581	// NullFields is a list of field names (e.g. "Code") to include in API
44582	// requests with the JSON null value. By default, fields with empty
44583	// values are omitted from API requests. However, any field with an
44584	// empty value appearing in NullFields will be sent to the server as
44585	// null. It is an error if a field in this list has a non-empty value.
44586	// This may be used to include null fields in Patch requests.
44587	NullFields []string `json:"-"`
44588}
44589
44590func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
44591	type NoMethod TargetPoolListWarning
44592	raw := NoMethod(*s)
44593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44594}
44595
44596type TargetPoolListWarningData struct {
44597	// Key: [Output Only] A key that provides more detail on the warning
44598	// being returned. For example, for warnings where there are no results
44599	// in a list request for a particular zone, this key might be scope and
44600	// the key value might be the zone name. Other examples might be a key
44601	// indicating a deprecated resource and a suggested replacement, or a
44602	// warning about invalid network settings (for example, if an instance
44603	// attempts to perform IP forwarding but is not enabled for IP
44604	// forwarding).
44605	Key string `json:"key,omitempty"`
44606
44607	// Value: [Output Only] A warning data value corresponding to the key.
44608	Value string `json:"value,omitempty"`
44609
44610	// ForceSendFields is a list of field names (e.g. "Key") to
44611	// unconditionally include in API requests. By default, fields with
44612	// empty values are omitted from API requests. However, any non-pointer,
44613	// non-interface field appearing in ForceSendFields will be sent to the
44614	// server regardless of whether the field is empty or not. This may be
44615	// used to include empty fields in Patch requests.
44616	ForceSendFields []string `json:"-"`
44617
44618	// NullFields is a list of field names (e.g. "Key") to include in API
44619	// requests with the JSON null value. By default, fields with empty
44620	// values are omitted from API requests. However, any field with an
44621	// empty value appearing in NullFields will be sent to the server as
44622	// null. It is an error if a field in this list has a non-empty value.
44623	// This may be used to include null fields in Patch requests.
44624	NullFields []string `json:"-"`
44625}
44626
44627func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
44628	type NoMethod TargetPoolListWarningData
44629	raw := NoMethod(*s)
44630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44631}
44632
44633type TargetPoolsAddHealthCheckRequest struct {
44634	// HealthChecks: The HttpHealthCheck to add to the target pool.
44635	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
44636
44637	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
44638	// unconditionally include in API requests. By default, fields with
44639	// empty values are omitted from API requests. However, any non-pointer,
44640	// non-interface field appearing in ForceSendFields will be sent to the
44641	// server regardless of whether the field is empty or not. This may be
44642	// used to include empty fields in Patch requests.
44643	ForceSendFields []string `json:"-"`
44644
44645	// NullFields is a list of field names (e.g. "HealthChecks") to include
44646	// in API requests with the JSON null value. By default, fields with
44647	// empty values are omitted from API requests. However, any field with
44648	// an empty value appearing in NullFields will be sent to the server as
44649	// null. It is an error if a field in this list has a non-empty value.
44650	// This may be used to include null fields in Patch requests.
44651	NullFields []string `json:"-"`
44652}
44653
44654func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
44655	type NoMethod TargetPoolsAddHealthCheckRequest
44656	raw := NoMethod(*s)
44657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44658}
44659
44660type TargetPoolsAddInstanceRequest struct {
44661	// Instances: A full or partial URL to an instance to add to this target
44662	// pool. This can be a full or partial URL. For example, the following
44663	// are valid URLs:
44664	// -
44665	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
44666	// - projects/project-id/zones/zone/instances/instance-name
44667	// - zones/zone/instances/instance-name
44668	Instances []*InstanceReference `json:"instances,omitempty"`
44669
44670	// ForceSendFields is a list of field names (e.g. "Instances") to
44671	// unconditionally include in API requests. By default, fields with
44672	// empty values are omitted from API requests. However, any non-pointer,
44673	// non-interface field appearing in ForceSendFields will be sent to the
44674	// server regardless of whether the field is empty or not. This may be
44675	// used to include empty fields in Patch requests.
44676	ForceSendFields []string `json:"-"`
44677
44678	// NullFields is a list of field names (e.g. "Instances") to include in
44679	// API requests with the JSON null value. By default, fields with empty
44680	// values are omitted from API requests. However, any field with an
44681	// empty value appearing in NullFields will be sent to the server as
44682	// null. It is an error if a field in this list has a non-empty value.
44683	// This may be used to include null fields in Patch requests.
44684	NullFields []string `json:"-"`
44685}
44686
44687func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
44688	type NoMethod TargetPoolsAddInstanceRequest
44689	raw := NoMethod(*s)
44690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44691}
44692
44693type TargetPoolsRemoveHealthCheckRequest struct {
44694	// HealthChecks: Health check URL to be removed. This can be a full or
44695	// valid partial URL. For example, the following are valid URLs:
44696	// -
44697	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
44698	// - projects/project/global/httpHealthChecks/health-check
44699	// - global/httpHealthChecks/health-check
44700	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
44701
44702	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
44703	// unconditionally include in API requests. By default, fields with
44704	// empty values are omitted from API requests. However, any non-pointer,
44705	// non-interface field appearing in ForceSendFields will be sent to the
44706	// server regardless of whether the field is empty or not. This may be
44707	// used to include empty fields in Patch requests.
44708	ForceSendFields []string `json:"-"`
44709
44710	// NullFields is a list of field names (e.g. "HealthChecks") to include
44711	// in API requests with the JSON null value. By default, fields with
44712	// empty values are omitted from API requests. However, any field with
44713	// an empty value appearing in NullFields will be sent to the server as
44714	// null. It is an error if a field in this list has a non-empty value.
44715	// This may be used to include null fields in Patch requests.
44716	NullFields []string `json:"-"`
44717}
44718
44719func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
44720	type NoMethod TargetPoolsRemoveHealthCheckRequest
44721	raw := NoMethod(*s)
44722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44723}
44724
44725type TargetPoolsRemoveInstanceRequest struct {
44726	// Instances: URLs of the instances to be removed from target pool.
44727	Instances []*InstanceReference `json:"instances,omitempty"`
44728
44729	// ForceSendFields is a list of field names (e.g. "Instances") to
44730	// unconditionally include in API requests. By default, fields with
44731	// empty values are omitted from API requests. However, any non-pointer,
44732	// non-interface field appearing in ForceSendFields will be sent to the
44733	// server regardless of whether the field is empty or not. This may be
44734	// used to include empty fields in Patch requests.
44735	ForceSendFields []string `json:"-"`
44736
44737	// NullFields is a list of field names (e.g. "Instances") to include in
44738	// API requests with the JSON null value. By default, fields with empty
44739	// values are omitted from API requests. However, any field with an
44740	// empty value appearing in NullFields will be sent to the server as
44741	// null. It is an error if a field in this list has a non-empty value.
44742	// This may be used to include null fields in Patch requests.
44743	NullFields []string `json:"-"`
44744}
44745
44746func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
44747	type NoMethod TargetPoolsRemoveInstanceRequest
44748	raw := NoMethod(*s)
44749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44750}
44751
44752type TargetPoolsScopedList struct {
44753	// TargetPools: A list of target pools contained in this scope.
44754	TargetPools []*TargetPool `json:"targetPools,omitempty"`
44755
44756	// Warning: Informational warning which replaces the list of addresses
44757	// when the list is empty.
44758	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
44759
44760	// ForceSendFields is a list of field names (e.g. "TargetPools") to
44761	// unconditionally include in API requests. By default, fields with
44762	// empty values are omitted from API requests. However, any non-pointer,
44763	// non-interface field appearing in ForceSendFields will be sent to the
44764	// server regardless of whether the field is empty or not. This may be
44765	// used to include empty fields in Patch requests.
44766	ForceSendFields []string `json:"-"`
44767
44768	// NullFields is a list of field names (e.g. "TargetPools") to include
44769	// in API requests with the JSON null value. By default, fields with
44770	// empty values are omitted from API requests. However, any field with
44771	// an empty value appearing in NullFields will be sent to the server as
44772	// null. It is an error if a field in this list has a non-empty value.
44773	// This may be used to include null fields in Patch requests.
44774	NullFields []string `json:"-"`
44775}
44776
44777func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
44778	type NoMethod TargetPoolsScopedList
44779	raw := NoMethod(*s)
44780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44781}
44782
44783// TargetPoolsScopedListWarning: Informational warning which replaces
44784// the list of addresses when the list is empty.
44785type TargetPoolsScopedListWarning struct {
44786	// Code: [Output Only] A warning code, if applicable. For example,
44787	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44788	// the response.
44789	//
44790	// Possible values:
44791	//   "CLEANUP_FAILED"
44792	//   "DEPRECATED_RESOURCE_USED"
44793	//   "DEPRECATED_TYPE_USED"
44794	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44795	//   "EXPERIMENTAL_TYPE_USED"
44796	//   "EXTERNAL_API_WARNING"
44797	//   "FIELD_VALUE_OVERRIDEN"
44798	//   "INJECTED_KERNELS_DEPRECATED"
44799	//   "MISSING_TYPE_DEPENDENCY"
44800	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44801	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44802	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44803	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44804	//   "NEXT_HOP_NOT_RUNNING"
44805	//   "NOT_CRITICAL_ERROR"
44806	//   "NO_RESULTS_ON_PAGE"
44807	//   "PARTIAL_SUCCESS"
44808	//   "REQUIRED_TOS_AGREEMENT"
44809	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44810	//   "RESOURCE_NOT_DELETED"
44811	//   "SCHEMA_VALIDATION_IGNORED"
44812	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44813	//   "UNDECLARED_PROPERTIES"
44814	//   "UNREACHABLE"
44815	Code string `json:"code,omitempty"`
44816
44817	// Data: [Output Only] Metadata about this warning in key: value format.
44818	// For example:
44819	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44820	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
44821
44822	// Message: [Output Only] A human-readable description of the warning
44823	// code.
44824	Message string `json:"message,omitempty"`
44825
44826	// ForceSendFields is a list of field names (e.g. "Code") to
44827	// unconditionally include in API requests. By default, fields with
44828	// empty values are omitted from API requests. However, any non-pointer,
44829	// non-interface field appearing in ForceSendFields will be sent to the
44830	// server regardless of whether the field is empty or not. This may be
44831	// used to include empty fields in Patch requests.
44832	ForceSendFields []string `json:"-"`
44833
44834	// NullFields is a list of field names (e.g. "Code") to include in API
44835	// requests with the JSON null value. By default, fields with empty
44836	// values are omitted from API requests. However, any field with an
44837	// empty value appearing in NullFields will be sent to the server as
44838	// null. It is an error if a field in this list has a non-empty value.
44839	// This may be used to include null fields in Patch requests.
44840	NullFields []string `json:"-"`
44841}
44842
44843func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
44844	type NoMethod TargetPoolsScopedListWarning
44845	raw := NoMethod(*s)
44846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44847}
44848
44849type TargetPoolsScopedListWarningData struct {
44850	// Key: [Output Only] A key that provides more detail on the warning
44851	// being returned. For example, for warnings where there are no results
44852	// in a list request for a particular zone, this key might be scope and
44853	// the key value might be the zone name. Other examples might be a key
44854	// indicating a deprecated resource and a suggested replacement, or a
44855	// warning about invalid network settings (for example, if an instance
44856	// attempts to perform IP forwarding but is not enabled for IP
44857	// forwarding).
44858	Key string `json:"key,omitempty"`
44859
44860	// Value: [Output Only] A warning data value corresponding to the key.
44861	Value string `json:"value,omitempty"`
44862
44863	// ForceSendFields is a list of field names (e.g. "Key") to
44864	// unconditionally include in API requests. By default, fields with
44865	// empty values are omitted from API requests. However, any non-pointer,
44866	// non-interface field appearing in ForceSendFields will be sent to the
44867	// server regardless of whether the field is empty or not. This may be
44868	// used to include empty fields in Patch requests.
44869	ForceSendFields []string `json:"-"`
44870
44871	// NullFields is a list of field names (e.g. "Key") to include in API
44872	// requests with the JSON null value. By default, fields with empty
44873	// values are omitted from API requests. However, any field with an
44874	// empty value appearing in NullFields will be sent to the server as
44875	// null. It is an error if a field in this list has a non-empty value.
44876	// This may be used to include null fields in Patch requests.
44877	NullFields []string `json:"-"`
44878}
44879
44880func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
44881	type NoMethod TargetPoolsScopedListWarningData
44882	raw := NoMethod(*s)
44883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44884}
44885
44886type TargetReference struct {
44887	Target string `json:"target,omitempty"`
44888
44889	// ForceSendFields is a list of field names (e.g. "Target") to
44890	// unconditionally include in API requests. By default, fields with
44891	// empty values are omitted from API requests. However, any non-pointer,
44892	// non-interface field appearing in ForceSendFields will be sent to the
44893	// server regardless of whether the field is empty or not. This may be
44894	// used to include empty fields in Patch requests.
44895	ForceSendFields []string `json:"-"`
44896
44897	// NullFields is a list of field names (e.g. "Target") to include in API
44898	// requests with the JSON null value. By default, fields with empty
44899	// values are omitted from API requests. However, any field with an
44900	// empty value appearing in NullFields will be sent to the server as
44901	// null. It is an error if a field in this list has a non-empty value.
44902	// This may be used to include null fields in Patch requests.
44903	NullFields []string `json:"-"`
44904}
44905
44906func (s *TargetReference) MarshalJSON() ([]byte, error) {
44907	type NoMethod TargetReference
44908	raw := NoMethod(*s)
44909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44910}
44911
44912type TargetSslProxiesSetBackendServiceRequest struct {
44913	// Service: The URL of the new BackendService resource for the
44914	// targetSslProxy.
44915	Service string `json:"service,omitempty"`
44916
44917	// ForceSendFields is a list of field names (e.g. "Service") to
44918	// unconditionally include in API requests. By default, fields with
44919	// empty values are omitted from API requests. However, any non-pointer,
44920	// non-interface field appearing in ForceSendFields will be sent to the
44921	// server regardless of whether the field is empty or not. This may be
44922	// used to include empty fields in Patch requests.
44923	ForceSendFields []string `json:"-"`
44924
44925	// NullFields is a list of field names (e.g. "Service") to include in
44926	// API requests with the JSON null value. By default, fields with empty
44927	// values are omitted from API requests. However, any field with an
44928	// empty value appearing in NullFields will be sent to the server as
44929	// null. It is an error if a field in this list has a non-empty value.
44930	// This may be used to include null fields in Patch requests.
44931	NullFields []string `json:"-"`
44932}
44933
44934func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
44935	type NoMethod TargetSslProxiesSetBackendServiceRequest
44936	raw := NoMethod(*s)
44937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44938}
44939
44940type TargetSslProxiesSetProxyHeaderRequest struct {
44941	// ProxyHeader: The new type of proxy header to append before sending
44942	// data to the backend. NONE or PROXY_V1 are allowed.
44943	//
44944	// Possible values:
44945	//   "NONE"
44946	//   "PROXY_V1"
44947	ProxyHeader string `json:"proxyHeader,omitempty"`
44948
44949	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
44950	// unconditionally include in API requests. By default, fields with
44951	// empty values are omitted from API requests. However, any non-pointer,
44952	// non-interface field appearing in ForceSendFields will be sent to the
44953	// server regardless of whether the field is empty or not. This may be
44954	// used to include empty fields in Patch requests.
44955	ForceSendFields []string `json:"-"`
44956
44957	// NullFields is a list of field names (e.g. "ProxyHeader") to include
44958	// in API requests with the JSON null value. By default, fields with
44959	// empty values are omitted from API requests. However, any field with
44960	// an empty value appearing in NullFields will be sent to the server as
44961	// null. It is an error if a field in this list has a non-empty value.
44962	// This may be used to include null fields in Patch requests.
44963	NullFields []string `json:"-"`
44964}
44965
44966func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
44967	type NoMethod TargetSslProxiesSetProxyHeaderRequest
44968	raw := NoMethod(*s)
44969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44970}
44971
44972type TargetSslProxiesSetSslCertificatesRequest struct {
44973	// SslCertificates: New set of URLs to SslCertificate resources to
44974	// associate with this TargetSslProxy. Currently exactly one ssl
44975	// certificate must be specified.
44976	SslCertificates []string `json:"sslCertificates,omitempty"`
44977
44978	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
44979	// unconditionally include in API requests. By default, fields with
44980	// empty values are omitted from API requests. However, any non-pointer,
44981	// non-interface field appearing in ForceSendFields will be sent to the
44982	// server regardless of whether the field is empty or not. This may be
44983	// used to include empty fields in Patch requests.
44984	ForceSendFields []string `json:"-"`
44985
44986	// NullFields is a list of field names (e.g. "SslCertificates") to
44987	// include in API requests with the JSON null value. By default, fields
44988	// with empty values are omitted from API requests. However, any field
44989	// with an empty value appearing in NullFields will be sent to the
44990	// server as null. It is an error if a field in this list has a
44991	// non-empty value. This may be used to include null fields in Patch
44992	// requests.
44993	NullFields []string `json:"-"`
44994}
44995
44996func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
44997	type NoMethod TargetSslProxiesSetSslCertificatesRequest
44998	raw := NoMethod(*s)
44999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45000}
45001
45002// TargetSslProxy: Represents a Target SSL Proxy resource.
45003//
45004// A target SSL proxy is a component of a SSL Proxy load balancer.
45005// Global forwarding rules reference a target SSL proxy, and the target
45006// proxy then references an external backend service. For more
45007// information, read Using Target Proxies. (== resource_for
45008// {$api_version}.targetSslProxies ==)
45009type TargetSslProxy struct {
45010	// CertificateMap: URL of a certificate map that identifies a
45011	// certificate map associated with the given target proxy. This field
45012	// can only be set for global target proxies. If set, sslCertificates
45013	// will be ignored.
45014	CertificateMap string `json:"certificateMap,omitempty"`
45015
45016	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45017	// format.
45018	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45019
45020	// Description: An optional description of this resource. Provide this
45021	// property when you create the resource.
45022	Description string `json:"description,omitempty"`
45023
45024	// Id: [Output Only] The unique identifier for the resource. This
45025	// identifier is defined by the server.
45026	Id uint64 `json:"id,omitempty,string"`
45027
45028	// Kind: [Output Only] Type of the resource. Always
45029	// compute#targetSslProxy for target SSL proxies.
45030	Kind string `json:"kind,omitempty"`
45031
45032	// Name: Name of the resource. Provided by the client when the resource
45033	// is created. The name must be 1-63 characters long, and comply with
45034	// RFC1035. Specifically, the name must be 1-63 characters long and
45035	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45036	// the first character must be a lowercase letter, and all following
45037	// characters must be a dash, lowercase letter, or digit, except the
45038	// last character, which cannot be a dash.
45039	Name string `json:"name,omitempty"`
45040
45041	// ProxyHeader: Specifies the type of proxy header to append before
45042	// sending data to the backend, either NONE or PROXY_V1. The default is
45043	// NONE.
45044	//
45045	// Possible values:
45046	//   "NONE"
45047	//   "PROXY_V1"
45048	ProxyHeader string `json:"proxyHeader,omitempty"`
45049
45050	// SelfLink: [Output Only] Server-defined URL for the resource.
45051	SelfLink string `json:"selfLink,omitempty"`
45052
45053	// Service: URL to the BackendService resource.
45054	Service string `json:"service,omitempty"`
45055
45056	// SslCertificates: URLs to SslCertificate resources that are used to
45057	// authenticate connections to Backends. At least one SSL certificate
45058	// must be specified. Currently, you may specify up to 15 SSL
45059	// certificates.
45060	SslCertificates []string `json:"sslCertificates,omitempty"`
45061
45062	// SslPolicy: URL of SslPolicy resource that will be associated with the
45063	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
45064	// not have any SSL policy configured.
45065	SslPolicy string `json:"sslPolicy,omitempty"`
45066
45067	// ServerResponse contains the HTTP response code and headers from the
45068	// server.
45069	googleapi.ServerResponse `json:"-"`
45070
45071	// ForceSendFields is a list of field names (e.g. "CertificateMap") to
45072	// unconditionally include in API requests. By default, fields with
45073	// empty values are omitted from API requests. However, any non-pointer,
45074	// non-interface field appearing in ForceSendFields will be sent to the
45075	// server regardless of whether the field is empty or not. This may be
45076	// used to include empty fields in Patch requests.
45077	ForceSendFields []string `json:"-"`
45078
45079	// NullFields is a list of field names (e.g. "CertificateMap") to
45080	// include in API requests with the JSON null value. By default, fields
45081	// with empty values are omitted from API requests. However, any field
45082	// with an empty value appearing in NullFields will be sent to the
45083	// server as null. It is an error if a field in this list has a
45084	// non-empty value. This may be used to include null fields in Patch
45085	// requests.
45086	NullFields []string `json:"-"`
45087}
45088
45089func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
45090	type NoMethod TargetSslProxy
45091	raw := NoMethod(*s)
45092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45093}
45094
45095// TargetSslProxyList: Contains a list of TargetSslProxy resources.
45096type TargetSslProxyList struct {
45097	// Id: [Output Only] Unique identifier for the resource; defined by the
45098	// server.
45099	Id string `json:"id,omitempty"`
45100
45101	// Items: A list of TargetSslProxy resources.
45102	Items []*TargetSslProxy `json:"items,omitempty"`
45103
45104	// Kind: Type of resource.
45105	Kind string `json:"kind,omitempty"`
45106
45107	// NextPageToken: [Output Only] This token allows you to get the next
45108	// page of results for list requests. If the number of results is larger
45109	// than maxResults, use the nextPageToken as a value for the query
45110	// parameter pageToken in the next list request. Subsequent list
45111	// requests will have their own nextPageToken to continue paging through
45112	// the results.
45113	NextPageToken string `json:"nextPageToken,omitempty"`
45114
45115	// SelfLink: [Output Only] Server-defined URL for this resource.
45116	SelfLink string `json:"selfLink,omitempty"`
45117
45118	// Warning: [Output Only] Informational warning message.
45119	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
45120
45121	// ServerResponse contains the HTTP response code and headers from the
45122	// server.
45123	googleapi.ServerResponse `json:"-"`
45124
45125	// ForceSendFields is a list of field names (e.g. "Id") to
45126	// unconditionally include in API requests. By default, fields with
45127	// empty values are omitted from API requests. However, any non-pointer,
45128	// non-interface field appearing in ForceSendFields will be sent to the
45129	// server regardless of whether the field is empty or not. This may be
45130	// used to include empty fields in Patch requests.
45131	ForceSendFields []string `json:"-"`
45132
45133	// NullFields is a list of field names (e.g. "Id") to include in API
45134	// requests with the JSON null value. By default, fields with empty
45135	// values are omitted from API requests. However, any field with an
45136	// empty value appearing in NullFields will be sent to the server as
45137	// null. It is an error if a field in this list has a non-empty value.
45138	// This may be used to include null fields in Patch requests.
45139	NullFields []string `json:"-"`
45140}
45141
45142func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
45143	type NoMethod TargetSslProxyList
45144	raw := NoMethod(*s)
45145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45146}
45147
45148// TargetSslProxyListWarning: [Output Only] Informational warning
45149// message.
45150type TargetSslProxyListWarning struct {
45151	// Code: [Output Only] A warning code, if applicable. For example,
45152	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45153	// the response.
45154	//
45155	// Possible values:
45156	//   "CLEANUP_FAILED"
45157	//   "DEPRECATED_RESOURCE_USED"
45158	//   "DEPRECATED_TYPE_USED"
45159	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45160	//   "EXPERIMENTAL_TYPE_USED"
45161	//   "EXTERNAL_API_WARNING"
45162	//   "FIELD_VALUE_OVERRIDEN"
45163	//   "INJECTED_KERNELS_DEPRECATED"
45164	//   "MISSING_TYPE_DEPENDENCY"
45165	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45166	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45167	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45168	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45169	//   "NEXT_HOP_NOT_RUNNING"
45170	//   "NOT_CRITICAL_ERROR"
45171	//   "NO_RESULTS_ON_PAGE"
45172	//   "PARTIAL_SUCCESS"
45173	//   "REQUIRED_TOS_AGREEMENT"
45174	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45175	//   "RESOURCE_NOT_DELETED"
45176	//   "SCHEMA_VALIDATION_IGNORED"
45177	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45178	//   "UNDECLARED_PROPERTIES"
45179	//   "UNREACHABLE"
45180	Code string `json:"code,omitempty"`
45181
45182	// Data: [Output Only] Metadata about this warning in key: value format.
45183	// For example:
45184	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45185	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
45186
45187	// Message: [Output Only] A human-readable description of the warning
45188	// code.
45189	Message string `json:"message,omitempty"`
45190
45191	// ForceSendFields is a list of field names (e.g. "Code") to
45192	// unconditionally include in API requests. By default, fields with
45193	// empty values are omitted from API requests. However, any non-pointer,
45194	// non-interface field appearing in ForceSendFields will be sent to the
45195	// server regardless of whether the field is empty or not. This may be
45196	// used to include empty fields in Patch requests.
45197	ForceSendFields []string `json:"-"`
45198
45199	// NullFields is a list of field names (e.g. "Code") to include in API
45200	// requests with the JSON null value. By default, fields with empty
45201	// values are omitted from API requests. However, any field with an
45202	// empty value appearing in NullFields will be sent to the server as
45203	// null. It is an error if a field in this list has a non-empty value.
45204	// This may be used to include null fields in Patch requests.
45205	NullFields []string `json:"-"`
45206}
45207
45208func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
45209	type NoMethod TargetSslProxyListWarning
45210	raw := NoMethod(*s)
45211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45212}
45213
45214type TargetSslProxyListWarningData struct {
45215	// Key: [Output Only] A key that provides more detail on the warning
45216	// being returned. For example, for warnings where there are no results
45217	// in a list request for a particular zone, this key might be scope and
45218	// the key value might be the zone name. Other examples might be a key
45219	// indicating a deprecated resource and a suggested replacement, or a
45220	// warning about invalid network settings (for example, if an instance
45221	// attempts to perform IP forwarding but is not enabled for IP
45222	// forwarding).
45223	Key string `json:"key,omitempty"`
45224
45225	// Value: [Output Only] A warning data value corresponding to the key.
45226	Value string `json:"value,omitempty"`
45227
45228	// ForceSendFields is a list of field names (e.g. "Key") to
45229	// unconditionally include in API requests. By default, fields with
45230	// empty values are omitted from API requests. However, any non-pointer,
45231	// non-interface field appearing in ForceSendFields will be sent to the
45232	// server regardless of whether the field is empty or not. This may be
45233	// used to include empty fields in Patch requests.
45234	ForceSendFields []string `json:"-"`
45235
45236	// NullFields is a list of field names (e.g. "Key") to include in API
45237	// requests with the JSON null value. By default, fields with empty
45238	// values are omitted from API requests. However, any field with an
45239	// empty value appearing in NullFields will be sent to the server as
45240	// null. It is an error if a field in this list has a non-empty value.
45241	// This may be used to include null fields in Patch requests.
45242	NullFields []string `json:"-"`
45243}
45244
45245func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
45246	type NoMethod TargetSslProxyListWarningData
45247	raw := NoMethod(*s)
45248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45249}
45250
45251type TargetTcpProxiesSetBackendServiceRequest struct {
45252	// Service: The URL of the new BackendService resource for the
45253	// targetTcpProxy.
45254	Service string `json:"service,omitempty"`
45255
45256	// ForceSendFields is a list of field names (e.g. "Service") to
45257	// unconditionally include in API requests. By default, fields with
45258	// empty values are omitted from API requests. However, any non-pointer,
45259	// non-interface field appearing in ForceSendFields will be sent to the
45260	// server regardless of whether the field is empty or not. This may be
45261	// used to include empty fields in Patch requests.
45262	ForceSendFields []string `json:"-"`
45263
45264	// NullFields is a list of field names (e.g. "Service") to include in
45265	// API requests with the JSON null value. By default, fields with empty
45266	// values are omitted from API requests. However, any field with an
45267	// empty value appearing in NullFields will be sent to the server as
45268	// null. It is an error if a field in this list has a non-empty value.
45269	// This may be used to include null fields in Patch requests.
45270	NullFields []string `json:"-"`
45271}
45272
45273func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
45274	type NoMethod TargetTcpProxiesSetBackendServiceRequest
45275	raw := NoMethod(*s)
45276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45277}
45278
45279type TargetTcpProxiesSetProxyHeaderRequest struct {
45280	// ProxyHeader: The new type of proxy header to append before sending
45281	// data to the backend. NONE or PROXY_V1 are allowed.
45282	//
45283	// Possible values:
45284	//   "NONE"
45285	//   "PROXY_V1"
45286	ProxyHeader string `json:"proxyHeader,omitempty"`
45287
45288	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
45289	// unconditionally include in API requests. By default, fields with
45290	// empty values are omitted from API requests. However, any non-pointer,
45291	// non-interface field appearing in ForceSendFields will be sent to the
45292	// server regardless of whether the field is empty or not. This may be
45293	// used to include empty fields in Patch requests.
45294	ForceSendFields []string `json:"-"`
45295
45296	// NullFields is a list of field names (e.g. "ProxyHeader") to include
45297	// in API requests with the JSON null value. By default, fields with
45298	// empty values are omitted from API requests. However, any field with
45299	// an empty value appearing in NullFields will be sent to the server as
45300	// null. It is an error if a field in this list has a non-empty value.
45301	// This may be used to include null fields in Patch requests.
45302	NullFields []string `json:"-"`
45303}
45304
45305func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
45306	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
45307	raw := NoMethod(*s)
45308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45309}
45310
45311// TargetTcpProxy: Represents a Target TCP Proxy resource.
45312//
45313// A target TCP proxy is a component of a TCP Proxy load balancer.
45314// Global forwarding rules reference target TCP proxy, and the target
45315// proxy then references an external backend service. For more
45316// information, read TCP Proxy Load Balancing overview. (== resource_for
45317// {$api_version}.targetTcpProxies ==)
45318type TargetTcpProxy struct {
45319	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45320	// format.
45321	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45322
45323	// Description: An optional description of this resource. Provide this
45324	// property when you create the resource.
45325	Description string `json:"description,omitempty"`
45326
45327	// Id: [Output Only] The unique identifier for the resource. This
45328	// identifier is defined by the server.
45329	Id uint64 `json:"id,omitempty,string"`
45330
45331	// Kind: [Output Only] Type of the resource. Always
45332	// compute#targetTcpProxy for target TCP proxies.
45333	Kind string `json:"kind,omitempty"`
45334
45335	// Name: Name of the resource. Provided by the client when the resource
45336	// is created. The name must be 1-63 characters long, and comply with
45337	// RFC1035. Specifically, the name must be 1-63 characters long and
45338	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45339	// the first character must be a lowercase letter, and all following
45340	// characters must be a dash, lowercase letter, or digit, except the
45341	// last character, which cannot be a dash.
45342	Name string `json:"name,omitempty"`
45343
45344	// ProxyHeader: Specifies the type of proxy header to append before
45345	// sending data to the backend, either NONE or PROXY_V1. The default is
45346	// NONE.
45347	//
45348	// Possible values:
45349	//   "NONE"
45350	//   "PROXY_V1"
45351	ProxyHeader string `json:"proxyHeader,omitempty"`
45352
45353	// SelfLink: [Output Only] Server-defined URL for the resource.
45354	SelfLink string `json:"selfLink,omitempty"`
45355
45356	// Service: URL to the BackendService resource.
45357	Service string `json:"service,omitempty"`
45358
45359	// ServerResponse contains the HTTP response code and headers from the
45360	// server.
45361	googleapi.ServerResponse `json:"-"`
45362
45363	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45364	// to unconditionally include in API requests. By default, fields with
45365	// empty values are omitted from API requests. However, any non-pointer,
45366	// non-interface field appearing in ForceSendFields will be sent to the
45367	// server regardless of whether the field is empty or not. This may be
45368	// used to include empty fields in Patch requests.
45369	ForceSendFields []string `json:"-"`
45370
45371	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45372	// include in API requests with the JSON null value. By default, fields
45373	// with empty values are omitted from API requests. However, any field
45374	// with an empty value appearing in NullFields will be sent to the
45375	// server as null. It is an error if a field in this list has a
45376	// non-empty value. This may be used to include null fields in Patch
45377	// requests.
45378	NullFields []string `json:"-"`
45379}
45380
45381func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
45382	type NoMethod TargetTcpProxy
45383	raw := NoMethod(*s)
45384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45385}
45386
45387// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
45388type TargetTcpProxyList struct {
45389	// Id: [Output Only] Unique identifier for the resource; defined by the
45390	// server.
45391	Id string `json:"id,omitempty"`
45392
45393	// Items: A list of TargetTcpProxy resources.
45394	Items []*TargetTcpProxy `json:"items,omitempty"`
45395
45396	// Kind: Type of resource.
45397	Kind string `json:"kind,omitempty"`
45398
45399	// NextPageToken: [Output Only] This token allows you to get the next
45400	// page of results for list requests. If the number of results is larger
45401	// than maxResults, use the nextPageToken as a value for the query
45402	// parameter pageToken in the next list request. Subsequent list
45403	// requests will have their own nextPageToken to continue paging through
45404	// the results.
45405	NextPageToken string `json:"nextPageToken,omitempty"`
45406
45407	// SelfLink: [Output Only] Server-defined URL for this resource.
45408	SelfLink string `json:"selfLink,omitempty"`
45409
45410	// Warning: [Output Only] Informational warning message.
45411	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
45412
45413	// ServerResponse contains the HTTP response code and headers from the
45414	// server.
45415	googleapi.ServerResponse `json:"-"`
45416
45417	// ForceSendFields is a list of field names (e.g. "Id") to
45418	// unconditionally include in API requests. By default, fields with
45419	// empty values are omitted from API requests. However, any non-pointer,
45420	// non-interface field appearing in ForceSendFields will be sent to the
45421	// server regardless of whether the field is empty or not. This may be
45422	// used to include empty fields in Patch requests.
45423	ForceSendFields []string `json:"-"`
45424
45425	// NullFields is a list of field names (e.g. "Id") to include in API
45426	// requests with the JSON null value. By default, fields with empty
45427	// values are omitted from API requests. However, any field with an
45428	// empty value appearing in NullFields will be sent to the server as
45429	// null. It is an error if a field in this list has a non-empty value.
45430	// This may be used to include null fields in Patch requests.
45431	NullFields []string `json:"-"`
45432}
45433
45434func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
45435	type NoMethod TargetTcpProxyList
45436	raw := NoMethod(*s)
45437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45438}
45439
45440// TargetTcpProxyListWarning: [Output Only] Informational warning
45441// message.
45442type TargetTcpProxyListWarning struct {
45443	// Code: [Output Only] A warning code, if applicable. For example,
45444	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45445	// the response.
45446	//
45447	// Possible values:
45448	//   "CLEANUP_FAILED"
45449	//   "DEPRECATED_RESOURCE_USED"
45450	//   "DEPRECATED_TYPE_USED"
45451	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45452	//   "EXPERIMENTAL_TYPE_USED"
45453	//   "EXTERNAL_API_WARNING"
45454	//   "FIELD_VALUE_OVERRIDEN"
45455	//   "INJECTED_KERNELS_DEPRECATED"
45456	//   "MISSING_TYPE_DEPENDENCY"
45457	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45458	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45459	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45460	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45461	//   "NEXT_HOP_NOT_RUNNING"
45462	//   "NOT_CRITICAL_ERROR"
45463	//   "NO_RESULTS_ON_PAGE"
45464	//   "PARTIAL_SUCCESS"
45465	//   "REQUIRED_TOS_AGREEMENT"
45466	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45467	//   "RESOURCE_NOT_DELETED"
45468	//   "SCHEMA_VALIDATION_IGNORED"
45469	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45470	//   "UNDECLARED_PROPERTIES"
45471	//   "UNREACHABLE"
45472	Code string `json:"code,omitempty"`
45473
45474	// Data: [Output Only] Metadata about this warning in key: value format.
45475	// For example:
45476	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45477	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
45478
45479	// Message: [Output Only] A human-readable description of the warning
45480	// code.
45481	Message string `json:"message,omitempty"`
45482
45483	// ForceSendFields is a list of field names (e.g. "Code") to
45484	// unconditionally include in API requests. By default, fields with
45485	// empty values are omitted from API requests. However, any non-pointer,
45486	// non-interface field appearing in ForceSendFields will be sent to the
45487	// server regardless of whether the field is empty or not. This may be
45488	// used to include empty fields in Patch requests.
45489	ForceSendFields []string `json:"-"`
45490
45491	// NullFields is a list of field names (e.g. "Code") to include in API
45492	// requests with the JSON null value. By default, fields with empty
45493	// values are omitted from API requests. However, any field with an
45494	// empty value appearing in NullFields will be sent to the server as
45495	// null. It is an error if a field in this list has a non-empty value.
45496	// This may be used to include null fields in Patch requests.
45497	NullFields []string `json:"-"`
45498}
45499
45500func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
45501	type NoMethod TargetTcpProxyListWarning
45502	raw := NoMethod(*s)
45503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45504}
45505
45506type TargetTcpProxyListWarningData struct {
45507	// Key: [Output Only] A key that provides more detail on the warning
45508	// being returned. For example, for warnings where there are no results
45509	// in a list request for a particular zone, this key might be scope and
45510	// the key value might be the zone name. Other examples might be a key
45511	// indicating a deprecated resource and a suggested replacement, or a
45512	// warning about invalid network settings (for example, if an instance
45513	// attempts to perform IP forwarding but is not enabled for IP
45514	// forwarding).
45515	Key string `json:"key,omitempty"`
45516
45517	// Value: [Output Only] A warning data value corresponding to the key.
45518	Value string `json:"value,omitempty"`
45519
45520	// ForceSendFields is a list of field names (e.g. "Key") to
45521	// unconditionally include in API requests. By default, fields with
45522	// empty values are omitted from API requests. However, any non-pointer,
45523	// non-interface field appearing in ForceSendFields will be sent to the
45524	// server regardless of whether the field is empty or not. This may be
45525	// used to include empty fields in Patch requests.
45526	ForceSendFields []string `json:"-"`
45527
45528	// NullFields is a list of field names (e.g. "Key") to include in API
45529	// requests with the JSON null value. By default, fields with empty
45530	// values are omitted from API requests. However, any field with an
45531	// empty value appearing in NullFields will be sent to the server as
45532	// null. It is an error if a field in this list has a non-empty value.
45533	// This may be used to include null fields in Patch requests.
45534	NullFields []string `json:"-"`
45535}
45536
45537func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
45538	type NoMethod TargetTcpProxyListWarningData
45539	raw := NoMethod(*s)
45540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45541}
45542
45543// TargetVpnGateway: Represents a Target VPN Gateway resource.
45544//
45545// The target VPN gateway resource represents a Classic Cloud VPN
45546// gateway. For more information, read the the Cloud VPN Overview. (==
45547// resource_for {$api_version}.targetVpnGateways ==)
45548type TargetVpnGateway struct {
45549	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45550	// format.
45551	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45552
45553	// Description: An optional description of this resource. Provide this
45554	// property when you create the resource.
45555	Description string `json:"description,omitempty"`
45556
45557	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
45558	// resources. ForwardingRules are created using
45559	// compute.forwardingRules.insert and associated with a VPN gateway.
45560	ForwardingRules []string `json:"forwardingRules,omitempty"`
45561
45562	// Id: [Output Only] The unique identifier for the resource. This
45563	// identifier is defined by the server.
45564	Id uint64 `json:"id,omitempty,string"`
45565
45566	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
45567	// for target VPN gateways.
45568	Kind string `json:"kind,omitempty"`
45569
45570	// LabelFingerprint: A fingerprint for the labels being applied to this
45571	// TargetVpnGateway, which is essentially a hash of the labels set used
45572	// for optimistic locking. The fingerprint is initially generated by
45573	// Compute Engine and changes after every request to modify or update
45574	// labels. You must always provide an up-to-date fingerprint hash in
45575	// order to update or change labels, otherwise the request will fail
45576	// with error 412 conditionNotMet.
45577	//
45578	// To see the latest fingerprint, make a get() request to retrieve a
45579	// TargetVpnGateway.
45580	LabelFingerprint string `json:"labelFingerprint,omitempty"`
45581
45582	// Labels: Labels for this resource. These can only be added or modified
45583	// by the setLabels method. Each label key/value pair must comply with
45584	// RFC1035. Label values may be empty.
45585	Labels map[string]string `json:"labels,omitempty"`
45586
45587	// Name: Name of the resource. Provided by the client when the resource
45588	// is created. The name must be 1-63 characters long, and comply with
45589	// RFC1035. Specifically, the name must be 1-63 characters long and
45590	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45591	// the first character must be a lowercase letter, and all following
45592	// characters must be a dash, lowercase letter, or digit, except the
45593	// last character, which cannot be a dash.
45594	Name string `json:"name,omitempty"`
45595
45596	// Network: URL of the network to which this VPN gateway is attached.
45597	// Provided by the client when the VPN gateway is created.
45598	Network string `json:"network,omitempty"`
45599
45600	// Region: [Output Only] URL of the region where the target VPN gateway
45601	// resides. You must specify this field as part of the HTTP request URL.
45602	// It is not settable as a field in the request body.
45603	Region string `json:"region,omitempty"`
45604
45605	// SelfLink: [Output Only] Server-defined URL for the resource.
45606	SelfLink string `json:"selfLink,omitempty"`
45607
45608	// Status: [Output Only] The status of the VPN gateway, which can be one
45609	// of the following: CREATING, READY, FAILED, or DELETING.
45610	//
45611	// Possible values:
45612	//   "CREATING"
45613	//   "DELETING"
45614	//   "FAILED"
45615	//   "READY"
45616	Status string `json:"status,omitempty"`
45617
45618	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
45619	// VpnTunnels are created using the compute.vpntunnels.insert method and
45620	// associated with a VPN gateway.
45621	Tunnels []string `json:"tunnels,omitempty"`
45622
45623	// ServerResponse contains the HTTP response code and headers from the
45624	// server.
45625	googleapi.ServerResponse `json:"-"`
45626
45627	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45628	// to unconditionally include in API requests. By default, fields with
45629	// empty values are omitted from API requests. However, any non-pointer,
45630	// non-interface field appearing in ForceSendFields will be sent to the
45631	// server regardless of whether the field is empty or not. This may be
45632	// used to include empty fields in Patch requests.
45633	ForceSendFields []string `json:"-"`
45634
45635	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45636	// include in API requests with the JSON null value. By default, fields
45637	// with empty values are omitted from API requests. However, any field
45638	// with an empty value appearing in NullFields will be sent to the
45639	// server as null. It is an error if a field in this list has a
45640	// non-empty value. This may be used to include null fields in Patch
45641	// requests.
45642	NullFields []string `json:"-"`
45643}
45644
45645func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
45646	type NoMethod TargetVpnGateway
45647	raw := NoMethod(*s)
45648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45649}
45650
45651type TargetVpnGatewayAggregatedList struct {
45652	// Id: [Output Only] Unique identifier for the resource; defined by the
45653	// server.
45654	Id string `json:"id,omitempty"`
45655
45656	// Items: A list of TargetVpnGateway resources.
45657	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
45658
45659	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
45660	// for target VPN gateways.
45661	Kind string `json:"kind,omitempty"`
45662
45663	// NextPageToken: [Output Only] This token allows you to get the next
45664	// page of results for list requests. If the number of results is larger
45665	// than maxResults, use the nextPageToken as a value for the query
45666	// parameter pageToken in the next list request. Subsequent list
45667	// requests will have their own nextPageToken to continue paging through
45668	// the results.
45669	NextPageToken string `json:"nextPageToken,omitempty"`
45670
45671	// SelfLink: [Output Only] Server-defined URL for this resource.
45672	SelfLink string `json:"selfLink,omitempty"`
45673
45674	// Unreachables: [Output Only] Unreachable resources.
45675	Unreachables []string `json:"unreachables,omitempty"`
45676
45677	// Warning: [Output Only] Informational warning message.
45678	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
45679
45680	// ServerResponse contains the HTTP response code and headers from the
45681	// server.
45682	googleapi.ServerResponse `json:"-"`
45683
45684	// ForceSendFields is a list of field names (e.g. "Id") to
45685	// unconditionally include in API requests. By default, fields with
45686	// empty values are omitted from API requests. However, any non-pointer,
45687	// non-interface field appearing in ForceSendFields will be sent to the
45688	// server regardless of whether the field is empty or not. This may be
45689	// used to include empty fields in Patch requests.
45690	ForceSendFields []string `json:"-"`
45691
45692	// NullFields is a list of field names (e.g. "Id") to include in API
45693	// requests with the JSON null value. By default, fields with empty
45694	// values are omitted from API requests. However, any field with an
45695	// empty value appearing in NullFields will be sent to the server as
45696	// null. It is an error if a field in this list has a non-empty value.
45697	// This may be used to include null fields in Patch requests.
45698	NullFields []string `json:"-"`
45699}
45700
45701func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
45702	type NoMethod TargetVpnGatewayAggregatedList
45703	raw := NoMethod(*s)
45704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45705}
45706
45707// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
45708// warning message.
45709type TargetVpnGatewayAggregatedListWarning struct {
45710	// Code: [Output Only] A warning code, if applicable. For example,
45711	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45712	// the response.
45713	//
45714	// Possible values:
45715	//   "CLEANUP_FAILED"
45716	//   "DEPRECATED_RESOURCE_USED"
45717	//   "DEPRECATED_TYPE_USED"
45718	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45719	//   "EXPERIMENTAL_TYPE_USED"
45720	//   "EXTERNAL_API_WARNING"
45721	//   "FIELD_VALUE_OVERRIDEN"
45722	//   "INJECTED_KERNELS_DEPRECATED"
45723	//   "MISSING_TYPE_DEPENDENCY"
45724	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45725	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45726	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45727	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45728	//   "NEXT_HOP_NOT_RUNNING"
45729	//   "NOT_CRITICAL_ERROR"
45730	//   "NO_RESULTS_ON_PAGE"
45731	//   "PARTIAL_SUCCESS"
45732	//   "REQUIRED_TOS_AGREEMENT"
45733	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45734	//   "RESOURCE_NOT_DELETED"
45735	//   "SCHEMA_VALIDATION_IGNORED"
45736	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45737	//   "UNDECLARED_PROPERTIES"
45738	//   "UNREACHABLE"
45739	Code string `json:"code,omitempty"`
45740
45741	// Data: [Output Only] Metadata about this warning in key: value format.
45742	// For example:
45743	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45744	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
45745
45746	// Message: [Output Only] A human-readable description of the warning
45747	// code.
45748	Message string `json:"message,omitempty"`
45749
45750	// ForceSendFields is a list of field names (e.g. "Code") to
45751	// unconditionally include in API requests. By default, fields with
45752	// empty values are omitted from API requests. However, any non-pointer,
45753	// non-interface field appearing in ForceSendFields will be sent to the
45754	// server regardless of whether the field is empty or not. This may be
45755	// used to include empty fields in Patch requests.
45756	ForceSendFields []string `json:"-"`
45757
45758	// NullFields is a list of field names (e.g. "Code") to include in API
45759	// requests with the JSON null value. By default, fields with empty
45760	// values are omitted from API requests. However, any field with an
45761	// empty value appearing in NullFields will be sent to the server as
45762	// null. It is an error if a field in this list has a non-empty value.
45763	// This may be used to include null fields in Patch requests.
45764	NullFields []string `json:"-"`
45765}
45766
45767func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
45768	type NoMethod TargetVpnGatewayAggregatedListWarning
45769	raw := NoMethod(*s)
45770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45771}
45772
45773type TargetVpnGatewayAggregatedListWarningData struct {
45774	// Key: [Output Only] A key that provides more detail on the warning
45775	// being returned. For example, for warnings where there are no results
45776	// in a list request for a particular zone, this key might be scope and
45777	// the key value might be the zone name. Other examples might be a key
45778	// indicating a deprecated resource and a suggested replacement, or a
45779	// warning about invalid network settings (for example, if an instance
45780	// attempts to perform IP forwarding but is not enabled for IP
45781	// forwarding).
45782	Key string `json:"key,omitempty"`
45783
45784	// Value: [Output Only] A warning data value corresponding to the key.
45785	Value string `json:"value,omitempty"`
45786
45787	// ForceSendFields is a list of field names (e.g. "Key") to
45788	// unconditionally include in API requests. By default, fields with
45789	// empty values are omitted from API requests. However, any non-pointer,
45790	// non-interface field appearing in ForceSendFields will be sent to the
45791	// server regardless of whether the field is empty or not. This may be
45792	// used to include empty fields in Patch requests.
45793	ForceSendFields []string `json:"-"`
45794
45795	// NullFields is a list of field names (e.g. "Key") to include in API
45796	// requests with the JSON null value. By default, fields with empty
45797	// values are omitted from API requests. However, any field with an
45798	// empty value appearing in NullFields will be sent to the server as
45799	// null. It is an error if a field in this list has a non-empty value.
45800	// This may be used to include null fields in Patch requests.
45801	NullFields []string `json:"-"`
45802}
45803
45804func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45805	type NoMethod TargetVpnGatewayAggregatedListWarningData
45806	raw := NoMethod(*s)
45807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45808}
45809
45810// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
45811type TargetVpnGatewayList struct {
45812	// Id: [Output Only] Unique identifier for the resource; defined by the
45813	// server.
45814	Id string `json:"id,omitempty"`
45815
45816	// Items: A list of TargetVpnGateway resources.
45817	Items []*TargetVpnGateway `json:"items,omitempty"`
45818
45819	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
45820	// for target VPN gateways.
45821	Kind string `json:"kind,omitempty"`
45822
45823	// NextPageToken: [Output Only] This token allows you to get the next
45824	// page of results for list requests. If the number of results is larger
45825	// than maxResults, use the nextPageToken as a value for the query
45826	// parameter pageToken in the next list request. Subsequent list
45827	// requests will have their own nextPageToken to continue paging through
45828	// the results.
45829	NextPageToken string `json:"nextPageToken,omitempty"`
45830
45831	// SelfLink: [Output Only] Server-defined URL for this resource.
45832	SelfLink string `json:"selfLink,omitempty"`
45833
45834	// Warning: [Output Only] Informational warning message.
45835	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
45836
45837	// ServerResponse contains the HTTP response code and headers from the
45838	// server.
45839	googleapi.ServerResponse `json:"-"`
45840
45841	// ForceSendFields is a list of field names (e.g. "Id") to
45842	// unconditionally include in API requests. By default, fields with
45843	// empty values are omitted from API requests. However, any non-pointer,
45844	// non-interface field appearing in ForceSendFields will be sent to the
45845	// server regardless of whether the field is empty or not. This may be
45846	// used to include empty fields in Patch requests.
45847	ForceSendFields []string `json:"-"`
45848
45849	// NullFields is a list of field names (e.g. "Id") to include in API
45850	// requests with the JSON null value. By default, fields with empty
45851	// values are omitted from API requests. However, any field with an
45852	// empty value appearing in NullFields will be sent to the server as
45853	// null. It is an error if a field in this list has a non-empty value.
45854	// This may be used to include null fields in Patch requests.
45855	NullFields []string `json:"-"`
45856}
45857
45858func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
45859	type NoMethod TargetVpnGatewayList
45860	raw := NoMethod(*s)
45861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45862}
45863
45864// TargetVpnGatewayListWarning: [Output Only] Informational warning
45865// message.
45866type TargetVpnGatewayListWarning struct {
45867	// Code: [Output Only] A warning code, if applicable. For example,
45868	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45869	// the response.
45870	//
45871	// Possible values:
45872	//   "CLEANUP_FAILED"
45873	//   "DEPRECATED_RESOURCE_USED"
45874	//   "DEPRECATED_TYPE_USED"
45875	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45876	//   "EXPERIMENTAL_TYPE_USED"
45877	//   "EXTERNAL_API_WARNING"
45878	//   "FIELD_VALUE_OVERRIDEN"
45879	//   "INJECTED_KERNELS_DEPRECATED"
45880	//   "MISSING_TYPE_DEPENDENCY"
45881	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45882	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45883	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45884	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45885	//   "NEXT_HOP_NOT_RUNNING"
45886	//   "NOT_CRITICAL_ERROR"
45887	//   "NO_RESULTS_ON_PAGE"
45888	//   "PARTIAL_SUCCESS"
45889	//   "REQUIRED_TOS_AGREEMENT"
45890	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45891	//   "RESOURCE_NOT_DELETED"
45892	//   "SCHEMA_VALIDATION_IGNORED"
45893	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45894	//   "UNDECLARED_PROPERTIES"
45895	//   "UNREACHABLE"
45896	Code string `json:"code,omitempty"`
45897
45898	// Data: [Output Only] Metadata about this warning in key: value format.
45899	// For example:
45900	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45901	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
45902
45903	// Message: [Output Only] A human-readable description of the warning
45904	// code.
45905	Message string `json:"message,omitempty"`
45906
45907	// ForceSendFields is a list of field names (e.g. "Code") to
45908	// unconditionally include in API requests. By default, fields with
45909	// empty values are omitted from API requests. However, any non-pointer,
45910	// non-interface field appearing in ForceSendFields will be sent to the
45911	// server regardless of whether the field is empty or not. This may be
45912	// used to include empty fields in Patch requests.
45913	ForceSendFields []string `json:"-"`
45914
45915	// NullFields is a list of field names (e.g. "Code") to include in API
45916	// requests with the JSON null value. By default, fields with empty
45917	// values are omitted from API requests. However, any field with an
45918	// empty value appearing in NullFields will be sent to the server as
45919	// null. It is an error if a field in this list has a non-empty value.
45920	// This may be used to include null fields in Patch requests.
45921	NullFields []string `json:"-"`
45922}
45923
45924func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
45925	type NoMethod TargetVpnGatewayListWarning
45926	raw := NoMethod(*s)
45927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45928}
45929
45930type TargetVpnGatewayListWarningData struct {
45931	// Key: [Output Only] A key that provides more detail on the warning
45932	// being returned. For example, for warnings where there are no results
45933	// in a list request for a particular zone, this key might be scope and
45934	// the key value might be the zone name. Other examples might be a key
45935	// indicating a deprecated resource and a suggested replacement, or a
45936	// warning about invalid network settings (for example, if an instance
45937	// attempts to perform IP forwarding but is not enabled for IP
45938	// forwarding).
45939	Key string `json:"key,omitempty"`
45940
45941	// Value: [Output Only] A warning data value corresponding to the key.
45942	Value string `json:"value,omitempty"`
45943
45944	// ForceSendFields is a list of field names (e.g. "Key") to
45945	// unconditionally include in API requests. By default, fields with
45946	// empty values are omitted from API requests. However, any non-pointer,
45947	// non-interface field appearing in ForceSendFields will be sent to the
45948	// server regardless of whether the field is empty or not. This may be
45949	// used to include empty fields in Patch requests.
45950	ForceSendFields []string `json:"-"`
45951
45952	// NullFields is a list of field names (e.g. "Key") to include in API
45953	// requests with the JSON null value. By default, fields with empty
45954	// values are omitted from API requests. However, any field with an
45955	// empty value appearing in NullFields will be sent to the server as
45956	// null. It is an error if a field in this list has a non-empty value.
45957	// This may be used to include null fields in Patch requests.
45958	NullFields []string `json:"-"`
45959}
45960
45961func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
45962	type NoMethod TargetVpnGatewayListWarningData
45963	raw := NoMethod(*s)
45964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45965}
45966
45967type TargetVpnGatewaysScopedList struct {
45968	// TargetVpnGateways: [Output Only] A list of target VPN gateways
45969	// contained in this scope.
45970	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
45971
45972	// Warning: [Output Only] Informational warning which replaces the list
45973	// of addresses when the list is empty.
45974	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
45975
45976	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
45977	// to unconditionally include in API requests. By default, fields with
45978	// empty values are omitted from API requests. However, any non-pointer,
45979	// non-interface field appearing in ForceSendFields will be sent to the
45980	// server regardless of whether the field is empty or not. This may be
45981	// used to include empty fields in Patch requests.
45982	ForceSendFields []string `json:"-"`
45983
45984	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
45985	// include in API requests with the JSON null value. By default, fields
45986	// with empty values are omitted from API requests. However, any field
45987	// with an empty value appearing in NullFields will be sent to the
45988	// server as null. It is an error if a field in this list has a
45989	// non-empty value. This may be used to include null fields in Patch
45990	// requests.
45991	NullFields []string `json:"-"`
45992}
45993
45994func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
45995	type NoMethod TargetVpnGatewaysScopedList
45996	raw := NoMethod(*s)
45997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45998}
45999
46000// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
46001// warning which replaces the list of addresses when the list is empty.
46002type TargetVpnGatewaysScopedListWarning struct {
46003	// Code: [Output Only] A warning code, if applicable. For example,
46004	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46005	// the response.
46006	//
46007	// Possible values:
46008	//   "CLEANUP_FAILED"
46009	//   "DEPRECATED_RESOURCE_USED"
46010	//   "DEPRECATED_TYPE_USED"
46011	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46012	//   "EXPERIMENTAL_TYPE_USED"
46013	//   "EXTERNAL_API_WARNING"
46014	//   "FIELD_VALUE_OVERRIDEN"
46015	//   "INJECTED_KERNELS_DEPRECATED"
46016	//   "MISSING_TYPE_DEPENDENCY"
46017	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46018	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46019	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46020	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46021	//   "NEXT_HOP_NOT_RUNNING"
46022	//   "NOT_CRITICAL_ERROR"
46023	//   "NO_RESULTS_ON_PAGE"
46024	//   "PARTIAL_SUCCESS"
46025	//   "REQUIRED_TOS_AGREEMENT"
46026	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46027	//   "RESOURCE_NOT_DELETED"
46028	//   "SCHEMA_VALIDATION_IGNORED"
46029	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46030	//   "UNDECLARED_PROPERTIES"
46031	//   "UNREACHABLE"
46032	Code string `json:"code,omitempty"`
46033
46034	// Data: [Output Only] Metadata about this warning in key: value format.
46035	// For example:
46036	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46037	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
46038
46039	// Message: [Output Only] A human-readable description of the warning
46040	// code.
46041	Message string `json:"message,omitempty"`
46042
46043	// ForceSendFields is a list of field names (e.g. "Code") to
46044	// unconditionally include in API requests. By default, fields with
46045	// empty values are omitted from API requests. However, any non-pointer,
46046	// non-interface field appearing in ForceSendFields will be sent to the
46047	// server regardless of whether the field is empty or not. This may be
46048	// used to include empty fields in Patch requests.
46049	ForceSendFields []string `json:"-"`
46050
46051	// NullFields is a list of field names (e.g. "Code") to include in API
46052	// requests with the JSON null value. By default, fields with empty
46053	// values are omitted from API requests. However, any field with an
46054	// empty value appearing in NullFields will be sent to the server as
46055	// null. It is an error if a field in this list has a non-empty value.
46056	// This may be used to include null fields in Patch requests.
46057	NullFields []string `json:"-"`
46058}
46059
46060func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
46061	type NoMethod TargetVpnGatewaysScopedListWarning
46062	raw := NoMethod(*s)
46063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46064}
46065
46066type TargetVpnGatewaysScopedListWarningData struct {
46067	// Key: [Output Only] A key that provides more detail on the warning
46068	// being returned. For example, for warnings where there are no results
46069	// in a list request for a particular zone, this key might be scope and
46070	// the key value might be the zone name. Other examples might be a key
46071	// indicating a deprecated resource and a suggested replacement, or a
46072	// warning about invalid network settings (for example, if an instance
46073	// attempts to perform IP forwarding but is not enabled for IP
46074	// forwarding).
46075	Key string `json:"key,omitempty"`
46076
46077	// Value: [Output Only] A warning data value corresponding to the key.
46078	Value string `json:"value,omitempty"`
46079
46080	// ForceSendFields is a list of field names (e.g. "Key") to
46081	// unconditionally include in API requests. By default, fields with
46082	// empty values are omitted from API requests. However, any non-pointer,
46083	// non-interface field appearing in ForceSendFields will be sent to the
46084	// server regardless of whether the field is empty or not. This may be
46085	// used to include empty fields in Patch requests.
46086	ForceSendFields []string `json:"-"`
46087
46088	// NullFields is a list of field names (e.g. "Key") to include in API
46089	// requests with the JSON null value. By default, fields with empty
46090	// values are omitted from API requests. However, any field with an
46091	// empty value appearing in NullFields will be sent to the server as
46092	// null. It is an error if a field in this list has a non-empty value.
46093	// This may be used to include null fields in Patch requests.
46094	NullFields []string `json:"-"`
46095}
46096
46097func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
46098	type NoMethod TargetVpnGatewaysScopedListWarningData
46099	raw := NoMethod(*s)
46100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46101}
46102
46103type TestFailure struct {
46104	ActualService string `json:"actualService,omitempty"`
46105
46106	ExpectedService string `json:"expectedService,omitempty"`
46107
46108	Host string `json:"host,omitempty"`
46109
46110	Path string `json:"path,omitempty"`
46111
46112	// ForceSendFields is a list of field names (e.g. "ActualService") to
46113	// unconditionally include in API requests. By default, fields with
46114	// empty values are omitted from API requests. However, any non-pointer,
46115	// non-interface field appearing in ForceSendFields will be sent to the
46116	// server regardless of whether the field is empty or not. This may be
46117	// used to include empty fields in Patch requests.
46118	ForceSendFields []string `json:"-"`
46119
46120	// NullFields is a list of field names (e.g. "ActualService") to include
46121	// in API requests with the JSON null value. By default, fields with
46122	// empty values are omitted from API requests. However, any field with
46123	// an empty value appearing in NullFields will be sent to the server as
46124	// null. It is an error if a field in this list has a non-empty value.
46125	// This may be used to include null fields in Patch requests.
46126	NullFields []string `json:"-"`
46127}
46128
46129func (s *TestFailure) MarshalJSON() ([]byte, error) {
46130	type NoMethod TestFailure
46131	raw := NoMethod(*s)
46132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46133}
46134
46135type TestPermissionsRequest struct {
46136	// Permissions: The set of permissions to check for the 'resource'.
46137	// Permissions with wildcards (such as '*' or 'storage.*') are not
46138	// allowed.
46139	Permissions []string `json:"permissions,omitempty"`
46140
46141	// ForceSendFields is a list of field names (e.g. "Permissions") to
46142	// unconditionally include in API requests. By default, fields with
46143	// empty values are omitted from API requests. However, any non-pointer,
46144	// non-interface field appearing in ForceSendFields will be sent to the
46145	// server regardless of whether the field is empty or not. This may be
46146	// used to include empty fields in Patch requests.
46147	ForceSendFields []string `json:"-"`
46148
46149	// NullFields is a list of field names (e.g. "Permissions") to include
46150	// in API requests with the JSON null value. By default, fields with
46151	// empty values are omitted from API requests. However, any field with
46152	// an empty value appearing in NullFields will be sent to the server as
46153	// null. It is an error if a field in this list has a non-empty value.
46154	// This may be used to include null fields in Patch requests.
46155	NullFields []string `json:"-"`
46156}
46157
46158func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
46159	type NoMethod TestPermissionsRequest
46160	raw := NoMethod(*s)
46161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46162}
46163
46164type TestPermissionsResponse struct {
46165	// Permissions: A subset of `TestPermissionsRequest.permissions` that
46166	// the caller is allowed.
46167	Permissions []string `json:"permissions,omitempty"`
46168
46169	// ServerResponse contains the HTTP response code and headers from the
46170	// server.
46171	googleapi.ServerResponse `json:"-"`
46172
46173	// ForceSendFields is a list of field names (e.g. "Permissions") to
46174	// unconditionally include in API requests. By default, fields with
46175	// empty values are omitted from API requests. However, any non-pointer,
46176	// non-interface field appearing in ForceSendFields will be sent to the
46177	// server regardless of whether the field is empty or not. This may be
46178	// used to include empty fields in Patch requests.
46179	ForceSendFields []string `json:"-"`
46180
46181	// NullFields is a list of field names (e.g. "Permissions") to include
46182	// in API requests with the JSON null value. By default, fields with
46183	// empty values are omitted from API requests. However, any field with
46184	// an empty value appearing in NullFields will be sent to the server as
46185	// null. It is an error if a field in this list has a non-empty value.
46186	// This may be used to include null fields in Patch requests.
46187	NullFields []string `json:"-"`
46188}
46189
46190func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
46191	type NoMethod TestPermissionsResponse
46192	raw := NoMethod(*s)
46193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46194}
46195
46196// TlsCertificateContext: [Deprecated] Defines the mechanism to obtain
46197// the client or server certificate. Defines the mechanism to obtain the
46198// client or server certificate.
46199type TlsCertificateContext struct {
46200	// CertificatePaths: Specifies the certificate and private key paths.
46201	// This field is applicable only if tlsCertificateSource is set to
46202	// USE_PATH.
46203	CertificatePaths *TlsCertificatePaths `json:"certificatePaths,omitempty"`
46204
46205	// CertificateSource: Defines how TLS certificates are obtained.
46206	//
46207	// Possible values:
46208	//   "INVALID"
46209	//   "USE_PATH"
46210	//   "USE_SDS"
46211	CertificateSource string `json:"certificateSource,omitempty"`
46212
46213	// SdsConfig: Specifies the config to retrieve certificates through SDS.
46214	// This field is applicable only if tlsCertificateSource is set to
46215	// USE_SDS.
46216	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
46217
46218	// ForceSendFields is a list of field names (e.g. "CertificatePaths") to
46219	// unconditionally include in API requests. By default, fields with
46220	// empty values are omitted from API requests. However, any non-pointer,
46221	// non-interface field appearing in ForceSendFields will be sent to the
46222	// server regardless of whether the field is empty or not. This may be
46223	// used to include empty fields in Patch requests.
46224	ForceSendFields []string `json:"-"`
46225
46226	// NullFields is a list of field names (e.g. "CertificatePaths") to
46227	// include in API requests with the JSON null value. By default, fields
46228	// with empty values are omitted from API requests. However, any field
46229	// with an empty value appearing in NullFields will be sent to the
46230	// server as null. It is an error if a field in this list has a
46231	// non-empty value. This may be used to include null fields in Patch
46232	// requests.
46233	NullFields []string `json:"-"`
46234}
46235
46236func (s *TlsCertificateContext) MarshalJSON() ([]byte, error) {
46237	type NoMethod TlsCertificateContext
46238	raw := NoMethod(*s)
46239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46240}
46241
46242// TlsCertificatePaths: [Deprecated] The paths to the mounted TLS
46243// Certificates and private key. The paths to the mounted TLS
46244// Certificates and private key.
46245type TlsCertificatePaths struct {
46246	// CertificatePath: The path to the file holding the client or server
46247	// TLS certificate to use.
46248	CertificatePath string `json:"certificatePath,omitempty"`
46249
46250	// PrivateKeyPath: The path to the file holding the client or server
46251	// private key.
46252	PrivateKeyPath string `json:"privateKeyPath,omitempty"`
46253
46254	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
46255	// unconditionally include in API requests. By default, fields with
46256	// empty values are omitted from API requests. However, any non-pointer,
46257	// non-interface field appearing in ForceSendFields will be sent to the
46258	// server regardless of whether the field is empty or not. This may be
46259	// used to include empty fields in Patch requests.
46260	ForceSendFields []string `json:"-"`
46261
46262	// NullFields is a list of field names (e.g. "CertificatePath") to
46263	// include in API requests with the JSON null value. By default, fields
46264	// with empty values are omitted from API requests. However, any field
46265	// with an empty value appearing in NullFields will be sent to the
46266	// server as null. It is an error if a field in this list has a
46267	// non-empty value. This may be used to include null fields in Patch
46268	// requests.
46269	NullFields []string `json:"-"`
46270}
46271
46272func (s *TlsCertificatePaths) MarshalJSON() ([]byte, error) {
46273	type NoMethod TlsCertificatePaths
46274	raw := NoMethod(*s)
46275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46276}
46277
46278// TlsContext: [Deprecated] The TLS settings for the client or server.
46279// The TLS settings for the client or server.
46280type TlsContext struct {
46281	// CertificateContext: Defines the mechanism to obtain the client or
46282	// server certificate.
46283	CertificateContext *TlsCertificateContext `json:"certificateContext,omitempty"`
46284
46285	// ValidationContext: Defines the mechanism to obtain the Certificate
46286	// Authority certificate to validate the client/server certificate. If
46287	// omitted, the proxy will not validate the server or client
46288	// certificate.
46289	ValidationContext *TlsValidationContext `json:"validationContext,omitempty"`
46290
46291	// ForceSendFields is a list of field names (e.g. "CertificateContext")
46292	// to unconditionally include in API requests. By default, fields with
46293	// empty values are omitted from API requests. However, any non-pointer,
46294	// non-interface field appearing in ForceSendFields will be sent to the
46295	// server regardless of whether the field is empty or not. This may be
46296	// used to include empty fields in Patch requests.
46297	ForceSendFields []string `json:"-"`
46298
46299	// NullFields is a list of field names (e.g. "CertificateContext") to
46300	// include in API requests with the JSON null value. By default, fields
46301	// with empty values are omitted from API requests. However, any field
46302	// with an empty value appearing in NullFields will be sent to the
46303	// server as null. It is an error if a field in this list has a
46304	// non-empty value. This may be used to include null fields in Patch
46305	// requests.
46306	NullFields []string `json:"-"`
46307}
46308
46309func (s *TlsContext) MarshalJSON() ([]byte, error) {
46310	type NoMethod TlsContext
46311	raw := NoMethod(*s)
46312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46313}
46314
46315// TlsValidationContext: [Deprecated] Defines the mechanism to obtain
46316// the Certificate Authority certificate to validate the client/server
46317// certificate. validate the client/server certificate.
46318type TlsValidationContext struct {
46319	// CertificatePath: The path to the file holding the CA certificate to
46320	// validate the client or server certificate.
46321	CertificatePath string `json:"certificatePath,omitempty"`
46322
46323	// SdsConfig: Specifies the config to retrieve certificates through SDS.
46324	// This field is applicable only if tlsCertificateSource is set to
46325	// USE_SDS.
46326	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
46327
46328	// ValidationSource: Defines how TLS certificates are obtained.
46329	//
46330	// Possible values:
46331	//   "INVALID"
46332	//   "USE_PATH"
46333	//   "USE_SDS"
46334	ValidationSource string `json:"validationSource,omitempty"`
46335
46336	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
46337	// unconditionally include in API requests. By default, fields with
46338	// empty values are omitted from API requests. However, any non-pointer,
46339	// non-interface field appearing in ForceSendFields will be sent to the
46340	// server regardless of whether the field is empty or not. This may be
46341	// used to include empty fields in Patch requests.
46342	ForceSendFields []string `json:"-"`
46343
46344	// NullFields is a list of field names (e.g. "CertificatePath") to
46345	// include in API requests with the JSON null value. By default, fields
46346	// with empty values are omitted from API requests. However, any field
46347	// with an empty value appearing in NullFields will be sent to the
46348	// server as null. It is an error if a field in this list has a
46349	// non-empty value. This may be used to include null fields in Patch
46350	// requests.
46351	NullFields []string `json:"-"`
46352}
46353
46354func (s *TlsValidationContext) MarshalJSON() ([]byte, error) {
46355	type NoMethod TlsValidationContext
46356	raw := NoMethod(*s)
46357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46358}
46359
46360type UDPHealthCheck struct {
46361	// Port: The UDP port number for the health check request. Valid values
46362	// are 1 through 65535.
46363	Port int64 `json:"port,omitempty"`
46364
46365	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
46366	// both port and port_name are defined, port takes precedence.
46367	PortName string `json:"portName,omitempty"`
46368
46369	// Request: Raw data of request to send in payload of UDP packet. It is
46370	// an error if this is empty. The request data can only be ASCII.
46371	Request string `json:"request,omitempty"`
46372
46373	// Response: The bytes to match against the beginning of the response
46374	// data. It is an error if this is empty. The response data can only be
46375	// ASCII.
46376	Response string `json:"response,omitempty"`
46377
46378	// ForceSendFields is a list of field names (e.g. "Port") to
46379	// unconditionally include in API requests. By default, fields with
46380	// empty values are omitted from API requests. However, any non-pointer,
46381	// non-interface field appearing in ForceSendFields will be sent to the
46382	// server regardless of whether the field is empty or not. This may be
46383	// used to include empty fields in Patch requests.
46384	ForceSendFields []string `json:"-"`
46385
46386	// NullFields is a list of field names (e.g. "Port") to include in API
46387	// requests with the JSON null value. By default, fields with empty
46388	// values are omitted from API requests. However, any field with an
46389	// empty value appearing in NullFields will be sent to the server as
46390	// null. It is an error if a field in this list has a non-empty value.
46391	// This may be used to include null fields in Patch requests.
46392	NullFields []string `json:"-"`
46393}
46394
46395func (s *UDPHealthCheck) MarshalJSON() ([]byte, error) {
46396	type NoMethod UDPHealthCheck
46397	raw := NoMethod(*s)
46398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46399}
46400
46401// UpcomingMaintenance: Upcoming Maintenance notification information.
46402type UpcomingMaintenance struct {
46403	// Date: [Output Only] The date when the maintenance will take place.
46404	// This value is in RFC3339 text format.
46405	Date string `json:"date,omitempty"`
46406
46407	// Time: [Output Only] The time when the maintenance will take place.
46408	// This value is in RFC3339 text format.
46409	Time string `json:"time,omitempty"`
46410
46411	// Type: Defines the type of maintenance.
46412	//
46413	// Possible values:
46414	//   "SCHEDULED"
46415	//   "UNKNOWN_TYPE"
46416	//   "UNSCHEDULED"
46417	Type string `json:"type,omitempty"`
46418
46419	// ForceSendFields is a list of field names (e.g. "Date") to
46420	// unconditionally include in API requests. By default, fields with
46421	// empty values are omitted from API requests. However, any non-pointer,
46422	// non-interface field appearing in ForceSendFields will be sent to the
46423	// server regardless of whether the field is empty or not. This may be
46424	// used to include empty fields in Patch requests.
46425	ForceSendFields []string `json:"-"`
46426
46427	// NullFields is a list of field names (e.g. "Date") to include in API
46428	// requests with the JSON null value. By default, fields with empty
46429	// values are omitted from API requests. However, any field with an
46430	// empty value appearing in NullFields will be sent to the server as
46431	// null. It is an error if a field in this list has a non-empty value.
46432	// This may be used to include null fields in Patch requests.
46433	NullFields []string `json:"-"`
46434}
46435
46436func (s *UpcomingMaintenance) MarshalJSON() ([]byte, error) {
46437	type NoMethod UpcomingMaintenance
46438	raw := NoMethod(*s)
46439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46440}
46441
46442// UrlMap: Represents a URL Map resource.
46443//
46444// Google Compute Engine has two URL Map resources:
46445//
46446// * [Global](/compute/docs/reference/rest/{$api_version}/urlMaps) *
46447// [Regional](/compute/docs/reference/rest/{$api_version}/regionUrlMaps)
46448//
46449//
46450// A URL map resource is a component of certain types of GCP load
46451// balancers and Traffic Director.
46452//
46453// * urlMaps are used by external HTTP(S) load balancers and Traffic
46454// Director. * regionUrlMaps are used by internal HTTP(S) load
46455// balancers.
46456//
46457// This resource defines mappings from host names and URL paths to
46458// either a backend service or a backend bucket.
46459//
46460// To use the global urlMaps resource, the backend service must have a
46461// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
46462// use the regionUrlMaps resource, the backend service must have a
46463// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
46464// URL Map Concepts.
46465type UrlMap struct {
46466	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46467	// format.
46468	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46469
46470	// DefaultRouteAction: defaultRouteAction takes effect when none of the
46471	// hostRules match. The load balancer performs advanced routing actions
46472	// like URL rewrites, header transformations, etc. prior to forwarding
46473	// the request to the selected backend. If defaultRouteAction specifies
46474	// any weightedBackendServices, defaultService must not be set.
46475	// Conversely if defaultService is set, defaultRouteAction cannot
46476	// contain any  weightedBackendServices.
46477	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
46478	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
46479
46480	// DefaultService: The full or partial URL of the defaultService
46481	// resource to which traffic is directed if none of the hostRules match.
46482	// If defaultRouteAction is additionally specified, advanced routing
46483	// actions like URL Rewrites, etc. take effect prior to sending the
46484	// request to the backend. However, if defaultService is specified,
46485	// defaultRouteAction cannot contain any weightedBackendServices.
46486	// Conversely, if routeAction specifies any weightedBackendServices,
46487	// service must not be specified.
46488	// Only one of defaultService, defaultUrlRedirect  or
46489	// defaultRouteAction.weightedBackendService must be set.
46490	DefaultService string `json:"defaultService,omitempty"`
46491
46492	// DefaultUrlRedirect: When none of the specified hostRules match, the
46493	// request is redirected to a URL specified by defaultUrlRedirect.
46494	// If defaultUrlRedirect is specified, defaultService or
46495	// defaultRouteAction must not be set.
46496	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
46497
46498	// Description: An optional description of this resource. Provide this
46499	// property when you create the resource.
46500	Description string `json:"description,omitempty"`
46501
46502	// Fingerprint: Fingerprint of this resource. A hash of the contents
46503	// stored in this object. This field is used in optimistic locking. This
46504	// field will be ignored when inserting a UrlMap. An up-to-date
46505	// fingerprint must be provided in order to update the UrlMap, otherwise
46506	// the request will fail with error 412 conditionNotMet.
46507	//
46508	// To see the latest fingerprint, make a get() request to retrieve a
46509	// UrlMap.
46510	Fingerprint string `json:"fingerprint,omitempty"`
46511
46512	// HeaderAction: Specifies changes to request and response headers that
46513	// need to take effect for the selected backendService.
46514	// The headerAction specified here take effect after headerAction
46515	// specified under pathMatcher.
46516	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
46517
46518	// HostRules: The list of HostRules to use against the URL.
46519	HostRules []*HostRule `json:"hostRules,omitempty"`
46520
46521	// Id: [Output Only] The unique identifier for the resource. This
46522	// identifier is defined by the server.
46523	Id uint64 `json:"id,omitempty,string"`
46524
46525	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
46526	// url maps.
46527	Kind string `json:"kind,omitempty"`
46528
46529	// Name: Name of the resource. Provided by the client when the resource
46530	// is created. The name must be 1-63 characters long, and comply with
46531	// RFC1035. Specifically, the name must be 1-63 characters long and
46532	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46533	// the first character must be a lowercase letter, and all following
46534	// characters must be a dash, lowercase letter, or digit, except the
46535	// last character, which cannot be a dash.
46536	Name string `json:"name,omitempty"`
46537
46538	// PathMatchers: The list of named PathMatchers to use against the URL.
46539	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
46540
46541	// Region: [Output Only] URL of the region where the regional URL map
46542	// resides. This field is not applicable to global URL maps. You must
46543	// specify this field as part of the HTTP request URL. It is not
46544	// settable as a field in the request body.
46545	Region string `json:"region,omitempty"`
46546
46547	// SelfLink: [Output Only] Server-defined URL for the resource.
46548	SelfLink string `json:"selfLink,omitempty"`
46549
46550	// Tests: The list of expected URL mapping tests. Request to update this
46551	// UrlMap will succeed only if all of the test cases pass. You can
46552	// specify a maximum of 100 tests per UrlMap.
46553	Tests []*UrlMapTest `json:"tests,omitempty"`
46554
46555	// ServerResponse contains the HTTP response code and headers from the
46556	// server.
46557	googleapi.ServerResponse `json:"-"`
46558
46559	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46560	// to unconditionally include in API requests. By default, fields with
46561	// empty values are omitted from API requests. However, any non-pointer,
46562	// non-interface field appearing in ForceSendFields will be sent to the
46563	// server regardless of whether the field is empty or not. This may be
46564	// used to include empty fields in Patch requests.
46565	ForceSendFields []string `json:"-"`
46566
46567	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46568	// include in API requests with the JSON null value. By default, fields
46569	// with empty values are omitted from API requests. However, any field
46570	// with an empty value appearing in NullFields will be sent to the
46571	// server as null. It is an error if a field in this list has a
46572	// non-empty value. This may be used to include null fields in Patch
46573	// requests.
46574	NullFields []string `json:"-"`
46575}
46576
46577func (s *UrlMap) MarshalJSON() ([]byte, error) {
46578	type NoMethod UrlMap
46579	raw := NoMethod(*s)
46580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46581}
46582
46583// UrlMapList: Contains a list of UrlMap resources.
46584type UrlMapList struct {
46585	// Id: [Output Only] Unique identifier for the resource; defined by the
46586	// server.
46587	Id string `json:"id,omitempty"`
46588
46589	// Items: A list of UrlMap resources.
46590	Items []*UrlMap `json:"items,omitempty"`
46591
46592	// Kind: Type of resource.
46593	Kind string `json:"kind,omitempty"`
46594
46595	// NextPageToken: [Output Only] This token allows you to get the next
46596	// page of results for list requests. If the number of results is larger
46597	// than maxResults, use the nextPageToken as a value for the query
46598	// parameter pageToken in the next list request. Subsequent list
46599	// requests will have their own nextPageToken to continue paging through
46600	// the results.
46601	NextPageToken string `json:"nextPageToken,omitempty"`
46602
46603	// SelfLink: [Output Only] Server-defined URL for this resource.
46604	SelfLink string `json:"selfLink,omitempty"`
46605
46606	// Warning: [Output Only] Informational warning message.
46607	Warning *UrlMapListWarning `json:"warning,omitempty"`
46608
46609	// ServerResponse contains the HTTP response code and headers from the
46610	// server.
46611	googleapi.ServerResponse `json:"-"`
46612
46613	// ForceSendFields is a list of field names (e.g. "Id") to
46614	// unconditionally include in API requests. By default, fields with
46615	// empty values are omitted from API requests. However, any non-pointer,
46616	// non-interface field appearing in ForceSendFields will be sent to the
46617	// server regardless of whether the field is empty or not. This may be
46618	// used to include empty fields in Patch requests.
46619	ForceSendFields []string `json:"-"`
46620
46621	// NullFields is a list of field names (e.g. "Id") to include in API
46622	// requests with the JSON null value. By default, fields with empty
46623	// values are omitted from API requests. However, any field with an
46624	// empty value appearing in NullFields will be sent to the server as
46625	// null. It is an error if a field in this list has a non-empty value.
46626	// This may be used to include null fields in Patch requests.
46627	NullFields []string `json:"-"`
46628}
46629
46630func (s *UrlMapList) MarshalJSON() ([]byte, error) {
46631	type NoMethod UrlMapList
46632	raw := NoMethod(*s)
46633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46634}
46635
46636// UrlMapListWarning: [Output Only] Informational warning message.
46637type UrlMapListWarning struct {
46638	// Code: [Output Only] A warning code, if applicable. For example,
46639	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46640	// the response.
46641	//
46642	// Possible values:
46643	//   "CLEANUP_FAILED"
46644	//   "DEPRECATED_RESOURCE_USED"
46645	//   "DEPRECATED_TYPE_USED"
46646	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46647	//   "EXPERIMENTAL_TYPE_USED"
46648	//   "EXTERNAL_API_WARNING"
46649	//   "FIELD_VALUE_OVERRIDEN"
46650	//   "INJECTED_KERNELS_DEPRECATED"
46651	//   "MISSING_TYPE_DEPENDENCY"
46652	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46653	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46654	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46655	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46656	//   "NEXT_HOP_NOT_RUNNING"
46657	//   "NOT_CRITICAL_ERROR"
46658	//   "NO_RESULTS_ON_PAGE"
46659	//   "PARTIAL_SUCCESS"
46660	//   "REQUIRED_TOS_AGREEMENT"
46661	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46662	//   "RESOURCE_NOT_DELETED"
46663	//   "SCHEMA_VALIDATION_IGNORED"
46664	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46665	//   "UNDECLARED_PROPERTIES"
46666	//   "UNREACHABLE"
46667	Code string `json:"code,omitempty"`
46668
46669	// Data: [Output Only] Metadata about this warning in key: value format.
46670	// For example:
46671	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46672	Data []*UrlMapListWarningData `json:"data,omitempty"`
46673
46674	// Message: [Output Only] A human-readable description of the warning
46675	// code.
46676	Message string `json:"message,omitempty"`
46677
46678	// ForceSendFields is a list of field names (e.g. "Code") to
46679	// unconditionally include in API requests. By default, fields with
46680	// empty values are omitted from API requests. However, any non-pointer,
46681	// non-interface field appearing in ForceSendFields will be sent to the
46682	// server regardless of whether the field is empty or not. This may be
46683	// used to include empty fields in Patch requests.
46684	ForceSendFields []string `json:"-"`
46685
46686	// NullFields is a list of field names (e.g. "Code") to include in API
46687	// requests with the JSON null value. By default, fields with empty
46688	// values are omitted from API requests. However, any field with an
46689	// empty value appearing in NullFields will be sent to the server as
46690	// null. It is an error if a field in this list has a non-empty value.
46691	// This may be used to include null fields in Patch requests.
46692	NullFields []string `json:"-"`
46693}
46694
46695func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
46696	type NoMethod UrlMapListWarning
46697	raw := NoMethod(*s)
46698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46699}
46700
46701type UrlMapListWarningData struct {
46702	// Key: [Output Only] A key that provides more detail on the warning
46703	// being returned. For example, for warnings where there are no results
46704	// in a list request for a particular zone, this key might be scope and
46705	// the key value might be the zone name. Other examples might be a key
46706	// indicating a deprecated resource and a suggested replacement, or a
46707	// warning about invalid network settings (for example, if an instance
46708	// attempts to perform IP forwarding but is not enabled for IP
46709	// forwarding).
46710	Key string `json:"key,omitempty"`
46711
46712	// Value: [Output Only] A warning data value corresponding to the key.
46713	Value string `json:"value,omitempty"`
46714
46715	// ForceSendFields is a list of field names (e.g. "Key") to
46716	// unconditionally include in API requests. By default, fields with
46717	// empty values are omitted from API requests. However, any non-pointer,
46718	// non-interface field appearing in ForceSendFields will be sent to the
46719	// server regardless of whether the field is empty or not. This may be
46720	// used to include empty fields in Patch requests.
46721	ForceSendFields []string `json:"-"`
46722
46723	// NullFields is a list of field names (e.g. "Key") to include in API
46724	// requests with the JSON null value. By default, fields with empty
46725	// values are omitted from API requests. However, any field with an
46726	// empty value appearing in NullFields will be sent to the server as
46727	// null. It is an error if a field in this list has a non-empty value.
46728	// This may be used to include null fields in Patch requests.
46729	NullFields []string `json:"-"`
46730}
46731
46732func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
46733	type NoMethod UrlMapListWarningData
46734	raw := NoMethod(*s)
46735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46736}
46737
46738type UrlMapReference struct {
46739	UrlMap string `json:"urlMap,omitempty"`
46740
46741	// ForceSendFields is a list of field names (e.g. "UrlMap") to
46742	// unconditionally include in API requests. By default, fields with
46743	// empty values are omitted from API requests. However, any non-pointer,
46744	// non-interface field appearing in ForceSendFields will be sent to the
46745	// server regardless of whether the field is empty or not. This may be
46746	// used to include empty fields in Patch requests.
46747	ForceSendFields []string `json:"-"`
46748
46749	// NullFields is a list of field names (e.g. "UrlMap") to include in API
46750	// requests with the JSON null value. By default, fields with empty
46751	// values are omitted from API requests. However, any field with an
46752	// empty value appearing in NullFields will be sent to the server as
46753	// null. It is an error if a field in this list has a non-empty value.
46754	// This may be used to include null fields in Patch requests.
46755	NullFields []string `json:"-"`
46756}
46757
46758func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
46759	type NoMethod UrlMapReference
46760	raw := NoMethod(*s)
46761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46762}
46763
46764// UrlMapTest: Message for the expected URL mappings.
46765type UrlMapTest struct {
46766	// BackendServiceWeight: The weight to use for the supplied host and
46767	// path when using advanced routing rules that involve traffic
46768	// splitting.
46769	BackendServiceWeight int64 `json:"backendServiceWeight,omitempty"`
46770
46771	// Description: Description of this test case.
46772	Description string `json:"description,omitempty"`
46773
46774	// ExpectedUrlRedirect: The expected URL that should be redirected to
46775	// for the host and path being tested.
46776	ExpectedUrlRedirect string `json:"expectedUrlRedirect,omitempty"`
46777
46778	// Host: Host portion of the URL.
46779	Host string `json:"host,omitempty"`
46780
46781	// Path: Path portion of the URL.
46782	Path string `json:"path,omitempty"`
46783
46784	// Service: Expected BackendService resource the given URL should be
46785	// mapped to.
46786	Service string `json:"service,omitempty"`
46787
46788	// ForceSendFields is a list of field names (e.g.
46789	// "BackendServiceWeight") to unconditionally include in API requests.
46790	// By default, fields with empty values are omitted from API requests.
46791	// However, any non-pointer, non-interface field appearing in
46792	// ForceSendFields will be sent to the server regardless of whether the
46793	// field is empty or not. This may be used to include empty fields in
46794	// Patch requests.
46795	ForceSendFields []string `json:"-"`
46796
46797	// NullFields is a list of field names (e.g. "BackendServiceWeight") to
46798	// include in API requests with the JSON null value. By default, fields
46799	// with empty values are omitted from API requests. However, any field
46800	// with an empty value appearing in NullFields will be sent to the
46801	// server as null. It is an error if a field in this list has a
46802	// non-empty value. This may be used to include null fields in Patch
46803	// requests.
46804	NullFields []string `json:"-"`
46805}
46806
46807func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
46808	type NoMethod UrlMapTest
46809	raw := NoMethod(*s)
46810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46811}
46812
46813// UrlMapValidationResult: Message representing the validation result
46814// for a UrlMap.
46815type UrlMapValidationResult struct {
46816	LoadErrors []string `json:"loadErrors,omitempty"`
46817
46818	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
46819	// If false, 'loadErrors' indicates the reasons.
46820	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
46821
46822	TestFailures []*TestFailure `json:"testFailures,omitempty"`
46823
46824	// TestPassed: If successfully loaded, this field indicates whether the
46825	// test passed. If false, 'testFailures's indicate the reason of
46826	// failure.
46827	TestPassed bool `json:"testPassed,omitempty"`
46828
46829	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
46830	// unconditionally include in API requests. By default, fields with
46831	// empty values are omitted from API requests. However, any non-pointer,
46832	// non-interface field appearing in ForceSendFields will be sent to the
46833	// server regardless of whether the field is empty or not. This may be
46834	// used to include empty fields in Patch requests.
46835	ForceSendFields []string `json:"-"`
46836
46837	// NullFields is a list of field names (e.g. "LoadErrors") to include in
46838	// API requests with the JSON null value. By default, fields with empty
46839	// values are omitted from API requests. However, any field with an
46840	// empty value appearing in NullFields will be sent to the server as
46841	// null. It is an error if a field in this list has a non-empty value.
46842	// This may be used to include null fields in Patch requests.
46843	NullFields []string `json:"-"`
46844}
46845
46846func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
46847	type NoMethod UrlMapValidationResult
46848	raw := NoMethod(*s)
46849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46850}
46851
46852type UrlMapsAggregatedList struct {
46853	// Id: [Output Only] Unique identifier for the resource; defined by the
46854	// server.
46855	Id string `json:"id,omitempty"`
46856
46857	// Items: A list of UrlMapsScopedList resources.
46858	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
46859
46860	// Kind: Type of resource.
46861	Kind string `json:"kind,omitempty"`
46862
46863	// NextPageToken: [Output Only] This token allows you to get the next
46864	// page of results for list requests. If the number of results is larger
46865	// than maxResults, use the nextPageToken as a value for the query
46866	// parameter pageToken in the next list request. Subsequent list
46867	// requests will have their own nextPageToken to continue paging through
46868	// the results.
46869	NextPageToken string `json:"nextPageToken,omitempty"`
46870
46871	// SelfLink: [Output Only] Server-defined URL for this resource.
46872	SelfLink string `json:"selfLink,omitempty"`
46873
46874	// Unreachables: [Output Only] Unreachable resources.
46875	Unreachables []string `json:"unreachables,omitempty"`
46876
46877	// Warning: [Output Only] Informational warning message.
46878	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
46879
46880	// ServerResponse contains the HTTP response code and headers from the
46881	// server.
46882	googleapi.ServerResponse `json:"-"`
46883
46884	// ForceSendFields is a list of field names (e.g. "Id") to
46885	// unconditionally include in API requests. By default, fields with
46886	// empty values are omitted from API requests. However, any non-pointer,
46887	// non-interface field appearing in ForceSendFields will be sent to the
46888	// server regardless of whether the field is empty or not. This may be
46889	// used to include empty fields in Patch requests.
46890	ForceSendFields []string `json:"-"`
46891
46892	// NullFields is a list of field names (e.g. "Id") to include in API
46893	// requests with the JSON null value. By default, fields with empty
46894	// values are omitted from API requests. However, any field with an
46895	// empty value appearing in NullFields will be sent to the server as
46896	// null. It is an error if a field in this list has a non-empty value.
46897	// This may be used to include null fields in Patch requests.
46898	NullFields []string `json:"-"`
46899}
46900
46901func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
46902	type NoMethod UrlMapsAggregatedList
46903	raw := NoMethod(*s)
46904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46905}
46906
46907// UrlMapsAggregatedListWarning: [Output Only] Informational warning
46908// message.
46909type UrlMapsAggregatedListWarning struct {
46910	// Code: [Output Only] A warning code, if applicable. For example,
46911	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46912	// the response.
46913	//
46914	// Possible values:
46915	//   "CLEANUP_FAILED"
46916	//   "DEPRECATED_RESOURCE_USED"
46917	//   "DEPRECATED_TYPE_USED"
46918	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46919	//   "EXPERIMENTAL_TYPE_USED"
46920	//   "EXTERNAL_API_WARNING"
46921	//   "FIELD_VALUE_OVERRIDEN"
46922	//   "INJECTED_KERNELS_DEPRECATED"
46923	//   "MISSING_TYPE_DEPENDENCY"
46924	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46925	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46926	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46927	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46928	//   "NEXT_HOP_NOT_RUNNING"
46929	//   "NOT_CRITICAL_ERROR"
46930	//   "NO_RESULTS_ON_PAGE"
46931	//   "PARTIAL_SUCCESS"
46932	//   "REQUIRED_TOS_AGREEMENT"
46933	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46934	//   "RESOURCE_NOT_DELETED"
46935	//   "SCHEMA_VALIDATION_IGNORED"
46936	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46937	//   "UNDECLARED_PROPERTIES"
46938	//   "UNREACHABLE"
46939	Code string `json:"code,omitempty"`
46940
46941	// Data: [Output Only] Metadata about this warning in key: value format.
46942	// For example:
46943	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46944	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
46945
46946	// Message: [Output Only] A human-readable description of the warning
46947	// code.
46948	Message string `json:"message,omitempty"`
46949
46950	// ForceSendFields is a list of field names (e.g. "Code") to
46951	// unconditionally include in API requests. By default, fields with
46952	// empty values are omitted from API requests. However, any non-pointer,
46953	// non-interface field appearing in ForceSendFields will be sent to the
46954	// server regardless of whether the field is empty or not. This may be
46955	// used to include empty fields in Patch requests.
46956	ForceSendFields []string `json:"-"`
46957
46958	// NullFields is a list of field names (e.g. "Code") to include in API
46959	// requests with the JSON null value. By default, fields with empty
46960	// values are omitted from API requests. However, any field with an
46961	// empty value appearing in NullFields will be sent to the server as
46962	// null. It is an error if a field in this list has a non-empty value.
46963	// This may be used to include null fields in Patch requests.
46964	NullFields []string `json:"-"`
46965}
46966
46967func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
46968	type NoMethod UrlMapsAggregatedListWarning
46969	raw := NoMethod(*s)
46970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46971}
46972
46973type UrlMapsAggregatedListWarningData struct {
46974	// Key: [Output Only] A key that provides more detail on the warning
46975	// being returned. For example, for warnings where there are no results
46976	// in a list request for a particular zone, this key might be scope and
46977	// the key value might be the zone name. Other examples might be a key
46978	// indicating a deprecated resource and a suggested replacement, or a
46979	// warning about invalid network settings (for example, if an instance
46980	// attempts to perform IP forwarding but is not enabled for IP
46981	// forwarding).
46982	Key string `json:"key,omitempty"`
46983
46984	// Value: [Output Only] A warning data value corresponding to the key.
46985	Value string `json:"value,omitempty"`
46986
46987	// ForceSendFields is a list of field names (e.g. "Key") to
46988	// unconditionally include in API requests. By default, fields with
46989	// empty values are omitted from API requests. However, any non-pointer,
46990	// non-interface field appearing in ForceSendFields will be sent to the
46991	// server regardless of whether the field is empty or not. This may be
46992	// used to include empty fields in Patch requests.
46993	ForceSendFields []string `json:"-"`
46994
46995	// NullFields is a list of field names (e.g. "Key") to include in API
46996	// requests with the JSON null value. By default, fields with empty
46997	// values are omitted from API requests. However, any field with an
46998	// empty value appearing in NullFields will be sent to the server as
46999	// null. It is an error if a field in this list has a non-empty value.
47000	// This may be used to include null fields in Patch requests.
47001	NullFields []string `json:"-"`
47002}
47003
47004func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47005	type NoMethod UrlMapsAggregatedListWarningData
47006	raw := NoMethod(*s)
47007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47008}
47009
47010type UrlMapsScopedList struct {
47011	// UrlMaps: A list of UrlMaps contained in this scope.
47012	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
47013
47014	// Warning: Informational warning which replaces the list of backend
47015	// services when the list is empty.
47016	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
47017
47018	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
47019	// unconditionally include in API requests. By default, fields with
47020	// empty values are omitted from API requests. However, any non-pointer,
47021	// non-interface field appearing in ForceSendFields will be sent to the
47022	// server regardless of whether the field is empty or not. This may be
47023	// used to include empty fields in Patch requests.
47024	ForceSendFields []string `json:"-"`
47025
47026	// NullFields is a list of field names (e.g. "UrlMaps") to include in
47027	// API requests with the JSON null value. By default, fields with empty
47028	// values are omitted from API requests. However, any field with an
47029	// empty value appearing in NullFields will be sent to the server as
47030	// null. It is an error if a field in this list has a non-empty value.
47031	// This may be used to include null fields in Patch requests.
47032	NullFields []string `json:"-"`
47033}
47034
47035func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
47036	type NoMethod UrlMapsScopedList
47037	raw := NoMethod(*s)
47038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47039}
47040
47041// UrlMapsScopedListWarning: Informational warning which replaces the
47042// list of backend services when the list is empty.
47043type UrlMapsScopedListWarning struct {
47044	// Code: [Output Only] A warning code, if applicable. For example,
47045	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47046	// the response.
47047	//
47048	// Possible values:
47049	//   "CLEANUP_FAILED"
47050	//   "DEPRECATED_RESOURCE_USED"
47051	//   "DEPRECATED_TYPE_USED"
47052	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47053	//   "EXPERIMENTAL_TYPE_USED"
47054	//   "EXTERNAL_API_WARNING"
47055	//   "FIELD_VALUE_OVERRIDEN"
47056	//   "INJECTED_KERNELS_DEPRECATED"
47057	//   "MISSING_TYPE_DEPENDENCY"
47058	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47059	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47060	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47061	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47062	//   "NEXT_HOP_NOT_RUNNING"
47063	//   "NOT_CRITICAL_ERROR"
47064	//   "NO_RESULTS_ON_PAGE"
47065	//   "PARTIAL_SUCCESS"
47066	//   "REQUIRED_TOS_AGREEMENT"
47067	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47068	//   "RESOURCE_NOT_DELETED"
47069	//   "SCHEMA_VALIDATION_IGNORED"
47070	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47071	//   "UNDECLARED_PROPERTIES"
47072	//   "UNREACHABLE"
47073	Code string `json:"code,omitempty"`
47074
47075	// Data: [Output Only] Metadata about this warning in key: value format.
47076	// For example:
47077	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47078	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
47079
47080	// Message: [Output Only] A human-readable description of the warning
47081	// code.
47082	Message string `json:"message,omitempty"`
47083
47084	// ForceSendFields is a list of field names (e.g. "Code") to
47085	// unconditionally include in API requests. By default, fields with
47086	// empty values are omitted from API requests. However, any non-pointer,
47087	// non-interface field appearing in ForceSendFields will be sent to the
47088	// server regardless of whether the field is empty or not. This may be
47089	// used to include empty fields in Patch requests.
47090	ForceSendFields []string `json:"-"`
47091
47092	// NullFields is a list of field names (e.g. "Code") to include in API
47093	// requests with the JSON null value. By default, fields with empty
47094	// values are omitted from API requests. However, any field with an
47095	// empty value appearing in NullFields will be sent to the server as
47096	// null. It is an error if a field in this list has a non-empty value.
47097	// This may be used to include null fields in Patch requests.
47098	NullFields []string `json:"-"`
47099}
47100
47101func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
47102	type NoMethod UrlMapsScopedListWarning
47103	raw := NoMethod(*s)
47104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47105}
47106
47107type UrlMapsScopedListWarningData struct {
47108	// Key: [Output Only] A key that provides more detail on the warning
47109	// being returned. For example, for warnings where there are no results
47110	// in a list request for a particular zone, this key might be scope and
47111	// the key value might be the zone name. Other examples might be a key
47112	// indicating a deprecated resource and a suggested replacement, or a
47113	// warning about invalid network settings (for example, if an instance
47114	// attempts to perform IP forwarding but is not enabled for IP
47115	// forwarding).
47116	Key string `json:"key,omitempty"`
47117
47118	// Value: [Output Only] A warning data value corresponding to the key.
47119	Value string `json:"value,omitempty"`
47120
47121	// ForceSendFields is a list of field names (e.g. "Key") to
47122	// unconditionally include in API requests. By default, fields with
47123	// empty values are omitted from API requests. However, any non-pointer,
47124	// non-interface field appearing in ForceSendFields will be sent to the
47125	// server regardless of whether the field is empty or not. This may be
47126	// used to include empty fields in Patch requests.
47127	ForceSendFields []string `json:"-"`
47128
47129	// NullFields is a list of field names (e.g. "Key") to include in API
47130	// requests with the JSON null value. By default, fields with empty
47131	// values are omitted from API requests. However, any field with an
47132	// empty value appearing in NullFields will be sent to the server as
47133	// null. It is an error if a field in this list has a non-empty value.
47134	// This may be used to include null fields in Patch requests.
47135	NullFields []string `json:"-"`
47136}
47137
47138func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
47139	type NoMethod UrlMapsScopedListWarningData
47140	raw := NoMethod(*s)
47141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47142}
47143
47144type UrlMapsValidateRequest struct {
47145	// Resource: Content of the UrlMap to be validated.
47146	Resource *UrlMap `json:"resource,omitempty"`
47147
47148	// ForceSendFields is a list of field names (e.g. "Resource") to
47149	// unconditionally include in API requests. By default, fields with
47150	// empty values are omitted from API requests. However, any non-pointer,
47151	// non-interface field appearing in ForceSendFields will be sent to the
47152	// server regardless of whether the field is empty or not. This may be
47153	// used to include empty fields in Patch requests.
47154	ForceSendFields []string `json:"-"`
47155
47156	// NullFields is a list of field names (e.g. "Resource") to include in
47157	// API requests with the JSON null value. By default, fields with empty
47158	// values are omitted from API requests. However, any field with an
47159	// empty value appearing in NullFields will be sent to the server as
47160	// null. It is an error if a field in this list has a non-empty value.
47161	// This may be used to include null fields in Patch requests.
47162	NullFields []string `json:"-"`
47163}
47164
47165func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
47166	type NoMethod UrlMapsValidateRequest
47167	raw := NoMethod(*s)
47168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47169}
47170
47171type UrlMapsValidateResponse struct {
47172	Result *UrlMapValidationResult `json:"result,omitempty"`
47173
47174	// ServerResponse contains the HTTP response code and headers from the
47175	// server.
47176	googleapi.ServerResponse `json:"-"`
47177
47178	// ForceSendFields is a list of field names (e.g. "Result") to
47179	// unconditionally include in API requests. By default, fields with
47180	// empty values are omitted from API requests. However, any non-pointer,
47181	// non-interface field appearing in ForceSendFields will be sent to the
47182	// server regardless of whether the field is empty or not. This may be
47183	// used to include empty fields in Patch requests.
47184	ForceSendFields []string `json:"-"`
47185
47186	// NullFields is a list of field names (e.g. "Result") to include in API
47187	// requests with the JSON null value. By default, fields with empty
47188	// values are omitted from API requests. However, any field with an
47189	// empty value appearing in NullFields will be sent to the server as
47190	// null. It is an error if a field in this list has a non-empty value.
47191	// This may be used to include null fields in Patch requests.
47192	NullFields []string `json:"-"`
47193}
47194
47195func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
47196	type NoMethod UrlMapsValidateResponse
47197	raw := NoMethod(*s)
47198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47199}
47200
47201// UrlRewrite: The spec for modifying the path before sending the
47202// request to the matched backend service.
47203type UrlRewrite struct {
47204	// HostRewrite: Prior to forwarding the request to the selected service,
47205	// the request's host header is replaced with contents of
47206	// hostRewrite.
47207	// The value must be between 1 and 255 characters.
47208	HostRewrite string `json:"hostRewrite,omitempty"`
47209
47210	// PathPrefixRewrite: Prior to forwarding the request to the selected
47211	// backend service, the matching portion of the request's path is
47212	// replaced by pathPrefixRewrite.
47213	// The value must be between 1 and 1024 characters.
47214	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
47215
47216	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
47217	// unconditionally include in API requests. By default, fields with
47218	// empty values are omitted from API requests. However, any non-pointer,
47219	// non-interface field appearing in ForceSendFields will be sent to the
47220	// server regardless of whether the field is empty or not. This may be
47221	// used to include empty fields in Patch requests.
47222	ForceSendFields []string `json:"-"`
47223
47224	// NullFields is a list of field names (e.g. "HostRewrite") to include
47225	// in API requests with the JSON null value. By default, fields with
47226	// empty values are omitted from API requests. However, any field with
47227	// an empty value appearing in NullFields will be sent to the server as
47228	// null. It is an error if a field in this list has a non-empty value.
47229	// This may be used to include null fields in Patch requests.
47230	NullFields []string `json:"-"`
47231}
47232
47233func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
47234	type NoMethod UrlRewrite
47235	raw := NoMethod(*s)
47236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47237}
47238
47239// UsableSubnetwork: Subnetwork which the current user has
47240// compute.subnetworks.use permission on.
47241type UsableSubnetwork struct {
47242	// IpCidrRange: The range of internal addresses that are owned by this
47243	// subnetwork.
47244	IpCidrRange string `json:"ipCidrRange,omitempty"`
47245
47246	// Network: Network URL.
47247	Network string `json:"network,omitempty"`
47248
47249	// SecondaryIpRanges: Secondary IP ranges.
47250	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
47251
47252	// Subnetwork: Subnetwork URL.
47253	Subnetwork string `json:"subnetwork,omitempty"`
47254
47255	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
47256	// unconditionally include in API requests. By default, fields with
47257	// empty values are omitted from API requests. However, any non-pointer,
47258	// non-interface field appearing in ForceSendFields will be sent to the
47259	// server regardless of whether the field is empty or not. This may be
47260	// used to include empty fields in Patch requests.
47261	ForceSendFields []string `json:"-"`
47262
47263	// NullFields is a list of field names (e.g. "IpCidrRange") to include
47264	// in API requests with the JSON null value. By default, fields with
47265	// empty values are omitted from API requests. However, any field with
47266	// an empty value appearing in NullFields will be sent to the server as
47267	// null. It is an error if a field in this list has a non-empty value.
47268	// This may be used to include null fields in Patch requests.
47269	NullFields []string `json:"-"`
47270}
47271
47272func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
47273	type NoMethod UsableSubnetwork
47274	raw := NoMethod(*s)
47275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47276}
47277
47278// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
47279// subnetwork.
47280type UsableSubnetworkSecondaryRange struct {
47281	// IpCidrRange: The range of IP addresses belonging to this subnetwork
47282	// secondary range.
47283	IpCidrRange string `json:"ipCidrRange,omitempty"`
47284
47285	// RangeName: The name associated with this subnetwork secondary range,
47286	// used when adding an alias IP range to a VM instance. The name must be
47287	// 1-63 characters long, and comply with RFC1035. The name must be
47288	// unique within the subnetwork.
47289	RangeName string `json:"rangeName,omitempty"`
47290
47291	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
47292	// unconditionally include in API requests. By default, fields with
47293	// empty values are omitted from API requests. However, any non-pointer,
47294	// non-interface field appearing in ForceSendFields will be sent to the
47295	// server regardless of whether the field is empty or not. This may be
47296	// used to include empty fields in Patch requests.
47297	ForceSendFields []string `json:"-"`
47298
47299	// NullFields is a list of field names (e.g. "IpCidrRange") to include
47300	// in API requests with the JSON null value. By default, fields with
47301	// empty values are omitted from API requests. However, any field with
47302	// an empty value appearing in NullFields will be sent to the server as
47303	// null. It is an error if a field in this list has a non-empty value.
47304	// This may be used to include null fields in Patch requests.
47305	NullFields []string `json:"-"`
47306}
47307
47308func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
47309	type NoMethod UsableSubnetworkSecondaryRange
47310	raw := NoMethod(*s)
47311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47312}
47313
47314type UsableSubnetworksAggregatedList struct {
47315	// Id: [Output Only] The unique identifier for the resource. This
47316	// identifier is defined by the server.
47317	Id string `json:"id,omitempty"`
47318
47319	// Items: [Output] A list of usable subnetwork URLs.
47320	Items []*UsableSubnetwork `json:"items,omitempty"`
47321
47322	// Kind: [Output Only] Type of resource. Always
47323	// compute#usableSubnetworksAggregatedList for aggregated lists of
47324	// usable subnetworks.
47325	Kind string `json:"kind,omitempty"`
47326
47327	// NextPageToken: [Output Only] This token allows you to get the next
47328	// page of results for list requests. If the number of results is larger
47329	// than maxResults, use the nextPageToken as a value for the query
47330	// parameter pageToken in the next list request. Subsequent list
47331	// requests will have their own nextPageToken to continue paging through
47332	// the results.
47333	NextPageToken string `json:"nextPageToken,omitempty"`
47334
47335	// SelfLink: [Output Only] Server-defined URL for this resource.
47336	SelfLink string `json:"selfLink,omitempty"`
47337
47338	// Warning: [Output Only] Informational warning message.
47339	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
47340
47341	// ServerResponse contains the HTTP response code and headers from the
47342	// server.
47343	googleapi.ServerResponse `json:"-"`
47344
47345	// ForceSendFields is a list of field names (e.g. "Id") to
47346	// unconditionally include in API requests. By default, fields with
47347	// empty values are omitted from API requests. However, any non-pointer,
47348	// non-interface field appearing in ForceSendFields will be sent to the
47349	// server regardless of whether the field is empty or not. This may be
47350	// used to include empty fields in Patch requests.
47351	ForceSendFields []string `json:"-"`
47352
47353	// NullFields is a list of field names (e.g. "Id") to include in API
47354	// requests with the JSON null value. By default, fields with empty
47355	// values are omitted from API requests. However, any field with an
47356	// empty value appearing in NullFields will be sent to the server as
47357	// null. It is an error if a field in this list has a non-empty value.
47358	// This may be used to include null fields in Patch requests.
47359	NullFields []string `json:"-"`
47360}
47361
47362func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
47363	type NoMethod UsableSubnetworksAggregatedList
47364	raw := NoMethod(*s)
47365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47366}
47367
47368// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
47369// warning message.
47370type UsableSubnetworksAggregatedListWarning struct {
47371	// Code: [Output Only] A warning code, if applicable. For example,
47372	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47373	// the response.
47374	//
47375	// Possible values:
47376	//   "CLEANUP_FAILED"
47377	//   "DEPRECATED_RESOURCE_USED"
47378	//   "DEPRECATED_TYPE_USED"
47379	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47380	//   "EXPERIMENTAL_TYPE_USED"
47381	//   "EXTERNAL_API_WARNING"
47382	//   "FIELD_VALUE_OVERRIDEN"
47383	//   "INJECTED_KERNELS_DEPRECATED"
47384	//   "MISSING_TYPE_DEPENDENCY"
47385	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47386	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47387	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47388	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47389	//   "NEXT_HOP_NOT_RUNNING"
47390	//   "NOT_CRITICAL_ERROR"
47391	//   "NO_RESULTS_ON_PAGE"
47392	//   "PARTIAL_SUCCESS"
47393	//   "REQUIRED_TOS_AGREEMENT"
47394	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47395	//   "RESOURCE_NOT_DELETED"
47396	//   "SCHEMA_VALIDATION_IGNORED"
47397	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47398	//   "UNDECLARED_PROPERTIES"
47399	//   "UNREACHABLE"
47400	Code string `json:"code,omitempty"`
47401
47402	// Data: [Output Only] Metadata about this warning in key: value format.
47403	// For example:
47404	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47405	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
47406
47407	// Message: [Output Only] A human-readable description of the warning
47408	// code.
47409	Message string `json:"message,omitempty"`
47410
47411	// ForceSendFields is a list of field names (e.g. "Code") to
47412	// unconditionally include in API requests. By default, fields with
47413	// empty values are omitted from API requests. However, any non-pointer,
47414	// non-interface field appearing in ForceSendFields will be sent to the
47415	// server regardless of whether the field is empty or not. This may be
47416	// used to include empty fields in Patch requests.
47417	ForceSendFields []string `json:"-"`
47418
47419	// NullFields is a list of field names (e.g. "Code") to include in API
47420	// requests with the JSON null value. By default, fields with empty
47421	// values are omitted from API requests. However, any field with an
47422	// empty value appearing in NullFields will be sent to the server as
47423	// null. It is an error if a field in this list has a non-empty value.
47424	// This may be used to include null fields in Patch requests.
47425	NullFields []string `json:"-"`
47426}
47427
47428func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
47429	type NoMethod UsableSubnetworksAggregatedListWarning
47430	raw := NoMethod(*s)
47431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47432}
47433
47434type UsableSubnetworksAggregatedListWarningData struct {
47435	// Key: [Output Only] A key that provides more detail on the warning
47436	// being returned. For example, for warnings where there are no results
47437	// in a list request for a particular zone, this key might be scope and
47438	// the key value might be the zone name. Other examples might be a key
47439	// indicating a deprecated resource and a suggested replacement, or a
47440	// warning about invalid network settings (for example, if an instance
47441	// attempts to perform IP forwarding but is not enabled for IP
47442	// forwarding).
47443	Key string `json:"key,omitempty"`
47444
47445	// Value: [Output Only] A warning data value corresponding to the key.
47446	Value string `json:"value,omitempty"`
47447
47448	// ForceSendFields is a list of field names (e.g. "Key") to
47449	// unconditionally include in API requests. By default, fields with
47450	// empty values are omitted from API requests. However, any non-pointer,
47451	// non-interface field appearing in ForceSendFields will be sent to the
47452	// server regardless of whether the field is empty or not. This may be
47453	// used to include empty fields in Patch requests.
47454	ForceSendFields []string `json:"-"`
47455
47456	// NullFields is a list of field names (e.g. "Key") to include in API
47457	// requests with the JSON null value. By default, fields with empty
47458	// values are omitted from API requests. However, any field with an
47459	// empty value appearing in NullFields will be sent to the server as
47460	// null. It is an error if a field in this list has a non-empty value.
47461	// This may be used to include null fields in Patch requests.
47462	NullFields []string `json:"-"`
47463}
47464
47465func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47466	type NoMethod UsableSubnetworksAggregatedListWarningData
47467	raw := NoMethod(*s)
47468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47469}
47470
47471// UsageExportLocation: The location in Cloud Storage and naming method
47472// of the daily usage report. Contains bucket_name and report_name
47473// prefix.
47474type UsageExportLocation struct {
47475	// BucketName: The name of an existing bucket in Cloud Storage where the
47476	// usage report object is stored. The Google Service Account is granted
47477	// write access to this bucket. This can either be the bucket name by
47478	// itself, such as example-bucket, or the bucket name with gs:// or
47479	// https://storage.googleapis.com/ in front of it, such as
47480	// gs://example-bucket.
47481	BucketName string `json:"bucketName,omitempty"`
47482
47483	// ReportNamePrefix: An optional prefix for the name of the usage report
47484	// object stored in bucketName. If not supplied, defaults to usage. The
47485	// report is stored as a CSV file named
47486	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
47487	// usage according to Pacific Time. If you supply a prefix, it should
47488	// conform to Cloud Storage object naming conventions.
47489	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
47490
47491	// ForceSendFields is a list of field names (e.g. "BucketName") to
47492	// unconditionally include in API requests. By default, fields with
47493	// empty values are omitted from API requests. However, any non-pointer,
47494	// non-interface field appearing in ForceSendFields will be sent to the
47495	// server regardless of whether the field is empty or not. This may be
47496	// used to include empty fields in Patch requests.
47497	ForceSendFields []string `json:"-"`
47498
47499	// NullFields is a list of field names (e.g. "BucketName") to include in
47500	// API requests with the JSON null value. By default, fields with empty
47501	// values are omitted from API requests. However, any field with an
47502	// empty value appearing in NullFields will be sent to the server as
47503	// null. It is an error if a field in this list has a non-empty value.
47504	// This may be used to include null fields in Patch requests.
47505	NullFields []string `json:"-"`
47506}
47507
47508func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
47509	type NoMethod UsageExportLocation
47510	raw := NoMethod(*s)
47511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47512}
47513
47514// VmEndpointNatMappings: Contain information of Nat mapping for a VM
47515// endpoint (i.e., NIC).
47516type VmEndpointNatMappings struct {
47517	// InstanceName: Name of the VM instance which the endpoint belongs to
47518	InstanceName string `json:"instanceName,omitempty"`
47519
47520	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
47521
47522	// ForceSendFields is a list of field names (e.g. "InstanceName") to
47523	// unconditionally include in API requests. By default, fields with
47524	// empty values are omitted from API requests. However, any non-pointer,
47525	// non-interface field appearing in ForceSendFields will be sent to the
47526	// server regardless of whether the field is empty or not. This may be
47527	// used to include empty fields in Patch requests.
47528	ForceSendFields []string `json:"-"`
47529
47530	// NullFields is a list of field names (e.g. "InstanceName") to include
47531	// in API requests with the JSON null value. By default, fields with
47532	// empty values are omitted from API requests. However, any field with
47533	// an empty value appearing in NullFields will be sent to the server as
47534	// null. It is an error if a field in this list has a non-empty value.
47535	// This may be used to include null fields in Patch requests.
47536	NullFields []string `json:"-"`
47537}
47538
47539func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
47540	type NoMethod VmEndpointNatMappings
47541	raw := NoMethod(*s)
47542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47543}
47544
47545// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
47546// mapping for an interface of this endpoint.
47547type VmEndpointNatMappingsInterfaceNatMappings struct {
47548	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
47549	// assigned to this interface. These ranges are inclusive, that is, both
47550	// the first and the last ports can be used for NAT. Example:
47551	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
47552	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
47553
47554	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
47555	// this interface. These ranges are inclusive, that is, both the first
47556	// and the last ports can be used for NAT. Example:
47557	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
47558	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
47559
47560	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
47561	// allocated to this interface. It equals to the aggregated port number
47562	// in the field drain_nat_ip_port_ranges.
47563	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
47564
47565	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
47566	// to this interface. It equals to the aggregated port number in the
47567	// field nat_ip_port_ranges.
47568	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
47569
47570	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
47571	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
47572	// "192.168.5.0/24".
47573	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
47574
47575	// SourceVirtualIp: Primary IP of the VM for this NIC.
47576	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
47577
47578	// ForceSendFields is a list of field names (e.g.
47579	// "DrainNatIpPortRanges") to unconditionally include in API requests.
47580	// By default, fields with empty values are omitted from API requests.
47581	// However, any non-pointer, non-interface field appearing in
47582	// ForceSendFields will be sent to the server regardless of whether the
47583	// field is empty or not. This may be used to include empty fields in
47584	// Patch requests.
47585	ForceSendFields []string `json:"-"`
47586
47587	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
47588	// include in API requests with the JSON null value. By default, fields
47589	// with empty values are omitted from API requests. However, any field
47590	// with an empty value appearing in NullFields will be sent to the
47591	// server as null. It is an error if a field in this list has a
47592	// non-empty value. This may be used to include null fields in Patch
47593	// requests.
47594	NullFields []string `json:"-"`
47595}
47596
47597func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
47598	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
47599	raw := NoMethod(*s)
47600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47601}
47602
47603// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
47604type VmEndpointNatMappingsList struct {
47605	// Id: [Output Only] The unique identifier for the resource. This
47606	// identifier is defined by the server.
47607	Id string `json:"id,omitempty"`
47608
47609	// Kind: [Output Only] Type of resource. Always
47610	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
47611	// endpoints.
47612	Kind string `json:"kind,omitempty"`
47613
47614	// NextPageToken: [Output Only] This token allows you to get the next
47615	// page of results for list requests. If the number of results is larger
47616	// than maxResults, use the nextPageToken as a value for the query
47617	// parameter pageToken in the next list request. Subsequent list
47618	// requests will have their own nextPageToken to continue paging through
47619	// the results.
47620	NextPageToken string `json:"nextPageToken,omitempty"`
47621
47622	// Result: [Output Only] A list of Nat mapping information of VM
47623	// endpoints.
47624	Result []*VmEndpointNatMappings `json:"result,omitempty"`
47625
47626	// SelfLink: [Output Only] Server-defined URL for this resource.
47627	SelfLink string `json:"selfLink,omitempty"`
47628
47629	// Warning: [Output Only] Informational warning message.
47630	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
47631
47632	// ServerResponse contains the HTTP response code and headers from the
47633	// server.
47634	googleapi.ServerResponse `json:"-"`
47635
47636	// ForceSendFields is a list of field names (e.g. "Id") to
47637	// unconditionally include in API requests. By default, fields with
47638	// empty values are omitted from API requests. However, any non-pointer,
47639	// non-interface field appearing in ForceSendFields will be sent to the
47640	// server regardless of whether the field is empty or not. This may be
47641	// used to include empty fields in Patch requests.
47642	ForceSendFields []string `json:"-"`
47643
47644	// NullFields is a list of field names (e.g. "Id") to include in API
47645	// requests with the JSON null value. By default, fields with empty
47646	// values are omitted from API requests. However, any field with an
47647	// empty value appearing in NullFields will be sent to the server as
47648	// null. It is an error if a field in this list has a non-empty value.
47649	// This may be used to include null fields in Patch requests.
47650	NullFields []string `json:"-"`
47651}
47652
47653func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
47654	type NoMethod VmEndpointNatMappingsList
47655	raw := NoMethod(*s)
47656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47657}
47658
47659// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
47660// message.
47661type VmEndpointNatMappingsListWarning struct {
47662	// Code: [Output Only] A warning code, if applicable. For example,
47663	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47664	// the response.
47665	//
47666	// Possible values:
47667	//   "CLEANUP_FAILED"
47668	//   "DEPRECATED_RESOURCE_USED"
47669	//   "DEPRECATED_TYPE_USED"
47670	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47671	//   "EXPERIMENTAL_TYPE_USED"
47672	//   "EXTERNAL_API_WARNING"
47673	//   "FIELD_VALUE_OVERRIDEN"
47674	//   "INJECTED_KERNELS_DEPRECATED"
47675	//   "MISSING_TYPE_DEPENDENCY"
47676	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47677	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47678	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47679	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47680	//   "NEXT_HOP_NOT_RUNNING"
47681	//   "NOT_CRITICAL_ERROR"
47682	//   "NO_RESULTS_ON_PAGE"
47683	//   "PARTIAL_SUCCESS"
47684	//   "REQUIRED_TOS_AGREEMENT"
47685	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47686	//   "RESOURCE_NOT_DELETED"
47687	//   "SCHEMA_VALIDATION_IGNORED"
47688	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47689	//   "UNDECLARED_PROPERTIES"
47690	//   "UNREACHABLE"
47691	Code string `json:"code,omitempty"`
47692
47693	// Data: [Output Only] Metadata about this warning in key: value format.
47694	// For example:
47695	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47696	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
47697
47698	// Message: [Output Only] A human-readable description of the warning
47699	// code.
47700	Message string `json:"message,omitempty"`
47701
47702	// ForceSendFields is a list of field names (e.g. "Code") to
47703	// unconditionally include in API requests. By default, fields with
47704	// empty values are omitted from API requests. However, any non-pointer,
47705	// non-interface field appearing in ForceSendFields will be sent to the
47706	// server regardless of whether the field is empty or not. This may be
47707	// used to include empty fields in Patch requests.
47708	ForceSendFields []string `json:"-"`
47709
47710	// NullFields is a list of field names (e.g. "Code") to include in API
47711	// requests with the JSON null value. By default, fields with empty
47712	// values are omitted from API requests. However, any field with an
47713	// empty value appearing in NullFields will be sent to the server as
47714	// null. It is an error if a field in this list has a non-empty value.
47715	// This may be used to include null fields in Patch requests.
47716	NullFields []string `json:"-"`
47717}
47718
47719func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
47720	type NoMethod VmEndpointNatMappingsListWarning
47721	raw := NoMethod(*s)
47722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47723}
47724
47725type VmEndpointNatMappingsListWarningData struct {
47726	// Key: [Output Only] A key that provides more detail on the warning
47727	// being returned. For example, for warnings where there are no results
47728	// in a list request for a particular zone, this key might be scope and
47729	// the key value might be the zone name. Other examples might be a key
47730	// indicating a deprecated resource and a suggested replacement, or a
47731	// warning about invalid network settings (for example, if an instance
47732	// attempts to perform IP forwarding but is not enabled for IP
47733	// forwarding).
47734	Key string `json:"key,omitempty"`
47735
47736	// Value: [Output Only] A warning data value corresponding to the key.
47737	Value string `json:"value,omitempty"`
47738
47739	// ForceSendFields is a list of field names (e.g. "Key") to
47740	// unconditionally include in API requests. By default, fields with
47741	// empty values are omitted from API requests. However, any non-pointer,
47742	// non-interface field appearing in ForceSendFields will be sent to the
47743	// server regardless of whether the field is empty or not. This may be
47744	// used to include empty fields in Patch requests.
47745	ForceSendFields []string `json:"-"`
47746
47747	// NullFields is a list of field names (e.g. "Key") to include in API
47748	// requests with the JSON null value. By default, fields with empty
47749	// values are omitted from API requests. However, any field with an
47750	// empty value appearing in NullFields will be sent to the server as
47751	// null. It is an error if a field in this list has a non-empty value.
47752	// This may be used to include null fields in Patch requests.
47753	NullFields []string `json:"-"`
47754}
47755
47756func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
47757	type NoMethod VmEndpointNatMappingsListWarningData
47758	raw := NoMethod(*s)
47759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47760}
47761
47762// VpnGateway: Represents a VPN gateway resource. Next ID: 13
47763type VpnGateway struct {
47764	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
47765	// format.
47766	CreationTimestamp string `json:"creationTimestamp,omitempty"`
47767
47768	// Description: An optional description of this resource. Provide this
47769	// property when you create the resource.
47770	Description string `json:"description,omitempty"`
47771
47772	// Id: [Output Only] The unique identifier for the resource. This
47773	// identifier is defined by the server.
47774	Id uint64 `json:"id,omitempty,string"`
47775
47776	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
47777	// VPN gateways.
47778	Kind string `json:"kind,omitempty"`
47779
47780	// LabelFingerprint: A fingerprint for the labels being applied to this
47781	// VpnGateway, which is essentially a hash of the labels set used for
47782	// optimistic locking. The fingerprint is initially generated by Compute
47783	// Engine and changes after every request to modify or update labels.
47784	// You must always provide an up-to-date fingerprint hash in order to
47785	// update or change labels, otherwise the request will fail with error
47786	// 412 conditionNotMet.
47787	//
47788	// To see the latest fingerprint, make a get() request to retrieve an
47789	// VpnGateway.
47790	LabelFingerprint string `json:"labelFingerprint,omitempty"`
47791
47792	// Labels: Labels for this resource. These can only be added or modified
47793	// by the setLabels method. Each label key/value pair must comply with
47794	// RFC1035. Label values may be empty.
47795	Labels map[string]string `json:"labels,omitempty"`
47796
47797	// Name: Name of the resource. Provided by the client when the resource
47798	// is created. The name must be 1-63 characters long, and comply with
47799	// RFC1035. Specifically, the name must be 1-63 characters long and
47800	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
47801	// the first character must be a lowercase letter, and all following
47802	// characters must be a dash, lowercase letter, or digit, except the
47803	// last character, which cannot be a dash.
47804	Name string `json:"name,omitempty"`
47805
47806	// Network: URL of the network to which this VPN gateway is attached.
47807	// Provided by the client when the VPN gateway is created.
47808	Network string `json:"network,omitempty"`
47809
47810	// Region: [Output Only] URL of the region where the VPN gateway
47811	// resides.
47812	Region string `json:"region,omitempty"`
47813
47814	// SelfLink: [Output Only] Server-defined URL for the resource.
47815	SelfLink string `json:"selfLink,omitempty"`
47816
47817	// VpnInterfaces: A list of interfaces on this VPN gateway.
47818	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
47819
47820	// ServerResponse contains the HTTP response code and headers from the
47821	// server.
47822	googleapi.ServerResponse `json:"-"`
47823
47824	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
47825	// to unconditionally include in API requests. By default, fields with
47826	// empty values are omitted from API requests. However, any non-pointer,
47827	// non-interface field appearing in ForceSendFields will be sent to the
47828	// server regardless of whether the field is empty or not. This may be
47829	// used to include empty fields in Patch requests.
47830	ForceSendFields []string `json:"-"`
47831
47832	// NullFields is a list of field names (e.g. "CreationTimestamp") to
47833	// include in API requests with the JSON null value. By default, fields
47834	// with empty values are omitted from API requests. However, any field
47835	// with an empty value appearing in NullFields will be sent to the
47836	// server as null. It is an error if a field in this list has a
47837	// non-empty value. This may be used to include null fields in Patch
47838	// requests.
47839	NullFields []string `json:"-"`
47840}
47841
47842func (s *VpnGateway) MarshalJSON() ([]byte, error) {
47843	type NoMethod VpnGateway
47844	raw := NoMethod(*s)
47845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47846}
47847
47848type VpnGatewayAggregatedList struct {
47849	// Id: [Output Only] Unique identifier for the resource; defined by the
47850	// server.
47851	Id string `json:"id,omitempty"`
47852
47853	// Items: A list of VpnGateway resources.
47854	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
47855
47856	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
47857	// VPN gateways.
47858	Kind string `json:"kind,omitempty"`
47859
47860	// NextPageToken: [Output Only] This token allows you to get the next
47861	// page of results for list requests. If the number of results is larger
47862	// than maxResults, use the nextPageToken as a value for the query
47863	// parameter pageToken in the next list request. Subsequent list
47864	// requests will have their own nextPageToken to continue paging through
47865	// the results.
47866	NextPageToken string `json:"nextPageToken,omitempty"`
47867
47868	// SelfLink: [Output Only] Server-defined URL for this resource.
47869	SelfLink string `json:"selfLink,omitempty"`
47870
47871	// Unreachables: [Output Only] Unreachable resources.
47872	Unreachables []string `json:"unreachables,omitempty"`
47873
47874	// Warning: [Output Only] Informational warning message.
47875	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
47876
47877	// ServerResponse contains the HTTP response code and headers from the
47878	// server.
47879	googleapi.ServerResponse `json:"-"`
47880
47881	// ForceSendFields is a list of field names (e.g. "Id") to
47882	// unconditionally include in API requests. By default, fields with
47883	// empty values are omitted from API requests. However, any non-pointer,
47884	// non-interface field appearing in ForceSendFields will be sent to the
47885	// server regardless of whether the field is empty or not. This may be
47886	// used to include empty fields in Patch requests.
47887	ForceSendFields []string `json:"-"`
47888
47889	// NullFields is a list of field names (e.g. "Id") to include in API
47890	// requests with the JSON null value. By default, fields with empty
47891	// values are omitted from API requests. However, any field with an
47892	// empty value appearing in NullFields will be sent to the server as
47893	// null. It is an error if a field in this list has a non-empty value.
47894	// This may be used to include null fields in Patch requests.
47895	NullFields []string `json:"-"`
47896}
47897
47898func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
47899	type NoMethod VpnGatewayAggregatedList
47900	raw := NoMethod(*s)
47901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47902}
47903
47904// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
47905// message.
47906type VpnGatewayAggregatedListWarning struct {
47907	// Code: [Output Only] A warning code, if applicable. For example,
47908	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47909	// the response.
47910	//
47911	// Possible values:
47912	//   "CLEANUP_FAILED"
47913	//   "DEPRECATED_RESOURCE_USED"
47914	//   "DEPRECATED_TYPE_USED"
47915	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47916	//   "EXPERIMENTAL_TYPE_USED"
47917	//   "EXTERNAL_API_WARNING"
47918	//   "FIELD_VALUE_OVERRIDEN"
47919	//   "INJECTED_KERNELS_DEPRECATED"
47920	//   "MISSING_TYPE_DEPENDENCY"
47921	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47922	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47923	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47924	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47925	//   "NEXT_HOP_NOT_RUNNING"
47926	//   "NOT_CRITICAL_ERROR"
47927	//   "NO_RESULTS_ON_PAGE"
47928	//   "PARTIAL_SUCCESS"
47929	//   "REQUIRED_TOS_AGREEMENT"
47930	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47931	//   "RESOURCE_NOT_DELETED"
47932	//   "SCHEMA_VALIDATION_IGNORED"
47933	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47934	//   "UNDECLARED_PROPERTIES"
47935	//   "UNREACHABLE"
47936	Code string `json:"code,omitempty"`
47937
47938	// Data: [Output Only] Metadata about this warning in key: value format.
47939	// For example:
47940	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47941	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
47942
47943	// Message: [Output Only] A human-readable description of the warning
47944	// code.
47945	Message string `json:"message,omitempty"`
47946
47947	// ForceSendFields is a list of field names (e.g. "Code") to
47948	// unconditionally include in API requests. By default, fields with
47949	// empty values are omitted from API requests. However, any non-pointer,
47950	// non-interface field appearing in ForceSendFields will be sent to the
47951	// server regardless of whether the field is empty or not. This may be
47952	// used to include empty fields in Patch requests.
47953	ForceSendFields []string `json:"-"`
47954
47955	// NullFields is a list of field names (e.g. "Code") to include in API
47956	// requests with the JSON null value. By default, fields with empty
47957	// values are omitted from API requests. However, any field with an
47958	// empty value appearing in NullFields will be sent to the server as
47959	// null. It is an error if a field in this list has a non-empty value.
47960	// This may be used to include null fields in Patch requests.
47961	NullFields []string `json:"-"`
47962}
47963
47964func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
47965	type NoMethod VpnGatewayAggregatedListWarning
47966	raw := NoMethod(*s)
47967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47968}
47969
47970type VpnGatewayAggregatedListWarningData struct {
47971	// Key: [Output Only] A key that provides more detail on the warning
47972	// being returned. For example, for warnings where there are no results
47973	// in a list request for a particular zone, this key might be scope and
47974	// the key value might be the zone name. Other examples might be a key
47975	// indicating a deprecated resource and a suggested replacement, or a
47976	// warning about invalid network settings (for example, if an instance
47977	// attempts to perform IP forwarding but is not enabled for IP
47978	// forwarding).
47979	Key string `json:"key,omitempty"`
47980
47981	// Value: [Output Only] A warning data value corresponding to the key.
47982	Value string `json:"value,omitempty"`
47983
47984	// ForceSendFields is a list of field names (e.g. "Key") to
47985	// unconditionally include in API requests. By default, fields with
47986	// empty values are omitted from API requests. However, any non-pointer,
47987	// non-interface field appearing in ForceSendFields will be sent to the
47988	// server regardless of whether the field is empty or not. This may be
47989	// used to include empty fields in Patch requests.
47990	ForceSendFields []string `json:"-"`
47991
47992	// NullFields is a list of field names (e.g. "Key") to include in API
47993	// requests with the JSON null value. By default, fields with empty
47994	// values are omitted from API requests. However, any field with an
47995	// empty value appearing in NullFields will be sent to the server as
47996	// null. It is an error if a field in this list has a non-empty value.
47997	// This may be used to include null fields in Patch requests.
47998	NullFields []string `json:"-"`
47999}
48000
48001func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48002	type NoMethod VpnGatewayAggregatedListWarningData
48003	raw := NoMethod(*s)
48004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48005}
48006
48007// VpnGatewayList: Contains a list of VpnGateway resources.
48008type VpnGatewayList struct {
48009	// Id: [Output Only] Unique identifier for the resource; defined by the
48010	// server.
48011	Id string `json:"id,omitempty"`
48012
48013	// Items: A list of VpnGateway resources.
48014	Items []*VpnGateway `json:"items,omitempty"`
48015
48016	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
48017	// VPN gateways.
48018	Kind string `json:"kind,omitempty"`
48019
48020	// NextPageToken: [Output Only] This token allows you to get the next
48021	// page of results for list requests. If the number of results is larger
48022	// than maxResults, use the nextPageToken as a value for the query
48023	// parameter pageToken in the next list request. Subsequent list
48024	// requests will have their own nextPageToken to continue paging through
48025	// the results.
48026	NextPageToken string `json:"nextPageToken,omitempty"`
48027
48028	// SelfLink: [Output Only] Server-defined URL for this resource.
48029	SelfLink string `json:"selfLink,omitempty"`
48030
48031	// Warning: [Output Only] Informational warning message.
48032	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
48033
48034	// ServerResponse contains the HTTP response code and headers from the
48035	// server.
48036	googleapi.ServerResponse `json:"-"`
48037
48038	// ForceSendFields is a list of field names (e.g. "Id") to
48039	// unconditionally include in API requests. By default, fields with
48040	// empty values are omitted from API requests. However, any non-pointer,
48041	// non-interface field appearing in ForceSendFields will be sent to the
48042	// server regardless of whether the field is empty or not. This may be
48043	// used to include empty fields in Patch requests.
48044	ForceSendFields []string `json:"-"`
48045
48046	// NullFields is a list of field names (e.g. "Id") to include in API
48047	// requests with the JSON null value. By default, fields with empty
48048	// values are omitted from API requests. However, any field with an
48049	// empty value appearing in NullFields will be sent to the server as
48050	// null. It is an error if a field in this list has a non-empty value.
48051	// This may be used to include null fields in Patch requests.
48052	NullFields []string `json:"-"`
48053}
48054
48055func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
48056	type NoMethod VpnGatewayList
48057	raw := NoMethod(*s)
48058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48059}
48060
48061// VpnGatewayListWarning: [Output Only] Informational warning message.
48062type VpnGatewayListWarning struct {
48063	// Code: [Output Only] A warning code, if applicable. For example,
48064	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48065	// the response.
48066	//
48067	// Possible values:
48068	//   "CLEANUP_FAILED"
48069	//   "DEPRECATED_RESOURCE_USED"
48070	//   "DEPRECATED_TYPE_USED"
48071	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48072	//   "EXPERIMENTAL_TYPE_USED"
48073	//   "EXTERNAL_API_WARNING"
48074	//   "FIELD_VALUE_OVERRIDEN"
48075	//   "INJECTED_KERNELS_DEPRECATED"
48076	//   "MISSING_TYPE_DEPENDENCY"
48077	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48078	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48079	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48080	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48081	//   "NEXT_HOP_NOT_RUNNING"
48082	//   "NOT_CRITICAL_ERROR"
48083	//   "NO_RESULTS_ON_PAGE"
48084	//   "PARTIAL_SUCCESS"
48085	//   "REQUIRED_TOS_AGREEMENT"
48086	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48087	//   "RESOURCE_NOT_DELETED"
48088	//   "SCHEMA_VALIDATION_IGNORED"
48089	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48090	//   "UNDECLARED_PROPERTIES"
48091	//   "UNREACHABLE"
48092	Code string `json:"code,omitempty"`
48093
48094	// Data: [Output Only] Metadata about this warning in key: value format.
48095	// For example:
48096	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48097	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
48098
48099	// Message: [Output Only] A human-readable description of the warning
48100	// code.
48101	Message string `json:"message,omitempty"`
48102
48103	// ForceSendFields is a list of field names (e.g. "Code") to
48104	// unconditionally include in API requests. By default, fields with
48105	// empty values are omitted from API requests. However, any non-pointer,
48106	// non-interface field appearing in ForceSendFields will be sent to the
48107	// server regardless of whether the field is empty or not. This may be
48108	// used to include empty fields in Patch requests.
48109	ForceSendFields []string `json:"-"`
48110
48111	// NullFields is a list of field names (e.g. "Code") to include in API
48112	// requests with the JSON null value. By default, fields with empty
48113	// values are omitted from API requests. However, any field with an
48114	// empty value appearing in NullFields will be sent to the server as
48115	// null. It is an error if a field in this list has a non-empty value.
48116	// This may be used to include null fields in Patch requests.
48117	NullFields []string `json:"-"`
48118}
48119
48120func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
48121	type NoMethod VpnGatewayListWarning
48122	raw := NoMethod(*s)
48123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48124}
48125
48126type VpnGatewayListWarningData struct {
48127	// Key: [Output Only] A key that provides more detail on the warning
48128	// being returned. For example, for warnings where there are no results
48129	// in a list request for a particular zone, this key might be scope and
48130	// the key value might be the zone name. Other examples might be a key
48131	// indicating a deprecated resource and a suggested replacement, or a
48132	// warning about invalid network settings (for example, if an instance
48133	// attempts to perform IP forwarding but is not enabled for IP
48134	// forwarding).
48135	Key string `json:"key,omitempty"`
48136
48137	// Value: [Output Only] A warning data value corresponding to the key.
48138	Value string `json:"value,omitempty"`
48139
48140	// ForceSendFields is a list of field names (e.g. "Key") to
48141	// unconditionally include in API requests. By default, fields with
48142	// empty values are omitted from API requests. However, any non-pointer,
48143	// non-interface field appearing in ForceSendFields will be sent to the
48144	// server regardless of whether the field is empty or not. This may be
48145	// used to include empty fields in Patch requests.
48146	ForceSendFields []string `json:"-"`
48147
48148	// NullFields is a list of field names (e.g. "Key") to include in API
48149	// requests with the JSON null value. By default, fields with empty
48150	// values are omitted from API requests. However, any field with an
48151	// empty value appearing in NullFields will be sent to the server as
48152	// null. It is an error if a field in this list has a non-empty value.
48153	// This may be used to include null fields in Patch requests.
48154	NullFields []string `json:"-"`
48155}
48156
48157func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
48158	type NoMethod VpnGatewayListWarningData
48159	raw := NoMethod(*s)
48160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48161}
48162
48163type VpnGatewayStatus struct {
48164	// VpnConnections: List of VPN connection for this VpnGateway.
48165	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
48166
48167	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
48168	// unconditionally include in API requests. By default, fields with
48169	// empty values are omitted from API requests. However, any non-pointer,
48170	// non-interface field appearing in ForceSendFields will be sent to the
48171	// server regardless of whether the field is empty or not. This may be
48172	// used to include empty fields in Patch requests.
48173	ForceSendFields []string `json:"-"`
48174
48175	// NullFields is a list of field names (e.g. "VpnConnections") to
48176	// include in API requests with the JSON null value. By default, fields
48177	// with empty values are omitted from API requests. However, any field
48178	// with an empty value appearing in NullFields will be sent to the
48179	// server as null. It is an error if a field in this list has a
48180	// non-empty value. This may be used to include null fields in Patch
48181	// requests.
48182	NullFields []string `json:"-"`
48183}
48184
48185func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
48186	type NoMethod VpnGatewayStatus
48187	raw := NoMethod(*s)
48188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48189}
48190
48191// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
48192// availability requirement state for the VPN connection between this
48193// Cloud VPN gateway and a peer gateway.
48194type VpnGatewayStatusHighAvailabilityRequirementState struct {
48195	// State: Indicates the high availability requirement state for the VPN
48196	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
48197	// CONNECTION_REDUNDANCY_NOT_MET.
48198	//
48199	// Possible values:
48200	//   "CONNECTION_REDUNDANCY_MET"
48201	//   "CONNECTION_REDUNDANCY_NOT_MET"
48202	State string `json:"state,omitempty"`
48203
48204	// UnsatisfiedReason: Indicates the reason why the VPN connection does
48205	// not meet the high availability redundancy criteria/requirement. Valid
48206	// values is INCOMPLETE_TUNNELS_COVERAGE.
48207	//
48208	// Possible values:
48209	//   "INCOMPLETE_TUNNELS_COVERAGE"
48210	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
48211
48212	// ForceSendFields is a list of field names (e.g. "State") to
48213	// unconditionally include in API requests. By default, fields with
48214	// empty values are omitted from API requests. However, any non-pointer,
48215	// non-interface field appearing in ForceSendFields will be sent to the
48216	// server regardless of whether the field is empty or not. This may be
48217	// used to include empty fields in Patch requests.
48218	ForceSendFields []string `json:"-"`
48219
48220	// NullFields is a list of field names (e.g. "State") to include in API
48221	// requests with the JSON null value. By default, fields with empty
48222	// values are omitted from API requests. However, any field with an
48223	// empty value appearing in NullFields will be sent to the server as
48224	// null. It is an error if a field in this list has a non-empty value.
48225	// This may be used to include null fields in Patch requests.
48226	NullFields []string `json:"-"`
48227}
48228
48229func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
48230	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
48231	raw := NoMethod(*s)
48232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48233}
48234
48235// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
48236type VpnGatewayStatusTunnel struct {
48237	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
48238	// associated with.
48239	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
48240
48241	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
48242	// connected to, the peer gateway could either be an external VPN
48243	// gateway or GCP VPN gateway.
48244	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
48245
48246	// TunnelUrl: URL reference to the VPN tunnel.
48247	TunnelUrl string `json:"tunnelUrl,omitempty"`
48248
48249	// ForceSendFields is a list of field names (e.g.
48250	// "LocalGatewayInterface") to unconditionally include in API requests.
48251	// By default, fields with empty values are omitted from API requests.
48252	// However, any non-pointer, non-interface field appearing in
48253	// ForceSendFields will be sent to the server regardless of whether the
48254	// field is empty or not. This may be used to include empty fields in
48255	// Patch requests.
48256	ForceSendFields []string `json:"-"`
48257
48258	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
48259	// include in API requests with the JSON null value. By default, fields
48260	// with empty values are omitted from API requests. However, any field
48261	// with an empty value appearing in NullFields will be sent to the
48262	// server as null. It is an error if a field in this list has a
48263	// non-empty value. This may be used to include null fields in Patch
48264	// requests.
48265	NullFields []string `json:"-"`
48266}
48267
48268func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
48269	type NoMethod VpnGatewayStatusTunnel
48270	raw := NoMethod(*s)
48271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48272}
48273
48274// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
48275// tunnels connected from this VpnGateway to the same peer gateway. The
48276// peer gateway could either be a external VPN gateway or GCP VPN
48277// gateway.
48278type VpnGatewayStatusVpnConnection struct {
48279	// PeerExternalGateway: URL reference to the peer external VPN gateways
48280	// to which the VPN tunnels in this VPN connection are connected. This
48281	// field is mutually exclusive with peer_gcp_gateway.
48282	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
48283
48284	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
48285	// the VPN tunnels in this VPN connection are connected. This field is
48286	// mutually exclusive with peer_gcp_gateway.
48287	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
48288
48289	// State: HighAvailabilityRequirementState for the VPN connection.
48290	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
48291
48292	// Tunnels: List of VPN tunnels that are in this VPN connection.
48293	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
48294
48295	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
48296	// to unconditionally include in API requests. By default, fields with
48297	// empty values are omitted from API requests. However, any non-pointer,
48298	// non-interface field appearing in ForceSendFields will be sent to the
48299	// server regardless of whether the field is empty or not. This may be
48300	// used to include empty fields in Patch requests.
48301	ForceSendFields []string `json:"-"`
48302
48303	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
48304	// include in API requests with the JSON null value. By default, fields
48305	// with empty values are omitted from API requests. However, any field
48306	// with an empty value appearing in NullFields will be sent to the
48307	// server as null. It is an error if a field in this list has a
48308	// non-empty value. This may be used to include null fields in Patch
48309	// requests.
48310	NullFields []string `json:"-"`
48311}
48312
48313func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
48314	type NoMethod VpnGatewayStatusVpnConnection
48315	raw := NoMethod(*s)
48316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48317}
48318
48319// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
48320type VpnGatewayVpnGatewayInterface struct {
48321	// Id: The numeric ID of this VPN gateway interface.
48322	Id int64 `json:"id,omitempty"`
48323
48324	// IpAddress: [Output Only] The external IP address for this VPN gateway
48325	// interface.
48326	IpAddress string `json:"ipAddress,omitempty"`
48327
48328	// ForceSendFields is a list of field names (e.g. "Id") to
48329	// unconditionally include in API requests. By default, fields with
48330	// empty values are omitted from API requests. However, any non-pointer,
48331	// non-interface field appearing in ForceSendFields will be sent to the
48332	// server regardless of whether the field is empty or not. This may be
48333	// used to include empty fields in Patch requests.
48334	ForceSendFields []string `json:"-"`
48335
48336	// NullFields is a list of field names (e.g. "Id") to include in API
48337	// requests with the JSON null value. By default, fields with empty
48338	// values are omitted from API requests. However, any field with an
48339	// empty value appearing in NullFields will be sent to the server as
48340	// null. It is an error if a field in this list has a non-empty value.
48341	// This may be used to include null fields in Patch requests.
48342	NullFields []string `json:"-"`
48343}
48344
48345func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
48346	type NoMethod VpnGatewayVpnGatewayInterface
48347	raw := NoMethod(*s)
48348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48349}
48350
48351type VpnGatewaysGetStatusResponse struct {
48352	Result *VpnGatewayStatus `json:"result,omitempty"`
48353
48354	// ServerResponse contains the HTTP response code and headers from the
48355	// server.
48356	googleapi.ServerResponse `json:"-"`
48357
48358	// ForceSendFields is a list of field names (e.g. "Result") to
48359	// unconditionally include in API requests. By default, fields with
48360	// empty values are omitted from API requests. However, any non-pointer,
48361	// non-interface field appearing in ForceSendFields will be sent to the
48362	// server regardless of whether the field is empty or not. This may be
48363	// used to include empty fields in Patch requests.
48364	ForceSendFields []string `json:"-"`
48365
48366	// NullFields is a list of field names (e.g. "Result") to include in API
48367	// requests with the JSON null value. By default, fields with empty
48368	// values are omitted from API requests. However, any field with an
48369	// empty value appearing in NullFields will be sent to the server as
48370	// null. It is an error if a field in this list has a non-empty value.
48371	// This may be used to include null fields in Patch requests.
48372	NullFields []string `json:"-"`
48373}
48374
48375func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
48376	type NoMethod VpnGatewaysGetStatusResponse
48377	raw := NoMethod(*s)
48378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48379}
48380
48381type VpnGatewaysScopedList struct {
48382	// VpnGateways: [Output Only] A list of VPN gateways contained in this
48383	// scope.
48384	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
48385
48386	// Warning: [Output Only] Informational warning which replaces the list
48387	// of addresses when the list is empty.
48388	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
48389
48390	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
48391	// unconditionally include in API requests. By default, fields with
48392	// empty values are omitted from API requests. However, any non-pointer,
48393	// non-interface field appearing in ForceSendFields will be sent to the
48394	// server regardless of whether the field is empty or not. This may be
48395	// used to include empty fields in Patch requests.
48396	ForceSendFields []string `json:"-"`
48397
48398	// NullFields is a list of field names (e.g. "VpnGateways") to include
48399	// in API requests with the JSON null value. By default, fields with
48400	// empty values are omitted from API requests. However, any field with
48401	// an empty value appearing in NullFields will be sent to the server as
48402	// null. It is an error if a field in this list has a non-empty value.
48403	// This may be used to include null fields in Patch requests.
48404	NullFields []string `json:"-"`
48405}
48406
48407func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
48408	type NoMethod VpnGatewaysScopedList
48409	raw := NoMethod(*s)
48410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48411}
48412
48413// VpnGatewaysScopedListWarning: [Output Only] Informational warning
48414// which replaces the list of addresses when the list is empty.
48415type VpnGatewaysScopedListWarning struct {
48416	// Code: [Output Only] A warning code, if applicable. For example,
48417	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48418	// the response.
48419	//
48420	// Possible values:
48421	//   "CLEANUP_FAILED"
48422	//   "DEPRECATED_RESOURCE_USED"
48423	//   "DEPRECATED_TYPE_USED"
48424	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48425	//   "EXPERIMENTAL_TYPE_USED"
48426	//   "EXTERNAL_API_WARNING"
48427	//   "FIELD_VALUE_OVERRIDEN"
48428	//   "INJECTED_KERNELS_DEPRECATED"
48429	//   "MISSING_TYPE_DEPENDENCY"
48430	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48431	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48432	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48433	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48434	//   "NEXT_HOP_NOT_RUNNING"
48435	//   "NOT_CRITICAL_ERROR"
48436	//   "NO_RESULTS_ON_PAGE"
48437	//   "PARTIAL_SUCCESS"
48438	//   "REQUIRED_TOS_AGREEMENT"
48439	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48440	//   "RESOURCE_NOT_DELETED"
48441	//   "SCHEMA_VALIDATION_IGNORED"
48442	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48443	//   "UNDECLARED_PROPERTIES"
48444	//   "UNREACHABLE"
48445	Code string `json:"code,omitempty"`
48446
48447	// Data: [Output Only] Metadata about this warning in key: value format.
48448	// For example:
48449	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48450	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
48451
48452	// Message: [Output Only] A human-readable description of the warning
48453	// code.
48454	Message string `json:"message,omitempty"`
48455
48456	// ForceSendFields is a list of field names (e.g. "Code") to
48457	// unconditionally include in API requests. By default, fields with
48458	// empty values are omitted from API requests. However, any non-pointer,
48459	// non-interface field appearing in ForceSendFields will be sent to the
48460	// server regardless of whether the field is empty or not. This may be
48461	// used to include empty fields in Patch requests.
48462	ForceSendFields []string `json:"-"`
48463
48464	// NullFields is a list of field names (e.g. "Code") to include in API
48465	// requests with the JSON null value. By default, fields with empty
48466	// values are omitted from API requests. However, any field with an
48467	// empty value appearing in NullFields will be sent to the server as
48468	// null. It is an error if a field in this list has a non-empty value.
48469	// This may be used to include null fields in Patch requests.
48470	NullFields []string `json:"-"`
48471}
48472
48473func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
48474	type NoMethod VpnGatewaysScopedListWarning
48475	raw := NoMethod(*s)
48476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48477}
48478
48479type VpnGatewaysScopedListWarningData struct {
48480	// Key: [Output Only] A key that provides more detail on the warning
48481	// being returned. For example, for warnings where there are no results
48482	// in a list request for a particular zone, this key might be scope and
48483	// the key value might be the zone name. Other examples might be a key
48484	// indicating a deprecated resource and a suggested replacement, or a
48485	// warning about invalid network settings (for example, if an instance
48486	// attempts to perform IP forwarding but is not enabled for IP
48487	// forwarding).
48488	Key string `json:"key,omitempty"`
48489
48490	// Value: [Output Only] A warning data value corresponding to the key.
48491	Value string `json:"value,omitempty"`
48492
48493	// ForceSendFields is a list of field names (e.g. "Key") to
48494	// unconditionally include in API requests. By default, fields with
48495	// empty values are omitted from API requests. However, any non-pointer,
48496	// non-interface field appearing in ForceSendFields will be sent to the
48497	// server regardless of whether the field is empty or not. This may be
48498	// used to include empty fields in Patch requests.
48499	ForceSendFields []string `json:"-"`
48500
48501	// NullFields is a list of field names (e.g. "Key") to include in API
48502	// requests with the JSON null value. By default, fields with empty
48503	// values are omitted from API requests. However, any field with an
48504	// empty value appearing in NullFields will be sent to the server as
48505	// null. It is an error if a field in this list has a non-empty value.
48506	// This may be used to include null fields in Patch requests.
48507	NullFields []string `json:"-"`
48508}
48509
48510func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
48511	type NoMethod VpnGatewaysScopedListWarningData
48512	raw := NoMethod(*s)
48513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48514}
48515
48516// VpnTunnel: Represents a Cloud VPN Tunnel resource.
48517//
48518// For more information about VPN, read the the Cloud VPN Overview. (==
48519// resource_for {$api_version}.vpnTunnels ==)
48520type VpnTunnel struct {
48521	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
48522	// format.
48523	CreationTimestamp string `json:"creationTimestamp,omitempty"`
48524
48525	// Description: An optional description of this resource. Provide this
48526	// property when you create the resource.
48527	Description string `json:"description,omitempty"`
48528
48529	// DetailedStatus: [Output Only] Detailed status message for the VPN
48530	// tunnel.
48531	DetailedStatus string `json:"detailedStatus,omitempty"`
48532
48533	// Id: [Output Only] The unique identifier for the resource. This
48534	// identifier is defined by the server.
48535	Id uint64 `json:"id,omitempty,string"`
48536
48537	// IkeVersion: IKE protocol version to use when establishing the VPN
48538	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
48539	// The default version is 2.
48540	IkeVersion int64 `json:"ikeVersion,omitempty"`
48541
48542	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
48543	// VPN tunnels.
48544	Kind string `json:"kind,omitempty"`
48545
48546	// LabelFingerprint: A fingerprint for the labels being applied to this
48547	// VpnTunnel, which is essentially a hash of the labels set used for
48548	// optimistic locking. The fingerprint is initially generated by Compute
48549	// Engine and changes after every request to modify or update labels.
48550	// You must always provide an up-to-date fingerprint hash in order to
48551	// update or change labels, otherwise the request will fail with error
48552	// 412 conditionNotMet.
48553	//
48554	// To see the latest fingerprint, make a get() request to retrieve a
48555	// VpnTunnel.
48556	LabelFingerprint string `json:"labelFingerprint,omitempty"`
48557
48558	// Labels: Labels for this resource. These can only be added or modified
48559	// by the setLabels method. Each label key/value pair must comply with
48560	// RFC1035. Label values may be empty.
48561	Labels map[string]string `json:"labels,omitempty"`
48562
48563	// LocalTrafficSelector: Local traffic selector to use when establishing
48564	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
48565	// formatted string, for example: 192.168.0.0/16. The ranges must be
48566	// disjoint. Only IPv4 is supported.
48567	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
48568
48569	// Name: Name of the resource. Provided by the client when the resource
48570	// is created. The name must be 1-63 characters long, and comply with
48571	// RFC1035. Specifically, the name must be 1-63 characters long and
48572	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
48573	// the first character must be a lowercase letter, and all following
48574	// characters must be a dash, lowercase letter, or digit, except the
48575	// last character, which cannot be a dash.
48576	Name string `json:"name,omitempty"`
48577
48578	// PeerExternalGateway: URL of the peer side external VPN gateway to
48579	// which this VPN tunnel is connected. Provided by the client when the
48580	// VPN tunnel is created. This field is exclusive with the field
48581	// peerGcpGateway.
48582	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
48583
48584	// PeerExternalGatewayInterface: The interface ID of the external VPN
48585	// gateway to which this VPN tunnel is connected. Provided by the client
48586	// when the VPN tunnel is created.
48587	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
48588
48589	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
48590	// VPN tunnel is connected. Provided by the client when the VPN tunnel
48591	// is created. This field can be used when creating highly available VPN
48592	// from VPC network to VPC network, the field is exclusive with the
48593	// field peerExternalGateway. If provided, the VPN tunnel will
48594	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
48595	// gateway.
48596	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
48597
48598	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
48599	PeerIp string `json:"peerIp,omitempty"`
48600
48601	// Region: [Output Only] URL of the region where the VPN tunnel resides.
48602	// You must specify this field as part of the HTTP request URL. It is
48603	// not settable as a field in the request body.
48604	Region string `json:"region,omitempty"`
48605
48606	// RemoteTrafficSelector: Remote traffic selectors to use when
48607	// establishing the VPN tunnel with the peer VPN gateway. The value
48608	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
48609	// ranges should be disjoint. Only IPv4 is supported.
48610	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
48611
48612	// Router: URL of the router resource to be used for dynamic routing.
48613	Router string `json:"router,omitempty"`
48614
48615	// SelfLink: [Output Only] Server-defined URL for the resource.
48616	SelfLink string `json:"selfLink,omitempty"`
48617
48618	// SharedSecret: Shared secret used to set the secure session between
48619	// the Cloud VPN gateway and the peer VPN gateway.
48620	SharedSecret string `json:"sharedSecret,omitempty"`
48621
48622	// SharedSecretHash: Hash of the shared secret.
48623	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
48624
48625	// Status: [Output Only] The status of the VPN tunnel, which can be one
48626	// of the following:
48627	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
48628	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
48629	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
48630	// and Route resources are needed to setup the VPN tunnel.
48631	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
48632	// - ESTABLISHED: Secure session is successfully established with the
48633	// peer VPN.
48634	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
48635	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
48636	//
48637	// - NEGOTIATION_FAILURE: Handshake failed.
48638	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
48639	//
48640	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
48641	// be used.
48642	// - NO_INCOMING_PACKETS: No incoming packets from peer.
48643	// - REJECTED: Tunnel configuration was rejected, can be result of being
48644	// blacklisted.
48645	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
48646	// required resources.
48647	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
48648	// deleted for Classic VPN tunnels or the project is in frozen state.
48649	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
48650	// probably behind NAT.
48651	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
48652	// for an HA-VPN tunnel.
48653	//
48654	// Possible values:
48655	//   "ALLOCATING_RESOURCES"
48656	//   "AUTHORIZATION_ERROR"
48657	//   "DEPROVISIONING"
48658	//   "ESTABLISHED"
48659	//   "FAILED"
48660	//   "FIRST_HANDSHAKE"
48661	//   "NEGOTIATION_FAILURE"
48662	//   "NETWORK_ERROR"
48663	//   "NO_INCOMING_PACKETS"
48664	//   "PROVISIONING"
48665	//   "REJECTED"
48666	//   "STOPPED"
48667	//   "WAITING_FOR_FULL_CONFIG"
48668	Status string `json:"status,omitempty"`
48669
48670	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
48671	// tunnel is associated. Provided by the client when the VPN tunnel is
48672	// created.
48673	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
48674
48675	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
48676	// associated. Provided by the client when the VPN tunnel is created.
48677	// This must be used (instead of target_vpn_gateway) if a High
48678	// Availability VPN gateway resource is created.
48679	VpnGateway string `json:"vpnGateway,omitempty"`
48680
48681	// VpnGatewayInterface: The interface ID of the VPN gateway with which
48682	// this VPN tunnel is associated.
48683	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
48684
48685	// ServerResponse contains the HTTP response code and headers from the
48686	// server.
48687	googleapi.ServerResponse `json:"-"`
48688
48689	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
48690	// to unconditionally include in API requests. By default, fields with
48691	// empty values are omitted from API requests. However, any non-pointer,
48692	// non-interface field appearing in ForceSendFields will be sent to the
48693	// server regardless of whether the field is empty or not. This may be
48694	// used to include empty fields in Patch requests.
48695	ForceSendFields []string `json:"-"`
48696
48697	// NullFields is a list of field names (e.g. "CreationTimestamp") to
48698	// include in API requests with the JSON null value. By default, fields
48699	// with empty values are omitted from API requests. However, any field
48700	// with an empty value appearing in NullFields will be sent to the
48701	// server as null. It is an error if a field in this list has a
48702	// non-empty value. This may be used to include null fields in Patch
48703	// requests.
48704	NullFields []string `json:"-"`
48705}
48706
48707func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
48708	type NoMethod VpnTunnel
48709	raw := NoMethod(*s)
48710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48711}
48712
48713type VpnTunnelAggregatedList struct {
48714	// Id: [Output Only] Unique identifier for the resource; defined by the
48715	// server.
48716	Id string `json:"id,omitempty"`
48717
48718	// Items: A list of VpnTunnelsScopedList resources.
48719	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
48720
48721	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
48722	// VPN tunnels.
48723	Kind string `json:"kind,omitempty"`
48724
48725	// NextPageToken: [Output Only] This token allows you to get the next
48726	// page of results for list requests. If the number of results is larger
48727	// than maxResults, use the nextPageToken as a value for the query
48728	// parameter pageToken in the next list request. Subsequent list
48729	// requests will have their own nextPageToken to continue paging through
48730	// the results.
48731	NextPageToken string `json:"nextPageToken,omitempty"`
48732
48733	// SelfLink: [Output Only] Server-defined URL for this resource.
48734	SelfLink string `json:"selfLink,omitempty"`
48735
48736	// Unreachables: [Output Only] Unreachable resources.
48737	Unreachables []string `json:"unreachables,omitempty"`
48738
48739	// Warning: [Output Only] Informational warning message.
48740	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
48741
48742	// ServerResponse contains the HTTP response code and headers from the
48743	// server.
48744	googleapi.ServerResponse `json:"-"`
48745
48746	// ForceSendFields is a list of field names (e.g. "Id") to
48747	// unconditionally include in API requests. By default, fields with
48748	// empty values are omitted from API requests. However, any non-pointer,
48749	// non-interface field appearing in ForceSendFields will be sent to the
48750	// server regardless of whether the field is empty or not. This may be
48751	// used to include empty fields in Patch requests.
48752	ForceSendFields []string `json:"-"`
48753
48754	// NullFields is a list of field names (e.g. "Id") to include in API
48755	// requests with the JSON null value. By default, fields with empty
48756	// values are omitted from API requests. However, any field with an
48757	// empty value appearing in NullFields will be sent to the server as
48758	// null. It is an error if a field in this list has a non-empty value.
48759	// This may be used to include null fields in Patch requests.
48760	NullFields []string `json:"-"`
48761}
48762
48763func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
48764	type NoMethod VpnTunnelAggregatedList
48765	raw := NoMethod(*s)
48766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48767}
48768
48769// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
48770// message.
48771type VpnTunnelAggregatedListWarning struct {
48772	// Code: [Output Only] A warning code, if applicable. For example,
48773	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48774	// the response.
48775	//
48776	// Possible values:
48777	//   "CLEANUP_FAILED"
48778	//   "DEPRECATED_RESOURCE_USED"
48779	//   "DEPRECATED_TYPE_USED"
48780	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48781	//   "EXPERIMENTAL_TYPE_USED"
48782	//   "EXTERNAL_API_WARNING"
48783	//   "FIELD_VALUE_OVERRIDEN"
48784	//   "INJECTED_KERNELS_DEPRECATED"
48785	//   "MISSING_TYPE_DEPENDENCY"
48786	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48787	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48788	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48789	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48790	//   "NEXT_HOP_NOT_RUNNING"
48791	//   "NOT_CRITICAL_ERROR"
48792	//   "NO_RESULTS_ON_PAGE"
48793	//   "PARTIAL_SUCCESS"
48794	//   "REQUIRED_TOS_AGREEMENT"
48795	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48796	//   "RESOURCE_NOT_DELETED"
48797	//   "SCHEMA_VALIDATION_IGNORED"
48798	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48799	//   "UNDECLARED_PROPERTIES"
48800	//   "UNREACHABLE"
48801	Code string `json:"code,omitempty"`
48802
48803	// Data: [Output Only] Metadata about this warning in key: value format.
48804	// For example:
48805	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48806	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
48807
48808	// Message: [Output Only] A human-readable description of the warning
48809	// code.
48810	Message string `json:"message,omitempty"`
48811
48812	// ForceSendFields is a list of field names (e.g. "Code") to
48813	// unconditionally include in API requests. By default, fields with
48814	// empty values are omitted from API requests. However, any non-pointer,
48815	// non-interface field appearing in ForceSendFields will be sent to the
48816	// server regardless of whether the field is empty or not. This may be
48817	// used to include empty fields in Patch requests.
48818	ForceSendFields []string `json:"-"`
48819
48820	// NullFields is a list of field names (e.g. "Code") to include in API
48821	// requests with the JSON null value. By default, fields with empty
48822	// values are omitted from API requests. However, any field with an
48823	// empty value appearing in NullFields will be sent to the server as
48824	// null. It is an error if a field in this list has a non-empty value.
48825	// This may be used to include null fields in Patch requests.
48826	NullFields []string `json:"-"`
48827}
48828
48829func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
48830	type NoMethod VpnTunnelAggregatedListWarning
48831	raw := NoMethod(*s)
48832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48833}
48834
48835type VpnTunnelAggregatedListWarningData struct {
48836	// Key: [Output Only] A key that provides more detail on the warning
48837	// being returned. For example, for warnings where there are no results
48838	// in a list request for a particular zone, this key might be scope and
48839	// the key value might be the zone name. Other examples might be a key
48840	// indicating a deprecated resource and a suggested replacement, or a
48841	// warning about invalid network settings (for example, if an instance
48842	// attempts to perform IP forwarding but is not enabled for IP
48843	// forwarding).
48844	Key string `json:"key,omitempty"`
48845
48846	// Value: [Output Only] A warning data value corresponding to the key.
48847	Value string `json:"value,omitempty"`
48848
48849	// ForceSendFields is a list of field names (e.g. "Key") to
48850	// unconditionally include in API requests. By default, fields with
48851	// empty values are omitted from API requests. However, any non-pointer,
48852	// non-interface field appearing in ForceSendFields will be sent to the
48853	// server regardless of whether the field is empty or not. This may be
48854	// used to include empty fields in Patch requests.
48855	ForceSendFields []string `json:"-"`
48856
48857	// NullFields is a list of field names (e.g. "Key") to include in API
48858	// requests with the JSON null value. By default, fields with empty
48859	// values are omitted from API requests. However, any field with an
48860	// empty value appearing in NullFields will be sent to the server as
48861	// null. It is an error if a field in this list has a non-empty value.
48862	// This may be used to include null fields in Patch requests.
48863	NullFields []string `json:"-"`
48864}
48865
48866func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48867	type NoMethod VpnTunnelAggregatedListWarningData
48868	raw := NoMethod(*s)
48869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48870}
48871
48872// VpnTunnelList: Contains a list of VpnTunnel resources.
48873type VpnTunnelList struct {
48874	// Id: [Output Only] Unique identifier for the resource; defined by the
48875	// server.
48876	Id string `json:"id,omitempty"`
48877
48878	// Items: A list of VpnTunnel resources.
48879	Items []*VpnTunnel `json:"items,omitempty"`
48880
48881	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
48882	// VPN tunnels.
48883	Kind string `json:"kind,omitempty"`
48884
48885	// NextPageToken: [Output Only] This token allows you to get the next
48886	// page of results for list requests. If the number of results is larger
48887	// than maxResults, use the nextPageToken as a value for the query
48888	// parameter pageToken in the next list request. Subsequent list
48889	// requests will have their own nextPageToken to continue paging through
48890	// the results.
48891	NextPageToken string `json:"nextPageToken,omitempty"`
48892
48893	// SelfLink: [Output Only] Server-defined URL for this resource.
48894	SelfLink string `json:"selfLink,omitempty"`
48895
48896	// Warning: [Output Only] Informational warning message.
48897	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
48898
48899	// ServerResponse contains the HTTP response code and headers from the
48900	// server.
48901	googleapi.ServerResponse `json:"-"`
48902
48903	// ForceSendFields is a list of field names (e.g. "Id") to
48904	// unconditionally include in API requests. By default, fields with
48905	// empty values are omitted from API requests. However, any non-pointer,
48906	// non-interface field appearing in ForceSendFields will be sent to the
48907	// server regardless of whether the field is empty or not. This may be
48908	// used to include empty fields in Patch requests.
48909	ForceSendFields []string `json:"-"`
48910
48911	// NullFields is a list of field names (e.g. "Id") to include in API
48912	// requests with the JSON null value. By default, fields with empty
48913	// values are omitted from API requests. However, any field with an
48914	// empty value appearing in NullFields will be sent to the server as
48915	// null. It is an error if a field in this list has a non-empty value.
48916	// This may be used to include null fields in Patch requests.
48917	NullFields []string `json:"-"`
48918}
48919
48920func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
48921	type NoMethod VpnTunnelList
48922	raw := NoMethod(*s)
48923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48924}
48925
48926// VpnTunnelListWarning: [Output Only] Informational warning message.
48927type VpnTunnelListWarning struct {
48928	// Code: [Output Only] A warning code, if applicable. For example,
48929	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48930	// the response.
48931	//
48932	// Possible values:
48933	//   "CLEANUP_FAILED"
48934	//   "DEPRECATED_RESOURCE_USED"
48935	//   "DEPRECATED_TYPE_USED"
48936	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48937	//   "EXPERIMENTAL_TYPE_USED"
48938	//   "EXTERNAL_API_WARNING"
48939	//   "FIELD_VALUE_OVERRIDEN"
48940	//   "INJECTED_KERNELS_DEPRECATED"
48941	//   "MISSING_TYPE_DEPENDENCY"
48942	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48943	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48944	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48945	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48946	//   "NEXT_HOP_NOT_RUNNING"
48947	//   "NOT_CRITICAL_ERROR"
48948	//   "NO_RESULTS_ON_PAGE"
48949	//   "PARTIAL_SUCCESS"
48950	//   "REQUIRED_TOS_AGREEMENT"
48951	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48952	//   "RESOURCE_NOT_DELETED"
48953	//   "SCHEMA_VALIDATION_IGNORED"
48954	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48955	//   "UNDECLARED_PROPERTIES"
48956	//   "UNREACHABLE"
48957	Code string `json:"code,omitempty"`
48958
48959	// Data: [Output Only] Metadata about this warning in key: value format.
48960	// For example:
48961	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48962	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
48963
48964	// Message: [Output Only] A human-readable description of the warning
48965	// code.
48966	Message string `json:"message,omitempty"`
48967
48968	// ForceSendFields is a list of field names (e.g. "Code") to
48969	// unconditionally include in API requests. By default, fields with
48970	// empty values are omitted from API requests. However, any non-pointer,
48971	// non-interface field appearing in ForceSendFields will be sent to the
48972	// server regardless of whether the field is empty or not. This may be
48973	// used to include empty fields in Patch requests.
48974	ForceSendFields []string `json:"-"`
48975
48976	// NullFields is a list of field names (e.g. "Code") to include in API
48977	// requests with the JSON null value. By default, fields with empty
48978	// values are omitted from API requests. However, any field with an
48979	// empty value appearing in NullFields will be sent to the server as
48980	// null. It is an error if a field in this list has a non-empty value.
48981	// This may be used to include null fields in Patch requests.
48982	NullFields []string `json:"-"`
48983}
48984
48985func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
48986	type NoMethod VpnTunnelListWarning
48987	raw := NoMethod(*s)
48988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48989}
48990
48991type VpnTunnelListWarningData struct {
48992	// Key: [Output Only] A key that provides more detail on the warning
48993	// being returned. For example, for warnings where there are no results
48994	// in a list request for a particular zone, this key might be scope and
48995	// the key value might be the zone name. Other examples might be a key
48996	// indicating a deprecated resource and a suggested replacement, or a
48997	// warning about invalid network settings (for example, if an instance
48998	// attempts to perform IP forwarding but is not enabled for IP
48999	// forwarding).
49000	Key string `json:"key,omitempty"`
49001
49002	// Value: [Output Only] A warning data value corresponding to the key.
49003	Value string `json:"value,omitempty"`
49004
49005	// ForceSendFields is a list of field names (e.g. "Key") to
49006	// unconditionally include in API requests. By default, fields with
49007	// empty values are omitted from API requests. However, any non-pointer,
49008	// non-interface field appearing in ForceSendFields will be sent to the
49009	// server regardless of whether the field is empty or not. This may be
49010	// used to include empty fields in Patch requests.
49011	ForceSendFields []string `json:"-"`
49012
49013	// NullFields is a list of field names (e.g. "Key") to include in API
49014	// requests with the JSON null value. By default, fields with empty
49015	// values are omitted from API requests. However, any field with an
49016	// empty value appearing in NullFields will be sent to the server as
49017	// null. It is an error if a field in this list has a non-empty value.
49018	// This may be used to include null fields in Patch requests.
49019	NullFields []string `json:"-"`
49020}
49021
49022func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
49023	type NoMethod VpnTunnelListWarningData
49024	raw := NoMethod(*s)
49025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49026}
49027
49028type VpnTunnelsScopedList struct {
49029	// VpnTunnels: A list of VPN tunnels contained in this scope.
49030	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
49031
49032	// Warning: Informational warning which replaces the list of addresses
49033	// when the list is empty.
49034	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
49035
49036	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
49037	// unconditionally include in API requests. By default, fields with
49038	// empty values are omitted from API requests. However, any non-pointer,
49039	// non-interface field appearing in ForceSendFields will be sent to the
49040	// server regardless of whether the field is empty or not. This may be
49041	// used to include empty fields in Patch requests.
49042	ForceSendFields []string `json:"-"`
49043
49044	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
49045	// API requests with the JSON null value. By default, fields with empty
49046	// values are omitted from API requests. However, any field with an
49047	// empty value appearing in NullFields will be sent to the server as
49048	// null. It is an error if a field in this list has a non-empty value.
49049	// This may be used to include null fields in Patch requests.
49050	NullFields []string `json:"-"`
49051}
49052
49053func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
49054	type NoMethod VpnTunnelsScopedList
49055	raw := NoMethod(*s)
49056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49057}
49058
49059// VpnTunnelsScopedListWarning: Informational warning which replaces the
49060// list of addresses when the list is empty.
49061type VpnTunnelsScopedListWarning struct {
49062	// Code: [Output Only] A warning code, if applicable. For example,
49063	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49064	// the response.
49065	//
49066	// Possible values:
49067	//   "CLEANUP_FAILED"
49068	//   "DEPRECATED_RESOURCE_USED"
49069	//   "DEPRECATED_TYPE_USED"
49070	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49071	//   "EXPERIMENTAL_TYPE_USED"
49072	//   "EXTERNAL_API_WARNING"
49073	//   "FIELD_VALUE_OVERRIDEN"
49074	//   "INJECTED_KERNELS_DEPRECATED"
49075	//   "MISSING_TYPE_DEPENDENCY"
49076	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49077	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49078	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49079	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49080	//   "NEXT_HOP_NOT_RUNNING"
49081	//   "NOT_CRITICAL_ERROR"
49082	//   "NO_RESULTS_ON_PAGE"
49083	//   "PARTIAL_SUCCESS"
49084	//   "REQUIRED_TOS_AGREEMENT"
49085	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49086	//   "RESOURCE_NOT_DELETED"
49087	//   "SCHEMA_VALIDATION_IGNORED"
49088	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49089	//   "UNDECLARED_PROPERTIES"
49090	//   "UNREACHABLE"
49091	Code string `json:"code,omitempty"`
49092
49093	// Data: [Output Only] Metadata about this warning in key: value format.
49094	// For example:
49095	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49096	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
49097
49098	// Message: [Output Only] A human-readable description of the warning
49099	// code.
49100	Message string `json:"message,omitempty"`
49101
49102	// ForceSendFields is a list of field names (e.g. "Code") to
49103	// unconditionally include in API requests. By default, fields with
49104	// empty values are omitted from API requests. However, any non-pointer,
49105	// non-interface field appearing in ForceSendFields will be sent to the
49106	// server regardless of whether the field is empty or not. This may be
49107	// used to include empty fields in Patch requests.
49108	ForceSendFields []string `json:"-"`
49109
49110	// NullFields is a list of field names (e.g. "Code") to include in API
49111	// requests with the JSON null value. By default, fields with empty
49112	// values are omitted from API requests. However, any field with an
49113	// empty value appearing in NullFields will be sent to the server as
49114	// null. It is an error if a field in this list has a non-empty value.
49115	// This may be used to include null fields in Patch requests.
49116	NullFields []string `json:"-"`
49117}
49118
49119func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
49120	type NoMethod VpnTunnelsScopedListWarning
49121	raw := NoMethod(*s)
49122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49123}
49124
49125type VpnTunnelsScopedListWarningData struct {
49126	// Key: [Output Only] A key that provides more detail on the warning
49127	// being returned. For example, for warnings where there are no results
49128	// in a list request for a particular zone, this key might be scope and
49129	// the key value might be the zone name. Other examples might be a key
49130	// indicating a deprecated resource and a suggested replacement, or a
49131	// warning about invalid network settings (for example, if an instance
49132	// attempts to perform IP forwarding but is not enabled for IP
49133	// forwarding).
49134	Key string `json:"key,omitempty"`
49135
49136	// Value: [Output Only] A warning data value corresponding to the key.
49137	Value string `json:"value,omitempty"`
49138
49139	// ForceSendFields is a list of field names (e.g. "Key") to
49140	// unconditionally include in API requests. By default, fields with
49141	// empty values are omitted from API requests. However, any non-pointer,
49142	// non-interface field appearing in ForceSendFields will be sent to the
49143	// server regardless of whether the field is empty or not. This may be
49144	// used to include empty fields in Patch requests.
49145	ForceSendFields []string `json:"-"`
49146
49147	// NullFields is a list of field names (e.g. "Key") to include in API
49148	// requests with the JSON null value. By default, fields with empty
49149	// values are omitted from API requests. However, any field with an
49150	// empty value appearing in NullFields will be sent to the server as
49151	// null. It is an error if a field in this list has a non-empty value.
49152	// This may be used to include null fields in Patch requests.
49153	NullFields []string `json:"-"`
49154}
49155
49156func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
49157	type NoMethod VpnTunnelsScopedListWarningData
49158	raw := NoMethod(*s)
49159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49160}
49161
49162type WafExpressionSet struct {
49163	// Aliases: A list of alternate IDs. The format should be: - E.g.
49164	// XSS-stable Generic suffix like "stable" is particularly useful if a
49165	// policy likes to avail newer set of expressions without having to
49166	// change the policy. A given alias name can't be used for more than one
49167	// entity set.
49168	Aliases []string `json:"aliases,omitempty"`
49169
49170	// Expressions: List of available expressions.
49171	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
49172
49173	// Id: Google specified expression set ID. The format should be: - E.g.
49174	// XSS-20170329
49175	Id string `json:"id,omitempty"`
49176
49177	// ForceSendFields is a list of field names (e.g. "Aliases") to
49178	// unconditionally include in API requests. By default, fields with
49179	// empty values are omitted from API requests. However, any non-pointer,
49180	// non-interface field appearing in ForceSendFields will be sent to the
49181	// server regardless of whether the field is empty or not. This may be
49182	// used to include empty fields in Patch requests.
49183	ForceSendFields []string `json:"-"`
49184
49185	// NullFields is a list of field names (e.g. "Aliases") to include in
49186	// API requests with the JSON null value. By default, fields with empty
49187	// values are omitted from API requests. However, any field with an
49188	// empty value appearing in NullFields will be sent to the server as
49189	// null. It is an error if a field in this list has a non-empty value.
49190	// This may be used to include null fields in Patch requests.
49191	NullFields []string `json:"-"`
49192}
49193
49194func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
49195	type NoMethod WafExpressionSet
49196	raw := NoMethod(*s)
49197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49198}
49199
49200type WafExpressionSetExpression struct {
49201	// Id: Expression ID should uniquely identify the origin of the
49202	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
49203	// rule set version 2.9.1 rule id 973337. The ID could be used to
49204	// determine the individual attack definition that has been detected. It
49205	// could also be used to exclude it from the policy in case of false
49206	// positive.
49207	Id string `json:"id,omitempty"`
49208
49209	// ForceSendFields is a list of field names (e.g. "Id") to
49210	// unconditionally include in API requests. By default, fields with
49211	// empty values are omitted from API requests. However, any non-pointer,
49212	// non-interface field appearing in ForceSendFields will be sent to the
49213	// server regardless of whether the field is empty or not. This may be
49214	// used to include empty fields in Patch requests.
49215	ForceSendFields []string `json:"-"`
49216
49217	// NullFields is a list of field names (e.g. "Id") to include in API
49218	// requests with the JSON null value. By default, fields with empty
49219	// values are omitted from API requests. However, any field with an
49220	// empty value appearing in NullFields will be sent to the server as
49221	// null. It is an error if a field in this list has a non-empty value.
49222	// This may be used to include null fields in Patch requests.
49223	NullFields []string `json:"-"`
49224}
49225
49226func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
49227	type NoMethod WafExpressionSetExpression
49228	raw := NoMethod(*s)
49229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49230}
49231
49232// WeightedBackendService: In contrast to a single BackendService in
49233// HttpRouteAction to which all matching traffic is directed to,
49234// WeightedBackendService allows traffic to be split across multiple
49235// BackendServices. The volume of traffic for each BackendService is
49236// proportional to the weight specified in each WeightedBackendService
49237type WeightedBackendService struct {
49238	// BackendService: The full or partial URL to the default BackendService
49239	// resource. Before forwarding the request to backendService, the
49240	// loadbalancer applies any relevant headerActions specified as part of
49241	// this backendServiceWeight.
49242	BackendService string `json:"backendService,omitempty"`
49243
49244	// HeaderAction: Specifies changes to request and response headers that
49245	// need to take effect for the selected backendService.
49246	// headerAction specified here take effect before headerAction in the
49247	// enclosing HttpRouteRule, PathMatcher and UrlMap.
49248	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
49249
49250	// Weight: Specifies the fraction of traffic sent to backendService,
49251	// computed as weight / (sum of all weightedBackendService weights in
49252	// routeAction) .
49253	// The selection of a backend service is determined only for new
49254	// traffic. Once a user's request has been directed to a backendService,
49255	// subsequent requests will be sent to the same backendService as
49256	// determined by the BackendService's session affinity policy.
49257	// The value must be between 0 and 1000
49258	Weight int64 `json:"weight,omitempty"`
49259
49260	// ForceSendFields is a list of field names (e.g. "BackendService") to
49261	// unconditionally include in API requests. By default, fields with
49262	// empty values are omitted from API requests. However, any non-pointer,
49263	// non-interface field appearing in ForceSendFields will be sent to the
49264	// server regardless of whether the field is empty or not. This may be
49265	// used to include empty fields in Patch requests.
49266	ForceSendFields []string `json:"-"`
49267
49268	// NullFields is a list of field names (e.g. "BackendService") to
49269	// include in API requests with the JSON null value. By default, fields
49270	// with empty values are omitted from API requests. However, any field
49271	// with an empty value appearing in NullFields will be sent to the
49272	// server as null. It is an error if a field in this list has a
49273	// non-empty value. This may be used to include null fields in Patch
49274	// requests.
49275	NullFields []string `json:"-"`
49276}
49277
49278func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
49279	type NoMethod WeightedBackendService
49280	raw := NoMethod(*s)
49281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49282}
49283
49284type XpnHostList struct {
49285	// Id: [Output Only] Unique identifier for the resource; defined by the
49286	// server.
49287	Id string `json:"id,omitempty"`
49288
49289	// Items: [Output Only] A list of shared VPC host project URLs.
49290	Items []*Project `json:"items,omitempty"`
49291
49292	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
49293	// lists of shared VPC hosts.
49294	Kind string `json:"kind,omitempty"`
49295
49296	// NextPageToken: [Output Only] This token allows you to get the next
49297	// page of results for list requests. If the number of results is larger
49298	// than maxResults, use the nextPageToken as a value for the query
49299	// parameter pageToken in the next list request. Subsequent list
49300	// requests will have their own nextPageToken to continue paging through
49301	// the results.
49302	NextPageToken string `json:"nextPageToken,omitempty"`
49303
49304	// SelfLink: [Output Only] Server-defined URL for this resource.
49305	SelfLink string `json:"selfLink,omitempty"`
49306
49307	// Warning: [Output Only] Informational warning message.
49308	Warning *XpnHostListWarning `json:"warning,omitempty"`
49309
49310	// ServerResponse contains the HTTP response code and headers from the
49311	// server.
49312	googleapi.ServerResponse `json:"-"`
49313
49314	// ForceSendFields is a list of field names (e.g. "Id") to
49315	// unconditionally include in API requests. By default, fields with
49316	// empty values are omitted from API requests. However, any non-pointer,
49317	// non-interface field appearing in ForceSendFields will be sent to the
49318	// server regardless of whether the field is empty or not. This may be
49319	// used to include empty fields in Patch requests.
49320	ForceSendFields []string `json:"-"`
49321
49322	// NullFields is a list of field names (e.g. "Id") to include in API
49323	// requests with the JSON null value. By default, fields with empty
49324	// values are omitted from API requests. However, any field with an
49325	// empty value appearing in NullFields will be sent to the server as
49326	// null. It is an error if a field in this list has a non-empty value.
49327	// This may be used to include null fields in Patch requests.
49328	NullFields []string `json:"-"`
49329}
49330
49331func (s *XpnHostList) MarshalJSON() ([]byte, error) {
49332	type NoMethod XpnHostList
49333	raw := NoMethod(*s)
49334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49335}
49336
49337// XpnHostListWarning: [Output Only] Informational warning message.
49338type XpnHostListWarning struct {
49339	// Code: [Output Only] A warning code, if applicable. For example,
49340	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49341	// the response.
49342	//
49343	// Possible values:
49344	//   "CLEANUP_FAILED"
49345	//   "DEPRECATED_RESOURCE_USED"
49346	//   "DEPRECATED_TYPE_USED"
49347	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49348	//   "EXPERIMENTAL_TYPE_USED"
49349	//   "EXTERNAL_API_WARNING"
49350	//   "FIELD_VALUE_OVERRIDEN"
49351	//   "INJECTED_KERNELS_DEPRECATED"
49352	//   "MISSING_TYPE_DEPENDENCY"
49353	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49354	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49355	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49356	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49357	//   "NEXT_HOP_NOT_RUNNING"
49358	//   "NOT_CRITICAL_ERROR"
49359	//   "NO_RESULTS_ON_PAGE"
49360	//   "PARTIAL_SUCCESS"
49361	//   "REQUIRED_TOS_AGREEMENT"
49362	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49363	//   "RESOURCE_NOT_DELETED"
49364	//   "SCHEMA_VALIDATION_IGNORED"
49365	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49366	//   "UNDECLARED_PROPERTIES"
49367	//   "UNREACHABLE"
49368	Code string `json:"code,omitempty"`
49369
49370	// Data: [Output Only] Metadata about this warning in key: value format.
49371	// For example:
49372	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49373	Data []*XpnHostListWarningData `json:"data,omitempty"`
49374
49375	// Message: [Output Only] A human-readable description of the warning
49376	// code.
49377	Message string `json:"message,omitempty"`
49378
49379	// ForceSendFields is a list of field names (e.g. "Code") to
49380	// unconditionally include in API requests. By default, fields with
49381	// empty values are omitted from API requests. However, any non-pointer,
49382	// non-interface field appearing in ForceSendFields will be sent to the
49383	// server regardless of whether the field is empty or not. This may be
49384	// used to include empty fields in Patch requests.
49385	ForceSendFields []string `json:"-"`
49386
49387	// NullFields is a list of field names (e.g. "Code") to include in API
49388	// requests with the JSON null value. By default, fields with empty
49389	// values are omitted from API requests. However, any field with an
49390	// empty value appearing in NullFields will be sent to the server as
49391	// null. It is an error if a field in this list has a non-empty value.
49392	// This may be used to include null fields in Patch requests.
49393	NullFields []string `json:"-"`
49394}
49395
49396func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
49397	type NoMethod XpnHostListWarning
49398	raw := NoMethod(*s)
49399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49400}
49401
49402type XpnHostListWarningData struct {
49403	// Key: [Output Only] A key that provides more detail on the warning
49404	// being returned. For example, for warnings where there are no results
49405	// in a list request for a particular zone, this key might be scope and
49406	// the key value might be the zone name. Other examples might be a key
49407	// indicating a deprecated resource and a suggested replacement, or a
49408	// warning about invalid network settings (for example, if an instance
49409	// attempts to perform IP forwarding but is not enabled for IP
49410	// forwarding).
49411	Key string `json:"key,omitempty"`
49412
49413	// Value: [Output Only] A warning data value corresponding to the key.
49414	Value string `json:"value,omitempty"`
49415
49416	// ForceSendFields is a list of field names (e.g. "Key") to
49417	// unconditionally include in API requests. By default, fields with
49418	// empty values are omitted from API requests. However, any non-pointer,
49419	// non-interface field appearing in ForceSendFields will be sent to the
49420	// server regardless of whether the field is empty or not. This may be
49421	// used to include empty fields in Patch requests.
49422	ForceSendFields []string `json:"-"`
49423
49424	// NullFields is a list of field names (e.g. "Key") to include in API
49425	// requests with the JSON null value. By default, fields with empty
49426	// values are omitted from API requests. However, any field with an
49427	// empty value appearing in NullFields will be sent to the server as
49428	// null. It is an error if a field in this list has a non-empty value.
49429	// This may be used to include null fields in Patch requests.
49430	NullFields []string `json:"-"`
49431}
49432
49433func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
49434	type NoMethod XpnHostListWarningData
49435	raw := NoMethod(*s)
49436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49437}
49438
49439// XpnResourceId: Service resource (a.k.a service project) ID.
49440type XpnResourceId struct {
49441	// Id: The ID of the service resource. In the case of projects, this
49442	// field supports project id (e.g., my-project-123) and project number
49443	// (e.g. 12345678).
49444	Id string `json:"id,omitempty"`
49445
49446	// Type: The type of the service resource.
49447	//
49448	// Possible values:
49449	//   "PROJECT"
49450	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
49451	Type string `json:"type,omitempty"`
49452
49453	// ForceSendFields is a list of field names (e.g. "Id") to
49454	// unconditionally include in API requests. By default, fields with
49455	// empty values are omitted from API requests. However, any non-pointer,
49456	// non-interface field appearing in ForceSendFields will be sent to the
49457	// server regardless of whether the field is empty or not. This may be
49458	// used to include empty fields in Patch requests.
49459	ForceSendFields []string `json:"-"`
49460
49461	// NullFields is a list of field names (e.g. "Id") to include in API
49462	// requests with the JSON null value. By default, fields with empty
49463	// values are omitted from API requests. However, any field with an
49464	// empty value appearing in NullFields will be sent to the server as
49465	// null. It is an error if a field in this list has a non-empty value.
49466	// This may be used to include null fields in Patch requests.
49467	NullFields []string `json:"-"`
49468}
49469
49470func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
49471	type NoMethod XpnResourceId
49472	raw := NoMethod(*s)
49473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49474}
49475
49476// Zone: Represents a Zone resource.
49477//
49478// A zone is a deployment area. These deployment areas are subsets of a
49479// region. For example the zone us-east1-a is located in the us-east1
49480// region. For more information, read Regions and Zones. (==
49481// resource_for {$api_version}.zones ==)
49482type Zone struct {
49483	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
49484	// selections for the zone.
49485	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
49486
49487	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
49488	// format.
49489	CreationTimestamp string `json:"creationTimestamp,omitempty"`
49490
49491	// Deprecated: [Output Only] The deprecation status associated with this
49492	// zone.
49493	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
49494
49495	// Description: [Output Only] Textual description of the resource.
49496	Description string `json:"description,omitempty"`
49497
49498	// Id: [Output Only] The unique identifier for the resource. This
49499	// identifier is defined by the server.
49500	Id uint64 `json:"id,omitempty,string"`
49501
49502	// Kind: [Output Only] Type of the resource. Always compute#zone for
49503	// zones.
49504	Kind string `json:"kind,omitempty"`
49505
49506	// Name: [Output Only] Name of the resource.
49507	Name string `json:"name,omitempty"`
49508
49509	// Region: [Output Only] Full URL reference to the region which hosts
49510	// the zone.
49511	Region string `json:"region,omitempty"`
49512
49513	// SelfLink: [Output Only] Server-defined URL for the resource.
49514	SelfLink string `json:"selfLink,omitempty"`
49515
49516	// Status: [Output Only] Status of the zone, either UP or DOWN.
49517	//
49518	// Possible values:
49519	//   "DOWN"
49520	//   "UP"
49521	Status string `json:"status,omitempty"`
49522
49523	// ServerResponse contains the HTTP response code and headers from the
49524	// server.
49525	googleapi.ServerResponse `json:"-"`
49526
49527	// ForceSendFields is a list of field names (e.g.
49528	// "AvailableCpuPlatforms") to unconditionally include in API requests.
49529	// By default, fields with empty values are omitted from API requests.
49530	// However, any non-pointer, non-interface field appearing in
49531	// ForceSendFields will be sent to the server regardless of whether the
49532	// field is empty or not. This may be used to include empty fields in
49533	// Patch requests.
49534	ForceSendFields []string `json:"-"`
49535
49536	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
49537	// include in API requests with the JSON null value. By default, fields
49538	// with empty values are omitted from API requests. However, any field
49539	// with an empty value appearing in NullFields will be sent to the
49540	// server as null. It is an error if a field in this list has a
49541	// non-empty value. This may be used to include null fields in Patch
49542	// requests.
49543	NullFields []string `json:"-"`
49544}
49545
49546func (s *Zone) MarshalJSON() ([]byte, error) {
49547	type NoMethod Zone
49548	raw := NoMethod(*s)
49549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49550}
49551
49552// ZoneList: Contains a list of zone resources.
49553type ZoneList struct {
49554	// Id: [Output Only] Unique identifier for the resource; defined by the
49555	// server.
49556	Id string `json:"id,omitempty"`
49557
49558	// Items: A list of Zone resources.
49559	Items []*Zone `json:"items,omitempty"`
49560
49561	// Kind: Type of resource.
49562	Kind string `json:"kind,omitempty"`
49563
49564	// NextPageToken: [Output Only] This token allows you to get the next
49565	// page of results for list requests. If the number of results is larger
49566	// than maxResults, use the nextPageToken as a value for the query
49567	// parameter pageToken in the next list request. Subsequent list
49568	// requests will have their own nextPageToken to continue paging through
49569	// the results.
49570	NextPageToken string `json:"nextPageToken,omitempty"`
49571
49572	// SelfLink: [Output Only] Server-defined URL for this resource.
49573	SelfLink string `json:"selfLink,omitempty"`
49574
49575	// Warning: [Output Only] Informational warning message.
49576	Warning *ZoneListWarning `json:"warning,omitempty"`
49577
49578	// ServerResponse contains the HTTP response code and headers from the
49579	// server.
49580	googleapi.ServerResponse `json:"-"`
49581
49582	// ForceSendFields is a list of field names (e.g. "Id") to
49583	// unconditionally include in API requests. By default, fields with
49584	// empty values are omitted from API requests. However, any non-pointer,
49585	// non-interface field appearing in ForceSendFields will be sent to the
49586	// server regardless of whether the field is empty or not. This may be
49587	// used to include empty fields in Patch requests.
49588	ForceSendFields []string `json:"-"`
49589
49590	// NullFields is a list of field names (e.g. "Id") to include in API
49591	// requests with the JSON null value. By default, fields with empty
49592	// values are omitted from API requests. However, any field with an
49593	// empty value appearing in NullFields will be sent to the server as
49594	// null. It is an error if a field in this list has a non-empty value.
49595	// This may be used to include null fields in Patch requests.
49596	NullFields []string `json:"-"`
49597}
49598
49599func (s *ZoneList) MarshalJSON() ([]byte, error) {
49600	type NoMethod ZoneList
49601	raw := NoMethod(*s)
49602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49603}
49604
49605// ZoneListWarning: [Output Only] Informational warning message.
49606type ZoneListWarning struct {
49607	// Code: [Output Only] A warning code, if applicable. For example,
49608	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49609	// the response.
49610	//
49611	// Possible values:
49612	//   "CLEANUP_FAILED"
49613	//   "DEPRECATED_RESOURCE_USED"
49614	//   "DEPRECATED_TYPE_USED"
49615	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49616	//   "EXPERIMENTAL_TYPE_USED"
49617	//   "EXTERNAL_API_WARNING"
49618	//   "FIELD_VALUE_OVERRIDEN"
49619	//   "INJECTED_KERNELS_DEPRECATED"
49620	//   "MISSING_TYPE_DEPENDENCY"
49621	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49622	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49623	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49624	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49625	//   "NEXT_HOP_NOT_RUNNING"
49626	//   "NOT_CRITICAL_ERROR"
49627	//   "NO_RESULTS_ON_PAGE"
49628	//   "PARTIAL_SUCCESS"
49629	//   "REQUIRED_TOS_AGREEMENT"
49630	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49631	//   "RESOURCE_NOT_DELETED"
49632	//   "SCHEMA_VALIDATION_IGNORED"
49633	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49634	//   "UNDECLARED_PROPERTIES"
49635	//   "UNREACHABLE"
49636	Code string `json:"code,omitempty"`
49637
49638	// Data: [Output Only] Metadata about this warning in key: value format.
49639	// For example:
49640	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49641	Data []*ZoneListWarningData `json:"data,omitempty"`
49642
49643	// Message: [Output Only] A human-readable description of the warning
49644	// code.
49645	Message string `json:"message,omitempty"`
49646
49647	// ForceSendFields is a list of field names (e.g. "Code") to
49648	// unconditionally include in API requests. By default, fields with
49649	// empty values are omitted from API requests. However, any non-pointer,
49650	// non-interface field appearing in ForceSendFields will be sent to the
49651	// server regardless of whether the field is empty or not. This may be
49652	// used to include empty fields in Patch requests.
49653	ForceSendFields []string `json:"-"`
49654
49655	// NullFields is a list of field names (e.g. "Code") to include in API
49656	// requests with the JSON null value. By default, fields with empty
49657	// values are omitted from API requests. However, any field with an
49658	// empty value appearing in NullFields will be sent to the server as
49659	// null. It is an error if a field in this list has a non-empty value.
49660	// This may be used to include null fields in Patch requests.
49661	NullFields []string `json:"-"`
49662}
49663
49664func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
49665	type NoMethod ZoneListWarning
49666	raw := NoMethod(*s)
49667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49668}
49669
49670type ZoneListWarningData struct {
49671	// Key: [Output Only] A key that provides more detail on the warning
49672	// being returned. For example, for warnings where there are no results
49673	// in a list request for a particular zone, this key might be scope and
49674	// the key value might be the zone name. Other examples might be a key
49675	// indicating a deprecated resource and a suggested replacement, or a
49676	// warning about invalid network settings (for example, if an instance
49677	// attempts to perform IP forwarding but is not enabled for IP
49678	// forwarding).
49679	Key string `json:"key,omitempty"`
49680
49681	// Value: [Output Only] A warning data value corresponding to the key.
49682	Value string `json:"value,omitempty"`
49683
49684	// ForceSendFields is a list of field names (e.g. "Key") to
49685	// unconditionally include in API requests. By default, fields with
49686	// empty values are omitted from API requests. However, any non-pointer,
49687	// non-interface field appearing in ForceSendFields will be sent to the
49688	// server regardless of whether the field is empty or not. This may be
49689	// used to include empty fields in Patch requests.
49690	ForceSendFields []string `json:"-"`
49691
49692	// NullFields is a list of field names (e.g. "Key") to include in API
49693	// requests with the JSON null value. By default, fields with empty
49694	// values are omitted from API requests. However, any field with an
49695	// empty value appearing in NullFields will be sent to the server as
49696	// null. It is an error if a field in this list has a non-empty value.
49697	// This may be used to include null fields in Patch requests.
49698	NullFields []string `json:"-"`
49699}
49700
49701func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
49702	type NoMethod ZoneListWarningData
49703	raw := NoMethod(*s)
49704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49705}
49706
49707type ZoneSetLabelsRequest struct {
49708	// LabelFingerprint: The fingerprint of the previous set of labels for
49709	// this resource, used to detect conflicts. The fingerprint is initially
49710	// generated by Compute Engine and changes after every request to modify
49711	// or update labels. You must always provide an up-to-date fingerprint
49712	// hash in order to update or change labels. Make a get() request to the
49713	// resource to get the latest fingerprint.
49714	LabelFingerprint string `json:"labelFingerprint,omitempty"`
49715
49716	// Labels: The labels to set for this resource.
49717	Labels map[string]string `json:"labels,omitempty"`
49718
49719	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
49720	// unconditionally include in API requests. By default, fields with
49721	// empty values are omitted from API requests. However, any non-pointer,
49722	// non-interface field appearing in ForceSendFields will be sent to the
49723	// server regardless of whether the field is empty or not. This may be
49724	// used to include empty fields in Patch requests.
49725	ForceSendFields []string `json:"-"`
49726
49727	// NullFields is a list of field names (e.g. "LabelFingerprint") to
49728	// include in API requests with the JSON null value. By default, fields
49729	// with empty values are omitted from API requests. However, any field
49730	// with an empty value appearing in NullFields will be sent to the
49731	// server as null. It is an error if a field in this list has a
49732	// non-empty value. This may be used to include null fields in Patch
49733	// requests.
49734	NullFields []string `json:"-"`
49735}
49736
49737func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
49738	type NoMethod ZoneSetLabelsRequest
49739	raw := NoMethod(*s)
49740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49741}
49742
49743type ZoneSetPolicyRequest struct {
49744	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
49745	// Deprecated. Use 'policy' to specify bindings.
49746	Bindings []*Binding `json:"bindings,omitempty"`
49747
49748	// Etag: Flatten Policy to create a backward compatible wire-format.
49749	// Deprecated. Use 'policy' to specify the etag.
49750	Etag string `json:"etag,omitempty"`
49751
49752	// Policy: REQUIRED: The complete policy to be applied to the
49753	// 'resource'. The size of the policy is limited to a few 10s of KB. An
49754	// empty policy is in general a valid policy but certain services (like
49755	// Projects) might reject them.
49756	Policy *Policy `json:"policy,omitempty"`
49757
49758	// ForceSendFields is a list of field names (e.g. "Bindings") to
49759	// unconditionally include in API requests. By default, fields with
49760	// empty values are omitted from API requests. However, any non-pointer,
49761	// non-interface field appearing in ForceSendFields will be sent to the
49762	// server regardless of whether the field is empty or not. This may be
49763	// used to include empty fields in Patch requests.
49764	ForceSendFields []string `json:"-"`
49765
49766	// NullFields is a list of field names (e.g. "Bindings") to include in
49767	// API requests with the JSON null value. By default, fields with empty
49768	// values are omitted from API requests. However, any field with an
49769	// empty value appearing in NullFields will be sent to the server as
49770	// null. It is an error if a field in this list has a non-empty value.
49771	// This may be used to include null fields in Patch requests.
49772	NullFields []string `json:"-"`
49773}
49774
49775func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
49776	type NoMethod ZoneSetPolicyRequest
49777	raw := NoMethod(*s)
49778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49779}
49780
49781// method id "compute.acceleratorTypes.aggregatedList":
49782
49783type AcceleratorTypesAggregatedListCall struct {
49784	s            *Service
49785	project      string
49786	urlParams_   gensupport.URLParams
49787	ifNoneMatch_ string
49788	ctx_         context.Context
49789	header_      http.Header
49790}
49791
49792// AggregatedList: Retrieves an aggregated list of accelerator types.
49793func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
49794	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49795	c.project = project
49796	return c
49797}
49798
49799// Filter sets the optional parameter "filter": A filter expression that
49800// filters resources listed in the response. The expression must specify
49801// the field name, a comparison operator, and the value that you want to
49802// use for filtering. The value must be a string, a number, or a
49803// boolean. The comparison operator must be either `=`, `!=`, `>`, or
49804// `<`.
49805//
49806// For example, if you are filtering Compute Engine instances, you can
49807// exclude instances named `example-instance` by specifying `name !=
49808// example-instance`.
49809//
49810// You can also filter nested fields. For example, you could specify
49811// `scheduling.automaticRestart = false` to include instances only if
49812// they are not scheduled for automatic restarts. You can use filtering
49813// on nested fields to filter based on resource labels.
49814//
49815// To filter on multiple expressions, provide each separate expression
49816// within parentheses. For example: ``` (scheduling.automaticRestart =
49817// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
49818// is an `AND` expression. However, you can include `AND` and `OR`
49819// expressions explicitly. For example: ``` (cpuPlatform = "Intel
49820// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
49821// (scheduling.automaticRestart = true) ```
49822func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
49823	c.urlParams_.Set("filter", filter)
49824	return c
49825}
49826
49827// IncludeAllScopes sets the optional parameter "includeAllScopes":
49828// Indicates whether every visible scope for each scope type (zone,
49829// region, global) should be included in the response. For new resource
49830// types added after this field, the flag has no effect as new resource
49831// types will always include every visible scope for each scope type in
49832// response. For resource types which predate this field, if this flag
49833// is omitted or false, only scopes of the scope types where the
49834// resource type is expected to be found will be included.
49835func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
49836	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
49837	return c
49838}
49839
49840// MaxResults sets the optional parameter "maxResults": The maximum
49841// number of results per page that should be returned. If the number of
49842// available results is larger than `maxResults`, Compute Engine returns
49843// a `nextPageToken` that can be used to get the next page of results in
49844// subsequent list requests. Acceptable values are `0` to `500`,
49845// inclusive. (Default: `500`)
49846func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
49847	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49848	return c
49849}
49850
49851// OrderBy sets the optional parameter "orderBy": Sorts list results by
49852// a certain order. By default, results are returned in alphanumerical
49853// order based on the resource name.
49854//
49855// You can also sort results in descending order based on the creation
49856// timestamp using `orderBy="creationTimestamp desc". This sorts
49857// results based on the `creationTimestamp` field in reverse
49858// chronological order (newest result first). Use this to sort resources
49859// like operations so that the newest operation is returned
49860// first.
49861//
49862// Currently, only sorting by `name` or `creationTimestamp desc` is
49863// supported.
49864func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
49865	c.urlParams_.Set("orderBy", orderBy)
49866	return c
49867}
49868
49869// PageToken sets the optional parameter "pageToken": Specifies a page
49870// token to use. Set `pageToken` to the `nextPageToken` returned by a
49871// previous list request to get the next page of results.
49872func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
49873	c.urlParams_.Set("pageToken", pageToken)
49874	return c
49875}
49876
49877// ReturnPartialSuccess sets the optional parameter
49878// "returnPartialSuccess": Opt-in for partial success behavior which
49879// provides partial results in case of failure. The default value is
49880// false and the logic is the same as today.
49881func (c *AcceleratorTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesAggregatedListCall {
49882	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
49883	return c
49884}
49885
49886// Fields allows partial responses to be retrieved. See
49887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49888// for more information.
49889func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
49890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49891	return c
49892}
49893
49894// IfNoneMatch sets the optional parameter which makes the operation
49895// fail if the object's ETag matches the given value. This is useful for
49896// getting updates only after the object has changed since the last
49897// request. Use googleapi.IsNotModified to check whether the response
49898// error from Do is the result of In-None-Match.
49899func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
49900	c.ifNoneMatch_ = entityTag
49901	return c
49902}
49903
49904// Context sets the context to be used in this call's Do method. Any
49905// pending HTTP request will be aborted if the provided context is
49906// canceled.
49907func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
49908	c.ctx_ = ctx
49909	return c
49910}
49911
49912// Header returns an http.Header that can be modified by the caller to
49913// add HTTP headers to the request.
49914func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
49915	if c.header_ == nil {
49916		c.header_ = make(http.Header)
49917	}
49918	return c.header_
49919}
49920
49921func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
49922	reqHeaders := make(http.Header)
49923	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
49924	for k, v := range c.header_ {
49925		reqHeaders[k] = v
49926	}
49927	reqHeaders.Set("User-Agent", c.s.userAgent())
49928	if c.ifNoneMatch_ != "" {
49929		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49930	}
49931	var body io.Reader = nil
49932	c.urlParams_.Set("alt", alt)
49933	c.urlParams_.Set("prettyPrint", "false")
49934	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
49935	urls += "?" + c.urlParams_.Encode()
49936	req, err := http.NewRequest("GET", urls, body)
49937	if err != nil {
49938		return nil, err
49939	}
49940	req.Header = reqHeaders
49941	googleapi.Expand(req.URL, map[string]string{
49942		"project": c.project,
49943	})
49944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49945}
49946
49947// Do executes the "compute.acceleratorTypes.aggregatedList" call.
49948// Exactly one of *AcceleratorTypeAggregatedList or error will be
49949// non-nil. Any non-2xx status code is an error. Response headers are in
49950// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
49951// response was returned at all) in error.(*googleapi.Error).Header. Use
49952// googleapi.IsNotModified to check whether the returned error was
49953// because http.StatusNotModified was returned.
49954func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
49955	gensupport.SetOptions(c.urlParams_, opts...)
49956	res, err := c.doRequest("json")
49957	if res != nil && res.StatusCode == http.StatusNotModified {
49958		if res.Body != nil {
49959			res.Body.Close()
49960		}
49961		return nil, &googleapi.Error{
49962			Code:   res.StatusCode,
49963			Header: res.Header,
49964		}
49965	}
49966	if err != nil {
49967		return nil, err
49968	}
49969	defer googleapi.CloseBody(res)
49970	if err := googleapi.CheckResponse(res); err != nil {
49971		return nil, err
49972	}
49973	ret := &AcceleratorTypeAggregatedList{
49974		ServerResponse: googleapi.ServerResponse{
49975			Header:         res.Header,
49976			HTTPStatusCode: res.StatusCode,
49977		},
49978	}
49979	target := &ret
49980	if err := gensupport.DecodeResponse(target, res); err != nil {
49981		return nil, err
49982	}
49983	return ret, nil
49984	// {
49985	//   "description": "Retrieves an aggregated list of accelerator types.",
49986	//   "httpMethod": "GET",
49987	//   "id": "compute.acceleratorTypes.aggregatedList",
49988	//   "parameterOrder": [
49989	//     "project"
49990	//   ],
49991	//   "parameters": {
49992	//     "filter": {
49993	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
49994	//       "location": "query",
49995	//       "type": "string"
49996	//     },
49997	//     "includeAllScopes": {
49998	//       "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.",
49999	//       "location": "query",
50000	//       "type": "boolean"
50001	//     },
50002	//     "maxResults": {
50003	//       "default": "500",
50004	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50005	//       "format": "uint32",
50006	//       "location": "query",
50007	//       "minimum": "0",
50008	//       "type": "integer"
50009	//     },
50010	//     "orderBy": {
50011	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50012	//       "location": "query",
50013	//       "type": "string"
50014	//     },
50015	//     "pageToken": {
50016	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50017	//       "location": "query",
50018	//       "type": "string"
50019	//     },
50020	//     "project": {
50021	//       "description": "Project ID for this request.",
50022	//       "location": "path",
50023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50024	//       "required": true,
50025	//       "type": "string"
50026	//     },
50027	//     "returnPartialSuccess": {
50028	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
50029	//       "location": "query",
50030	//       "type": "boolean"
50031	//     }
50032	//   },
50033	//   "path": "{project}/aggregated/acceleratorTypes",
50034	//   "response": {
50035	//     "$ref": "AcceleratorTypeAggregatedList"
50036	//   },
50037	//   "scopes": [
50038	//     "https://www.googleapis.com/auth/cloud-platform",
50039	//     "https://www.googleapis.com/auth/compute",
50040	//     "https://www.googleapis.com/auth/compute.readonly"
50041	//   ]
50042	// }
50043
50044}
50045
50046// Pages invokes f for each page of results.
50047// A non-nil error returned from f will halt the iteration.
50048// The provided context supersedes any context provided to the Context method.
50049func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
50050	c.ctx_ = ctx
50051	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50052	for {
50053		x, err := c.Do()
50054		if err != nil {
50055			return err
50056		}
50057		if err := f(x); err != nil {
50058			return err
50059		}
50060		if x.NextPageToken == "" {
50061			return nil
50062		}
50063		c.PageToken(x.NextPageToken)
50064	}
50065}
50066
50067// method id "compute.acceleratorTypes.get":
50068
50069type AcceleratorTypesGetCall struct {
50070	s               *Service
50071	project         string
50072	zone            string
50073	acceleratorType string
50074	urlParams_      gensupport.URLParams
50075	ifNoneMatch_    string
50076	ctx_            context.Context
50077	header_         http.Header
50078}
50079
50080// Get: Returns the specified accelerator type.
50081func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
50082	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50083	c.project = project
50084	c.zone = zone
50085	c.acceleratorType = acceleratorType
50086	return c
50087}
50088
50089// Fields allows partial responses to be retrieved. See
50090// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50091// for more information.
50092func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
50093	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50094	return c
50095}
50096
50097// IfNoneMatch sets the optional parameter which makes the operation
50098// fail if the object's ETag matches the given value. This is useful for
50099// getting updates only after the object has changed since the last
50100// request. Use googleapi.IsNotModified to check whether the response
50101// error from Do is the result of In-None-Match.
50102func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
50103	c.ifNoneMatch_ = entityTag
50104	return c
50105}
50106
50107// Context sets the context to be used in this call's Do method. Any
50108// pending HTTP request will be aborted if the provided context is
50109// canceled.
50110func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
50111	c.ctx_ = ctx
50112	return c
50113}
50114
50115// Header returns an http.Header that can be modified by the caller to
50116// add HTTP headers to the request.
50117func (c *AcceleratorTypesGetCall) Header() http.Header {
50118	if c.header_ == nil {
50119		c.header_ = make(http.Header)
50120	}
50121	return c.header_
50122}
50123
50124func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
50125	reqHeaders := make(http.Header)
50126	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
50127	for k, v := range c.header_ {
50128		reqHeaders[k] = v
50129	}
50130	reqHeaders.Set("User-Agent", c.s.userAgent())
50131	if c.ifNoneMatch_ != "" {
50132		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50133	}
50134	var body io.Reader = nil
50135	c.urlParams_.Set("alt", alt)
50136	c.urlParams_.Set("prettyPrint", "false")
50137	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
50138	urls += "?" + c.urlParams_.Encode()
50139	req, err := http.NewRequest("GET", urls, body)
50140	if err != nil {
50141		return nil, err
50142	}
50143	req.Header = reqHeaders
50144	googleapi.Expand(req.URL, map[string]string{
50145		"project":         c.project,
50146		"zone":            c.zone,
50147		"acceleratorType": c.acceleratorType,
50148	})
50149	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50150}
50151
50152// Do executes the "compute.acceleratorTypes.get" call.
50153// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
50154// status code is an error. Response headers are in either
50155// *AcceleratorType.ServerResponse.Header or (if a response was returned
50156// at all) in error.(*googleapi.Error).Header. Use
50157// googleapi.IsNotModified to check whether the returned error was
50158// because http.StatusNotModified was returned.
50159func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
50160	gensupport.SetOptions(c.urlParams_, opts...)
50161	res, err := c.doRequest("json")
50162	if res != nil && res.StatusCode == http.StatusNotModified {
50163		if res.Body != nil {
50164			res.Body.Close()
50165		}
50166		return nil, &googleapi.Error{
50167			Code:   res.StatusCode,
50168			Header: res.Header,
50169		}
50170	}
50171	if err != nil {
50172		return nil, err
50173	}
50174	defer googleapi.CloseBody(res)
50175	if err := googleapi.CheckResponse(res); err != nil {
50176		return nil, err
50177	}
50178	ret := &AcceleratorType{
50179		ServerResponse: googleapi.ServerResponse{
50180			Header:         res.Header,
50181			HTTPStatusCode: res.StatusCode,
50182		},
50183	}
50184	target := &ret
50185	if err := gensupport.DecodeResponse(target, res); err != nil {
50186		return nil, err
50187	}
50188	return ret, nil
50189	// {
50190	//   "description": "Returns the specified accelerator type.",
50191	//   "httpMethod": "GET",
50192	//   "id": "compute.acceleratorTypes.get",
50193	//   "parameterOrder": [
50194	//     "project",
50195	//     "zone",
50196	//     "acceleratorType"
50197	//   ],
50198	//   "parameters": {
50199	//     "acceleratorType": {
50200	//       "description": "Name of the accelerator type to return.",
50201	//       "location": "path",
50202	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50203	//       "required": true,
50204	//       "type": "string"
50205	//     },
50206	//     "project": {
50207	//       "description": "Project ID for this request.",
50208	//       "location": "path",
50209	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50210	//       "required": true,
50211	//       "type": "string"
50212	//     },
50213	//     "zone": {
50214	//       "description": "The name of the zone for this request.",
50215	//       "location": "path",
50216	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50217	//       "required": true,
50218	//       "type": "string"
50219	//     }
50220	//   },
50221	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
50222	//   "response": {
50223	//     "$ref": "AcceleratorType"
50224	//   },
50225	//   "scopes": [
50226	//     "https://www.googleapis.com/auth/cloud-platform",
50227	//     "https://www.googleapis.com/auth/compute",
50228	//     "https://www.googleapis.com/auth/compute.readonly"
50229	//   ]
50230	// }
50231
50232}
50233
50234// method id "compute.acceleratorTypes.list":
50235
50236type AcceleratorTypesListCall struct {
50237	s            *Service
50238	project      string
50239	zone         string
50240	urlParams_   gensupport.URLParams
50241	ifNoneMatch_ string
50242	ctx_         context.Context
50243	header_      http.Header
50244}
50245
50246// List: Retrieves a list of accelerator types available to the
50247// specified project.
50248func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
50249	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50250	c.project = project
50251	c.zone = zone
50252	return c
50253}
50254
50255// Filter sets the optional parameter "filter": A filter expression that
50256// filters resources listed in the response. The expression must specify
50257// the field name, a comparison operator, and the value that you want to
50258// use for filtering. The value must be a string, a number, or a
50259// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50260// `<`.
50261//
50262// For example, if you are filtering Compute Engine instances, you can
50263// exclude instances named `example-instance` by specifying `name !=
50264// example-instance`.
50265//
50266// You can also filter nested fields. For example, you could specify
50267// `scheduling.automaticRestart = false` to include instances only if
50268// they are not scheduled for automatic restarts. You can use filtering
50269// on nested fields to filter based on resource labels.
50270//
50271// To filter on multiple expressions, provide each separate expression
50272// within parentheses. For example: ``` (scheduling.automaticRestart =
50273// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50274// is an `AND` expression. However, you can include `AND` and `OR`
50275// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50276// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50277// (scheduling.automaticRestart = true) ```
50278func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
50279	c.urlParams_.Set("filter", filter)
50280	return c
50281}
50282
50283// MaxResults sets the optional parameter "maxResults": The maximum
50284// number of results per page that should be returned. If the number of
50285// available results is larger than `maxResults`, Compute Engine returns
50286// a `nextPageToken` that can be used to get the next page of results in
50287// subsequent list requests. Acceptable values are `0` to `500`,
50288// inclusive. (Default: `500`)
50289func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
50290	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50291	return c
50292}
50293
50294// OrderBy sets the optional parameter "orderBy": Sorts list results by
50295// a certain order. By default, results are returned in alphanumerical
50296// order based on the resource name.
50297//
50298// You can also sort results in descending order based on the creation
50299// timestamp using `orderBy="creationTimestamp desc". This sorts
50300// results based on the `creationTimestamp` field in reverse
50301// chronological order (newest result first). Use this to sort resources
50302// like operations so that the newest operation is returned
50303// first.
50304//
50305// Currently, only sorting by `name` or `creationTimestamp desc` is
50306// supported.
50307func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
50308	c.urlParams_.Set("orderBy", orderBy)
50309	return c
50310}
50311
50312// PageToken sets the optional parameter "pageToken": Specifies a page
50313// token to use. Set `pageToken` to the `nextPageToken` returned by a
50314// previous list request to get the next page of results.
50315func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
50316	c.urlParams_.Set("pageToken", pageToken)
50317	return c
50318}
50319
50320// ReturnPartialSuccess sets the optional parameter
50321// "returnPartialSuccess": Opt-in for partial success behavior which
50322// provides partial results in case of failure. The default value is
50323// false and the logic is the same as today.
50324func (c *AcceleratorTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesListCall {
50325	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
50326	return c
50327}
50328
50329// Fields allows partial responses to be retrieved. See
50330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50331// for more information.
50332func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
50333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50334	return c
50335}
50336
50337// IfNoneMatch sets the optional parameter which makes the operation
50338// fail if the object's ETag matches the given value. This is useful for
50339// getting updates only after the object has changed since the last
50340// request. Use googleapi.IsNotModified to check whether the response
50341// error from Do is the result of In-None-Match.
50342func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
50343	c.ifNoneMatch_ = entityTag
50344	return c
50345}
50346
50347// Context sets the context to be used in this call's Do method. Any
50348// pending HTTP request will be aborted if the provided context is
50349// canceled.
50350func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
50351	c.ctx_ = ctx
50352	return c
50353}
50354
50355// Header returns an http.Header that can be modified by the caller to
50356// add HTTP headers to the request.
50357func (c *AcceleratorTypesListCall) Header() http.Header {
50358	if c.header_ == nil {
50359		c.header_ = make(http.Header)
50360	}
50361	return c.header_
50362}
50363
50364func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
50365	reqHeaders := make(http.Header)
50366	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
50367	for k, v := range c.header_ {
50368		reqHeaders[k] = v
50369	}
50370	reqHeaders.Set("User-Agent", c.s.userAgent())
50371	if c.ifNoneMatch_ != "" {
50372		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50373	}
50374	var body io.Reader = nil
50375	c.urlParams_.Set("alt", alt)
50376	c.urlParams_.Set("prettyPrint", "false")
50377	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
50378	urls += "?" + c.urlParams_.Encode()
50379	req, err := http.NewRequest("GET", urls, body)
50380	if err != nil {
50381		return nil, err
50382	}
50383	req.Header = reqHeaders
50384	googleapi.Expand(req.URL, map[string]string{
50385		"project": c.project,
50386		"zone":    c.zone,
50387	})
50388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50389}
50390
50391// Do executes the "compute.acceleratorTypes.list" call.
50392// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
50393// non-2xx status code is an error. Response headers are in either
50394// *AcceleratorTypeList.ServerResponse.Header or (if a response was
50395// returned at all) in error.(*googleapi.Error).Header. Use
50396// googleapi.IsNotModified to check whether the returned error was
50397// because http.StatusNotModified was returned.
50398func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
50399	gensupport.SetOptions(c.urlParams_, opts...)
50400	res, err := c.doRequest("json")
50401	if res != nil && res.StatusCode == http.StatusNotModified {
50402		if res.Body != nil {
50403			res.Body.Close()
50404		}
50405		return nil, &googleapi.Error{
50406			Code:   res.StatusCode,
50407			Header: res.Header,
50408		}
50409	}
50410	if err != nil {
50411		return nil, err
50412	}
50413	defer googleapi.CloseBody(res)
50414	if err := googleapi.CheckResponse(res); err != nil {
50415		return nil, err
50416	}
50417	ret := &AcceleratorTypeList{
50418		ServerResponse: googleapi.ServerResponse{
50419			Header:         res.Header,
50420			HTTPStatusCode: res.StatusCode,
50421		},
50422	}
50423	target := &ret
50424	if err := gensupport.DecodeResponse(target, res); err != nil {
50425		return nil, err
50426	}
50427	return ret, nil
50428	// {
50429	//   "description": "Retrieves a list of accelerator types available to the specified project.",
50430	//   "httpMethod": "GET",
50431	//   "id": "compute.acceleratorTypes.list",
50432	//   "parameterOrder": [
50433	//     "project",
50434	//     "zone"
50435	//   ],
50436	//   "parameters": {
50437	//     "filter": {
50438	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
50439	//       "location": "query",
50440	//       "type": "string"
50441	//     },
50442	//     "maxResults": {
50443	//       "default": "500",
50444	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50445	//       "format": "uint32",
50446	//       "location": "query",
50447	//       "minimum": "0",
50448	//       "type": "integer"
50449	//     },
50450	//     "orderBy": {
50451	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50452	//       "location": "query",
50453	//       "type": "string"
50454	//     },
50455	//     "pageToken": {
50456	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50457	//       "location": "query",
50458	//       "type": "string"
50459	//     },
50460	//     "project": {
50461	//       "description": "Project ID for this request.",
50462	//       "location": "path",
50463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50464	//       "required": true,
50465	//       "type": "string"
50466	//     },
50467	//     "returnPartialSuccess": {
50468	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
50469	//       "location": "query",
50470	//       "type": "boolean"
50471	//     },
50472	//     "zone": {
50473	//       "description": "The name of the zone for this request.",
50474	//       "location": "path",
50475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50476	//       "required": true,
50477	//       "type": "string"
50478	//     }
50479	//   },
50480	//   "path": "{project}/zones/{zone}/acceleratorTypes",
50481	//   "response": {
50482	//     "$ref": "AcceleratorTypeList"
50483	//   },
50484	//   "scopes": [
50485	//     "https://www.googleapis.com/auth/cloud-platform",
50486	//     "https://www.googleapis.com/auth/compute",
50487	//     "https://www.googleapis.com/auth/compute.readonly"
50488	//   ]
50489	// }
50490
50491}
50492
50493// Pages invokes f for each page of results.
50494// A non-nil error returned from f will halt the iteration.
50495// The provided context supersedes any context provided to the Context method.
50496func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
50497	c.ctx_ = ctx
50498	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50499	for {
50500		x, err := c.Do()
50501		if err != nil {
50502			return err
50503		}
50504		if err := f(x); err != nil {
50505			return err
50506		}
50507		if x.NextPageToken == "" {
50508			return nil
50509		}
50510		c.PageToken(x.NextPageToken)
50511	}
50512}
50513
50514// method id "compute.addresses.aggregatedList":
50515
50516type AddressesAggregatedListCall struct {
50517	s            *Service
50518	project      string
50519	urlParams_   gensupport.URLParams
50520	ifNoneMatch_ string
50521	ctx_         context.Context
50522	header_      http.Header
50523}
50524
50525// AggregatedList: Retrieves an aggregated list of addresses.
50526// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
50527func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
50528	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50529	c.project = project
50530	return c
50531}
50532
50533// Filter sets the optional parameter "filter": A filter expression that
50534// filters resources listed in the response. The expression must specify
50535// the field name, a comparison operator, and the value that you want to
50536// use for filtering. The value must be a string, a number, or a
50537// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50538// `<`.
50539//
50540// For example, if you are filtering Compute Engine instances, you can
50541// exclude instances named `example-instance` by specifying `name !=
50542// example-instance`.
50543//
50544// You can also filter nested fields. For example, you could specify
50545// `scheduling.automaticRestart = false` to include instances only if
50546// they are not scheduled for automatic restarts. You can use filtering
50547// on nested fields to filter based on resource labels.
50548//
50549// To filter on multiple expressions, provide each separate expression
50550// within parentheses. For example: ``` (scheduling.automaticRestart =
50551// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50552// is an `AND` expression. However, you can include `AND` and `OR`
50553// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50554// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50555// (scheduling.automaticRestart = true) ```
50556func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
50557	c.urlParams_.Set("filter", filter)
50558	return c
50559}
50560
50561// IncludeAllScopes sets the optional parameter "includeAllScopes":
50562// Indicates whether every visible scope for each scope type (zone,
50563// region, global) should be included in the response. For new resource
50564// types added after this field, the flag has no effect as new resource
50565// types will always include every visible scope for each scope type in
50566// response. For resource types which predate this field, if this flag
50567// is omitted or false, only scopes of the scope types where the
50568// resource type is expected to be found will be included.
50569func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
50570	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
50571	return c
50572}
50573
50574// MaxResults sets the optional parameter "maxResults": The maximum
50575// number of results per page that should be returned. If the number of
50576// available results is larger than `maxResults`, Compute Engine returns
50577// a `nextPageToken` that can be used to get the next page of results in
50578// subsequent list requests. Acceptable values are `0` to `500`,
50579// inclusive. (Default: `500`)
50580func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
50581	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50582	return c
50583}
50584
50585// OrderBy sets the optional parameter "orderBy": Sorts list results by
50586// a certain order. By default, results are returned in alphanumerical
50587// order based on the resource name.
50588//
50589// You can also sort results in descending order based on the creation
50590// timestamp using `orderBy="creationTimestamp desc". This sorts
50591// results based on the `creationTimestamp` field in reverse
50592// chronological order (newest result first). Use this to sort resources
50593// like operations so that the newest operation is returned
50594// first.
50595//
50596// Currently, only sorting by `name` or `creationTimestamp desc` is
50597// supported.
50598func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
50599	c.urlParams_.Set("orderBy", orderBy)
50600	return c
50601}
50602
50603// PageToken sets the optional parameter "pageToken": Specifies a page
50604// token to use. Set `pageToken` to the `nextPageToken` returned by a
50605// previous list request to get the next page of results.
50606func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
50607	c.urlParams_.Set("pageToken", pageToken)
50608	return c
50609}
50610
50611// ReturnPartialSuccess sets the optional parameter
50612// "returnPartialSuccess": Opt-in for partial success behavior which
50613// provides partial results in case of failure. The default value is
50614// false and the logic is the same as today.
50615func (c *AddressesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesAggregatedListCall {
50616	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
50617	return c
50618}
50619
50620// Fields allows partial responses to be retrieved. See
50621// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50622// for more information.
50623func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
50624	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50625	return c
50626}
50627
50628// IfNoneMatch sets the optional parameter which makes the operation
50629// fail if the object's ETag matches the given value. This is useful for
50630// getting updates only after the object has changed since the last
50631// request. Use googleapi.IsNotModified to check whether the response
50632// error from Do is the result of In-None-Match.
50633func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
50634	c.ifNoneMatch_ = entityTag
50635	return c
50636}
50637
50638// Context sets the context to be used in this call's Do method. Any
50639// pending HTTP request will be aborted if the provided context is
50640// canceled.
50641func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
50642	c.ctx_ = ctx
50643	return c
50644}
50645
50646// Header returns an http.Header that can be modified by the caller to
50647// add HTTP headers to the request.
50648func (c *AddressesAggregatedListCall) Header() http.Header {
50649	if c.header_ == nil {
50650		c.header_ = make(http.Header)
50651	}
50652	return c.header_
50653}
50654
50655func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50656	reqHeaders := make(http.Header)
50657	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
50658	for k, v := range c.header_ {
50659		reqHeaders[k] = v
50660	}
50661	reqHeaders.Set("User-Agent", c.s.userAgent())
50662	if c.ifNoneMatch_ != "" {
50663		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50664	}
50665	var body io.Reader = nil
50666	c.urlParams_.Set("alt", alt)
50667	c.urlParams_.Set("prettyPrint", "false")
50668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
50669	urls += "?" + c.urlParams_.Encode()
50670	req, err := http.NewRequest("GET", urls, body)
50671	if err != nil {
50672		return nil, err
50673	}
50674	req.Header = reqHeaders
50675	googleapi.Expand(req.URL, map[string]string{
50676		"project": c.project,
50677	})
50678	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50679}
50680
50681// Do executes the "compute.addresses.aggregatedList" call.
50682// Exactly one of *AddressAggregatedList or error will be non-nil. Any
50683// non-2xx status code is an error. Response headers are in either
50684// *AddressAggregatedList.ServerResponse.Header or (if a response was
50685// returned at all) in error.(*googleapi.Error).Header. Use
50686// googleapi.IsNotModified to check whether the returned error was
50687// because http.StatusNotModified was returned.
50688func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
50689	gensupport.SetOptions(c.urlParams_, opts...)
50690	res, err := c.doRequest("json")
50691	if res != nil && res.StatusCode == http.StatusNotModified {
50692		if res.Body != nil {
50693			res.Body.Close()
50694		}
50695		return nil, &googleapi.Error{
50696			Code:   res.StatusCode,
50697			Header: res.Header,
50698		}
50699	}
50700	if err != nil {
50701		return nil, err
50702	}
50703	defer googleapi.CloseBody(res)
50704	if err := googleapi.CheckResponse(res); err != nil {
50705		return nil, err
50706	}
50707	ret := &AddressAggregatedList{
50708		ServerResponse: googleapi.ServerResponse{
50709			Header:         res.Header,
50710			HTTPStatusCode: res.StatusCode,
50711		},
50712	}
50713	target := &ret
50714	if err := gensupport.DecodeResponse(target, res); err != nil {
50715		return nil, err
50716	}
50717	return ret, nil
50718	// {
50719	//   "description": "Retrieves an aggregated list of addresses.",
50720	//   "httpMethod": "GET",
50721	//   "id": "compute.addresses.aggregatedList",
50722	//   "parameterOrder": [
50723	//     "project"
50724	//   ],
50725	//   "parameters": {
50726	//     "filter": {
50727	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
50728	//       "location": "query",
50729	//       "type": "string"
50730	//     },
50731	//     "includeAllScopes": {
50732	//       "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.",
50733	//       "location": "query",
50734	//       "type": "boolean"
50735	//     },
50736	//     "maxResults": {
50737	//       "default": "500",
50738	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50739	//       "format": "uint32",
50740	//       "location": "query",
50741	//       "minimum": "0",
50742	//       "type": "integer"
50743	//     },
50744	//     "orderBy": {
50745	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50746	//       "location": "query",
50747	//       "type": "string"
50748	//     },
50749	//     "pageToken": {
50750	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50751	//       "location": "query",
50752	//       "type": "string"
50753	//     },
50754	//     "project": {
50755	//       "description": "Project ID for this request.",
50756	//       "location": "path",
50757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50758	//       "required": true,
50759	//       "type": "string"
50760	//     },
50761	//     "returnPartialSuccess": {
50762	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
50763	//       "location": "query",
50764	//       "type": "boolean"
50765	//     }
50766	//   },
50767	//   "path": "{project}/aggregated/addresses",
50768	//   "response": {
50769	//     "$ref": "AddressAggregatedList"
50770	//   },
50771	//   "scopes": [
50772	//     "https://www.googleapis.com/auth/cloud-platform",
50773	//     "https://www.googleapis.com/auth/compute",
50774	//     "https://www.googleapis.com/auth/compute.readonly"
50775	//   ]
50776	// }
50777
50778}
50779
50780// Pages invokes f for each page of results.
50781// A non-nil error returned from f will halt the iteration.
50782// The provided context supersedes any context provided to the Context method.
50783func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
50784	c.ctx_ = ctx
50785	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50786	for {
50787		x, err := c.Do()
50788		if err != nil {
50789			return err
50790		}
50791		if err := f(x); err != nil {
50792			return err
50793		}
50794		if x.NextPageToken == "" {
50795			return nil
50796		}
50797		c.PageToken(x.NextPageToken)
50798	}
50799}
50800
50801// method id "compute.addresses.delete":
50802
50803type AddressesDeleteCall struct {
50804	s          *Service
50805	project    string
50806	region     string
50807	address    string
50808	urlParams_ gensupport.URLParams
50809	ctx_       context.Context
50810	header_    http.Header
50811}
50812
50813// Delete: Deletes the specified address resource.
50814// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
50815func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
50816	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50817	c.project = project
50818	c.region = region
50819	c.address = address
50820	return c
50821}
50822
50823// RequestId sets the optional parameter "requestId": An optional
50824// request ID to identify requests. Specify a unique request ID so that
50825// if you must retry your request, the server will know to ignore the
50826// request if it has already been completed.
50827//
50828// For example, consider a situation where you make an initial request
50829// and the request times out. If you make the request again with the
50830// same request ID, the server can check if original operation with the
50831// same request ID was received, and if so, will ignore the second
50832// request. This prevents clients from accidentally creating duplicate
50833// commitments.
50834//
50835// The request ID must be a valid UUID with the exception that zero UUID
50836// is not supported (00000000-0000-0000-0000-000000000000).
50837func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
50838	c.urlParams_.Set("requestId", requestId)
50839	return c
50840}
50841
50842// Fields allows partial responses to be retrieved. See
50843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50844// for more information.
50845func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
50846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50847	return c
50848}
50849
50850// Context sets the context to be used in this call's Do method. Any
50851// pending HTTP request will be aborted if the provided context is
50852// canceled.
50853func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
50854	c.ctx_ = ctx
50855	return c
50856}
50857
50858// Header returns an http.Header that can be modified by the caller to
50859// add HTTP headers to the request.
50860func (c *AddressesDeleteCall) Header() http.Header {
50861	if c.header_ == nil {
50862		c.header_ = make(http.Header)
50863	}
50864	return c.header_
50865}
50866
50867func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
50868	reqHeaders := make(http.Header)
50869	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
50870	for k, v := range c.header_ {
50871		reqHeaders[k] = v
50872	}
50873	reqHeaders.Set("User-Agent", c.s.userAgent())
50874	var body io.Reader = nil
50875	c.urlParams_.Set("alt", alt)
50876	c.urlParams_.Set("prettyPrint", "false")
50877	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
50878	urls += "?" + c.urlParams_.Encode()
50879	req, err := http.NewRequest("DELETE", urls, body)
50880	if err != nil {
50881		return nil, err
50882	}
50883	req.Header = reqHeaders
50884	googleapi.Expand(req.URL, map[string]string{
50885		"project": c.project,
50886		"region":  c.region,
50887		"address": c.address,
50888	})
50889	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50890}
50891
50892// Do executes the "compute.addresses.delete" call.
50893// Exactly one of *Operation or error will be non-nil. Any non-2xx
50894// status code is an error. Response headers are in either
50895// *Operation.ServerResponse.Header or (if a response was returned at
50896// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50897// to check whether the returned error was because
50898// http.StatusNotModified was returned.
50899func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50900	gensupport.SetOptions(c.urlParams_, opts...)
50901	res, err := c.doRequest("json")
50902	if res != nil && res.StatusCode == http.StatusNotModified {
50903		if res.Body != nil {
50904			res.Body.Close()
50905		}
50906		return nil, &googleapi.Error{
50907			Code:   res.StatusCode,
50908			Header: res.Header,
50909		}
50910	}
50911	if err != nil {
50912		return nil, err
50913	}
50914	defer googleapi.CloseBody(res)
50915	if err := googleapi.CheckResponse(res); err != nil {
50916		return nil, err
50917	}
50918	ret := &Operation{
50919		ServerResponse: googleapi.ServerResponse{
50920			Header:         res.Header,
50921			HTTPStatusCode: res.StatusCode,
50922		},
50923	}
50924	target := &ret
50925	if err := gensupport.DecodeResponse(target, res); err != nil {
50926		return nil, err
50927	}
50928	return ret, nil
50929	// {
50930	//   "description": "Deletes the specified address resource.",
50931	//   "httpMethod": "DELETE",
50932	//   "id": "compute.addresses.delete",
50933	//   "parameterOrder": [
50934	//     "project",
50935	//     "region",
50936	//     "address"
50937	//   ],
50938	//   "parameters": {
50939	//     "address": {
50940	//       "description": "Name of the address resource to delete.",
50941	//       "location": "path",
50942	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50943	//       "required": true,
50944	//       "type": "string"
50945	//     },
50946	//     "project": {
50947	//       "description": "Project ID for this request.",
50948	//       "location": "path",
50949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50950	//       "required": true,
50951	//       "type": "string"
50952	//     },
50953	//     "region": {
50954	//       "description": "Name of the region for this request.",
50955	//       "location": "path",
50956	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50957	//       "required": true,
50958	//       "type": "string"
50959	//     },
50960	//     "requestId": {
50961	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50962	//       "location": "query",
50963	//       "type": "string"
50964	//     }
50965	//   },
50966	//   "path": "{project}/regions/{region}/addresses/{address}",
50967	//   "response": {
50968	//     "$ref": "Operation"
50969	//   },
50970	//   "scopes": [
50971	//     "https://www.googleapis.com/auth/cloud-platform",
50972	//     "https://www.googleapis.com/auth/compute"
50973	//   ]
50974	// }
50975
50976}
50977
50978// method id "compute.addresses.get":
50979
50980type AddressesGetCall struct {
50981	s            *Service
50982	project      string
50983	region       string
50984	address      string
50985	urlParams_   gensupport.URLParams
50986	ifNoneMatch_ string
50987	ctx_         context.Context
50988	header_      http.Header
50989}
50990
50991// Get: Returns the specified address resource.
50992// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
50993func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
50994	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50995	c.project = project
50996	c.region = region
50997	c.address = address
50998	return c
50999}
51000
51001// Fields allows partial responses to be retrieved. See
51002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51003// for more information.
51004func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
51005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51006	return c
51007}
51008
51009// IfNoneMatch sets the optional parameter which makes the operation
51010// fail if the object's ETag matches the given value. This is useful for
51011// getting updates only after the object has changed since the last
51012// request. Use googleapi.IsNotModified to check whether the response
51013// error from Do is the result of In-None-Match.
51014func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
51015	c.ifNoneMatch_ = entityTag
51016	return c
51017}
51018
51019// Context sets the context to be used in this call's Do method. Any
51020// pending HTTP request will be aborted if the provided context is
51021// canceled.
51022func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
51023	c.ctx_ = ctx
51024	return c
51025}
51026
51027// Header returns an http.Header that can be modified by the caller to
51028// add HTTP headers to the request.
51029func (c *AddressesGetCall) Header() http.Header {
51030	if c.header_ == nil {
51031		c.header_ = make(http.Header)
51032	}
51033	return c.header_
51034}
51035
51036func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
51037	reqHeaders := make(http.Header)
51038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
51039	for k, v := range c.header_ {
51040		reqHeaders[k] = v
51041	}
51042	reqHeaders.Set("User-Agent", c.s.userAgent())
51043	if c.ifNoneMatch_ != "" {
51044		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51045	}
51046	var body io.Reader = nil
51047	c.urlParams_.Set("alt", alt)
51048	c.urlParams_.Set("prettyPrint", "false")
51049	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
51050	urls += "?" + c.urlParams_.Encode()
51051	req, err := http.NewRequest("GET", urls, body)
51052	if err != nil {
51053		return nil, err
51054	}
51055	req.Header = reqHeaders
51056	googleapi.Expand(req.URL, map[string]string{
51057		"project": c.project,
51058		"region":  c.region,
51059		"address": c.address,
51060	})
51061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51062}
51063
51064// Do executes the "compute.addresses.get" call.
51065// Exactly one of *Address or error will be non-nil. Any non-2xx status
51066// code is an error. Response headers are in either
51067// *Address.ServerResponse.Header or (if a response was returned at all)
51068// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
51069// check whether the returned error was because http.StatusNotModified
51070// was returned.
51071func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
51072	gensupport.SetOptions(c.urlParams_, opts...)
51073	res, err := c.doRequest("json")
51074	if res != nil && res.StatusCode == http.StatusNotModified {
51075		if res.Body != nil {
51076			res.Body.Close()
51077		}
51078		return nil, &googleapi.Error{
51079			Code:   res.StatusCode,
51080			Header: res.Header,
51081		}
51082	}
51083	if err != nil {
51084		return nil, err
51085	}
51086	defer googleapi.CloseBody(res)
51087	if err := googleapi.CheckResponse(res); err != nil {
51088		return nil, err
51089	}
51090	ret := &Address{
51091		ServerResponse: googleapi.ServerResponse{
51092			Header:         res.Header,
51093			HTTPStatusCode: res.StatusCode,
51094		},
51095	}
51096	target := &ret
51097	if err := gensupport.DecodeResponse(target, res); err != nil {
51098		return nil, err
51099	}
51100	return ret, nil
51101	// {
51102	//   "description": "Returns the specified address resource.",
51103	//   "httpMethod": "GET",
51104	//   "id": "compute.addresses.get",
51105	//   "parameterOrder": [
51106	//     "project",
51107	//     "region",
51108	//     "address"
51109	//   ],
51110	//   "parameters": {
51111	//     "address": {
51112	//       "description": "Name of the address resource to return.",
51113	//       "location": "path",
51114	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51115	//       "required": true,
51116	//       "type": "string"
51117	//     },
51118	//     "project": {
51119	//       "description": "Project ID for this request.",
51120	//       "location": "path",
51121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51122	//       "required": true,
51123	//       "type": "string"
51124	//     },
51125	//     "region": {
51126	//       "description": "Name of the region for this request.",
51127	//       "location": "path",
51128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51129	//       "required": true,
51130	//       "type": "string"
51131	//     }
51132	//   },
51133	//   "path": "{project}/regions/{region}/addresses/{address}",
51134	//   "response": {
51135	//     "$ref": "Address"
51136	//   },
51137	//   "scopes": [
51138	//     "https://www.googleapis.com/auth/cloud-platform",
51139	//     "https://www.googleapis.com/auth/compute",
51140	//     "https://www.googleapis.com/auth/compute.readonly"
51141	//   ]
51142	// }
51143
51144}
51145
51146// method id "compute.addresses.insert":
51147
51148type AddressesInsertCall struct {
51149	s          *Service
51150	project    string
51151	region     string
51152	address    *Address
51153	urlParams_ gensupport.URLParams
51154	ctx_       context.Context
51155	header_    http.Header
51156}
51157
51158// Insert: Creates an address resource in the specified project by using
51159// the data included in the request.
51160// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
51161func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
51162	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51163	c.project = project
51164	c.region = region
51165	c.address = address
51166	return c
51167}
51168
51169// RequestId sets the optional parameter "requestId": An optional
51170// request ID to identify requests. Specify a unique request ID so that
51171// if you must retry your request, the server will know to ignore the
51172// request if it has already been completed.
51173//
51174// For example, consider a situation where you make an initial request
51175// and the request times out. If you make the request again with the
51176// same request ID, the server can check if original operation with the
51177// same request ID was received, and if so, will ignore the second
51178// request. This prevents clients from accidentally creating duplicate
51179// commitments.
51180//
51181// The request ID must be a valid UUID with the exception that zero UUID
51182// is not supported (00000000-0000-0000-0000-000000000000).
51183func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
51184	c.urlParams_.Set("requestId", requestId)
51185	return c
51186}
51187
51188// Fields allows partial responses to be retrieved. See
51189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51190// for more information.
51191func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
51192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51193	return c
51194}
51195
51196// Context sets the context to be used in this call's Do method. Any
51197// pending HTTP request will be aborted if the provided context is
51198// canceled.
51199func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
51200	c.ctx_ = ctx
51201	return c
51202}
51203
51204// Header returns an http.Header that can be modified by the caller to
51205// add HTTP headers to the request.
51206func (c *AddressesInsertCall) Header() http.Header {
51207	if c.header_ == nil {
51208		c.header_ = make(http.Header)
51209	}
51210	return c.header_
51211}
51212
51213func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
51214	reqHeaders := make(http.Header)
51215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
51216	for k, v := range c.header_ {
51217		reqHeaders[k] = v
51218	}
51219	reqHeaders.Set("User-Agent", c.s.userAgent())
51220	var body io.Reader = nil
51221	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
51222	if err != nil {
51223		return nil, err
51224	}
51225	reqHeaders.Set("Content-Type", "application/json")
51226	c.urlParams_.Set("alt", alt)
51227	c.urlParams_.Set("prettyPrint", "false")
51228	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
51229	urls += "?" + c.urlParams_.Encode()
51230	req, err := http.NewRequest("POST", urls, body)
51231	if err != nil {
51232		return nil, err
51233	}
51234	req.Header = reqHeaders
51235	googleapi.Expand(req.URL, map[string]string{
51236		"project": c.project,
51237		"region":  c.region,
51238	})
51239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51240}
51241
51242// Do executes the "compute.addresses.insert" call.
51243// Exactly one of *Operation or error will be non-nil. Any non-2xx
51244// status code is an error. Response headers are in either
51245// *Operation.ServerResponse.Header or (if a response was returned at
51246// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51247// to check whether the returned error was because
51248// http.StatusNotModified was returned.
51249func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51250	gensupport.SetOptions(c.urlParams_, opts...)
51251	res, err := c.doRequest("json")
51252	if res != nil && res.StatusCode == http.StatusNotModified {
51253		if res.Body != nil {
51254			res.Body.Close()
51255		}
51256		return nil, &googleapi.Error{
51257			Code:   res.StatusCode,
51258			Header: res.Header,
51259		}
51260	}
51261	if err != nil {
51262		return nil, err
51263	}
51264	defer googleapi.CloseBody(res)
51265	if err := googleapi.CheckResponse(res); err != nil {
51266		return nil, err
51267	}
51268	ret := &Operation{
51269		ServerResponse: googleapi.ServerResponse{
51270			Header:         res.Header,
51271			HTTPStatusCode: res.StatusCode,
51272		},
51273	}
51274	target := &ret
51275	if err := gensupport.DecodeResponse(target, res); err != nil {
51276		return nil, err
51277	}
51278	return ret, nil
51279	// {
51280	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
51281	//   "httpMethod": "POST",
51282	//   "id": "compute.addresses.insert",
51283	//   "parameterOrder": [
51284	//     "project",
51285	//     "region"
51286	//   ],
51287	//   "parameters": {
51288	//     "project": {
51289	//       "description": "Project ID for this request.",
51290	//       "location": "path",
51291	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51292	//       "required": true,
51293	//       "type": "string"
51294	//     },
51295	//     "region": {
51296	//       "description": "Name of the region for this request.",
51297	//       "location": "path",
51298	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51299	//       "required": true,
51300	//       "type": "string"
51301	//     },
51302	//     "requestId": {
51303	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51304	//       "location": "query",
51305	//       "type": "string"
51306	//     }
51307	//   },
51308	//   "path": "{project}/regions/{region}/addresses",
51309	//   "request": {
51310	//     "$ref": "Address"
51311	//   },
51312	//   "response": {
51313	//     "$ref": "Operation"
51314	//   },
51315	//   "scopes": [
51316	//     "https://www.googleapis.com/auth/cloud-platform",
51317	//     "https://www.googleapis.com/auth/compute"
51318	//   ]
51319	// }
51320
51321}
51322
51323// method id "compute.addresses.list":
51324
51325type AddressesListCall struct {
51326	s            *Service
51327	project      string
51328	region       string
51329	urlParams_   gensupport.URLParams
51330	ifNoneMatch_ string
51331	ctx_         context.Context
51332	header_      http.Header
51333}
51334
51335// List: Retrieves a list of addresses contained within the specified
51336// region.
51337// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
51338func (r *AddressesService) List(project string, region string) *AddressesListCall {
51339	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51340	c.project = project
51341	c.region = region
51342	return c
51343}
51344
51345// Filter sets the optional parameter "filter": A filter expression that
51346// filters resources listed in the response. The expression must specify
51347// the field name, a comparison operator, and the value that you want to
51348// use for filtering. The value must be a string, a number, or a
51349// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51350// `<`.
51351//
51352// For example, if you are filtering Compute Engine instances, you can
51353// exclude instances named `example-instance` by specifying `name !=
51354// example-instance`.
51355//
51356// You can also filter nested fields. For example, you could specify
51357// `scheduling.automaticRestart = false` to include instances only if
51358// they are not scheduled for automatic restarts. You can use filtering
51359// on nested fields to filter based on resource labels.
51360//
51361// To filter on multiple expressions, provide each separate expression
51362// within parentheses. For example: ``` (scheduling.automaticRestart =
51363// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
51364// is an `AND` expression. However, you can include `AND` and `OR`
51365// expressions explicitly. For example: ``` (cpuPlatform = "Intel
51366// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
51367// (scheduling.automaticRestart = true) ```
51368func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
51369	c.urlParams_.Set("filter", filter)
51370	return c
51371}
51372
51373// MaxResults sets the optional parameter "maxResults": The maximum
51374// number of results per page that should be returned. If the number of
51375// available results is larger than `maxResults`, Compute Engine returns
51376// a `nextPageToken` that can be used to get the next page of results in
51377// subsequent list requests. Acceptable values are `0` to `500`,
51378// inclusive. (Default: `500`)
51379func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
51380	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51381	return c
51382}
51383
51384// OrderBy sets the optional parameter "orderBy": Sorts list results by
51385// a certain order. By default, results are returned in alphanumerical
51386// order based on the resource name.
51387//
51388// You can also sort results in descending order based on the creation
51389// timestamp using `orderBy="creationTimestamp desc". This sorts
51390// results based on the `creationTimestamp` field in reverse
51391// chronological order (newest result first). Use this to sort resources
51392// like operations so that the newest operation is returned
51393// first.
51394//
51395// Currently, only sorting by `name` or `creationTimestamp desc` is
51396// supported.
51397func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
51398	c.urlParams_.Set("orderBy", orderBy)
51399	return c
51400}
51401
51402// PageToken sets the optional parameter "pageToken": Specifies a page
51403// token to use. Set `pageToken` to the `nextPageToken` returned by a
51404// previous list request to get the next page of results.
51405func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
51406	c.urlParams_.Set("pageToken", pageToken)
51407	return c
51408}
51409
51410// ReturnPartialSuccess sets the optional parameter
51411// "returnPartialSuccess": Opt-in for partial success behavior which
51412// provides partial results in case of failure. The default value is
51413// false and the logic is the same as today.
51414func (c *AddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesListCall {
51415	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
51416	return c
51417}
51418
51419// Fields allows partial responses to be retrieved. See
51420// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51421// for more information.
51422func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
51423	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51424	return c
51425}
51426
51427// IfNoneMatch sets the optional parameter which makes the operation
51428// fail if the object's ETag matches the given value. This is useful for
51429// getting updates only after the object has changed since the last
51430// request. Use googleapi.IsNotModified to check whether the response
51431// error from Do is the result of In-None-Match.
51432func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
51433	c.ifNoneMatch_ = entityTag
51434	return c
51435}
51436
51437// Context sets the context to be used in this call's Do method. Any
51438// pending HTTP request will be aborted if the provided context is
51439// canceled.
51440func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
51441	c.ctx_ = ctx
51442	return c
51443}
51444
51445// Header returns an http.Header that can be modified by the caller to
51446// add HTTP headers to the request.
51447func (c *AddressesListCall) Header() http.Header {
51448	if c.header_ == nil {
51449		c.header_ = make(http.Header)
51450	}
51451	return c.header_
51452}
51453
51454func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
51455	reqHeaders := make(http.Header)
51456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
51457	for k, v := range c.header_ {
51458		reqHeaders[k] = v
51459	}
51460	reqHeaders.Set("User-Agent", c.s.userAgent())
51461	if c.ifNoneMatch_ != "" {
51462		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51463	}
51464	var body io.Reader = nil
51465	c.urlParams_.Set("alt", alt)
51466	c.urlParams_.Set("prettyPrint", "false")
51467	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
51468	urls += "?" + c.urlParams_.Encode()
51469	req, err := http.NewRequest("GET", urls, body)
51470	if err != nil {
51471		return nil, err
51472	}
51473	req.Header = reqHeaders
51474	googleapi.Expand(req.URL, map[string]string{
51475		"project": c.project,
51476		"region":  c.region,
51477	})
51478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51479}
51480
51481// Do executes the "compute.addresses.list" call.
51482// Exactly one of *AddressList or error will be non-nil. Any non-2xx
51483// status code is an error. Response headers are in either
51484// *AddressList.ServerResponse.Header or (if a response was returned at
51485// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51486// to check whether the returned error was because
51487// http.StatusNotModified was returned.
51488func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
51489	gensupport.SetOptions(c.urlParams_, opts...)
51490	res, err := c.doRequest("json")
51491	if res != nil && res.StatusCode == http.StatusNotModified {
51492		if res.Body != nil {
51493			res.Body.Close()
51494		}
51495		return nil, &googleapi.Error{
51496			Code:   res.StatusCode,
51497			Header: res.Header,
51498		}
51499	}
51500	if err != nil {
51501		return nil, err
51502	}
51503	defer googleapi.CloseBody(res)
51504	if err := googleapi.CheckResponse(res); err != nil {
51505		return nil, err
51506	}
51507	ret := &AddressList{
51508		ServerResponse: googleapi.ServerResponse{
51509			Header:         res.Header,
51510			HTTPStatusCode: res.StatusCode,
51511		},
51512	}
51513	target := &ret
51514	if err := gensupport.DecodeResponse(target, res); err != nil {
51515		return nil, err
51516	}
51517	return ret, nil
51518	// {
51519	//   "description": "Retrieves a list of addresses contained within the specified region.",
51520	//   "httpMethod": "GET",
51521	//   "id": "compute.addresses.list",
51522	//   "parameterOrder": [
51523	//     "project",
51524	//     "region"
51525	//   ],
51526	//   "parameters": {
51527	//     "filter": {
51528	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
51529	//       "location": "query",
51530	//       "type": "string"
51531	//     },
51532	//     "maxResults": {
51533	//       "default": "500",
51534	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
51535	//       "format": "uint32",
51536	//       "location": "query",
51537	//       "minimum": "0",
51538	//       "type": "integer"
51539	//     },
51540	//     "orderBy": {
51541	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
51542	//       "location": "query",
51543	//       "type": "string"
51544	//     },
51545	//     "pageToken": {
51546	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
51547	//       "location": "query",
51548	//       "type": "string"
51549	//     },
51550	//     "project": {
51551	//       "description": "Project ID for this request.",
51552	//       "location": "path",
51553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51554	//       "required": true,
51555	//       "type": "string"
51556	//     },
51557	//     "region": {
51558	//       "description": "Name of the region for this request.",
51559	//       "location": "path",
51560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51561	//       "required": true,
51562	//       "type": "string"
51563	//     },
51564	//     "returnPartialSuccess": {
51565	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
51566	//       "location": "query",
51567	//       "type": "boolean"
51568	//     }
51569	//   },
51570	//   "path": "{project}/regions/{region}/addresses",
51571	//   "response": {
51572	//     "$ref": "AddressList"
51573	//   },
51574	//   "scopes": [
51575	//     "https://www.googleapis.com/auth/cloud-platform",
51576	//     "https://www.googleapis.com/auth/compute",
51577	//     "https://www.googleapis.com/auth/compute.readonly"
51578	//   ]
51579	// }
51580
51581}
51582
51583// Pages invokes f for each page of results.
51584// A non-nil error returned from f will halt the iteration.
51585// The provided context supersedes any context provided to the Context method.
51586func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
51587	c.ctx_ = ctx
51588	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51589	for {
51590		x, err := c.Do()
51591		if err != nil {
51592			return err
51593		}
51594		if err := f(x); err != nil {
51595			return err
51596		}
51597		if x.NextPageToken == "" {
51598			return nil
51599		}
51600		c.PageToken(x.NextPageToken)
51601	}
51602}
51603
51604// method id "compute.addresses.setLabels":
51605
51606type AddressesSetLabelsCall struct {
51607	s                      *Service
51608	project                string
51609	region                 string
51610	resource               string
51611	regionsetlabelsrequest *RegionSetLabelsRequest
51612	urlParams_             gensupport.URLParams
51613	ctx_                   context.Context
51614	header_                http.Header
51615}
51616
51617// SetLabels: Sets the labels on an Address. To learn more about labels,
51618// read the Labeling Resources documentation.
51619func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall {
51620	c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51621	c.project = project
51622	c.region = region
51623	c.resource = resource
51624	c.regionsetlabelsrequest = regionsetlabelsrequest
51625	return c
51626}
51627
51628// RequestId sets the optional parameter "requestId": An optional
51629// request ID to identify requests. Specify a unique request ID so that
51630// if you must retry your request, the server will know to ignore the
51631// request if it has already been completed.
51632//
51633// For example, consider a situation where you make an initial request
51634// and the request times out. If you make the request again with the
51635// same request ID, the server can check if original operation with the
51636// same request ID was received, and if so, will ignore the second
51637// request. This prevents clients from accidentally creating duplicate
51638// commitments.
51639//
51640// The request ID must be a valid UUID with the exception that zero UUID
51641// is not supported (00000000-0000-0000-0000-000000000000).
51642func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall {
51643	c.urlParams_.Set("requestId", requestId)
51644	return c
51645}
51646
51647// Fields allows partial responses to be retrieved. See
51648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51649// for more information.
51650func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall {
51651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51652	return c
51653}
51654
51655// Context sets the context to be used in this call's Do method. Any
51656// pending HTTP request will be aborted if the provided context is
51657// canceled.
51658func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall {
51659	c.ctx_ = ctx
51660	return c
51661}
51662
51663// Header returns an http.Header that can be modified by the caller to
51664// add HTTP headers to the request.
51665func (c *AddressesSetLabelsCall) Header() http.Header {
51666	if c.header_ == nil {
51667		c.header_ = make(http.Header)
51668	}
51669	return c.header_
51670}
51671
51672func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
51673	reqHeaders := make(http.Header)
51674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
51675	for k, v := range c.header_ {
51676		reqHeaders[k] = v
51677	}
51678	reqHeaders.Set("User-Agent", c.s.userAgent())
51679	var body io.Reader = nil
51680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
51681	if err != nil {
51682		return nil, err
51683	}
51684	reqHeaders.Set("Content-Type", "application/json")
51685	c.urlParams_.Set("alt", alt)
51686	c.urlParams_.Set("prettyPrint", "false")
51687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/setLabels")
51688	urls += "?" + c.urlParams_.Encode()
51689	req, err := http.NewRequest("POST", urls, body)
51690	if err != nil {
51691		return nil, err
51692	}
51693	req.Header = reqHeaders
51694	googleapi.Expand(req.URL, map[string]string{
51695		"project":  c.project,
51696		"region":   c.region,
51697		"resource": c.resource,
51698	})
51699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51700}
51701
51702// Do executes the "compute.addresses.setLabels" call.
51703// Exactly one of *Operation or error will be non-nil. Any non-2xx
51704// status code is an error. Response headers are in either
51705// *Operation.ServerResponse.Header or (if a response was returned at
51706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51707// to check whether the returned error was because
51708// http.StatusNotModified was returned.
51709func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51710	gensupport.SetOptions(c.urlParams_, opts...)
51711	res, err := c.doRequest("json")
51712	if res != nil && res.StatusCode == http.StatusNotModified {
51713		if res.Body != nil {
51714			res.Body.Close()
51715		}
51716		return nil, &googleapi.Error{
51717			Code:   res.StatusCode,
51718			Header: res.Header,
51719		}
51720	}
51721	if err != nil {
51722		return nil, err
51723	}
51724	defer googleapi.CloseBody(res)
51725	if err := googleapi.CheckResponse(res); err != nil {
51726		return nil, err
51727	}
51728	ret := &Operation{
51729		ServerResponse: googleapi.ServerResponse{
51730			Header:         res.Header,
51731			HTTPStatusCode: res.StatusCode,
51732		},
51733	}
51734	target := &ret
51735	if err := gensupport.DecodeResponse(target, res); err != nil {
51736		return nil, err
51737	}
51738	return ret, nil
51739	// {
51740	//   "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.",
51741	//   "httpMethod": "POST",
51742	//   "id": "compute.addresses.setLabels",
51743	//   "parameterOrder": [
51744	//     "project",
51745	//     "region",
51746	//     "resource"
51747	//   ],
51748	//   "parameters": {
51749	//     "project": {
51750	//       "description": "Project ID for this request.",
51751	//       "location": "path",
51752	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51753	//       "required": true,
51754	//       "type": "string"
51755	//     },
51756	//     "region": {
51757	//       "description": "The region for this request.",
51758	//       "location": "path",
51759	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51760	//       "required": true,
51761	//       "type": "string"
51762	//     },
51763	//     "requestId": {
51764	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51765	//       "location": "query",
51766	//       "type": "string"
51767	//     },
51768	//     "resource": {
51769	//       "description": "Name or id of the resource for this request.",
51770	//       "location": "path",
51771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51772	//       "required": true,
51773	//       "type": "string"
51774	//     }
51775	//   },
51776	//   "path": "{project}/regions/{region}/addresses/{resource}/setLabels",
51777	//   "request": {
51778	//     "$ref": "RegionSetLabelsRequest"
51779	//   },
51780	//   "response": {
51781	//     "$ref": "Operation"
51782	//   },
51783	//   "scopes": [
51784	//     "https://www.googleapis.com/auth/cloud-platform",
51785	//     "https://www.googleapis.com/auth/compute"
51786	//   ]
51787	// }
51788
51789}
51790
51791// method id "compute.addresses.testIamPermissions":
51792
51793type AddressesTestIamPermissionsCall struct {
51794	s                      *Service
51795	project                string
51796	region                 string
51797	resource               string
51798	testpermissionsrequest *TestPermissionsRequest
51799	urlParams_             gensupport.URLParams
51800	ctx_                   context.Context
51801	header_                http.Header
51802}
51803
51804// TestIamPermissions: Returns permissions that a caller has on the
51805// specified resource.
51806func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall {
51807	c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51808	c.project = project
51809	c.region = region
51810	c.resource = resource
51811	c.testpermissionsrequest = testpermissionsrequest
51812	return c
51813}
51814
51815// Fields allows partial responses to be retrieved. See
51816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51817// for more information.
51818func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall {
51819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51820	return c
51821}
51822
51823// Context sets the context to be used in this call's Do method. Any
51824// pending HTTP request will be aborted if the provided context is
51825// canceled.
51826func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall {
51827	c.ctx_ = ctx
51828	return c
51829}
51830
51831// Header returns an http.Header that can be modified by the caller to
51832// add HTTP headers to the request.
51833func (c *AddressesTestIamPermissionsCall) Header() http.Header {
51834	if c.header_ == nil {
51835		c.header_ = make(http.Header)
51836	}
51837	return c.header_
51838}
51839
51840func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
51841	reqHeaders := make(http.Header)
51842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
51843	for k, v := range c.header_ {
51844		reqHeaders[k] = v
51845	}
51846	reqHeaders.Set("User-Agent", c.s.userAgent())
51847	var body io.Reader = nil
51848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
51849	if err != nil {
51850		return nil, err
51851	}
51852	reqHeaders.Set("Content-Type", "application/json")
51853	c.urlParams_.Set("alt", alt)
51854	c.urlParams_.Set("prettyPrint", "false")
51855	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/testIamPermissions")
51856	urls += "?" + c.urlParams_.Encode()
51857	req, err := http.NewRequest("POST", urls, body)
51858	if err != nil {
51859		return nil, err
51860	}
51861	req.Header = reqHeaders
51862	googleapi.Expand(req.URL, map[string]string{
51863		"project":  c.project,
51864		"region":   c.region,
51865		"resource": c.resource,
51866	})
51867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51868}
51869
51870// Do executes the "compute.addresses.testIamPermissions" call.
51871// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
51872// non-2xx status code is an error. Response headers are in either
51873// *TestPermissionsResponse.ServerResponse.Header or (if a response was
51874// returned at all) in error.(*googleapi.Error).Header. Use
51875// googleapi.IsNotModified to check whether the returned error was
51876// because http.StatusNotModified was returned.
51877func (c *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
51878	gensupport.SetOptions(c.urlParams_, opts...)
51879	res, err := c.doRequest("json")
51880	if res != nil && res.StatusCode == http.StatusNotModified {
51881		if res.Body != nil {
51882			res.Body.Close()
51883		}
51884		return nil, &googleapi.Error{
51885			Code:   res.StatusCode,
51886			Header: res.Header,
51887		}
51888	}
51889	if err != nil {
51890		return nil, err
51891	}
51892	defer googleapi.CloseBody(res)
51893	if err := googleapi.CheckResponse(res); err != nil {
51894		return nil, err
51895	}
51896	ret := &TestPermissionsResponse{
51897		ServerResponse: googleapi.ServerResponse{
51898			Header:         res.Header,
51899			HTTPStatusCode: res.StatusCode,
51900		},
51901	}
51902	target := &ret
51903	if err := gensupport.DecodeResponse(target, res); err != nil {
51904		return nil, err
51905	}
51906	return ret, nil
51907	// {
51908	//   "description": "Returns permissions that a caller has on the specified resource.",
51909	//   "httpMethod": "POST",
51910	//   "id": "compute.addresses.testIamPermissions",
51911	//   "parameterOrder": [
51912	//     "project",
51913	//     "region",
51914	//     "resource"
51915	//   ],
51916	//   "parameters": {
51917	//     "project": {
51918	//       "description": "Project ID for this request.",
51919	//       "location": "path",
51920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51921	//       "required": true,
51922	//       "type": "string"
51923	//     },
51924	//     "region": {
51925	//       "description": "The name of the region for this request.",
51926	//       "location": "path",
51927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51928	//       "required": true,
51929	//       "type": "string"
51930	//     },
51931	//     "resource": {
51932	//       "description": "Name or id of the resource for this request.",
51933	//       "location": "path",
51934	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51935	//       "required": true,
51936	//       "type": "string"
51937	//     }
51938	//   },
51939	//   "path": "{project}/regions/{region}/addresses/{resource}/testIamPermissions",
51940	//   "request": {
51941	//     "$ref": "TestPermissionsRequest"
51942	//   },
51943	//   "response": {
51944	//     "$ref": "TestPermissionsResponse"
51945	//   },
51946	//   "scopes": [
51947	//     "https://www.googleapis.com/auth/cloud-platform",
51948	//     "https://www.googleapis.com/auth/compute",
51949	//     "https://www.googleapis.com/auth/compute.readonly"
51950	//   ]
51951	// }
51952
51953}
51954
51955// method id "compute.autoscalers.aggregatedList":
51956
51957type AutoscalersAggregatedListCall struct {
51958	s            *Service
51959	project      string
51960	urlParams_   gensupport.URLParams
51961	ifNoneMatch_ string
51962	ctx_         context.Context
51963	header_      http.Header
51964}
51965
51966// AggregatedList: Retrieves an aggregated list of autoscalers.
51967func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
51968	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51969	c.project = project
51970	return c
51971}
51972
51973// Filter sets the optional parameter "filter": A filter expression that
51974// filters resources listed in the response. The expression must specify
51975// the field name, a comparison operator, and the value that you want to
51976// use for filtering. The value must be a string, a number, or a
51977// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51978// `<`.
51979//
51980// For example, if you are filtering Compute Engine instances, you can
51981// exclude instances named `example-instance` by specifying `name !=
51982// example-instance`.
51983//
51984// You can also filter nested fields. For example, you could specify
51985// `scheduling.automaticRestart = false` to include instances only if
51986// they are not scheduled for automatic restarts. You can use filtering
51987// on nested fields to filter based on resource labels.
51988//
51989// To filter on multiple expressions, provide each separate expression
51990// within parentheses. For example: ``` (scheduling.automaticRestart =
51991// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
51992// is an `AND` expression. However, you can include `AND` and `OR`
51993// expressions explicitly. For example: ``` (cpuPlatform = "Intel
51994// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
51995// (scheduling.automaticRestart = true) ```
51996func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
51997	c.urlParams_.Set("filter", filter)
51998	return c
51999}
52000
52001// IncludeAllScopes sets the optional parameter "includeAllScopes":
52002// Indicates whether every visible scope for each scope type (zone,
52003// region, global) should be included in the response. For new resource
52004// types added after this field, the flag has no effect as new resource
52005// types will always include every visible scope for each scope type in
52006// response. For resource types which predate this field, if this flag
52007// is omitted or false, only scopes of the scope types where the
52008// resource type is expected to be found will be included.
52009func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
52010	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52011	return c
52012}
52013
52014// MaxResults sets the optional parameter "maxResults": The maximum
52015// number of results per page that should be returned. If the number of
52016// available results is larger than `maxResults`, Compute Engine returns
52017// a `nextPageToken` that can be used to get the next page of results in
52018// subsequent list requests. Acceptable values are `0` to `500`,
52019// inclusive. (Default: `500`)
52020func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
52021	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52022	return c
52023}
52024
52025// OrderBy sets the optional parameter "orderBy": Sorts list results by
52026// a certain order. By default, results are returned in alphanumerical
52027// order based on the resource name.
52028//
52029// You can also sort results in descending order based on the creation
52030// timestamp using `orderBy="creationTimestamp desc". This sorts
52031// results based on the `creationTimestamp` field in reverse
52032// chronological order (newest result first). Use this to sort resources
52033// like operations so that the newest operation is returned
52034// first.
52035//
52036// Currently, only sorting by `name` or `creationTimestamp desc` is
52037// supported.
52038func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
52039	c.urlParams_.Set("orderBy", orderBy)
52040	return c
52041}
52042
52043// PageToken sets the optional parameter "pageToken": Specifies a page
52044// token to use. Set `pageToken` to the `nextPageToken` returned by a
52045// previous list request to get the next page of results.
52046func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
52047	c.urlParams_.Set("pageToken", pageToken)
52048	return c
52049}
52050
52051// ReturnPartialSuccess sets the optional parameter
52052// "returnPartialSuccess": Opt-in for partial success behavior which
52053// provides partial results in case of failure. The default value is
52054// false and the logic is the same as today.
52055func (c *AutoscalersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersAggregatedListCall {
52056	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52057	return c
52058}
52059
52060// Fields allows partial responses to be retrieved. See
52061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52062// for more information.
52063func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
52064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52065	return c
52066}
52067
52068// IfNoneMatch sets the optional parameter which makes the operation
52069// fail if the object's ETag matches the given value. This is useful for
52070// getting updates only after the object has changed since the last
52071// request. Use googleapi.IsNotModified to check whether the response
52072// error from Do is the result of In-None-Match.
52073func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
52074	c.ifNoneMatch_ = entityTag
52075	return c
52076}
52077
52078// Context sets the context to be used in this call's Do method. Any
52079// pending HTTP request will be aborted if the provided context is
52080// canceled.
52081func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
52082	c.ctx_ = ctx
52083	return c
52084}
52085
52086// Header returns an http.Header that can be modified by the caller to
52087// add HTTP headers to the request.
52088func (c *AutoscalersAggregatedListCall) Header() http.Header {
52089	if c.header_ == nil {
52090		c.header_ = make(http.Header)
52091	}
52092	return c.header_
52093}
52094
52095func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52096	reqHeaders := make(http.Header)
52097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
52098	for k, v := range c.header_ {
52099		reqHeaders[k] = v
52100	}
52101	reqHeaders.Set("User-Agent", c.s.userAgent())
52102	if c.ifNoneMatch_ != "" {
52103		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52104	}
52105	var body io.Reader = nil
52106	c.urlParams_.Set("alt", alt)
52107	c.urlParams_.Set("prettyPrint", "false")
52108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
52109	urls += "?" + c.urlParams_.Encode()
52110	req, err := http.NewRequest("GET", urls, body)
52111	if err != nil {
52112		return nil, err
52113	}
52114	req.Header = reqHeaders
52115	googleapi.Expand(req.URL, map[string]string{
52116		"project": c.project,
52117	})
52118	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52119}
52120
52121// Do executes the "compute.autoscalers.aggregatedList" call.
52122// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
52123// Any non-2xx status code is an error. Response headers are in either
52124// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
52125// returned at all) in error.(*googleapi.Error).Header. Use
52126// googleapi.IsNotModified to check whether the returned error was
52127// because http.StatusNotModified was returned.
52128func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
52129	gensupport.SetOptions(c.urlParams_, opts...)
52130	res, err := c.doRequest("json")
52131	if res != nil && res.StatusCode == http.StatusNotModified {
52132		if res.Body != nil {
52133			res.Body.Close()
52134		}
52135		return nil, &googleapi.Error{
52136			Code:   res.StatusCode,
52137			Header: res.Header,
52138		}
52139	}
52140	if err != nil {
52141		return nil, err
52142	}
52143	defer googleapi.CloseBody(res)
52144	if err := googleapi.CheckResponse(res); err != nil {
52145		return nil, err
52146	}
52147	ret := &AutoscalerAggregatedList{
52148		ServerResponse: googleapi.ServerResponse{
52149			Header:         res.Header,
52150			HTTPStatusCode: res.StatusCode,
52151		},
52152	}
52153	target := &ret
52154	if err := gensupport.DecodeResponse(target, res); err != nil {
52155		return nil, err
52156	}
52157	return ret, nil
52158	// {
52159	//   "description": "Retrieves an aggregated list of autoscalers.",
52160	//   "httpMethod": "GET",
52161	//   "id": "compute.autoscalers.aggregatedList",
52162	//   "parameterOrder": [
52163	//     "project"
52164	//   ],
52165	//   "parameters": {
52166	//     "filter": {
52167	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52168	//       "location": "query",
52169	//       "type": "string"
52170	//     },
52171	//     "includeAllScopes": {
52172	//       "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.",
52173	//       "location": "query",
52174	//       "type": "boolean"
52175	//     },
52176	//     "maxResults": {
52177	//       "default": "500",
52178	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52179	//       "format": "uint32",
52180	//       "location": "query",
52181	//       "minimum": "0",
52182	//       "type": "integer"
52183	//     },
52184	//     "orderBy": {
52185	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
52186	//       "location": "query",
52187	//       "type": "string"
52188	//     },
52189	//     "pageToken": {
52190	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52191	//       "location": "query",
52192	//       "type": "string"
52193	//     },
52194	//     "project": {
52195	//       "description": "Project ID for this request.",
52196	//       "location": "path",
52197	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52198	//       "required": true,
52199	//       "type": "string"
52200	//     },
52201	//     "returnPartialSuccess": {
52202	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
52203	//       "location": "query",
52204	//       "type": "boolean"
52205	//     }
52206	//   },
52207	//   "path": "{project}/aggregated/autoscalers",
52208	//   "response": {
52209	//     "$ref": "AutoscalerAggregatedList"
52210	//   },
52211	//   "scopes": [
52212	//     "https://www.googleapis.com/auth/cloud-platform",
52213	//     "https://www.googleapis.com/auth/compute",
52214	//     "https://www.googleapis.com/auth/compute.readonly"
52215	//   ]
52216	// }
52217
52218}
52219
52220// Pages invokes f for each page of results.
52221// A non-nil error returned from f will halt the iteration.
52222// The provided context supersedes any context provided to the Context method.
52223func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
52224	c.ctx_ = ctx
52225	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52226	for {
52227		x, err := c.Do()
52228		if err != nil {
52229			return err
52230		}
52231		if err := f(x); err != nil {
52232			return err
52233		}
52234		if x.NextPageToken == "" {
52235			return nil
52236		}
52237		c.PageToken(x.NextPageToken)
52238	}
52239}
52240
52241// method id "compute.autoscalers.delete":
52242
52243type AutoscalersDeleteCall struct {
52244	s          *Service
52245	project    string
52246	zone       string
52247	autoscaler string
52248	urlParams_ gensupport.URLParams
52249	ctx_       context.Context
52250	header_    http.Header
52251}
52252
52253// Delete: Deletes the specified autoscaler.
52254func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
52255	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52256	c.project = project
52257	c.zone = zone
52258	c.autoscaler = autoscaler
52259	return c
52260}
52261
52262// RequestId sets the optional parameter "requestId": An optional
52263// request ID to identify requests. Specify a unique request ID so that
52264// if you must retry your request, the server will know to ignore the
52265// request if it has already been completed.
52266//
52267// For example, consider a situation where you make an initial request
52268// and the request times out. If you make the request again with the
52269// same request ID, the server can check if original operation with the
52270// same request ID was received, and if so, will ignore the second
52271// request. This prevents clients from accidentally creating duplicate
52272// commitments.
52273//
52274// The request ID must be a valid UUID with the exception that zero UUID
52275// is not supported (00000000-0000-0000-0000-000000000000).
52276func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
52277	c.urlParams_.Set("requestId", requestId)
52278	return c
52279}
52280
52281// Fields allows partial responses to be retrieved. See
52282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52283// for more information.
52284func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
52285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52286	return c
52287}
52288
52289// Context sets the context to be used in this call's Do method. Any
52290// pending HTTP request will be aborted if the provided context is
52291// canceled.
52292func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
52293	c.ctx_ = ctx
52294	return c
52295}
52296
52297// Header returns an http.Header that can be modified by the caller to
52298// add HTTP headers to the request.
52299func (c *AutoscalersDeleteCall) Header() http.Header {
52300	if c.header_ == nil {
52301		c.header_ = make(http.Header)
52302	}
52303	return c.header_
52304}
52305
52306func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
52307	reqHeaders := make(http.Header)
52308	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
52309	for k, v := range c.header_ {
52310		reqHeaders[k] = v
52311	}
52312	reqHeaders.Set("User-Agent", c.s.userAgent())
52313	var body io.Reader = nil
52314	c.urlParams_.Set("alt", alt)
52315	c.urlParams_.Set("prettyPrint", "false")
52316	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
52317	urls += "?" + c.urlParams_.Encode()
52318	req, err := http.NewRequest("DELETE", urls, body)
52319	if err != nil {
52320		return nil, err
52321	}
52322	req.Header = reqHeaders
52323	googleapi.Expand(req.URL, map[string]string{
52324		"project":    c.project,
52325		"zone":       c.zone,
52326		"autoscaler": c.autoscaler,
52327	})
52328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52329}
52330
52331// Do executes the "compute.autoscalers.delete" call.
52332// Exactly one of *Operation or error will be non-nil. Any non-2xx
52333// status code is an error. Response headers are in either
52334// *Operation.ServerResponse.Header or (if a response was returned at
52335// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52336// to check whether the returned error was because
52337// http.StatusNotModified was returned.
52338func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52339	gensupport.SetOptions(c.urlParams_, opts...)
52340	res, err := c.doRequest("json")
52341	if res != nil && res.StatusCode == http.StatusNotModified {
52342		if res.Body != nil {
52343			res.Body.Close()
52344		}
52345		return nil, &googleapi.Error{
52346			Code:   res.StatusCode,
52347			Header: res.Header,
52348		}
52349	}
52350	if err != nil {
52351		return nil, err
52352	}
52353	defer googleapi.CloseBody(res)
52354	if err := googleapi.CheckResponse(res); err != nil {
52355		return nil, err
52356	}
52357	ret := &Operation{
52358		ServerResponse: googleapi.ServerResponse{
52359			Header:         res.Header,
52360			HTTPStatusCode: res.StatusCode,
52361		},
52362	}
52363	target := &ret
52364	if err := gensupport.DecodeResponse(target, res); err != nil {
52365		return nil, err
52366	}
52367	return ret, nil
52368	// {
52369	//   "description": "Deletes the specified autoscaler.",
52370	//   "httpMethod": "DELETE",
52371	//   "id": "compute.autoscalers.delete",
52372	//   "parameterOrder": [
52373	//     "project",
52374	//     "zone",
52375	//     "autoscaler"
52376	//   ],
52377	//   "parameters": {
52378	//     "autoscaler": {
52379	//       "description": "Name of the autoscaler to delete.",
52380	//       "location": "path",
52381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52382	//       "required": true,
52383	//       "type": "string"
52384	//     },
52385	//     "project": {
52386	//       "description": "Project ID for this request.",
52387	//       "location": "path",
52388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52389	//       "required": true,
52390	//       "type": "string"
52391	//     },
52392	//     "requestId": {
52393	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52394	//       "location": "query",
52395	//       "type": "string"
52396	//     },
52397	//     "zone": {
52398	//       "description": "Name of the zone for this request.",
52399	//       "location": "path",
52400	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52401	//       "required": true,
52402	//       "type": "string"
52403	//     }
52404	//   },
52405	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
52406	//   "response": {
52407	//     "$ref": "Operation"
52408	//   },
52409	//   "scopes": [
52410	//     "https://www.googleapis.com/auth/cloud-platform",
52411	//     "https://www.googleapis.com/auth/compute"
52412	//   ]
52413	// }
52414
52415}
52416
52417// method id "compute.autoscalers.get":
52418
52419type AutoscalersGetCall struct {
52420	s            *Service
52421	project      string
52422	zone         string
52423	autoscaler   string
52424	urlParams_   gensupport.URLParams
52425	ifNoneMatch_ string
52426	ctx_         context.Context
52427	header_      http.Header
52428}
52429
52430// Get: Returns the specified autoscaler resource. Gets a list of
52431// available autoscalers by making a list() request.
52432func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
52433	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52434	c.project = project
52435	c.zone = zone
52436	c.autoscaler = autoscaler
52437	return c
52438}
52439
52440// Fields allows partial responses to be retrieved. See
52441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52442// for more information.
52443func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
52444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52445	return c
52446}
52447
52448// IfNoneMatch sets the optional parameter which makes the operation
52449// fail if the object's ETag matches the given value. This is useful for
52450// getting updates only after the object has changed since the last
52451// request. Use googleapi.IsNotModified to check whether the response
52452// error from Do is the result of In-None-Match.
52453func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
52454	c.ifNoneMatch_ = entityTag
52455	return c
52456}
52457
52458// Context sets the context to be used in this call's Do method. Any
52459// pending HTTP request will be aborted if the provided context is
52460// canceled.
52461func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
52462	c.ctx_ = ctx
52463	return c
52464}
52465
52466// Header returns an http.Header that can be modified by the caller to
52467// add HTTP headers to the request.
52468func (c *AutoscalersGetCall) Header() http.Header {
52469	if c.header_ == nil {
52470		c.header_ = make(http.Header)
52471	}
52472	return c.header_
52473}
52474
52475func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
52476	reqHeaders := make(http.Header)
52477	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
52478	for k, v := range c.header_ {
52479		reqHeaders[k] = v
52480	}
52481	reqHeaders.Set("User-Agent", c.s.userAgent())
52482	if c.ifNoneMatch_ != "" {
52483		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52484	}
52485	var body io.Reader = nil
52486	c.urlParams_.Set("alt", alt)
52487	c.urlParams_.Set("prettyPrint", "false")
52488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
52489	urls += "?" + c.urlParams_.Encode()
52490	req, err := http.NewRequest("GET", urls, body)
52491	if err != nil {
52492		return nil, err
52493	}
52494	req.Header = reqHeaders
52495	googleapi.Expand(req.URL, map[string]string{
52496		"project":    c.project,
52497		"zone":       c.zone,
52498		"autoscaler": c.autoscaler,
52499	})
52500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52501}
52502
52503// Do executes the "compute.autoscalers.get" call.
52504// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
52505// status code is an error. Response headers are in either
52506// *Autoscaler.ServerResponse.Header or (if a response was returned at
52507// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52508// to check whether the returned error was because
52509// http.StatusNotModified was returned.
52510func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
52511	gensupport.SetOptions(c.urlParams_, opts...)
52512	res, err := c.doRequest("json")
52513	if res != nil && res.StatusCode == http.StatusNotModified {
52514		if res.Body != nil {
52515			res.Body.Close()
52516		}
52517		return nil, &googleapi.Error{
52518			Code:   res.StatusCode,
52519			Header: res.Header,
52520		}
52521	}
52522	if err != nil {
52523		return nil, err
52524	}
52525	defer googleapi.CloseBody(res)
52526	if err := googleapi.CheckResponse(res); err != nil {
52527		return nil, err
52528	}
52529	ret := &Autoscaler{
52530		ServerResponse: googleapi.ServerResponse{
52531			Header:         res.Header,
52532			HTTPStatusCode: res.StatusCode,
52533		},
52534	}
52535	target := &ret
52536	if err := gensupport.DecodeResponse(target, res); err != nil {
52537		return nil, err
52538	}
52539	return ret, nil
52540	// {
52541	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
52542	//   "httpMethod": "GET",
52543	//   "id": "compute.autoscalers.get",
52544	//   "parameterOrder": [
52545	//     "project",
52546	//     "zone",
52547	//     "autoscaler"
52548	//   ],
52549	//   "parameters": {
52550	//     "autoscaler": {
52551	//       "description": "Name of the autoscaler to return.",
52552	//       "location": "path",
52553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52554	//       "required": true,
52555	//       "type": "string"
52556	//     },
52557	//     "project": {
52558	//       "description": "Project ID for this request.",
52559	//       "location": "path",
52560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52561	//       "required": true,
52562	//       "type": "string"
52563	//     },
52564	//     "zone": {
52565	//       "description": "Name of the zone for this request.",
52566	//       "location": "path",
52567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52568	//       "required": true,
52569	//       "type": "string"
52570	//     }
52571	//   },
52572	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
52573	//   "response": {
52574	//     "$ref": "Autoscaler"
52575	//   },
52576	//   "scopes": [
52577	//     "https://www.googleapis.com/auth/cloud-platform",
52578	//     "https://www.googleapis.com/auth/compute",
52579	//     "https://www.googleapis.com/auth/compute.readonly"
52580	//   ]
52581	// }
52582
52583}
52584
52585// method id "compute.autoscalers.insert":
52586
52587type AutoscalersInsertCall struct {
52588	s          *Service
52589	project    string
52590	zone       string
52591	autoscaler *Autoscaler
52592	urlParams_ gensupport.URLParams
52593	ctx_       context.Context
52594	header_    http.Header
52595}
52596
52597// Insert: Creates an autoscaler in the specified project using the data
52598// included in the request.
52599func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
52600	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52601	c.project = project
52602	c.zone = zone
52603	c.autoscaler = autoscaler
52604	return c
52605}
52606
52607// RequestId sets the optional parameter "requestId": An optional
52608// request ID to identify requests. Specify a unique request ID so that
52609// if you must retry your request, the server will know to ignore the
52610// request if it has already been completed.
52611//
52612// For example, consider a situation where you make an initial request
52613// and the request times out. If you make the request again with the
52614// same request ID, the server can check if original operation with the
52615// same request ID was received, and if so, will ignore the second
52616// request. This prevents clients from accidentally creating duplicate
52617// commitments.
52618//
52619// The request ID must be a valid UUID with the exception that zero UUID
52620// is not supported (00000000-0000-0000-0000-000000000000).
52621func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
52622	c.urlParams_.Set("requestId", requestId)
52623	return c
52624}
52625
52626// Fields allows partial responses to be retrieved. See
52627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52628// for more information.
52629func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
52630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52631	return c
52632}
52633
52634// Context sets the context to be used in this call's Do method. Any
52635// pending HTTP request will be aborted if the provided context is
52636// canceled.
52637func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
52638	c.ctx_ = ctx
52639	return c
52640}
52641
52642// Header returns an http.Header that can be modified by the caller to
52643// add HTTP headers to the request.
52644func (c *AutoscalersInsertCall) Header() http.Header {
52645	if c.header_ == nil {
52646		c.header_ = make(http.Header)
52647	}
52648	return c.header_
52649}
52650
52651func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
52652	reqHeaders := make(http.Header)
52653	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
52654	for k, v := range c.header_ {
52655		reqHeaders[k] = v
52656	}
52657	reqHeaders.Set("User-Agent", c.s.userAgent())
52658	var body io.Reader = nil
52659	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
52660	if err != nil {
52661		return nil, err
52662	}
52663	reqHeaders.Set("Content-Type", "application/json")
52664	c.urlParams_.Set("alt", alt)
52665	c.urlParams_.Set("prettyPrint", "false")
52666	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
52667	urls += "?" + c.urlParams_.Encode()
52668	req, err := http.NewRequest("POST", urls, body)
52669	if err != nil {
52670		return nil, err
52671	}
52672	req.Header = reqHeaders
52673	googleapi.Expand(req.URL, map[string]string{
52674		"project": c.project,
52675		"zone":    c.zone,
52676	})
52677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52678}
52679
52680// Do executes the "compute.autoscalers.insert" call.
52681// Exactly one of *Operation or error will be non-nil. Any non-2xx
52682// status code is an error. Response headers are in either
52683// *Operation.ServerResponse.Header or (if a response was returned at
52684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52685// to check whether the returned error was because
52686// http.StatusNotModified was returned.
52687func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52688	gensupport.SetOptions(c.urlParams_, opts...)
52689	res, err := c.doRequest("json")
52690	if res != nil && res.StatusCode == http.StatusNotModified {
52691		if res.Body != nil {
52692			res.Body.Close()
52693		}
52694		return nil, &googleapi.Error{
52695			Code:   res.StatusCode,
52696			Header: res.Header,
52697		}
52698	}
52699	if err != nil {
52700		return nil, err
52701	}
52702	defer googleapi.CloseBody(res)
52703	if err := googleapi.CheckResponse(res); err != nil {
52704		return nil, err
52705	}
52706	ret := &Operation{
52707		ServerResponse: googleapi.ServerResponse{
52708			Header:         res.Header,
52709			HTTPStatusCode: res.StatusCode,
52710		},
52711	}
52712	target := &ret
52713	if err := gensupport.DecodeResponse(target, res); err != nil {
52714		return nil, err
52715	}
52716	return ret, nil
52717	// {
52718	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
52719	//   "httpMethod": "POST",
52720	//   "id": "compute.autoscalers.insert",
52721	//   "parameterOrder": [
52722	//     "project",
52723	//     "zone"
52724	//   ],
52725	//   "parameters": {
52726	//     "project": {
52727	//       "description": "Project ID for this request.",
52728	//       "location": "path",
52729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52730	//       "required": true,
52731	//       "type": "string"
52732	//     },
52733	//     "requestId": {
52734	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52735	//       "location": "query",
52736	//       "type": "string"
52737	//     },
52738	//     "zone": {
52739	//       "description": "Name of the zone for this request.",
52740	//       "location": "path",
52741	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52742	//       "required": true,
52743	//       "type": "string"
52744	//     }
52745	//   },
52746	//   "path": "{project}/zones/{zone}/autoscalers",
52747	//   "request": {
52748	//     "$ref": "Autoscaler"
52749	//   },
52750	//   "response": {
52751	//     "$ref": "Operation"
52752	//   },
52753	//   "scopes": [
52754	//     "https://www.googleapis.com/auth/cloud-platform",
52755	//     "https://www.googleapis.com/auth/compute"
52756	//   ]
52757	// }
52758
52759}
52760
52761// method id "compute.autoscalers.list":
52762
52763type AutoscalersListCall struct {
52764	s            *Service
52765	project      string
52766	zone         string
52767	urlParams_   gensupport.URLParams
52768	ifNoneMatch_ string
52769	ctx_         context.Context
52770	header_      http.Header
52771}
52772
52773// List: Retrieves a list of autoscalers contained within the specified
52774// zone.
52775func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
52776	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52777	c.project = project
52778	c.zone = zone
52779	return c
52780}
52781
52782// Filter sets the optional parameter "filter": A filter expression that
52783// filters resources listed in the response. The expression must specify
52784// the field name, a comparison operator, and the value that you want to
52785// use for filtering. The value must be a string, a number, or a
52786// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52787// `<`.
52788//
52789// For example, if you are filtering Compute Engine instances, you can
52790// exclude instances named `example-instance` by specifying `name !=
52791// example-instance`.
52792//
52793// You can also filter nested fields. For example, you could specify
52794// `scheduling.automaticRestart = false` to include instances only if
52795// they are not scheduled for automatic restarts. You can use filtering
52796// on nested fields to filter based on resource labels.
52797//
52798// To filter on multiple expressions, provide each separate expression
52799// within parentheses. For example: ``` (scheduling.automaticRestart =
52800// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52801// is an `AND` expression. However, you can include `AND` and `OR`
52802// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52803// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52804// (scheduling.automaticRestart = true) ```
52805func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
52806	c.urlParams_.Set("filter", filter)
52807	return c
52808}
52809
52810// MaxResults sets the optional parameter "maxResults": The maximum
52811// number of results per page that should be returned. If the number of
52812// available results is larger than `maxResults`, Compute Engine returns
52813// a `nextPageToken` that can be used to get the next page of results in
52814// subsequent list requests. Acceptable values are `0` to `500`,
52815// inclusive. (Default: `500`)
52816func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
52817	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52818	return c
52819}
52820
52821// OrderBy sets the optional parameter "orderBy": Sorts list results by
52822// a certain order. By default, results are returned in alphanumerical
52823// order based on the resource name.
52824//
52825// You can also sort results in descending order based on the creation
52826// timestamp using `orderBy="creationTimestamp desc". This sorts
52827// results based on the `creationTimestamp` field in reverse
52828// chronological order (newest result first). Use this to sort resources
52829// like operations so that the newest operation is returned
52830// first.
52831//
52832// Currently, only sorting by `name` or `creationTimestamp desc` is
52833// supported.
52834func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
52835	c.urlParams_.Set("orderBy", orderBy)
52836	return c
52837}
52838
52839// PageToken sets the optional parameter "pageToken": Specifies a page
52840// token to use. Set `pageToken` to the `nextPageToken` returned by a
52841// previous list request to get the next page of results.
52842func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
52843	c.urlParams_.Set("pageToken", pageToken)
52844	return c
52845}
52846
52847// ReturnPartialSuccess sets the optional parameter
52848// "returnPartialSuccess": Opt-in for partial success behavior which
52849// provides partial results in case of failure. The default value is
52850// false and the logic is the same as today.
52851func (c *AutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersListCall {
52852	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52853	return c
52854}
52855
52856// Fields allows partial responses to be retrieved. See
52857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52858// for more information.
52859func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
52860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52861	return c
52862}
52863
52864// IfNoneMatch sets the optional parameter which makes the operation
52865// fail if the object's ETag matches the given value. This is useful for
52866// getting updates only after the object has changed since the last
52867// request. Use googleapi.IsNotModified to check whether the response
52868// error from Do is the result of In-None-Match.
52869func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
52870	c.ifNoneMatch_ = entityTag
52871	return c
52872}
52873
52874// Context sets the context to be used in this call's Do method. Any
52875// pending HTTP request will be aborted if the provided context is
52876// canceled.
52877func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
52878	c.ctx_ = ctx
52879	return c
52880}
52881
52882// Header returns an http.Header that can be modified by the caller to
52883// add HTTP headers to the request.
52884func (c *AutoscalersListCall) Header() http.Header {
52885	if c.header_ == nil {
52886		c.header_ = make(http.Header)
52887	}
52888	return c.header_
52889}
52890
52891func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
52892	reqHeaders := make(http.Header)
52893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
52894	for k, v := range c.header_ {
52895		reqHeaders[k] = v
52896	}
52897	reqHeaders.Set("User-Agent", c.s.userAgent())
52898	if c.ifNoneMatch_ != "" {
52899		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52900	}
52901	var body io.Reader = nil
52902	c.urlParams_.Set("alt", alt)
52903	c.urlParams_.Set("prettyPrint", "false")
52904	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
52905	urls += "?" + c.urlParams_.Encode()
52906	req, err := http.NewRequest("GET", urls, body)
52907	if err != nil {
52908		return nil, err
52909	}
52910	req.Header = reqHeaders
52911	googleapi.Expand(req.URL, map[string]string{
52912		"project": c.project,
52913		"zone":    c.zone,
52914	})
52915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52916}
52917
52918// Do executes the "compute.autoscalers.list" call.
52919// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
52920// status code is an error. Response headers are in either
52921// *AutoscalerList.ServerResponse.Header or (if a response was returned
52922// at all) in error.(*googleapi.Error).Header. Use
52923// googleapi.IsNotModified to check whether the returned error was
52924// because http.StatusNotModified was returned.
52925func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
52926	gensupport.SetOptions(c.urlParams_, opts...)
52927	res, err := c.doRequest("json")
52928	if res != nil && res.StatusCode == http.StatusNotModified {
52929		if res.Body != nil {
52930			res.Body.Close()
52931		}
52932		return nil, &googleapi.Error{
52933			Code:   res.StatusCode,
52934			Header: res.Header,
52935		}
52936	}
52937	if err != nil {
52938		return nil, err
52939	}
52940	defer googleapi.CloseBody(res)
52941	if err := googleapi.CheckResponse(res); err != nil {
52942		return nil, err
52943	}
52944	ret := &AutoscalerList{
52945		ServerResponse: googleapi.ServerResponse{
52946			Header:         res.Header,
52947			HTTPStatusCode: res.StatusCode,
52948		},
52949	}
52950	target := &ret
52951	if err := gensupport.DecodeResponse(target, res); err != nil {
52952		return nil, err
52953	}
52954	return ret, nil
52955	// {
52956	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
52957	//   "httpMethod": "GET",
52958	//   "id": "compute.autoscalers.list",
52959	//   "parameterOrder": [
52960	//     "project",
52961	//     "zone"
52962	//   ],
52963	//   "parameters": {
52964	//     "filter": {
52965	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52966	//       "location": "query",
52967	//       "type": "string"
52968	//     },
52969	//     "maxResults": {
52970	//       "default": "500",
52971	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52972	//       "format": "uint32",
52973	//       "location": "query",
52974	//       "minimum": "0",
52975	//       "type": "integer"
52976	//     },
52977	//     "orderBy": {
52978	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
52979	//       "location": "query",
52980	//       "type": "string"
52981	//     },
52982	//     "pageToken": {
52983	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52984	//       "location": "query",
52985	//       "type": "string"
52986	//     },
52987	//     "project": {
52988	//       "description": "Project ID for this request.",
52989	//       "location": "path",
52990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52991	//       "required": true,
52992	//       "type": "string"
52993	//     },
52994	//     "returnPartialSuccess": {
52995	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
52996	//       "location": "query",
52997	//       "type": "boolean"
52998	//     },
52999	//     "zone": {
53000	//       "description": "Name of the zone for this request.",
53001	//       "location": "path",
53002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53003	//       "required": true,
53004	//       "type": "string"
53005	//     }
53006	//   },
53007	//   "path": "{project}/zones/{zone}/autoscalers",
53008	//   "response": {
53009	//     "$ref": "AutoscalerList"
53010	//   },
53011	//   "scopes": [
53012	//     "https://www.googleapis.com/auth/cloud-platform",
53013	//     "https://www.googleapis.com/auth/compute",
53014	//     "https://www.googleapis.com/auth/compute.readonly"
53015	//   ]
53016	// }
53017
53018}
53019
53020// Pages invokes f for each page of results.
53021// A non-nil error returned from f will halt the iteration.
53022// The provided context supersedes any context provided to the Context method.
53023func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
53024	c.ctx_ = ctx
53025	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53026	for {
53027		x, err := c.Do()
53028		if err != nil {
53029			return err
53030		}
53031		if err := f(x); err != nil {
53032			return err
53033		}
53034		if x.NextPageToken == "" {
53035			return nil
53036		}
53037		c.PageToken(x.NextPageToken)
53038	}
53039}
53040
53041// method id "compute.autoscalers.patch":
53042
53043type AutoscalersPatchCall struct {
53044	s          *Service
53045	project    string
53046	zone       string
53047	autoscaler *Autoscaler
53048	urlParams_ gensupport.URLParams
53049	ctx_       context.Context
53050	header_    http.Header
53051}
53052
53053// Patch: Updates an autoscaler in the specified project using the data
53054// included in the request. This method supports PATCH semantics and
53055// uses the JSON merge patch format and processing rules.
53056func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
53057	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53058	c.project = project
53059	c.zone = zone
53060	c.autoscaler = autoscaler
53061	return c
53062}
53063
53064// Autoscaler sets the optional parameter "autoscaler": Name of the
53065// autoscaler to patch.
53066func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
53067	c.urlParams_.Set("autoscaler", autoscaler)
53068	return c
53069}
53070
53071// RequestId sets the optional parameter "requestId": An optional
53072// request ID to identify requests. Specify a unique request ID so that
53073// if you must retry your request, the server will know to ignore the
53074// request if it has already been completed.
53075//
53076// For example, consider a situation where you make an initial request
53077// and the request times out. If you make the request again with the
53078// same request ID, the server can check if original operation with the
53079// same request ID was received, and if so, will ignore the second
53080// request. This prevents clients from accidentally creating duplicate
53081// commitments.
53082//
53083// The request ID must be a valid UUID with the exception that zero UUID
53084// is not supported (00000000-0000-0000-0000-000000000000).
53085func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
53086	c.urlParams_.Set("requestId", requestId)
53087	return c
53088}
53089
53090// Fields allows partial responses to be retrieved. See
53091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53092// for more information.
53093func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
53094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53095	return c
53096}
53097
53098// Context sets the context to be used in this call's Do method. Any
53099// pending HTTP request will be aborted if the provided context is
53100// canceled.
53101func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
53102	c.ctx_ = ctx
53103	return c
53104}
53105
53106// Header returns an http.Header that can be modified by the caller to
53107// add HTTP headers to the request.
53108func (c *AutoscalersPatchCall) Header() http.Header {
53109	if c.header_ == nil {
53110		c.header_ = make(http.Header)
53111	}
53112	return c.header_
53113}
53114
53115func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
53116	reqHeaders := make(http.Header)
53117	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
53118	for k, v := range c.header_ {
53119		reqHeaders[k] = v
53120	}
53121	reqHeaders.Set("User-Agent", c.s.userAgent())
53122	var body io.Reader = nil
53123	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
53124	if err != nil {
53125		return nil, err
53126	}
53127	reqHeaders.Set("Content-Type", "application/json")
53128	c.urlParams_.Set("alt", alt)
53129	c.urlParams_.Set("prettyPrint", "false")
53130	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
53131	urls += "?" + c.urlParams_.Encode()
53132	req, err := http.NewRequest("PATCH", urls, body)
53133	if err != nil {
53134		return nil, err
53135	}
53136	req.Header = reqHeaders
53137	googleapi.Expand(req.URL, map[string]string{
53138		"project": c.project,
53139		"zone":    c.zone,
53140	})
53141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53142}
53143
53144// Do executes the "compute.autoscalers.patch" call.
53145// Exactly one of *Operation or error will be non-nil. Any non-2xx
53146// status code is an error. Response headers are in either
53147// *Operation.ServerResponse.Header or (if a response was returned at
53148// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53149// to check whether the returned error was because
53150// http.StatusNotModified was returned.
53151func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53152	gensupport.SetOptions(c.urlParams_, opts...)
53153	res, err := c.doRequest("json")
53154	if res != nil && res.StatusCode == http.StatusNotModified {
53155		if res.Body != nil {
53156			res.Body.Close()
53157		}
53158		return nil, &googleapi.Error{
53159			Code:   res.StatusCode,
53160			Header: res.Header,
53161		}
53162	}
53163	if err != nil {
53164		return nil, err
53165	}
53166	defer googleapi.CloseBody(res)
53167	if err := googleapi.CheckResponse(res); err != nil {
53168		return nil, err
53169	}
53170	ret := &Operation{
53171		ServerResponse: googleapi.ServerResponse{
53172			Header:         res.Header,
53173			HTTPStatusCode: res.StatusCode,
53174		},
53175	}
53176	target := &ret
53177	if err := gensupport.DecodeResponse(target, res); err != nil {
53178		return nil, err
53179	}
53180	return ret, nil
53181	// {
53182	//   "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.",
53183	//   "httpMethod": "PATCH",
53184	//   "id": "compute.autoscalers.patch",
53185	//   "parameterOrder": [
53186	//     "project",
53187	//     "zone"
53188	//   ],
53189	//   "parameters": {
53190	//     "autoscaler": {
53191	//       "description": "Name of the autoscaler to patch.",
53192	//       "location": "query",
53193	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53194	//       "type": "string"
53195	//     },
53196	//     "project": {
53197	//       "description": "Project ID for this request.",
53198	//       "location": "path",
53199	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53200	//       "required": true,
53201	//       "type": "string"
53202	//     },
53203	//     "requestId": {
53204	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53205	//       "location": "query",
53206	//       "type": "string"
53207	//     },
53208	//     "zone": {
53209	//       "description": "Name of the zone for this request.",
53210	//       "location": "path",
53211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53212	//       "required": true,
53213	//       "type": "string"
53214	//     }
53215	//   },
53216	//   "path": "{project}/zones/{zone}/autoscalers",
53217	//   "request": {
53218	//     "$ref": "Autoscaler"
53219	//   },
53220	//   "response": {
53221	//     "$ref": "Operation"
53222	//   },
53223	//   "scopes": [
53224	//     "https://www.googleapis.com/auth/cloud-platform",
53225	//     "https://www.googleapis.com/auth/compute"
53226	//   ]
53227	// }
53228
53229}
53230
53231// method id "compute.autoscalers.testIamPermissions":
53232
53233type AutoscalersTestIamPermissionsCall struct {
53234	s                      *Service
53235	project                string
53236	zone                   string
53237	resource               string
53238	testpermissionsrequest *TestPermissionsRequest
53239	urlParams_             gensupport.URLParams
53240	ctx_                   context.Context
53241	header_                http.Header
53242}
53243
53244// TestIamPermissions: Returns permissions that a caller has on the
53245// specified resource.
53246func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall {
53247	c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53248	c.project = project
53249	c.zone = zone
53250	c.resource = resource
53251	c.testpermissionsrequest = testpermissionsrequest
53252	return c
53253}
53254
53255// Fields allows partial responses to be retrieved. See
53256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53257// for more information.
53258func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall {
53259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53260	return c
53261}
53262
53263// Context sets the context to be used in this call's Do method. Any
53264// pending HTTP request will be aborted if the provided context is
53265// canceled.
53266func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall {
53267	c.ctx_ = ctx
53268	return c
53269}
53270
53271// Header returns an http.Header that can be modified by the caller to
53272// add HTTP headers to the request.
53273func (c *AutoscalersTestIamPermissionsCall) Header() http.Header {
53274	if c.header_ == nil {
53275		c.header_ = make(http.Header)
53276	}
53277	return c.header_
53278}
53279
53280func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
53281	reqHeaders := make(http.Header)
53282	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
53283	for k, v := range c.header_ {
53284		reqHeaders[k] = v
53285	}
53286	reqHeaders.Set("User-Agent", c.s.userAgent())
53287	var body io.Reader = nil
53288	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
53289	if err != nil {
53290		return nil, err
53291	}
53292	reqHeaders.Set("Content-Type", "application/json")
53293	c.urlParams_.Set("alt", alt)
53294	c.urlParams_.Set("prettyPrint", "false")
53295	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions")
53296	urls += "?" + c.urlParams_.Encode()
53297	req, err := http.NewRequest("POST", urls, body)
53298	if err != nil {
53299		return nil, err
53300	}
53301	req.Header = reqHeaders
53302	googleapi.Expand(req.URL, map[string]string{
53303		"project":  c.project,
53304		"zone":     c.zone,
53305		"resource": c.resource,
53306	})
53307	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53308}
53309
53310// Do executes the "compute.autoscalers.testIamPermissions" call.
53311// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
53312// non-2xx status code is an error. Response headers are in either
53313// *TestPermissionsResponse.ServerResponse.Header or (if a response was
53314// returned at all) in error.(*googleapi.Error).Header. Use
53315// googleapi.IsNotModified to check whether the returned error was
53316// because http.StatusNotModified was returned.
53317func (c *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
53318	gensupport.SetOptions(c.urlParams_, opts...)
53319	res, err := c.doRequest("json")
53320	if res != nil && res.StatusCode == http.StatusNotModified {
53321		if res.Body != nil {
53322			res.Body.Close()
53323		}
53324		return nil, &googleapi.Error{
53325			Code:   res.StatusCode,
53326			Header: res.Header,
53327		}
53328	}
53329	if err != nil {
53330		return nil, err
53331	}
53332	defer googleapi.CloseBody(res)
53333	if err := googleapi.CheckResponse(res); err != nil {
53334		return nil, err
53335	}
53336	ret := &TestPermissionsResponse{
53337		ServerResponse: googleapi.ServerResponse{
53338			Header:         res.Header,
53339			HTTPStatusCode: res.StatusCode,
53340		},
53341	}
53342	target := &ret
53343	if err := gensupport.DecodeResponse(target, res); err != nil {
53344		return nil, err
53345	}
53346	return ret, nil
53347	// {
53348	//   "description": "Returns permissions that a caller has on the specified resource.",
53349	//   "httpMethod": "POST",
53350	//   "id": "compute.autoscalers.testIamPermissions",
53351	//   "parameterOrder": [
53352	//     "project",
53353	//     "zone",
53354	//     "resource"
53355	//   ],
53356	//   "parameters": {
53357	//     "project": {
53358	//       "description": "Project ID for this request.",
53359	//       "location": "path",
53360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53361	//       "required": true,
53362	//       "type": "string"
53363	//     },
53364	//     "resource": {
53365	//       "description": "Name or id of the resource for this request.",
53366	//       "location": "path",
53367	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53368	//       "required": true,
53369	//       "type": "string"
53370	//     },
53371	//     "zone": {
53372	//       "description": "The name of the zone for this request.",
53373	//       "location": "path",
53374	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53375	//       "required": true,
53376	//       "type": "string"
53377	//     }
53378	//   },
53379	//   "path": "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
53380	//   "request": {
53381	//     "$ref": "TestPermissionsRequest"
53382	//   },
53383	//   "response": {
53384	//     "$ref": "TestPermissionsResponse"
53385	//   },
53386	//   "scopes": [
53387	//     "https://www.googleapis.com/auth/cloud-platform",
53388	//     "https://www.googleapis.com/auth/compute",
53389	//     "https://www.googleapis.com/auth/compute.readonly"
53390	//   ]
53391	// }
53392
53393}
53394
53395// method id "compute.autoscalers.update":
53396
53397type AutoscalersUpdateCall struct {
53398	s          *Service
53399	project    string
53400	zone       string
53401	autoscaler *Autoscaler
53402	urlParams_ gensupport.URLParams
53403	ctx_       context.Context
53404	header_    http.Header
53405}
53406
53407// Update: Updates an autoscaler in the specified project using the data
53408// included in the request.
53409func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
53410	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53411	c.project = project
53412	c.zone = zone
53413	c.autoscaler = autoscaler
53414	return c
53415}
53416
53417// Autoscaler sets the optional parameter "autoscaler": Name of the
53418// autoscaler to update.
53419func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
53420	c.urlParams_.Set("autoscaler", autoscaler)
53421	return c
53422}
53423
53424// RequestId sets the optional parameter "requestId": An optional
53425// request ID to identify requests. Specify a unique request ID so that
53426// if you must retry your request, the server will know to ignore the
53427// request if it has already been completed.
53428//
53429// For example, consider a situation where you make an initial request
53430// and the request times out. If you make the request again with the
53431// same request ID, the server can check if original operation with the
53432// same request ID was received, and if so, will ignore the second
53433// request. This prevents clients from accidentally creating duplicate
53434// commitments.
53435//
53436// The request ID must be a valid UUID with the exception that zero UUID
53437// is not supported (00000000-0000-0000-0000-000000000000).
53438func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
53439	c.urlParams_.Set("requestId", requestId)
53440	return c
53441}
53442
53443// Fields allows partial responses to be retrieved. See
53444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53445// for more information.
53446func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
53447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53448	return c
53449}
53450
53451// Context sets the context to be used in this call's Do method. Any
53452// pending HTTP request will be aborted if the provided context is
53453// canceled.
53454func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
53455	c.ctx_ = ctx
53456	return c
53457}
53458
53459// Header returns an http.Header that can be modified by the caller to
53460// add HTTP headers to the request.
53461func (c *AutoscalersUpdateCall) Header() http.Header {
53462	if c.header_ == nil {
53463		c.header_ = make(http.Header)
53464	}
53465	return c.header_
53466}
53467
53468func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
53469	reqHeaders := make(http.Header)
53470	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
53471	for k, v := range c.header_ {
53472		reqHeaders[k] = v
53473	}
53474	reqHeaders.Set("User-Agent", c.s.userAgent())
53475	var body io.Reader = nil
53476	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
53477	if err != nil {
53478		return nil, err
53479	}
53480	reqHeaders.Set("Content-Type", "application/json")
53481	c.urlParams_.Set("alt", alt)
53482	c.urlParams_.Set("prettyPrint", "false")
53483	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
53484	urls += "?" + c.urlParams_.Encode()
53485	req, err := http.NewRequest("PUT", urls, body)
53486	if err != nil {
53487		return nil, err
53488	}
53489	req.Header = reqHeaders
53490	googleapi.Expand(req.URL, map[string]string{
53491		"project": c.project,
53492		"zone":    c.zone,
53493	})
53494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53495}
53496
53497// Do executes the "compute.autoscalers.update" call.
53498// Exactly one of *Operation or error will be non-nil. Any non-2xx
53499// status code is an error. Response headers are in either
53500// *Operation.ServerResponse.Header or (if a response was returned at
53501// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53502// to check whether the returned error was because
53503// http.StatusNotModified was returned.
53504func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53505	gensupport.SetOptions(c.urlParams_, opts...)
53506	res, err := c.doRequest("json")
53507	if res != nil && res.StatusCode == http.StatusNotModified {
53508		if res.Body != nil {
53509			res.Body.Close()
53510		}
53511		return nil, &googleapi.Error{
53512			Code:   res.StatusCode,
53513			Header: res.Header,
53514		}
53515	}
53516	if err != nil {
53517		return nil, err
53518	}
53519	defer googleapi.CloseBody(res)
53520	if err := googleapi.CheckResponse(res); err != nil {
53521		return nil, err
53522	}
53523	ret := &Operation{
53524		ServerResponse: googleapi.ServerResponse{
53525			Header:         res.Header,
53526			HTTPStatusCode: res.StatusCode,
53527		},
53528	}
53529	target := &ret
53530	if err := gensupport.DecodeResponse(target, res); err != nil {
53531		return nil, err
53532	}
53533	return ret, nil
53534	// {
53535	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
53536	//   "httpMethod": "PUT",
53537	//   "id": "compute.autoscalers.update",
53538	//   "parameterOrder": [
53539	//     "project",
53540	//     "zone"
53541	//   ],
53542	//   "parameters": {
53543	//     "autoscaler": {
53544	//       "description": "Name of the autoscaler to update.",
53545	//       "location": "query",
53546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53547	//       "type": "string"
53548	//     },
53549	//     "project": {
53550	//       "description": "Project ID for this request.",
53551	//       "location": "path",
53552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53553	//       "required": true,
53554	//       "type": "string"
53555	//     },
53556	//     "requestId": {
53557	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53558	//       "location": "query",
53559	//       "type": "string"
53560	//     },
53561	//     "zone": {
53562	//       "description": "Name of the zone for this request.",
53563	//       "location": "path",
53564	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53565	//       "required": true,
53566	//       "type": "string"
53567	//     }
53568	//   },
53569	//   "path": "{project}/zones/{zone}/autoscalers",
53570	//   "request": {
53571	//     "$ref": "Autoscaler"
53572	//   },
53573	//   "response": {
53574	//     "$ref": "Operation"
53575	//   },
53576	//   "scopes": [
53577	//     "https://www.googleapis.com/auth/cloud-platform",
53578	//     "https://www.googleapis.com/auth/compute"
53579	//   ]
53580	// }
53581
53582}
53583
53584// method id "compute.backendBuckets.addSignedUrlKey":
53585
53586type BackendBucketsAddSignedUrlKeyCall struct {
53587	s             *Service
53588	project       string
53589	backendBucket string
53590	signedurlkey  *SignedUrlKey
53591	urlParams_    gensupport.URLParams
53592	ctx_          context.Context
53593	header_       http.Header
53594}
53595
53596// AddSignedUrlKey: Adds a key for validating requests with signed URLs
53597// for this backend bucket.
53598func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
53599	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53600	c.project = project
53601	c.backendBucket = backendBucket
53602	c.signedurlkey = signedurlkey
53603	return c
53604}
53605
53606// RequestId sets the optional parameter "requestId": An optional
53607// request ID to identify requests. Specify a unique request ID so that
53608// if you must retry your request, the server will know to ignore the
53609// request if it has already been completed.
53610//
53611// For example, consider a situation where you make an initial request
53612// and the request times out. If you make the request again with the
53613// same request ID, the server can check if original operation with the
53614// same request ID was received, and if so, will ignore the second
53615// request. This prevents clients from accidentally creating duplicate
53616// commitments.
53617//
53618// The request ID must be a valid UUID with the exception that zero UUID
53619// is not supported (00000000-0000-0000-0000-000000000000).
53620func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
53621	c.urlParams_.Set("requestId", requestId)
53622	return c
53623}
53624
53625// Fields allows partial responses to be retrieved. See
53626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53627// for more information.
53628func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
53629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53630	return c
53631}
53632
53633// Context sets the context to be used in this call's Do method. Any
53634// pending HTTP request will be aborted if the provided context is
53635// canceled.
53636func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
53637	c.ctx_ = ctx
53638	return c
53639}
53640
53641// Header returns an http.Header that can be modified by the caller to
53642// add HTTP headers to the request.
53643func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
53644	if c.header_ == nil {
53645		c.header_ = make(http.Header)
53646	}
53647	return c.header_
53648}
53649
53650func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
53651	reqHeaders := make(http.Header)
53652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
53653	for k, v := range c.header_ {
53654		reqHeaders[k] = v
53655	}
53656	reqHeaders.Set("User-Agent", c.s.userAgent())
53657	var body io.Reader = nil
53658	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
53659	if err != nil {
53660		return nil, err
53661	}
53662	reqHeaders.Set("Content-Type", "application/json")
53663	c.urlParams_.Set("alt", alt)
53664	c.urlParams_.Set("prettyPrint", "false")
53665	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
53666	urls += "?" + c.urlParams_.Encode()
53667	req, err := http.NewRequest("POST", urls, body)
53668	if err != nil {
53669		return nil, err
53670	}
53671	req.Header = reqHeaders
53672	googleapi.Expand(req.URL, map[string]string{
53673		"project":       c.project,
53674		"backendBucket": c.backendBucket,
53675	})
53676	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53677}
53678
53679// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
53680// Exactly one of *Operation or error will be non-nil. Any non-2xx
53681// status code is an error. Response headers are in either
53682// *Operation.ServerResponse.Header or (if a response was returned at
53683// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53684// to check whether the returned error was because
53685// http.StatusNotModified was returned.
53686func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53687	gensupport.SetOptions(c.urlParams_, opts...)
53688	res, err := c.doRequest("json")
53689	if res != nil && res.StatusCode == http.StatusNotModified {
53690		if res.Body != nil {
53691			res.Body.Close()
53692		}
53693		return nil, &googleapi.Error{
53694			Code:   res.StatusCode,
53695			Header: res.Header,
53696		}
53697	}
53698	if err != nil {
53699		return nil, err
53700	}
53701	defer googleapi.CloseBody(res)
53702	if err := googleapi.CheckResponse(res); err != nil {
53703		return nil, err
53704	}
53705	ret := &Operation{
53706		ServerResponse: googleapi.ServerResponse{
53707			Header:         res.Header,
53708			HTTPStatusCode: res.StatusCode,
53709		},
53710	}
53711	target := &ret
53712	if err := gensupport.DecodeResponse(target, res); err != nil {
53713		return nil, err
53714	}
53715	return ret, nil
53716	// {
53717	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
53718	//   "httpMethod": "POST",
53719	//   "id": "compute.backendBuckets.addSignedUrlKey",
53720	//   "parameterOrder": [
53721	//     "project",
53722	//     "backendBucket"
53723	//   ],
53724	//   "parameters": {
53725	//     "backendBucket": {
53726	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
53727	//       "location": "path",
53728	//       "required": true,
53729	//       "type": "string"
53730	//     },
53731	//     "project": {
53732	//       "description": "Project ID for this request.",
53733	//       "location": "path",
53734	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53735	//       "required": true,
53736	//       "type": "string"
53737	//     },
53738	//     "requestId": {
53739	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53740	//       "location": "query",
53741	//       "type": "string"
53742	//     }
53743	//   },
53744	//   "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
53745	//   "request": {
53746	//     "$ref": "SignedUrlKey"
53747	//   },
53748	//   "response": {
53749	//     "$ref": "Operation"
53750	//   },
53751	//   "scopes": [
53752	//     "https://www.googleapis.com/auth/cloud-platform",
53753	//     "https://www.googleapis.com/auth/compute"
53754	//   ]
53755	// }
53756
53757}
53758
53759// method id "compute.backendBuckets.delete":
53760
53761type BackendBucketsDeleteCall struct {
53762	s             *Service
53763	project       string
53764	backendBucket string
53765	urlParams_    gensupport.URLParams
53766	ctx_          context.Context
53767	header_       http.Header
53768}
53769
53770// Delete: Deletes the specified BackendBucket resource.
53771func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
53772	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53773	c.project = project
53774	c.backendBucket = backendBucket
53775	return c
53776}
53777
53778// RequestId sets the optional parameter "requestId": An optional
53779// request ID to identify requests. Specify a unique request ID so that
53780// if you must retry your request, the server will know to ignore the
53781// request if it has already been completed.
53782//
53783// For example, consider a situation where you make an initial request
53784// and the request times out. If you make the request again with the
53785// same request ID, the server can check if original operation with the
53786// same request ID was received, and if so, will ignore the second
53787// request. This prevents clients from accidentally creating duplicate
53788// commitments.
53789//
53790// The request ID must be a valid UUID with the exception that zero UUID
53791// is not supported (00000000-0000-0000-0000-000000000000).
53792func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
53793	c.urlParams_.Set("requestId", requestId)
53794	return c
53795}
53796
53797// Fields allows partial responses to be retrieved. See
53798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53799// for more information.
53800func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
53801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53802	return c
53803}
53804
53805// Context sets the context to be used in this call's Do method. Any
53806// pending HTTP request will be aborted if the provided context is
53807// canceled.
53808func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
53809	c.ctx_ = ctx
53810	return c
53811}
53812
53813// Header returns an http.Header that can be modified by the caller to
53814// add HTTP headers to the request.
53815func (c *BackendBucketsDeleteCall) Header() http.Header {
53816	if c.header_ == nil {
53817		c.header_ = make(http.Header)
53818	}
53819	return c.header_
53820}
53821
53822func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
53823	reqHeaders := make(http.Header)
53824	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
53825	for k, v := range c.header_ {
53826		reqHeaders[k] = v
53827	}
53828	reqHeaders.Set("User-Agent", c.s.userAgent())
53829	var body io.Reader = nil
53830	c.urlParams_.Set("alt", alt)
53831	c.urlParams_.Set("prettyPrint", "false")
53832	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
53833	urls += "?" + c.urlParams_.Encode()
53834	req, err := http.NewRequest("DELETE", urls, body)
53835	if err != nil {
53836		return nil, err
53837	}
53838	req.Header = reqHeaders
53839	googleapi.Expand(req.URL, map[string]string{
53840		"project":       c.project,
53841		"backendBucket": c.backendBucket,
53842	})
53843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53844}
53845
53846// Do executes the "compute.backendBuckets.delete" call.
53847// Exactly one of *Operation or error will be non-nil. Any non-2xx
53848// status code is an error. Response headers are in either
53849// *Operation.ServerResponse.Header or (if a response was returned at
53850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53851// to check whether the returned error was because
53852// http.StatusNotModified was returned.
53853func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53854	gensupport.SetOptions(c.urlParams_, opts...)
53855	res, err := c.doRequest("json")
53856	if res != nil && res.StatusCode == http.StatusNotModified {
53857		if res.Body != nil {
53858			res.Body.Close()
53859		}
53860		return nil, &googleapi.Error{
53861			Code:   res.StatusCode,
53862			Header: res.Header,
53863		}
53864	}
53865	if err != nil {
53866		return nil, err
53867	}
53868	defer googleapi.CloseBody(res)
53869	if err := googleapi.CheckResponse(res); err != nil {
53870		return nil, err
53871	}
53872	ret := &Operation{
53873		ServerResponse: googleapi.ServerResponse{
53874			Header:         res.Header,
53875			HTTPStatusCode: res.StatusCode,
53876		},
53877	}
53878	target := &ret
53879	if err := gensupport.DecodeResponse(target, res); err != nil {
53880		return nil, err
53881	}
53882	return ret, nil
53883	// {
53884	//   "description": "Deletes the specified BackendBucket resource.",
53885	//   "httpMethod": "DELETE",
53886	//   "id": "compute.backendBuckets.delete",
53887	//   "parameterOrder": [
53888	//     "project",
53889	//     "backendBucket"
53890	//   ],
53891	//   "parameters": {
53892	//     "backendBucket": {
53893	//       "description": "Name of the BackendBucket resource to delete.",
53894	//       "location": "path",
53895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53896	//       "required": true,
53897	//       "type": "string"
53898	//     },
53899	//     "project": {
53900	//       "description": "Project ID for this request.",
53901	//       "location": "path",
53902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53903	//       "required": true,
53904	//       "type": "string"
53905	//     },
53906	//     "requestId": {
53907	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53908	//       "location": "query",
53909	//       "type": "string"
53910	//     }
53911	//   },
53912	//   "path": "{project}/global/backendBuckets/{backendBucket}",
53913	//   "response": {
53914	//     "$ref": "Operation"
53915	//   },
53916	//   "scopes": [
53917	//     "https://www.googleapis.com/auth/cloud-platform",
53918	//     "https://www.googleapis.com/auth/compute"
53919	//   ]
53920	// }
53921
53922}
53923
53924// method id "compute.backendBuckets.deleteSignedUrlKey":
53925
53926type BackendBucketsDeleteSignedUrlKeyCall struct {
53927	s             *Service
53928	project       string
53929	backendBucket string
53930	urlParams_    gensupport.URLParams
53931	ctx_          context.Context
53932	header_       http.Header
53933}
53934
53935// DeleteSignedUrlKey: Deletes a key for validating requests with signed
53936// URLs for this backend bucket.
53937func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
53938	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53939	c.project = project
53940	c.backendBucket = backendBucket
53941	c.urlParams_.Set("keyName", keyName)
53942	return c
53943}
53944
53945// RequestId sets the optional parameter "requestId": An optional
53946// request ID to identify requests. Specify a unique request ID so that
53947// if you must retry your request, the server will know to ignore the
53948// request if it has already been completed.
53949//
53950// For example, consider a situation where you make an initial request
53951// and the request times out. If you make the request again with the
53952// same request ID, the server can check if original operation with the
53953// same request ID was received, and if so, will ignore the second
53954// request. This prevents clients from accidentally creating duplicate
53955// commitments.
53956//
53957// The request ID must be a valid UUID with the exception that zero UUID
53958// is not supported (00000000-0000-0000-0000-000000000000).
53959func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
53960	c.urlParams_.Set("requestId", requestId)
53961	return c
53962}
53963
53964// Fields allows partial responses to be retrieved. See
53965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53966// for more information.
53967func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
53968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53969	return c
53970}
53971
53972// Context sets the context to be used in this call's Do method. Any
53973// pending HTTP request will be aborted if the provided context is
53974// canceled.
53975func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
53976	c.ctx_ = ctx
53977	return c
53978}
53979
53980// Header returns an http.Header that can be modified by the caller to
53981// add HTTP headers to the request.
53982func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
53983	if c.header_ == nil {
53984		c.header_ = make(http.Header)
53985	}
53986	return c.header_
53987}
53988
53989func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
53990	reqHeaders := make(http.Header)
53991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
53992	for k, v := range c.header_ {
53993		reqHeaders[k] = v
53994	}
53995	reqHeaders.Set("User-Agent", c.s.userAgent())
53996	var body io.Reader = nil
53997	c.urlParams_.Set("alt", alt)
53998	c.urlParams_.Set("prettyPrint", "false")
53999	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
54000	urls += "?" + c.urlParams_.Encode()
54001	req, err := http.NewRequest("POST", urls, body)
54002	if err != nil {
54003		return nil, err
54004	}
54005	req.Header = reqHeaders
54006	googleapi.Expand(req.URL, map[string]string{
54007		"project":       c.project,
54008		"backendBucket": c.backendBucket,
54009	})
54010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54011}
54012
54013// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
54014// Exactly one of *Operation or error will be non-nil. Any non-2xx
54015// status code is an error. Response headers are in either
54016// *Operation.ServerResponse.Header or (if a response was returned at
54017// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54018// to check whether the returned error was because
54019// http.StatusNotModified was returned.
54020func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54021	gensupport.SetOptions(c.urlParams_, opts...)
54022	res, err := c.doRequest("json")
54023	if res != nil && res.StatusCode == http.StatusNotModified {
54024		if res.Body != nil {
54025			res.Body.Close()
54026		}
54027		return nil, &googleapi.Error{
54028			Code:   res.StatusCode,
54029			Header: res.Header,
54030		}
54031	}
54032	if err != nil {
54033		return nil, err
54034	}
54035	defer googleapi.CloseBody(res)
54036	if err := googleapi.CheckResponse(res); err != nil {
54037		return nil, err
54038	}
54039	ret := &Operation{
54040		ServerResponse: googleapi.ServerResponse{
54041			Header:         res.Header,
54042			HTTPStatusCode: res.StatusCode,
54043		},
54044	}
54045	target := &ret
54046	if err := gensupport.DecodeResponse(target, res); err != nil {
54047		return nil, err
54048	}
54049	return ret, nil
54050	// {
54051	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
54052	//   "httpMethod": "POST",
54053	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
54054	//   "parameterOrder": [
54055	//     "project",
54056	//     "backendBucket",
54057	//     "keyName"
54058	//   ],
54059	//   "parameters": {
54060	//     "backendBucket": {
54061	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
54062	//       "location": "path",
54063	//       "required": true,
54064	//       "type": "string"
54065	//     },
54066	//     "keyName": {
54067	//       "description": "The name of the Signed URL Key to delete.",
54068	//       "location": "query",
54069	//       "required": true,
54070	//       "type": "string"
54071	//     },
54072	//     "project": {
54073	//       "description": "Project ID for this request.",
54074	//       "location": "path",
54075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54076	//       "required": true,
54077	//       "type": "string"
54078	//     },
54079	//     "requestId": {
54080	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54081	//       "location": "query",
54082	//       "type": "string"
54083	//     }
54084	//   },
54085	//   "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
54086	//   "response": {
54087	//     "$ref": "Operation"
54088	//   },
54089	//   "scopes": [
54090	//     "https://www.googleapis.com/auth/cloud-platform",
54091	//     "https://www.googleapis.com/auth/compute"
54092	//   ]
54093	// }
54094
54095}
54096
54097// method id "compute.backendBuckets.get":
54098
54099type BackendBucketsGetCall struct {
54100	s             *Service
54101	project       string
54102	backendBucket string
54103	urlParams_    gensupport.URLParams
54104	ifNoneMatch_  string
54105	ctx_          context.Context
54106	header_       http.Header
54107}
54108
54109// Get: Returns the specified BackendBucket resource. Gets a list of
54110// available backend buckets by making a list() request.
54111func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
54112	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54113	c.project = project
54114	c.backendBucket = backendBucket
54115	return c
54116}
54117
54118// Fields allows partial responses to be retrieved. See
54119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54120// for more information.
54121func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
54122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54123	return c
54124}
54125
54126// IfNoneMatch sets the optional parameter which makes the operation
54127// fail if the object's ETag matches the given value. This is useful for
54128// getting updates only after the object has changed since the last
54129// request. Use googleapi.IsNotModified to check whether the response
54130// error from Do is the result of In-None-Match.
54131func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
54132	c.ifNoneMatch_ = entityTag
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 *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
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 *BackendBucketsGetCall) Header() http.Header {
54147	if c.header_ == nil {
54148		c.header_ = make(http.Header)
54149	}
54150	return c.header_
54151}
54152
54153func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
54154	reqHeaders := make(http.Header)
54155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
54156	for k, v := range c.header_ {
54157		reqHeaders[k] = v
54158	}
54159	reqHeaders.Set("User-Agent", c.s.userAgent())
54160	if c.ifNoneMatch_ != "" {
54161		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54162	}
54163	var body io.Reader = nil
54164	c.urlParams_.Set("alt", alt)
54165	c.urlParams_.Set("prettyPrint", "false")
54166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
54167	urls += "?" + c.urlParams_.Encode()
54168	req, err := http.NewRequest("GET", urls, body)
54169	if err != nil {
54170		return nil, err
54171	}
54172	req.Header = reqHeaders
54173	googleapi.Expand(req.URL, map[string]string{
54174		"project":       c.project,
54175		"backendBucket": c.backendBucket,
54176	})
54177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54178}
54179
54180// Do executes the "compute.backendBuckets.get" call.
54181// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
54182// status code is an error. Response headers are in either
54183// *BackendBucket.ServerResponse.Header or (if a response was returned
54184// at all) in error.(*googleapi.Error).Header. Use
54185// googleapi.IsNotModified to check whether the returned error was
54186// because http.StatusNotModified was returned.
54187func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
54188	gensupport.SetOptions(c.urlParams_, opts...)
54189	res, err := c.doRequest("json")
54190	if res != nil && res.StatusCode == http.StatusNotModified {
54191		if res.Body != nil {
54192			res.Body.Close()
54193		}
54194		return nil, &googleapi.Error{
54195			Code:   res.StatusCode,
54196			Header: res.Header,
54197		}
54198	}
54199	if err != nil {
54200		return nil, err
54201	}
54202	defer googleapi.CloseBody(res)
54203	if err := googleapi.CheckResponse(res); err != nil {
54204		return nil, err
54205	}
54206	ret := &BackendBucket{
54207		ServerResponse: googleapi.ServerResponse{
54208			Header:         res.Header,
54209			HTTPStatusCode: res.StatusCode,
54210		},
54211	}
54212	target := &ret
54213	if err := gensupport.DecodeResponse(target, res); err != nil {
54214		return nil, err
54215	}
54216	return ret, nil
54217	// {
54218	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
54219	//   "httpMethod": "GET",
54220	//   "id": "compute.backendBuckets.get",
54221	//   "parameterOrder": [
54222	//     "project",
54223	//     "backendBucket"
54224	//   ],
54225	//   "parameters": {
54226	//     "backendBucket": {
54227	//       "description": "Name of the BackendBucket resource to return.",
54228	//       "location": "path",
54229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54230	//       "required": true,
54231	//       "type": "string"
54232	//     },
54233	//     "project": {
54234	//       "description": "Project ID for this request.",
54235	//       "location": "path",
54236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54237	//       "required": true,
54238	//       "type": "string"
54239	//     }
54240	//   },
54241	//   "path": "{project}/global/backendBuckets/{backendBucket}",
54242	//   "response": {
54243	//     "$ref": "BackendBucket"
54244	//   },
54245	//   "scopes": [
54246	//     "https://www.googleapis.com/auth/cloud-platform",
54247	//     "https://www.googleapis.com/auth/compute",
54248	//     "https://www.googleapis.com/auth/compute.readonly"
54249	//   ]
54250	// }
54251
54252}
54253
54254// method id "compute.backendBuckets.getIamPolicy":
54255
54256type BackendBucketsGetIamPolicyCall struct {
54257	s            *Service
54258	project      string
54259	resource     string
54260	urlParams_   gensupport.URLParams
54261	ifNoneMatch_ string
54262	ctx_         context.Context
54263	header_      http.Header
54264}
54265
54266// GetIamPolicy: Gets the access control policy for a resource. May be
54267// empty if no such policy or resource exists.
54268func (r *BackendBucketsService) GetIamPolicy(project string, resource string) *BackendBucketsGetIamPolicyCall {
54269	c := &BackendBucketsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54270	c.project = project
54271	c.resource = resource
54272	return c
54273}
54274
54275// OptionsRequestedPolicyVersion sets the optional parameter
54276// "optionsRequestedPolicyVersion": Requested IAM Policy version.
54277func (c *BackendBucketsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *BackendBucketsGetIamPolicyCall {
54278	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
54279	return c
54280}
54281
54282// Fields allows partial responses to be retrieved. See
54283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54284// for more information.
54285func (c *BackendBucketsGetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsGetIamPolicyCall {
54286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54287	return c
54288}
54289
54290// IfNoneMatch sets the optional parameter which makes the operation
54291// fail if the object's ETag matches the given value. This is useful for
54292// getting updates only after the object has changed since the last
54293// request. Use googleapi.IsNotModified to check whether the response
54294// error from Do is the result of In-None-Match.
54295func (c *BackendBucketsGetIamPolicyCall) IfNoneMatch(entityTag string) *BackendBucketsGetIamPolicyCall {
54296	c.ifNoneMatch_ = entityTag
54297	return c
54298}
54299
54300// Context sets the context to be used in this call's Do method. Any
54301// pending HTTP request will be aborted if the provided context is
54302// canceled.
54303func (c *BackendBucketsGetIamPolicyCall) Context(ctx context.Context) *BackendBucketsGetIamPolicyCall {
54304	c.ctx_ = ctx
54305	return c
54306}
54307
54308// Header returns an http.Header that can be modified by the caller to
54309// add HTTP headers to the request.
54310func (c *BackendBucketsGetIamPolicyCall) Header() http.Header {
54311	if c.header_ == nil {
54312		c.header_ = make(http.Header)
54313	}
54314	return c.header_
54315}
54316
54317func (c *BackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
54318	reqHeaders := make(http.Header)
54319	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
54320	for k, v := range c.header_ {
54321		reqHeaders[k] = v
54322	}
54323	reqHeaders.Set("User-Agent", c.s.userAgent())
54324	if c.ifNoneMatch_ != "" {
54325		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54326	}
54327	var body io.Reader = nil
54328	c.urlParams_.Set("alt", alt)
54329	c.urlParams_.Set("prettyPrint", "false")
54330	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/getIamPolicy")
54331	urls += "?" + c.urlParams_.Encode()
54332	req, err := http.NewRequest("GET", urls, body)
54333	if err != nil {
54334		return nil, err
54335	}
54336	req.Header = reqHeaders
54337	googleapi.Expand(req.URL, map[string]string{
54338		"project":  c.project,
54339		"resource": c.resource,
54340	})
54341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54342}
54343
54344// Do executes the "compute.backendBuckets.getIamPolicy" call.
54345// Exactly one of *Policy or error will be non-nil. Any non-2xx status
54346// code is an error. Response headers are in either
54347// *Policy.ServerResponse.Header or (if a response was returned at all)
54348// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
54349// check whether the returned error was because http.StatusNotModified
54350// was returned.
54351func (c *BackendBucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
54352	gensupport.SetOptions(c.urlParams_, opts...)
54353	res, err := c.doRequest("json")
54354	if res != nil && res.StatusCode == http.StatusNotModified {
54355		if res.Body != nil {
54356			res.Body.Close()
54357		}
54358		return nil, &googleapi.Error{
54359			Code:   res.StatusCode,
54360			Header: res.Header,
54361		}
54362	}
54363	if err != nil {
54364		return nil, err
54365	}
54366	defer googleapi.CloseBody(res)
54367	if err := googleapi.CheckResponse(res); err != nil {
54368		return nil, err
54369	}
54370	ret := &Policy{
54371		ServerResponse: googleapi.ServerResponse{
54372			Header:         res.Header,
54373			HTTPStatusCode: res.StatusCode,
54374		},
54375	}
54376	target := &ret
54377	if err := gensupport.DecodeResponse(target, res); err != nil {
54378		return nil, err
54379	}
54380	return ret, nil
54381	// {
54382	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
54383	//   "httpMethod": "GET",
54384	//   "id": "compute.backendBuckets.getIamPolicy",
54385	//   "parameterOrder": [
54386	//     "project",
54387	//     "resource"
54388	//   ],
54389	//   "parameters": {
54390	//     "optionsRequestedPolicyVersion": {
54391	//       "description": "Requested IAM Policy version.",
54392	//       "format": "int32",
54393	//       "location": "query",
54394	//       "type": "integer"
54395	//     },
54396	//     "project": {
54397	//       "description": "Project ID for this request.",
54398	//       "location": "path",
54399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54400	//       "required": true,
54401	//       "type": "string"
54402	//     },
54403	//     "resource": {
54404	//       "description": "Name or id of the resource for this request.",
54405	//       "location": "path",
54406	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54407	//       "required": true,
54408	//       "type": "string"
54409	//     }
54410	//   },
54411	//   "path": "{project}/global/backendBuckets/{resource}/getIamPolicy",
54412	//   "response": {
54413	//     "$ref": "Policy"
54414	//   },
54415	//   "scopes": [
54416	//     "https://www.googleapis.com/auth/cloud-platform",
54417	//     "https://www.googleapis.com/auth/compute",
54418	//     "https://www.googleapis.com/auth/compute.readonly"
54419	//   ]
54420	// }
54421
54422}
54423
54424// method id "compute.backendBuckets.insert":
54425
54426type BackendBucketsInsertCall struct {
54427	s             *Service
54428	project       string
54429	backendbucket *BackendBucket
54430	urlParams_    gensupport.URLParams
54431	ctx_          context.Context
54432	header_       http.Header
54433}
54434
54435// Insert: Creates a BackendBucket resource in the specified project
54436// using the data included in the request.
54437func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
54438	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54439	c.project = project
54440	c.backendbucket = backendbucket
54441	return c
54442}
54443
54444// RequestId sets the optional parameter "requestId": An optional
54445// request ID to identify requests. Specify a unique request ID so that
54446// if you must retry your request, the server will know to ignore the
54447// request if it has already been completed.
54448//
54449// For example, consider a situation where you make an initial request
54450// and the request times out. If you make the request again with the
54451// same request ID, the server can check if original operation with the
54452// same request ID was received, and if so, will ignore the second
54453// request. This prevents clients from accidentally creating duplicate
54454// commitments.
54455//
54456// The request ID must be a valid UUID with the exception that zero UUID
54457// is not supported (00000000-0000-0000-0000-000000000000).
54458func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
54459	c.urlParams_.Set("requestId", requestId)
54460	return c
54461}
54462
54463// Fields allows partial responses to be retrieved. See
54464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54465// for more information.
54466func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
54467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54468	return c
54469}
54470
54471// Context sets the context to be used in this call's Do method. Any
54472// pending HTTP request will be aborted if the provided context is
54473// canceled.
54474func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
54475	c.ctx_ = ctx
54476	return c
54477}
54478
54479// Header returns an http.Header that can be modified by the caller to
54480// add HTTP headers to the request.
54481func (c *BackendBucketsInsertCall) Header() http.Header {
54482	if c.header_ == nil {
54483		c.header_ = make(http.Header)
54484	}
54485	return c.header_
54486}
54487
54488func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
54489	reqHeaders := make(http.Header)
54490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
54491	for k, v := range c.header_ {
54492		reqHeaders[k] = v
54493	}
54494	reqHeaders.Set("User-Agent", c.s.userAgent())
54495	var body io.Reader = nil
54496	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
54497	if err != nil {
54498		return nil, err
54499	}
54500	reqHeaders.Set("Content-Type", "application/json")
54501	c.urlParams_.Set("alt", alt)
54502	c.urlParams_.Set("prettyPrint", "false")
54503	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
54504	urls += "?" + c.urlParams_.Encode()
54505	req, err := http.NewRequest("POST", urls, body)
54506	if err != nil {
54507		return nil, err
54508	}
54509	req.Header = reqHeaders
54510	googleapi.Expand(req.URL, map[string]string{
54511		"project": c.project,
54512	})
54513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54514}
54515
54516// Do executes the "compute.backendBuckets.insert" call.
54517// Exactly one of *Operation or error will be non-nil. Any non-2xx
54518// status code is an error. Response headers are in either
54519// *Operation.ServerResponse.Header or (if a response was returned at
54520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54521// to check whether the returned error was because
54522// http.StatusNotModified was returned.
54523func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54524	gensupport.SetOptions(c.urlParams_, opts...)
54525	res, err := c.doRequest("json")
54526	if res != nil && res.StatusCode == http.StatusNotModified {
54527		if res.Body != nil {
54528			res.Body.Close()
54529		}
54530		return nil, &googleapi.Error{
54531			Code:   res.StatusCode,
54532			Header: res.Header,
54533		}
54534	}
54535	if err != nil {
54536		return nil, err
54537	}
54538	defer googleapi.CloseBody(res)
54539	if err := googleapi.CheckResponse(res); err != nil {
54540		return nil, err
54541	}
54542	ret := &Operation{
54543		ServerResponse: googleapi.ServerResponse{
54544			Header:         res.Header,
54545			HTTPStatusCode: res.StatusCode,
54546		},
54547	}
54548	target := &ret
54549	if err := gensupport.DecodeResponse(target, res); err != nil {
54550		return nil, err
54551	}
54552	return ret, nil
54553	// {
54554	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
54555	//   "httpMethod": "POST",
54556	//   "id": "compute.backendBuckets.insert",
54557	//   "parameterOrder": [
54558	//     "project"
54559	//   ],
54560	//   "parameters": {
54561	//     "project": {
54562	//       "description": "Project ID for this request.",
54563	//       "location": "path",
54564	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54565	//       "required": true,
54566	//       "type": "string"
54567	//     },
54568	//     "requestId": {
54569	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54570	//       "location": "query",
54571	//       "type": "string"
54572	//     }
54573	//   },
54574	//   "path": "{project}/global/backendBuckets",
54575	//   "request": {
54576	//     "$ref": "BackendBucket"
54577	//   },
54578	//   "response": {
54579	//     "$ref": "Operation"
54580	//   },
54581	//   "scopes": [
54582	//     "https://www.googleapis.com/auth/cloud-platform",
54583	//     "https://www.googleapis.com/auth/compute"
54584	//   ]
54585	// }
54586
54587}
54588
54589// method id "compute.backendBuckets.list":
54590
54591type BackendBucketsListCall struct {
54592	s            *Service
54593	project      string
54594	urlParams_   gensupport.URLParams
54595	ifNoneMatch_ string
54596	ctx_         context.Context
54597	header_      http.Header
54598}
54599
54600// List: Retrieves the list of BackendBucket resources available to the
54601// specified project.
54602func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
54603	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54604	c.project = project
54605	return c
54606}
54607
54608// Filter sets the optional parameter "filter": A filter expression that
54609// filters resources listed in the response. The expression must specify
54610// the field name, a comparison operator, and the value that you want to
54611// use for filtering. The value must be a string, a number, or a
54612// boolean. The comparison operator must be either `=`, `!=`, `>`, or
54613// `<`.
54614//
54615// For example, if you are filtering Compute Engine instances, you can
54616// exclude instances named `example-instance` by specifying `name !=
54617// example-instance`.
54618//
54619// You can also filter nested fields. For example, you could specify
54620// `scheduling.automaticRestart = false` to include instances only if
54621// they are not scheduled for automatic restarts. You can use filtering
54622// on nested fields to filter based on resource labels.
54623//
54624// To filter on multiple expressions, provide each separate expression
54625// within parentheses. For example: ``` (scheduling.automaticRestart =
54626// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
54627// is an `AND` expression. However, you can include `AND` and `OR`
54628// expressions explicitly. For example: ``` (cpuPlatform = "Intel
54629// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
54630// (scheduling.automaticRestart = true) ```
54631func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
54632	c.urlParams_.Set("filter", filter)
54633	return c
54634}
54635
54636// MaxResults sets the optional parameter "maxResults": The maximum
54637// number of results per page that should be returned. If the number of
54638// available results is larger than `maxResults`, Compute Engine returns
54639// a `nextPageToken` that can be used to get the next page of results in
54640// subsequent list requests. Acceptable values are `0` to `500`,
54641// inclusive. (Default: `500`)
54642func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
54643	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54644	return c
54645}
54646
54647// OrderBy sets the optional parameter "orderBy": Sorts list results by
54648// a certain order. By default, results are returned in alphanumerical
54649// order based on the resource name.
54650//
54651// You can also sort results in descending order based on the creation
54652// timestamp using `orderBy="creationTimestamp desc". This sorts
54653// results based on the `creationTimestamp` field in reverse
54654// chronological order (newest result first). Use this to sort resources
54655// like operations so that the newest operation is returned
54656// first.
54657//
54658// Currently, only sorting by `name` or `creationTimestamp desc` is
54659// supported.
54660func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
54661	c.urlParams_.Set("orderBy", orderBy)
54662	return c
54663}
54664
54665// PageToken sets the optional parameter "pageToken": Specifies a page
54666// token to use. Set `pageToken` to the `nextPageToken` returned by a
54667// previous list request to get the next page of results.
54668func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
54669	c.urlParams_.Set("pageToken", pageToken)
54670	return c
54671}
54672
54673// ReturnPartialSuccess sets the optional parameter
54674// "returnPartialSuccess": Opt-in for partial success behavior which
54675// provides partial results in case of failure. The default value is
54676// false and the logic is the same as today.
54677func (c *BackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListCall {
54678	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
54679	return c
54680}
54681
54682// Fields allows partial responses to be retrieved. See
54683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54684// for more information.
54685func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
54686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54687	return c
54688}
54689
54690// IfNoneMatch sets the optional parameter which makes the operation
54691// fail if the object's ETag matches the given value. This is useful for
54692// getting updates only after the object has changed since the last
54693// request. Use googleapi.IsNotModified to check whether the response
54694// error from Do is the result of In-None-Match.
54695func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
54696	c.ifNoneMatch_ = entityTag
54697	return c
54698}
54699
54700// Context sets the context to be used in this call's Do method. Any
54701// pending HTTP request will be aborted if the provided context is
54702// canceled.
54703func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
54704	c.ctx_ = ctx
54705	return c
54706}
54707
54708// Header returns an http.Header that can be modified by the caller to
54709// add HTTP headers to the request.
54710func (c *BackendBucketsListCall) Header() http.Header {
54711	if c.header_ == nil {
54712		c.header_ = make(http.Header)
54713	}
54714	return c.header_
54715}
54716
54717func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
54718	reqHeaders := make(http.Header)
54719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
54720	for k, v := range c.header_ {
54721		reqHeaders[k] = v
54722	}
54723	reqHeaders.Set("User-Agent", c.s.userAgent())
54724	if c.ifNoneMatch_ != "" {
54725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54726	}
54727	var body io.Reader = nil
54728	c.urlParams_.Set("alt", alt)
54729	c.urlParams_.Set("prettyPrint", "false")
54730	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
54731	urls += "?" + c.urlParams_.Encode()
54732	req, err := http.NewRequest("GET", urls, body)
54733	if err != nil {
54734		return nil, err
54735	}
54736	req.Header = reqHeaders
54737	googleapi.Expand(req.URL, map[string]string{
54738		"project": c.project,
54739	})
54740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54741}
54742
54743// Do executes the "compute.backendBuckets.list" call.
54744// Exactly one of *BackendBucketList or error will be non-nil. Any
54745// non-2xx status code is an error. Response headers are in either
54746// *BackendBucketList.ServerResponse.Header or (if a response was
54747// returned at all) in error.(*googleapi.Error).Header. Use
54748// googleapi.IsNotModified to check whether the returned error was
54749// because http.StatusNotModified was returned.
54750func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
54751	gensupport.SetOptions(c.urlParams_, opts...)
54752	res, err := c.doRequest("json")
54753	if res != nil && res.StatusCode == http.StatusNotModified {
54754		if res.Body != nil {
54755			res.Body.Close()
54756		}
54757		return nil, &googleapi.Error{
54758			Code:   res.StatusCode,
54759			Header: res.Header,
54760		}
54761	}
54762	if err != nil {
54763		return nil, err
54764	}
54765	defer googleapi.CloseBody(res)
54766	if err := googleapi.CheckResponse(res); err != nil {
54767		return nil, err
54768	}
54769	ret := &BackendBucketList{
54770		ServerResponse: googleapi.ServerResponse{
54771			Header:         res.Header,
54772			HTTPStatusCode: res.StatusCode,
54773		},
54774	}
54775	target := &ret
54776	if err := gensupport.DecodeResponse(target, res); err != nil {
54777		return nil, err
54778	}
54779	return ret, nil
54780	// {
54781	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
54782	//   "httpMethod": "GET",
54783	//   "id": "compute.backendBuckets.list",
54784	//   "parameterOrder": [
54785	//     "project"
54786	//   ],
54787	//   "parameters": {
54788	//     "filter": {
54789	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
54790	//       "location": "query",
54791	//       "type": "string"
54792	//     },
54793	//     "maxResults": {
54794	//       "default": "500",
54795	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54796	//       "format": "uint32",
54797	//       "location": "query",
54798	//       "minimum": "0",
54799	//       "type": "integer"
54800	//     },
54801	//     "orderBy": {
54802	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
54803	//       "location": "query",
54804	//       "type": "string"
54805	//     },
54806	//     "pageToken": {
54807	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54808	//       "location": "query",
54809	//       "type": "string"
54810	//     },
54811	//     "project": {
54812	//       "description": "Project ID for this request.",
54813	//       "location": "path",
54814	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54815	//       "required": true,
54816	//       "type": "string"
54817	//     },
54818	//     "returnPartialSuccess": {
54819	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
54820	//       "location": "query",
54821	//       "type": "boolean"
54822	//     }
54823	//   },
54824	//   "path": "{project}/global/backendBuckets",
54825	//   "response": {
54826	//     "$ref": "BackendBucketList"
54827	//   },
54828	//   "scopes": [
54829	//     "https://www.googleapis.com/auth/cloud-platform",
54830	//     "https://www.googleapis.com/auth/compute",
54831	//     "https://www.googleapis.com/auth/compute.readonly"
54832	//   ]
54833	// }
54834
54835}
54836
54837// Pages invokes f for each page of results.
54838// A non-nil error returned from f will halt the iteration.
54839// The provided context supersedes any context provided to the Context method.
54840func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
54841	c.ctx_ = ctx
54842	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54843	for {
54844		x, err := c.Do()
54845		if err != nil {
54846			return err
54847		}
54848		if err := f(x); err != nil {
54849			return err
54850		}
54851		if x.NextPageToken == "" {
54852			return nil
54853		}
54854		c.PageToken(x.NextPageToken)
54855	}
54856}
54857
54858// method id "compute.backendBuckets.patch":
54859
54860type BackendBucketsPatchCall struct {
54861	s             *Service
54862	project       string
54863	backendBucket string
54864	backendbucket *BackendBucket
54865	urlParams_    gensupport.URLParams
54866	ctx_          context.Context
54867	header_       http.Header
54868}
54869
54870// Patch: Updates the specified BackendBucket resource with the data
54871// included in the request. This method supports PATCH semantics and
54872// uses the JSON merge patch format and processing rules.
54873func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
54874	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54875	c.project = project
54876	c.backendBucket = backendBucket
54877	c.backendbucket = backendbucket
54878	return c
54879}
54880
54881// RequestId sets the optional parameter "requestId": An optional
54882// request ID to identify requests. Specify a unique request ID so that
54883// if you must retry your request, the server will know to ignore the
54884// request if it has already been completed.
54885//
54886// For example, consider a situation where you make an initial request
54887// and the request times out. If you make the request again with the
54888// same request ID, the server can check if original operation with the
54889// same request ID was received, and if so, will ignore the second
54890// request. This prevents clients from accidentally creating duplicate
54891// commitments.
54892//
54893// The request ID must be a valid UUID with the exception that zero UUID
54894// is not supported (00000000-0000-0000-0000-000000000000).
54895func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
54896	c.urlParams_.Set("requestId", requestId)
54897	return c
54898}
54899
54900// Fields allows partial responses to be retrieved. See
54901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54902// for more information.
54903func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
54904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54905	return c
54906}
54907
54908// Context sets the context to be used in this call's Do method. Any
54909// pending HTTP request will be aborted if the provided context is
54910// canceled.
54911func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
54912	c.ctx_ = ctx
54913	return c
54914}
54915
54916// Header returns an http.Header that can be modified by the caller to
54917// add HTTP headers to the request.
54918func (c *BackendBucketsPatchCall) Header() http.Header {
54919	if c.header_ == nil {
54920		c.header_ = make(http.Header)
54921	}
54922	return c.header_
54923}
54924
54925func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
54926	reqHeaders := make(http.Header)
54927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
54928	for k, v := range c.header_ {
54929		reqHeaders[k] = v
54930	}
54931	reqHeaders.Set("User-Agent", c.s.userAgent())
54932	var body io.Reader = nil
54933	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
54934	if err != nil {
54935		return nil, err
54936	}
54937	reqHeaders.Set("Content-Type", "application/json")
54938	c.urlParams_.Set("alt", alt)
54939	c.urlParams_.Set("prettyPrint", "false")
54940	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
54941	urls += "?" + c.urlParams_.Encode()
54942	req, err := http.NewRequest("PATCH", urls, body)
54943	if err != nil {
54944		return nil, err
54945	}
54946	req.Header = reqHeaders
54947	googleapi.Expand(req.URL, map[string]string{
54948		"project":       c.project,
54949		"backendBucket": c.backendBucket,
54950	})
54951	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54952}
54953
54954// Do executes the "compute.backendBuckets.patch" call.
54955// Exactly one of *Operation or error will be non-nil. Any non-2xx
54956// status code is an error. Response headers are in either
54957// *Operation.ServerResponse.Header or (if a response was returned at
54958// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54959// to check whether the returned error was because
54960// http.StatusNotModified was returned.
54961func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54962	gensupport.SetOptions(c.urlParams_, opts...)
54963	res, err := c.doRequest("json")
54964	if res != nil && res.StatusCode == http.StatusNotModified {
54965		if res.Body != nil {
54966			res.Body.Close()
54967		}
54968		return nil, &googleapi.Error{
54969			Code:   res.StatusCode,
54970			Header: res.Header,
54971		}
54972	}
54973	if err != nil {
54974		return nil, err
54975	}
54976	defer googleapi.CloseBody(res)
54977	if err := googleapi.CheckResponse(res); err != nil {
54978		return nil, err
54979	}
54980	ret := &Operation{
54981		ServerResponse: googleapi.ServerResponse{
54982			Header:         res.Header,
54983			HTTPStatusCode: res.StatusCode,
54984		},
54985	}
54986	target := &ret
54987	if err := gensupport.DecodeResponse(target, res); err != nil {
54988		return nil, err
54989	}
54990	return ret, nil
54991	// {
54992	//   "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.",
54993	//   "httpMethod": "PATCH",
54994	//   "id": "compute.backendBuckets.patch",
54995	//   "parameterOrder": [
54996	//     "project",
54997	//     "backendBucket"
54998	//   ],
54999	//   "parameters": {
55000	//     "backendBucket": {
55001	//       "description": "Name of the BackendBucket resource to patch.",
55002	//       "location": "path",
55003	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55004	//       "required": true,
55005	//       "type": "string"
55006	//     },
55007	//     "project": {
55008	//       "description": "Project ID for this request.",
55009	//       "location": "path",
55010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55011	//       "required": true,
55012	//       "type": "string"
55013	//     },
55014	//     "requestId": {
55015	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55016	//       "location": "query",
55017	//       "type": "string"
55018	//     }
55019	//   },
55020	//   "path": "{project}/global/backendBuckets/{backendBucket}",
55021	//   "request": {
55022	//     "$ref": "BackendBucket"
55023	//   },
55024	//   "response": {
55025	//     "$ref": "Operation"
55026	//   },
55027	//   "scopes": [
55028	//     "https://www.googleapis.com/auth/cloud-platform",
55029	//     "https://www.googleapis.com/auth/compute"
55030	//   ]
55031	// }
55032
55033}
55034
55035// method id "compute.backendBuckets.setIamPolicy":
55036
55037type BackendBucketsSetIamPolicyCall struct {
55038	s                      *Service
55039	project                string
55040	resource               string
55041	globalsetpolicyrequest *GlobalSetPolicyRequest
55042	urlParams_             gensupport.URLParams
55043	ctx_                   context.Context
55044	header_                http.Header
55045}
55046
55047// SetIamPolicy: Sets the access control policy on the specified
55048// resource. Replaces any existing policy.
55049func (r *BackendBucketsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *BackendBucketsSetIamPolicyCall {
55050	c := &BackendBucketsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55051	c.project = project
55052	c.resource = resource
55053	c.globalsetpolicyrequest = globalsetpolicyrequest
55054	return c
55055}
55056
55057// Fields allows partial responses to be retrieved. See
55058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55059// for more information.
55060func (c *BackendBucketsSetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsSetIamPolicyCall {
55061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55062	return c
55063}
55064
55065// Context sets the context to be used in this call's Do method. Any
55066// pending HTTP request will be aborted if the provided context is
55067// canceled.
55068func (c *BackendBucketsSetIamPolicyCall) Context(ctx context.Context) *BackendBucketsSetIamPolicyCall {
55069	c.ctx_ = ctx
55070	return c
55071}
55072
55073// Header returns an http.Header that can be modified by the caller to
55074// add HTTP headers to the request.
55075func (c *BackendBucketsSetIamPolicyCall) Header() http.Header {
55076	if c.header_ == nil {
55077		c.header_ = make(http.Header)
55078	}
55079	return c.header_
55080}
55081
55082func (c *BackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
55083	reqHeaders := make(http.Header)
55084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
55085	for k, v := range c.header_ {
55086		reqHeaders[k] = v
55087	}
55088	reqHeaders.Set("User-Agent", c.s.userAgent())
55089	var body io.Reader = nil
55090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
55091	if err != nil {
55092		return nil, err
55093	}
55094	reqHeaders.Set("Content-Type", "application/json")
55095	c.urlParams_.Set("alt", alt)
55096	c.urlParams_.Set("prettyPrint", "false")
55097	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/setIamPolicy")
55098	urls += "?" + c.urlParams_.Encode()
55099	req, err := http.NewRequest("POST", urls, body)
55100	if err != nil {
55101		return nil, err
55102	}
55103	req.Header = reqHeaders
55104	googleapi.Expand(req.URL, map[string]string{
55105		"project":  c.project,
55106		"resource": c.resource,
55107	})
55108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55109}
55110
55111// Do executes the "compute.backendBuckets.setIamPolicy" call.
55112// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55113// code is an error. Response headers are in either
55114// *Policy.ServerResponse.Header or (if a response was returned at all)
55115// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55116// check whether the returned error was because http.StatusNotModified
55117// was returned.
55118func (c *BackendBucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55119	gensupport.SetOptions(c.urlParams_, opts...)
55120	res, err := c.doRequest("json")
55121	if res != nil && res.StatusCode == http.StatusNotModified {
55122		if res.Body != nil {
55123			res.Body.Close()
55124		}
55125		return nil, &googleapi.Error{
55126			Code:   res.StatusCode,
55127			Header: res.Header,
55128		}
55129	}
55130	if err != nil {
55131		return nil, err
55132	}
55133	defer googleapi.CloseBody(res)
55134	if err := googleapi.CheckResponse(res); err != nil {
55135		return nil, err
55136	}
55137	ret := &Policy{
55138		ServerResponse: googleapi.ServerResponse{
55139			Header:         res.Header,
55140			HTTPStatusCode: res.StatusCode,
55141		},
55142	}
55143	target := &ret
55144	if err := gensupport.DecodeResponse(target, res); err != nil {
55145		return nil, err
55146	}
55147	return ret, nil
55148	// {
55149	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
55150	//   "httpMethod": "POST",
55151	//   "id": "compute.backendBuckets.setIamPolicy",
55152	//   "parameterOrder": [
55153	//     "project",
55154	//     "resource"
55155	//   ],
55156	//   "parameters": {
55157	//     "project": {
55158	//       "description": "Project ID for this request.",
55159	//       "location": "path",
55160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55161	//       "required": true,
55162	//       "type": "string"
55163	//     },
55164	//     "resource": {
55165	//       "description": "Name or id of the resource for this request.",
55166	//       "location": "path",
55167	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55168	//       "required": true,
55169	//       "type": "string"
55170	//     }
55171	//   },
55172	//   "path": "{project}/global/backendBuckets/{resource}/setIamPolicy",
55173	//   "request": {
55174	//     "$ref": "GlobalSetPolicyRequest"
55175	//   },
55176	//   "response": {
55177	//     "$ref": "Policy"
55178	//   },
55179	//   "scopes": [
55180	//     "https://www.googleapis.com/auth/cloud-platform",
55181	//     "https://www.googleapis.com/auth/compute"
55182	//   ]
55183	// }
55184
55185}
55186
55187// method id "compute.backendBuckets.testIamPermissions":
55188
55189type BackendBucketsTestIamPermissionsCall struct {
55190	s                      *Service
55191	project                string
55192	resource               string
55193	testpermissionsrequest *TestPermissionsRequest
55194	urlParams_             gensupport.URLParams
55195	ctx_                   context.Context
55196	header_                http.Header
55197}
55198
55199// TestIamPermissions: Returns permissions that a caller has on the
55200// specified resource.
55201func (r *BackendBucketsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendBucketsTestIamPermissionsCall {
55202	c := &BackendBucketsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55203	c.project = project
55204	c.resource = resource
55205	c.testpermissionsrequest = testpermissionsrequest
55206	return c
55207}
55208
55209// Fields allows partial responses to be retrieved. See
55210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55211// for more information.
55212func (c *BackendBucketsTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendBucketsTestIamPermissionsCall {
55213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55214	return c
55215}
55216
55217// Context sets the context to be used in this call's Do method. Any
55218// pending HTTP request will be aborted if the provided context is
55219// canceled.
55220func (c *BackendBucketsTestIamPermissionsCall) Context(ctx context.Context) *BackendBucketsTestIamPermissionsCall {
55221	c.ctx_ = ctx
55222	return c
55223}
55224
55225// Header returns an http.Header that can be modified by the caller to
55226// add HTTP headers to the request.
55227func (c *BackendBucketsTestIamPermissionsCall) Header() http.Header {
55228	if c.header_ == nil {
55229		c.header_ = make(http.Header)
55230	}
55231	return c.header_
55232}
55233
55234func (c *BackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
55235	reqHeaders := make(http.Header)
55236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
55237	for k, v := range c.header_ {
55238		reqHeaders[k] = v
55239	}
55240	reqHeaders.Set("User-Agent", c.s.userAgent())
55241	var body io.Reader = nil
55242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
55243	if err != nil {
55244		return nil, err
55245	}
55246	reqHeaders.Set("Content-Type", "application/json")
55247	c.urlParams_.Set("alt", alt)
55248	c.urlParams_.Set("prettyPrint", "false")
55249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/testIamPermissions")
55250	urls += "?" + c.urlParams_.Encode()
55251	req, err := http.NewRequest("POST", urls, body)
55252	if err != nil {
55253		return nil, err
55254	}
55255	req.Header = reqHeaders
55256	googleapi.Expand(req.URL, map[string]string{
55257		"project":  c.project,
55258		"resource": c.resource,
55259	})
55260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55261}
55262
55263// Do executes the "compute.backendBuckets.testIamPermissions" call.
55264// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
55265// non-2xx status code is an error. Response headers are in either
55266// *TestPermissionsResponse.ServerResponse.Header or (if a response was
55267// returned at all) in error.(*googleapi.Error).Header. Use
55268// googleapi.IsNotModified to check whether the returned error was
55269// because http.StatusNotModified was returned.
55270func (c *BackendBucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
55271	gensupport.SetOptions(c.urlParams_, opts...)
55272	res, err := c.doRequest("json")
55273	if res != nil && res.StatusCode == http.StatusNotModified {
55274		if res.Body != nil {
55275			res.Body.Close()
55276		}
55277		return nil, &googleapi.Error{
55278			Code:   res.StatusCode,
55279			Header: res.Header,
55280		}
55281	}
55282	if err != nil {
55283		return nil, err
55284	}
55285	defer googleapi.CloseBody(res)
55286	if err := googleapi.CheckResponse(res); err != nil {
55287		return nil, err
55288	}
55289	ret := &TestPermissionsResponse{
55290		ServerResponse: googleapi.ServerResponse{
55291			Header:         res.Header,
55292			HTTPStatusCode: res.StatusCode,
55293		},
55294	}
55295	target := &ret
55296	if err := gensupport.DecodeResponse(target, res); err != nil {
55297		return nil, err
55298	}
55299	return ret, nil
55300	// {
55301	//   "description": "Returns permissions that a caller has on the specified resource.",
55302	//   "httpMethod": "POST",
55303	//   "id": "compute.backendBuckets.testIamPermissions",
55304	//   "parameterOrder": [
55305	//     "project",
55306	//     "resource"
55307	//   ],
55308	//   "parameters": {
55309	//     "project": {
55310	//       "description": "Project ID for this request.",
55311	//       "location": "path",
55312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55313	//       "required": true,
55314	//       "type": "string"
55315	//     },
55316	//     "resource": {
55317	//       "description": "Name or id of the resource for this request.",
55318	//       "location": "path",
55319	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55320	//       "required": true,
55321	//       "type": "string"
55322	//     }
55323	//   },
55324	//   "path": "{project}/global/backendBuckets/{resource}/testIamPermissions",
55325	//   "request": {
55326	//     "$ref": "TestPermissionsRequest"
55327	//   },
55328	//   "response": {
55329	//     "$ref": "TestPermissionsResponse"
55330	//   },
55331	//   "scopes": [
55332	//     "https://www.googleapis.com/auth/cloud-platform",
55333	//     "https://www.googleapis.com/auth/compute",
55334	//     "https://www.googleapis.com/auth/compute.readonly"
55335	//   ]
55336	// }
55337
55338}
55339
55340// method id "compute.backendBuckets.update":
55341
55342type BackendBucketsUpdateCall struct {
55343	s             *Service
55344	project       string
55345	backendBucket string
55346	backendbucket *BackendBucket
55347	urlParams_    gensupport.URLParams
55348	ctx_          context.Context
55349	header_       http.Header
55350}
55351
55352// Update: Updates the specified BackendBucket resource with the data
55353// included in the request.
55354func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
55355	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55356	c.project = project
55357	c.backendBucket = backendBucket
55358	c.backendbucket = backendbucket
55359	return c
55360}
55361
55362// RequestId sets the optional parameter "requestId": An optional
55363// request ID to identify requests. Specify a unique request ID so that
55364// if you must retry your request, the server will know to ignore the
55365// request if it has already been completed.
55366//
55367// For example, consider a situation where you make an initial request
55368// and the request times out. If you make the request again with the
55369// same request ID, the server can check if original operation with the
55370// same request ID was received, and if so, will ignore the second
55371// request. This prevents clients from accidentally creating duplicate
55372// commitments.
55373//
55374// The request ID must be a valid UUID with the exception that zero UUID
55375// is not supported (00000000-0000-0000-0000-000000000000).
55376func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
55377	c.urlParams_.Set("requestId", requestId)
55378	return c
55379}
55380
55381// Fields allows partial responses to be retrieved. See
55382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55383// for more information.
55384func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
55385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55386	return c
55387}
55388
55389// Context sets the context to be used in this call's Do method. Any
55390// pending HTTP request will be aborted if the provided context is
55391// canceled.
55392func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
55393	c.ctx_ = ctx
55394	return c
55395}
55396
55397// Header returns an http.Header that can be modified by the caller to
55398// add HTTP headers to the request.
55399func (c *BackendBucketsUpdateCall) Header() http.Header {
55400	if c.header_ == nil {
55401		c.header_ = make(http.Header)
55402	}
55403	return c.header_
55404}
55405
55406func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
55407	reqHeaders := make(http.Header)
55408	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
55409	for k, v := range c.header_ {
55410		reqHeaders[k] = v
55411	}
55412	reqHeaders.Set("User-Agent", c.s.userAgent())
55413	var body io.Reader = nil
55414	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55415	if err != nil {
55416		return nil, err
55417	}
55418	reqHeaders.Set("Content-Type", "application/json")
55419	c.urlParams_.Set("alt", alt)
55420	c.urlParams_.Set("prettyPrint", "false")
55421	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
55422	urls += "?" + c.urlParams_.Encode()
55423	req, err := http.NewRequest("PUT", urls, body)
55424	if err != nil {
55425		return nil, err
55426	}
55427	req.Header = reqHeaders
55428	googleapi.Expand(req.URL, map[string]string{
55429		"project":       c.project,
55430		"backendBucket": c.backendBucket,
55431	})
55432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55433}
55434
55435// Do executes the "compute.backendBuckets.update" call.
55436// Exactly one of *Operation or error will be non-nil. Any non-2xx
55437// status code is an error. Response headers are in either
55438// *Operation.ServerResponse.Header or (if a response was returned at
55439// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55440// to check whether the returned error was because
55441// http.StatusNotModified was returned.
55442func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55443	gensupport.SetOptions(c.urlParams_, opts...)
55444	res, err := c.doRequest("json")
55445	if res != nil && res.StatusCode == http.StatusNotModified {
55446		if res.Body != nil {
55447			res.Body.Close()
55448		}
55449		return nil, &googleapi.Error{
55450			Code:   res.StatusCode,
55451			Header: res.Header,
55452		}
55453	}
55454	if err != nil {
55455		return nil, err
55456	}
55457	defer googleapi.CloseBody(res)
55458	if err := googleapi.CheckResponse(res); err != nil {
55459		return nil, err
55460	}
55461	ret := &Operation{
55462		ServerResponse: googleapi.ServerResponse{
55463			Header:         res.Header,
55464			HTTPStatusCode: res.StatusCode,
55465		},
55466	}
55467	target := &ret
55468	if err := gensupport.DecodeResponse(target, res); err != nil {
55469		return nil, err
55470	}
55471	return ret, nil
55472	// {
55473	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
55474	//   "httpMethod": "PUT",
55475	//   "id": "compute.backendBuckets.update",
55476	//   "parameterOrder": [
55477	//     "project",
55478	//     "backendBucket"
55479	//   ],
55480	//   "parameters": {
55481	//     "backendBucket": {
55482	//       "description": "Name of the BackendBucket resource to update.",
55483	//       "location": "path",
55484	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55485	//       "required": true,
55486	//       "type": "string"
55487	//     },
55488	//     "project": {
55489	//       "description": "Project ID for this request.",
55490	//       "location": "path",
55491	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55492	//       "required": true,
55493	//       "type": "string"
55494	//     },
55495	//     "requestId": {
55496	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55497	//       "location": "query",
55498	//       "type": "string"
55499	//     }
55500	//   },
55501	//   "path": "{project}/global/backendBuckets/{backendBucket}",
55502	//   "request": {
55503	//     "$ref": "BackendBucket"
55504	//   },
55505	//   "response": {
55506	//     "$ref": "Operation"
55507	//   },
55508	//   "scopes": [
55509	//     "https://www.googleapis.com/auth/cloud-platform",
55510	//     "https://www.googleapis.com/auth/compute"
55511	//   ]
55512	// }
55513
55514}
55515
55516// method id "compute.backendServices.addSignedUrlKey":
55517
55518type BackendServicesAddSignedUrlKeyCall struct {
55519	s              *Service
55520	project        string
55521	backendService string
55522	signedurlkey   *SignedUrlKey
55523	urlParams_     gensupport.URLParams
55524	ctx_           context.Context
55525	header_        http.Header
55526}
55527
55528// AddSignedUrlKey: Adds a key for validating requests with signed URLs
55529// for this backend service.
55530func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
55531	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55532	c.project = project
55533	c.backendService = backendService
55534	c.signedurlkey = signedurlkey
55535	return c
55536}
55537
55538// RequestId sets the optional parameter "requestId": An optional
55539// request ID to identify requests. Specify a unique request ID so that
55540// if you must retry your request, the server will know to ignore the
55541// request if it has already been completed.
55542//
55543// For example, consider a situation where you make an initial request
55544// and the request times out. If you make the request again with the
55545// same request ID, the server can check if original operation with the
55546// same request ID was received, and if so, will ignore the second
55547// request. This prevents clients from accidentally creating duplicate
55548// commitments.
55549//
55550// The request ID must be a valid UUID with the exception that zero UUID
55551// is not supported (00000000-0000-0000-0000-000000000000).
55552func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
55553	c.urlParams_.Set("requestId", requestId)
55554	return c
55555}
55556
55557// Fields allows partial responses to be retrieved. See
55558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55559// for more information.
55560func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
55561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55562	return c
55563}
55564
55565// Context sets the context to be used in this call's Do method. Any
55566// pending HTTP request will be aborted if the provided context is
55567// canceled.
55568func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
55569	c.ctx_ = ctx
55570	return c
55571}
55572
55573// Header returns an http.Header that can be modified by the caller to
55574// add HTTP headers to the request.
55575func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
55576	if c.header_ == nil {
55577		c.header_ = make(http.Header)
55578	}
55579	return c.header_
55580}
55581
55582func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
55583	reqHeaders := make(http.Header)
55584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
55585	for k, v := range c.header_ {
55586		reqHeaders[k] = v
55587	}
55588	reqHeaders.Set("User-Agent", c.s.userAgent())
55589	var body io.Reader = nil
55590	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
55591	if err != nil {
55592		return nil, err
55593	}
55594	reqHeaders.Set("Content-Type", "application/json")
55595	c.urlParams_.Set("alt", alt)
55596	c.urlParams_.Set("prettyPrint", "false")
55597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
55598	urls += "?" + c.urlParams_.Encode()
55599	req, err := http.NewRequest("POST", urls, body)
55600	if err != nil {
55601		return nil, err
55602	}
55603	req.Header = reqHeaders
55604	googleapi.Expand(req.URL, map[string]string{
55605		"project":        c.project,
55606		"backendService": c.backendService,
55607	})
55608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55609}
55610
55611// Do executes the "compute.backendServices.addSignedUrlKey" call.
55612// Exactly one of *Operation or error will be non-nil. Any non-2xx
55613// status code is an error. Response headers are in either
55614// *Operation.ServerResponse.Header or (if a response was returned at
55615// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55616// to check whether the returned error was because
55617// http.StatusNotModified was returned.
55618func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55619	gensupport.SetOptions(c.urlParams_, opts...)
55620	res, err := c.doRequest("json")
55621	if res != nil && res.StatusCode == http.StatusNotModified {
55622		if res.Body != nil {
55623			res.Body.Close()
55624		}
55625		return nil, &googleapi.Error{
55626			Code:   res.StatusCode,
55627			Header: res.Header,
55628		}
55629	}
55630	if err != nil {
55631		return nil, err
55632	}
55633	defer googleapi.CloseBody(res)
55634	if err := googleapi.CheckResponse(res); err != nil {
55635		return nil, err
55636	}
55637	ret := &Operation{
55638		ServerResponse: googleapi.ServerResponse{
55639			Header:         res.Header,
55640			HTTPStatusCode: res.StatusCode,
55641		},
55642	}
55643	target := &ret
55644	if err := gensupport.DecodeResponse(target, res); err != nil {
55645		return nil, err
55646	}
55647	return ret, nil
55648	// {
55649	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
55650	//   "httpMethod": "POST",
55651	//   "id": "compute.backendServices.addSignedUrlKey",
55652	//   "parameterOrder": [
55653	//     "project",
55654	//     "backendService"
55655	//   ],
55656	//   "parameters": {
55657	//     "backendService": {
55658	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
55659	//       "location": "path",
55660	//       "required": true,
55661	//       "type": "string"
55662	//     },
55663	//     "project": {
55664	//       "description": "Project ID for this request.",
55665	//       "location": "path",
55666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55667	//       "required": true,
55668	//       "type": "string"
55669	//     },
55670	//     "requestId": {
55671	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55672	//       "location": "query",
55673	//       "type": "string"
55674	//     }
55675	//   },
55676	//   "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
55677	//   "request": {
55678	//     "$ref": "SignedUrlKey"
55679	//   },
55680	//   "response": {
55681	//     "$ref": "Operation"
55682	//   },
55683	//   "scopes": [
55684	//     "https://www.googleapis.com/auth/cloud-platform",
55685	//     "https://www.googleapis.com/auth/compute"
55686	//   ]
55687	// }
55688
55689}
55690
55691// method id "compute.backendServices.aggregatedList":
55692
55693type BackendServicesAggregatedListCall struct {
55694	s            *Service
55695	project      string
55696	urlParams_   gensupport.URLParams
55697	ifNoneMatch_ string
55698	ctx_         context.Context
55699	header_      http.Header
55700}
55701
55702// AggregatedList: Retrieves the list of all BackendService resources,
55703// regional and global, available to the specified project.
55704func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
55705	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55706	c.project = project
55707	return c
55708}
55709
55710// Filter sets the optional parameter "filter": A filter expression that
55711// filters resources listed in the response. The expression must specify
55712// the field name, a comparison operator, and the value that you want to
55713// use for filtering. The value must be a string, a number, or a
55714// boolean. The comparison operator must be either `=`, `!=`, `>`, or
55715// `<`.
55716//
55717// For example, if you are filtering Compute Engine instances, you can
55718// exclude instances named `example-instance` by specifying `name !=
55719// example-instance`.
55720//
55721// You can also filter nested fields. For example, you could specify
55722// `scheduling.automaticRestart = false` to include instances only if
55723// they are not scheduled for automatic restarts. You can use filtering
55724// on nested fields to filter based on resource labels.
55725//
55726// To filter on multiple expressions, provide each separate expression
55727// within parentheses. For example: ``` (scheduling.automaticRestart =
55728// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
55729// is an `AND` expression. However, you can include `AND` and `OR`
55730// expressions explicitly. For example: ``` (cpuPlatform = "Intel
55731// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
55732// (scheduling.automaticRestart = true) ```
55733func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
55734	c.urlParams_.Set("filter", filter)
55735	return c
55736}
55737
55738// IncludeAllScopes sets the optional parameter "includeAllScopes":
55739// Indicates whether every visible scope for each scope type (zone,
55740// region, global) should be included in the response. For new resource
55741// types added after this field, the flag has no effect as new resource
55742// types will always include every visible scope for each scope type in
55743// response. For resource types which predate this field, if this flag
55744// is omitted or false, only scopes of the scope types where the
55745// resource type is expected to be found will be included.
55746func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
55747	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
55748	return c
55749}
55750
55751// MaxResults sets the optional parameter "maxResults": The maximum
55752// number of results per page that should be returned. If the number of
55753// available results is larger than `maxResults`, Compute Engine returns
55754// a `nextPageToken` that can be used to get the next page of results in
55755// subsequent list requests. Acceptable values are `0` to `500`,
55756// inclusive. (Default: `500`)
55757func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
55758	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55759	return c
55760}
55761
55762// OrderBy sets the optional parameter "orderBy": Sorts list results by
55763// a certain order. By default, results are returned in alphanumerical
55764// order based on the resource name.
55765//
55766// You can also sort results in descending order based on the creation
55767// timestamp using `orderBy="creationTimestamp desc". This sorts
55768// results based on the `creationTimestamp` field in reverse
55769// chronological order (newest result first). Use this to sort resources
55770// like operations so that the newest operation is returned
55771// first.
55772//
55773// Currently, only sorting by `name` or `creationTimestamp desc` is
55774// supported.
55775func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
55776	c.urlParams_.Set("orderBy", orderBy)
55777	return c
55778}
55779
55780// PageToken sets the optional parameter "pageToken": Specifies a page
55781// token to use. Set `pageToken` to the `nextPageToken` returned by a
55782// previous list request to get the next page of results.
55783func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
55784	c.urlParams_.Set("pageToken", pageToken)
55785	return c
55786}
55787
55788// ReturnPartialSuccess sets the optional parameter
55789// "returnPartialSuccess": Opt-in for partial success behavior which
55790// provides partial results in case of failure. The default value is
55791// false and the logic is the same as today.
55792func (c *BackendServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesAggregatedListCall {
55793	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
55794	return c
55795}
55796
55797// Fields allows partial responses to be retrieved. See
55798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55799// for more information.
55800func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
55801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55802	return c
55803}
55804
55805// IfNoneMatch sets the optional parameter which makes the operation
55806// fail if the object's ETag matches the given value. This is useful for
55807// getting updates only after the object has changed since the last
55808// request. Use googleapi.IsNotModified to check whether the response
55809// error from Do is the result of In-None-Match.
55810func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
55811	c.ifNoneMatch_ = entityTag
55812	return c
55813}
55814
55815// Context sets the context to be used in this call's Do method. Any
55816// pending HTTP request will be aborted if the provided context is
55817// canceled.
55818func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
55819	c.ctx_ = ctx
55820	return c
55821}
55822
55823// Header returns an http.Header that can be modified by the caller to
55824// add HTTP headers to the request.
55825func (c *BackendServicesAggregatedListCall) Header() http.Header {
55826	if c.header_ == nil {
55827		c.header_ = make(http.Header)
55828	}
55829	return c.header_
55830}
55831
55832func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
55833	reqHeaders := make(http.Header)
55834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
55835	for k, v := range c.header_ {
55836		reqHeaders[k] = v
55837	}
55838	reqHeaders.Set("User-Agent", c.s.userAgent())
55839	if c.ifNoneMatch_ != "" {
55840		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55841	}
55842	var body io.Reader = nil
55843	c.urlParams_.Set("alt", alt)
55844	c.urlParams_.Set("prettyPrint", "false")
55845	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
55846	urls += "?" + c.urlParams_.Encode()
55847	req, err := http.NewRequest("GET", urls, body)
55848	if err != nil {
55849		return nil, err
55850	}
55851	req.Header = reqHeaders
55852	googleapi.Expand(req.URL, map[string]string{
55853		"project": c.project,
55854	})
55855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55856}
55857
55858// Do executes the "compute.backendServices.aggregatedList" call.
55859// Exactly one of *BackendServiceAggregatedList or error will be
55860// non-nil. Any non-2xx status code is an error. Response headers are in
55861// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
55862// response was returned at all) in error.(*googleapi.Error).Header. Use
55863// googleapi.IsNotModified to check whether the returned error was
55864// because http.StatusNotModified was returned.
55865func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
55866	gensupport.SetOptions(c.urlParams_, opts...)
55867	res, err := c.doRequest("json")
55868	if res != nil && res.StatusCode == http.StatusNotModified {
55869		if res.Body != nil {
55870			res.Body.Close()
55871		}
55872		return nil, &googleapi.Error{
55873			Code:   res.StatusCode,
55874			Header: res.Header,
55875		}
55876	}
55877	if err != nil {
55878		return nil, err
55879	}
55880	defer googleapi.CloseBody(res)
55881	if err := googleapi.CheckResponse(res); err != nil {
55882		return nil, err
55883	}
55884	ret := &BackendServiceAggregatedList{
55885		ServerResponse: googleapi.ServerResponse{
55886			Header:         res.Header,
55887			HTTPStatusCode: res.StatusCode,
55888		},
55889	}
55890	target := &ret
55891	if err := gensupport.DecodeResponse(target, res); err != nil {
55892		return nil, err
55893	}
55894	return ret, nil
55895	// {
55896	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
55897	//   "httpMethod": "GET",
55898	//   "id": "compute.backendServices.aggregatedList",
55899	//   "parameterOrder": [
55900	//     "project"
55901	//   ],
55902	//   "parameters": {
55903	//     "filter": {
55904	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
55905	//       "location": "query",
55906	//       "type": "string"
55907	//     },
55908	//     "includeAllScopes": {
55909	//       "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.",
55910	//       "location": "query",
55911	//       "type": "boolean"
55912	//     },
55913	//     "maxResults": {
55914	//       "default": "500",
55915	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
55916	//       "format": "uint32",
55917	//       "location": "query",
55918	//       "minimum": "0",
55919	//       "type": "integer"
55920	//     },
55921	//     "orderBy": {
55922	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
55923	//       "location": "query",
55924	//       "type": "string"
55925	//     },
55926	//     "pageToken": {
55927	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
55928	//       "location": "query",
55929	//       "type": "string"
55930	//     },
55931	//     "project": {
55932	//       "description": "Name of the project scoping this request.",
55933	//       "location": "path",
55934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55935	//       "required": true,
55936	//       "type": "string"
55937	//     },
55938	//     "returnPartialSuccess": {
55939	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
55940	//       "location": "query",
55941	//       "type": "boolean"
55942	//     }
55943	//   },
55944	//   "path": "{project}/aggregated/backendServices",
55945	//   "response": {
55946	//     "$ref": "BackendServiceAggregatedList"
55947	//   },
55948	//   "scopes": [
55949	//     "https://www.googleapis.com/auth/cloud-platform",
55950	//     "https://www.googleapis.com/auth/compute",
55951	//     "https://www.googleapis.com/auth/compute.readonly"
55952	//   ]
55953	// }
55954
55955}
55956
55957// Pages invokes f for each page of results.
55958// A non-nil error returned from f will halt the iteration.
55959// The provided context supersedes any context provided to the Context method.
55960func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
55961	c.ctx_ = ctx
55962	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55963	for {
55964		x, err := c.Do()
55965		if err != nil {
55966			return err
55967		}
55968		if err := f(x); err != nil {
55969			return err
55970		}
55971		if x.NextPageToken == "" {
55972			return nil
55973		}
55974		c.PageToken(x.NextPageToken)
55975	}
55976}
55977
55978// method id "compute.backendServices.delete":
55979
55980type BackendServicesDeleteCall struct {
55981	s              *Service
55982	project        string
55983	backendService string
55984	urlParams_     gensupport.URLParams
55985	ctx_           context.Context
55986	header_        http.Header
55987}
55988
55989// Delete: Deletes the specified BackendService resource.
55990// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
55991func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
55992	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55993	c.project = project
55994	c.backendService = backendService
55995	return c
55996}
55997
55998// RequestId sets the optional parameter "requestId": An optional
55999// request ID to identify requests. Specify a unique request ID so that
56000// if you must retry your request, the server will know to ignore the
56001// request if it has already been completed.
56002//
56003// For example, consider a situation where you make an initial request
56004// and the request times out. If you make the request again with the
56005// same request ID, the server can check if original operation with the
56006// same request ID was received, and if so, will ignore the second
56007// request. This prevents clients from accidentally creating duplicate
56008// commitments.
56009//
56010// The request ID must be a valid UUID with the exception that zero UUID
56011// is not supported (00000000-0000-0000-0000-000000000000).
56012func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
56013	c.urlParams_.Set("requestId", requestId)
56014	return c
56015}
56016
56017// Fields allows partial responses to be retrieved. See
56018// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56019// for more information.
56020func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
56021	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56022	return c
56023}
56024
56025// Context sets the context to be used in this call's Do method. Any
56026// pending HTTP request will be aborted if the provided context is
56027// canceled.
56028func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
56029	c.ctx_ = ctx
56030	return c
56031}
56032
56033// Header returns an http.Header that can be modified by the caller to
56034// add HTTP headers to the request.
56035func (c *BackendServicesDeleteCall) Header() http.Header {
56036	if c.header_ == nil {
56037		c.header_ = make(http.Header)
56038	}
56039	return c.header_
56040}
56041
56042func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
56043	reqHeaders := make(http.Header)
56044	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
56045	for k, v := range c.header_ {
56046		reqHeaders[k] = v
56047	}
56048	reqHeaders.Set("User-Agent", c.s.userAgent())
56049	var body io.Reader = nil
56050	c.urlParams_.Set("alt", alt)
56051	c.urlParams_.Set("prettyPrint", "false")
56052	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
56053	urls += "?" + c.urlParams_.Encode()
56054	req, err := http.NewRequest("DELETE", urls, body)
56055	if err != nil {
56056		return nil, err
56057	}
56058	req.Header = reqHeaders
56059	googleapi.Expand(req.URL, map[string]string{
56060		"project":        c.project,
56061		"backendService": c.backendService,
56062	})
56063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56064}
56065
56066// Do executes the "compute.backendServices.delete" call.
56067// Exactly one of *Operation or error will be non-nil. Any non-2xx
56068// status code is an error. Response headers are in either
56069// *Operation.ServerResponse.Header or (if a response was returned at
56070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56071// to check whether the returned error was because
56072// http.StatusNotModified was returned.
56073func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56074	gensupport.SetOptions(c.urlParams_, opts...)
56075	res, err := c.doRequest("json")
56076	if res != nil && res.StatusCode == http.StatusNotModified {
56077		if res.Body != nil {
56078			res.Body.Close()
56079		}
56080		return nil, &googleapi.Error{
56081			Code:   res.StatusCode,
56082			Header: res.Header,
56083		}
56084	}
56085	if err != nil {
56086		return nil, err
56087	}
56088	defer googleapi.CloseBody(res)
56089	if err := googleapi.CheckResponse(res); err != nil {
56090		return nil, err
56091	}
56092	ret := &Operation{
56093		ServerResponse: googleapi.ServerResponse{
56094			Header:         res.Header,
56095			HTTPStatusCode: res.StatusCode,
56096		},
56097	}
56098	target := &ret
56099	if err := gensupport.DecodeResponse(target, res); err != nil {
56100		return nil, err
56101	}
56102	return ret, nil
56103	// {
56104	//   "description": "Deletes the specified BackendService resource.",
56105	//   "httpMethod": "DELETE",
56106	//   "id": "compute.backendServices.delete",
56107	//   "parameterOrder": [
56108	//     "project",
56109	//     "backendService"
56110	//   ],
56111	//   "parameters": {
56112	//     "backendService": {
56113	//       "description": "Name of the BackendService resource to delete.",
56114	//       "location": "path",
56115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56116	//       "required": true,
56117	//       "type": "string"
56118	//     },
56119	//     "project": {
56120	//       "description": "Project ID for this request.",
56121	//       "location": "path",
56122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56123	//       "required": true,
56124	//       "type": "string"
56125	//     },
56126	//     "requestId": {
56127	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56128	//       "location": "query",
56129	//       "type": "string"
56130	//     }
56131	//   },
56132	//   "path": "{project}/global/backendServices/{backendService}",
56133	//   "response": {
56134	//     "$ref": "Operation"
56135	//   },
56136	//   "scopes": [
56137	//     "https://www.googleapis.com/auth/cloud-platform",
56138	//     "https://www.googleapis.com/auth/compute"
56139	//   ]
56140	// }
56141
56142}
56143
56144// method id "compute.backendServices.deleteSignedUrlKey":
56145
56146type BackendServicesDeleteSignedUrlKeyCall struct {
56147	s              *Service
56148	project        string
56149	backendService string
56150	urlParams_     gensupport.URLParams
56151	ctx_           context.Context
56152	header_        http.Header
56153}
56154
56155// DeleteSignedUrlKey: Deletes a key for validating requests with signed
56156// URLs for this backend service.
56157func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
56158	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56159	c.project = project
56160	c.backendService = backendService
56161	c.urlParams_.Set("keyName", keyName)
56162	return c
56163}
56164
56165// RequestId sets the optional parameter "requestId": An optional
56166// request ID to identify requests. Specify a unique request ID so that
56167// if you must retry your request, the server will know to ignore the
56168// request if it has already been completed.
56169//
56170// For example, consider a situation where you make an initial request
56171// and the request times out. If you make the request again with the
56172// same request ID, the server can check if original operation with the
56173// same request ID was received, and if so, will ignore the second
56174// request. This prevents clients from accidentally creating duplicate
56175// commitments.
56176//
56177// The request ID must be a valid UUID with the exception that zero UUID
56178// is not supported (00000000-0000-0000-0000-000000000000).
56179func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
56180	c.urlParams_.Set("requestId", requestId)
56181	return c
56182}
56183
56184// Fields allows partial responses to be retrieved. See
56185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56186// for more information.
56187func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
56188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56189	return c
56190}
56191
56192// Context sets the context to be used in this call's Do method. Any
56193// pending HTTP request will be aborted if the provided context is
56194// canceled.
56195func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
56196	c.ctx_ = ctx
56197	return c
56198}
56199
56200// Header returns an http.Header that can be modified by the caller to
56201// add HTTP headers to the request.
56202func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
56203	if c.header_ == nil {
56204		c.header_ = make(http.Header)
56205	}
56206	return c.header_
56207}
56208
56209func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
56210	reqHeaders := make(http.Header)
56211	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
56212	for k, v := range c.header_ {
56213		reqHeaders[k] = v
56214	}
56215	reqHeaders.Set("User-Agent", c.s.userAgent())
56216	var body io.Reader = nil
56217	c.urlParams_.Set("alt", alt)
56218	c.urlParams_.Set("prettyPrint", "false")
56219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
56220	urls += "?" + c.urlParams_.Encode()
56221	req, err := http.NewRequest("POST", urls, body)
56222	if err != nil {
56223		return nil, err
56224	}
56225	req.Header = reqHeaders
56226	googleapi.Expand(req.URL, map[string]string{
56227		"project":        c.project,
56228		"backendService": c.backendService,
56229	})
56230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56231}
56232
56233// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
56234// Exactly one of *Operation or error will be non-nil. Any non-2xx
56235// status code is an error. Response headers are in either
56236// *Operation.ServerResponse.Header or (if a response was returned at
56237// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56238// to check whether the returned error was because
56239// http.StatusNotModified was returned.
56240func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56241	gensupport.SetOptions(c.urlParams_, opts...)
56242	res, err := c.doRequest("json")
56243	if res != nil && res.StatusCode == http.StatusNotModified {
56244		if res.Body != nil {
56245			res.Body.Close()
56246		}
56247		return nil, &googleapi.Error{
56248			Code:   res.StatusCode,
56249			Header: res.Header,
56250		}
56251	}
56252	if err != nil {
56253		return nil, err
56254	}
56255	defer googleapi.CloseBody(res)
56256	if err := googleapi.CheckResponse(res); err != nil {
56257		return nil, err
56258	}
56259	ret := &Operation{
56260		ServerResponse: googleapi.ServerResponse{
56261			Header:         res.Header,
56262			HTTPStatusCode: res.StatusCode,
56263		},
56264	}
56265	target := &ret
56266	if err := gensupport.DecodeResponse(target, res); err != nil {
56267		return nil, err
56268	}
56269	return ret, nil
56270	// {
56271	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
56272	//   "httpMethod": "POST",
56273	//   "id": "compute.backendServices.deleteSignedUrlKey",
56274	//   "parameterOrder": [
56275	//     "project",
56276	//     "backendService",
56277	//     "keyName"
56278	//   ],
56279	//   "parameters": {
56280	//     "backendService": {
56281	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
56282	//       "location": "path",
56283	//       "required": true,
56284	//       "type": "string"
56285	//     },
56286	//     "keyName": {
56287	//       "description": "The name of the Signed URL Key to delete.",
56288	//       "location": "query",
56289	//       "required": true,
56290	//       "type": "string"
56291	//     },
56292	//     "project": {
56293	//       "description": "Project ID for this request.",
56294	//       "location": "path",
56295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56296	//       "required": true,
56297	//       "type": "string"
56298	//     },
56299	//     "requestId": {
56300	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56301	//       "location": "query",
56302	//       "type": "string"
56303	//     }
56304	//   },
56305	//   "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
56306	//   "response": {
56307	//     "$ref": "Operation"
56308	//   },
56309	//   "scopes": [
56310	//     "https://www.googleapis.com/auth/cloud-platform",
56311	//     "https://www.googleapis.com/auth/compute"
56312	//   ]
56313	// }
56314
56315}
56316
56317// method id "compute.backendServices.get":
56318
56319type BackendServicesGetCall struct {
56320	s              *Service
56321	project        string
56322	backendService string
56323	urlParams_     gensupport.URLParams
56324	ifNoneMatch_   string
56325	ctx_           context.Context
56326	header_        http.Header
56327}
56328
56329// Get: Returns the specified BackendService resource. Gets a list of
56330// available backend services.
56331// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
56332func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
56333	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56334	c.project = project
56335	c.backendService = backendService
56336	return c
56337}
56338
56339// Fields allows partial responses to be retrieved. See
56340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56341// for more information.
56342func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
56343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56344	return c
56345}
56346
56347// IfNoneMatch sets the optional parameter which makes the operation
56348// fail if the object's ETag matches the given value. This is useful for
56349// getting updates only after the object has changed since the last
56350// request. Use googleapi.IsNotModified to check whether the response
56351// error from Do is the result of In-None-Match.
56352func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
56353	c.ifNoneMatch_ = entityTag
56354	return c
56355}
56356
56357// Context sets the context to be used in this call's Do method. Any
56358// pending HTTP request will be aborted if the provided context is
56359// canceled.
56360func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
56361	c.ctx_ = ctx
56362	return c
56363}
56364
56365// Header returns an http.Header that can be modified by the caller to
56366// add HTTP headers to the request.
56367func (c *BackendServicesGetCall) Header() http.Header {
56368	if c.header_ == nil {
56369		c.header_ = make(http.Header)
56370	}
56371	return c.header_
56372}
56373
56374func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
56375	reqHeaders := make(http.Header)
56376	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
56377	for k, v := range c.header_ {
56378		reqHeaders[k] = v
56379	}
56380	reqHeaders.Set("User-Agent", c.s.userAgent())
56381	if c.ifNoneMatch_ != "" {
56382		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56383	}
56384	var body io.Reader = nil
56385	c.urlParams_.Set("alt", alt)
56386	c.urlParams_.Set("prettyPrint", "false")
56387	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
56388	urls += "?" + c.urlParams_.Encode()
56389	req, err := http.NewRequest("GET", urls, body)
56390	if err != nil {
56391		return nil, err
56392	}
56393	req.Header = reqHeaders
56394	googleapi.Expand(req.URL, map[string]string{
56395		"project":        c.project,
56396		"backendService": c.backendService,
56397	})
56398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56399}
56400
56401// Do executes the "compute.backendServices.get" call.
56402// Exactly one of *BackendService or error will be non-nil. Any non-2xx
56403// status code is an error. Response headers are in either
56404// *BackendService.ServerResponse.Header or (if a response was returned
56405// at all) in error.(*googleapi.Error).Header. Use
56406// googleapi.IsNotModified to check whether the returned error was
56407// because http.StatusNotModified was returned.
56408func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
56409	gensupport.SetOptions(c.urlParams_, opts...)
56410	res, err := c.doRequest("json")
56411	if res != nil && res.StatusCode == http.StatusNotModified {
56412		if res.Body != nil {
56413			res.Body.Close()
56414		}
56415		return nil, &googleapi.Error{
56416			Code:   res.StatusCode,
56417			Header: res.Header,
56418		}
56419	}
56420	if err != nil {
56421		return nil, err
56422	}
56423	defer googleapi.CloseBody(res)
56424	if err := googleapi.CheckResponse(res); err != nil {
56425		return nil, err
56426	}
56427	ret := &BackendService{
56428		ServerResponse: googleapi.ServerResponse{
56429			Header:         res.Header,
56430			HTTPStatusCode: res.StatusCode,
56431		},
56432	}
56433	target := &ret
56434	if err := gensupport.DecodeResponse(target, res); err != nil {
56435		return nil, err
56436	}
56437	return ret, nil
56438	// {
56439	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
56440	//   "httpMethod": "GET",
56441	//   "id": "compute.backendServices.get",
56442	//   "parameterOrder": [
56443	//     "project",
56444	//     "backendService"
56445	//   ],
56446	//   "parameters": {
56447	//     "backendService": {
56448	//       "description": "Name of the BackendService resource to return.",
56449	//       "location": "path",
56450	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56451	//       "required": true,
56452	//       "type": "string"
56453	//     },
56454	//     "project": {
56455	//       "description": "Project ID for this request.",
56456	//       "location": "path",
56457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56458	//       "required": true,
56459	//       "type": "string"
56460	//     }
56461	//   },
56462	//   "path": "{project}/global/backendServices/{backendService}",
56463	//   "response": {
56464	//     "$ref": "BackendService"
56465	//   },
56466	//   "scopes": [
56467	//     "https://www.googleapis.com/auth/cloud-platform",
56468	//     "https://www.googleapis.com/auth/compute",
56469	//     "https://www.googleapis.com/auth/compute.readonly"
56470	//   ]
56471	// }
56472
56473}
56474
56475// method id "compute.backendServices.getHealth":
56476
56477type BackendServicesGetHealthCall struct {
56478	s                      *Service
56479	project                string
56480	backendService         string
56481	resourcegroupreference *ResourceGroupReference
56482	urlParams_             gensupport.URLParams
56483	ctx_                   context.Context
56484	header_                http.Header
56485}
56486
56487// GetHealth: Gets the most recent health check results for this
56488// BackendService.
56489//
56490// Example request body:
56491//
56492// { "group": "/zones/us-east1-b/instanceGroups/lb-backend-example" }
56493// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
56494func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
56495	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56496	c.project = project
56497	c.backendService = backendService
56498	c.resourcegroupreference = resourcegroupreference
56499	return c
56500}
56501
56502// Fields allows partial responses to be retrieved. See
56503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56504// for more information.
56505func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
56506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56507	return c
56508}
56509
56510// Context sets the context to be used in this call's Do method. Any
56511// pending HTTP request will be aborted if the provided context is
56512// canceled.
56513func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
56514	c.ctx_ = ctx
56515	return c
56516}
56517
56518// Header returns an http.Header that can be modified by the caller to
56519// add HTTP headers to the request.
56520func (c *BackendServicesGetHealthCall) Header() http.Header {
56521	if c.header_ == nil {
56522		c.header_ = make(http.Header)
56523	}
56524	return c.header_
56525}
56526
56527func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
56528	reqHeaders := make(http.Header)
56529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
56530	for k, v := range c.header_ {
56531		reqHeaders[k] = v
56532	}
56533	reqHeaders.Set("User-Agent", c.s.userAgent())
56534	var body io.Reader = nil
56535	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
56536	if err != nil {
56537		return nil, err
56538	}
56539	reqHeaders.Set("Content-Type", "application/json")
56540	c.urlParams_.Set("alt", alt)
56541	c.urlParams_.Set("prettyPrint", "false")
56542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
56543	urls += "?" + c.urlParams_.Encode()
56544	req, err := http.NewRequest("POST", urls, body)
56545	if err != nil {
56546		return nil, err
56547	}
56548	req.Header = reqHeaders
56549	googleapi.Expand(req.URL, map[string]string{
56550		"project":        c.project,
56551		"backendService": c.backendService,
56552	})
56553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56554}
56555
56556// Do executes the "compute.backendServices.getHealth" call.
56557// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
56558// Any non-2xx status code is an error. Response headers are in either
56559// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
56560// was returned at all) in error.(*googleapi.Error).Header. Use
56561// googleapi.IsNotModified to check whether the returned error was
56562// because http.StatusNotModified was returned.
56563func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
56564	gensupport.SetOptions(c.urlParams_, opts...)
56565	res, err := c.doRequest("json")
56566	if res != nil && res.StatusCode == http.StatusNotModified {
56567		if res.Body != nil {
56568			res.Body.Close()
56569		}
56570		return nil, &googleapi.Error{
56571			Code:   res.StatusCode,
56572			Header: res.Header,
56573		}
56574	}
56575	if err != nil {
56576		return nil, err
56577	}
56578	defer googleapi.CloseBody(res)
56579	if err := googleapi.CheckResponse(res); err != nil {
56580		return nil, err
56581	}
56582	ret := &BackendServiceGroupHealth{
56583		ServerResponse: googleapi.ServerResponse{
56584			Header:         res.Header,
56585			HTTPStatusCode: res.StatusCode,
56586		},
56587	}
56588	target := &ret
56589	if err := gensupport.DecodeResponse(target, res); err != nil {
56590		return nil, err
56591	}
56592	return ret, nil
56593	// {
56594	//   "description": "Gets the most recent health check results for this BackendService.\n\nExample request body:\n\n{ \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }",
56595	//   "httpMethod": "POST",
56596	//   "id": "compute.backendServices.getHealth",
56597	//   "parameterOrder": [
56598	//     "project",
56599	//     "backendService"
56600	//   ],
56601	//   "parameters": {
56602	//     "backendService": {
56603	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
56604	//       "location": "path",
56605	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56606	//       "required": true,
56607	//       "type": "string"
56608	//     },
56609	//     "project": {
56610	//       "location": "path",
56611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56612	//       "required": true,
56613	//       "type": "string"
56614	//     }
56615	//   },
56616	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
56617	//   "request": {
56618	//     "$ref": "ResourceGroupReference"
56619	//   },
56620	//   "response": {
56621	//     "$ref": "BackendServiceGroupHealth"
56622	//   },
56623	//   "scopes": [
56624	//     "https://www.googleapis.com/auth/cloud-platform",
56625	//     "https://www.googleapis.com/auth/compute",
56626	//     "https://www.googleapis.com/auth/compute.readonly"
56627	//   ]
56628	// }
56629
56630}
56631
56632// method id "compute.backendServices.insert":
56633
56634type BackendServicesInsertCall struct {
56635	s              *Service
56636	project        string
56637	backendservice *BackendService
56638	urlParams_     gensupport.URLParams
56639	ctx_           context.Context
56640	header_        http.Header
56641}
56642
56643// Insert: Creates a BackendService resource in the specified project
56644// using the data included in the request. There are several
56645// restrictions and guidelines to keep in mind when creating a backend
56646// service. Read  Understanding backend services for more information.
56647// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
56648func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
56649	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56650	c.project = project
56651	c.backendservice = backendservice
56652	return c
56653}
56654
56655// RequestId sets the optional parameter "requestId": An optional
56656// request ID to identify requests. Specify a unique request ID so that
56657// if you must retry your request, the server will know to ignore the
56658// request if it has already been completed.
56659//
56660// For example, consider a situation where you make an initial request
56661// and the request times out. If you make the request again with the
56662// same request ID, the server can check if original operation with the
56663// same request ID was received, and if so, will ignore the second
56664// request. This prevents clients from accidentally creating duplicate
56665// commitments.
56666//
56667// The request ID must be a valid UUID with the exception that zero UUID
56668// is not supported (00000000-0000-0000-0000-000000000000).
56669func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
56670	c.urlParams_.Set("requestId", requestId)
56671	return c
56672}
56673
56674// Fields allows partial responses to be retrieved. See
56675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56676// for more information.
56677func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
56678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56679	return c
56680}
56681
56682// Context sets the context to be used in this call's Do method. Any
56683// pending HTTP request will be aborted if the provided context is
56684// canceled.
56685func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
56686	c.ctx_ = ctx
56687	return c
56688}
56689
56690// Header returns an http.Header that can be modified by the caller to
56691// add HTTP headers to the request.
56692func (c *BackendServicesInsertCall) Header() http.Header {
56693	if c.header_ == nil {
56694		c.header_ = make(http.Header)
56695	}
56696	return c.header_
56697}
56698
56699func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
56700	reqHeaders := make(http.Header)
56701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
56702	for k, v := range c.header_ {
56703		reqHeaders[k] = v
56704	}
56705	reqHeaders.Set("User-Agent", c.s.userAgent())
56706	var body io.Reader = nil
56707	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
56708	if err != nil {
56709		return nil, err
56710	}
56711	reqHeaders.Set("Content-Type", "application/json")
56712	c.urlParams_.Set("alt", alt)
56713	c.urlParams_.Set("prettyPrint", "false")
56714	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
56715	urls += "?" + c.urlParams_.Encode()
56716	req, err := http.NewRequest("POST", urls, body)
56717	if err != nil {
56718		return nil, err
56719	}
56720	req.Header = reqHeaders
56721	googleapi.Expand(req.URL, map[string]string{
56722		"project": c.project,
56723	})
56724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56725}
56726
56727// Do executes the "compute.backendServices.insert" call.
56728// Exactly one of *Operation or error will be non-nil. Any non-2xx
56729// status code is an error. Response headers are in either
56730// *Operation.ServerResponse.Header or (if a response was returned at
56731// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56732// to check whether the returned error was because
56733// http.StatusNotModified was returned.
56734func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56735	gensupport.SetOptions(c.urlParams_, opts...)
56736	res, err := c.doRequest("json")
56737	if res != nil && res.StatusCode == http.StatusNotModified {
56738		if res.Body != nil {
56739			res.Body.Close()
56740		}
56741		return nil, &googleapi.Error{
56742			Code:   res.StatusCode,
56743			Header: res.Header,
56744		}
56745	}
56746	if err != nil {
56747		return nil, err
56748	}
56749	defer googleapi.CloseBody(res)
56750	if err := googleapi.CheckResponse(res); err != nil {
56751		return nil, err
56752	}
56753	ret := &Operation{
56754		ServerResponse: googleapi.ServerResponse{
56755			Header:         res.Header,
56756			HTTPStatusCode: res.StatusCode,
56757		},
56758	}
56759	target := &ret
56760	if err := gensupport.DecodeResponse(target, res); err != nil {
56761		return nil, err
56762	}
56763	return ret, nil
56764	// {
56765	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a backend service. Read  Understanding backend services for more information.",
56766	//   "httpMethod": "POST",
56767	//   "id": "compute.backendServices.insert",
56768	//   "parameterOrder": [
56769	//     "project"
56770	//   ],
56771	//   "parameters": {
56772	//     "project": {
56773	//       "description": "Project ID for this request.",
56774	//       "location": "path",
56775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56776	//       "required": true,
56777	//       "type": "string"
56778	//     },
56779	//     "requestId": {
56780	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56781	//       "location": "query",
56782	//       "type": "string"
56783	//     }
56784	//   },
56785	//   "path": "{project}/global/backendServices",
56786	//   "request": {
56787	//     "$ref": "BackendService"
56788	//   },
56789	//   "response": {
56790	//     "$ref": "Operation"
56791	//   },
56792	//   "scopes": [
56793	//     "https://www.googleapis.com/auth/cloud-platform",
56794	//     "https://www.googleapis.com/auth/compute"
56795	//   ]
56796	// }
56797
56798}
56799
56800// method id "compute.backendServices.list":
56801
56802type BackendServicesListCall struct {
56803	s            *Service
56804	project      string
56805	urlParams_   gensupport.URLParams
56806	ifNoneMatch_ string
56807	ctx_         context.Context
56808	header_      http.Header
56809}
56810
56811// List: Retrieves the list of BackendService resources available to the
56812// specified project.
56813// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
56814func (r *BackendServicesService) List(project string) *BackendServicesListCall {
56815	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56816	c.project = project
56817	return c
56818}
56819
56820// Filter sets the optional parameter "filter": A filter expression that
56821// filters resources listed in the response. The expression must specify
56822// the field name, a comparison operator, and the value that you want to
56823// use for filtering. The value must be a string, a number, or a
56824// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56825// `<`.
56826//
56827// For example, if you are filtering Compute Engine instances, you can
56828// exclude instances named `example-instance` by specifying `name !=
56829// example-instance`.
56830//
56831// You can also filter nested fields. For example, you could specify
56832// `scheduling.automaticRestart = false` to include instances only if
56833// they are not scheduled for automatic restarts. You can use filtering
56834// on nested fields to filter based on resource labels.
56835//
56836// To filter on multiple expressions, provide each separate expression
56837// within parentheses. For example: ``` (scheduling.automaticRestart =
56838// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
56839// is an `AND` expression. However, you can include `AND` and `OR`
56840// expressions explicitly. For example: ``` (cpuPlatform = "Intel
56841// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
56842// (scheduling.automaticRestart = true) ```
56843func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
56844	c.urlParams_.Set("filter", filter)
56845	return c
56846}
56847
56848// MaxResults sets the optional parameter "maxResults": The maximum
56849// number of results per page that should be returned. If the number of
56850// available results is larger than `maxResults`, Compute Engine returns
56851// a `nextPageToken` that can be used to get the next page of results in
56852// subsequent list requests. Acceptable values are `0` to `500`,
56853// inclusive. (Default: `500`)
56854func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
56855	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56856	return c
56857}
56858
56859// OrderBy sets the optional parameter "orderBy": Sorts list results by
56860// a certain order. By default, results are returned in alphanumerical
56861// order based on the resource name.
56862//
56863// You can also sort results in descending order based on the creation
56864// timestamp using `orderBy="creationTimestamp desc". This sorts
56865// results based on the `creationTimestamp` field in reverse
56866// chronological order (newest result first). Use this to sort resources
56867// like operations so that the newest operation is returned
56868// first.
56869//
56870// Currently, only sorting by `name` or `creationTimestamp desc` is
56871// supported.
56872func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
56873	c.urlParams_.Set("orderBy", orderBy)
56874	return c
56875}
56876
56877// PageToken sets the optional parameter "pageToken": Specifies a page
56878// token to use. Set `pageToken` to the `nextPageToken` returned by a
56879// previous list request to get the next page of results.
56880func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
56881	c.urlParams_.Set("pageToken", pageToken)
56882	return c
56883}
56884
56885// ReturnPartialSuccess sets the optional parameter
56886// "returnPartialSuccess": Opt-in for partial success behavior which
56887// provides partial results in case of failure. The default value is
56888// false and the logic is the same as today.
56889func (c *BackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListCall {
56890	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
56891	return c
56892}
56893
56894// Fields allows partial responses to be retrieved. See
56895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56896// for more information.
56897func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
56898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56899	return c
56900}
56901
56902// IfNoneMatch sets the optional parameter which makes the operation
56903// fail if the object's ETag matches the given value. This is useful for
56904// getting updates only after the object has changed since the last
56905// request. Use googleapi.IsNotModified to check whether the response
56906// error from Do is the result of In-None-Match.
56907func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
56908	c.ifNoneMatch_ = entityTag
56909	return c
56910}
56911
56912// Context sets the context to be used in this call's Do method. Any
56913// pending HTTP request will be aborted if the provided context is
56914// canceled.
56915func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
56916	c.ctx_ = ctx
56917	return c
56918}
56919
56920// Header returns an http.Header that can be modified by the caller to
56921// add HTTP headers to the request.
56922func (c *BackendServicesListCall) Header() http.Header {
56923	if c.header_ == nil {
56924		c.header_ = make(http.Header)
56925	}
56926	return c.header_
56927}
56928
56929func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
56930	reqHeaders := make(http.Header)
56931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
56932	for k, v := range c.header_ {
56933		reqHeaders[k] = v
56934	}
56935	reqHeaders.Set("User-Agent", c.s.userAgent())
56936	if c.ifNoneMatch_ != "" {
56937		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56938	}
56939	var body io.Reader = nil
56940	c.urlParams_.Set("alt", alt)
56941	c.urlParams_.Set("prettyPrint", "false")
56942	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
56943	urls += "?" + c.urlParams_.Encode()
56944	req, err := http.NewRequest("GET", urls, body)
56945	if err != nil {
56946		return nil, err
56947	}
56948	req.Header = reqHeaders
56949	googleapi.Expand(req.URL, map[string]string{
56950		"project": c.project,
56951	})
56952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56953}
56954
56955// Do executes the "compute.backendServices.list" call.
56956// Exactly one of *BackendServiceList or error will be non-nil. Any
56957// non-2xx status code is an error. Response headers are in either
56958// *BackendServiceList.ServerResponse.Header or (if a response was
56959// returned at all) in error.(*googleapi.Error).Header. Use
56960// googleapi.IsNotModified to check whether the returned error was
56961// because http.StatusNotModified was returned.
56962func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
56963	gensupport.SetOptions(c.urlParams_, opts...)
56964	res, err := c.doRequest("json")
56965	if res != nil && res.StatusCode == http.StatusNotModified {
56966		if res.Body != nil {
56967			res.Body.Close()
56968		}
56969		return nil, &googleapi.Error{
56970			Code:   res.StatusCode,
56971			Header: res.Header,
56972		}
56973	}
56974	if err != nil {
56975		return nil, err
56976	}
56977	defer googleapi.CloseBody(res)
56978	if err := googleapi.CheckResponse(res); err != nil {
56979		return nil, err
56980	}
56981	ret := &BackendServiceList{
56982		ServerResponse: googleapi.ServerResponse{
56983			Header:         res.Header,
56984			HTTPStatusCode: res.StatusCode,
56985		},
56986	}
56987	target := &ret
56988	if err := gensupport.DecodeResponse(target, res); err != nil {
56989		return nil, err
56990	}
56991	return ret, nil
56992	// {
56993	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
56994	//   "httpMethod": "GET",
56995	//   "id": "compute.backendServices.list",
56996	//   "parameterOrder": [
56997	//     "project"
56998	//   ],
56999	//   "parameters": {
57000	//     "filter": {
57001	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
57002	//       "location": "query",
57003	//       "type": "string"
57004	//     },
57005	//     "maxResults": {
57006	//       "default": "500",
57007	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
57008	//       "format": "uint32",
57009	//       "location": "query",
57010	//       "minimum": "0",
57011	//       "type": "integer"
57012	//     },
57013	//     "orderBy": {
57014	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
57015	//       "location": "query",
57016	//       "type": "string"
57017	//     },
57018	//     "pageToken": {
57019	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
57020	//       "location": "query",
57021	//       "type": "string"
57022	//     },
57023	//     "project": {
57024	//       "description": "Project ID for this request.",
57025	//       "location": "path",
57026	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57027	//       "required": true,
57028	//       "type": "string"
57029	//     },
57030	//     "returnPartialSuccess": {
57031	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
57032	//       "location": "query",
57033	//       "type": "boolean"
57034	//     }
57035	//   },
57036	//   "path": "{project}/global/backendServices",
57037	//   "response": {
57038	//     "$ref": "BackendServiceList"
57039	//   },
57040	//   "scopes": [
57041	//     "https://www.googleapis.com/auth/cloud-platform",
57042	//     "https://www.googleapis.com/auth/compute",
57043	//     "https://www.googleapis.com/auth/compute.readonly"
57044	//   ]
57045	// }
57046
57047}
57048
57049// Pages invokes f for each page of results.
57050// A non-nil error returned from f will halt the iteration.
57051// The provided context supersedes any context provided to the Context method.
57052func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
57053	c.ctx_ = ctx
57054	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57055	for {
57056		x, err := c.Do()
57057		if err != nil {
57058			return err
57059		}
57060		if err := f(x); err != nil {
57061			return err
57062		}
57063		if x.NextPageToken == "" {
57064			return nil
57065		}
57066		c.PageToken(x.NextPageToken)
57067	}
57068}
57069
57070// method id "compute.backendServices.patch":
57071
57072type BackendServicesPatchCall struct {
57073	s              *Service
57074	project        string
57075	backendService string
57076	backendservice *BackendService
57077	urlParams_     gensupport.URLParams
57078	ctx_           context.Context
57079	header_        http.Header
57080}
57081
57082// Patch: Patches the specified BackendService resource with the data
57083// included in the request. There are several Understanding backend
57084// services to keep in mind when updating a backend service. Read
57085// Understanding backend services for more information. This method
57086// supports PATCH semantics and uses the JSON merge patch format and
57087// processing rules.
57088// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
57089func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
57090	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57091	c.project = project
57092	c.backendService = backendService
57093	c.backendservice = backendservice
57094	return c
57095}
57096
57097// RequestId sets the optional parameter "requestId": An optional
57098// request ID to identify requests. Specify a unique request ID so that
57099// if you must retry your request, the server will know to ignore the
57100// request if it has already been completed.
57101//
57102// For example, consider a situation where you make an initial request
57103// and the request times out. If you make the request again with the
57104// same request ID, the server can check if original operation with the
57105// same request ID was received, and if so, will ignore the second
57106// request. This prevents clients from accidentally creating duplicate
57107// commitments.
57108//
57109// The request ID must be a valid UUID with the exception that zero UUID
57110// is not supported (00000000-0000-0000-0000-000000000000).
57111func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
57112	c.urlParams_.Set("requestId", requestId)
57113	return c
57114}
57115
57116// Fields allows partial responses to be retrieved. See
57117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57118// for more information.
57119func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
57120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57121	return c
57122}
57123
57124// Context sets the context to be used in this call's Do method. Any
57125// pending HTTP request will be aborted if the provided context is
57126// canceled.
57127func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
57128	c.ctx_ = ctx
57129	return c
57130}
57131
57132// Header returns an http.Header that can be modified by the caller to
57133// add HTTP headers to the request.
57134func (c *BackendServicesPatchCall) Header() http.Header {
57135	if c.header_ == nil {
57136		c.header_ = make(http.Header)
57137	}
57138	return c.header_
57139}
57140
57141func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
57142	reqHeaders := make(http.Header)
57143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
57144	for k, v := range c.header_ {
57145		reqHeaders[k] = v
57146	}
57147	reqHeaders.Set("User-Agent", c.s.userAgent())
57148	var body io.Reader = nil
57149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57150	if err != nil {
57151		return nil, err
57152	}
57153	reqHeaders.Set("Content-Type", "application/json")
57154	c.urlParams_.Set("alt", alt)
57155	c.urlParams_.Set("prettyPrint", "false")
57156	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
57157	urls += "?" + c.urlParams_.Encode()
57158	req, err := http.NewRequest("PATCH", urls, body)
57159	if err != nil {
57160		return nil, err
57161	}
57162	req.Header = reqHeaders
57163	googleapi.Expand(req.URL, map[string]string{
57164		"project":        c.project,
57165		"backendService": c.backendService,
57166	})
57167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57168}
57169
57170// Do executes the "compute.backendServices.patch" call.
57171// Exactly one of *Operation or error will be non-nil. Any non-2xx
57172// status code is an error. Response headers are in either
57173// *Operation.ServerResponse.Header or (if a response was returned at
57174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57175// to check whether the returned error was because
57176// http.StatusNotModified was returned.
57177func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57178	gensupport.SetOptions(c.urlParams_, opts...)
57179	res, err := c.doRequest("json")
57180	if res != nil && res.StatusCode == http.StatusNotModified {
57181		if res.Body != nil {
57182			res.Body.Close()
57183		}
57184		return nil, &googleapi.Error{
57185			Code:   res.StatusCode,
57186			Header: res.Header,
57187		}
57188	}
57189	if err != nil {
57190		return nil, err
57191	}
57192	defer googleapi.CloseBody(res)
57193	if err := googleapi.CheckResponse(res); err != nil {
57194		return nil, err
57195	}
57196	ret := &Operation{
57197		ServerResponse: googleapi.ServerResponse{
57198			Header:         res.Header,
57199			HTTPStatusCode: res.StatusCode,
57200		},
57201	}
57202	target := &ret
57203	if err := gensupport.DecodeResponse(target, res); err != nil {
57204		return nil, err
57205	}
57206	return ret, nil
57207	// {
57208	//   "description": "Patches the specified BackendService resource with the data included in the request. There are several Understanding backend services to keep in mind when updating a backend service. Read  Understanding backend services for more information. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
57209	//   "httpMethod": "PATCH",
57210	//   "id": "compute.backendServices.patch",
57211	//   "parameterOrder": [
57212	//     "project",
57213	//     "backendService"
57214	//   ],
57215	//   "parameters": {
57216	//     "backendService": {
57217	//       "description": "Name of the BackendService resource to patch.",
57218	//       "location": "path",
57219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57220	//       "required": true,
57221	//       "type": "string"
57222	//     },
57223	//     "project": {
57224	//       "description": "Project ID for this request.",
57225	//       "location": "path",
57226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57227	//       "required": true,
57228	//       "type": "string"
57229	//     },
57230	//     "requestId": {
57231	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57232	//       "location": "query",
57233	//       "type": "string"
57234	//     }
57235	//   },
57236	//   "path": "{project}/global/backendServices/{backendService}",
57237	//   "request": {
57238	//     "$ref": "BackendService"
57239	//   },
57240	//   "response": {
57241	//     "$ref": "Operation"
57242	//   },
57243	//   "scopes": [
57244	//     "https://www.googleapis.com/auth/cloud-platform",
57245	//     "https://www.googleapis.com/auth/compute"
57246	//   ]
57247	// }
57248
57249}
57250
57251// method id "compute.backendServices.setSecurityPolicy":
57252
57253type BackendServicesSetSecurityPolicyCall struct {
57254	s                       *Service
57255	project                 string
57256	backendService          string
57257	securitypolicyreference *SecurityPolicyReference
57258	urlParams_              gensupport.URLParams
57259	ctx_                    context.Context
57260	header_                 http.Header
57261}
57262
57263// SetSecurityPolicy: Sets the security policy for the specified backend
57264// service.
57265func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
57266	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57267	c.project = project
57268	c.backendService = backendService
57269	c.securitypolicyreference = securitypolicyreference
57270	return c
57271}
57272
57273// RequestId sets the optional parameter "requestId": An optional
57274// request ID to identify requests. Specify a unique request ID so that
57275// if you must retry your request, the server will know to ignore the
57276// request if it has already been completed.
57277//
57278// For example, consider a situation where you make an initial request
57279// and the request times out. If you make the request again with the
57280// same request ID, the server can check if original operation with the
57281// same request ID was received, and if so, will ignore the second
57282// request. This prevents clients from accidentally creating duplicate
57283// commitments.
57284//
57285// The request ID must be a valid UUID with the exception that zero UUID
57286// is not supported (00000000-0000-0000-0000-000000000000).
57287func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
57288	c.urlParams_.Set("requestId", requestId)
57289	return c
57290}
57291
57292// Fields allows partial responses to be retrieved. See
57293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57294// for more information.
57295func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
57296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57297	return c
57298}
57299
57300// Context sets the context to be used in this call's Do method. Any
57301// pending HTTP request will be aborted if the provided context is
57302// canceled.
57303func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
57304	c.ctx_ = ctx
57305	return c
57306}
57307
57308// Header returns an http.Header that can be modified by the caller to
57309// add HTTP headers to the request.
57310func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
57311	if c.header_ == nil {
57312		c.header_ = make(http.Header)
57313	}
57314	return c.header_
57315}
57316
57317func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
57318	reqHeaders := make(http.Header)
57319	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
57320	for k, v := range c.header_ {
57321		reqHeaders[k] = v
57322	}
57323	reqHeaders.Set("User-Agent", c.s.userAgent())
57324	var body io.Reader = nil
57325	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
57326	if err != nil {
57327		return nil, err
57328	}
57329	reqHeaders.Set("Content-Type", "application/json")
57330	c.urlParams_.Set("alt", alt)
57331	c.urlParams_.Set("prettyPrint", "false")
57332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/setSecurityPolicy")
57333	urls += "?" + c.urlParams_.Encode()
57334	req, err := http.NewRequest("POST", urls, body)
57335	if err != nil {
57336		return nil, err
57337	}
57338	req.Header = reqHeaders
57339	googleapi.Expand(req.URL, map[string]string{
57340		"project":        c.project,
57341		"backendService": c.backendService,
57342	})
57343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57344}
57345
57346// Do executes the "compute.backendServices.setSecurityPolicy" call.
57347// Exactly one of *Operation or error will be non-nil. Any non-2xx
57348// status code is an error. Response headers are in either
57349// *Operation.ServerResponse.Header or (if a response was returned at
57350// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57351// to check whether the returned error was because
57352// http.StatusNotModified was returned.
57353func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57354	gensupport.SetOptions(c.urlParams_, opts...)
57355	res, err := c.doRequest("json")
57356	if res != nil && res.StatusCode == http.StatusNotModified {
57357		if res.Body != nil {
57358			res.Body.Close()
57359		}
57360		return nil, &googleapi.Error{
57361			Code:   res.StatusCode,
57362			Header: res.Header,
57363		}
57364	}
57365	if err != nil {
57366		return nil, err
57367	}
57368	defer googleapi.CloseBody(res)
57369	if err := googleapi.CheckResponse(res); err != nil {
57370		return nil, err
57371	}
57372	ret := &Operation{
57373		ServerResponse: googleapi.ServerResponse{
57374			Header:         res.Header,
57375			HTTPStatusCode: res.StatusCode,
57376		},
57377	}
57378	target := &ret
57379	if err := gensupport.DecodeResponse(target, res); err != nil {
57380		return nil, err
57381	}
57382	return ret, nil
57383	// {
57384	//   "description": "Sets the security policy for the specified backend service.",
57385	//   "httpMethod": "POST",
57386	//   "id": "compute.backendServices.setSecurityPolicy",
57387	//   "parameterOrder": [
57388	//     "project",
57389	//     "backendService"
57390	//   ],
57391	//   "parameters": {
57392	//     "backendService": {
57393	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
57394	//       "location": "path",
57395	//       "required": true,
57396	//       "type": "string"
57397	//     },
57398	//     "project": {
57399	//       "description": "Project ID for this request.",
57400	//       "location": "path",
57401	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57402	//       "required": true,
57403	//       "type": "string"
57404	//     },
57405	//     "requestId": {
57406	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57407	//       "location": "query",
57408	//       "type": "string"
57409	//     }
57410	//   },
57411	//   "path": "{project}/global/backendServices/{backendService}/setSecurityPolicy",
57412	//   "request": {
57413	//     "$ref": "SecurityPolicyReference"
57414	//   },
57415	//   "response": {
57416	//     "$ref": "Operation"
57417	//   },
57418	//   "scopes": [
57419	//     "https://www.googleapis.com/auth/cloud-platform",
57420	//     "https://www.googleapis.com/auth/compute"
57421	//   ]
57422	// }
57423
57424}
57425
57426// method id "compute.backendServices.testIamPermissions":
57427
57428type BackendServicesTestIamPermissionsCall struct {
57429	s                      *Service
57430	project                string
57431	resource               string
57432	testpermissionsrequest *TestPermissionsRequest
57433	urlParams_             gensupport.URLParams
57434	ctx_                   context.Context
57435	header_                http.Header
57436}
57437
57438// TestIamPermissions: Returns permissions that a caller has on the
57439// specified resource.
57440func (r *BackendServicesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendServicesTestIamPermissionsCall {
57441	c := &BackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57442	c.project = project
57443	c.resource = resource
57444	c.testpermissionsrequest = testpermissionsrequest
57445	return c
57446}
57447
57448// Fields allows partial responses to be retrieved. See
57449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57450// for more information.
57451func (c *BackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendServicesTestIamPermissionsCall {
57452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57453	return c
57454}
57455
57456// Context sets the context to be used in this call's Do method. Any
57457// pending HTTP request will be aborted if the provided context is
57458// canceled.
57459func (c *BackendServicesTestIamPermissionsCall) Context(ctx context.Context) *BackendServicesTestIamPermissionsCall {
57460	c.ctx_ = ctx
57461	return c
57462}
57463
57464// Header returns an http.Header that can be modified by the caller to
57465// add HTTP headers to the request.
57466func (c *BackendServicesTestIamPermissionsCall) Header() http.Header {
57467	if c.header_ == nil {
57468		c.header_ = make(http.Header)
57469	}
57470	return c.header_
57471}
57472
57473func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
57474	reqHeaders := make(http.Header)
57475	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
57476	for k, v := range c.header_ {
57477		reqHeaders[k] = v
57478	}
57479	reqHeaders.Set("User-Agent", c.s.userAgent())
57480	var body io.Reader = nil
57481	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
57482	if err != nil {
57483		return nil, err
57484	}
57485	reqHeaders.Set("Content-Type", "application/json")
57486	c.urlParams_.Set("alt", alt)
57487	c.urlParams_.Set("prettyPrint", "false")
57488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{resource}/testIamPermissions")
57489	urls += "?" + c.urlParams_.Encode()
57490	req, err := http.NewRequest("POST", urls, body)
57491	if err != nil {
57492		return nil, err
57493	}
57494	req.Header = reqHeaders
57495	googleapi.Expand(req.URL, map[string]string{
57496		"project":  c.project,
57497		"resource": c.resource,
57498	})
57499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57500}
57501
57502// Do executes the "compute.backendServices.testIamPermissions" call.
57503// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
57504// non-2xx status code is an error. Response headers are in either
57505// *TestPermissionsResponse.ServerResponse.Header or (if a response was
57506// returned at all) in error.(*googleapi.Error).Header. Use
57507// googleapi.IsNotModified to check whether the returned error was
57508// because http.StatusNotModified was returned.
57509func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
57510	gensupport.SetOptions(c.urlParams_, opts...)
57511	res, err := c.doRequest("json")
57512	if res != nil && res.StatusCode == http.StatusNotModified {
57513		if res.Body != nil {
57514			res.Body.Close()
57515		}
57516		return nil, &googleapi.Error{
57517			Code:   res.StatusCode,
57518			Header: res.Header,
57519		}
57520	}
57521	if err != nil {
57522		return nil, err
57523	}
57524	defer googleapi.CloseBody(res)
57525	if err := googleapi.CheckResponse(res); err != nil {
57526		return nil, err
57527	}
57528	ret := &TestPermissionsResponse{
57529		ServerResponse: googleapi.ServerResponse{
57530			Header:         res.Header,
57531			HTTPStatusCode: res.StatusCode,
57532		},
57533	}
57534	target := &ret
57535	if err := gensupport.DecodeResponse(target, res); err != nil {
57536		return nil, err
57537	}
57538	return ret, nil
57539	// {
57540	//   "description": "Returns permissions that a caller has on the specified resource.",
57541	//   "httpMethod": "POST",
57542	//   "id": "compute.backendServices.testIamPermissions",
57543	//   "parameterOrder": [
57544	//     "project",
57545	//     "resource"
57546	//   ],
57547	//   "parameters": {
57548	//     "project": {
57549	//       "description": "Project ID for this request.",
57550	//       "location": "path",
57551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57552	//       "required": true,
57553	//       "type": "string"
57554	//     },
57555	//     "resource": {
57556	//       "description": "Name or id of the resource for this request.",
57557	//       "location": "path",
57558	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57559	//       "required": true,
57560	//       "type": "string"
57561	//     }
57562	//   },
57563	//   "path": "{project}/global/backendServices/{resource}/testIamPermissions",
57564	//   "request": {
57565	//     "$ref": "TestPermissionsRequest"
57566	//   },
57567	//   "response": {
57568	//     "$ref": "TestPermissionsResponse"
57569	//   },
57570	//   "scopes": [
57571	//     "https://www.googleapis.com/auth/cloud-platform",
57572	//     "https://www.googleapis.com/auth/compute",
57573	//     "https://www.googleapis.com/auth/compute.readonly"
57574	//   ]
57575	// }
57576
57577}
57578
57579// method id "compute.backendServices.update":
57580
57581type BackendServicesUpdateCall struct {
57582	s              *Service
57583	project        string
57584	backendService string
57585	backendservice *BackendService
57586	urlParams_     gensupport.URLParams
57587	ctx_           context.Context
57588	header_        http.Header
57589}
57590
57591// Update: Updates the specified BackendService resource with the data
57592// included in the request. There are several Understanding backend
57593// services to keep in mind when updating a backend service. Read
57594// Understanding backend services for more information.
57595// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
57596func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
57597	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57598	c.project = project
57599	c.backendService = backendService
57600	c.backendservice = backendservice
57601	return c
57602}
57603
57604// RequestId sets the optional parameter "requestId": An optional
57605// request ID to identify requests. Specify a unique request ID so that
57606// if you must retry your request, the server will know to ignore the
57607// request if it has already been completed.
57608//
57609// For example, consider a situation where you make an initial request
57610// and the request times out. If you make the request again with the
57611// same request ID, the server can check if original operation with the
57612// same request ID was received, and if so, will ignore the second
57613// request. This prevents clients from accidentally creating duplicate
57614// commitments.
57615//
57616// The request ID must be a valid UUID with the exception that zero UUID
57617// is not supported (00000000-0000-0000-0000-000000000000).
57618func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
57619	c.urlParams_.Set("requestId", requestId)
57620	return c
57621}
57622
57623// Fields allows partial responses to be retrieved. See
57624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57625// for more information.
57626func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
57627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57628	return c
57629}
57630
57631// Context sets the context to be used in this call's Do method. Any
57632// pending HTTP request will be aborted if the provided context is
57633// canceled.
57634func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
57635	c.ctx_ = ctx
57636	return c
57637}
57638
57639// Header returns an http.Header that can be modified by the caller to
57640// add HTTP headers to the request.
57641func (c *BackendServicesUpdateCall) Header() http.Header {
57642	if c.header_ == nil {
57643		c.header_ = make(http.Header)
57644	}
57645	return c.header_
57646}
57647
57648func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
57649	reqHeaders := make(http.Header)
57650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
57651	for k, v := range c.header_ {
57652		reqHeaders[k] = v
57653	}
57654	reqHeaders.Set("User-Agent", c.s.userAgent())
57655	var body io.Reader = nil
57656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57657	if err != nil {
57658		return nil, err
57659	}
57660	reqHeaders.Set("Content-Type", "application/json")
57661	c.urlParams_.Set("alt", alt)
57662	c.urlParams_.Set("prettyPrint", "false")
57663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
57664	urls += "?" + c.urlParams_.Encode()
57665	req, err := http.NewRequest("PUT", urls, body)
57666	if err != nil {
57667		return nil, err
57668	}
57669	req.Header = reqHeaders
57670	googleapi.Expand(req.URL, map[string]string{
57671		"project":        c.project,
57672		"backendService": c.backendService,
57673	})
57674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57675}
57676
57677// Do executes the "compute.backendServices.update" call.
57678// Exactly one of *Operation or error will be non-nil. Any non-2xx
57679// status code is an error. Response headers are in either
57680// *Operation.ServerResponse.Header or (if a response was returned at
57681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57682// to check whether the returned error was because
57683// http.StatusNotModified was returned.
57684func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57685	gensupport.SetOptions(c.urlParams_, opts...)
57686	res, err := c.doRequest("json")
57687	if res != nil && res.StatusCode == http.StatusNotModified {
57688		if res.Body != nil {
57689			res.Body.Close()
57690		}
57691		return nil, &googleapi.Error{
57692			Code:   res.StatusCode,
57693			Header: res.Header,
57694		}
57695	}
57696	if err != nil {
57697		return nil, err
57698	}
57699	defer googleapi.CloseBody(res)
57700	if err := googleapi.CheckResponse(res); err != nil {
57701		return nil, err
57702	}
57703	ret := &Operation{
57704		ServerResponse: googleapi.ServerResponse{
57705			Header:         res.Header,
57706			HTTPStatusCode: res.StatusCode,
57707		},
57708	}
57709	target := &ret
57710	if err := gensupport.DecodeResponse(target, res); err != nil {
57711		return nil, err
57712	}
57713	return ret, nil
57714	// {
57715	//   "description": "Updates the specified BackendService resource with the data included in the request. There are several Understanding backend services to keep in mind when updating a backend service. Read  Understanding backend services for more information.",
57716	//   "httpMethod": "PUT",
57717	//   "id": "compute.backendServices.update",
57718	//   "parameterOrder": [
57719	//     "project",
57720	//     "backendService"
57721	//   ],
57722	//   "parameters": {
57723	//     "backendService": {
57724	//       "description": "Name of the BackendService resource to update.",
57725	//       "location": "path",
57726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57727	//       "required": true,
57728	//       "type": "string"
57729	//     },
57730	//     "project": {
57731	//       "description": "Project ID for this request.",
57732	//       "location": "path",
57733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57734	//       "required": true,
57735	//       "type": "string"
57736	//     },
57737	//     "requestId": {
57738	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57739	//       "location": "query",
57740	//       "type": "string"
57741	//     }
57742	//   },
57743	//   "path": "{project}/global/backendServices/{backendService}",
57744	//   "request": {
57745	//     "$ref": "BackendService"
57746	//   },
57747	//   "response": {
57748	//     "$ref": "Operation"
57749	//   },
57750	//   "scopes": [
57751	//     "https://www.googleapis.com/auth/cloud-platform",
57752	//     "https://www.googleapis.com/auth/compute"
57753	//   ]
57754	// }
57755
57756}
57757
57758// method id "compute.diskTypes.aggregatedList":
57759
57760type DiskTypesAggregatedListCall struct {
57761	s            *Service
57762	project      string
57763	urlParams_   gensupport.URLParams
57764	ifNoneMatch_ string
57765	ctx_         context.Context
57766	header_      http.Header
57767}
57768
57769// AggregatedList: Retrieves an aggregated list of disk types.
57770// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
57771func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
57772	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57773	c.project = project
57774	return c
57775}
57776
57777// Filter sets the optional parameter "filter": A filter expression that
57778// filters resources listed in the response. The expression must specify
57779// the field name, a comparison operator, and the value that you want to
57780// use for filtering. The value must be a string, a number, or a
57781// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57782// `<`.
57783//
57784// For example, if you are filtering Compute Engine instances, you can
57785// exclude instances named `example-instance` by specifying `name !=
57786// example-instance`.
57787//
57788// You can also filter nested fields. For example, you could specify
57789// `scheduling.automaticRestart = false` to include instances only if
57790// they are not scheduled for automatic restarts. You can use filtering
57791// on nested fields to filter based on resource labels.
57792//
57793// To filter on multiple expressions, provide each separate expression
57794// within parentheses. For example: ``` (scheduling.automaticRestart =
57795// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
57796// is an `AND` expression. However, you can include `AND` and `OR`
57797// expressions explicitly. For example: ``` (cpuPlatform = "Intel
57798// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
57799// (scheduling.automaticRestart = true) ```
57800func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
57801	c.urlParams_.Set("filter", filter)
57802	return c
57803}
57804
57805// IncludeAllScopes sets the optional parameter "includeAllScopes":
57806// Indicates whether every visible scope for each scope type (zone,
57807// region, global) should be included in the response. For new resource
57808// types added after this field, the flag has no effect as new resource
57809// types will always include every visible scope for each scope type in
57810// response. For resource types which predate this field, if this flag
57811// is omitted or false, only scopes of the scope types where the
57812// resource type is expected to be found will be included.
57813func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
57814	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
57815	return c
57816}
57817
57818// MaxResults sets the optional parameter "maxResults": The maximum
57819// number of results per page that should be returned. If the number of
57820// available results is larger than `maxResults`, Compute Engine returns
57821// a `nextPageToken` that can be used to get the next page of results in
57822// subsequent list requests. Acceptable values are `0` to `500`,
57823// inclusive. (Default: `500`)
57824func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
57825	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57826	return c
57827}
57828
57829// OrderBy sets the optional parameter "orderBy": Sorts list results by
57830// a certain order. By default, results are returned in alphanumerical
57831// order based on the resource name.
57832//
57833// You can also sort results in descending order based on the creation
57834// timestamp using `orderBy="creationTimestamp desc". This sorts
57835// results based on the `creationTimestamp` field in reverse
57836// chronological order (newest result first). Use this to sort resources
57837// like operations so that the newest operation is returned
57838// first.
57839//
57840// Currently, only sorting by `name` or `creationTimestamp desc` is
57841// supported.
57842func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
57843	c.urlParams_.Set("orderBy", orderBy)
57844	return c
57845}
57846
57847// PageToken sets the optional parameter "pageToken": Specifies a page
57848// token to use. Set `pageToken` to the `nextPageToken` returned by a
57849// previous list request to get the next page of results.
57850func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
57851	c.urlParams_.Set("pageToken", pageToken)
57852	return c
57853}
57854
57855// ReturnPartialSuccess sets the optional parameter
57856// "returnPartialSuccess": Opt-in for partial success behavior which
57857// provides partial results in case of failure. The default value is
57858// false and the logic is the same as today.
57859func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall {
57860	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
57861	return c
57862}
57863
57864// Fields allows partial responses to be retrieved. See
57865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57866// for more information.
57867func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
57868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57869	return c
57870}
57871
57872// IfNoneMatch sets the optional parameter which makes the operation
57873// fail if the object's ETag matches the given value. This is useful for
57874// getting updates only after the object has changed since the last
57875// request. Use googleapi.IsNotModified to check whether the response
57876// error from Do is the result of In-None-Match.
57877func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
57878	c.ifNoneMatch_ = entityTag
57879	return c
57880}
57881
57882// Context sets the context to be used in this call's Do method. Any
57883// pending HTTP request will be aborted if the provided context is
57884// canceled.
57885func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
57886	c.ctx_ = ctx
57887	return c
57888}
57889
57890// Header returns an http.Header that can be modified by the caller to
57891// add HTTP headers to the request.
57892func (c *DiskTypesAggregatedListCall) Header() http.Header {
57893	if c.header_ == nil {
57894		c.header_ = make(http.Header)
57895	}
57896	return c.header_
57897}
57898
57899func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
57900	reqHeaders := make(http.Header)
57901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
57902	for k, v := range c.header_ {
57903		reqHeaders[k] = v
57904	}
57905	reqHeaders.Set("User-Agent", c.s.userAgent())
57906	if c.ifNoneMatch_ != "" {
57907		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57908	}
57909	var body io.Reader = nil
57910	c.urlParams_.Set("alt", alt)
57911	c.urlParams_.Set("prettyPrint", "false")
57912	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
57913	urls += "?" + c.urlParams_.Encode()
57914	req, err := http.NewRequest("GET", urls, body)
57915	if err != nil {
57916		return nil, err
57917	}
57918	req.Header = reqHeaders
57919	googleapi.Expand(req.URL, map[string]string{
57920		"project": c.project,
57921	})
57922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57923}
57924
57925// Do executes the "compute.diskTypes.aggregatedList" call.
57926// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
57927// non-2xx status code is an error. Response headers are in either
57928// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
57929// returned at all) in error.(*googleapi.Error).Header. Use
57930// googleapi.IsNotModified to check whether the returned error was
57931// because http.StatusNotModified was returned.
57932func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
57933	gensupport.SetOptions(c.urlParams_, opts...)
57934	res, err := c.doRequest("json")
57935	if res != nil && res.StatusCode == http.StatusNotModified {
57936		if res.Body != nil {
57937			res.Body.Close()
57938		}
57939		return nil, &googleapi.Error{
57940			Code:   res.StatusCode,
57941			Header: res.Header,
57942		}
57943	}
57944	if err != nil {
57945		return nil, err
57946	}
57947	defer googleapi.CloseBody(res)
57948	if err := googleapi.CheckResponse(res); err != nil {
57949		return nil, err
57950	}
57951	ret := &DiskTypeAggregatedList{
57952		ServerResponse: googleapi.ServerResponse{
57953			Header:         res.Header,
57954			HTTPStatusCode: res.StatusCode,
57955		},
57956	}
57957	target := &ret
57958	if err := gensupport.DecodeResponse(target, res); err != nil {
57959		return nil, err
57960	}
57961	return ret, nil
57962	// {
57963	//   "description": "Retrieves an aggregated list of disk types.",
57964	//   "httpMethod": "GET",
57965	//   "id": "compute.diskTypes.aggregatedList",
57966	//   "parameterOrder": [
57967	//     "project"
57968	//   ],
57969	//   "parameters": {
57970	//     "filter": {
57971	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
57972	//       "location": "query",
57973	//       "type": "string"
57974	//     },
57975	//     "includeAllScopes": {
57976	//       "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.",
57977	//       "location": "query",
57978	//       "type": "boolean"
57979	//     },
57980	//     "maxResults": {
57981	//       "default": "500",
57982	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
57983	//       "format": "uint32",
57984	//       "location": "query",
57985	//       "minimum": "0",
57986	//       "type": "integer"
57987	//     },
57988	//     "orderBy": {
57989	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
57990	//       "location": "query",
57991	//       "type": "string"
57992	//     },
57993	//     "pageToken": {
57994	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
57995	//       "location": "query",
57996	//       "type": "string"
57997	//     },
57998	//     "project": {
57999	//       "description": "Project ID for this request.",
58000	//       "location": "path",
58001	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58002	//       "required": true,
58003	//       "type": "string"
58004	//     },
58005	//     "returnPartialSuccess": {
58006	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
58007	//       "location": "query",
58008	//       "type": "boolean"
58009	//     }
58010	//   },
58011	//   "path": "{project}/aggregated/diskTypes",
58012	//   "response": {
58013	//     "$ref": "DiskTypeAggregatedList"
58014	//   },
58015	//   "scopes": [
58016	//     "https://www.googleapis.com/auth/cloud-platform",
58017	//     "https://www.googleapis.com/auth/compute",
58018	//     "https://www.googleapis.com/auth/compute.readonly"
58019	//   ]
58020	// }
58021
58022}
58023
58024// Pages invokes f for each page of results.
58025// A non-nil error returned from f will halt the iteration.
58026// The provided context supersedes any context provided to the Context method.
58027func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
58028	c.ctx_ = ctx
58029	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58030	for {
58031		x, err := c.Do()
58032		if err != nil {
58033			return err
58034		}
58035		if err := f(x); err != nil {
58036			return err
58037		}
58038		if x.NextPageToken == "" {
58039			return nil
58040		}
58041		c.PageToken(x.NextPageToken)
58042	}
58043}
58044
58045// method id "compute.diskTypes.get":
58046
58047type DiskTypesGetCall struct {
58048	s            *Service
58049	project      string
58050	zone         string
58051	diskType     string
58052	urlParams_   gensupport.URLParams
58053	ifNoneMatch_ string
58054	ctx_         context.Context
58055	header_      http.Header
58056}
58057
58058// Get: Returns the specified disk type. Gets a list of available disk
58059// types by making a list() request.
58060// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
58061func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
58062	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58063	c.project = project
58064	c.zone = zone
58065	c.diskType = diskType
58066	return c
58067}
58068
58069// Fields allows partial responses to be retrieved. See
58070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58071// for more information.
58072func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
58073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58074	return c
58075}
58076
58077// IfNoneMatch sets the optional parameter which makes the operation
58078// fail if the object's ETag matches the given value. This is useful for
58079// getting updates only after the object has changed since the last
58080// request. Use googleapi.IsNotModified to check whether the response
58081// error from Do is the result of In-None-Match.
58082func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
58083	c.ifNoneMatch_ = entityTag
58084	return c
58085}
58086
58087// Context sets the context to be used in this call's Do method. Any
58088// pending HTTP request will be aborted if the provided context is
58089// canceled.
58090func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
58091	c.ctx_ = ctx
58092	return c
58093}
58094
58095// Header returns an http.Header that can be modified by the caller to
58096// add HTTP headers to the request.
58097func (c *DiskTypesGetCall) Header() http.Header {
58098	if c.header_ == nil {
58099		c.header_ = make(http.Header)
58100	}
58101	return c.header_
58102}
58103
58104func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
58105	reqHeaders := make(http.Header)
58106	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
58107	for k, v := range c.header_ {
58108		reqHeaders[k] = v
58109	}
58110	reqHeaders.Set("User-Agent", c.s.userAgent())
58111	if c.ifNoneMatch_ != "" {
58112		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58113	}
58114	var body io.Reader = nil
58115	c.urlParams_.Set("alt", alt)
58116	c.urlParams_.Set("prettyPrint", "false")
58117	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
58118	urls += "?" + c.urlParams_.Encode()
58119	req, err := http.NewRequest("GET", urls, body)
58120	if err != nil {
58121		return nil, err
58122	}
58123	req.Header = reqHeaders
58124	googleapi.Expand(req.URL, map[string]string{
58125		"project":  c.project,
58126		"zone":     c.zone,
58127		"diskType": c.diskType,
58128	})
58129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58130}
58131
58132// Do executes the "compute.diskTypes.get" call.
58133// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
58134// code is an error. Response headers are in either
58135// *DiskType.ServerResponse.Header or (if a response was returned at
58136// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58137// to check whether the returned error was because
58138// http.StatusNotModified was returned.
58139func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
58140	gensupport.SetOptions(c.urlParams_, opts...)
58141	res, err := c.doRequest("json")
58142	if res != nil && res.StatusCode == http.StatusNotModified {
58143		if res.Body != nil {
58144			res.Body.Close()
58145		}
58146		return nil, &googleapi.Error{
58147			Code:   res.StatusCode,
58148			Header: res.Header,
58149		}
58150	}
58151	if err != nil {
58152		return nil, err
58153	}
58154	defer googleapi.CloseBody(res)
58155	if err := googleapi.CheckResponse(res); err != nil {
58156		return nil, err
58157	}
58158	ret := &DiskType{
58159		ServerResponse: googleapi.ServerResponse{
58160			Header:         res.Header,
58161			HTTPStatusCode: res.StatusCode,
58162		},
58163	}
58164	target := &ret
58165	if err := gensupport.DecodeResponse(target, res); err != nil {
58166		return nil, err
58167	}
58168	return ret, nil
58169	// {
58170	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
58171	//   "httpMethod": "GET",
58172	//   "id": "compute.diskTypes.get",
58173	//   "parameterOrder": [
58174	//     "project",
58175	//     "zone",
58176	//     "diskType"
58177	//   ],
58178	//   "parameters": {
58179	//     "diskType": {
58180	//       "description": "Name of the disk type to return.",
58181	//       "location": "path",
58182	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58183	//       "required": true,
58184	//       "type": "string"
58185	//     },
58186	//     "project": {
58187	//       "description": "Project ID for this request.",
58188	//       "location": "path",
58189	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58190	//       "required": true,
58191	//       "type": "string"
58192	//     },
58193	//     "zone": {
58194	//       "description": "The name of the zone for this request.",
58195	//       "location": "path",
58196	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58197	//       "required": true,
58198	//       "type": "string"
58199	//     }
58200	//   },
58201	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
58202	//   "response": {
58203	//     "$ref": "DiskType"
58204	//   },
58205	//   "scopes": [
58206	//     "https://www.googleapis.com/auth/cloud-platform",
58207	//     "https://www.googleapis.com/auth/compute",
58208	//     "https://www.googleapis.com/auth/compute.readonly"
58209	//   ]
58210	// }
58211
58212}
58213
58214// method id "compute.diskTypes.list":
58215
58216type DiskTypesListCall struct {
58217	s            *Service
58218	project      string
58219	zone         string
58220	urlParams_   gensupport.URLParams
58221	ifNoneMatch_ string
58222	ctx_         context.Context
58223	header_      http.Header
58224}
58225
58226// List: Retrieves a list of disk types available to the specified
58227// project.
58228// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
58229func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
58230	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58231	c.project = project
58232	c.zone = zone
58233	return c
58234}
58235
58236// Filter sets the optional parameter "filter": A filter expression that
58237// filters resources listed in the response. The expression must specify
58238// the field name, a comparison operator, and the value that you want to
58239// use for filtering. The value must be a string, a number, or a
58240// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58241// `<`.
58242//
58243// For example, if you are filtering Compute Engine instances, you can
58244// exclude instances named `example-instance` by specifying `name !=
58245// example-instance`.
58246//
58247// You can also filter nested fields. For example, you could specify
58248// `scheduling.automaticRestart = false` to include instances only if
58249// they are not scheduled for automatic restarts. You can use filtering
58250// on nested fields to filter based on resource labels.
58251//
58252// To filter on multiple expressions, provide each separate expression
58253// within parentheses. For example: ``` (scheduling.automaticRestart =
58254// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58255// is an `AND` expression. However, you can include `AND` and `OR`
58256// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58257// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58258// (scheduling.automaticRestart = true) ```
58259func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
58260	c.urlParams_.Set("filter", filter)
58261	return c
58262}
58263
58264// MaxResults sets the optional parameter "maxResults": The maximum
58265// number of results per page that should be returned. If the number of
58266// available results is larger than `maxResults`, Compute Engine returns
58267// a `nextPageToken` that can be used to get the next page of results in
58268// subsequent list requests. Acceptable values are `0` to `500`,
58269// inclusive. (Default: `500`)
58270func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
58271	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58272	return c
58273}
58274
58275// OrderBy sets the optional parameter "orderBy": Sorts list results by
58276// a certain order. By default, results are returned in alphanumerical
58277// order based on the resource name.
58278//
58279// You can also sort results in descending order based on the creation
58280// timestamp using `orderBy="creationTimestamp desc". This sorts
58281// results based on the `creationTimestamp` field in reverse
58282// chronological order (newest result first). Use this to sort resources
58283// like operations so that the newest operation is returned
58284// first.
58285//
58286// Currently, only sorting by `name` or `creationTimestamp desc` is
58287// supported.
58288func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
58289	c.urlParams_.Set("orderBy", orderBy)
58290	return c
58291}
58292
58293// PageToken sets the optional parameter "pageToken": Specifies a page
58294// token to use. Set `pageToken` to the `nextPageToken` returned by a
58295// previous list request to get the next page of results.
58296func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
58297	c.urlParams_.Set("pageToken", pageToken)
58298	return c
58299}
58300
58301// ReturnPartialSuccess sets the optional parameter
58302// "returnPartialSuccess": Opt-in for partial success behavior which
58303// provides partial results in case of failure. The default value is
58304// false and the logic is the same as today.
58305func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall {
58306	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
58307	return c
58308}
58309
58310// Fields allows partial responses to be retrieved. See
58311// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58312// for more information.
58313func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
58314	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58315	return c
58316}
58317
58318// IfNoneMatch sets the optional parameter which makes the operation
58319// fail if the object's ETag matches the given value. This is useful for
58320// getting updates only after the object has changed since the last
58321// request. Use googleapi.IsNotModified to check whether the response
58322// error from Do is the result of In-None-Match.
58323func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
58324	c.ifNoneMatch_ = entityTag
58325	return c
58326}
58327
58328// Context sets the context to be used in this call's Do method. Any
58329// pending HTTP request will be aborted if the provided context is
58330// canceled.
58331func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
58332	c.ctx_ = ctx
58333	return c
58334}
58335
58336// Header returns an http.Header that can be modified by the caller to
58337// add HTTP headers to the request.
58338func (c *DiskTypesListCall) Header() http.Header {
58339	if c.header_ == nil {
58340		c.header_ = make(http.Header)
58341	}
58342	return c.header_
58343}
58344
58345func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
58346	reqHeaders := make(http.Header)
58347	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
58348	for k, v := range c.header_ {
58349		reqHeaders[k] = v
58350	}
58351	reqHeaders.Set("User-Agent", c.s.userAgent())
58352	if c.ifNoneMatch_ != "" {
58353		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58354	}
58355	var body io.Reader = nil
58356	c.urlParams_.Set("alt", alt)
58357	c.urlParams_.Set("prettyPrint", "false")
58358	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
58359	urls += "?" + c.urlParams_.Encode()
58360	req, err := http.NewRequest("GET", urls, body)
58361	if err != nil {
58362		return nil, err
58363	}
58364	req.Header = reqHeaders
58365	googleapi.Expand(req.URL, map[string]string{
58366		"project": c.project,
58367		"zone":    c.zone,
58368	})
58369	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58370}
58371
58372// Do executes the "compute.diskTypes.list" call.
58373// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
58374// status code is an error. Response headers are in either
58375// *DiskTypeList.ServerResponse.Header or (if a response was returned at
58376// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58377// to check whether the returned error was because
58378// http.StatusNotModified was returned.
58379func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
58380	gensupport.SetOptions(c.urlParams_, opts...)
58381	res, err := c.doRequest("json")
58382	if res != nil && res.StatusCode == http.StatusNotModified {
58383		if res.Body != nil {
58384			res.Body.Close()
58385		}
58386		return nil, &googleapi.Error{
58387			Code:   res.StatusCode,
58388			Header: res.Header,
58389		}
58390	}
58391	if err != nil {
58392		return nil, err
58393	}
58394	defer googleapi.CloseBody(res)
58395	if err := googleapi.CheckResponse(res); err != nil {
58396		return nil, err
58397	}
58398	ret := &DiskTypeList{
58399		ServerResponse: googleapi.ServerResponse{
58400			Header:         res.Header,
58401			HTTPStatusCode: res.StatusCode,
58402		},
58403	}
58404	target := &ret
58405	if err := gensupport.DecodeResponse(target, res); err != nil {
58406		return nil, err
58407	}
58408	return ret, nil
58409	// {
58410	//   "description": "Retrieves a list of disk types available to the specified project.",
58411	//   "httpMethod": "GET",
58412	//   "id": "compute.diskTypes.list",
58413	//   "parameterOrder": [
58414	//     "project",
58415	//     "zone"
58416	//   ],
58417	//   "parameters": {
58418	//     "filter": {
58419	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58420	//       "location": "query",
58421	//       "type": "string"
58422	//     },
58423	//     "maxResults": {
58424	//       "default": "500",
58425	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58426	//       "format": "uint32",
58427	//       "location": "query",
58428	//       "minimum": "0",
58429	//       "type": "integer"
58430	//     },
58431	//     "orderBy": {
58432	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58433	//       "location": "query",
58434	//       "type": "string"
58435	//     },
58436	//     "pageToken": {
58437	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58438	//       "location": "query",
58439	//       "type": "string"
58440	//     },
58441	//     "project": {
58442	//       "description": "Project ID for this request.",
58443	//       "location": "path",
58444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58445	//       "required": true,
58446	//       "type": "string"
58447	//     },
58448	//     "returnPartialSuccess": {
58449	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
58450	//       "location": "query",
58451	//       "type": "boolean"
58452	//     },
58453	//     "zone": {
58454	//       "description": "The name of the zone for this request.",
58455	//       "location": "path",
58456	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58457	//       "required": true,
58458	//       "type": "string"
58459	//     }
58460	//   },
58461	//   "path": "{project}/zones/{zone}/diskTypes",
58462	//   "response": {
58463	//     "$ref": "DiskTypeList"
58464	//   },
58465	//   "scopes": [
58466	//     "https://www.googleapis.com/auth/cloud-platform",
58467	//     "https://www.googleapis.com/auth/compute",
58468	//     "https://www.googleapis.com/auth/compute.readonly"
58469	//   ]
58470	// }
58471
58472}
58473
58474// Pages invokes f for each page of results.
58475// A non-nil error returned from f will halt the iteration.
58476// The provided context supersedes any context provided to the Context method.
58477func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
58478	c.ctx_ = ctx
58479	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58480	for {
58481		x, err := c.Do()
58482		if err != nil {
58483			return err
58484		}
58485		if err := f(x); err != nil {
58486			return err
58487		}
58488		if x.NextPageToken == "" {
58489			return nil
58490		}
58491		c.PageToken(x.NextPageToken)
58492	}
58493}
58494
58495// method id "compute.disks.addResourcePolicies":
58496
58497type DisksAddResourcePoliciesCall struct {
58498	s                               *Service
58499	project                         string
58500	zone                            string
58501	disk                            string
58502	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
58503	urlParams_                      gensupport.URLParams
58504	ctx_                            context.Context
58505	header_                         http.Header
58506}
58507
58508// AddResourcePolicies: Adds existing resource policies to a disk. You
58509// can only add one policy which will be applied to this disk for
58510// scheduling snapshot creation.
58511func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
58512	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58513	c.project = project
58514	c.zone = zone
58515	c.disk = disk
58516	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
58517	return c
58518}
58519
58520// RequestId sets the optional parameter "requestId": An optional
58521// request ID to identify requests. Specify a unique request ID so that
58522// if you must retry your request, the server will know to ignore the
58523// request if it has already been completed.
58524//
58525// For example, consider a situation where you make an initial request
58526// and the request times out. If you make the request again with the
58527// same request ID, the server can check if original operation with the
58528// same request ID was received, and if so, will ignore the second
58529// request. This prevents clients from accidentally creating duplicate
58530// commitments.
58531//
58532// The request ID must be a valid UUID with the exception that zero UUID
58533// is not supported (00000000-0000-0000-0000-000000000000).
58534func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
58535	c.urlParams_.Set("requestId", requestId)
58536	return c
58537}
58538
58539// Fields allows partial responses to be retrieved. See
58540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58541// for more information.
58542func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
58543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58544	return c
58545}
58546
58547// Context sets the context to be used in this call's Do method. Any
58548// pending HTTP request will be aborted if the provided context is
58549// canceled.
58550func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
58551	c.ctx_ = ctx
58552	return c
58553}
58554
58555// Header returns an http.Header that can be modified by the caller to
58556// add HTTP headers to the request.
58557func (c *DisksAddResourcePoliciesCall) Header() http.Header {
58558	if c.header_ == nil {
58559		c.header_ = make(http.Header)
58560	}
58561	return c.header_
58562}
58563
58564func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
58565	reqHeaders := make(http.Header)
58566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
58567	for k, v := range c.header_ {
58568		reqHeaders[k] = v
58569	}
58570	reqHeaders.Set("User-Agent", c.s.userAgent())
58571	var body io.Reader = nil
58572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
58573	if err != nil {
58574		return nil, err
58575	}
58576	reqHeaders.Set("Content-Type", "application/json")
58577	c.urlParams_.Set("alt", alt)
58578	c.urlParams_.Set("prettyPrint", "false")
58579	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
58580	urls += "?" + c.urlParams_.Encode()
58581	req, err := http.NewRequest("POST", urls, body)
58582	if err != nil {
58583		return nil, err
58584	}
58585	req.Header = reqHeaders
58586	googleapi.Expand(req.URL, map[string]string{
58587		"project": c.project,
58588		"zone":    c.zone,
58589		"disk":    c.disk,
58590	})
58591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58592}
58593
58594// Do executes the "compute.disks.addResourcePolicies" call.
58595// Exactly one of *Operation or error will be non-nil. Any non-2xx
58596// status code is an error. Response headers are in either
58597// *Operation.ServerResponse.Header or (if a response was returned at
58598// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58599// to check whether the returned error was because
58600// http.StatusNotModified was returned.
58601func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58602	gensupport.SetOptions(c.urlParams_, opts...)
58603	res, err := c.doRequest("json")
58604	if res != nil && res.StatusCode == http.StatusNotModified {
58605		if res.Body != nil {
58606			res.Body.Close()
58607		}
58608		return nil, &googleapi.Error{
58609			Code:   res.StatusCode,
58610			Header: res.Header,
58611		}
58612	}
58613	if err != nil {
58614		return nil, err
58615	}
58616	defer googleapi.CloseBody(res)
58617	if err := googleapi.CheckResponse(res); err != nil {
58618		return nil, err
58619	}
58620	ret := &Operation{
58621		ServerResponse: googleapi.ServerResponse{
58622			Header:         res.Header,
58623			HTTPStatusCode: res.StatusCode,
58624		},
58625	}
58626	target := &ret
58627	if err := gensupport.DecodeResponse(target, res); err != nil {
58628		return nil, err
58629	}
58630	return ret, nil
58631	// {
58632	//   "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.",
58633	//   "httpMethod": "POST",
58634	//   "id": "compute.disks.addResourcePolicies",
58635	//   "parameterOrder": [
58636	//     "project",
58637	//     "zone",
58638	//     "disk"
58639	//   ],
58640	//   "parameters": {
58641	//     "disk": {
58642	//       "description": "The disk name for this request.",
58643	//       "location": "path",
58644	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58645	//       "required": true,
58646	//       "type": "string"
58647	//     },
58648	//     "project": {
58649	//       "description": "Project ID for this request.",
58650	//       "location": "path",
58651	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58652	//       "required": true,
58653	//       "type": "string"
58654	//     },
58655	//     "requestId": {
58656	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58657	//       "location": "query",
58658	//       "type": "string"
58659	//     },
58660	//     "zone": {
58661	//       "description": "The name of the zone for this request.",
58662	//       "location": "path",
58663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58664	//       "required": true,
58665	//       "type": "string"
58666	//     }
58667	//   },
58668	//   "path": "{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
58669	//   "request": {
58670	//     "$ref": "DisksAddResourcePoliciesRequest"
58671	//   },
58672	//   "response": {
58673	//     "$ref": "Operation"
58674	//   },
58675	//   "scopes": [
58676	//     "https://www.googleapis.com/auth/cloud-platform",
58677	//     "https://www.googleapis.com/auth/compute"
58678	//   ]
58679	// }
58680
58681}
58682
58683// method id "compute.disks.aggregatedList":
58684
58685type DisksAggregatedListCall struct {
58686	s            *Service
58687	project      string
58688	urlParams_   gensupport.URLParams
58689	ifNoneMatch_ string
58690	ctx_         context.Context
58691	header_      http.Header
58692}
58693
58694// AggregatedList: Retrieves an aggregated list of persistent disks.
58695// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
58696func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
58697	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58698	c.project = project
58699	return c
58700}
58701
58702// Filter sets the optional parameter "filter": A filter expression that
58703// filters resources listed in the response. The expression must specify
58704// the field name, a comparison operator, and the value that you want to
58705// use for filtering. The value must be a string, a number, or a
58706// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58707// `<`.
58708//
58709// For example, if you are filtering Compute Engine instances, you can
58710// exclude instances named `example-instance` by specifying `name !=
58711// example-instance`.
58712//
58713// You can also filter nested fields. For example, you could specify
58714// `scheduling.automaticRestart = false` to include instances only if
58715// they are not scheduled for automatic restarts. You can use filtering
58716// on nested fields to filter based on resource labels.
58717//
58718// To filter on multiple expressions, provide each separate expression
58719// within parentheses. For example: ``` (scheduling.automaticRestart =
58720// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58721// is an `AND` expression. However, you can include `AND` and `OR`
58722// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58723// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58724// (scheduling.automaticRestart = true) ```
58725func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
58726	c.urlParams_.Set("filter", filter)
58727	return c
58728}
58729
58730// IncludeAllScopes sets the optional parameter "includeAllScopes":
58731// Indicates whether every visible scope for each scope type (zone,
58732// region, global) should be included in the response. For new resource
58733// types added after this field, the flag has no effect as new resource
58734// types will always include every visible scope for each scope type in
58735// response. For resource types which predate this field, if this flag
58736// is omitted or false, only scopes of the scope types where the
58737// resource type is expected to be found will be included.
58738func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
58739	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
58740	return c
58741}
58742
58743// MaxResults sets the optional parameter "maxResults": The maximum
58744// number of results per page that should be returned. If the number of
58745// available results is larger than `maxResults`, Compute Engine returns
58746// a `nextPageToken` that can be used to get the next page of results in
58747// subsequent list requests. Acceptable values are `0` to `500`,
58748// inclusive. (Default: `500`)
58749func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
58750	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58751	return c
58752}
58753
58754// OrderBy sets the optional parameter "orderBy": Sorts list results by
58755// a certain order. By default, results are returned in alphanumerical
58756// order based on the resource name.
58757//
58758// You can also sort results in descending order based on the creation
58759// timestamp using `orderBy="creationTimestamp desc". This sorts
58760// results based on the `creationTimestamp` field in reverse
58761// chronological order (newest result first). Use this to sort resources
58762// like operations so that the newest operation is returned
58763// first.
58764//
58765// Currently, only sorting by `name` or `creationTimestamp desc` is
58766// supported.
58767func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
58768	c.urlParams_.Set("orderBy", orderBy)
58769	return c
58770}
58771
58772// PageToken sets the optional parameter "pageToken": Specifies a page
58773// token to use. Set `pageToken` to the `nextPageToken` returned by a
58774// previous list request to get the next page of results.
58775func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
58776	c.urlParams_.Set("pageToken", pageToken)
58777	return c
58778}
58779
58780// ReturnPartialSuccess sets the optional parameter
58781// "returnPartialSuccess": Opt-in for partial success behavior which
58782// provides partial results in case of failure. The default value is
58783// false and the logic is the same as today.
58784func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall {
58785	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
58786	return c
58787}
58788
58789// Fields allows partial responses to be retrieved. See
58790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58791// for more information.
58792func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
58793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58794	return c
58795}
58796
58797// IfNoneMatch sets the optional parameter which makes the operation
58798// fail if the object's ETag matches the given value. This is useful for
58799// getting updates only after the object has changed since the last
58800// request. Use googleapi.IsNotModified to check whether the response
58801// error from Do is the result of In-None-Match.
58802func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
58803	c.ifNoneMatch_ = entityTag
58804	return c
58805}
58806
58807// Context sets the context to be used in this call's Do method. Any
58808// pending HTTP request will be aborted if the provided context is
58809// canceled.
58810func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
58811	c.ctx_ = ctx
58812	return c
58813}
58814
58815// Header returns an http.Header that can be modified by the caller to
58816// add HTTP headers to the request.
58817func (c *DisksAggregatedListCall) Header() http.Header {
58818	if c.header_ == nil {
58819		c.header_ = make(http.Header)
58820	}
58821	return c.header_
58822}
58823
58824func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
58825	reqHeaders := make(http.Header)
58826	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
58827	for k, v := range c.header_ {
58828		reqHeaders[k] = v
58829	}
58830	reqHeaders.Set("User-Agent", c.s.userAgent())
58831	if c.ifNoneMatch_ != "" {
58832		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58833	}
58834	var body io.Reader = nil
58835	c.urlParams_.Set("alt", alt)
58836	c.urlParams_.Set("prettyPrint", "false")
58837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
58838	urls += "?" + c.urlParams_.Encode()
58839	req, err := http.NewRequest("GET", urls, body)
58840	if err != nil {
58841		return nil, err
58842	}
58843	req.Header = reqHeaders
58844	googleapi.Expand(req.URL, map[string]string{
58845		"project": c.project,
58846	})
58847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58848}
58849
58850// Do executes the "compute.disks.aggregatedList" call.
58851// Exactly one of *DiskAggregatedList or error will be non-nil. Any
58852// non-2xx status code is an error. Response headers are in either
58853// *DiskAggregatedList.ServerResponse.Header or (if a response was
58854// returned at all) in error.(*googleapi.Error).Header. Use
58855// googleapi.IsNotModified to check whether the returned error was
58856// because http.StatusNotModified was returned.
58857func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
58858	gensupport.SetOptions(c.urlParams_, opts...)
58859	res, err := c.doRequest("json")
58860	if res != nil && res.StatusCode == http.StatusNotModified {
58861		if res.Body != nil {
58862			res.Body.Close()
58863		}
58864		return nil, &googleapi.Error{
58865			Code:   res.StatusCode,
58866			Header: res.Header,
58867		}
58868	}
58869	if err != nil {
58870		return nil, err
58871	}
58872	defer googleapi.CloseBody(res)
58873	if err := googleapi.CheckResponse(res); err != nil {
58874		return nil, err
58875	}
58876	ret := &DiskAggregatedList{
58877		ServerResponse: googleapi.ServerResponse{
58878			Header:         res.Header,
58879			HTTPStatusCode: res.StatusCode,
58880		},
58881	}
58882	target := &ret
58883	if err := gensupport.DecodeResponse(target, res); err != nil {
58884		return nil, err
58885	}
58886	return ret, nil
58887	// {
58888	//   "description": "Retrieves an aggregated list of persistent disks.",
58889	//   "httpMethod": "GET",
58890	//   "id": "compute.disks.aggregatedList",
58891	//   "parameterOrder": [
58892	//     "project"
58893	//   ],
58894	//   "parameters": {
58895	//     "filter": {
58896	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58897	//       "location": "query",
58898	//       "type": "string"
58899	//     },
58900	//     "includeAllScopes": {
58901	//       "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.",
58902	//       "location": "query",
58903	//       "type": "boolean"
58904	//     },
58905	//     "maxResults": {
58906	//       "default": "500",
58907	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58908	//       "format": "uint32",
58909	//       "location": "query",
58910	//       "minimum": "0",
58911	//       "type": "integer"
58912	//     },
58913	//     "orderBy": {
58914	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58915	//       "location": "query",
58916	//       "type": "string"
58917	//     },
58918	//     "pageToken": {
58919	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58920	//       "location": "query",
58921	//       "type": "string"
58922	//     },
58923	//     "project": {
58924	//       "description": "Project ID for this request.",
58925	//       "location": "path",
58926	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58927	//       "required": true,
58928	//       "type": "string"
58929	//     },
58930	//     "returnPartialSuccess": {
58931	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
58932	//       "location": "query",
58933	//       "type": "boolean"
58934	//     }
58935	//   },
58936	//   "path": "{project}/aggregated/disks",
58937	//   "response": {
58938	//     "$ref": "DiskAggregatedList"
58939	//   },
58940	//   "scopes": [
58941	//     "https://www.googleapis.com/auth/cloud-platform",
58942	//     "https://www.googleapis.com/auth/compute",
58943	//     "https://www.googleapis.com/auth/compute.readonly"
58944	//   ]
58945	// }
58946
58947}
58948
58949// Pages invokes f for each page of results.
58950// A non-nil error returned from f will halt the iteration.
58951// The provided context supersedes any context provided to the Context method.
58952func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
58953	c.ctx_ = ctx
58954	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58955	for {
58956		x, err := c.Do()
58957		if err != nil {
58958			return err
58959		}
58960		if err := f(x); err != nil {
58961			return err
58962		}
58963		if x.NextPageToken == "" {
58964			return nil
58965		}
58966		c.PageToken(x.NextPageToken)
58967	}
58968}
58969
58970// method id "compute.disks.createSnapshot":
58971
58972type DisksCreateSnapshotCall struct {
58973	s          *Service
58974	project    string
58975	zone       string
58976	disk       string
58977	snapshot   *Snapshot
58978	urlParams_ gensupport.URLParams
58979	ctx_       context.Context
58980	header_    http.Header
58981}
58982
58983// CreateSnapshot: Creates a snapshot of a specified persistent disk.
58984// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
58985func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
58986	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58987	c.project = project
58988	c.zone = zone
58989	c.disk = disk
58990	c.snapshot = snapshot
58991	return c
58992}
58993
58994// GuestFlush sets the optional parameter "guestFlush": [Input Only]
58995// Specifies to create an application consistent snapshot by informing
58996// the OS to prepare for the snapshot process. Currently only supported
58997// on Windows instances using the Volume Shadow Copy Service (VSS).
58998func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
58999	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
59000	return c
59001}
59002
59003// RequestId sets the optional parameter "requestId": An optional
59004// request ID to identify requests. Specify a unique request ID so that
59005// if you must retry your request, the server will know to ignore the
59006// request if it has already been completed.
59007//
59008// For example, consider a situation where you make an initial request
59009// and the request times out. If you make the request again with the
59010// same request ID, the server can check if original operation with the
59011// same request ID was received, and if so, will ignore the second
59012// request. This prevents clients from accidentally creating duplicate
59013// commitments.
59014//
59015// The request ID must be a valid UUID with the exception that zero UUID
59016// is not supported (00000000-0000-0000-0000-000000000000).
59017func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
59018	c.urlParams_.Set("requestId", requestId)
59019	return c
59020}
59021
59022// Fields allows partial responses to be retrieved. See
59023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59024// for more information.
59025func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
59026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59027	return c
59028}
59029
59030// Context sets the context to be used in this call's Do method. Any
59031// pending HTTP request will be aborted if the provided context is
59032// canceled.
59033func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
59034	c.ctx_ = ctx
59035	return c
59036}
59037
59038// Header returns an http.Header that can be modified by the caller to
59039// add HTTP headers to the request.
59040func (c *DisksCreateSnapshotCall) Header() http.Header {
59041	if c.header_ == nil {
59042		c.header_ = make(http.Header)
59043	}
59044	return c.header_
59045}
59046
59047func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
59048	reqHeaders := make(http.Header)
59049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
59050	for k, v := range c.header_ {
59051		reqHeaders[k] = v
59052	}
59053	reqHeaders.Set("User-Agent", c.s.userAgent())
59054	var body io.Reader = nil
59055	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
59056	if err != nil {
59057		return nil, err
59058	}
59059	reqHeaders.Set("Content-Type", "application/json")
59060	c.urlParams_.Set("alt", alt)
59061	c.urlParams_.Set("prettyPrint", "false")
59062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
59063	urls += "?" + c.urlParams_.Encode()
59064	req, err := http.NewRequest("POST", urls, body)
59065	if err != nil {
59066		return nil, err
59067	}
59068	req.Header = reqHeaders
59069	googleapi.Expand(req.URL, map[string]string{
59070		"project": c.project,
59071		"zone":    c.zone,
59072		"disk":    c.disk,
59073	})
59074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59075}
59076
59077// Do executes the "compute.disks.createSnapshot" call.
59078// Exactly one of *Operation or error will be non-nil. Any non-2xx
59079// status code is an error. Response headers are in either
59080// *Operation.ServerResponse.Header or (if a response was returned at
59081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59082// to check whether the returned error was because
59083// http.StatusNotModified was returned.
59084func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59085	gensupport.SetOptions(c.urlParams_, opts...)
59086	res, err := c.doRequest("json")
59087	if res != nil && res.StatusCode == http.StatusNotModified {
59088		if res.Body != nil {
59089			res.Body.Close()
59090		}
59091		return nil, &googleapi.Error{
59092			Code:   res.StatusCode,
59093			Header: res.Header,
59094		}
59095	}
59096	if err != nil {
59097		return nil, err
59098	}
59099	defer googleapi.CloseBody(res)
59100	if err := googleapi.CheckResponse(res); err != nil {
59101		return nil, err
59102	}
59103	ret := &Operation{
59104		ServerResponse: googleapi.ServerResponse{
59105			Header:         res.Header,
59106			HTTPStatusCode: res.StatusCode,
59107		},
59108	}
59109	target := &ret
59110	if err := gensupport.DecodeResponse(target, res); err != nil {
59111		return nil, err
59112	}
59113	return ret, nil
59114	// {
59115	//   "description": "Creates a snapshot of a specified persistent disk.",
59116	//   "httpMethod": "POST",
59117	//   "id": "compute.disks.createSnapshot",
59118	//   "parameterOrder": [
59119	//     "project",
59120	//     "zone",
59121	//     "disk"
59122	//   ],
59123	//   "parameters": {
59124	//     "disk": {
59125	//       "description": "Name of the persistent disk to snapshot.",
59126	//       "location": "path",
59127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59128	//       "required": true,
59129	//       "type": "string"
59130	//     },
59131	//     "guestFlush": {
59132	//       "description": "[Input Only] Specifies to create 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).",
59133	//       "location": "query",
59134	//       "type": "boolean"
59135	//     },
59136	//     "project": {
59137	//       "description": "Project ID for this request.",
59138	//       "location": "path",
59139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59140	//       "required": true,
59141	//       "type": "string"
59142	//     },
59143	//     "requestId": {
59144	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59145	//       "location": "query",
59146	//       "type": "string"
59147	//     },
59148	//     "zone": {
59149	//       "description": "The name of the zone for this request.",
59150	//       "location": "path",
59151	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59152	//       "required": true,
59153	//       "type": "string"
59154	//     }
59155	//   },
59156	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
59157	//   "request": {
59158	//     "$ref": "Snapshot"
59159	//   },
59160	//   "response": {
59161	//     "$ref": "Operation"
59162	//   },
59163	//   "scopes": [
59164	//     "https://www.googleapis.com/auth/cloud-platform",
59165	//     "https://www.googleapis.com/auth/compute"
59166	//   ]
59167	// }
59168
59169}
59170
59171// method id "compute.disks.delete":
59172
59173type DisksDeleteCall struct {
59174	s          *Service
59175	project    string
59176	zone       string
59177	disk       string
59178	urlParams_ gensupport.URLParams
59179	ctx_       context.Context
59180	header_    http.Header
59181}
59182
59183// Delete: Deletes the specified persistent disk. Deleting a disk
59184// removes its data permanently and is irreversible. However, deleting a
59185// disk does not delete any snapshots previously made from the disk. You
59186// must separately delete snapshots.
59187// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
59188func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
59189	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59190	c.project = project
59191	c.zone = zone
59192	c.disk = disk
59193	return c
59194}
59195
59196// RequestId sets the optional parameter "requestId": An optional
59197// request ID to identify requests. Specify a unique request ID so that
59198// if you must retry your request, the server will know to ignore the
59199// request if it has already been completed.
59200//
59201// For example, consider a situation where you make an initial request
59202// and the request times out. If you make the request again with the
59203// same request ID, the server can check if original operation with the
59204// same request ID was received, and if so, will ignore the second
59205// request. This prevents clients from accidentally creating duplicate
59206// commitments.
59207//
59208// The request ID must be a valid UUID with the exception that zero UUID
59209// is not supported (00000000-0000-0000-0000-000000000000).
59210func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
59211	c.urlParams_.Set("requestId", requestId)
59212	return c
59213}
59214
59215// Fields allows partial responses to be retrieved. See
59216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59217// for more information.
59218func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
59219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59220	return c
59221}
59222
59223// Context sets the context to be used in this call's Do method. Any
59224// pending HTTP request will be aborted if the provided context is
59225// canceled.
59226func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
59227	c.ctx_ = ctx
59228	return c
59229}
59230
59231// Header returns an http.Header that can be modified by the caller to
59232// add HTTP headers to the request.
59233func (c *DisksDeleteCall) Header() http.Header {
59234	if c.header_ == nil {
59235		c.header_ = make(http.Header)
59236	}
59237	return c.header_
59238}
59239
59240func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
59241	reqHeaders := make(http.Header)
59242	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
59243	for k, v := range c.header_ {
59244		reqHeaders[k] = v
59245	}
59246	reqHeaders.Set("User-Agent", c.s.userAgent())
59247	var body io.Reader = nil
59248	c.urlParams_.Set("alt", alt)
59249	c.urlParams_.Set("prettyPrint", "false")
59250	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
59251	urls += "?" + c.urlParams_.Encode()
59252	req, err := http.NewRequest("DELETE", urls, body)
59253	if err != nil {
59254		return nil, err
59255	}
59256	req.Header = reqHeaders
59257	googleapi.Expand(req.URL, map[string]string{
59258		"project": c.project,
59259		"zone":    c.zone,
59260		"disk":    c.disk,
59261	})
59262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59263}
59264
59265// Do executes the "compute.disks.delete" call.
59266// Exactly one of *Operation or error will be non-nil. Any non-2xx
59267// status code is an error. Response headers are in either
59268// *Operation.ServerResponse.Header or (if a response was returned at
59269// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59270// to check whether the returned error was because
59271// http.StatusNotModified was returned.
59272func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59273	gensupport.SetOptions(c.urlParams_, opts...)
59274	res, err := c.doRequest("json")
59275	if res != nil && res.StatusCode == http.StatusNotModified {
59276		if res.Body != nil {
59277			res.Body.Close()
59278		}
59279		return nil, &googleapi.Error{
59280			Code:   res.StatusCode,
59281			Header: res.Header,
59282		}
59283	}
59284	if err != nil {
59285		return nil, err
59286	}
59287	defer googleapi.CloseBody(res)
59288	if err := googleapi.CheckResponse(res); err != nil {
59289		return nil, err
59290	}
59291	ret := &Operation{
59292		ServerResponse: googleapi.ServerResponse{
59293			Header:         res.Header,
59294			HTTPStatusCode: res.StatusCode,
59295		},
59296	}
59297	target := &ret
59298	if err := gensupport.DecodeResponse(target, res); err != nil {
59299		return nil, err
59300	}
59301	return ret, nil
59302	// {
59303	//   "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.",
59304	//   "httpMethod": "DELETE",
59305	//   "id": "compute.disks.delete",
59306	//   "parameterOrder": [
59307	//     "project",
59308	//     "zone",
59309	//     "disk"
59310	//   ],
59311	//   "parameters": {
59312	//     "disk": {
59313	//       "description": "Name of the persistent disk to delete.",
59314	//       "location": "path",
59315	//       "required": true,
59316	//       "type": "string"
59317	//     },
59318	//     "project": {
59319	//       "description": "Project ID for this request.",
59320	//       "location": "path",
59321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59322	//       "required": true,
59323	//       "type": "string"
59324	//     },
59325	//     "requestId": {
59326	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59327	//       "location": "query",
59328	//       "type": "string"
59329	//     },
59330	//     "zone": {
59331	//       "description": "The name of the zone for this request.",
59332	//       "location": "path",
59333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59334	//       "required": true,
59335	//       "type": "string"
59336	//     }
59337	//   },
59338	//   "path": "{project}/zones/{zone}/disks/{disk}",
59339	//   "response": {
59340	//     "$ref": "Operation"
59341	//   },
59342	//   "scopes": [
59343	//     "https://www.googleapis.com/auth/cloud-platform",
59344	//     "https://www.googleapis.com/auth/compute"
59345	//   ]
59346	// }
59347
59348}
59349
59350// method id "compute.disks.get":
59351
59352type DisksGetCall struct {
59353	s            *Service
59354	project      string
59355	zone         string
59356	disk         string
59357	urlParams_   gensupport.URLParams
59358	ifNoneMatch_ string
59359	ctx_         context.Context
59360	header_      http.Header
59361}
59362
59363// Get: Returns a specified persistent disk. Gets a list of available
59364// persistent disks by making a list() request.
59365// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
59366func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
59367	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59368	c.project = project
59369	c.zone = zone
59370	c.disk = disk
59371	return c
59372}
59373
59374// Fields allows partial responses to be retrieved. See
59375// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59376// for more information.
59377func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
59378	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59379	return c
59380}
59381
59382// IfNoneMatch sets the optional parameter which makes the operation
59383// fail if the object's ETag matches the given value. This is useful for
59384// getting updates only after the object has changed since the last
59385// request. Use googleapi.IsNotModified to check whether the response
59386// error from Do is the result of In-None-Match.
59387func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
59388	c.ifNoneMatch_ = entityTag
59389	return c
59390}
59391
59392// Context sets the context to be used in this call's Do method. Any
59393// pending HTTP request will be aborted if the provided context is
59394// canceled.
59395func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
59396	c.ctx_ = ctx
59397	return c
59398}
59399
59400// Header returns an http.Header that can be modified by the caller to
59401// add HTTP headers to the request.
59402func (c *DisksGetCall) Header() http.Header {
59403	if c.header_ == nil {
59404		c.header_ = make(http.Header)
59405	}
59406	return c.header_
59407}
59408
59409func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
59410	reqHeaders := make(http.Header)
59411	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
59412	for k, v := range c.header_ {
59413		reqHeaders[k] = v
59414	}
59415	reqHeaders.Set("User-Agent", c.s.userAgent())
59416	if c.ifNoneMatch_ != "" {
59417		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59418	}
59419	var body io.Reader = nil
59420	c.urlParams_.Set("alt", alt)
59421	c.urlParams_.Set("prettyPrint", "false")
59422	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
59423	urls += "?" + c.urlParams_.Encode()
59424	req, err := http.NewRequest("GET", urls, body)
59425	if err != nil {
59426		return nil, err
59427	}
59428	req.Header = reqHeaders
59429	googleapi.Expand(req.URL, map[string]string{
59430		"project": c.project,
59431		"zone":    c.zone,
59432		"disk":    c.disk,
59433	})
59434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59435}
59436
59437// Do executes the "compute.disks.get" call.
59438// Exactly one of *Disk or error will be non-nil. Any non-2xx status
59439// code is an error. Response headers are in either
59440// *Disk.ServerResponse.Header or (if a response was returned at all) in
59441// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
59442// whether the returned error was because http.StatusNotModified was
59443// returned.
59444func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
59445	gensupport.SetOptions(c.urlParams_, opts...)
59446	res, err := c.doRequest("json")
59447	if res != nil && res.StatusCode == http.StatusNotModified {
59448		if res.Body != nil {
59449			res.Body.Close()
59450		}
59451		return nil, &googleapi.Error{
59452			Code:   res.StatusCode,
59453			Header: res.Header,
59454		}
59455	}
59456	if err != nil {
59457		return nil, err
59458	}
59459	defer googleapi.CloseBody(res)
59460	if err := googleapi.CheckResponse(res); err != nil {
59461		return nil, err
59462	}
59463	ret := &Disk{
59464		ServerResponse: googleapi.ServerResponse{
59465			Header:         res.Header,
59466			HTTPStatusCode: res.StatusCode,
59467		},
59468	}
59469	target := &ret
59470	if err := gensupport.DecodeResponse(target, res); err != nil {
59471		return nil, err
59472	}
59473	return ret, nil
59474	// {
59475	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
59476	//   "httpMethod": "GET",
59477	//   "id": "compute.disks.get",
59478	//   "parameterOrder": [
59479	//     "project",
59480	//     "zone",
59481	//     "disk"
59482	//   ],
59483	//   "parameters": {
59484	//     "disk": {
59485	//       "description": "Name of the persistent disk to return.",
59486	//       "location": "path",
59487	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59488	//       "required": true,
59489	//       "type": "string"
59490	//     },
59491	//     "project": {
59492	//       "description": "Project ID for this request.",
59493	//       "location": "path",
59494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59495	//       "required": true,
59496	//       "type": "string"
59497	//     },
59498	//     "zone": {
59499	//       "description": "The name of the zone for this request.",
59500	//       "location": "path",
59501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59502	//       "required": true,
59503	//       "type": "string"
59504	//     }
59505	//   },
59506	//   "path": "{project}/zones/{zone}/disks/{disk}",
59507	//   "response": {
59508	//     "$ref": "Disk"
59509	//   },
59510	//   "scopes": [
59511	//     "https://www.googleapis.com/auth/cloud-platform",
59512	//     "https://www.googleapis.com/auth/compute",
59513	//     "https://www.googleapis.com/auth/compute.readonly"
59514	//   ]
59515	// }
59516
59517}
59518
59519// method id "compute.disks.getIamPolicy":
59520
59521type DisksGetIamPolicyCall struct {
59522	s            *Service
59523	project      string
59524	zone         string
59525	resource     string
59526	urlParams_   gensupport.URLParams
59527	ifNoneMatch_ string
59528	ctx_         context.Context
59529	header_      http.Header
59530}
59531
59532// GetIamPolicy: Gets the access control policy for a resource. May be
59533// empty if no such policy or resource exists.
59534func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
59535	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59536	c.project = project
59537	c.zone = zone
59538	c.resource = resource
59539	return c
59540}
59541
59542// OptionsRequestedPolicyVersion sets the optional parameter
59543// "optionsRequestedPolicyVersion": Requested IAM Policy version.
59544func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
59545	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
59546	return c
59547}
59548
59549// Fields allows partial responses to be retrieved. See
59550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59551// for more information.
59552func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
59553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59554	return c
59555}
59556
59557// IfNoneMatch sets the optional parameter which makes the operation
59558// fail if the object's ETag matches the given value. This is useful for
59559// getting updates only after the object has changed since the last
59560// request. Use googleapi.IsNotModified to check whether the response
59561// error from Do is the result of In-None-Match.
59562func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
59563	c.ifNoneMatch_ = entityTag
59564	return c
59565}
59566
59567// Context sets the context to be used in this call's Do method. Any
59568// pending HTTP request will be aborted if the provided context is
59569// canceled.
59570func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
59571	c.ctx_ = ctx
59572	return c
59573}
59574
59575// Header returns an http.Header that can be modified by the caller to
59576// add HTTP headers to the request.
59577func (c *DisksGetIamPolicyCall) Header() http.Header {
59578	if c.header_ == nil {
59579		c.header_ = make(http.Header)
59580	}
59581	return c.header_
59582}
59583
59584func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
59585	reqHeaders := make(http.Header)
59586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
59587	for k, v := range c.header_ {
59588		reqHeaders[k] = v
59589	}
59590	reqHeaders.Set("User-Agent", c.s.userAgent())
59591	if c.ifNoneMatch_ != "" {
59592		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59593	}
59594	var body io.Reader = nil
59595	c.urlParams_.Set("alt", alt)
59596	c.urlParams_.Set("prettyPrint", "false")
59597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/getIamPolicy")
59598	urls += "?" + c.urlParams_.Encode()
59599	req, err := http.NewRequest("GET", urls, body)
59600	if err != nil {
59601		return nil, err
59602	}
59603	req.Header = reqHeaders
59604	googleapi.Expand(req.URL, map[string]string{
59605		"project":  c.project,
59606		"zone":     c.zone,
59607		"resource": c.resource,
59608	})
59609	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59610}
59611
59612// Do executes the "compute.disks.getIamPolicy" call.
59613// Exactly one of *Policy or error will be non-nil. Any non-2xx status
59614// code is an error. Response headers are in either
59615// *Policy.ServerResponse.Header or (if a response was returned at all)
59616// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
59617// check whether the returned error was because http.StatusNotModified
59618// was returned.
59619func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
59620	gensupport.SetOptions(c.urlParams_, opts...)
59621	res, err := c.doRequest("json")
59622	if res != nil && res.StatusCode == http.StatusNotModified {
59623		if res.Body != nil {
59624			res.Body.Close()
59625		}
59626		return nil, &googleapi.Error{
59627			Code:   res.StatusCode,
59628			Header: res.Header,
59629		}
59630	}
59631	if err != nil {
59632		return nil, err
59633	}
59634	defer googleapi.CloseBody(res)
59635	if err := googleapi.CheckResponse(res); err != nil {
59636		return nil, err
59637	}
59638	ret := &Policy{
59639		ServerResponse: googleapi.ServerResponse{
59640			Header:         res.Header,
59641			HTTPStatusCode: res.StatusCode,
59642		},
59643	}
59644	target := &ret
59645	if err := gensupport.DecodeResponse(target, res); err != nil {
59646		return nil, err
59647	}
59648	return ret, nil
59649	// {
59650	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
59651	//   "httpMethod": "GET",
59652	//   "id": "compute.disks.getIamPolicy",
59653	//   "parameterOrder": [
59654	//     "project",
59655	//     "zone",
59656	//     "resource"
59657	//   ],
59658	//   "parameters": {
59659	//     "optionsRequestedPolicyVersion": {
59660	//       "description": "Requested IAM Policy version.",
59661	//       "format": "int32",
59662	//       "location": "query",
59663	//       "type": "integer"
59664	//     },
59665	//     "project": {
59666	//       "description": "Project ID for this request.",
59667	//       "location": "path",
59668	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59669	//       "required": true,
59670	//       "type": "string"
59671	//     },
59672	//     "resource": {
59673	//       "description": "Name or id of the resource for this request.",
59674	//       "location": "path",
59675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59676	//       "required": true,
59677	//       "type": "string"
59678	//     },
59679	//     "zone": {
59680	//       "description": "The name of the zone for this request.",
59681	//       "location": "path",
59682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59683	//       "required": true,
59684	//       "type": "string"
59685	//     }
59686	//   },
59687	//   "path": "{project}/zones/{zone}/disks/{resource}/getIamPolicy",
59688	//   "response": {
59689	//     "$ref": "Policy"
59690	//   },
59691	//   "scopes": [
59692	//     "https://www.googleapis.com/auth/cloud-platform",
59693	//     "https://www.googleapis.com/auth/compute",
59694	//     "https://www.googleapis.com/auth/compute.readonly"
59695	//   ]
59696	// }
59697
59698}
59699
59700// method id "compute.disks.insert":
59701
59702type DisksInsertCall struct {
59703	s          *Service
59704	project    string
59705	zone       string
59706	disk       *Disk
59707	urlParams_ gensupport.URLParams
59708	ctx_       context.Context
59709	header_    http.Header
59710}
59711
59712// Insert: Creates a persistent disk in the specified project using the
59713// data in the request. You can create a disk with a sourceImage, a
59714// sourceSnapshot, or create an empty 500 GB data disk by omitting all
59715// properties. You can also create a disk that is larger than the
59716// default size by specifying the sizeGb property.
59717// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
59718func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
59719	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59720	c.project = project
59721	c.zone = zone
59722	c.disk = disk
59723	return c
59724}
59725
59726// RequestId sets the optional parameter "requestId": An optional
59727// request ID to identify requests. Specify a unique request ID so that
59728// if you must retry your request, the server will know to ignore the
59729// request if it has already been completed.
59730//
59731// For example, consider a situation where you make an initial request
59732// and the request times out. If you make the request again with the
59733// same request ID, the server can check if original operation with the
59734// same request ID was received, and if so, will ignore the second
59735// request. This prevents clients from accidentally creating duplicate
59736// commitments.
59737//
59738// The request ID must be a valid UUID with the exception that zero UUID
59739// is not supported (00000000-0000-0000-0000-000000000000).
59740func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
59741	c.urlParams_.Set("requestId", requestId)
59742	return c
59743}
59744
59745// SourceImage sets the optional parameter "sourceImage": Source image
59746// to restore onto a disk.
59747func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
59748	c.urlParams_.Set("sourceImage", sourceImage)
59749	return c
59750}
59751
59752// Fields allows partial responses to be retrieved. See
59753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59754// for more information.
59755func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
59756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59757	return c
59758}
59759
59760// Context sets the context to be used in this call's Do method. Any
59761// pending HTTP request will be aborted if the provided context is
59762// canceled.
59763func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
59764	c.ctx_ = ctx
59765	return c
59766}
59767
59768// Header returns an http.Header that can be modified by the caller to
59769// add HTTP headers to the request.
59770func (c *DisksInsertCall) Header() http.Header {
59771	if c.header_ == nil {
59772		c.header_ = make(http.Header)
59773	}
59774	return c.header_
59775}
59776
59777func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
59778	reqHeaders := make(http.Header)
59779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
59780	for k, v := range c.header_ {
59781		reqHeaders[k] = v
59782	}
59783	reqHeaders.Set("User-Agent", c.s.userAgent())
59784	var body io.Reader = nil
59785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
59786	if err != nil {
59787		return nil, err
59788	}
59789	reqHeaders.Set("Content-Type", "application/json")
59790	c.urlParams_.Set("alt", alt)
59791	c.urlParams_.Set("prettyPrint", "false")
59792	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
59793	urls += "?" + c.urlParams_.Encode()
59794	req, err := http.NewRequest("POST", urls, body)
59795	if err != nil {
59796		return nil, err
59797	}
59798	req.Header = reqHeaders
59799	googleapi.Expand(req.URL, map[string]string{
59800		"project": c.project,
59801		"zone":    c.zone,
59802	})
59803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59804}
59805
59806// Do executes the "compute.disks.insert" call.
59807// Exactly one of *Operation or error will be non-nil. Any non-2xx
59808// status code is an error. Response headers are in either
59809// *Operation.ServerResponse.Header or (if a response was returned at
59810// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59811// to check whether the returned error was because
59812// http.StatusNotModified was returned.
59813func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59814	gensupport.SetOptions(c.urlParams_, opts...)
59815	res, err := c.doRequest("json")
59816	if res != nil && res.StatusCode == http.StatusNotModified {
59817		if res.Body != nil {
59818			res.Body.Close()
59819		}
59820		return nil, &googleapi.Error{
59821			Code:   res.StatusCode,
59822			Header: res.Header,
59823		}
59824	}
59825	if err != nil {
59826		return nil, err
59827	}
59828	defer googleapi.CloseBody(res)
59829	if err := googleapi.CheckResponse(res); err != nil {
59830		return nil, err
59831	}
59832	ret := &Operation{
59833		ServerResponse: googleapi.ServerResponse{
59834			Header:         res.Header,
59835			HTTPStatusCode: res.StatusCode,
59836		},
59837	}
59838	target := &ret
59839	if err := gensupport.DecodeResponse(target, res); err != nil {
59840		return nil, err
59841	}
59842	return ret, nil
59843	// {
59844	//   "description": "Creates a persistent disk in the specified project using the data in the request. You can create a disk with a sourceImage, a sourceSnapshot, 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.",
59845	//   "httpMethod": "POST",
59846	//   "id": "compute.disks.insert",
59847	//   "parameterOrder": [
59848	//     "project",
59849	//     "zone"
59850	//   ],
59851	//   "parameters": {
59852	//     "project": {
59853	//       "description": "Project ID for this request.",
59854	//       "location": "path",
59855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59856	//       "required": true,
59857	//       "type": "string"
59858	//     },
59859	//     "requestId": {
59860	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59861	//       "location": "query",
59862	//       "type": "string"
59863	//     },
59864	//     "sourceImage": {
59865	//       "description": "Optional. Source image to restore onto a disk.",
59866	//       "location": "query",
59867	//       "type": "string"
59868	//     },
59869	//     "zone": {
59870	//       "description": "The name of the zone for this request.",
59871	//       "location": "path",
59872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59873	//       "required": true,
59874	//       "type": "string"
59875	//     }
59876	//   },
59877	//   "path": "{project}/zones/{zone}/disks",
59878	//   "request": {
59879	//     "$ref": "Disk"
59880	//   },
59881	//   "response": {
59882	//     "$ref": "Operation"
59883	//   },
59884	//   "scopes": [
59885	//     "https://www.googleapis.com/auth/cloud-platform",
59886	//     "https://www.googleapis.com/auth/compute"
59887	//   ]
59888	// }
59889
59890}
59891
59892// method id "compute.disks.list":
59893
59894type DisksListCall struct {
59895	s            *Service
59896	project      string
59897	zone         string
59898	urlParams_   gensupport.URLParams
59899	ifNoneMatch_ string
59900	ctx_         context.Context
59901	header_      http.Header
59902}
59903
59904// List: Retrieves a list of persistent disks contained within the
59905// specified zone.
59906// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
59907func (r *DisksService) List(project string, zone string) *DisksListCall {
59908	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59909	c.project = project
59910	c.zone = zone
59911	return c
59912}
59913
59914// Filter sets the optional parameter "filter": A filter expression that
59915// filters resources listed in the response. The expression must specify
59916// the field name, a comparison operator, and the value that you want to
59917// use for filtering. The value must be a string, a number, or a
59918// boolean. The comparison operator must be either `=`, `!=`, `>`, or
59919// `<`.
59920//
59921// For example, if you are filtering Compute Engine instances, you can
59922// exclude instances named `example-instance` by specifying `name !=
59923// example-instance`.
59924//
59925// You can also filter nested fields. For example, you could specify
59926// `scheduling.automaticRestart = false` to include instances only if
59927// they are not scheduled for automatic restarts. You can use filtering
59928// on nested fields to filter based on resource labels.
59929//
59930// To filter on multiple expressions, provide each separate expression
59931// within parentheses. For example: ``` (scheduling.automaticRestart =
59932// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
59933// is an `AND` expression. However, you can include `AND` and `OR`
59934// expressions explicitly. For example: ``` (cpuPlatform = "Intel
59935// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
59936// (scheduling.automaticRestart = true) ```
59937func (c *DisksListCall) Filter(filter string) *DisksListCall {
59938	c.urlParams_.Set("filter", filter)
59939	return c
59940}
59941
59942// MaxResults sets the optional parameter "maxResults": The maximum
59943// number of results per page that should be returned. If the number of
59944// available results is larger than `maxResults`, Compute Engine returns
59945// a `nextPageToken` that can be used to get the next page of results in
59946// subsequent list requests. Acceptable values are `0` to `500`,
59947// inclusive. (Default: `500`)
59948func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
59949	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59950	return c
59951}
59952
59953// OrderBy sets the optional parameter "orderBy": Sorts list results by
59954// a certain order. By default, results are returned in alphanumerical
59955// order based on the resource name.
59956//
59957// You can also sort results in descending order based on the creation
59958// timestamp using `orderBy="creationTimestamp desc". This sorts
59959// results based on the `creationTimestamp` field in reverse
59960// chronological order (newest result first). Use this to sort resources
59961// like operations so that the newest operation is returned
59962// first.
59963//
59964// Currently, only sorting by `name` or `creationTimestamp desc` is
59965// supported.
59966func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
59967	c.urlParams_.Set("orderBy", orderBy)
59968	return c
59969}
59970
59971// PageToken sets the optional parameter "pageToken": Specifies a page
59972// token to use. Set `pageToken` to the `nextPageToken` returned by a
59973// previous list request to get the next page of results.
59974func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
59975	c.urlParams_.Set("pageToken", pageToken)
59976	return c
59977}
59978
59979// ReturnPartialSuccess sets the optional parameter
59980// "returnPartialSuccess": Opt-in for partial success behavior which
59981// provides partial results in case of failure. The default value is
59982// false and the logic is the same as today.
59983func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall {
59984	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
59985	return c
59986}
59987
59988// Fields allows partial responses to be retrieved. See
59989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59990// for more information.
59991func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
59992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59993	return c
59994}
59995
59996// IfNoneMatch sets the optional parameter which makes the operation
59997// fail if the object's ETag matches the given value. This is useful for
59998// getting updates only after the object has changed since the last
59999// request. Use googleapi.IsNotModified to check whether the response
60000// error from Do is the result of In-None-Match.
60001func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
60002	c.ifNoneMatch_ = entityTag
60003	return c
60004}
60005
60006// Context sets the context to be used in this call's Do method. Any
60007// pending HTTP request will be aborted if the provided context is
60008// canceled.
60009func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
60010	c.ctx_ = ctx
60011	return c
60012}
60013
60014// Header returns an http.Header that can be modified by the caller to
60015// add HTTP headers to the request.
60016func (c *DisksListCall) Header() http.Header {
60017	if c.header_ == nil {
60018		c.header_ = make(http.Header)
60019	}
60020	return c.header_
60021}
60022
60023func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
60024	reqHeaders := make(http.Header)
60025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
60026	for k, v := range c.header_ {
60027		reqHeaders[k] = v
60028	}
60029	reqHeaders.Set("User-Agent", c.s.userAgent())
60030	if c.ifNoneMatch_ != "" {
60031		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60032	}
60033	var body io.Reader = nil
60034	c.urlParams_.Set("alt", alt)
60035	c.urlParams_.Set("prettyPrint", "false")
60036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
60037	urls += "?" + c.urlParams_.Encode()
60038	req, err := http.NewRequest("GET", urls, body)
60039	if err != nil {
60040		return nil, err
60041	}
60042	req.Header = reqHeaders
60043	googleapi.Expand(req.URL, map[string]string{
60044		"project": c.project,
60045		"zone":    c.zone,
60046	})
60047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60048}
60049
60050// Do executes the "compute.disks.list" call.
60051// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
60052// code is an error. Response headers are in either
60053// *DiskList.ServerResponse.Header or (if a response was returned at
60054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60055// to check whether the returned error was because
60056// http.StatusNotModified was returned.
60057func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
60058	gensupport.SetOptions(c.urlParams_, opts...)
60059	res, err := c.doRequest("json")
60060	if res != nil && res.StatusCode == http.StatusNotModified {
60061		if res.Body != nil {
60062			res.Body.Close()
60063		}
60064		return nil, &googleapi.Error{
60065			Code:   res.StatusCode,
60066			Header: res.Header,
60067		}
60068	}
60069	if err != nil {
60070		return nil, err
60071	}
60072	defer googleapi.CloseBody(res)
60073	if err := googleapi.CheckResponse(res); err != nil {
60074		return nil, err
60075	}
60076	ret := &DiskList{
60077		ServerResponse: googleapi.ServerResponse{
60078			Header:         res.Header,
60079			HTTPStatusCode: res.StatusCode,
60080		},
60081	}
60082	target := &ret
60083	if err := gensupport.DecodeResponse(target, res); err != nil {
60084		return nil, err
60085	}
60086	return ret, nil
60087	// {
60088	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
60089	//   "httpMethod": "GET",
60090	//   "id": "compute.disks.list",
60091	//   "parameterOrder": [
60092	//     "project",
60093	//     "zone"
60094	//   ],
60095	//   "parameters": {
60096	//     "filter": {
60097	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
60098	//       "location": "query",
60099	//       "type": "string"
60100	//     },
60101	//     "maxResults": {
60102	//       "default": "500",
60103	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
60104	//       "format": "uint32",
60105	//       "location": "query",
60106	//       "minimum": "0",
60107	//       "type": "integer"
60108	//     },
60109	//     "orderBy": {
60110	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
60111	//       "location": "query",
60112	//       "type": "string"
60113	//     },
60114	//     "pageToken": {
60115	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
60116	//       "location": "query",
60117	//       "type": "string"
60118	//     },
60119	//     "project": {
60120	//       "description": "Project ID for this request.",
60121	//       "location": "path",
60122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60123	//       "required": true,
60124	//       "type": "string"
60125	//     },
60126	//     "returnPartialSuccess": {
60127	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
60128	//       "location": "query",
60129	//       "type": "boolean"
60130	//     },
60131	//     "zone": {
60132	//       "description": "The name of the zone for this request.",
60133	//       "location": "path",
60134	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60135	//       "required": true,
60136	//       "type": "string"
60137	//     }
60138	//   },
60139	//   "path": "{project}/zones/{zone}/disks",
60140	//   "response": {
60141	//     "$ref": "DiskList"
60142	//   },
60143	//   "scopes": [
60144	//     "https://www.googleapis.com/auth/cloud-platform",
60145	//     "https://www.googleapis.com/auth/compute",
60146	//     "https://www.googleapis.com/auth/compute.readonly"
60147	//   ]
60148	// }
60149
60150}
60151
60152// Pages invokes f for each page of results.
60153// A non-nil error returned from f will halt the iteration.
60154// The provided context supersedes any context provided to the Context method.
60155func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
60156	c.ctx_ = ctx
60157	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60158	for {
60159		x, err := c.Do()
60160		if err != nil {
60161			return err
60162		}
60163		if err := f(x); err != nil {
60164			return err
60165		}
60166		if x.NextPageToken == "" {
60167			return nil
60168		}
60169		c.PageToken(x.NextPageToken)
60170	}
60171}
60172
60173// method id "compute.disks.removeResourcePolicies":
60174
60175type DisksRemoveResourcePoliciesCall struct {
60176	s                                  *Service
60177	project                            string
60178	zone                               string
60179	disk                               string
60180	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
60181	urlParams_                         gensupport.URLParams
60182	ctx_                               context.Context
60183	header_                            http.Header
60184}
60185
60186// RemoveResourcePolicies: Removes resource policies from a disk.
60187func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
60188	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60189	c.project = project
60190	c.zone = zone
60191	c.disk = disk
60192	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
60193	return c
60194}
60195
60196// RequestId sets the optional parameter "requestId": An optional
60197// request ID to identify requests. Specify a unique request ID so that
60198// if you must retry your request, the server will know to ignore the
60199// request if it has already been completed.
60200//
60201// For example, consider a situation where you make an initial request
60202// and the request times out. If you make the request again with the
60203// same request ID, the server can check if original operation with the
60204// same request ID was received, and if so, will ignore the second
60205// request. This prevents clients from accidentally creating duplicate
60206// commitments.
60207//
60208// The request ID must be a valid UUID with the exception that zero UUID
60209// is not supported (00000000-0000-0000-0000-000000000000).
60210func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
60211	c.urlParams_.Set("requestId", requestId)
60212	return c
60213}
60214
60215// Fields allows partial responses to be retrieved. See
60216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60217// for more information.
60218func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
60219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60220	return c
60221}
60222
60223// Context sets the context to be used in this call's Do method. Any
60224// pending HTTP request will be aborted if the provided context is
60225// canceled.
60226func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
60227	c.ctx_ = ctx
60228	return c
60229}
60230
60231// Header returns an http.Header that can be modified by the caller to
60232// add HTTP headers to the request.
60233func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
60234	if c.header_ == nil {
60235		c.header_ = make(http.Header)
60236	}
60237	return c.header_
60238}
60239
60240func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
60241	reqHeaders := make(http.Header)
60242	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
60243	for k, v := range c.header_ {
60244		reqHeaders[k] = v
60245	}
60246	reqHeaders.Set("User-Agent", c.s.userAgent())
60247	var body io.Reader = nil
60248	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
60249	if err != nil {
60250		return nil, err
60251	}
60252	reqHeaders.Set("Content-Type", "application/json")
60253	c.urlParams_.Set("alt", alt)
60254	c.urlParams_.Set("prettyPrint", "false")
60255	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
60256	urls += "?" + c.urlParams_.Encode()
60257	req, err := http.NewRequest("POST", urls, body)
60258	if err != nil {
60259		return nil, err
60260	}
60261	req.Header = reqHeaders
60262	googleapi.Expand(req.URL, map[string]string{
60263		"project": c.project,
60264		"zone":    c.zone,
60265		"disk":    c.disk,
60266	})
60267	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60268}
60269
60270// Do executes the "compute.disks.removeResourcePolicies" call.
60271// Exactly one of *Operation or error will be non-nil. Any non-2xx
60272// status code is an error. Response headers are in either
60273// *Operation.ServerResponse.Header or (if a response was returned at
60274// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60275// to check whether the returned error was because
60276// http.StatusNotModified was returned.
60277func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60278	gensupport.SetOptions(c.urlParams_, opts...)
60279	res, err := c.doRequest("json")
60280	if res != nil && res.StatusCode == http.StatusNotModified {
60281		if res.Body != nil {
60282			res.Body.Close()
60283		}
60284		return nil, &googleapi.Error{
60285			Code:   res.StatusCode,
60286			Header: res.Header,
60287		}
60288	}
60289	if err != nil {
60290		return nil, err
60291	}
60292	defer googleapi.CloseBody(res)
60293	if err := googleapi.CheckResponse(res); err != nil {
60294		return nil, err
60295	}
60296	ret := &Operation{
60297		ServerResponse: googleapi.ServerResponse{
60298			Header:         res.Header,
60299			HTTPStatusCode: res.StatusCode,
60300		},
60301	}
60302	target := &ret
60303	if err := gensupport.DecodeResponse(target, res); err != nil {
60304		return nil, err
60305	}
60306	return ret, nil
60307	// {
60308	//   "description": "Removes resource policies from a disk.",
60309	//   "httpMethod": "POST",
60310	//   "id": "compute.disks.removeResourcePolicies",
60311	//   "parameterOrder": [
60312	//     "project",
60313	//     "zone",
60314	//     "disk"
60315	//   ],
60316	//   "parameters": {
60317	//     "disk": {
60318	//       "description": "The disk name for this request.",
60319	//       "location": "path",
60320	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60321	//       "required": true,
60322	//       "type": "string"
60323	//     },
60324	//     "project": {
60325	//       "description": "Project ID for this request.",
60326	//       "location": "path",
60327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60328	//       "required": true,
60329	//       "type": "string"
60330	//     },
60331	//     "requestId": {
60332	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60333	//       "location": "query",
60334	//       "type": "string"
60335	//     },
60336	//     "zone": {
60337	//       "description": "The name of the zone for this request.",
60338	//       "location": "path",
60339	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60340	//       "required": true,
60341	//       "type": "string"
60342	//     }
60343	//   },
60344	//   "path": "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
60345	//   "request": {
60346	//     "$ref": "DisksRemoveResourcePoliciesRequest"
60347	//   },
60348	//   "response": {
60349	//     "$ref": "Operation"
60350	//   },
60351	//   "scopes": [
60352	//     "https://www.googleapis.com/auth/cloud-platform",
60353	//     "https://www.googleapis.com/auth/compute"
60354	//   ]
60355	// }
60356
60357}
60358
60359// method id "compute.disks.resize":
60360
60361type DisksResizeCall struct {
60362	s                  *Service
60363	project            string
60364	zone               string
60365	disk               string
60366	disksresizerequest *DisksResizeRequest
60367	urlParams_         gensupport.URLParams
60368	ctx_               context.Context
60369	header_            http.Header
60370}
60371
60372// Resize: Resizes the specified persistent disk. You can only increase
60373// the size of the disk.
60374func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
60375	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60376	c.project = project
60377	c.zone = zone
60378	c.disk = disk
60379	c.disksresizerequest = disksresizerequest
60380	return c
60381}
60382
60383// RequestId sets the optional parameter "requestId": An optional
60384// request ID to identify requests. Specify a unique request ID so that
60385// if you must retry your request, the server will know to ignore the
60386// request if it has already been completed.
60387//
60388// For example, consider a situation where you make an initial request
60389// and the request times out. If you make the request again with the
60390// same request ID, the server can check if original operation with the
60391// same request ID was received, and if so, will ignore the second
60392// request. This prevents clients from accidentally creating duplicate
60393// commitments.
60394//
60395// The request ID must be a valid UUID with the exception that zero UUID
60396// is not supported (00000000-0000-0000-0000-000000000000).
60397func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
60398	c.urlParams_.Set("requestId", requestId)
60399	return c
60400}
60401
60402// Fields allows partial responses to be retrieved. See
60403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60404// for more information.
60405func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
60406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60407	return c
60408}
60409
60410// Context sets the context to be used in this call's Do method. Any
60411// pending HTTP request will be aborted if the provided context is
60412// canceled.
60413func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
60414	c.ctx_ = ctx
60415	return c
60416}
60417
60418// Header returns an http.Header that can be modified by the caller to
60419// add HTTP headers to the request.
60420func (c *DisksResizeCall) Header() http.Header {
60421	if c.header_ == nil {
60422		c.header_ = make(http.Header)
60423	}
60424	return c.header_
60425}
60426
60427func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
60428	reqHeaders := make(http.Header)
60429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
60430	for k, v := range c.header_ {
60431		reqHeaders[k] = v
60432	}
60433	reqHeaders.Set("User-Agent", c.s.userAgent())
60434	var body io.Reader = nil
60435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
60436	if err != nil {
60437		return nil, err
60438	}
60439	reqHeaders.Set("Content-Type", "application/json")
60440	c.urlParams_.Set("alt", alt)
60441	c.urlParams_.Set("prettyPrint", "false")
60442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
60443	urls += "?" + c.urlParams_.Encode()
60444	req, err := http.NewRequest("POST", urls, body)
60445	if err != nil {
60446		return nil, err
60447	}
60448	req.Header = reqHeaders
60449	googleapi.Expand(req.URL, map[string]string{
60450		"project": c.project,
60451		"zone":    c.zone,
60452		"disk":    c.disk,
60453	})
60454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60455}
60456
60457// Do executes the "compute.disks.resize" call.
60458// Exactly one of *Operation or error will be non-nil. Any non-2xx
60459// status code is an error. Response headers are in either
60460// *Operation.ServerResponse.Header or (if a response was returned at
60461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60462// to check whether the returned error was because
60463// http.StatusNotModified was returned.
60464func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60465	gensupport.SetOptions(c.urlParams_, opts...)
60466	res, err := c.doRequest("json")
60467	if res != nil && res.StatusCode == http.StatusNotModified {
60468		if res.Body != nil {
60469			res.Body.Close()
60470		}
60471		return nil, &googleapi.Error{
60472			Code:   res.StatusCode,
60473			Header: res.Header,
60474		}
60475	}
60476	if err != nil {
60477		return nil, err
60478	}
60479	defer googleapi.CloseBody(res)
60480	if err := googleapi.CheckResponse(res); err != nil {
60481		return nil, err
60482	}
60483	ret := &Operation{
60484		ServerResponse: googleapi.ServerResponse{
60485			Header:         res.Header,
60486			HTTPStatusCode: res.StatusCode,
60487		},
60488	}
60489	target := &ret
60490	if err := gensupport.DecodeResponse(target, res); err != nil {
60491		return nil, err
60492	}
60493	return ret, nil
60494	// {
60495	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
60496	//   "httpMethod": "POST",
60497	//   "id": "compute.disks.resize",
60498	//   "parameterOrder": [
60499	//     "project",
60500	//     "zone",
60501	//     "disk"
60502	//   ],
60503	//   "parameters": {
60504	//     "disk": {
60505	//       "description": "The name of the persistent disk.",
60506	//       "location": "path",
60507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60508	//       "required": true,
60509	//       "type": "string"
60510	//     },
60511	//     "project": {
60512	//       "description": "Project ID for this request.",
60513	//       "location": "path",
60514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60515	//       "required": true,
60516	//       "type": "string"
60517	//     },
60518	//     "requestId": {
60519	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60520	//       "location": "query",
60521	//       "type": "string"
60522	//     },
60523	//     "zone": {
60524	//       "description": "The name of the zone for this request.",
60525	//       "location": "path",
60526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60527	//       "required": true,
60528	//       "type": "string"
60529	//     }
60530	//   },
60531	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
60532	//   "request": {
60533	//     "$ref": "DisksResizeRequest"
60534	//   },
60535	//   "response": {
60536	//     "$ref": "Operation"
60537	//   },
60538	//   "scopes": [
60539	//     "https://www.googleapis.com/auth/cloud-platform",
60540	//     "https://www.googleapis.com/auth/compute"
60541	//   ]
60542	// }
60543
60544}
60545
60546// method id "compute.disks.setIamPolicy":
60547
60548type DisksSetIamPolicyCall struct {
60549	s                    *Service
60550	project              string
60551	zone                 string
60552	resource             string
60553	zonesetpolicyrequest *ZoneSetPolicyRequest
60554	urlParams_           gensupport.URLParams
60555	ctx_                 context.Context
60556	header_              http.Header
60557}
60558
60559// SetIamPolicy: Sets the access control policy on the specified
60560// resource. Replaces any existing policy.
60561func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
60562	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60563	c.project = project
60564	c.zone = zone
60565	c.resource = resource
60566	c.zonesetpolicyrequest = zonesetpolicyrequest
60567	return c
60568}
60569
60570// Fields allows partial responses to be retrieved. See
60571// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60572// for more information.
60573func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
60574	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60575	return c
60576}
60577
60578// Context sets the context to be used in this call's Do method. Any
60579// pending HTTP request will be aborted if the provided context is
60580// canceled.
60581func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
60582	c.ctx_ = ctx
60583	return c
60584}
60585
60586// Header returns an http.Header that can be modified by the caller to
60587// add HTTP headers to the request.
60588func (c *DisksSetIamPolicyCall) Header() http.Header {
60589	if c.header_ == nil {
60590		c.header_ = make(http.Header)
60591	}
60592	return c.header_
60593}
60594
60595func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
60596	reqHeaders := make(http.Header)
60597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
60598	for k, v := range c.header_ {
60599		reqHeaders[k] = v
60600	}
60601	reqHeaders.Set("User-Agent", c.s.userAgent())
60602	var body io.Reader = nil
60603	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
60604	if err != nil {
60605		return nil, err
60606	}
60607	reqHeaders.Set("Content-Type", "application/json")
60608	c.urlParams_.Set("alt", alt)
60609	c.urlParams_.Set("prettyPrint", "false")
60610	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setIamPolicy")
60611	urls += "?" + c.urlParams_.Encode()
60612	req, err := http.NewRequest("POST", urls, body)
60613	if err != nil {
60614		return nil, err
60615	}
60616	req.Header = reqHeaders
60617	googleapi.Expand(req.URL, map[string]string{
60618		"project":  c.project,
60619		"zone":     c.zone,
60620		"resource": c.resource,
60621	})
60622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60623}
60624
60625// Do executes the "compute.disks.setIamPolicy" call.
60626// Exactly one of *Policy or error will be non-nil. Any non-2xx status
60627// code is an error. Response headers are in either
60628// *Policy.ServerResponse.Header or (if a response was returned at all)
60629// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
60630// check whether the returned error was because http.StatusNotModified
60631// was returned.
60632func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
60633	gensupport.SetOptions(c.urlParams_, opts...)
60634	res, err := c.doRequest("json")
60635	if res != nil && res.StatusCode == http.StatusNotModified {
60636		if res.Body != nil {
60637			res.Body.Close()
60638		}
60639		return nil, &googleapi.Error{
60640			Code:   res.StatusCode,
60641			Header: res.Header,
60642		}
60643	}
60644	if err != nil {
60645		return nil, err
60646	}
60647	defer googleapi.CloseBody(res)
60648	if err := googleapi.CheckResponse(res); err != nil {
60649		return nil, err
60650	}
60651	ret := &Policy{
60652		ServerResponse: googleapi.ServerResponse{
60653			Header:         res.Header,
60654			HTTPStatusCode: res.StatusCode,
60655		},
60656	}
60657	target := &ret
60658	if err := gensupport.DecodeResponse(target, res); err != nil {
60659		return nil, err
60660	}
60661	return ret, nil
60662	// {
60663	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
60664	//   "httpMethod": "POST",
60665	//   "id": "compute.disks.setIamPolicy",
60666	//   "parameterOrder": [
60667	//     "project",
60668	//     "zone",
60669	//     "resource"
60670	//   ],
60671	//   "parameters": {
60672	//     "project": {
60673	//       "description": "Project ID for this request.",
60674	//       "location": "path",
60675	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60676	//       "required": true,
60677	//       "type": "string"
60678	//     },
60679	//     "resource": {
60680	//       "description": "Name or id of the resource for this request.",
60681	//       "location": "path",
60682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60683	//       "required": true,
60684	//       "type": "string"
60685	//     },
60686	//     "zone": {
60687	//       "description": "The name of the zone for this request.",
60688	//       "location": "path",
60689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60690	//       "required": true,
60691	//       "type": "string"
60692	//     }
60693	//   },
60694	//   "path": "{project}/zones/{zone}/disks/{resource}/setIamPolicy",
60695	//   "request": {
60696	//     "$ref": "ZoneSetPolicyRequest"
60697	//   },
60698	//   "response": {
60699	//     "$ref": "Policy"
60700	//   },
60701	//   "scopes": [
60702	//     "https://www.googleapis.com/auth/cloud-platform",
60703	//     "https://www.googleapis.com/auth/compute"
60704	//   ]
60705	// }
60706
60707}
60708
60709// method id "compute.disks.setLabels":
60710
60711type DisksSetLabelsCall struct {
60712	s                    *Service
60713	project              string
60714	zone                 string
60715	resource             string
60716	zonesetlabelsrequest *ZoneSetLabelsRequest
60717	urlParams_           gensupport.URLParams
60718	ctx_                 context.Context
60719	header_              http.Header
60720}
60721
60722// SetLabels: Sets the labels on a disk. To learn more about labels,
60723// read the Labeling Resources documentation.
60724func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
60725	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60726	c.project = project
60727	c.zone = zone
60728	c.resource = resource
60729	c.zonesetlabelsrequest = zonesetlabelsrequest
60730	return c
60731}
60732
60733// RequestId sets the optional parameter "requestId": An optional
60734// request ID to identify requests. Specify a unique request ID so that
60735// if you must retry your request, the server will know to ignore the
60736// request if it has already been completed.
60737//
60738// For example, consider a situation where you make an initial request
60739// and the request times out. If you make the request again with the
60740// same request ID, the server can check if original operation with the
60741// same request ID was received, and if so, will ignore the second
60742// request. This prevents clients from accidentally creating duplicate
60743// commitments.
60744//
60745// The request ID must be a valid UUID with the exception that zero UUID
60746// is not supported (00000000-0000-0000-0000-000000000000).
60747func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
60748	c.urlParams_.Set("requestId", requestId)
60749	return c
60750}
60751
60752// Fields allows partial responses to be retrieved. See
60753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60754// for more information.
60755func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
60756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60757	return c
60758}
60759
60760// Context sets the context to be used in this call's Do method. Any
60761// pending HTTP request will be aborted if the provided context is
60762// canceled.
60763func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
60764	c.ctx_ = ctx
60765	return c
60766}
60767
60768// Header returns an http.Header that can be modified by the caller to
60769// add HTTP headers to the request.
60770func (c *DisksSetLabelsCall) Header() http.Header {
60771	if c.header_ == nil {
60772		c.header_ = make(http.Header)
60773	}
60774	return c.header_
60775}
60776
60777func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
60778	reqHeaders := make(http.Header)
60779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
60780	for k, v := range c.header_ {
60781		reqHeaders[k] = v
60782	}
60783	reqHeaders.Set("User-Agent", c.s.userAgent())
60784	var body io.Reader = nil
60785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
60786	if err != nil {
60787		return nil, err
60788	}
60789	reqHeaders.Set("Content-Type", "application/json")
60790	c.urlParams_.Set("alt", alt)
60791	c.urlParams_.Set("prettyPrint", "false")
60792	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
60793	urls += "?" + c.urlParams_.Encode()
60794	req, err := http.NewRequest("POST", urls, body)
60795	if err != nil {
60796		return nil, err
60797	}
60798	req.Header = reqHeaders
60799	googleapi.Expand(req.URL, map[string]string{
60800		"project":  c.project,
60801		"zone":     c.zone,
60802		"resource": c.resource,
60803	})
60804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60805}
60806
60807// Do executes the "compute.disks.setLabels" call.
60808// Exactly one of *Operation or error will be non-nil. Any non-2xx
60809// status code is an error. Response headers are in either
60810// *Operation.ServerResponse.Header or (if a response was returned at
60811// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60812// to check whether the returned error was because
60813// http.StatusNotModified was returned.
60814func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60815	gensupport.SetOptions(c.urlParams_, opts...)
60816	res, err := c.doRequest("json")
60817	if res != nil && res.StatusCode == http.StatusNotModified {
60818		if res.Body != nil {
60819			res.Body.Close()
60820		}
60821		return nil, &googleapi.Error{
60822			Code:   res.StatusCode,
60823			Header: res.Header,
60824		}
60825	}
60826	if err != nil {
60827		return nil, err
60828	}
60829	defer googleapi.CloseBody(res)
60830	if err := googleapi.CheckResponse(res); err != nil {
60831		return nil, err
60832	}
60833	ret := &Operation{
60834		ServerResponse: googleapi.ServerResponse{
60835			Header:         res.Header,
60836			HTTPStatusCode: res.StatusCode,
60837		},
60838	}
60839	target := &ret
60840	if err := gensupport.DecodeResponse(target, res); err != nil {
60841		return nil, err
60842	}
60843	return ret, nil
60844	// {
60845	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
60846	//   "httpMethod": "POST",
60847	//   "id": "compute.disks.setLabels",
60848	//   "parameterOrder": [
60849	//     "project",
60850	//     "zone",
60851	//     "resource"
60852	//   ],
60853	//   "parameters": {
60854	//     "project": {
60855	//       "description": "Project ID for this request.",
60856	//       "location": "path",
60857	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60858	//       "required": true,
60859	//       "type": "string"
60860	//     },
60861	//     "requestId": {
60862	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60863	//       "location": "query",
60864	//       "type": "string"
60865	//     },
60866	//     "resource": {
60867	//       "description": "Name or id of the resource for this request.",
60868	//       "location": "path",
60869	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60870	//       "required": true,
60871	//       "type": "string"
60872	//     },
60873	//     "zone": {
60874	//       "description": "The name of the zone for this request.",
60875	//       "location": "path",
60876	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60877	//       "required": true,
60878	//       "type": "string"
60879	//     }
60880	//   },
60881	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
60882	//   "request": {
60883	//     "$ref": "ZoneSetLabelsRequest"
60884	//   },
60885	//   "response": {
60886	//     "$ref": "Operation"
60887	//   },
60888	//   "scopes": [
60889	//     "https://www.googleapis.com/auth/cloud-platform",
60890	//     "https://www.googleapis.com/auth/compute"
60891	//   ]
60892	// }
60893
60894}
60895
60896// method id "compute.disks.testIamPermissions":
60897
60898type DisksTestIamPermissionsCall struct {
60899	s                      *Service
60900	project                string
60901	zone                   string
60902	resource               string
60903	testpermissionsrequest *TestPermissionsRequest
60904	urlParams_             gensupport.URLParams
60905	ctx_                   context.Context
60906	header_                http.Header
60907}
60908
60909// TestIamPermissions: Returns permissions that a caller has on the
60910// specified resource.
60911func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
60912	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60913	c.project = project
60914	c.zone = zone
60915	c.resource = resource
60916	c.testpermissionsrequest = testpermissionsrequest
60917	return c
60918}
60919
60920// Fields allows partial responses to be retrieved. See
60921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60922// for more information.
60923func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
60924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60925	return c
60926}
60927
60928// Context sets the context to be used in this call's Do method. Any
60929// pending HTTP request will be aborted if the provided context is
60930// canceled.
60931func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
60932	c.ctx_ = ctx
60933	return c
60934}
60935
60936// Header returns an http.Header that can be modified by the caller to
60937// add HTTP headers to the request.
60938func (c *DisksTestIamPermissionsCall) Header() http.Header {
60939	if c.header_ == nil {
60940		c.header_ = make(http.Header)
60941	}
60942	return c.header_
60943}
60944
60945func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
60946	reqHeaders := make(http.Header)
60947	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
60948	for k, v := range c.header_ {
60949		reqHeaders[k] = v
60950	}
60951	reqHeaders.Set("User-Agent", c.s.userAgent())
60952	var body io.Reader = nil
60953	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
60954	if err != nil {
60955		return nil, err
60956	}
60957	reqHeaders.Set("Content-Type", "application/json")
60958	c.urlParams_.Set("alt", alt)
60959	c.urlParams_.Set("prettyPrint", "false")
60960	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/testIamPermissions")
60961	urls += "?" + c.urlParams_.Encode()
60962	req, err := http.NewRequest("POST", urls, body)
60963	if err != nil {
60964		return nil, err
60965	}
60966	req.Header = reqHeaders
60967	googleapi.Expand(req.URL, map[string]string{
60968		"project":  c.project,
60969		"zone":     c.zone,
60970		"resource": c.resource,
60971	})
60972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60973}
60974
60975// Do executes the "compute.disks.testIamPermissions" call.
60976// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
60977// non-2xx status code is an error. Response headers are in either
60978// *TestPermissionsResponse.ServerResponse.Header or (if a response was
60979// returned at all) in error.(*googleapi.Error).Header. Use
60980// googleapi.IsNotModified to check whether the returned error was
60981// because http.StatusNotModified was returned.
60982func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
60983	gensupport.SetOptions(c.urlParams_, opts...)
60984	res, err := c.doRequest("json")
60985	if res != nil && res.StatusCode == http.StatusNotModified {
60986		if res.Body != nil {
60987			res.Body.Close()
60988		}
60989		return nil, &googleapi.Error{
60990			Code:   res.StatusCode,
60991			Header: res.Header,
60992		}
60993	}
60994	if err != nil {
60995		return nil, err
60996	}
60997	defer googleapi.CloseBody(res)
60998	if err := googleapi.CheckResponse(res); err != nil {
60999		return nil, err
61000	}
61001	ret := &TestPermissionsResponse{
61002		ServerResponse: googleapi.ServerResponse{
61003			Header:         res.Header,
61004			HTTPStatusCode: res.StatusCode,
61005		},
61006	}
61007	target := &ret
61008	if err := gensupport.DecodeResponse(target, res); err != nil {
61009		return nil, err
61010	}
61011	return ret, nil
61012	// {
61013	//   "description": "Returns permissions that a caller has on the specified resource.",
61014	//   "httpMethod": "POST",
61015	//   "id": "compute.disks.testIamPermissions",
61016	//   "parameterOrder": [
61017	//     "project",
61018	//     "zone",
61019	//     "resource"
61020	//   ],
61021	//   "parameters": {
61022	//     "project": {
61023	//       "description": "Project ID for this request.",
61024	//       "location": "path",
61025	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61026	//       "required": true,
61027	//       "type": "string"
61028	//     },
61029	//     "resource": {
61030	//       "description": "Name or id of the resource for this request.",
61031	//       "location": "path",
61032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61033	//       "required": true,
61034	//       "type": "string"
61035	//     },
61036	//     "zone": {
61037	//       "description": "The name of the zone for this request.",
61038	//       "location": "path",
61039	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61040	//       "required": true,
61041	//       "type": "string"
61042	//     }
61043	//   },
61044	//   "path": "{project}/zones/{zone}/disks/{resource}/testIamPermissions",
61045	//   "request": {
61046	//     "$ref": "TestPermissionsRequest"
61047	//   },
61048	//   "response": {
61049	//     "$ref": "TestPermissionsResponse"
61050	//   },
61051	//   "scopes": [
61052	//     "https://www.googleapis.com/auth/cloud-platform",
61053	//     "https://www.googleapis.com/auth/compute",
61054	//     "https://www.googleapis.com/auth/compute.readonly"
61055	//   ]
61056	// }
61057
61058}
61059
61060// method id "compute.externalVpnGateways.delete":
61061
61062type ExternalVpnGatewaysDeleteCall struct {
61063	s                  *Service
61064	project            string
61065	externalVpnGateway string
61066	urlParams_         gensupport.URLParams
61067	ctx_               context.Context
61068	header_            http.Header
61069}
61070
61071// Delete: Deletes the specified externalVpnGateway.
61072func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
61073	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61074	c.project = project
61075	c.externalVpnGateway = externalVpnGateway
61076	return c
61077}
61078
61079// RequestId sets the optional parameter "requestId": An optional
61080// request ID to identify requests. Specify a unique request ID so that
61081// if you must retry your request, the server will know to ignore the
61082// request if it has already been completed.
61083//
61084// For example, consider a situation where you make an initial request
61085// and the request times out. If you make the request again with the
61086// same request ID, the server can check if original operation with the
61087// same request ID was received, and if so, will ignore the second
61088// request. This prevents clients from accidentally creating duplicate
61089// commitments.
61090//
61091// The request ID must be a valid UUID with the exception that zero UUID
61092// is not supported (00000000-0000-0000-0000-000000000000).
61093func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
61094	c.urlParams_.Set("requestId", requestId)
61095	return c
61096}
61097
61098// Fields allows partial responses to be retrieved. See
61099// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61100// for more information.
61101func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
61102	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61103	return c
61104}
61105
61106// Context sets the context to be used in this call's Do method. Any
61107// pending HTTP request will be aborted if the provided context is
61108// canceled.
61109func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
61110	c.ctx_ = ctx
61111	return c
61112}
61113
61114// Header returns an http.Header that can be modified by the caller to
61115// add HTTP headers to the request.
61116func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
61117	if c.header_ == nil {
61118		c.header_ = make(http.Header)
61119	}
61120	return c.header_
61121}
61122
61123func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
61124	reqHeaders := make(http.Header)
61125	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
61126	for k, v := range c.header_ {
61127		reqHeaders[k] = v
61128	}
61129	reqHeaders.Set("User-Agent", c.s.userAgent())
61130	var body io.Reader = nil
61131	c.urlParams_.Set("alt", alt)
61132	c.urlParams_.Set("prettyPrint", "false")
61133	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
61134	urls += "?" + c.urlParams_.Encode()
61135	req, err := http.NewRequest("DELETE", urls, body)
61136	if err != nil {
61137		return nil, err
61138	}
61139	req.Header = reqHeaders
61140	googleapi.Expand(req.URL, map[string]string{
61141		"project":            c.project,
61142		"externalVpnGateway": c.externalVpnGateway,
61143	})
61144	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61145}
61146
61147// Do executes the "compute.externalVpnGateways.delete" call.
61148// Exactly one of *Operation or error will be non-nil. Any non-2xx
61149// status code is an error. Response headers are in either
61150// *Operation.ServerResponse.Header or (if a response was returned at
61151// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61152// to check whether the returned error was because
61153// http.StatusNotModified was returned.
61154func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61155	gensupport.SetOptions(c.urlParams_, opts...)
61156	res, err := c.doRequest("json")
61157	if res != nil && res.StatusCode == http.StatusNotModified {
61158		if res.Body != nil {
61159			res.Body.Close()
61160		}
61161		return nil, &googleapi.Error{
61162			Code:   res.StatusCode,
61163			Header: res.Header,
61164		}
61165	}
61166	if err != nil {
61167		return nil, err
61168	}
61169	defer googleapi.CloseBody(res)
61170	if err := googleapi.CheckResponse(res); err != nil {
61171		return nil, err
61172	}
61173	ret := &Operation{
61174		ServerResponse: googleapi.ServerResponse{
61175			Header:         res.Header,
61176			HTTPStatusCode: res.StatusCode,
61177		},
61178	}
61179	target := &ret
61180	if err := gensupport.DecodeResponse(target, res); err != nil {
61181		return nil, err
61182	}
61183	return ret, nil
61184	// {
61185	//   "description": "Deletes the specified externalVpnGateway.",
61186	//   "httpMethod": "DELETE",
61187	//   "id": "compute.externalVpnGateways.delete",
61188	//   "parameterOrder": [
61189	//     "project",
61190	//     "externalVpnGateway"
61191	//   ],
61192	//   "parameters": {
61193	//     "externalVpnGateway": {
61194	//       "description": "Name of the externalVpnGateways to delete.",
61195	//       "location": "path",
61196	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61197	//       "required": true,
61198	//       "type": "string"
61199	//     },
61200	//     "project": {
61201	//       "description": "Project ID for this request.",
61202	//       "location": "path",
61203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61204	//       "required": true,
61205	//       "type": "string"
61206	//     },
61207	//     "requestId": {
61208	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61209	//       "location": "query",
61210	//       "type": "string"
61211	//     }
61212	//   },
61213	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
61214	//   "response": {
61215	//     "$ref": "Operation"
61216	//   },
61217	//   "scopes": [
61218	//     "https://www.googleapis.com/auth/cloud-platform",
61219	//     "https://www.googleapis.com/auth/compute"
61220	//   ]
61221	// }
61222
61223}
61224
61225// method id "compute.externalVpnGateways.get":
61226
61227type ExternalVpnGatewaysGetCall struct {
61228	s                  *Service
61229	project            string
61230	externalVpnGateway string
61231	urlParams_         gensupport.URLParams
61232	ifNoneMatch_       string
61233	ctx_               context.Context
61234	header_            http.Header
61235}
61236
61237// Get: Returns the specified externalVpnGateway. Get a list of
61238// available externalVpnGateways by making a list() request.
61239func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
61240	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61241	c.project = project
61242	c.externalVpnGateway = externalVpnGateway
61243	return c
61244}
61245
61246// Fields allows partial responses to be retrieved. See
61247// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61248// for more information.
61249func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
61250	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61251	return c
61252}
61253
61254// IfNoneMatch sets the optional parameter which makes the operation
61255// fail if the object's ETag matches the given value. This is useful for
61256// getting updates only after the object has changed since the last
61257// request. Use googleapi.IsNotModified to check whether the response
61258// error from Do is the result of In-None-Match.
61259func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
61260	c.ifNoneMatch_ = entityTag
61261	return c
61262}
61263
61264// Context sets the context to be used in this call's Do method. Any
61265// pending HTTP request will be aborted if the provided context is
61266// canceled.
61267func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
61268	c.ctx_ = ctx
61269	return c
61270}
61271
61272// Header returns an http.Header that can be modified by the caller to
61273// add HTTP headers to the request.
61274func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
61275	if c.header_ == nil {
61276		c.header_ = make(http.Header)
61277	}
61278	return c.header_
61279}
61280
61281func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
61282	reqHeaders := make(http.Header)
61283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
61284	for k, v := range c.header_ {
61285		reqHeaders[k] = v
61286	}
61287	reqHeaders.Set("User-Agent", c.s.userAgent())
61288	if c.ifNoneMatch_ != "" {
61289		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61290	}
61291	var body io.Reader = nil
61292	c.urlParams_.Set("alt", alt)
61293	c.urlParams_.Set("prettyPrint", "false")
61294	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
61295	urls += "?" + c.urlParams_.Encode()
61296	req, err := http.NewRequest("GET", urls, body)
61297	if err != nil {
61298		return nil, err
61299	}
61300	req.Header = reqHeaders
61301	googleapi.Expand(req.URL, map[string]string{
61302		"project":            c.project,
61303		"externalVpnGateway": c.externalVpnGateway,
61304	})
61305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61306}
61307
61308// Do executes the "compute.externalVpnGateways.get" call.
61309// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
61310// non-2xx status code is an error. Response headers are in either
61311// *ExternalVpnGateway.ServerResponse.Header or (if a response was
61312// returned at all) in error.(*googleapi.Error).Header. Use
61313// googleapi.IsNotModified to check whether the returned error was
61314// because http.StatusNotModified was returned.
61315func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
61316	gensupport.SetOptions(c.urlParams_, opts...)
61317	res, err := c.doRequest("json")
61318	if res != nil && res.StatusCode == http.StatusNotModified {
61319		if res.Body != nil {
61320			res.Body.Close()
61321		}
61322		return nil, &googleapi.Error{
61323			Code:   res.StatusCode,
61324			Header: res.Header,
61325		}
61326	}
61327	if err != nil {
61328		return nil, err
61329	}
61330	defer googleapi.CloseBody(res)
61331	if err := googleapi.CheckResponse(res); err != nil {
61332		return nil, err
61333	}
61334	ret := &ExternalVpnGateway{
61335		ServerResponse: googleapi.ServerResponse{
61336			Header:         res.Header,
61337			HTTPStatusCode: res.StatusCode,
61338		},
61339	}
61340	target := &ret
61341	if err := gensupport.DecodeResponse(target, res); err != nil {
61342		return nil, err
61343	}
61344	return ret, nil
61345	// {
61346	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
61347	//   "httpMethod": "GET",
61348	//   "id": "compute.externalVpnGateways.get",
61349	//   "parameterOrder": [
61350	//     "project",
61351	//     "externalVpnGateway"
61352	//   ],
61353	//   "parameters": {
61354	//     "externalVpnGateway": {
61355	//       "description": "Name of the externalVpnGateway to return.",
61356	//       "location": "path",
61357	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61358	//       "required": true,
61359	//       "type": "string"
61360	//     },
61361	//     "project": {
61362	//       "description": "Project ID for this request.",
61363	//       "location": "path",
61364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61365	//       "required": true,
61366	//       "type": "string"
61367	//     }
61368	//   },
61369	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
61370	//   "response": {
61371	//     "$ref": "ExternalVpnGateway"
61372	//   },
61373	//   "scopes": [
61374	//     "https://www.googleapis.com/auth/cloud-platform",
61375	//     "https://www.googleapis.com/auth/compute",
61376	//     "https://www.googleapis.com/auth/compute.readonly"
61377	//   ]
61378	// }
61379
61380}
61381
61382// method id "compute.externalVpnGateways.insert":
61383
61384type ExternalVpnGatewaysInsertCall struct {
61385	s                  *Service
61386	project            string
61387	externalvpngateway *ExternalVpnGateway
61388	urlParams_         gensupport.URLParams
61389	ctx_               context.Context
61390	header_            http.Header
61391}
61392
61393// Insert: Creates a ExternalVpnGateway in the specified project using
61394// the data included in the request.
61395func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
61396	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61397	c.project = project
61398	c.externalvpngateway = externalvpngateway
61399	return c
61400}
61401
61402// RequestId sets the optional parameter "requestId": An optional
61403// request ID to identify requests. Specify a unique request ID so that
61404// if you must retry your request, the server will know to ignore the
61405// request if it has already been completed.
61406//
61407// For example, consider a situation where you make an initial request
61408// and the request times out. If you make the request again with the
61409// same request ID, the server can check if original operation with the
61410// same request ID was received, and if so, will ignore the second
61411// request. This prevents clients from accidentally creating duplicate
61412// commitments.
61413//
61414// The request ID must be a valid UUID with the exception that zero UUID
61415// is not supported (00000000-0000-0000-0000-000000000000).
61416func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
61417	c.urlParams_.Set("requestId", requestId)
61418	return c
61419}
61420
61421// Fields allows partial responses to be retrieved. See
61422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61423// for more information.
61424func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
61425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61426	return c
61427}
61428
61429// Context sets the context to be used in this call's Do method. Any
61430// pending HTTP request will be aborted if the provided context is
61431// canceled.
61432func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
61433	c.ctx_ = ctx
61434	return c
61435}
61436
61437// Header returns an http.Header that can be modified by the caller to
61438// add HTTP headers to the request.
61439func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
61440	if c.header_ == nil {
61441		c.header_ = make(http.Header)
61442	}
61443	return c.header_
61444}
61445
61446func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
61447	reqHeaders := make(http.Header)
61448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
61449	for k, v := range c.header_ {
61450		reqHeaders[k] = v
61451	}
61452	reqHeaders.Set("User-Agent", c.s.userAgent())
61453	var body io.Reader = nil
61454	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
61455	if err != nil {
61456		return nil, err
61457	}
61458	reqHeaders.Set("Content-Type", "application/json")
61459	c.urlParams_.Set("alt", alt)
61460	c.urlParams_.Set("prettyPrint", "false")
61461	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
61462	urls += "?" + c.urlParams_.Encode()
61463	req, err := http.NewRequest("POST", urls, body)
61464	if err != nil {
61465		return nil, err
61466	}
61467	req.Header = reqHeaders
61468	googleapi.Expand(req.URL, map[string]string{
61469		"project": c.project,
61470	})
61471	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61472}
61473
61474// Do executes the "compute.externalVpnGateways.insert" call.
61475// Exactly one of *Operation or error will be non-nil. Any non-2xx
61476// status code is an error. Response headers are in either
61477// *Operation.ServerResponse.Header or (if a response was returned at
61478// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61479// to check whether the returned error was because
61480// http.StatusNotModified was returned.
61481func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61482	gensupport.SetOptions(c.urlParams_, opts...)
61483	res, err := c.doRequest("json")
61484	if res != nil && res.StatusCode == http.StatusNotModified {
61485		if res.Body != nil {
61486			res.Body.Close()
61487		}
61488		return nil, &googleapi.Error{
61489			Code:   res.StatusCode,
61490			Header: res.Header,
61491		}
61492	}
61493	if err != nil {
61494		return nil, err
61495	}
61496	defer googleapi.CloseBody(res)
61497	if err := googleapi.CheckResponse(res); err != nil {
61498		return nil, err
61499	}
61500	ret := &Operation{
61501		ServerResponse: googleapi.ServerResponse{
61502			Header:         res.Header,
61503			HTTPStatusCode: res.StatusCode,
61504		},
61505	}
61506	target := &ret
61507	if err := gensupport.DecodeResponse(target, res); err != nil {
61508		return nil, err
61509	}
61510	return ret, nil
61511	// {
61512	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
61513	//   "httpMethod": "POST",
61514	//   "id": "compute.externalVpnGateways.insert",
61515	//   "parameterOrder": [
61516	//     "project"
61517	//   ],
61518	//   "parameters": {
61519	//     "project": {
61520	//       "description": "Project ID for this request.",
61521	//       "location": "path",
61522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61523	//       "required": true,
61524	//       "type": "string"
61525	//     },
61526	//     "requestId": {
61527	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61528	//       "location": "query",
61529	//       "type": "string"
61530	//     }
61531	//   },
61532	//   "path": "{project}/global/externalVpnGateways",
61533	//   "request": {
61534	//     "$ref": "ExternalVpnGateway"
61535	//   },
61536	//   "response": {
61537	//     "$ref": "Operation"
61538	//   },
61539	//   "scopes": [
61540	//     "https://www.googleapis.com/auth/cloud-platform",
61541	//     "https://www.googleapis.com/auth/compute"
61542	//   ]
61543	// }
61544
61545}
61546
61547// method id "compute.externalVpnGateways.list":
61548
61549type ExternalVpnGatewaysListCall struct {
61550	s            *Service
61551	project      string
61552	urlParams_   gensupport.URLParams
61553	ifNoneMatch_ string
61554	ctx_         context.Context
61555	header_      http.Header
61556}
61557
61558// List: Retrieves the list of ExternalVpnGateway available to the
61559// specified project.
61560func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
61561	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61562	c.project = project
61563	return c
61564}
61565
61566// Filter sets the optional parameter "filter": A filter expression that
61567// filters resources listed in the response. The expression must specify
61568// the field name, a comparison operator, and the value that you want to
61569// use for filtering. The value must be a string, a number, or a
61570// boolean. The comparison operator must be either `=`, `!=`, `>`, or
61571// `<`.
61572//
61573// For example, if you are filtering Compute Engine instances, you can
61574// exclude instances named `example-instance` by specifying `name !=
61575// example-instance`.
61576//
61577// You can also filter nested fields. For example, you could specify
61578// `scheduling.automaticRestart = false` to include instances only if
61579// they are not scheduled for automatic restarts. You can use filtering
61580// on nested fields to filter based on resource labels.
61581//
61582// To filter on multiple expressions, provide each separate expression
61583// within parentheses. For example: ``` (scheduling.automaticRestart =
61584// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
61585// is an `AND` expression. However, you can include `AND` and `OR`
61586// expressions explicitly. For example: ``` (cpuPlatform = "Intel
61587// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
61588// (scheduling.automaticRestart = true) ```
61589func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
61590	c.urlParams_.Set("filter", filter)
61591	return c
61592}
61593
61594// MaxResults sets the optional parameter "maxResults": The maximum
61595// number of results per page that should be returned. If the number of
61596// available results is larger than `maxResults`, Compute Engine returns
61597// a `nextPageToken` that can be used to get the next page of results in
61598// subsequent list requests. Acceptable values are `0` to `500`,
61599// inclusive. (Default: `500`)
61600func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
61601	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61602	return c
61603}
61604
61605// OrderBy sets the optional parameter "orderBy": Sorts list results by
61606// a certain order. By default, results are returned in alphanumerical
61607// order based on the resource name.
61608//
61609// You can also sort results in descending order based on the creation
61610// timestamp using `orderBy="creationTimestamp desc". This sorts
61611// results based on the `creationTimestamp` field in reverse
61612// chronological order (newest result first). Use this to sort resources
61613// like operations so that the newest operation is returned
61614// first.
61615//
61616// Currently, only sorting by `name` or `creationTimestamp desc` is
61617// supported.
61618func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
61619	c.urlParams_.Set("orderBy", orderBy)
61620	return c
61621}
61622
61623// PageToken sets the optional parameter "pageToken": Specifies a page
61624// token to use. Set `pageToken` to the `nextPageToken` returned by a
61625// previous list request to get the next page of results.
61626func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
61627	c.urlParams_.Set("pageToken", pageToken)
61628	return c
61629}
61630
61631// ReturnPartialSuccess sets the optional parameter
61632// "returnPartialSuccess": Opt-in for partial success behavior which
61633// provides partial results in case of failure. The default value is
61634// false and the logic is the same as today.
61635func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall {
61636	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
61637	return c
61638}
61639
61640// Fields allows partial responses to be retrieved. See
61641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61642// for more information.
61643func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
61644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61645	return c
61646}
61647
61648// IfNoneMatch sets the optional parameter which makes the operation
61649// fail if the object's ETag matches the given value. This is useful for
61650// getting updates only after the object has changed since the last
61651// request. Use googleapi.IsNotModified to check whether the response
61652// error from Do is the result of In-None-Match.
61653func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
61654	c.ifNoneMatch_ = entityTag
61655	return c
61656}
61657
61658// Context sets the context to be used in this call's Do method. Any
61659// pending HTTP request will be aborted if the provided context is
61660// canceled.
61661func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
61662	c.ctx_ = ctx
61663	return c
61664}
61665
61666// Header returns an http.Header that can be modified by the caller to
61667// add HTTP headers to the request.
61668func (c *ExternalVpnGatewaysListCall) Header() http.Header {
61669	if c.header_ == nil {
61670		c.header_ = make(http.Header)
61671	}
61672	return c.header_
61673}
61674
61675func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
61676	reqHeaders := make(http.Header)
61677	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
61678	for k, v := range c.header_ {
61679		reqHeaders[k] = v
61680	}
61681	reqHeaders.Set("User-Agent", c.s.userAgent())
61682	if c.ifNoneMatch_ != "" {
61683		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61684	}
61685	var body io.Reader = nil
61686	c.urlParams_.Set("alt", alt)
61687	c.urlParams_.Set("prettyPrint", "false")
61688	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
61689	urls += "?" + c.urlParams_.Encode()
61690	req, err := http.NewRequest("GET", urls, body)
61691	if err != nil {
61692		return nil, err
61693	}
61694	req.Header = reqHeaders
61695	googleapi.Expand(req.URL, map[string]string{
61696		"project": c.project,
61697	})
61698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61699}
61700
61701// Do executes the "compute.externalVpnGateways.list" call.
61702// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
61703// non-2xx status code is an error. Response headers are in either
61704// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
61705// returned at all) in error.(*googleapi.Error).Header. Use
61706// googleapi.IsNotModified to check whether the returned error was
61707// because http.StatusNotModified was returned.
61708func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
61709	gensupport.SetOptions(c.urlParams_, opts...)
61710	res, err := c.doRequest("json")
61711	if res != nil && res.StatusCode == http.StatusNotModified {
61712		if res.Body != nil {
61713			res.Body.Close()
61714		}
61715		return nil, &googleapi.Error{
61716			Code:   res.StatusCode,
61717			Header: res.Header,
61718		}
61719	}
61720	if err != nil {
61721		return nil, err
61722	}
61723	defer googleapi.CloseBody(res)
61724	if err := googleapi.CheckResponse(res); err != nil {
61725		return nil, err
61726	}
61727	ret := &ExternalVpnGatewayList{
61728		ServerResponse: googleapi.ServerResponse{
61729			Header:         res.Header,
61730			HTTPStatusCode: res.StatusCode,
61731		},
61732	}
61733	target := &ret
61734	if err := gensupport.DecodeResponse(target, res); err != nil {
61735		return nil, err
61736	}
61737	return ret, nil
61738	// {
61739	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
61740	//   "httpMethod": "GET",
61741	//   "id": "compute.externalVpnGateways.list",
61742	//   "parameterOrder": [
61743	//     "project"
61744	//   ],
61745	//   "parameters": {
61746	//     "filter": {
61747	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
61748	//       "location": "query",
61749	//       "type": "string"
61750	//     },
61751	//     "maxResults": {
61752	//       "default": "500",
61753	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
61754	//       "format": "uint32",
61755	//       "location": "query",
61756	//       "minimum": "0",
61757	//       "type": "integer"
61758	//     },
61759	//     "orderBy": {
61760	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
61761	//       "location": "query",
61762	//       "type": "string"
61763	//     },
61764	//     "pageToken": {
61765	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
61766	//       "location": "query",
61767	//       "type": "string"
61768	//     },
61769	//     "project": {
61770	//       "description": "Project ID for this request.",
61771	//       "location": "path",
61772	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61773	//       "required": true,
61774	//       "type": "string"
61775	//     },
61776	//     "returnPartialSuccess": {
61777	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
61778	//       "location": "query",
61779	//       "type": "boolean"
61780	//     }
61781	//   },
61782	//   "path": "{project}/global/externalVpnGateways",
61783	//   "response": {
61784	//     "$ref": "ExternalVpnGatewayList"
61785	//   },
61786	//   "scopes": [
61787	//     "https://www.googleapis.com/auth/cloud-platform",
61788	//     "https://www.googleapis.com/auth/compute",
61789	//     "https://www.googleapis.com/auth/compute.readonly"
61790	//   ]
61791	// }
61792
61793}
61794
61795// Pages invokes f for each page of results.
61796// A non-nil error returned from f will halt the iteration.
61797// The provided context supersedes any context provided to the Context method.
61798func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
61799	c.ctx_ = ctx
61800	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61801	for {
61802		x, err := c.Do()
61803		if err != nil {
61804			return err
61805		}
61806		if err := f(x); err != nil {
61807			return err
61808		}
61809		if x.NextPageToken == "" {
61810			return nil
61811		}
61812		c.PageToken(x.NextPageToken)
61813	}
61814}
61815
61816// method id "compute.externalVpnGateways.setLabels":
61817
61818type ExternalVpnGatewaysSetLabelsCall struct {
61819	s                      *Service
61820	project                string
61821	resource               string
61822	globalsetlabelsrequest *GlobalSetLabelsRequest
61823	urlParams_             gensupport.URLParams
61824	ctx_                   context.Context
61825	header_                http.Header
61826}
61827
61828// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
61829// about labels, read the Labeling Resources documentation.
61830func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
61831	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61832	c.project = project
61833	c.resource = resource
61834	c.globalsetlabelsrequest = globalsetlabelsrequest
61835	return c
61836}
61837
61838// Fields allows partial responses to be retrieved. See
61839// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61840// for more information.
61841func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
61842	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61843	return c
61844}
61845
61846// Context sets the context to be used in this call's Do method. Any
61847// pending HTTP request will be aborted if the provided context is
61848// canceled.
61849func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
61850	c.ctx_ = ctx
61851	return c
61852}
61853
61854// Header returns an http.Header that can be modified by the caller to
61855// add HTTP headers to the request.
61856func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
61857	if c.header_ == nil {
61858		c.header_ = make(http.Header)
61859	}
61860	return c.header_
61861}
61862
61863func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
61864	reqHeaders := make(http.Header)
61865	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
61866	for k, v := range c.header_ {
61867		reqHeaders[k] = v
61868	}
61869	reqHeaders.Set("User-Agent", c.s.userAgent())
61870	var body io.Reader = nil
61871	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
61872	if err != nil {
61873		return nil, err
61874	}
61875	reqHeaders.Set("Content-Type", "application/json")
61876	c.urlParams_.Set("alt", alt)
61877	c.urlParams_.Set("prettyPrint", "false")
61878	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/setLabels")
61879	urls += "?" + c.urlParams_.Encode()
61880	req, err := http.NewRequest("POST", urls, body)
61881	if err != nil {
61882		return nil, err
61883	}
61884	req.Header = reqHeaders
61885	googleapi.Expand(req.URL, map[string]string{
61886		"project":  c.project,
61887		"resource": c.resource,
61888	})
61889	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61890}
61891
61892// Do executes the "compute.externalVpnGateways.setLabels" call.
61893// Exactly one of *Operation or error will be non-nil. Any non-2xx
61894// status code is an error. Response headers are in either
61895// *Operation.ServerResponse.Header or (if a response was returned at
61896// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61897// to check whether the returned error was because
61898// http.StatusNotModified was returned.
61899func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61900	gensupport.SetOptions(c.urlParams_, opts...)
61901	res, err := c.doRequest("json")
61902	if res != nil && res.StatusCode == http.StatusNotModified {
61903		if res.Body != nil {
61904			res.Body.Close()
61905		}
61906		return nil, &googleapi.Error{
61907			Code:   res.StatusCode,
61908			Header: res.Header,
61909		}
61910	}
61911	if err != nil {
61912		return nil, err
61913	}
61914	defer googleapi.CloseBody(res)
61915	if err := googleapi.CheckResponse(res); err != nil {
61916		return nil, err
61917	}
61918	ret := &Operation{
61919		ServerResponse: googleapi.ServerResponse{
61920			Header:         res.Header,
61921			HTTPStatusCode: res.StatusCode,
61922		},
61923	}
61924	target := &ret
61925	if err := gensupport.DecodeResponse(target, res); err != nil {
61926		return nil, err
61927	}
61928	return ret, nil
61929	// {
61930	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
61931	//   "httpMethod": "POST",
61932	//   "id": "compute.externalVpnGateways.setLabels",
61933	//   "parameterOrder": [
61934	//     "project",
61935	//     "resource"
61936	//   ],
61937	//   "parameters": {
61938	//     "project": {
61939	//       "description": "Project ID for this request.",
61940	//       "location": "path",
61941	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61942	//       "required": true,
61943	//       "type": "string"
61944	//     },
61945	//     "resource": {
61946	//       "description": "Name or id of the resource for this request.",
61947	//       "location": "path",
61948	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61949	//       "required": true,
61950	//       "type": "string"
61951	//     }
61952	//   },
61953	//   "path": "{project}/global/externalVpnGateways/{resource}/setLabels",
61954	//   "request": {
61955	//     "$ref": "GlobalSetLabelsRequest"
61956	//   },
61957	//   "response": {
61958	//     "$ref": "Operation"
61959	//   },
61960	//   "scopes": [
61961	//     "https://www.googleapis.com/auth/cloud-platform",
61962	//     "https://www.googleapis.com/auth/compute"
61963	//   ]
61964	// }
61965
61966}
61967
61968// method id "compute.externalVpnGateways.testIamPermissions":
61969
61970type ExternalVpnGatewaysTestIamPermissionsCall struct {
61971	s                      *Service
61972	project                string
61973	resource               string
61974	testpermissionsrequest *TestPermissionsRequest
61975	urlParams_             gensupport.URLParams
61976	ctx_                   context.Context
61977	header_                http.Header
61978}
61979
61980// TestIamPermissions: Returns permissions that a caller has on the
61981// specified resource.
61982func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
61983	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61984	c.project = project
61985	c.resource = resource
61986	c.testpermissionsrequest = testpermissionsrequest
61987	return c
61988}
61989
61990// Fields allows partial responses to be retrieved. See
61991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61992// for more information.
61993func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
61994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61995	return c
61996}
61997
61998// Context sets the context to be used in this call's Do method. Any
61999// pending HTTP request will be aborted if the provided context is
62000// canceled.
62001func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
62002	c.ctx_ = ctx
62003	return c
62004}
62005
62006// Header returns an http.Header that can be modified by the caller to
62007// add HTTP headers to the request.
62008func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
62009	if c.header_ == nil {
62010		c.header_ = make(http.Header)
62011	}
62012	return c.header_
62013}
62014
62015func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
62016	reqHeaders := make(http.Header)
62017	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
62018	for k, v := range c.header_ {
62019		reqHeaders[k] = v
62020	}
62021	reqHeaders.Set("User-Agent", c.s.userAgent())
62022	var body io.Reader = nil
62023	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
62024	if err != nil {
62025		return nil, err
62026	}
62027	reqHeaders.Set("Content-Type", "application/json")
62028	c.urlParams_.Set("alt", alt)
62029	c.urlParams_.Set("prettyPrint", "false")
62030	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/testIamPermissions")
62031	urls += "?" + c.urlParams_.Encode()
62032	req, err := http.NewRequest("POST", urls, body)
62033	if err != nil {
62034		return nil, err
62035	}
62036	req.Header = reqHeaders
62037	googleapi.Expand(req.URL, map[string]string{
62038		"project":  c.project,
62039		"resource": c.resource,
62040	})
62041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62042}
62043
62044// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
62045// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
62046// non-2xx status code is an error. Response headers are in either
62047// *TestPermissionsResponse.ServerResponse.Header or (if a response was
62048// returned at all) in error.(*googleapi.Error).Header. Use
62049// googleapi.IsNotModified to check whether the returned error was
62050// because http.StatusNotModified was returned.
62051func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
62052	gensupport.SetOptions(c.urlParams_, opts...)
62053	res, err := c.doRequest("json")
62054	if res != nil && res.StatusCode == http.StatusNotModified {
62055		if res.Body != nil {
62056			res.Body.Close()
62057		}
62058		return nil, &googleapi.Error{
62059			Code:   res.StatusCode,
62060			Header: res.Header,
62061		}
62062	}
62063	if err != nil {
62064		return nil, err
62065	}
62066	defer googleapi.CloseBody(res)
62067	if err := googleapi.CheckResponse(res); err != nil {
62068		return nil, err
62069	}
62070	ret := &TestPermissionsResponse{
62071		ServerResponse: googleapi.ServerResponse{
62072			Header:         res.Header,
62073			HTTPStatusCode: res.StatusCode,
62074		},
62075	}
62076	target := &ret
62077	if err := gensupport.DecodeResponse(target, res); err != nil {
62078		return nil, err
62079	}
62080	return ret, nil
62081	// {
62082	//   "description": "Returns permissions that a caller has on the specified resource.",
62083	//   "httpMethod": "POST",
62084	//   "id": "compute.externalVpnGateways.testIamPermissions",
62085	//   "parameterOrder": [
62086	//     "project",
62087	//     "resource"
62088	//   ],
62089	//   "parameters": {
62090	//     "project": {
62091	//       "description": "Project ID for this request.",
62092	//       "location": "path",
62093	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62094	//       "required": true,
62095	//       "type": "string"
62096	//     },
62097	//     "resource": {
62098	//       "description": "Name or id of the resource for this request.",
62099	//       "location": "path",
62100	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62101	//       "required": true,
62102	//       "type": "string"
62103	//     }
62104	//   },
62105	//   "path": "{project}/global/externalVpnGateways/{resource}/testIamPermissions",
62106	//   "request": {
62107	//     "$ref": "TestPermissionsRequest"
62108	//   },
62109	//   "response": {
62110	//     "$ref": "TestPermissionsResponse"
62111	//   },
62112	//   "scopes": [
62113	//     "https://www.googleapis.com/auth/cloud-platform",
62114	//     "https://www.googleapis.com/auth/compute",
62115	//     "https://www.googleapis.com/auth/compute.readonly"
62116	//   ]
62117	// }
62118
62119}
62120
62121// method id "compute.firewalls.delete":
62122
62123type FirewallsDeleteCall struct {
62124	s          *Service
62125	project    string
62126	firewall   string
62127	urlParams_ gensupport.URLParams
62128	ctx_       context.Context
62129	header_    http.Header
62130}
62131
62132// Delete: Deletes the specified firewall.
62133// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
62134func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
62135	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62136	c.project = project
62137	c.firewall = firewall
62138	return c
62139}
62140
62141// RequestId sets the optional parameter "requestId": An optional
62142// request ID to identify requests. Specify a unique request ID so that
62143// if you must retry your request, the server will know to ignore the
62144// request if it has already been completed.
62145//
62146// For example, consider a situation where you make an initial request
62147// and the request times out. If you make the request again with the
62148// same request ID, the server can check if original operation with the
62149// same request ID was received, and if so, will ignore the second
62150// request. This prevents clients from accidentally creating duplicate
62151// commitments.
62152//
62153// The request ID must be a valid UUID with the exception that zero UUID
62154// is not supported (00000000-0000-0000-0000-000000000000).
62155func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
62156	c.urlParams_.Set("requestId", requestId)
62157	return c
62158}
62159
62160// Fields allows partial responses to be retrieved. See
62161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62162// for more information.
62163func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
62164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62165	return c
62166}
62167
62168// Context sets the context to be used in this call's Do method. Any
62169// pending HTTP request will be aborted if the provided context is
62170// canceled.
62171func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
62172	c.ctx_ = ctx
62173	return c
62174}
62175
62176// Header returns an http.Header that can be modified by the caller to
62177// add HTTP headers to the request.
62178func (c *FirewallsDeleteCall) Header() http.Header {
62179	if c.header_ == nil {
62180		c.header_ = make(http.Header)
62181	}
62182	return c.header_
62183}
62184
62185func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
62186	reqHeaders := make(http.Header)
62187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
62188	for k, v := range c.header_ {
62189		reqHeaders[k] = v
62190	}
62191	reqHeaders.Set("User-Agent", c.s.userAgent())
62192	var body io.Reader = nil
62193	c.urlParams_.Set("alt", alt)
62194	c.urlParams_.Set("prettyPrint", "false")
62195	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
62196	urls += "?" + c.urlParams_.Encode()
62197	req, err := http.NewRequest("DELETE", urls, body)
62198	if err != nil {
62199		return nil, err
62200	}
62201	req.Header = reqHeaders
62202	googleapi.Expand(req.URL, map[string]string{
62203		"project":  c.project,
62204		"firewall": c.firewall,
62205	})
62206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62207}
62208
62209// Do executes the "compute.firewalls.delete" call.
62210// Exactly one of *Operation or error will be non-nil. Any non-2xx
62211// status code is an error. Response headers are in either
62212// *Operation.ServerResponse.Header or (if a response was returned at
62213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62214// to check whether the returned error was because
62215// http.StatusNotModified was returned.
62216func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62217	gensupport.SetOptions(c.urlParams_, opts...)
62218	res, err := c.doRequest("json")
62219	if res != nil && res.StatusCode == http.StatusNotModified {
62220		if res.Body != nil {
62221			res.Body.Close()
62222		}
62223		return nil, &googleapi.Error{
62224			Code:   res.StatusCode,
62225			Header: res.Header,
62226		}
62227	}
62228	if err != nil {
62229		return nil, err
62230	}
62231	defer googleapi.CloseBody(res)
62232	if err := googleapi.CheckResponse(res); err != nil {
62233		return nil, err
62234	}
62235	ret := &Operation{
62236		ServerResponse: googleapi.ServerResponse{
62237			Header:         res.Header,
62238			HTTPStatusCode: res.StatusCode,
62239		},
62240	}
62241	target := &ret
62242	if err := gensupport.DecodeResponse(target, res); err != nil {
62243		return nil, err
62244	}
62245	return ret, nil
62246	// {
62247	//   "description": "Deletes the specified firewall.",
62248	//   "httpMethod": "DELETE",
62249	//   "id": "compute.firewalls.delete",
62250	//   "parameterOrder": [
62251	//     "project",
62252	//     "firewall"
62253	//   ],
62254	//   "parameters": {
62255	//     "firewall": {
62256	//       "description": "Name of the firewall rule to delete.",
62257	//       "location": "path",
62258	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62259	//       "required": true,
62260	//       "type": "string"
62261	//     },
62262	//     "project": {
62263	//       "description": "Project ID for this request.",
62264	//       "location": "path",
62265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62266	//       "required": true,
62267	//       "type": "string"
62268	//     },
62269	//     "requestId": {
62270	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62271	//       "location": "query",
62272	//       "type": "string"
62273	//     }
62274	//   },
62275	//   "path": "{project}/global/firewalls/{firewall}",
62276	//   "response": {
62277	//     "$ref": "Operation"
62278	//   },
62279	//   "scopes": [
62280	//     "https://www.googleapis.com/auth/cloud-platform",
62281	//     "https://www.googleapis.com/auth/compute"
62282	//   ]
62283	// }
62284
62285}
62286
62287// method id "compute.firewalls.get":
62288
62289type FirewallsGetCall struct {
62290	s            *Service
62291	project      string
62292	firewall     string
62293	urlParams_   gensupport.URLParams
62294	ifNoneMatch_ string
62295	ctx_         context.Context
62296	header_      http.Header
62297}
62298
62299// Get: Returns the specified firewall.
62300// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
62301func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
62302	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62303	c.project = project
62304	c.firewall = firewall
62305	return c
62306}
62307
62308// Fields allows partial responses to be retrieved. See
62309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62310// for more information.
62311func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
62312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62313	return c
62314}
62315
62316// IfNoneMatch sets the optional parameter which makes the operation
62317// fail if the object's ETag matches the given value. This is useful for
62318// getting updates only after the object has changed since the last
62319// request. Use googleapi.IsNotModified to check whether the response
62320// error from Do is the result of In-None-Match.
62321func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
62322	c.ifNoneMatch_ = entityTag
62323	return c
62324}
62325
62326// Context sets the context to be used in this call's Do method. Any
62327// pending HTTP request will be aborted if the provided context is
62328// canceled.
62329func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
62330	c.ctx_ = ctx
62331	return c
62332}
62333
62334// Header returns an http.Header that can be modified by the caller to
62335// add HTTP headers to the request.
62336func (c *FirewallsGetCall) Header() http.Header {
62337	if c.header_ == nil {
62338		c.header_ = make(http.Header)
62339	}
62340	return c.header_
62341}
62342
62343func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
62344	reqHeaders := make(http.Header)
62345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
62346	for k, v := range c.header_ {
62347		reqHeaders[k] = v
62348	}
62349	reqHeaders.Set("User-Agent", c.s.userAgent())
62350	if c.ifNoneMatch_ != "" {
62351		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62352	}
62353	var body io.Reader = nil
62354	c.urlParams_.Set("alt", alt)
62355	c.urlParams_.Set("prettyPrint", "false")
62356	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
62357	urls += "?" + c.urlParams_.Encode()
62358	req, err := http.NewRequest("GET", urls, body)
62359	if err != nil {
62360		return nil, err
62361	}
62362	req.Header = reqHeaders
62363	googleapi.Expand(req.URL, map[string]string{
62364		"project":  c.project,
62365		"firewall": c.firewall,
62366	})
62367	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62368}
62369
62370// Do executes the "compute.firewalls.get" call.
62371// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
62372// code is an error. Response headers are in either
62373// *Firewall.ServerResponse.Header or (if a response was returned at
62374// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62375// to check whether the returned error was because
62376// http.StatusNotModified was returned.
62377func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
62378	gensupport.SetOptions(c.urlParams_, opts...)
62379	res, err := c.doRequest("json")
62380	if res != nil && res.StatusCode == http.StatusNotModified {
62381		if res.Body != nil {
62382			res.Body.Close()
62383		}
62384		return nil, &googleapi.Error{
62385			Code:   res.StatusCode,
62386			Header: res.Header,
62387		}
62388	}
62389	if err != nil {
62390		return nil, err
62391	}
62392	defer googleapi.CloseBody(res)
62393	if err := googleapi.CheckResponse(res); err != nil {
62394		return nil, err
62395	}
62396	ret := &Firewall{
62397		ServerResponse: googleapi.ServerResponse{
62398			Header:         res.Header,
62399			HTTPStatusCode: res.StatusCode,
62400		},
62401	}
62402	target := &ret
62403	if err := gensupport.DecodeResponse(target, res); err != nil {
62404		return nil, err
62405	}
62406	return ret, nil
62407	// {
62408	//   "description": "Returns the specified firewall.",
62409	//   "httpMethod": "GET",
62410	//   "id": "compute.firewalls.get",
62411	//   "parameterOrder": [
62412	//     "project",
62413	//     "firewall"
62414	//   ],
62415	//   "parameters": {
62416	//     "firewall": {
62417	//       "description": "Name of the firewall rule to return.",
62418	//       "location": "path",
62419	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62420	//       "required": true,
62421	//       "type": "string"
62422	//     },
62423	//     "project": {
62424	//       "description": "Project ID for this request.",
62425	//       "location": "path",
62426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62427	//       "required": true,
62428	//       "type": "string"
62429	//     }
62430	//   },
62431	//   "path": "{project}/global/firewalls/{firewall}",
62432	//   "response": {
62433	//     "$ref": "Firewall"
62434	//   },
62435	//   "scopes": [
62436	//     "https://www.googleapis.com/auth/cloud-platform",
62437	//     "https://www.googleapis.com/auth/compute",
62438	//     "https://www.googleapis.com/auth/compute.readonly"
62439	//   ]
62440	// }
62441
62442}
62443
62444// method id "compute.firewalls.insert":
62445
62446type FirewallsInsertCall struct {
62447	s          *Service
62448	project    string
62449	firewall   *Firewall
62450	urlParams_ gensupport.URLParams
62451	ctx_       context.Context
62452	header_    http.Header
62453}
62454
62455// Insert: Creates a firewall rule in the specified project using the
62456// data included in the request.
62457// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
62458func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
62459	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62460	c.project = project
62461	c.firewall = firewall
62462	return c
62463}
62464
62465// RequestId sets the optional parameter "requestId": An optional
62466// request ID to identify requests. Specify a unique request ID so that
62467// if you must retry your request, the server will know to ignore the
62468// request if it has already been completed.
62469//
62470// For example, consider a situation where you make an initial request
62471// and the request times out. If you make the request again with the
62472// same request ID, the server can check if original operation with the
62473// same request ID was received, and if so, will ignore the second
62474// request. This prevents clients from accidentally creating duplicate
62475// commitments.
62476//
62477// The request ID must be a valid UUID with the exception that zero UUID
62478// is not supported (00000000-0000-0000-0000-000000000000).
62479func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
62480	c.urlParams_.Set("requestId", requestId)
62481	return c
62482}
62483
62484// Fields allows partial responses to be retrieved. See
62485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62486// for more information.
62487func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
62488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62489	return c
62490}
62491
62492// Context sets the context to be used in this call's Do method. Any
62493// pending HTTP request will be aborted if the provided context is
62494// canceled.
62495func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
62496	c.ctx_ = ctx
62497	return c
62498}
62499
62500// Header returns an http.Header that can be modified by the caller to
62501// add HTTP headers to the request.
62502func (c *FirewallsInsertCall) Header() http.Header {
62503	if c.header_ == nil {
62504		c.header_ = make(http.Header)
62505	}
62506	return c.header_
62507}
62508
62509func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
62510	reqHeaders := make(http.Header)
62511	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
62512	for k, v := range c.header_ {
62513		reqHeaders[k] = v
62514	}
62515	reqHeaders.Set("User-Agent", c.s.userAgent())
62516	var body io.Reader = nil
62517	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
62518	if err != nil {
62519		return nil, err
62520	}
62521	reqHeaders.Set("Content-Type", "application/json")
62522	c.urlParams_.Set("alt", alt)
62523	c.urlParams_.Set("prettyPrint", "false")
62524	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
62525	urls += "?" + c.urlParams_.Encode()
62526	req, err := http.NewRequest("POST", urls, body)
62527	if err != nil {
62528		return nil, err
62529	}
62530	req.Header = reqHeaders
62531	googleapi.Expand(req.URL, map[string]string{
62532		"project": c.project,
62533	})
62534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62535}
62536
62537// Do executes the "compute.firewalls.insert" call.
62538// Exactly one of *Operation or error will be non-nil. Any non-2xx
62539// status code is an error. Response headers are in either
62540// *Operation.ServerResponse.Header or (if a response was returned at
62541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62542// to check whether the returned error was because
62543// http.StatusNotModified was returned.
62544func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62545	gensupport.SetOptions(c.urlParams_, opts...)
62546	res, err := c.doRequest("json")
62547	if res != nil && res.StatusCode == http.StatusNotModified {
62548		if res.Body != nil {
62549			res.Body.Close()
62550		}
62551		return nil, &googleapi.Error{
62552			Code:   res.StatusCode,
62553			Header: res.Header,
62554		}
62555	}
62556	if err != nil {
62557		return nil, err
62558	}
62559	defer googleapi.CloseBody(res)
62560	if err := googleapi.CheckResponse(res); err != nil {
62561		return nil, err
62562	}
62563	ret := &Operation{
62564		ServerResponse: googleapi.ServerResponse{
62565			Header:         res.Header,
62566			HTTPStatusCode: res.StatusCode,
62567		},
62568	}
62569	target := &ret
62570	if err := gensupport.DecodeResponse(target, res); err != nil {
62571		return nil, err
62572	}
62573	return ret, nil
62574	// {
62575	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
62576	//   "httpMethod": "POST",
62577	//   "id": "compute.firewalls.insert",
62578	//   "parameterOrder": [
62579	//     "project"
62580	//   ],
62581	//   "parameters": {
62582	//     "project": {
62583	//       "description": "Project ID for this request.",
62584	//       "location": "path",
62585	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62586	//       "required": true,
62587	//       "type": "string"
62588	//     },
62589	//     "requestId": {
62590	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62591	//       "location": "query",
62592	//       "type": "string"
62593	//     }
62594	//   },
62595	//   "path": "{project}/global/firewalls",
62596	//   "request": {
62597	//     "$ref": "Firewall"
62598	//   },
62599	//   "response": {
62600	//     "$ref": "Operation"
62601	//   },
62602	//   "scopes": [
62603	//     "https://www.googleapis.com/auth/cloud-platform",
62604	//     "https://www.googleapis.com/auth/compute"
62605	//   ]
62606	// }
62607
62608}
62609
62610// method id "compute.firewalls.list":
62611
62612type FirewallsListCall struct {
62613	s            *Service
62614	project      string
62615	urlParams_   gensupport.URLParams
62616	ifNoneMatch_ string
62617	ctx_         context.Context
62618	header_      http.Header
62619}
62620
62621// List: Retrieves the list of firewall rules available to the specified
62622// project.
62623// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
62624func (r *FirewallsService) List(project string) *FirewallsListCall {
62625	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62626	c.project = project
62627	return c
62628}
62629
62630// Filter sets the optional parameter "filter": A filter expression that
62631// filters resources listed in the response. The expression must specify
62632// the field name, a comparison operator, and the value that you want to
62633// use for filtering. The value must be a string, a number, or a
62634// boolean. The comparison operator must be either `=`, `!=`, `>`, or
62635// `<`.
62636//
62637// For example, if you are filtering Compute Engine instances, you can
62638// exclude instances named `example-instance` by specifying `name !=
62639// example-instance`.
62640//
62641// You can also filter nested fields. For example, you could specify
62642// `scheduling.automaticRestart = false` to include instances only if
62643// they are not scheduled for automatic restarts. You can use filtering
62644// on nested fields to filter based on resource labels.
62645//
62646// To filter on multiple expressions, provide each separate expression
62647// within parentheses. For example: ``` (scheduling.automaticRestart =
62648// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
62649// is an `AND` expression. However, you can include `AND` and `OR`
62650// expressions explicitly. For example: ``` (cpuPlatform = "Intel
62651// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
62652// (scheduling.automaticRestart = true) ```
62653func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
62654	c.urlParams_.Set("filter", filter)
62655	return c
62656}
62657
62658// MaxResults sets the optional parameter "maxResults": The maximum
62659// number of results per page that should be returned. If the number of
62660// available results is larger than `maxResults`, Compute Engine returns
62661// a `nextPageToken` that can be used to get the next page of results in
62662// subsequent list requests. Acceptable values are `0` to `500`,
62663// inclusive. (Default: `500`)
62664func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
62665	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62666	return c
62667}
62668
62669// OrderBy sets the optional parameter "orderBy": Sorts list results by
62670// a certain order. By default, results are returned in alphanumerical
62671// order based on the resource name.
62672//
62673// You can also sort results in descending order based on the creation
62674// timestamp using `orderBy="creationTimestamp desc". This sorts
62675// results based on the `creationTimestamp` field in reverse
62676// chronological order (newest result first). Use this to sort resources
62677// like operations so that the newest operation is returned
62678// first.
62679//
62680// Currently, only sorting by `name` or `creationTimestamp desc` is
62681// supported.
62682func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
62683	c.urlParams_.Set("orderBy", orderBy)
62684	return c
62685}
62686
62687// PageToken sets the optional parameter "pageToken": Specifies a page
62688// token to use. Set `pageToken` to the `nextPageToken` returned by a
62689// previous list request to get the next page of results.
62690func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
62691	c.urlParams_.Set("pageToken", pageToken)
62692	return c
62693}
62694
62695// ReturnPartialSuccess sets the optional parameter
62696// "returnPartialSuccess": Opt-in for partial success behavior which
62697// provides partial results in case of failure. The default value is
62698// false and the logic is the same as today.
62699func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall {
62700	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
62701	return c
62702}
62703
62704// Fields allows partial responses to be retrieved. See
62705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62706// for more information.
62707func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
62708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62709	return c
62710}
62711
62712// IfNoneMatch sets the optional parameter which makes the operation
62713// fail if the object's ETag matches the given value. This is useful for
62714// getting updates only after the object has changed since the last
62715// request. Use googleapi.IsNotModified to check whether the response
62716// error from Do is the result of In-None-Match.
62717func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
62718	c.ifNoneMatch_ = entityTag
62719	return c
62720}
62721
62722// Context sets the context to be used in this call's Do method. Any
62723// pending HTTP request will be aborted if the provided context is
62724// canceled.
62725func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
62726	c.ctx_ = ctx
62727	return c
62728}
62729
62730// Header returns an http.Header that can be modified by the caller to
62731// add HTTP headers to the request.
62732func (c *FirewallsListCall) Header() http.Header {
62733	if c.header_ == nil {
62734		c.header_ = make(http.Header)
62735	}
62736	return c.header_
62737}
62738
62739func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
62740	reqHeaders := make(http.Header)
62741	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
62742	for k, v := range c.header_ {
62743		reqHeaders[k] = v
62744	}
62745	reqHeaders.Set("User-Agent", c.s.userAgent())
62746	if c.ifNoneMatch_ != "" {
62747		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62748	}
62749	var body io.Reader = nil
62750	c.urlParams_.Set("alt", alt)
62751	c.urlParams_.Set("prettyPrint", "false")
62752	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
62753	urls += "?" + c.urlParams_.Encode()
62754	req, err := http.NewRequest("GET", 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	})
62762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62763}
62764
62765// Do executes the "compute.firewalls.list" call.
62766// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
62767// status code is an error. Response headers are in either
62768// *FirewallList.ServerResponse.Header or (if a response was returned at
62769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62770// to check whether the returned error was because
62771// http.StatusNotModified was returned.
62772func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
62773	gensupport.SetOptions(c.urlParams_, opts...)
62774	res, err := c.doRequest("json")
62775	if res != nil && res.StatusCode == http.StatusNotModified {
62776		if res.Body != nil {
62777			res.Body.Close()
62778		}
62779		return nil, &googleapi.Error{
62780			Code:   res.StatusCode,
62781			Header: res.Header,
62782		}
62783	}
62784	if err != nil {
62785		return nil, err
62786	}
62787	defer googleapi.CloseBody(res)
62788	if err := googleapi.CheckResponse(res); err != nil {
62789		return nil, err
62790	}
62791	ret := &FirewallList{
62792		ServerResponse: googleapi.ServerResponse{
62793			Header:         res.Header,
62794			HTTPStatusCode: res.StatusCode,
62795		},
62796	}
62797	target := &ret
62798	if err := gensupport.DecodeResponse(target, res); err != nil {
62799		return nil, err
62800	}
62801	return ret, nil
62802	// {
62803	//   "description": "Retrieves the list of firewall rules available to the specified project.",
62804	//   "httpMethod": "GET",
62805	//   "id": "compute.firewalls.list",
62806	//   "parameterOrder": [
62807	//     "project"
62808	//   ],
62809	//   "parameters": {
62810	//     "filter": {
62811	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
62812	//       "location": "query",
62813	//       "type": "string"
62814	//     },
62815	//     "maxResults": {
62816	//       "default": "500",
62817	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
62818	//       "format": "uint32",
62819	//       "location": "query",
62820	//       "minimum": "0",
62821	//       "type": "integer"
62822	//     },
62823	//     "orderBy": {
62824	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
62825	//       "location": "query",
62826	//       "type": "string"
62827	//     },
62828	//     "pageToken": {
62829	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
62830	//       "location": "query",
62831	//       "type": "string"
62832	//     },
62833	//     "project": {
62834	//       "description": "Project ID for this request.",
62835	//       "location": "path",
62836	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62837	//       "required": true,
62838	//       "type": "string"
62839	//     },
62840	//     "returnPartialSuccess": {
62841	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
62842	//       "location": "query",
62843	//       "type": "boolean"
62844	//     }
62845	//   },
62846	//   "path": "{project}/global/firewalls",
62847	//   "response": {
62848	//     "$ref": "FirewallList"
62849	//   },
62850	//   "scopes": [
62851	//     "https://www.googleapis.com/auth/cloud-platform",
62852	//     "https://www.googleapis.com/auth/compute",
62853	//     "https://www.googleapis.com/auth/compute.readonly"
62854	//   ]
62855	// }
62856
62857}
62858
62859// Pages invokes f for each page of results.
62860// A non-nil error returned from f will halt the iteration.
62861// The provided context supersedes any context provided to the Context method.
62862func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
62863	c.ctx_ = ctx
62864	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62865	for {
62866		x, err := c.Do()
62867		if err != nil {
62868			return err
62869		}
62870		if err := f(x); err != nil {
62871			return err
62872		}
62873		if x.NextPageToken == "" {
62874			return nil
62875		}
62876		c.PageToken(x.NextPageToken)
62877	}
62878}
62879
62880// method id "compute.firewalls.patch":
62881
62882type FirewallsPatchCall struct {
62883	s          *Service
62884	project    string
62885	firewall   string
62886	firewall2  *Firewall
62887	urlParams_ gensupport.URLParams
62888	ctx_       context.Context
62889	header_    http.Header
62890}
62891
62892// Patch: Updates the specified firewall rule with the data included in
62893// the request. This method supports PATCH semantics and uses the JSON
62894// merge patch format and processing rules.
62895// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
62896func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
62897	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62898	c.project = project
62899	c.firewall = firewall
62900	c.firewall2 = firewall2
62901	return c
62902}
62903
62904// RequestId sets the optional parameter "requestId": An optional
62905// request ID to identify requests. Specify a unique request ID so that
62906// if you must retry your request, the server will know to ignore the
62907// request if it has already been completed.
62908//
62909// For example, consider a situation where you make an initial request
62910// and the request times out. If you make the request again with the
62911// same request ID, the server can check if original operation with the
62912// same request ID was received, and if so, will ignore the second
62913// request. This prevents clients from accidentally creating duplicate
62914// commitments.
62915//
62916// The request ID must be a valid UUID with the exception that zero UUID
62917// is not supported (00000000-0000-0000-0000-000000000000).
62918func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
62919	c.urlParams_.Set("requestId", requestId)
62920	return c
62921}
62922
62923// Fields allows partial responses to be retrieved. See
62924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62925// for more information.
62926func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
62927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62928	return c
62929}
62930
62931// Context sets the context to be used in this call's Do method. Any
62932// pending HTTP request will be aborted if the provided context is
62933// canceled.
62934func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
62935	c.ctx_ = ctx
62936	return c
62937}
62938
62939// Header returns an http.Header that can be modified by the caller to
62940// add HTTP headers to the request.
62941func (c *FirewallsPatchCall) Header() http.Header {
62942	if c.header_ == nil {
62943		c.header_ = make(http.Header)
62944	}
62945	return c.header_
62946}
62947
62948func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
62949	reqHeaders := make(http.Header)
62950	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
62951	for k, v := range c.header_ {
62952		reqHeaders[k] = v
62953	}
62954	reqHeaders.Set("User-Agent", c.s.userAgent())
62955	var body io.Reader = nil
62956	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
62957	if err != nil {
62958		return nil, err
62959	}
62960	reqHeaders.Set("Content-Type", "application/json")
62961	c.urlParams_.Set("alt", alt)
62962	c.urlParams_.Set("prettyPrint", "false")
62963	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
62964	urls += "?" + c.urlParams_.Encode()
62965	req, err := http.NewRequest("PATCH", urls, body)
62966	if err != nil {
62967		return nil, err
62968	}
62969	req.Header = reqHeaders
62970	googleapi.Expand(req.URL, map[string]string{
62971		"project":  c.project,
62972		"firewall": c.firewall,
62973	})
62974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62975}
62976
62977// Do executes the "compute.firewalls.patch" call.
62978// Exactly one of *Operation or error will be non-nil. Any non-2xx
62979// status code is an error. Response headers are in either
62980// *Operation.ServerResponse.Header or (if a response was returned at
62981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62982// to check whether the returned error was because
62983// http.StatusNotModified was returned.
62984func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62985	gensupport.SetOptions(c.urlParams_, opts...)
62986	res, err := c.doRequest("json")
62987	if res != nil && res.StatusCode == http.StatusNotModified {
62988		if res.Body != nil {
62989			res.Body.Close()
62990		}
62991		return nil, &googleapi.Error{
62992			Code:   res.StatusCode,
62993			Header: res.Header,
62994		}
62995	}
62996	if err != nil {
62997		return nil, err
62998	}
62999	defer googleapi.CloseBody(res)
63000	if err := googleapi.CheckResponse(res); err != nil {
63001		return nil, err
63002	}
63003	ret := &Operation{
63004		ServerResponse: googleapi.ServerResponse{
63005			Header:         res.Header,
63006			HTTPStatusCode: res.StatusCode,
63007		},
63008	}
63009	target := &ret
63010	if err := gensupport.DecodeResponse(target, res); err != nil {
63011		return nil, err
63012	}
63013	return ret, nil
63014	// {
63015	//   "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.",
63016	//   "httpMethod": "PATCH",
63017	//   "id": "compute.firewalls.patch",
63018	//   "parameterOrder": [
63019	//     "project",
63020	//     "firewall"
63021	//   ],
63022	//   "parameters": {
63023	//     "firewall": {
63024	//       "description": "Name of the firewall rule to patch.",
63025	//       "location": "path",
63026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63027	//       "required": true,
63028	//       "type": "string"
63029	//     },
63030	//     "project": {
63031	//       "description": "Project ID for this request.",
63032	//       "location": "path",
63033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63034	//       "required": true,
63035	//       "type": "string"
63036	//     },
63037	//     "requestId": {
63038	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63039	//       "location": "query",
63040	//       "type": "string"
63041	//     }
63042	//   },
63043	//   "path": "{project}/global/firewalls/{firewall}",
63044	//   "request": {
63045	//     "$ref": "Firewall"
63046	//   },
63047	//   "response": {
63048	//     "$ref": "Operation"
63049	//   },
63050	//   "scopes": [
63051	//     "https://www.googleapis.com/auth/cloud-platform",
63052	//     "https://www.googleapis.com/auth/compute"
63053	//   ]
63054	// }
63055
63056}
63057
63058// method id "compute.firewalls.testIamPermissions":
63059
63060type FirewallsTestIamPermissionsCall struct {
63061	s                      *Service
63062	project                string
63063	resource               string
63064	testpermissionsrequest *TestPermissionsRequest
63065	urlParams_             gensupport.URLParams
63066	ctx_                   context.Context
63067	header_                http.Header
63068}
63069
63070// TestIamPermissions: Returns permissions that a caller has on the
63071// specified resource.
63072func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall {
63073	c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63074	c.project = project
63075	c.resource = resource
63076	c.testpermissionsrequest = testpermissionsrequest
63077	return c
63078}
63079
63080// Fields allows partial responses to be retrieved. See
63081// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63082// for more information.
63083func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall {
63084	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63085	return c
63086}
63087
63088// Context sets the context to be used in this call's Do method. Any
63089// pending HTTP request will be aborted if the provided context is
63090// canceled.
63091func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall {
63092	c.ctx_ = ctx
63093	return c
63094}
63095
63096// Header returns an http.Header that can be modified by the caller to
63097// add HTTP headers to the request.
63098func (c *FirewallsTestIamPermissionsCall) Header() http.Header {
63099	if c.header_ == nil {
63100		c.header_ = make(http.Header)
63101	}
63102	return c.header_
63103}
63104
63105func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
63106	reqHeaders := make(http.Header)
63107	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
63108	for k, v := range c.header_ {
63109		reqHeaders[k] = v
63110	}
63111	reqHeaders.Set("User-Agent", c.s.userAgent())
63112	var body io.Reader = nil
63113	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
63114	if err != nil {
63115		return nil, err
63116	}
63117	reqHeaders.Set("Content-Type", "application/json")
63118	c.urlParams_.Set("alt", alt)
63119	c.urlParams_.Set("prettyPrint", "false")
63120	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{resource}/testIamPermissions")
63121	urls += "?" + c.urlParams_.Encode()
63122	req, err := http.NewRequest("POST", urls, body)
63123	if err != nil {
63124		return nil, err
63125	}
63126	req.Header = reqHeaders
63127	googleapi.Expand(req.URL, map[string]string{
63128		"project":  c.project,
63129		"resource": c.resource,
63130	})
63131	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63132}
63133
63134// Do executes the "compute.firewalls.testIamPermissions" call.
63135// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
63136// non-2xx status code is an error. Response headers are in either
63137// *TestPermissionsResponse.ServerResponse.Header or (if a response was
63138// returned at all) in error.(*googleapi.Error).Header. Use
63139// googleapi.IsNotModified to check whether the returned error was
63140// because http.StatusNotModified was returned.
63141func (c *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
63142	gensupport.SetOptions(c.urlParams_, opts...)
63143	res, err := c.doRequest("json")
63144	if res != nil && res.StatusCode == http.StatusNotModified {
63145		if res.Body != nil {
63146			res.Body.Close()
63147		}
63148		return nil, &googleapi.Error{
63149			Code:   res.StatusCode,
63150			Header: res.Header,
63151		}
63152	}
63153	if err != nil {
63154		return nil, err
63155	}
63156	defer googleapi.CloseBody(res)
63157	if err := googleapi.CheckResponse(res); err != nil {
63158		return nil, err
63159	}
63160	ret := &TestPermissionsResponse{
63161		ServerResponse: googleapi.ServerResponse{
63162			Header:         res.Header,
63163			HTTPStatusCode: res.StatusCode,
63164		},
63165	}
63166	target := &ret
63167	if err := gensupport.DecodeResponse(target, res); err != nil {
63168		return nil, err
63169	}
63170	return ret, nil
63171	// {
63172	//   "description": "Returns permissions that a caller has on the specified resource.",
63173	//   "httpMethod": "POST",
63174	//   "id": "compute.firewalls.testIamPermissions",
63175	//   "parameterOrder": [
63176	//     "project",
63177	//     "resource"
63178	//   ],
63179	//   "parameters": {
63180	//     "project": {
63181	//       "description": "Project ID for this request.",
63182	//       "location": "path",
63183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63184	//       "required": true,
63185	//       "type": "string"
63186	//     },
63187	//     "resource": {
63188	//       "description": "Name or id of the resource for this request.",
63189	//       "location": "path",
63190	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63191	//       "required": true,
63192	//       "type": "string"
63193	//     }
63194	//   },
63195	//   "path": "{project}/global/firewalls/{resource}/testIamPermissions",
63196	//   "request": {
63197	//     "$ref": "TestPermissionsRequest"
63198	//   },
63199	//   "response": {
63200	//     "$ref": "TestPermissionsResponse"
63201	//   },
63202	//   "scopes": [
63203	//     "https://www.googleapis.com/auth/cloud-platform",
63204	//     "https://www.googleapis.com/auth/compute",
63205	//     "https://www.googleapis.com/auth/compute.readonly"
63206	//   ]
63207	// }
63208
63209}
63210
63211// method id "compute.firewalls.update":
63212
63213type FirewallsUpdateCall struct {
63214	s          *Service
63215	project    string
63216	firewall   string
63217	firewall2  *Firewall
63218	urlParams_ gensupport.URLParams
63219	ctx_       context.Context
63220	header_    http.Header
63221}
63222
63223// Update: Updates the specified firewall rule with the data included in
63224// the request. Note that all fields will be updated if using PUT, even
63225// fields that are not specified. To update individual fields, please
63226// use PATCH instead.
63227// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
63228func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
63229	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63230	c.project = project
63231	c.firewall = firewall
63232	c.firewall2 = firewall2
63233	return c
63234}
63235
63236// RequestId sets the optional parameter "requestId": An optional
63237// request ID to identify requests. Specify a unique request ID so that
63238// if you must retry your request, the server will know to ignore the
63239// request if it has already been completed.
63240//
63241// For example, consider a situation where you make an initial request
63242// and the request times out. If you make the request again with the
63243// same request ID, the server can check if original operation with the
63244// same request ID was received, and if so, will ignore the second
63245// request. This prevents clients from accidentally creating duplicate
63246// commitments.
63247//
63248// The request ID must be a valid UUID with the exception that zero UUID
63249// is not supported (00000000-0000-0000-0000-000000000000).
63250func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
63251	c.urlParams_.Set("requestId", requestId)
63252	return c
63253}
63254
63255// Fields allows partial responses to be retrieved. See
63256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63257// for more information.
63258func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
63259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63260	return c
63261}
63262
63263// Context sets the context to be used in this call's Do method. Any
63264// pending HTTP request will be aborted if the provided context is
63265// canceled.
63266func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
63267	c.ctx_ = ctx
63268	return c
63269}
63270
63271// Header returns an http.Header that can be modified by the caller to
63272// add HTTP headers to the request.
63273func (c *FirewallsUpdateCall) Header() http.Header {
63274	if c.header_ == nil {
63275		c.header_ = make(http.Header)
63276	}
63277	return c.header_
63278}
63279
63280func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
63281	reqHeaders := make(http.Header)
63282	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
63283	for k, v := range c.header_ {
63284		reqHeaders[k] = v
63285	}
63286	reqHeaders.Set("User-Agent", c.s.userAgent())
63287	var body io.Reader = nil
63288	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
63289	if err != nil {
63290		return nil, err
63291	}
63292	reqHeaders.Set("Content-Type", "application/json")
63293	c.urlParams_.Set("alt", alt)
63294	c.urlParams_.Set("prettyPrint", "false")
63295	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
63296	urls += "?" + c.urlParams_.Encode()
63297	req, err := http.NewRequest("PUT", urls, body)
63298	if err != nil {
63299		return nil, err
63300	}
63301	req.Header = reqHeaders
63302	googleapi.Expand(req.URL, map[string]string{
63303		"project":  c.project,
63304		"firewall": c.firewall,
63305	})
63306	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63307}
63308
63309// Do executes the "compute.firewalls.update" call.
63310// Exactly one of *Operation or error will be non-nil. Any non-2xx
63311// status code is an error. Response headers are in either
63312// *Operation.ServerResponse.Header or (if a response was returned at
63313// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63314// to check whether the returned error was because
63315// http.StatusNotModified was returned.
63316func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63317	gensupport.SetOptions(c.urlParams_, opts...)
63318	res, err := c.doRequest("json")
63319	if res != nil && res.StatusCode == http.StatusNotModified {
63320		if res.Body != nil {
63321			res.Body.Close()
63322		}
63323		return nil, &googleapi.Error{
63324			Code:   res.StatusCode,
63325			Header: res.Header,
63326		}
63327	}
63328	if err != nil {
63329		return nil, err
63330	}
63331	defer googleapi.CloseBody(res)
63332	if err := googleapi.CheckResponse(res); err != nil {
63333		return nil, err
63334	}
63335	ret := &Operation{
63336		ServerResponse: googleapi.ServerResponse{
63337			Header:         res.Header,
63338			HTTPStatusCode: res.StatusCode,
63339		},
63340	}
63341	target := &ret
63342	if err := gensupport.DecodeResponse(target, res); err != nil {
63343		return nil, err
63344	}
63345	return ret, nil
63346	// {
63347	//   "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.",
63348	//   "httpMethod": "PUT",
63349	//   "id": "compute.firewalls.update",
63350	//   "parameterOrder": [
63351	//     "project",
63352	//     "firewall"
63353	//   ],
63354	//   "parameters": {
63355	//     "firewall": {
63356	//       "description": "Name of the firewall rule to update.",
63357	//       "location": "path",
63358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63359	//       "required": true,
63360	//       "type": "string"
63361	//     },
63362	//     "project": {
63363	//       "description": "Project ID for this request.",
63364	//       "location": "path",
63365	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63366	//       "required": true,
63367	//       "type": "string"
63368	//     },
63369	//     "requestId": {
63370	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63371	//       "location": "query",
63372	//       "type": "string"
63373	//     }
63374	//   },
63375	//   "path": "{project}/global/firewalls/{firewall}",
63376	//   "request": {
63377	//     "$ref": "Firewall"
63378	//   },
63379	//   "response": {
63380	//     "$ref": "Operation"
63381	//   },
63382	//   "scopes": [
63383	//     "https://www.googleapis.com/auth/cloud-platform",
63384	//     "https://www.googleapis.com/auth/compute"
63385	//   ]
63386	// }
63387
63388}
63389
63390// method id "compute.forwardingRules.aggregatedList":
63391
63392type ForwardingRulesAggregatedListCall struct {
63393	s            *Service
63394	project      string
63395	urlParams_   gensupport.URLParams
63396	ifNoneMatch_ string
63397	ctx_         context.Context
63398	header_      http.Header
63399}
63400
63401// AggregatedList: Retrieves an aggregated list of forwarding rules.
63402// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
63403func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
63404	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63405	c.project = project
63406	return c
63407}
63408
63409// Filter sets the optional parameter "filter": A filter expression that
63410// filters resources listed in the response. The expression must specify
63411// the field name, a comparison operator, and the value that you want to
63412// use for filtering. The value must be a string, a number, or a
63413// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63414// `<`.
63415//
63416// For example, if you are filtering Compute Engine instances, you can
63417// exclude instances named `example-instance` by specifying `name !=
63418// example-instance`.
63419//
63420// You can also filter nested fields. For example, you could specify
63421// `scheduling.automaticRestart = false` to include instances only if
63422// they are not scheduled for automatic restarts. You can use filtering
63423// on nested fields to filter based on resource labels.
63424//
63425// To filter on multiple expressions, provide each separate expression
63426// within parentheses. For example: ``` (scheduling.automaticRestart =
63427// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63428// is an `AND` expression. However, you can include `AND` and `OR`
63429// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63430// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63431// (scheduling.automaticRestart = true) ```
63432func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
63433	c.urlParams_.Set("filter", filter)
63434	return c
63435}
63436
63437// IncludeAllScopes sets the optional parameter "includeAllScopes":
63438// Indicates whether every visible scope for each scope type (zone,
63439// region, global) should be included in the response. For new resource
63440// types added after this field, the flag has no effect as new resource
63441// types will always include every visible scope for each scope type in
63442// response. For resource types which predate this field, if this flag
63443// is omitted or false, only scopes of the scope types where the
63444// resource type is expected to be found will be included.
63445func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
63446	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
63447	return c
63448}
63449
63450// MaxResults sets the optional parameter "maxResults": The maximum
63451// number of results per page that should be returned. If the number of
63452// available results is larger than `maxResults`, Compute Engine returns
63453// a `nextPageToken` that can be used to get the next page of results in
63454// subsequent list requests. Acceptable values are `0` to `500`,
63455// inclusive. (Default: `500`)
63456func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
63457	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63458	return c
63459}
63460
63461// OrderBy sets the optional parameter "orderBy": Sorts list results by
63462// a certain order. By default, results are returned in alphanumerical
63463// order based on the resource name.
63464//
63465// You can also sort results in descending order based on the creation
63466// timestamp using `orderBy="creationTimestamp desc". This sorts
63467// results based on the `creationTimestamp` field in reverse
63468// chronological order (newest result first). Use this to sort resources
63469// like operations so that the newest operation is returned
63470// first.
63471//
63472// Currently, only sorting by `name` or `creationTimestamp desc` is
63473// supported.
63474func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
63475	c.urlParams_.Set("orderBy", orderBy)
63476	return c
63477}
63478
63479// PageToken sets the optional parameter "pageToken": Specifies a page
63480// token to use. Set `pageToken` to the `nextPageToken` returned by a
63481// previous list request to get the next page of results.
63482func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
63483	c.urlParams_.Set("pageToken", pageToken)
63484	return c
63485}
63486
63487// ReturnPartialSuccess sets the optional parameter
63488// "returnPartialSuccess": Opt-in for partial success behavior which
63489// provides partial results in case of failure. The default value is
63490// false and the logic is the same as today.
63491func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall {
63492	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
63493	return c
63494}
63495
63496// Fields allows partial responses to be retrieved. See
63497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63498// for more information.
63499func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
63500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63501	return c
63502}
63503
63504// IfNoneMatch sets the optional parameter which makes the operation
63505// fail if the object's ETag matches the given value. This is useful for
63506// getting updates only after the object has changed since the last
63507// request. Use googleapi.IsNotModified to check whether the response
63508// error from Do is the result of In-None-Match.
63509func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
63510	c.ifNoneMatch_ = entityTag
63511	return c
63512}
63513
63514// Context sets the context to be used in this call's Do method. Any
63515// pending HTTP request will be aborted if the provided context is
63516// canceled.
63517func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
63518	c.ctx_ = ctx
63519	return c
63520}
63521
63522// Header returns an http.Header that can be modified by the caller to
63523// add HTTP headers to the request.
63524func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
63525	if c.header_ == nil {
63526		c.header_ = make(http.Header)
63527	}
63528	return c.header_
63529}
63530
63531func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
63532	reqHeaders := make(http.Header)
63533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
63534	for k, v := range c.header_ {
63535		reqHeaders[k] = v
63536	}
63537	reqHeaders.Set("User-Agent", c.s.userAgent())
63538	if c.ifNoneMatch_ != "" {
63539		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63540	}
63541	var body io.Reader = nil
63542	c.urlParams_.Set("alt", alt)
63543	c.urlParams_.Set("prettyPrint", "false")
63544	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
63545	urls += "?" + c.urlParams_.Encode()
63546	req, err := http.NewRequest("GET", urls, body)
63547	if err != nil {
63548		return nil, err
63549	}
63550	req.Header = reqHeaders
63551	googleapi.Expand(req.URL, map[string]string{
63552		"project": c.project,
63553	})
63554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63555}
63556
63557// Do executes the "compute.forwardingRules.aggregatedList" call.
63558// Exactly one of *ForwardingRuleAggregatedList or error will be
63559// non-nil. Any non-2xx status code is an error. Response headers are in
63560// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
63561// response was returned at all) in error.(*googleapi.Error).Header. Use
63562// googleapi.IsNotModified to check whether the returned error was
63563// because http.StatusNotModified was returned.
63564func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
63565	gensupport.SetOptions(c.urlParams_, opts...)
63566	res, err := c.doRequest("json")
63567	if res != nil && res.StatusCode == http.StatusNotModified {
63568		if res.Body != nil {
63569			res.Body.Close()
63570		}
63571		return nil, &googleapi.Error{
63572			Code:   res.StatusCode,
63573			Header: res.Header,
63574		}
63575	}
63576	if err != nil {
63577		return nil, err
63578	}
63579	defer googleapi.CloseBody(res)
63580	if err := googleapi.CheckResponse(res); err != nil {
63581		return nil, err
63582	}
63583	ret := &ForwardingRuleAggregatedList{
63584		ServerResponse: googleapi.ServerResponse{
63585			Header:         res.Header,
63586			HTTPStatusCode: res.StatusCode,
63587		},
63588	}
63589	target := &ret
63590	if err := gensupport.DecodeResponse(target, res); err != nil {
63591		return nil, err
63592	}
63593	return ret, nil
63594	// {
63595	//   "description": "Retrieves an aggregated list of forwarding rules.",
63596	//   "httpMethod": "GET",
63597	//   "id": "compute.forwardingRules.aggregatedList",
63598	//   "parameterOrder": [
63599	//     "project"
63600	//   ],
63601	//   "parameters": {
63602	//     "filter": {
63603	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
63604	//       "location": "query",
63605	//       "type": "string"
63606	//     },
63607	//     "includeAllScopes": {
63608	//       "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.",
63609	//       "location": "query",
63610	//       "type": "boolean"
63611	//     },
63612	//     "maxResults": {
63613	//       "default": "500",
63614	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
63615	//       "format": "uint32",
63616	//       "location": "query",
63617	//       "minimum": "0",
63618	//       "type": "integer"
63619	//     },
63620	//     "orderBy": {
63621	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
63622	//       "location": "query",
63623	//       "type": "string"
63624	//     },
63625	//     "pageToken": {
63626	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
63627	//       "location": "query",
63628	//       "type": "string"
63629	//     },
63630	//     "project": {
63631	//       "description": "Project ID for this request.",
63632	//       "location": "path",
63633	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63634	//       "required": true,
63635	//       "type": "string"
63636	//     },
63637	//     "returnPartialSuccess": {
63638	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
63639	//       "location": "query",
63640	//       "type": "boolean"
63641	//     }
63642	//   },
63643	//   "path": "{project}/aggregated/forwardingRules",
63644	//   "response": {
63645	//     "$ref": "ForwardingRuleAggregatedList"
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// Pages invokes f for each page of results.
63657// A non-nil error returned from f will halt the iteration.
63658// The provided context supersedes any context provided to the Context method.
63659func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
63660	c.ctx_ = ctx
63661	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63662	for {
63663		x, err := c.Do()
63664		if err != nil {
63665			return err
63666		}
63667		if err := f(x); err != nil {
63668			return err
63669		}
63670		if x.NextPageToken == "" {
63671			return nil
63672		}
63673		c.PageToken(x.NextPageToken)
63674	}
63675}
63676
63677// method id "compute.forwardingRules.delete":
63678
63679type ForwardingRulesDeleteCall struct {
63680	s              *Service
63681	project        string
63682	region         string
63683	forwardingRule string
63684	urlParams_     gensupport.URLParams
63685	ctx_           context.Context
63686	header_        http.Header
63687}
63688
63689// Delete: Deletes the specified ForwardingRule resource.
63690// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
63691func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
63692	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63693	c.project = project
63694	c.region = region
63695	c.forwardingRule = forwardingRule
63696	return c
63697}
63698
63699// RequestId sets the optional parameter "requestId": An optional
63700// request ID to identify requests. Specify a unique request ID so that
63701// if you must retry your request, the server will know to ignore the
63702// request if it has already been completed.
63703//
63704// For example, consider a situation where you make an initial request
63705// and the request times out. If you make the request again with the
63706// same request ID, the server can check if original operation with the
63707// same request ID was received, and if so, will ignore the second
63708// request. This prevents clients from accidentally creating duplicate
63709// commitments.
63710//
63711// The request ID must be a valid UUID with the exception that zero UUID
63712// is not supported (00000000-0000-0000-0000-000000000000).
63713func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
63714	c.urlParams_.Set("requestId", requestId)
63715	return c
63716}
63717
63718// Fields allows partial responses to be retrieved. See
63719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63720// for more information.
63721func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
63722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63723	return c
63724}
63725
63726// Context sets the context to be used in this call's Do method. Any
63727// pending HTTP request will be aborted if the provided context is
63728// canceled.
63729func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
63730	c.ctx_ = ctx
63731	return c
63732}
63733
63734// Header returns an http.Header that can be modified by the caller to
63735// add HTTP headers to the request.
63736func (c *ForwardingRulesDeleteCall) Header() http.Header {
63737	if c.header_ == nil {
63738		c.header_ = make(http.Header)
63739	}
63740	return c.header_
63741}
63742
63743func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
63744	reqHeaders := make(http.Header)
63745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
63746	for k, v := range c.header_ {
63747		reqHeaders[k] = v
63748	}
63749	reqHeaders.Set("User-Agent", c.s.userAgent())
63750	var body io.Reader = nil
63751	c.urlParams_.Set("alt", alt)
63752	c.urlParams_.Set("prettyPrint", "false")
63753	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
63754	urls += "?" + c.urlParams_.Encode()
63755	req, err := http.NewRequest("DELETE", urls, body)
63756	if err != nil {
63757		return nil, err
63758	}
63759	req.Header = reqHeaders
63760	googleapi.Expand(req.URL, map[string]string{
63761		"project":        c.project,
63762		"region":         c.region,
63763		"forwardingRule": c.forwardingRule,
63764	})
63765	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63766}
63767
63768// Do executes the "compute.forwardingRules.delete" call.
63769// Exactly one of *Operation or error will be non-nil. Any non-2xx
63770// status code is an error. Response headers are in either
63771// *Operation.ServerResponse.Header or (if a response was returned at
63772// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63773// to check whether the returned error was because
63774// http.StatusNotModified was returned.
63775func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63776	gensupport.SetOptions(c.urlParams_, opts...)
63777	res, err := c.doRequest("json")
63778	if res != nil && res.StatusCode == http.StatusNotModified {
63779		if res.Body != nil {
63780			res.Body.Close()
63781		}
63782		return nil, &googleapi.Error{
63783			Code:   res.StatusCode,
63784			Header: res.Header,
63785		}
63786	}
63787	if err != nil {
63788		return nil, err
63789	}
63790	defer googleapi.CloseBody(res)
63791	if err := googleapi.CheckResponse(res); err != nil {
63792		return nil, err
63793	}
63794	ret := &Operation{
63795		ServerResponse: googleapi.ServerResponse{
63796			Header:         res.Header,
63797			HTTPStatusCode: res.StatusCode,
63798		},
63799	}
63800	target := &ret
63801	if err := gensupport.DecodeResponse(target, res); err != nil {
63802		return nil, err
63803	}
63804	return ret, nil
63805	// {
63806	//   "description": "Deletes the specified ForwardingRule resource.",
63807	//   "httpMethod": "DELETE",
63808	//   "id": "compute.forwardingRules.delete",
63809	//   "parameterOrder": [
63810	//     "project",
63811	//     "region",
63812	//     "forwardingRule"
63813	//   ],
63814	//   "parameters": {
63815	//     "forwardingRule": {
63816	//       "description": "Name of the ForwardingRule resource to delete.",
63817	//       "location": "path",
63818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63819	//       "required": true,
63820	//       "type": "string"
63821	//     },
63822	//     "project": {
63823	//       "description": "Project ID for this request.",
63824	//       "location": "path",
63825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63826	//       "required": true,
63827	//       "type": "string"
63828	//     },
63829	//     "region": {
63830	//       "description": "Name of the region scoping this request.",
63831	//       "location": "path",
63832	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63833	//       "required": true,
63834	//       "type": "string"
63835	//     },
63836	//     "requestId": {
63837	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63838	//       "location": "query",
63839	//       "type": "string"
63840	//     }
63841	//   },
63842	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
63843	//   "response": {
63844	//     "$ref": "Operation"
63845	//   },
63846	//   "scopes": [
63847	//     "https://www.googleapis.com/auth/cloud-platform",
63848	//     "https://www.googleapis.com/auth/compute"
63849	//   ]
63850	// }
63851
63852}
63853
63854// method id "compute.forwardingRules.get":
63855
63856type ForwardingRulesGetCall struct {
63857	s              *Service
63858	project        string
63859	region         string
63860	forwardingRule string
63861	urlParams_     gensupport.URLParams
63862	ifNoneMatch_   string
63863	ctx_           context.Context
63864	header_        http.Header
63865}
63866
63867// Get: Returns the specified ForwardingRule resource.
63868// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
63869func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
63870	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63871	c.project = project
63872	c.region = region
63873	c.forwardingRule = forwardingRule
63874	return c
63875}
63876
63877// Fields allows partial responses to be retrieved. See
63878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63879// for more information.
63880func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
63881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63882	return c
63883}
63884
63885// IfNoneMatch sets the optional parameter which makes the operation
63886// fail if the object's ETag matches the given value. This is useful for
63887// getting updates only after the object has changed since the last
63888// request. Use googleapi.IsNotModified to check whether the response
63889// error from Do is the result of In-None-Match.
63890func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
63891	c.ifNoneMatch_ = entityTag
63892	return c
63893}
63894
63895// Context sets the context to be used in this call's Do method. Any
63896// pending HTTP request will be aborted if the provided context is
63897// canceled.
63898func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
63899	c.ctx_ = ctx
63900	return c
63901}
63902
63903// Header returns an http.Header that can be modified by the caller to
63904// add HTTP headers to the request.
63905func (c *ForwardingRulesGetCall) Header() http.Header {
63906	if c.header_ == nil {
63907		c.header_ = make(http.Header)
63908	}
63909	return c.header_
63910}
63911
63912func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
63913	reqHeaders := make(http.Header)
63914	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
63915	for k, v := range c.header_ {
63916		reqHeaders[k] = v
63917	}
63918	reqHeaders.Set("User-Agent", c.s.userAgent())
63919	if c.ifNoneMatch_ != "" {
63920		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63921	}
63922	var body io.Reader = nil
63923	c.urlParams_.Set("alt", alt)
63924	c.urlParams_.Set("prettyPrint", "false")
63925	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
63926	urls += "?" + c.urlParams_.Encode()
63927	req, err := http.NewRequest("GET", urls, body)
63928	if err != nil {
63929		return nil, err
63930	}
63931	req.Header = reqHeaders
63932	googleapi.Expand(req.URL, map[string]string{
63933		"project":        c.project,
63934		"region":         c.region,
63935		"forwardingRule": c.forwardingRule,
63936	})
63937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63938}
63939
63940// Do executes the "compute.forwardingRules.get" call.
63941// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
63942// status code is an error. Response headers are in either
63943// *ForwardingRule.ServerResponse.Header or (if a response was returned
63944// at all) in error.(*googleapi.Error).Header. Use
63945// googleapi.IsNotModified to check whether the returned error was
63946// because http.StatusNotModified was returned.
63947func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
63948	gensupport.SetOptions(c.urlParams_, opts...)
63949	res, err := c.doRequest("json")
63950	if res != nil && res.StatusCode == http.StatusNotModified {
63951		if res.Body != nil {
63952			res.Body.Close()
63953		}
63954		return nil, &googleapi.Error{
63955			Code:   res.StatusCode,
63956			Header: res.Header,
63957		}
63958	}
63959	if err != nil {
63960		return nil, err
63961	}
63962	defer googleapi.CloseBody(res)
63963	if err := googleapi.CheckResponse(res); err != nil {
63964		return nil, err
63965	}
63966	ret := &ForwardingRule{
63967		ServerResponse: googleapi.ServerResponse{
63968			Header:         res.Header,
63969			HTTPStatusCode: res.StatusCode,
63970		},
63971	}
63972	target := &ret
63973	if err := gensupport.DecodeResponse(target, res); err != nil {
63974		return nil, err
63975	}
63976	return ret, nil
63977	// {
63978	//   "description": "Returns the specified ForwardingRule resource.",
63979	//   "httpMethod": "GET",
63980	//   "id": "compute.forwardingRules.get",
63981	//   "parameterOrder": [
63982	//     "project",
63983	//     "region",
63984	//     "forwardingRule"
63985	//   ],
63986	//   "parameters": {
63987	//     "forwardingRule": {
63988	//       "description": "Name of the ForwardingRule resource to return.",
63989	//       "location": "path",
63990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63991	//       "required": true,
63992	//       "type": "string"
63993	//     },
63994	//     "project": {
63995	//       "description": "Project ID for this request.",
63996	//       "location": "path",
63997	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63998	//       "required": true,
63999	//       "type": "string"
64000	//     },
64001	//     "region": {
64002	//       "description": "Name of the region scoping this request.",
64003	//       "location": "path",
64004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64005	//       "required": true,
64006	//       "type": "string"
64007	//     }
64008	//   },
64009	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
64010	//   "response": {
64011	//     "$ref": "ForwardingRule"
64012	//   },
64013	//   "scopes": [
64014	//     "https://www.googleapis.com/auth/cloud-platform",
64015	//     "https://www.googleapis.com/auth/compute",
64016	//     "https://www.googleapis.com/auth/compute.readonly"
64017	//   ]
64018	// }
64019
64020}
64021
64022// method id "compute.forwardingRules.insert":
64023
64024type ForwardingRulesInsertCall struct {
64025	s              *Service
64026	project        string
64027	region         string
64028	forwardingrule *ForwardingRule
64029	urlParams_     gensupport.URLParams
64030	ctx_           context.Context
64031	header_        http.Header
64032}
64033
64034// Insert: Creates a ForwardingRule resource in the specified project
64035// and region using the data included in the request.
64036// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
64037func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
64038	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64039	c.project = project
64040	c.region = region
64041	c.forwardingrule = forwardingrule
64042	return c
64043}
64044
64045// RequestId sets the optional parameter "requestId": An optional
64046// request ID to identify requests. Specify a unique request ID so that
64047// if you must retry your request, the server will know to ignore the
64048// request if it has already been completed.
64049//
64050// For example, consider a situation where you make an initial request
64051// and the request times out. If you make the request again with the
64052// same request ID, the server can check if original operation with the
64053// same request ID was received, and if so, will ignore the second
64054// request. This prevents clients from accidentally creating duplicate
64055// commitments.
64056//
64057// The request ID must be a valid UUID with the exception that zero UUID
64058// is not supported (00000000-0000-0000-0000-000000000000).
64059func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
64060	c.urlParams_.Set("requestId", requestId)
64061	return c
64062}
64063
64064// Fields allows partial responses to be retrieved. See
64065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64066// for more information.
64067func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
64068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64069	return c
64070}
64071
64072// Context sets the context to be used in this call's Do method. Any
64073// pending HTTP request will be aborted if the provided context is
64074// canceled.
64075func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
64076	c.ctx_ = ctx
64077	return c
64078}
64079
64080// Header returns an http.Header that can be modified by the caller to
64081// add HTTP headers to the request.
64082func (c *ForwardingRulesInsertCall) Header() http.Header {
64083	if c.header_ == nil {
64084		c.header_ = make(http.Header)
64085	}
64086	return c.header_
64087}
64088
64089func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
64090	reqHeaders := make(http.Header)
64091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
64092	for k, v := range c.header_ {
64093		reqHeaders[k] = v
64094	}
64095	reqHeaders.Set("User-Agent", c.s.userAgent())
64096	var body io.Reader = nil
64097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
64098	if err != nil {
64099		return nil, err
64100	}
64101	reqHeaders.Set("Content-Type", "application/json")
64102	c.urlParams_.Set("alt", alt)
64103	c.urlParams_.Set("prettyPrint", "false")
64104	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
64105	urls += "?" + c.urlParams_.Encode()
64106	req, err := http.NewRequest("POST", urls, body)
64107	if err != nil {
64108		return nil, err
64109	}
64110	req.Header = reqHeaders
64111	googleapi.Expand(req.URL, map[string]string{
64112		"project": c.project,
64113		"region":  c.region,
64114	})
64115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64116}
64117
64118// Do executes the "compute.forwardingRules.insert" call.
64119// Exactly one of *Operation or error will be non-nil. Any non-2xx
64120// status code is an error. Response headers are in either
64121// *Operation.ServerResponse.Header or (if a response was returned at
64122// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64123// to check whether the returned error was because
64124// http.StatusNotModified was returned.
64125func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64126	gensupport.SetOptions(c.urlParams_, opts...)
64127	res, err := c.doRequest("json")
64128	if res != nil && res.StatusCode == http.StatusNotModified {
64129		if res.Body != nil {
64130			res.Body.Close()
64131		}
64132		return nil, &googleapi.Error{
64133			Code:   res.StatusCode,
64134			Header: res.Header,
64135		}
64136	}
64137	if err != nil {
64138		return nil, err
64139	}
64140	defer googleapi.CloseBody(res)
64141	if err := googleapi.CheckResponse(res); err != nil {
64142		return nil, err
64143	}
64144	ret := &Operation{
64145		ServerResponse: googleapi.ServerResponse{
64146			Header:         res.Header,
64147			HTTPStatusCode: res.StatusCode,
64148		},
64149	}
64150	target := &ret
64151	if err := gensupport.DecodeResponse(target, res); err != nil {
64152		return nil, err
64153	}
64154	return ret, nil
64155	// {
64156	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
64157	//   "httpMethod": "POST",
64158	//   "id": "compute.forwardingRules.insert",
64159	//   "parameterOrder": [
64160	//     "project",
64161	//     "region"
64162	//   ],
64163	//   "parameters": {
64164	//     "project": {
64165	//       "description": "Project ID for this request.",
64166	//       "location": "path",
64167	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64168	//       "required": true,
64169	//       "type": "string"
64170	//     },
64171	//     "region": {
64172	//       "description": "Name of the region scoping this request.",
64173	//       "location": "path",
64174	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64175	//       "required": true,
64176	//       "type": "string"
64177	//     },
64178	//     "requestId": {
64179	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64180	//       "location": "query",
64181	//       "type": "string"
64182	//     }
64183	//   },
64184	//   "path": "{project}/regions/{region}/forwardingRules",
64185	//   "request": {
64186	//     "$ref": "ForwardingRule"
64187	//   },
64188	//   "response": {
64189	//     "$ref": "Operation"
64190	//   },
64191	//   "scopes": [
64192	//     "https://www.googleapis.com/auth/cloud-platform",
64193	//     "https://www.googleapis.com/auth/compute"
64194	//   ]
64195	// }
64196
64197}
64198
64199// method id "compute.forwardingRules.list":
64200
64201type ForwardingRulesListCall struct {
64202	s            *Service
64203	project      string
64204	region       string
64205	urlParams_   gensupport.URLParams
64206	ifNoneMatch_ string
64207	ctx_         context.Context
64208	header_      http.Header
64209}
64210
64211// List: Retrieves a list of ForwardingRule resources available to the
64212// specified project and region.
64213// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
64214func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
64215	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64216	c.project = project
64217	c.region = region
64218	return c
64219}
64220
64221// Filter sets the optional parameter "filter": A filter expression that
64222// filters resources listed in the response. The expression must specify
64223// the field name, a comparison operator, and the value that you want to
64224// use for filtering. The value must be a string, a number, or a
64225// boolean. The comparison operator must be either `=`, `!=`, `>`, or
64226// `<`.
64227//
64228// For example, if you are filtering Compute Engine instances, you can
64229// exclude instances named `example-instance` by specifying `name !=
64230// example-instance`.
64231//
64232// You can also filter nested fields. For example, you could specify
64233// `scheduling.automaticRestart = false` to include instances only if
64234// they are not scheduled for automatic restarts. You can use filtering
64235// on nested fields to filter based on resource labels.
64236//
64237// To filter on multiple expressions, provide each separate expression
64238// within parentheses. For example: ``` (scheduling.automaticRestart =
64239// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
64240// is an `AND` expression. However, you can include `AND` and `OR`
64241// expressions explicitly. For example: ``` (cpuPlatform = "Intel
64242// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
64243// (scheduling.automaticRestart = true) ```
64244func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
64245	c.urlParams_.Set("filter", filter)
64246	return c
64247}
64248
64249// MaxResults sets the optional parameter "maxResults": The maximum
64250// number of results per page that should be returned. If the number of
64251// available results is larger than `maxResults`, Compute Engine returns
64252// a `nextPageToken` that can be used to get the next page of results in
64253// subsequent list requests. Acceptable values are `0` to `500`,
64254// inclusive. (Default: `500`)
64255func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
64256	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64257	return c
64258}
64259
64260// OrderBy sets the optional parameter "orderBy": Sorts list results by
64261// a certain order. By default, results are returned in alphanumerical
64262// order based on the resource name.
64263//
64264// You can also sort results in descending order based on the creation
64265// timestamp using `orderBy="creationTimestamp desc". This sorts
64266// results based on the `creationTimestamp` field in reverse
64267// chronological order (newest result first). Use this to sort resources
64268// like operations so that the newest operation is returned
64269// first.
64270//
64271// Currently, only sorting by `name` or `creationTimestamp desc` is
64272// supported.
64273func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
64274	c.urlParams_.Set("orderBy", orderBy)
64275	return c
64276}
64277
64278// PageToken sets the optional parameter "pageToken": Specifies a page
64279// token to use. Set `pageToken` to the `nextPageToken` returned by a
64280// previous list request to get the next page of results.
64281func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
64282	c.urlParams_.Set("pageToken", pageToken)
64283	return c
64284}
64285
64286// ReturnPartialSuccess sets the optional parameter
64287// "returnPartialSuccess": Opt-in for partial success behavior which
64288// provides partial results in case of failure. The default value is
64289// false and the logic is the same as today.
64290func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall {
64291	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
64292	return c
64293}
64294
64295// Fields allows partial responses to be retrieved. See
64296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64297// for more information.
64298func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
64299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64300	return c
64301}
64302
64303// IfNoneMatch sets the optional parameter which makes the operation
64304// fail if the object's ETag matches the given value. This is useful for
64305// getting updates only after the object has changed since the last
64306// request. Use googleapi.IsNotModified to check whether the response
64307// error from Do is the result of In-None-Match.
64308func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
64309	c.ifNoneMatch_ = entityTag
64310	return c
64311}
64312
64313// Context sets the context to be used in this call's Do method. Any
64314// pending HTTP request will be aborted if the provided context is
64315// canceled.
64316func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
64317	c.ctx_ = ctx
64318	return c
64319}
64320
64321// Header returns an http.Header that can be modified by the caller to
64322// add HTTP headers to the request.
64323func (c *ForwardingRulesListCall) Header() http.Header {
64324	if c.header_ == nil {
64325		c.header_ = make(http.Header)
64326	}
64327	return c.header_
64328}
64329
64330func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
64331	reqHeaders := make(http.Header)
64332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
64333	for k, v := range c.header_ {
64334		reqHeaders[k] = v
64335	}
64336	reqHeaders.Set("User-Agent", c.s.userAgent())
64337	if c.ifNoneMatch_ != "" {
64338		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64339	}
64340	var body io.Reader = nil
64341	c.urlParams_.Set("alt", alt)
64342	c.urlParams_.Set("prettyPrint", "false")
64343	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
64344	urls += "?" + c.urlParams_.Encode()
64345	req, err := http.NewRequest("GET", urls, body)
64346	if err != nil {
64347		return nil, err
64348	}
64349	req.Header = reqHeaders
64350	googleapi.Expand(req.URL, map[string]string{
64351		"project": c.project,
64352		"region":  c.region,
64353	})
64354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64355}
64356
64357// Do executes the "compute.forwardingRules.list" call.
64358// Exactly one of *ForwardingRuleList or error will be non-nil. Any
64359// non-2xx status code is an error. Response headers are in either
64360// *ForwardingRuleList.ServerResponse.Header or (if a response was
64361// returned at all) in error.(*googleapi.Error).Header. Use
64362// googleapi.IsNotModified to check whether the returned error was
64363// because http.StatusNotModified was returned.
64364func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
64365	gensupport.SetOptions(c.urlParams_, opts...)
64366	res, err := c.doRequest("json")
64367	if res != nil && res.StatusCode == http.StatusNotModified {
64368		if res.Body != nil {
64369			res.Body.Close()
64370		}
64371		return nil, &googleapi.Error{
64372			Code:   res.StatusCode,
64373			Header: res.Header,
64374		}
64375	}
64376	if err != nil {
64377		return nil, err
64378	}
64379	defer googleapi.CloseBody(res)
64380	if err := googleapi.CheckResponse(res); err != nil {
64381		return nil, err
64382	}
64383	ret := &ForwardingRuleList{
64384		ServerResponse: googleapi.ServerResponse{
64385			Header:         res.Header,
64386			HTTPStatusCode: res.StatusCode,
64387		},
64388	}
64389	target := &ret
64390	if err := gensupport.DecodeResponse(target, res); err != nil {
64391		return nil, err
64392	}
64393	return ret, nil
64394	// {
64395	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
64396	//   "httpMethod": "GET",
64397	//   "id": "compute.forwardingRules.list",
64398	//   "parameterOrder": [
64399	//     "project",
64400	//     "region"
64401	//   ],
64402	//   "parameters": {
64403	//     "filter": {
64404	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
64405	//       "location": "query",
64406	//       "type": "string"
64407	//     },
64408	//     "maxResults": {
64409	//       "default": "500",
64410	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64411	//       "format": "uint32",
64412	//       "location": "query",
64413	//       "minimum": "0",
64414	//       "type": "integer"
64415	//     },
64416	//     "orderBy": {
64417	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
64418	//       "location": "query",
64419	//       "type": "string"
64420	//     },
64421	//     "pageToken": {
64422	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64423	//       "location": "query",
64424	//       "type": "string"
64425	//     },
64426	//     "project": {
64427	//       "description": "Project ID for this request.",
64428	//       "location": "path",
64429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64430	//       "required": true,
64431	//       "type": "string"
64432	//     },
64433	//     "region": {
64434	//       "description": "Name of the region scoping this request.",
64435	//       "location": "path",
64436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64437	//       "required": true,
64438	//       "type": "string"
64439	//     },
64440	//     "returnPartialSuccess": {
64441	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
64442	//       "location": "query",
64443	//       "type": "boolean"
64444	//     }
64445	//   },
64446	//   "path": "{project}/regions/{region}/forwardingRules",
64447	//   "response": {
64448	//     "$ref": "ForwardingRuleList"
64449	//   },
64450	//   "scopes": [
64451	//     "https://www.googleapis.com/auth/cloud-platform",
64452	//     "https://www.googleapis.com/auth/compute",
64453	//     "https://www.googleapis.com/auth/compute.readonly"
64454	//   ]
64455	// }
64456
64457}
64458
64459// Pages invokes f for each page of results.
64460// A non-nil error returned from f will halt the iteration.
64461// The provided context supersedes any context provided to the Context method.
64462func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
64463	c.ctx_ = ctx
64464	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64465	for {
64466		x, err := c.Do()
64467		if err != nil {
64468			return err
64469		}
64470		if err := f(x); err != nil {
64471			return err
64472		}
64473		if x.NextPageToken == "" {
64474			return nil
64475		}
64476		c.PageToken(x.NextPageToken)
64477	}
64478}
64479
64480// method id "compute.forwardingRules.patch":
64481
64482type ForwardingRulesPatchCall struct {
64483	s              *Service
64484	project        string
64485	region         string
64486	forwardingRule string
64487	forwardingrule *ForwardingRule
64488	urlParams_     gensupport.URLParams
64489	ctx_           context.Context
64490	header_        http.Header
64491}
64492
64493// Patch: Updates the specified forwarding rule with the data included
64494// in the request. This method supports PATCH semantics and uses the
64495// JSON merge patch format and processing rules. Currently, you can only
64496// patch the network_tier field.
64497func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
64498	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64499	c.project = project
64500	c.region = region
64501	c.forwardingRule = forwardingRule
64502	c.forwardingrule = forwardingrule
64503	return c
64504}
64505
64506// RequestId sets the optional parameter "requestId": An optional
64507// request ID to identify requests. Specify a unique request ID so that
64508// if you must retry your request, the server will know to ignore the
64509// request if it has already been completed.
64510//
64511// For example, consider a situation where you make an initial request
64512// and the request times out. If you make the request again with the
64513// same request ID, the server can check if original operation with the
64514// same request ID was received, and if so, will ignore the second
64515// request. This prevents clients from accidentally creating duplicate
64516// commitments.
64517//
64518// The request ID must be a valid UUID with the exception that zero UUID
64519// is not supported (00000000-0000-0000-0000-000000000000).
64520func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
64521	c.urlParams_.Set("requestId", requestId)
64522	return c
64523}
64524
64525// Fields allows partial responses to be retrieved. See
64526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64527// for more information.
64528func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
64529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64530	return c
64531}
64532
64533// Context sets the context to be used in this call's Do method. Any
64534// pending HTTP request will be aborted if the provided context is
64535// canceled.
64536func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
64537	c.ctx_ = ctx
64538	return c
64539}
64540
64541// Header returns an http.Header that can be modified by the caller to
64542// add HTTP headers to the request.
64543func (c *ForwardingRulesPatchCall) Header() http.Header {
64544	if c.header_ == nil {
64545		c.header_ = make(http.Header)
64546	}
64547	return c.header_
64548}
64549
64550func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
64551	reqHeaders := make(http.Header)
64552	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
64553	for k, v := range c.header_ {
64554		reqHeaders[k] = v
64555	}
64556	reqHeaders.Set("User-Agent", c.s.userAgent())
64557	var body io.Reader = nil
64558	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
64559	if err != nil {
64560		return nil, err
64561	}
64562	reqHeaders.Set("Content-Type", "application/json")
64563	c.urlParams_.Set("alt", alt)
64564	c.urlParams_.Set("prettyPrint", "false")
64565	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
64566	urls += "?" + c.urlParams_.Encode()
64567	req, err := http.NewRequest("PATCH", urls, body)
64568	if err != nil {
64569		return nil, err
64570	}
64571	req.Header = reqHeaders
64572	googleapi.Expand(req.URL, map[string]string{
64573		"project":        c.project,
64574		"region":         c.region,
64575		"forwardingRule": c.forwardingRule,
64576	})
64577	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64578}
64579
64580// Do executes the "compute.forwardingRules.patch" call.
64581// Exactly one of *Operation or error will be non-nil. Any non-2xx
64582// status code is an error. Response headers are in either
64583// *Operation.ServerResponse.Header or (if a response was returned at
64584// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64585// to check whether the returned error was because
64586// http.StatusNotModified was returned.
64587func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64588	gensupport.SetOptions(c.urlParams_, opts...)
64589	res, err := c.doRequest("json")
64590	if res != nil && res.StatusCode == http.StatusNotModified {
64591		if res.Body != nil {
64592			res.Body.Close()
64593		}
64594		return nil, &googleapi.Error{
64595			Code:   res.StatusCode,
64596			Header: res.Header,
64597		}
64598	}
64599	if err != nil {
64600		return nil, err
64601	}
64602	defer googleapi.CloseBody(res)
64603	if err := googleapi.CheckResponse(res); err != nil {
64604		return nil, err
64605	}
64606	ret := &Operation{
64607		ServerResponse: googleapi.ServerResponse{
64608			Header:         res.Header,
64609			HTTPStatusCode: res.StatusCode,
64610		},
64611	}
64612	target := &ret
64613	if err := gensupport.DecodeResponse(target, res); err != nil {
64614		return nil, err
64615	}
64616	return ret, nil
64617	// {
64618	//   "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.",
64619	//   "httpMethod": "PATCH",
64620	//   "id": "compute.forwardingRules.patch",
64621	//   "parameterOrder": [
64622	//     "project",
64623	//     "region",
64624	//     "forwardingRule"
64625	//   ],
64626	//   "parameters": {
64627	//     "forwardingRule": {
64628	//       "description": "Name of the ForwardingRule resource to patch.",
64629	//       "location": "path",
64630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64631	//       "required": true,
64632	//       "type": "string"
64633	//     },
64634	//     "project": {
64635	//       "description": "Project ID for this request.",
64636	//       "location": "path",
64637	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64638	//       "required": true,
64639	//       "type": "string"
64640	//     },
64641	//     "region": {
64642	//       "description": "Name of the region scoping this request.",
64643	//       "location": "path",
64644	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64645	//       "required": true,
64646	//       "type": "string"
64647	//     },
64648	//     "requestId": {
64649	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64650	//       "location": "query",
64651	//       "type": "string"
64652	//     }
64653	//   },
64654	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
64655	//   "request": {
64656	//     "$ref": "ForwardingRule"
64657	//   },
64658	//   "response": {
64659	//     "$ref": "Operation"
64660	//   },
64661	//   "scopes": [
64662	//     "https://www.googleapis.com/auth/cloud-platform",
64663	//     "https://www.googleapis.com/auth/compute"
64664	//   ]
64665	// }
64666
64667}
64668
64669// method id "compute.forwardingRules.setLabels":
64670
64671type ForwardingRulesSetLabelsCall struct {
64672	s                      *Service
64673	project                string
64674	region                 string
64675	resource               string
64676	regionsetlabelsrequest *RegionSetLabelsRequest
64677	urlParams_             gensupport.URLParams
64678	ctx_                   context.Context
64679	header_                http.Header
64680}
64681
64682// SetLabels: Sets the labels on the specified resource. To learn more
64683// about labels, read the Labeling Resources documentation.
64684func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
64685	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64686	c.project = project
64687	c.region = region
64688	c.resource = resource
64689	c.regionsetlabelsrequest = regionsetlabelsrequest
64690	return c
64691}
64692
64693// RequestId sets the optional parameter "requestId": An optional
64694// request ID to identify requests. Specify a unique request ID so that
64695// if you must retry your request, the server will know to ignore the
64696// request if it has already been completed.
64697//
64698// For example, consider a situation where you make an initial request
64699// and the request times out. If you make the request again with the
64700// same request ID, the server can check if original operation with the
64701// same request ID was received, and if so, will ignore the second
64702// request. This prevents clients from accidentally creating duplicate
64703// commitments.
64704//
64705// The request ID must be a valid UUID with the exception that zero UUID
64706// is not supported (00000000-0000-0000-0000-000000000000).
64707func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
64708	c.urlParams_.Set("requestId", requestId)
64709	return c
64710}
64711
64712// Fields allows partial responses to be retrieved. See
64713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64714// for more information.
64715func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
64716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64717	return c
64718}
64719
64720// Context sets the context to be used in this call's Do method. Any
64721// pending HTTP request will be aborted if the provided context is
64722// canceled.
64723func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
64724	c.ctx_ = ctx
64725	return c
64726}
64727
64728// Header returns an http.Header that can be modified by the caller to
64729// add HTTP headers to the request.
64730func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
64731	if c.header_ == nil {
64732		c.header_ = make(http.Header)
64733	}
64734	return c.header_
64735}
64736
64737func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
64738	reqHeaders := make(http.Header)
64739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
64740	for k, v := range c.header_ {
64741		reqHeaders[k] = v
64742	}
64743	reqHeaders.Set("User-Agent", c.s.userAgent())
64744	var body io.Reader = nil
64745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
64746	if err != nil {
64747		return nil, err
64748	}
64749	reqHeaders.Set("Content-Type", "application/json")
64750	c.urlParams_.Set("alt", alt)
64751	c.urlParams_.Set("prettyPrint", "false")
64752	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/setLabels")
64753	urls += "?" + c.urlParams_.Encode()
64754	req, err := http.NewRequest("POST", urls, body)
64755	if err != nil {
64756		return nil, err
64757	}
64758	req.Header = reqHeaders
64759	googleapi.Expand(req.URL, map[string]string{
64760		"project":  c.project,
64761		"region":   c.region,
64762		"resource": c.resource,
64763	})
64764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64765}
64766
64767// Do executes the "compute.forwardingRules.setLabels" call.
64768// Exactly one of *Operation or error will be non-nil. Any non-2xx
64769// status code is an error. Response headers are in either
64770// *Operation.ServerResponse.Header or (if a response was returned at
64771// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64772// to check whether the returned error was because
64773// http.StatusNotModified was returned.
64774func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64775	gensupport.SetOptions(c.urlParams_, opts...)
64776	res, err := c.doRequest("json")
64777	if res != nil && res.StatusCode == http.StatusNotModified {
64778		if res.Body != nil {
64779			res.Body.Close()
64780		}
64781		return nil, &googleapi.Error{
64782			Code:   res.StatusCode,
64783			Header: res.Header,
64784		}
64785	}
64786	if err != nil {
64787		return nil, err
64788	}
64789	defer googleapi.CloseBody(res)
64790	if err := googleapi.CheckResponse(res); err != nil {
64791		return nil, err
64792	}
64793	ret := &Operation{
64794		ServerResponse: googleapi.ServerResponse{
64795			Header:         res.Header,
64796			HTTPStatusCode: res.StatusCode,
64797		},
64798	}
64799	target := &ret
64800	if err := gensupport.DecodeResponse(target, res); err != nil {
64801		return nil, err
64802	}
64803	return ret, nil
64804	// {
64805	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
64806	//   "httpMethod": "POST",
64807	//   "id": "compute.forwardingRules.setLabels",
64808	//   "parameterOrder": [
64809	//     "project",
64810	//     "region",
64811	//     "resource"
64812	//   ],
64813	//   "parameters": {
64814	//     "project": {
64815	//       "description": "Project ID for this request.",
64816	//       "location": "path",
64817	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64818	//       "required": true,
64819	//       "type": "string"
64820	//     },
64821	//     "region": {
64822	//       "description": "The region for this request.",
64823	//       "location": "path",
64824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64825	//       "required": true,
64826	//       "type": "string"
64827	//     },
64828	//     "requestId": {
64829	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64830	//       "location": "query",
64831	//       "type": "string"
64832	//     },
64833	//     "resource": {
64834	//       "description": "Name or id of the resource for this request.",
64835	//       "location": "path",
64836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64837	//       "required": true,
64838	//       "type": "string"
64839	//     }
64840	//   },
64841	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/setLabels",
64842	//   "request": {
64843	//     "$ref": "RegionSetLabelsRequest"
64844	//   },
64845	//   "response": {
64846	//     "$ref": "Operation"
64847	//   },
64848	//   "scopes": [
64849	//     "https://www.googleapis.com/auth/cloud-platform",
64850	//     "https://www.googleapis.com/auth/compute"
64851	//   ]
64852	// }
64853
64854}
64855
64856// method id "compute.forwardingRules.setTarget":
64857
64858type ForwardingRulesSetTargetCall struct {
64859	s               *Service
64860	project         string
64861	region          string
64862	forwardingRule  string
64863	targetreference *TargetReference
64864	urlParams_      gensupport.URLParams
64865	ctx_            context.Context
64866	header_         http.Header
64867}
64868
64869// SetTarget: Changes target URL for forwarding rule. The new target
64870// should be of the same type as the old target.
64871// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
64872func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
64873	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64874	c.project = project
64875	c.region = region
64876	c.forwardingRule = forwardingRule
64877	c.targetreference = targetreference
64878	return c
64879}
64880
64881// RequestId sets the optional parameter "requestId": An optional
64882// request ID to identify requests. Specify a unique request ID so that
64883// if you must retry your request, the server will know to ignore the
64884// request if it has already been completed.
64885//
64886// For example, consider a situation where you make an initial request
64887// and the request times out. If you make the request again with the
64888// same request ID, the server can check if original operation with the
64889// same request ID was received, and if so, will ignore the second
64890// request. This prevents clients from accidentally creating duplicate
64891// commitments.
64892//
64893// The request ID must be a valid UUID with the exception that zero UUID
64894// is not supported (00000000-0000-0000-0000-000000000000).
64895func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
64896	c.urlParams_.Set("requestId", requestId)
64897	return c
64898}
64899
64900// Fields allows partial responses to be retrieved. See
64901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64902// for more information.
64903func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
64904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64905	return c
64906}
64907
64908// Context sets the context to be used in this call's Do method. Any
64909// pending HTTP request will be aborted if the provided context is
64910// canceled.
64911func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
64912	c.ctx_ = ctx
64913	return c
64914}
64915
64916// Header returns an http.Header that can be modified by the caller to
64917// add HTTP headers to the request.
64918func (c *ForwardingRulesSetTargetCall) Header() http.Header {
64919	if c.header_ == nil {
64920		c.header_ = make(http.Header)
64921	}
64922	return c.header_
64923}
64924
64925func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
64926	reqHeaders := make(http.Header)
64927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
64928	for k, v := range c.header_ {
64929		reqHeaders[k] = v
64930	}
64931	reqHeaders.Set("User-Agent", c.s.userAgent())
64932	var body io.Reader = nil
64933	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
64934	if err != nil {
64935		return nil, err
64936	}
64937	reqHeaders.Set("Content-Type", "application/json")
64938	c.urlParams_.Set("alt", alt)
64939	c.urlParams_.Set("prettyPrint", "false")
64940	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
64941	urls += "?" + c.urlParams_.Encode()
64942	req, err := http.NewRequest("POST", urls, body)
64943	if err != nil {
64944		return nil, err
64945	}
64946	req.Header = reqHeaders
64947	googleapi.Expand(req.URL, map[string]string{
64948		"project":        c.project,
64949		"region":         c.region,
64950		"forwardingRule": c.forwardingRule,
64951	})
64952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64953}
64954
64955// Do executes the "compute.forwardingRules.setTarget" call.
64956// Exactly one of *Operation or error will be non-nil. Any non-2xx
64957// status code is an error. Response headers are in either
64958// *Operation.ServerResponse.Header or (if a response was returned at
64959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64960// to check whether the returned error was because
64961// http.StatusNotModified was returned.
64962func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64963	gensupport.SetOptions(c.urlParams_, opts...)
64964	res, err := c.doRequest("json")
64965	if res != nil && res.StatusCode == http.StatusNotModified {
64966		if res.Body != nil {
64967			res.Body.Close()
64968		}
64969		return nil, &googleapi.Error{
64970			Code:   res.StatusCode,
64971			Header: res.Header,
64972		}
64973	}
64974	if err != nil {
64975		return nil, err
64976	}
64977	defer googleapi.CloseBody(res)
64978	if err := googleapi.CheckResponse(res); err != nil {
64979		return nil, err
64980	}
64981	ret := &Operation{
64982		ServerResponse: googleapi.ServerResponse{
64983			Header:         res.Header,
64984			HTTPStatusCode: res.StatusCode,
64985		},
64986	}
64987	target := &ret
64988	if err := gensupport.DecodeResponse(target, res); err != nil {
64989		return nil, err
64990	}
64991	return ret, nil
64992	// {
64993	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
64994	//   "httpMethod": "POST",
64995	//   "id": "compute.forwardingRules.setTarget",
64996	//   "parameterOrder": [
64997	//     "project",
64998	//     "region",
64999	//     "forwardingRule"
65000	//   ],
65001	//   "parameters": {
65002	//     "forwardingRule": {
65003	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
65004	//       "location": "path",
65005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65006	//       "required": true,
65007	//       "type": "string"
65008	//     },
65009	//     "project": {
65010	//       "description": "Project ID for this request.",
65011	//       "location": "path",
65012	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65013	//       "required": true,
65014	//       "type": "string"
65015	//     },
65016	//     "region": {
65017	//       "description": "Name of the region scoping this request.",
65018	//       "location": "path",
65019	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65020	//       "required": true,
65021	//       "type": "string"
65022	//     },
65023	//     "requestId": {
65024	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65025	//       "location": "query",
65026	//       "type": "string"
65027	//     }
65028	//   },
65029	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
65030	//   "request": {
65031	//     "$ref": "TargetReference"
65032	//   },
65033	//   "response": {
65034	//     "$ref": "Operation"
65035	//   },
65036	//   "scopes": [
65037	//     "https://www.googleapis.com/auth/cloud-platform",
65038	//     "https://www.googleapis.com/auth/compute"
65039	//   ]
65040	// }
65041
65042}
65043
65044// method id "compute.forwardingRules.testIamPermissions":
65045
65046type ForwardingRulesTestIamPermissionsCall struct {
65047	s                      *Service
65048	project                string
65049	region                 string
65050	resource               string
65051	testpermissionsrequest *TestPermissionsRequest
65052	urlParams_             gensupport.URLParams
65053	ctx_                   context.Context
65054	header_                http.Header
65055}
65056
65057// TestIamPermissions: Returns permissions that a caller has on the
65058// specified resource.
65059func (r *ForwardingRulesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ForwardingRulesTestIamPermissionsCall {
65060	c := &ForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65061	c.project = project
65062	c.region = region
65063	c.resource = resource
65064	c.testpermissionsrequest = testpermissionsrequest
65065	return c
65066}
65067
65068// Fields allows partial responses to be retrieved. See
65069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65070// for more information.
65071func (c *ForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ForwardingRulesTestIamPermissionsCall {
65072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65073	return c
65074}
65075
65076// Context sets the context to be used in this call's Do method. Any
65077// pending HTTP request will be aborted if the provided context is
65078// canceled.
65079func (c *ForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *ForwardingRulesTestIamPermissionsCall {
65080	c.ctx_ = ctx
65081	return c
65082}
65083
65084// Header returns an http.Header that can be modified by the caller to
65085// add HTTP headers to the request.
65086func (c *ForwardingRulesTestIamPermissionsCall) Header() http.Header {
65087	if c.header_ == nil {
65088		c.header_ = make(http.Header)
65089	}
65090	return c.header_
65091}
65092
65093func (c *ForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65094	reqHeaders := make(http.Header)
65095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
65096	for k, v := range c.header_ {
65097		reqHeaders[k] = v
65098	}
65099	reqHeaders.Set("User-Agent", c.s.userAgent())
65100	var body io.Reader = nil
65101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65102	if err != nil {
65103		return nil, err
65104	}
65105	reqHeaders.Set("Content-Type", "application/json")
65106	c.urlParams_.Set("alt", alt)
65107	c.urlParams_.Set("prettyPrint", "false")
65108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions")
65109	urls += "?" + c.urlParams_.Encode()
65110	req, err := http.NewRequest("POST", urls, body)
65111	if err != nil {
65112		return nil, err
65113	}
65114	req.Header = reqHeaders
65115	googleapi.Expand(req.URL, map[string]string{
65116		"project":  c.project,
65117		"region":   c.region,
65118		"resource": c.resource,
65119	})
65120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65121}
65122
65123// Do executes the "compute.forwardingRules.testIamPermissions" call.
65124// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65125// non-2xx status code is an error. Response headers are in either
65126// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65127// returned at all) in error.(*googleapi.Error).Header. Use
65128// googleapi.IsNotModified to check whether the returned error was
65129// because http.StatusNotModified was returned.
65130func (c *ForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65131	gensupport.SetOptions(c.urlParams_, opts...)
65132	res, err := c.doRequest("json")
65133	if res != nil && res.StatusCode == http.StatusNotModified {
65134		if res.Body != nil {
65135			res.Body.Close()
65136		}
65137		return nil, &googleapi.Error{
65138			Code:   res.StatusCode,
65139			Header: res.Header,
65140		}
65141	}
65142	if err != nil {
65143		return nil, err
65144	}
65145	defer googleapi.CloseBody(res)
65146	if err := googleapi.CheckResponse(res); err != nil {
65147		return nil, err
65148	}
65149	ret := &TestPermissionsResponse{
65150		ServerResponse: googleapi.ServerResponse{
65151			Header:         res.Header,
65152			HTTPStatusCode: res.StatusCode,
65153		},
65154	}
65155	target := &ret
65156	if err := gensupport.DecodeResponse(target, res); err != nil {
65157		return nil, err
65158	}
65159	return ret, nil
65160	// {
65161	//   "description": "Returns permissions that a caller has on the specified resource.",
65162	//   "httpMethod": "POST",
65163	//   "id": "compute.forwardingRules.testIamPermissions",
65164	//   "parameterOrder": [
65165	//     "project",
65166	//     "region",
65167	//     "resource"
65168	//   ],
65169	//   "parameters": {
65170	//     "project": {
65171	//       "description": "Project ID for this request.",
65172	//       "location": "path",
65173	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65174	//       "required": true,
65175	//       "type": "string"
65176	//     },
65177	//     "region": {
65178	//       "description": "The name of the region for this request.",
65179	//       "location": "path",
65180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65181	//       "required": true,
65182	//       "type": "string"
65183	//     },
65184	//     "resource": {
65185	//       "description": "Name or id of the resource for this request.",
65186	//       "location": "path",
65187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65188	//       "required": true,
65189	//       "type": "string"
65190	//     }
65191	//   },
65192	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions",
65193	//   "request": {
65194	//     "$ref": "TestPermissionsRequest"
65195	//   },
65196	//   "response": {
65197	//     "$ref": "TestPermissionsResponse"
65198	//   },
65199	//   "scopes": [
65200	//     "https://www.googleapis.com/auth/cloud-platform",
65201	//     "https://www.googleapis.com/auth/compute",
65202	//     "https://www.googleapis.com/auth/compute.readonly"
65203	//   ]
65204	// }
65205
65206}
65207
65208// method id "compute.globalAddresses.delete":
65209
65210type GlobalAddressesDeleteCall struct {
65211	s          *Service
65212	project    string
65213	address    string
65214	urlParams_ gensupport.URLParams
65215	ctx_       context.Context
65216	header_    http.Header
65217}
65218
65219// Delete: Deletes the specified address resource.
65220// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
65221func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
65222	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65223	c.project = project
65224	c.address = address
65225	return c
65226}
65227
65228// RequestId sets the optional parameter "requestId": An optional
65229// request ID to identify requests. Specify a unique request ID so that
65230// if you must retry your request, the server will know to ignore the
65231// request if it has already been completed.
65232//
65233// For example, consider a situation where you make an initial request
65234// and the request times out. If you make the request again with the
65235// same request ID, the server can check if original operation with the
65236// same request ID was received, and if so, will ignore the second
65237// request. This prevents clients from accidentally creating duplicate
65238// commitments.
65239//
65240// The request ID must be a valid UUID with the exception that zero UUID
65241// is not supported (00000000-0000-0000-0000-000000000000).
65242func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
65243	c.urlParams_.Set("requestId", requestId)
65244	return c
65245}
65246
65247// Fields allows partial responses to be retrieved. See
65248// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65249// for more information.
65250func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
65251	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65252	return c
65253}
65254
65255// Context sets the context to be used in this call's Do method. Any
65256// pending HTTP request will be aborted if the provided context is
65257// canceled.
65258func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
65259	c.ctx_ = ctx
65260	return c
65261}
65262
65263// Header returns an http.Header that can be modified by the caller to
65264// add HTTP headers to the request.
65265func (c *GlobalAddressesDeleteCall) Header() http.Header {
65266	if c.header_ == nil {
65267		c.header_ = make(http.Header)
65268	}
65269	return c.header_
65270}
65271
65272func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
65273	reqHeaders := make(http.Header)
65274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
65275	for k, v := range c.header_ {
65276		reqHeaders[k] = v
65277	}
65278	reqHeaders.Set("User-Agent", c.s.userAgent())
65279	var body io.Reader = nil
65280	c.urlParams_.Set("alt", alt)
65281	c.urlParams_.Set("prettyPrint", "false")
65282	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
65283	urls += "?" + c.urlParams_.Encode()
65284	req, err := http.NewRequest("DELETE", urls, body)
65285	if err != nil {
65286		return nil, err
65287	}
65288	req.Header = reqHeaders
65289	googleapi.Expand(req.URL, map[string]string{
65290		"project": c.project,
65291		"address": c.address,
65292	})
65293	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65294}
65295
65296// Do executes the "compute.globalAddresses.delete" call.
65297// Exactly one of *Operation or error will be non-nil. Any non-2xx
65298// status code is an error. Response headers are in either
65299// *Operation.ServerResponse.Header or (if a response was returned at
65300// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65301// to check whether the returned error was because
65302// http.StatusNotModified was returned.
65303func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65304	gensupport.SetOptions(c.urlParams_, opts...)
65305	res, err := c.doRequest("json")
65306	if res != nil && res.StatusCode == http.StatusNotModified {
65307		if res.Body != nil {
65308			res.Body.Close()
65309		}
65310		return nil, &googleapi.Error{
65311			Code:   res.StatusCode,
65312			Header: res.Header,
65313		}
65314	}
65315	if err != nil {
65316		return nil, err
65317	}
65318	defer googleapi.CloseBody(res)
65319	if err := googleapi.CheckResponse(res); err != nil {
65320		return nil, err
65321	}
65322	ret := &Operation{
65323		ServerResponse: googleapi.ServerResponse{
65324			Header:         res.Header,
65325			HTTPStatusCode: res.StatusCode,
65326		},
65327	}
65328	target := &ret
65329	if err := gensupport.DecodeResponse(target, res); err != nil {
65330		return nil, err
65331	}
65332	return ret, nil
65333	// {
65334	//   "description": "Deletes the specified address resource.",
65335	//   "httpMethod": "DELETE",
65336	//   "id": "compute.globalAddresses.delete",
65337	//   "parameterOrder": [
65338	//     "project",
65339	//     "address"
65340	//   ],
65341	//   "parameters": {
65342	//     "address": {
65343	//       "description": "Name of the address resource to delete.",
65344	//       "location": "path",
65345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65346	//       "required": true,
65347	//       "type": "string"
65348	//     },
65349	//     "project": {
65350	//       "description": "Project ID for this request.",
65351	//       "location": "path",
65352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65353	//       "required": true,
65354	//       "type": "string"
65355	//     },
65356	//     "requestId": {
65357	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65358	//       "location": "query",
65359	//       "type": "string"
65360	//     }
65361	//   },
65362	//   "path": "{project}/global/addresses/{address}",
65363	//   "response": {
65364	//     "$ref": "Operation"
65365	//   },
65366	//   "scopes": [
65367	//     "https://www.googleapis.com/auth/cloud-platform",
65368	//     "https://www.googleapis.com/auth/compute"
65369	//   ]
65370	// }
65371
65372}
65373
65374// method id "compute.globalAddresses.get":
65375
65376type GlobalAddressesGetCall struct {
65377	s            *Service
65378	project      string
65379	address      string
65380	urlParams_   gensupport.URLParams
65381	ifNoneMatch_ string
65382	ctx_         context.Context
65383	header_      http.Header
65384}
65385
65386// Get: Returns the specified address resource. Gets a list of available
65387// addresses by making a list() request.
65388// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
65389func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
65390	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65391	c.project = project
65392	c.address = address
65393	return c
65394}
65395
65396// Fields allows partial responses to be retrieved. See
65397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65398// for more information.
65399func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
65400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65401	return c
65402}
65403
65404// IfNoneMatch sets the optional parameter which makes the operation
65405// fail if the object's ETag matches the given value. This is useful for
65406// getting updates only after the object has changed since the last
65407// request. Use googleapi.IsNotModified to check whether the response
65408// error from Do is the result of In-None-Match.
65409func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
65410	c.ifNoneMatch_ = entityTag
65411	return c
65412}
65413
65414// Context sets the context to be used in this call's Do method. Any
65415// pending HTTP request will be aborted if the provided context is
65416// canceled.
65417func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
65418	c.ctx_ = ctx
65419	return c
65420}
65421
65422// Header returns an http.Header that can be modified by the caller to
65423// add HTTP headers to the request.
65424func (c *GlobalAddressesGetCall) Header() http.Header {
65425	if c.header_ == nil {
65426		c.header_ = make(http.Header)
65427	}
65428	return c.header_
65429}
65430
65431func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
65432	reqHeaders := make(http.Header)
65433	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
65434	for k, v := range c.header_ {
65435		reqHeaders[k] = v
65436	}
65437	reqHeaders.Set("User-Agent", c.s.userAgent())
65438	if c.ifNoneMatch_ != "" {
65439		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65440	}
65441	var body io.Reader = nil
65442	c.urlParams_.Set("alt", alt)
65443	c.urlParams_.Set("prettyPrint", "false")
65444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
65445	urls += "?" + c.urlParams_.Encode()
65446	req, err := http.NewRequest("GET", urls, body)
65447	if err != nil {
65448		return nil, err
65449	}
65450	req.Header = reqHeaders
65451	googleapi.Expand(req.URL, map[string]string{
65452		"project": c.project,
65453		"address": c.address,
65454	})
65455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65456}
65457
65458// Do executes the "compute.globalAddresses.get" call.
65459// Exactly one of *Address or error will be non-nil. Any non-2xx status
65460// code is an error. Response headers are in either
65461// *Address.ServerResponse.Header or (if a response was returned at all)
65462// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
65463// check whether the returned error was because http.StatusNotModified
65464// was returned.
65465func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
65466	gensupport.SetOptions(c.urlParams_, opts...)
65467	res, err := c.doRequest("json")
65468	if res != nil && res.StatusCode == http.StatusNotModified {
65469		if res.Body != nil {
65470			res.Body.Close()
65471		}
65472		return nil, &googleapi.Error{
65473			Code:   res.StatusCode,
65474			Header: res.Header,
65475		}
65476	}
65477	if err != nil {
65478		return nil, err
65479	}
65480	defer googleapi.CloseBody(res)
65481	if err := googleapi.CheckResponse(res); err != nil {
65482		return nil, err
65483	}
65484	ret := &Address{
65485		ServerResponse: googleapi.ServerResponse{
65486			Header:         res.Header,
65487			HTTPStatusCode: res.StatusCode,
65488		},
65489	}
65490	target := &ret
65491	if err := gensupport.DecodeResponse(target, res); err != nil {
65492		return nil, err
65493	}
65494	return ret, nil
65495	// {
65496	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
65497	//   "httpMethod": "GET",
65498	//   "id": "compute.globalAddresses.get",
65499	//   "parameterOrder": [
65500	//     "project",
65501	//     "address"
65502	//   ],
65503	//   "parameters": {
65504	//     "address": {
65505	//       "description": "Name of the address resource to return.",
65506	//       "location": "path",
65507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65508	//       "required": true,
65509	//       "type": "string"
65510	//     },
65511	//     "project": {
65512	//       "description": "Project ID for this request.",
65513	//       "location": "path",
65514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65515	//       "required": true,
65516	//       "type": "string"
65517	//     }
65518	//   },
65519	//   "path": "{project}/global/addresses/{address}",
65520	//   "response": {
65521	//     "$ref": "Address"
65522	//   },
65523	//   "scopes": [
65524	//     "https://www.googleapis.com/auth/cloud-platform",
65525	//     "https://www.googleapis.com/auth/compute",
65526	//     "https://www.googleapis.com/auth/compute.readonly"
65527	//   ]
65528	// }
65529
65530}
65531
65532// method id "compute.globalAddresses.insert":
65533
65534type GlobalAddressesInsertCall struct {
65535	s          *Service
65536	project    string
65537	address    *Address
65538	urlParams_ gensupport.URLParams
65539	ctx_       context.Context
65540	header_    http.Header
65541}
65542
65543// Insert: Creates an address resource in the specified project by using
65544// the data included in the request.
65545// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
65546func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
65547	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65548	c.project = project
65549	c.address = address
65550	return c
65551}
65552
65553// RequestId sets the optional parameter "requestId": An optional
65554// request ID to identify requests. Specify a unique request ID so that
65555// if you must retry your request, the server will know to ignore the
65556// request if it has already been completed.
65557//
65558// For example, consider a situation where you make an initial request
65559// and the request times out. If you make the request again with the
65560// same request ID, the server can check if original operation with the
65561// same request ID was received, and if so, will ignore the second
65562// request. This prevents clients from accidentally creating duplicate
65563// commitments.
65564//
65565// The request ID must be a valid UUID with the exception that zero UUID
65566// is not supported (00000000-0000-0000-0000-000000000000).
65567func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
65568	c.urlParams_.Set("requestId", requestId)
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 *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
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 *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
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 *GlobalAddressesInsertCall) Header() http.Header {
65591	if c.header_ == nil {
65592		c.header_ = make(http.Header)
65593	}
65594	return c.header_
65595}
65596
65597func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
65598	reqHeaders := make(http.Header)
65599	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
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.address)
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, "{project}/global/addresses")
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		"project": c.project,
65621	})
65622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65623}
65624
65625// Do executes the "compute.globalAddresses.insert" call.
65626// Exactly one of *Operation or error will be non-nil. Any non-2xx
65627// status code is an error. Response headers are in either
65628// *Operation.ServerResponse.Header or (if a response was returned at
65629// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65630// to check whether the returned error was because
65631// http.StatusNotModified was returned.
65632func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Creates an address resource in the specified project by using the data included in the request.",
65664	//   "httpMethod": "POST",
65665	//   "id": "compute.globalAddresses.insert",
65666	//   "parameterOrder": [
65667	//     "project"
65668	//   ],
65669	//   "parameters": {
65670	//     "project": {
65671	//       "description": "Project ID for this request.",
65672	//       "location": "path",
65673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65674	//       "required": true,
65675	//       "type": "string"
65676	//     },
65677	//     "requestId": {
65678	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65679	//       "location": "query",
65680	//       "type": "string"
65681	//     }
65682	//   },
65683	//   "path": "{project}/global/addresses",
65684	//   "request": {
65685	//     "$ref": "Address"
65686	//   },
65687	//   "response": {
65688	//     "$ref": "Operation"
65689	//   },
65690	//   "scopes": [
65691	//     "https://www.googleapis.com/auth/cloud-platform",
65692	//     "https://www.googleapis.com/auth/compute"
65693	//   ]
65694	// }
65695
65696}
65697
65698// method id "compute.globalAddresses.list":
65699
65700type GlobalAddressesListCall struct {
65701	s            *Service
65702	project      string
65703	urlParams_   gensupport.URLParams
65704	ifNoneMatch_ string
65705	ctx_         context.Context
65706	header_      http.Header
65707}
65708
65709// List: Retrieves a list of global addresses.
65710// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
65711func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
65712	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65713	c.project = project
65714	return c
65715}
65716
65717// Filter sets the optional parameter "filter": A filter expression that
65718// filters resources listed in the response. The expression must specify
65719// the field name, a comparison operator, and the value that you want to
65720// use for filtering. The value must be a string, a number, or a
65721// boolean. The comparison operator must be either `=`, `!=`, `>`, or
65722// `<`.
65723//
65724// For example, if you are filtering Compute Engine instances, you can
65725// exclude instances named `example-instance` by specifying `name !=
65726// example-instance`.
65727//
65728// You can also filter nested fields. For example, you could specify
65729// `scheduling.automaticRestart = false` to include instances only if
65730// they are not scheduled for automatic restarts. You can use filtering
65731// on nested fields to filter based on resource labels.
65732//
65733// To filter on multiple expressions, provide each separate expression
65734// within parentheses. For example: ``` (scheduling.automaticRestart =
65735// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
65736// is an `AND` expression. However, you can include `AND` and `OR`
65737// expressions explicitly. For example: ``` (cpuPlatform = "Intel
65738// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
65739// (scheduling.automaticRestart = true) ```
65740func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
65741	c.urlParams_.Set("filter", filter)
65742	return c
65743}
65744
65745// MaxResults sets the optional parameter "maxResults": The maximum
65746// number of results per page that should be returned. If the number of
65747// available results is larger than `maxResults`, Compute Engine returns
65748// a `nextPageToken` that can be used to get the next page of results in
65749// subsequent list requests. Acceptable values are `0` to `500`,
65750// inclusive. (Default: `500`)
65751func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
65752	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65753	return c
65754}
65755
65756// OrderBy sets the optional parameter "orderBy": Sorts list results by
65757// a certain order. By default, results are returned in alphanumerical
65758// order based on the resource name.
65759//
65760// You can also sort results in descending order based on the creation
65761// timestamp using `orderBy="creationTimestamp desc". This sorts
65762// results based on the `creationTimestamp` field in reverse
65763// chronological order (newest result first). Use this to sort resources
65764// like operations so that the newest operation is returned
65765// first.
65766//
65767// Currently, only sorting by `name` or `creationTimestamp desc` is
65768// supported.
65769func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
65770	c.urlParams_.Set("orderBy", orderBy)
65771	return c
65772}
65773
65774// PageToken sets the optional parameter "pageToken": Specifies a page
65775// token to use. Set `pageToken` to the `nextPageToken` returned by a
65776// previous list request to get the next page of results.
65777func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
65778	c.urlParams_.Set("pageToken", pageToken)
65779	return c
65780}
65781
65782// ReturnPartialSuccess sets the optional parameter
65783// "returnPartialSuccess": Opt-in for partial success behavior which
65784// provides partial results in case of failure. The default value is
65785// false and the logic is the same as today.
65786func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall {
65787	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
65788	return c
65789}
65790
65791// Fields allows partial responses to be retrieved. See
65792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65793// for more information.
65794func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
65795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65796	return c
65797}
65798
65799// IfNoneMatch sets the optional parameter which makes the operation
65800// fail if the object's ETag matches the given value. This is useful for
65801// getting updates only after the object has changed since the last
65802// request. Use googleapi.IsNotModified to check whether the response
65803// error from Do is the result of In-None-Match.
65804func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
65805	c.ifNoneMatch_ = entityTag
65806	return c
65807}
65808
65809// Context sets the context to be used in this call's Do method. Any
65810// pending HTTP request will be aborted if the provided context is
65811// canceled.
65812func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
65813	c.ctx_ = ctx
65814	return c
65815}
65816
65817// Header returns an http.Header that can be modified by the caller to
65818// add HTTP headers to the request.
65819func (c *GlobalAddressesListCall) Header() http.Header {
65820	if c.header_ == nil {
65821		c.header_ = make(http.Header)
65822	}
65823	return c.header_
65824}
65825
65826func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
65827	reqHeaders := make(http.Header)
65828	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
65829	for k, v := range c.header_ {
65830		reqHeaders[k] = v
65831	}
65832	reqHeaders.Set("User-Agent", c.s.userAgent())
65833	if c.ifNoneMatch_ != "" {
65834		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65835	}
65836	var body io.Reader = nil
65837	c.urlParams_.Set("alt", alt)
65838	c.urlParams_.Set("prettyPrint", "false")
65839	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
65840	urls += "?" + c.urlParams_.Encode()
65841	req, err := http.NewRequest("GET", urls, body)
65842	if err != nil {
65843		return nil, err
65844	}
65845	req.Header = reqHeaders
65846	googleapi.Expand(req.URL, map[string]string{
65847		"project": c.project,
65848	})
65849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65850}
65851
65852// Do executes the "compute.globalAddresses.list" call.
65853// Exactly one of *AddressList or error will be non-nil. Any non-2xx
65854// status code is an error. Response headers are in either
65855// *AddressList.ServerResponse.Header or (if a response was returned at
65856// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65857// to check whether the returned error was because
65858// http.StatusNotModified was returned.
65859func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
65860	gensupport.SetOptions(c.urlParams_, opts...)
65861	res, err := c.doRequest("json")
65862	if res != nil && res.StatusCode == http.StatusNotModified {
65863		if res.Body != nil {
65864			res.Body.Close()
65865		}
65866		return nil, &googleapi.Error{
65867			Code:   res.StatusCode,
65868			Header: res.Header,
65869		}
65870	}
65871	if err != nil {
65872		return nil, err
65873	}
65874	defer googleapi.CloseBody(res)
65875	if err := googleapi.CheckResponse(res); err != nil {
65876		return nil, err
65877	}
65878	ret := &AddressList{
65879		ServerResponse: googleapi.ServerResponse{
65880			Header:         res.Header,
65881			HTTPStatusCode: res.StatusCode,
65882		},
65883	}
65884	target := &ret
65885	if err := gensupport.DecodeResponse(target, res); err != nil {
65886		return nil, err
65887	}
65888	return ret, nil
65889	// {
65890	//   "description": "Retrieves a list of global addresses.",
65891	//   "httpMethod": "GET",
65892	//   "id": "compute.globalAddresses.list",
65893	//   "parameterOrder": [
65894	//     "project"
65895	//   ],
65896	//   "parameters": {
65897	//     "filter": {
65898	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
65899	//       "location": "query",
65900	//       "type": "string"
65901	//     },
65902	//     "maxResults": {
65903	//       "default": "500",
65904	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
65905	//       "format": "uint32",
65906	//       "location": "query",
65907	//       "minimum": "0",
65908	//       "type": "integer"
65909	//     },
65910	//     "orderBy": {
65911	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
65912	//       "location": "query",
65913	//       "type": "string"
65914	//     },
65915	//     "pageToken": {
65916	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
65917	//       "location": "query",
65918	//       "type": "string"
65919	//     },
65920	//     "project": {
65921	//       "description": "Project ID for this request.",
65922	//       "location": "path",
65923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65924	//       "required": true,
65925	//       "type": "string"
65926	//     },
65927	//     "returnPartialSuccess": {
65928	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
65929	//       "location": "query",
65930	//       "type": "boolean"
65931	//     }
65932	//   },
65933	//   "path": "{project}/global/addresses",
65934	//   "response": {
65935	//     "$ref": "AddressList"
65936	//   },
65937	//   "scopes": [
65938	//     "https://www.googleapis.com/auth/cloud-platform",
65939	//     "https://www.googleapis.com/auth/compute",
65940	//     "https://www.googleapis.com/auth/compute.readonly"
65941	//   ]
65942	// }
65943
65944}
65945
65946// Pages invokes f for each page of results.
65947// A non-nil error returned from f will halt the iteration.
65948// The provided context supersedes any context provided to the Context method.
65949func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
65950	c.ctx_ = ctx
65951	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65952	for {
65953		x, err := c.Do()
65954		if err != nil {
65955			return err
65956		}
65957		if err := f(x); err != nil {
65958			return err
65959		}
65960		if x.NextPageToken == "" {
65961			return nil
65962		}
65963		c.PageToken(x.NextPageToken)
65964	}
65965}
65966
65967// method id "compute.globalAddresses.setLabels":
65968
65969type GlobalAddressesSetLabelsCall struct {
65970	s                      *Service
65971	project                string
65972	resource               string
65973	globalsetlabelsrequest *GlobalSetLabelsRequest
65974	urlParams_             gensupport.URLParams
65975	ctx_                   context.Context
65976	header_                http.Header
65977}
65978
65979// SetLabels: Sets the labels on a GlobalAddress. To learn more about
65980// labels, read the Labeling Resources documentation.
65981func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall {
65982	c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65983	c.project = project
65984	c.resource = resource
65985	c.globalsetlabelsrequest = globalsetlabelsrequest
65986	return c
65987}
65988
65989// Fields allows partial responses to be retrieved. See
65990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65991// for more information.
65992func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall {
65993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65994	return c
65995}
65996
65997// Context sets the context to be used in this call's Do method. Any
65998// pending HTTP request will be aborted if the provided context is
65999// canceled.
66000func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall {
66001	c.ctx_ = ctx
66002	return c
66003}
66004
66005// Header returns an http.Header that can be modified by the caller to
66006// add HTTP headers to the request.
66007func (c *GlobalAddressesSetLabelsCall) Header() http.Header {
66008	if c.header_ == nil {
66009		c.header_ = make(http.Header)
66010	}
66011	return c.header_
66012}
66013
66014func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
66015	reqHeaders := make(http.Header)
66016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
66017	for k, v := range c.header_ {
66018		reqHeaders[k] = v
66019	}
66020	reqHeaders.Set("User-Agent", c.s.userAgent())
66021	var body io.Reader = nil
66022	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
66023	if err != nil {
66024		return nil, err
66025	}
66026	reqHeaders.Set("Content-Type", "application/json")
66027	c.urlParams_.Set("alt", alt)
66028	c.urlParams_.Set("prettyPrint", "false")
66029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/setLabels")
66030	urls += "?" + c.urlParams_.Encode()
66031	req, err := http.NewRequest("POST", urls, body)
66032	if err != nil {
66033		return nil, err
66034	}
66035	req.Header = reqHeaders
66036	googleapi.Expand(req.URL, map[string]string{
66037		"project":  c.project,
66038		"resource": c.resource,
66039	})
66040	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66041}
66042
66043// Do executes the "compute.globalAddresses.setLabels" call.
66044// Exactly one of *Operation or error will be non-nil. Any non-2xx
66045// status code is an error. Response headers are in either
66046// *Operation.ServerResponse.Header or (if a response was returned at
66047// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66048// to check whether the returned error was because
66049// http.StatusNotModified was returned.
66050func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66051	gensupport.SetOptions(c.urlParams_, opts...)
66052	res, err := c.doRequest("json")
66053	if res != nil && res.StatusCode == http.StatusNotModified {
66054		if res.Body != nil {
66055			res.Body.Close()
66056		}
66057		return nil, &googleapi.Error{
66058			Code:   res.StatusCode,
66059			Header: res.Header,
66060		}
66061	}
66062	if err != nil {
66063		return nil, err
66064	}
66065	defer googleapi.CloseBody(res)
66066	if err := googleapi.CheckResponse(res); err != nil {
66067		return nil, err
66068	}
66069	ret := &Operation{
66070		ServerResponse: googleapi.ServerResponse{
66071			Header:         res.Header,
66072			HTTPStatusCode: res.StatusCode,
66073		},
66074	}
66075	target := &ret
66076	if err := gensupport.DecodeResponse(target, res); err != nil {
66077		return nil, err
66078	}
66079	return ret, nil
66080	// {
66081	//   "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.",
66082	//   "httpMethod": "POST",
66083	//   "id": "compute.globalAddresses.setLabels",
66084	//   "parameterOrder": [
66085	//     "project",
66086	//     "resource"
66087	//   ],
66088	//   "parameters": {
66089	//     "project": {
66090	//       "description": "Project ID for this request.",
66091	//       "location": "path",
66092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66093	//       "required": true,
66094	//       "type": "string"
66095	//     },
66096	//     "resource": {
66097	//       "description": "Name or id of the resource for this request.",
66098	//       "location": "path",
66099	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66100	//       "required": true,
66101	//       "type": "string"
66102	//     }
66103	//   },
66104	//   "path": "{project}/global/addresses/{resource}/setLabels",
66105	//   "request": {
66106	//     "$ref": "GlobalSetLabelsRequest"
66107	//   },
66108	//   "response": {
66109	//     "$ref": "Operation"
66110	//   },
66111	//   "scopes": [
66112	//     "https://www.googleapis.com/auth/cloud-platform",
66113	//     "https://www.googleapis.com/auth/compute"
66114	//   ]
66115	// }
66116
66117}
66118
66119// method id "compute.globalAddresses.testIamPermissions":
66120
66121type GlobalAddressesTestIamPermissionsCall struct {
66122	s                      *Service
66123	project                string
66124	resource               string
66125	testpermissionsrequest *TestPermissionsRequest
66126	urlParams_             gensupport.URLParams
66127	ctx_                   context.Context
66128	header_                http.Header
66129}
66130
66131// TestIamPermissions: Returns permissions that a caller has on the
66132// specified resource.
66133func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall {
66134	c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66135	c.project = project
66136	c.resource = resource
66137	c.testpermissionsrequest = testpermissionsrequest
66138	return c
66139}
66140
66141// Fields allows partial responses to be retrieved. See
66142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66143// for more information.
66144func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall {
66145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66146	return c
66147}
66148
66149// Context sets the context to be used in this call's Do method. Any
66150// pending HTTP request will be aborted if the provided context is
66151// canceled.
66152func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall {
66153	c.ctx_ = ctx
66154	return c
66155}
66156
66157// Header returns an http.Header that can be modified by the caller to
66158// add HTTP headers to the request.
66159func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header {
66160	if c.header_ == nil {
66161		c.header_ = make(http.Header)
66162	}
66163	return c.header_
66164}
66165
66166func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
66167	reqHeaders := make(http.Header)
66168	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
66169	for k, v := range c.header_ {
66170		reqHeaders[k] = v
66171	}
66172	reqHeaders.Set("User-Agent", c.s.userAgent())
66173	var body io.Reader = nil
66174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
66175	if err != nil {
66176		return nil, err
66177	}
66178	reqHeaders.Set("Content-Type", "application/json")
66179	c.urlParams_.Set("alt", alt)
66180	c.urlParams_.Set("prettyPrint", "false")
66181	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/testIamPermissions")
66182	urls += "?" + c.urlParams_.Encode()
66183	req, err := http.NewRequest("POST", urls, body)
66184	if err != nil {
66185		return nil, err
66186	}
66187	req.Header = reqHeaders
66188	googleapi.Expand(req.URL, map[string]string{
66189		"project":  c.project,
66190		"resource": c.resource,
66191	})
66192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66193}
66194
66195// Do executes the "compute.globalAddresses.testIamPermissions" call.
66196// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
66197// non-2xx status code is an error. Response headers are in either
66198// *TestPermissionsResponse.ServerResponse.Header or (if a response was
66199// returned at all) in error.(*googleapi.Error).Header. Use
66200// googleapi.IsNotModified to check whether the returned error was
66201// because http.StatusNotModified was returned.
66202func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
66203	gensupport.SetOptions(c.urlParams_, opts...)
66204	res, err := c.doRequest("json")
66205	if res != nil && res.StatusCode == http.StatusNotModified {
66206		if res.Body != nil {
66207			res.Body.Close()
66208		}
66209		return nil, &googleapi.Error{
66210			Code:   res.StatusCode,
66211			Header: res.Header,
66212		}
66213	}
66214	if err != nil {
66215		return nil, err
66216	}
66217	defer googleapi.CloseBody(res)
66218	if err := googleapi.CheckResponse(res); err != nil {
66219		return nil, err
66220	}
66221	ret := &TestPermissionsResponse{
66222		ServerResponse: googleapi.ServerResponse{
66223			Header:         res.Header,
66224			HTTPStatusCode: res.StatusCode,
66225		},
66226	}
66227	target := &ret
66228	if err := gensupport.DecodeResponse(target, res); err != nil {
66229		return nil, err
66230	}
66231	return ret, nil
66232	// {
66233	//   "description": "Returns permissions that a caller has on the specified resource.",
66234	//   "httpMethod": "POST",
66235	//   "id": "compute.globalAddresses.testIamPermissions",
66236	//   "parameterOrder": [
66237	//     "project",
66238	//     "resource"
66239	//   ],
66240	//   "parameters": {
66241	//     "project": {
66242	//       "description": "Project ID for this request.",
66243	//       "location": "path",
66244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66245	//       "required": true,
66246	//       "type": "string"
66247	//     },
66248	//     "resource": {
66249	//       "description": "Name or id of the resource for this request.",
66250	//       "location": "path",
66251	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66252	//       "required": true,
66253	//       "type": "string"
66254	//     }
66255	//   },
66256	//   "path": "{project}/global/addresses/{resource}/testIamPermissions",
66257	//   "request": {
66258	//     "$ref": "TestPermissionsRequest"
66259	//   },
66260	//   "response": {
66261	//     "$ref": "TestPermissionsResponse"
66262	//   },
66263	//   "scopes": [
66264	//     "https://www.googleapis.com/auth/cloud-platform",
66265	//     "https://www.googleapis.com/auth/compute",
66266	//     "https://www.googleapis.com/auth/compute.readonly"
66267	//   ]
66268	// }
66269
66270}
66271
66272// method id "compute.globalForwardingRules.delete":
66273
66274type GlobalForwardingRulesDeleteCall struct {
66275	s              *Service
66276	project        string
66277	forwardingRule string
66278	urlParams_     gensupport.URLParams
66279	ctx_           context.Context
66280	header_        http.Header
66281}
66282
66283// Delete: Deletes the specified GlobalForwardingRule resource.
66284// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
66285func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
66286	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66287	c.project = project
66288	c.forwardingRule = forwardingRule
66289	return c
66290}
66291
66292// RequestId sets the optional parameter "requestId": An optional
66293// request ID to identify requests. Specify a unique request ID so that
66294// if you must retry your request, the server will know to ignore the
66295// request if it has already been completed.
66296//
66297// For example, consider a situation where you make an initial request
66298// and the request times out. If you make the request again with the
66299// same request ID, the server can check if original operation with the
66300// same request ID was received, and if so, will ignore the second
66301// request. This prevents clients from accidentally creating duplicate
66302// commitments.
66303//
66304// The request ID must be a valid UUID with the exception that zero UUID
66305// is not supported (00000000-0000-0000-0000-000000000000).
66306func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
66307	c.urlParams_.Set("requestId", requestId)
66308	return c
66309}
66310
66311// Fields allows partial responses to be retrieved. See
66312// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66313// for more information.
66314func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
66315	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66316	return c
66317}
66318
66319// Context sets the context to be used in this call's Do method. Any
66320// pending HTTP request will be aborted if the provided context is
66321// canceled.
66322func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
66323	c.ctx_ = ctx
66324	return c
66325}
66326
66327// Header returns an http.Header that can be modified by the caller to
66328// add HTTP headers to the request.
66329func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
66330	if c.header_ == nil {
66331		c.header_ = make(http.Header)
66332	}
66333	return c.header_
66334}
66335
66336func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
66337	reqHeaders := make(http.Header)
66338	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
66339	for k, v := range c.header_ {
66340		reqHeaders[k] = v
66341	}
66342	reqHeaders.Set("User-Agent", c.s.userAgent())
66343	var body io.Reader = nil
66344	c.urlParams_.Set("alt", alt)
66345	c.urlParams_.Set("prettyPrint", "false")
66346	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
66347	urls += "?" + c.urlParams_.Encode()
66348	req, err := http.NewRequest("DELETE", urls, body)
66349	if err != nil {
66350		return nil, err
66351	}
66352	req.Header = reqHeaders
66353	googleapi.Expand(req.URL, map[string]string{
66354		"project":        c.project,
66355		"forwardingRule": c.forwardingRule,
66356	})
66357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66358}
66359
66360// Do executes the "compute.globalForwardingRules.delete" call.
66361// Exactly one of *Operation or error will be non-nil. Any non-2xx
66362// status code is an error. Response headers are in either
66363// *Operation.ServerResponse.Header or (if a response was returned at
66364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66365// to check whether the returned error was because
66366// http.StatusNotModified was returned.
66367func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66368	gensupport.SetOptions(c.urlParams_, opts...)
66369	res, err := c.doRequest("json")
66370	if res != nil && res.StatusCode == http.StatusNotModified {
66371		if res.Body != nil {
66372			res.Body.Close()
66373		}
66374		return nil, &googleapi.Error{
66375			Code:   res.StatusCode,
66376			Header: res.Header,
66377		}
66378	}
66379	if err != nil {
66380		return nil, err
66381	}
66382	defer googleapi.CloseBody(res)
66383	if err := googleapi.CheckResponse(res); err != nil {
66384		return nil, err
66385	}
66386	ret := &Operation{
66387		ServerResponse: googleapi.ServerResponse{
66388			Header:         res.Header,
66389			HTTPStatusCode: res.StatusCode,
66390		},
66391	}
66392	target := &ret
66393	if err := gensupport.DecodeResponse(target, res); err != nil {
66394		return nil, err
66395	}
66396	return ret, nil
66397	// {
66398	//   "description": "Deletes the specified GlobalForwardingRule resource.",
66399	//   "httpMethod": "DELETE",
66400	//   "id": "compute.globalForwardingRules.delete",
66401	//   "parameterOrder": [
66402	//     "project",
66403	//     "forwardingRule"
66404	//   ],
66405	//   "parameters": {
66406	//     "forwardingRule": {
66407	//       "description": "Name of the ForwardingRule resource to delete.",
66408	//       "location": "path",
66409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66410	//       "required": true,
66411	//       "type": "string"
66412	//     },
66413	//     "project": {
66414	//       "description": "Project ID for this request.",
66415	//       "location": "path",
66416	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66417	//       "required": true,
66418	//       "type": "string"
66419	//     },
66420	//     "requestId": {
66421	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66422	//       "location": "query",
66423	//       "type": "string"
66424	//     }
66425	//   },
66426	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
66427	//   "response": {
66428	//     "$ref": "Operation"
66429	//   },
66430	//   "scopes": [
66431	//     "https://www.googleapis.com/auth/cloud-platform",
66432	//     "https://www.googleapis.com/auth/compute"
66433	//   ]
66434	// }
66435
66436}
66437
66438// method id "compute.globalForwardingRules.get":
66439
66440type GlobalForwardingRulesGetCall struct {
66441	s              *Service
66442	project        string
66443	forwardingRule string
66444	urlParams_     gensupport.URLParams
66445	ifNoneMatch_   string
66446	ctx_           context.Context
66447	header_        http.Header
66448}
66449
66450// Get: Returns the specified GlobalForwardingRule resource. Gets a list
66451// of available forwarding rules by making a list() request.
66452// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
66453func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
66454	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66455	c.project = project
66456	c.forwardingRule = forwardingRule
66457	return c
66458}
66459
66460// Fields allows partial responses to be retrieved. See
66461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66462// for more information.
66463func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
66464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66465	return c
66466}
66467
66468// IfNoneMatch sets the optional parameter which makes the operation
66469// fail if the object's ETag matches the given value. This is useful for
66470// getting updates only after the object has changed since the last
66471// request. Use googleapi.IsNotModified to check whether the response
66472// error from Do is the result of In-None-Match.
66473func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
66474	c.ifNoneMatch_ = entityTag
66475	return c
66476}
66477
66478// Context sets the context to be used in this call's Do method. Any
66479// pending HTTP request will be aborted if the provided context is
66480// canceled.
66481func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
66482	c.ctx_ = ctx
66483	return c
66484}
66485
66486// Header returns an http.Header that can be modified by the caller to
66487// add HTTP headers to the request.
66488func (c *GlobalForwardingRulesGetCall) Header() http.Header {
66489	if c.header_ == nil {
66490		c.header_ = make(http.Header)
66491	}
66492	return c.header_
66493}
66494
66495func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
66496	reqHeaders := make(http.Header)
66497	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
66498	for k, v := range c.header_ {
66499		reqHeaders[k] = v
66500	}
66501	reqHeaders.Set("User-Agent", c.s.userAgent())
66502	if c.ifNoneMatch_ != "" {
66503		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66504	}
66505	var body io.Reader = nil
66506	c.urlParams_.Set("alt", alt)
66507	c.urlParams_.Set("prettyPrint", "false")
66508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
66509	urls += "?" + c.urlParams_.Encode()
66510	req, err := http.NewRequest("GET", urls, body)
66511	if err != nil {
66512		return nil, err
66513	}
66514	req.Header = reqHeaders
66515	googleapi.Expand(req.URL, map[string]string{
66516		"project":        c.project,
66517		"forwardingRule": c.forwardingRule,
66518	})
66519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66520}
66521
66522// Do executes the "compute.globalForwardingRules.get" call.
66523// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
66524// status code is an error. Response headers are in either
66525// *ForwardingRule.ServerResponse.Header or (if a response was returned
66526// at all) in error.(*googleapi.Error).Header. Use
66527// googleapi.IsNotModified to check whether the returned error was
66528// because http.StatusNotModified was returned.
66529func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
66530	gensupport.SetOptions(c.urlParams_, opts...)
66531	res, err := c.doRequest("json")
66532	if res != nil && res.StatusCode == http.StatusNotModified {
66533		if res.Body != nil {
66534			res.Body.Close()
66535		}
66536		return nil, &googleapi.Error{
66537			Code:   res.StatusCode,
66538			Header: res.Header,
66539		}
66540	}
66541	if err != nil {
66542		return nil, err
66543	}
66544	defer googleapi.CloseBody(res)
66545	if err := googleapi.CheckResponse(res); err != nil {
66546		return nil, err
66547	}
66548	ret := &ForwardingRule{
66549		ServerResponse: googleapi.ServerResponse{
66550			Header:         res.Header,
66551			HTTPStatusCode: res.StatusCode,
66552		},
66553	}
66554	target := &ret
66555	if err := gensupport.DecodeResponse(target, res); err != nil {
66556		return nil, err
66557	}
66558	return ret, nil
66559	// {
66560	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
66561	//   "httpMethod": "GET",
66562	//   "id": "compute.globalForwardingRules.get",
66563	//   "parameterOrder": [
66564	//     "project",
66565	//     "forwardingRule"
66566	//   ],
66567	//   "parameters": {
66568	//     "forwardingRule": {
66569	//       "description": "Name of the ForwardingRule resource to return.",
66570	//       "location": "path",
66571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66572	//       "required": true,
66573	//       "type": "string"
66574	//     },
66575	//     "project": {
66576	//       "description": "Project ID for this request.",
66577	//       "location": "path",
66578	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66579	//       "required": true,
66580	//       "type": "string"
66581	//     }
66582	//   },
66583	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
66584	//   "response": {
66585	//     "$ref": "ForwardingRule"
66586	//   },
66587	//   "scopes": [
66588	//     "https://www.googleapis.com/auth/cloud-platform",
66589	//     "https://www.googleapis.com/auth/compute",
66590	//     "https://www.googleapis.com/auth/compute.readonly"
66591	//   ]
66592	// }
66593
66594}
66595
66596// method id "compute.globalForwardingRules.insert":
66597
66598type GlobalForwardingRulesInsertCall struct {
66599	s              *Service
66600	project        string
66601	forwardingrule *ForwardingRule
66602	urlParams_     gensupport.URLParams
66603	ctx_           context.Context
66604	header_        http.Header
66605}
66606
66607// Insert: Creates a GlobalForwardingRule resource in the specified
66608// project using the data included in the request.
66609// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
66610func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
66611	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66612	c.project = project
66613	c.forwardingrule = forwardingrule
66614	return c
66615}
66616
66617// RequestId sets the optional parameter "requestId": An optional
66618// request ID to identify requests. Specify a unique request ID so that
66619// if you must retry your request, the server will know to ignore the
66620// request if it has already been completed.
66621//
66622// For example, consider a situation where you make an initial request
66623// and the request times out. If you make the request again with the
66624// same request ID, the server can check if original operation with the
66625// same request ID was received, and if so, will ignore the second
66626// request. This prevents clients from accidentally creating duplicate
66627// commitments.
66628//
66629// The request ID must be a valid UUID with the exception that zero UUID
66630// is not supported (00000000-0000-0000-0000-000000000000).
66631func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
66632	c.urlParams_.Set("requestId", requestId)
66633	return c
66634}
66635
66636// Fields allows partial responses to be retrieved. See
66637// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66638// for more information.
66639func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
66640	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66641	return c
66642}
66643
66644// Context sets the context to be used in this call's Do method. Any
66645// pending HTTP request will be aborted if the provided context is
66646// canceled.
66647func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
66648	c.ctx_ = ctx
66649	return c
66650}
66651
66652// Header returns an http.Header that can be modified by the caller to
66653// add HTTP headers to the request.
66654func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
66655	if c.header_ == nil {
66656		c.header_ = make(http.Header)
66657	}
66658	return c.header_
66659}
66660
66661func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
66662	reqHeaders := make(http.Header)
66663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
66664	for k, v := range c.header_ {
66665		reqHeaders[k] = v
66666	}
66667	reqHeaders.Set("User-Agent", c.s.userAgent())
66668	var body io.Reader = nil
66669	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
66670	if err != nil {
66671		return nil, err
66672	}
66673	reqHeaders.Set("Content-Type", "application/json")
66674	c.urlParams_.Set("alt", alt)
66675	c.urlParams_.Set("prettyPrint", "false")
66676	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
66677	urls += "?" + c.urlParams_.Encode()
66678	req, err := http.NewRequest("POST", urls, body)
66679	if err != nil {
66680		return nil, err
66681	}
66682	req.Header = reqHeaders
66683	googleapi.Expand(req.URL, map[string]string{
66684		"project": c.project,
66685	})
66686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66687}
66688
66689// Do executes the "compute.globalForwardingRules.insert" 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 *GlobalForwardingRulesInsertCall) 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": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
66728	//   "httpMethod": "POST",
66729	//   "id": "compute.globalForwardingRules.insert",
66730	//   "parameterOrder": [
66731	//     "project"
66732	//   ],
66733	//   "parameters": {
66734	//     "project": {
66735	//       "description": "Project ID for this request.",
66736	//       "location": "path",
66737	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66738	//       "required": true,
66739	//       "type": "string"
66740	//     },
66741	//     "requestId": {
66742	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66743	//       "location": "query",
66744	//       "type": "string"
66745	//     }
66746	//   },
66747	//   "path": "{project}/global/forwardingRules",
66748	//   "request": {
66749	//     "$ref": "ForwardingRule"
66750	//   },
66751	//   "response": {
66752	//     "$ref": "Operation"
66753	//   },
66754	//   "scopes": [
66755	//     "https://www.googleapis.com/auth/cloud-platform",
66756	//     "https://www.googleapis.com/auth/compute"
66757	//   ]
66758	// }
66759
66760}
66761
66762// method id "compute.globalForwardingRules.list":
66763
66764type GlobalForwardingRulesListCall struct {
66765	s            *Service
66766	project      string
66767	urlParams_   gensupport.URLParams
66768	ifNoneMatch_ string
66769	ctx_         context.Context
66770	header_      http.Header
66771}
66772
66773// List: Retrieves a list of GlobalForwardingRule resources available to
66774// the specified project.
66775// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
66776func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
66777	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66778	c.project = project
66779	return c
66780}
66781
66782// Filter sets the optional parameter "filter": A filter expression that
66783// filters resources listed in the response. The expression must specify
66784// the field name, a comparison operator, and the value that you want to
66785// use for filtering. The value must be a string, a number, or a
66786// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66787// `<`.
66788//
66789// For example, if you are filtering Compute Engine instances, you can
66790// exclude instances named `example-instance` by specifying `name !=
66791// example-instance`.
66792//
66793// You can also filter nested fields. For example, you could specify
66794// `scheduling.automaticRestart = false` to include instances only if
66795// they are not scheduled for automatic restarts. You can use filtering
66796// on nested fields to filter based on resource labels.
66797//
66798// To filter on multiple expressions, provide each separate expression
66799// within parentheses. For example: ``` (scheduling.automaticRestart =
66800// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
66801// is an `AND` expression. However, you can include `AND` and `OR`
66802// expressions explicitly. For example: ``` (cpuPlatform = "Intel
66803// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
66804// (scheduling.automaticRestart = true) ```
66805func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
66806	c.urlParams_.Set("filter", filter)
66807	return c
66808}
66809
66810// MaxResults sets the optional parameter "maxResults": The maximum
66811// number of results per page that should be returned. If the number of
66812// available results is larger than `maxResults`, Compute Engine returns
66813// a `nextPageToken` that can be used to get the next page of results in
66814// subsequent list requests. Acceptable values are `0` to `500`,
66815// inclusive. (Default: `500`)
66816func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
66817	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66818	return c
66819}
66820
66821// OrderBy sets the optional parameter "orderBy": Sorts list results by
66822// a certain order. By default, results are returned in alphanumerical
66823// order based on the resource name.
66824//
66825// You can also sort results in descending order based on the creation
66826// timestamp using `orderBy="creationTimestamp desc". This sorts
66827// results based on the `creationTimestamp` field in reverse
66828// chronological order (newest result first). Use this to sort resources
66829// like operations so that the newest operation is returned
66830// first.
66831//
66832// Currently, only sorting by `name` or `creationTimestamp desc` is
66833// supported.
66834func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
66835	c.urlParams_.Set("orderBy", orderBy)
66836	return c
66837}
66838
66839// PageToken sets the optional parameter "pageToken": Specifies a page
66840// token to use. Set `pageToken` to the `nextPageToken` returned by a
66841// previous list request to get the next page of results.
66842func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
66843	c.urlParams_.Set("pageToken", pageToken)
66844	return c
66845}
66846
66847// ReturnPartialSuccess sets the optional parameter
66848// "returnPartialSuccess": Opt-in for partial success behavior which
66849// provides partial results in case of failure. The default value is
66850// false and the logic is the same as today.
66851func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall {
66852	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
66853	return c
66854}
66855
66856// Fields allows partial responses to be retrieved. See
66857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66858// for more information.
66859func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
66860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66861	return c
66862}
66863
66864// IfNoneMatch sets the optional parameter which makes the operation
66865// fail if the object's ETag matches the given value. This is useful for
66866// getting updates only after the object has changed since the last
66867// request. Use googleapi.IsNotModified to check whether the response
66868// error from Do is the result of In-None-Match.
66869func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
66870	c.ifNoneMatch_ = entityTag
66871	return c
66872}
66873
66874// Context sets the context to be used in this call's Do method. Any
66875// pending HTTP request will be aborted if the provided context is
66876// canceled.
66877func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
66878	c.ctx_ = ctx
66879	return c
66880}
66881
66882// Header returns an http.Header that can be modified by the caller to
66883// add HTTP headers to the request.
66884func (c *GlobalForwardingRulesListCall) Header() http.Header {
66885	if c.header_ == nil {
66886		c.header_ = make(http.Header)
66887	}
66888	return c.header_
66889}
66890
66891func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
66892	reqHeaders := make(http.Header)
66893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
66894	for k, v := range c.header_ {
66895		reqHeaders[k] = v
66896	}
66897	reqHeaders.Set("User-Agent", c.s.userAgent())
66898	if c.ifNoneMatch_ != "" {
66899		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66900	}
66901	var body io.Reader = nil
66902	c.urlParams_.Set("alt", alt)
66903	c.urlParams_.Set("prettyPrint", "false")
66904	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
66905	urls += "?" + c.urlParams_.Encode()
66906	req, err := http.NewRequest("GET", urls, body)
66907	if err != nil {
66908		return nil, err
66909	}
66910	req.Header = reqHeaders
66911	googleapi.Expand(req.URL, map[string]string{
66912		"project": c.project,
66913	})
66914	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66915}
66916
66917// Do executes the "compute.globalForwardingRules.list" call.
66918// Exactly one of *ForwardingRuleList or error will be non-nil. Any
66919// non-2xx status code is an error. Response headers are in either
66920// *ForwardingRuleList.ServerResponse.Header or (if a response was
66921// returned at all) in error.(*googleapi.Error).Header. Use
66922// googleapi.IsNotModified to check whether the returned error was
66923// because http.StatusNotModified was returned.
66924func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
66925	gensupport.SetOptions(c.urlParams_, opts...)
66926	res, err := c.doRequest("json")
66927	if res != nil && res.StatusCode == http.StatusNotModified {
66928		if res.Body != nil {
66929			res.Body.Close()
66930		}
66931		return nil, &googleapi.Error{
66932			Code:   res.StatusCode,
66933			Header: res.Header,
66934		}
66935	}
66936	if err != nil {
66937		return nil, err
66938	}
66939	defer googleapi.CloseBody(res)
66940	if err := googleapi.CheckResponse(res); err != nil {
66941		return nil, err
66942	}
66943	ret := &ForwardingRuleList{
66944		ServerResponse: googleapi.ServerResponse{
66945			Header:         res.Header,
66946			HTTPStatusCode: res.StatusCode,
66947		},
66948	}
66949	target := &ret
66950	if err := gensupport.DecodeResponse(target, res); err != nil {
66951		return nil, err
66952	}
66953	return ret, nil
66954	// {
66955	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
66956	//   "httpMethod": "GET",
66957	//   "id": "compute.globalForwardingRules.list",
66958	//   "parameterOrder": [
66959	//     "project"
66960	//   ],
66961	//   "parameters": {
66962	//     "filter": {
66963	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
66964	//       "location": "query",
66965	//       "type": "string"
66966	//     },
66967	//     "maxResults": {
66968	//       "default": "500",
66969	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66970	//       "format": "uint32",
66971	//       "location": "query",
66972	//       "minimum": "0",
66973	//       "type": "integer"
66974	//     },
66975	//     "orderBy": {
66976	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
66977	//       "location": "query",
66978	//       "type": "string"
66979	//     },
66980	//     "pageToken": {
66981	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66982	//       "location": "query",
66983	//       "type": "string"
66984	//     },
66985	//     "project": {
66986	//       "description": "Project ID for this request.",
66987	//       "location": "path",
66988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66989	//       "required": true,
66990	//       "type": "string"
66991	//     },
66992	//     "returnPartialSuccess": {
66993	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
66994	//       "location": "query",
66995	//       "type": "boolean"
66996	//     }
66997	//   },
66998	//   "path": "{project}/global/forwardingRules",
66999	//   "response": {
67000	//     "$ref": "ForwardingRuleList"
67001	//   },
67002	//   "scopes": [
67003	//     "https://www.googleapis.com/auth/cloud-platform",
67004	//     "https://www.googleapis.com/auth/compute",
67005	//     "https://www.googleapis.com/auth/compute.readonly"
67006	//   ]
67007	// }
67008
67009}
67010
67011// Pages invokes f for each page of results.
67012// A non-nil error returned from f will halt the iteration.
67013// The provided context supersedes any context provided to the Context method.
67014func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
67015	c.ctx_ = ctx
67016	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67017	for {
67018		x, err := c.Do()
67019		if err != nil {
67020			return err
67021		}
67022		if err := f(x); err != nil {
67023			return err
67024		}
67025		if x.NextPageToken == "" {
67026			return nil
67027		}
67028		c.PageToken(x.NextPageToken)
67029	}
67030}
67031
67032// method id "compute.globalForwardingRules.patch":
67033
67034type GlobalForwardingRulesPatchCall struct {
67035	s              *Service
67036	project        string
67037	forwardingRule string
67038	forwardingrule *ForwardingRule
67039	urlParams_     gensupport.URLParams
67040	ctx_           context.Context
67041	header_        http.Header
67042}
67043
67044// Patch: Updates the specified forwarding rule with the data included
67045// in the request. This method supports PATCH semantics and uses the
67046// JSON merge patch format and processing rules. Currently, you can only
67047// patch the network_tier field.
67048func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
67049	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67050	c.project = project
67051	c.forwardingRule = forwardingRule
67052	c.forwardingrule = forwardingrule
67053	return c
67054}
67055
67056// RequestId sets the optional parameter "requestId": An optional
67057// request ID to identify requests. Specify a unique request ID so that
67058// if you must retry your request, the server will know to ignore the
67059// request if it has already been completed.
67060//
67061// For example, consider a situation where you make an initial request
67062// and the request times out. If you make the request again with the
67063// same request ID, the server can check if original operation with the
67064// same request ID was received, and if so, will ignore the second
67065// request. This prevents clients from accidentally creating duplicate
67066// commitments.
67067//
67068// The request ID must be a valid UUID with the exception that zero UUID
67069// is not supported (00000000-0000-0000-0000-000000000000).
67070func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
67071	c.urlParams_.Set("requestId", requestId)
67072	return c
67073}
67074
67075// Fields allows partial responses to be retrieved. See
67076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67077// for more information.
67078func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
67079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67080	return c
67081}
67082
67083// Context sets the context to be used in this call's Do method. Any
67084// pending HTTP request will be aborted if the provided context is
67085// canceled.
67086func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
67087	c.ctx_ = ctx
67088	return c
67089}
67090
67091// Header returns an http.Header that can be modified by the caller to
67092// add HTTP headers to the request.
67093func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
67094	if c.header_ == nil {
67095		c.header_ = make(http.Header)
67096	}
67097	return c.header_
67098}
67099
67100func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
67101	reqHeaders := make(http.Header)
67102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
67103	for k, v := range c.header_ {
67104		reqHeaders[k] = v
67105	}
67106	reqHeaders.Set("User-Agent", c.s.userAgent())
67107	var body io.Reader = nil
67108	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
67109	if err != nil {
67110		return nil, err
67111	}
67112	reqHeaders.Set("Content-Type", "application/json")
67113	c.urlParams_.Set("alt", alt)
67114	c.urlParams_.Set("prettyPrint", "false")
67115	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
67116	urls += "?" + c.urlParams_.Encode()
67117	req, err := http.NewRequest("PATCH", urls, body)
67118	if err != nil {
67119		return nil, err
67120	}
67121	req.Header = reqHeaders
67122	googleapi.Expand(req.URL, map[string]string{
67123		"project":        c.project,
67124		"forwardingRule": c.forwardingRule,
67125	})
67126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67127}
67128
67129// Do executes the "compute.globalForwardingRules.patch" call.
67130// Exactly one of *Operation or error will be non-nil. Any non-2xx
67131// status code is an error. Response headers are in either
67132// *Operation.ServerResponse.Header or (if a response was returned at
67133// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67134// to check whether the returned error was because
67135// http.StatusNotModified was returned.
67136func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67137	gensupport.SetOptions(c.urlParams_, opts...)
67138	res, err := c.doRequest("json")
67139	if res != nil && res.StatusCode == http.StatusNotModified {
67140		if res.Body != nil {
67141			res.Body.Close()
67142		}
67143		return nil, &googleapi.Error{
67144			Code:   res.StatusCode,
67145			Header: res.Header,
67146		}
67147	}
67148	if err != nil {
67149		return nil, err
67150	}
67151	defer googleapi.CloseBody(res)
67152	if err := googleapi.CheckResponse(res); err != nil {
67153		return nil, err
67154	}
67155	ret := &Operation{
67156		ServerResponse: googleapi.ServerResponse{
67157			Header:         res.Header,
67158			HTTPStatusCode: res.StatusCode,
67159		},
67160	}
67161	target := &ret
67162	if err := gensupport.DecodeResponse(target, res); err != nil {
67163		return nil, err
67164	}
67165	return ret, nil
67166	// {
67167	//   "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.",
67168	//   "httpMethod": "PATCH",
67169	//   "id": "compute.globalForwardingRules.patch",
67170	//   "parameterOrder": [
67171	//     "project",
67172	//     "forwardingRule"
67173	//   ],
67174	//   "parameters": {
67175	//     "forwardingRule": {
67176	//       "description": "Name of the ForwardingRule resource to patch.",
67177	//       "location": "path",
67178	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67179	//       "required": true,
67180	//       "type": "string"
67181	//     },
67182	//     "project": {
67183	//       "description": "Project ID for this request.",
67184	//       "location": "path",
67185	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67186	//       "required": true,
67187	//       "type": "string"
67188	//     },
67189	//     "requestId": {
67190	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67191	//       "location": "query",
67192	//       "type": "string"
67193	//     }
67194	//   },
67195	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
67196	//   "request": {
67197	//     "$ref": "ForwardingRule"
67198	//   },
67199	//   "response": {
67200	//     "$ref": "Operation"
67201	//   },
67202	//   "scopes": [
67203	//     "https://www.googleapis.com/auth/cloud-platform",
67204	//     "https://www.googleapis.com/auth/compute"
67205	//   ]
67206	// }
67207
67208}
67209
67210// method id "compute.globalForwardingRules.setLabels":
67211
67212type GlobalForwardingRulesSetLabelsCall struct {
67213	s                      *Service
67214	project                string
67215	resource               string
67216	globalsetlabelsrequest *GlobalSetLabelsRequest
67217	urlParams_             gensupport.URLParams
67218	ctx_                   context.Context
67219	header_                http.Header
67220}
67221
67222// SetLabels: Sets the labels on the specified resource. To learn more
67223// about labels, read the Labeling Resources documentation.
67224func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
67225	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67226	c.project = project
67227	c.resource = resource
67228	c.globalsetlabelsrequest = globalsetlabelsrequest
67229	return c
67230}
67231
67232// Fields allows partial responses to be retrieved. See
67233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67234// for more information.
67235func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
67236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67237	return c
67238}
67239
67240// Context sets the context to be used in this call's Do method. Any
67241// pending HTTP request will be aborted if the provided context is
67242// canceled.
67243func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
67244	c.ctx_ = ctx
67245	return c
67246}
67247
67248// Header returns an http.Header that can be modified by the caller to
67249// add HTTP headers to the request.
67250func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
67251	if c.header_ == nil {
67252		c.header_ = make(http.Header)
67253	}
67254	return c.header_
67255}
67256
67257func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
67258	reqHeaders := make(http.Header)
67259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
67260	for k, v := range c.header_ {
67261		reqHeaders[k] = v
67262	}
67263	reqHeaders.Set("User-Agent", c.s.userAgent())
67264	var body io.Reader = nil
67265	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
67266	if err != nil {
67267		return nil, err
67268	}
67269	reqHeaders.Set("Content-Type", "application/json")
67270	c.urlParams_.Set("alt", alt)
67271	c.urlParams_.Set("prettyPrint", "false")
67272	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/setLabels")
67273	urls += "?" + c.urlParams_.Encode()
67274	req, err := http.NewRequest("POST", urls, body)
67275	if err != nil {
67276		return nil, err
67277	}
67278	req.Header = reqHeaders
67279	googleapi.Expand(req.URL, map[string]string{
67280		"project":  c.project,
67281		"resource": c.resource,
67282	})
67283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67284}
67285
67286// Do executes the "compute.globalForwardingRules.setLabels" call.
67287// Exactly one of *Operation or error will be non-nil. Any non-2xx
67288// status code is an error. Response headers are in either
67289// *Operation.ServerResponse.Header or (if a response was returned at
67290// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67291// to check whether the returned error was because
67292// http.StatusNotModified was returned.
67293func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67294	gensupport.SetOptions(c.urlParams_, opts...)
67295	res, err := c.doRequest("json")
67296	if res != nil && res.StatusCode == http.StatusNotModified {
67297		if res.Body != nil {
67298			res.Body.Close()
67299		}
67300		return nil, &googleapi.Error{
67301			Code:   res.StatusCode,
67302			Header: res.Header,
67303		}
67304	}
67305	if err != nil {
67306		return nil, err
67307	}
67308	defer googleapi.CloseBody(res)
67309	if err := googleapi.CheckResponse(res); err != nil {
67310		return nil, err
67311	}
67312	ret := &Operation{
67313		ServerResponse: googleapi.ServerResponse{
67314			Header:         res.Header,
67315			HTTPStatusCode: res.StatusCode,
67316		},
67317	}
67318	target := &ret
67319	if err := gensupport.DecodeResponse(target, res); err != nil {
67320		return nil, err
67321	}
67322	return ret, nil
67323	// {
67324	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
67325	//   "httpMethod": "POST",
67326	//   "id": "compute.globalForwardingRules.setLabels",
67327	//   "parameterOrder": [
67328	//     "project",
67329	//     "resource"
67330	//   ],
67331	//   "parameters": {
67332	//     "project": {
67333	//       "description": "Project ID for this request.",
67334	//       "location": "path",
67335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67336	//       "required": true,
67337	//       "type": "string"
67338	//     },
67339	//     "resource": {
67340	//       "description": "Name or id of the resource for this request.",
67341	//       "location": "path",
67342	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67343	//       "required": true,
67344	//       "type": "string"
67345	//     }
67346	//   },
67347	//   "path": "{project}/global/forwardingRules/{resource}/setLabels",
67348	//   "request": {
67349	//     "$ref": "GlobalSetLabelsRequest"
67350	//   },
67351	//   "response": {
67352	//     "$ref": "Operation"
67353	//   },
67354	//   "scopes": [
67355	//     "https://www.googleapis.com/auth/cloud-platform",
67356	//     "https://www.googleapis.com/auth/compute"
67357	//   ]
67358	// }
67359
67360}
67361
67362// method id "compute.globalForwardingRules.setTarget":
67363
67364type GlobalForwardingRulesSetTargetCall struct {
67365	s               *Service
67366	project         string
67367	forwardingRule  string
67368	targetreference *TargetReference
67369	urlParams_      gensupport.URLParams
67370	ctx_            context.Context
67371	header_         http.Header
67372}
67373
67374// SetTarget: Changes target URL for the GlobalForwardingRule resource.
67375// The new target should be of the same type as the old target.
67376// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
67377func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
67378	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67379	c.project = project
67380	c.forwardingRule = forwardingRule
67381	c.targetreference = targetreference
67382	return c
67383}
67384
67385// RequestId sets the optional parameter "requestId": An optional
67386// request ID to identify requests. Specify a unique request ID so that
67387// if you must retry your request, the server will know to ignore the
67388// request if it has already been completed.
67389//
67390// For example, consider a situation where you make an initial request
67391// and the request times out. If you make the request again with the
67392// same request ID, the server can check if original operation with the
67393// same request ID was received, and if so, will ignore the second
67394// request. This prevents clients from accidentally creating duplicate
67395// commitments.
67396//
67397// The request ID must be a valid UUID with the exception that zero UUID
67398// is not supported (00000000-0000-0000-0000-000000000000).
67399func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
67400	c.urlParams_.Set("requestId", requestId)
67401	return c
67402}
67403
67404// Fields allows partial responses to be retrieved. See
67405// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67406// for more information.
67407func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
67408	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67409	return c
67410}
67411
67412// Context sets the context to be used in this call's Do method. Any
67413// pending HTTP request will be aborted if the provided context is
67414// canceled.
67415func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
67416	c.ctx_ = ctx
67417	return c
67418}
67419
67420// Header returns an http.Header that can be modified by the caller to
67421// add HTTP headers to the request.
67422func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
67423	if c.header_ == nil {
67424		c.header_ = make(http.Header)
67425	}
67426	return c.header_
67427}
67428
67429func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
67430	reqHeaders := make(http.Header)
67431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
67432	for k, v := range c.header_ {
67433		reqHeaders[k] = v
67434	}
67435	reqHeaders.Set("User-Agent", c.s.userAgent())
67436	var body io.Reader = nil
67437	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
67438	if err != nil {
67439		return nil, err
67440	}
67441	reqHeaders.Set("Content-Type", "application/json")
67442	c.urlParams_.Set("alt", alt)
67443	c.urlParams_.Set("prettyPrint", "false")
67444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
67445	urls += "?" + c.urlParams_.Encode()
67446	req, err := http.NewRequest("POST", urls, body)
67447	if err != nil {
67448		return nil, err
67449	}
67450	req.Header = reqHeaders
67451	googleapi.Expand(req.URL, map[string]string{
67452		"project":        c.project,
67453		"forwardingRule": c.forwardingRule,
67454	})
67455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67456}
67457
67458// Do executes the "compute.globalForwardingRules.setTarget" call.
67459// Exactly one of *Operation or error will be non-nil. Any non-2xx
67460// status code is an error. Response headers are in either
67461// *Operation.ServerResponse.Header or (if a response was returned at
67462// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67463// to check whether the returned error was because
67464// http.StatusNotModified was returned.
67465func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67466	gensupport.SetOptions(c.urlParams_, opts...)
67467	res, err := c.doRequest("json")
67468	if res != nil && res.StatusCode == http.StatusNotModified {
67469		if res.Body != nil {
67470			res.Body.Close()
67471		}
67472		return nil, &googleapi.Error{
67473			Code:   res.StatusCode,
67474			Header: res.Header,
67475		}
67476	}
67477	if err != nil {
67478		return nil, err
67479	}
67480	defer googleapi.CloseBody(res)
67481	if err := googleapi.CheckResponse(res); err != nil {
67482		return nil, err
67483	}
67484	ret := &Operation{
67485		ServerResponse: googleapi.ServerResponse{
67486			Header:         res.Header,
67487			HTTPStatusCode: res.StatusCode,
67488		},
67489	}
67490	target := &ret
67491	if err := gensupport.DecodeResponse(target, res); err != nil {
67492		return nil, err
67493	}
67494	return ret, nil
67495	// {
67496	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
67497	//   "httpMethod": "POST",
67498	//   "id": "compute.globalForwardingRules.setTarget",
67499	//   "parameterOrder": [
67500	//     "project",
67501	//     "forwardingRule"
67502	//   ],
67503	//   "parameters": {
67504	//     "forwardingRule": {
67505	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
67506	//       "location": "path",
67507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67508	//       "required": true,
67509	//       "type": "string"
67510	//     },
67511	//     "project": {
67512	//       "description": "Project ID for this request.",
67513	//       "location": "path",
67514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67515	//       "required": true,
67516	//       "type": "string"
67517	//     },
67518	//     "requestId": {
67519	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67520	//       "location": "query",
67521	//       "type": "string"
67522	//     }
67523	//   },
67524	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
67525	//   "request": {
67526	//     "$ref": "TargetReference"
67527	//   },
67528	//   "response": {
67529	//     "$ref": "Operation"
67530	//   },
67531	//   "scopes": [
67532	//     "https://www.googleapis.com/auth/cloud-platform",
67533	//     "https://www.googleapis.com/auth/compute"
67534	//   ]
67535	// }
67536
67537}
67538
67539// method id "compute.globalForwardingRules.testIamPermissions":
67540
67541type GlobalForwardingRulesTestIamPermissionsCall struct {
67542	s                      *Service
67543	project                string
67544	resource               string
67545	testpermissionsrequest *TestPermissionsRequest
67546	urlParams_             gensupport.URLParams
67547	ctx_                   context.Context
67548	header_                http.Header
67549}
67550
67551// TestIamPermissions: Returns permissions that a caller has on the
67552// specified resource.
67553func (r *GlobalForwardingRulesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalForwardingRulesTestIamPermissionsCall {
67554	c := &GlobalForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67555	c.project = project
67556	c.resource = resource
67557	c.testpermissionsrequest = testpermissionsrequest
67558	return c
67559}
67560
67561// Fields allows partial responses to be retrieved. See
67562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67563// for more information.
67564func (c *GlobalForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesTestIamPermissionsCall {
67565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67566	return c
67567}
67568
67569// Context sets the context to be used in this call's Do method. Any
67570// pending HTTP request will be aborted if the provided context is
67571// canceled.
67572func (c *GlobalForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *GlobalForwardingRulesTestIamPermissionsCall {
67573	c.ctx_ = ctx
67574	return c
67575}
67576
67577// Header returns an http.Header that can be modified by the caller to
67578// add HTTP headers to the request.
67579func (c *GlobalForwardingRulesTestIamPermissionsCall) Header() http.Header {
67580	if c.header_ == nil {
67581		c.header_ = make(http.Header)
67582	}
67583	return c.header_
67584}
67585
67586func (c *GlobalForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
67587	reqHeaders := make(http.Header)
67588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
67589	for k, v := range c.header_ {
67590		reqHeaders[k] = v
67591	}
67592	reqHeaders.Set("User-Agent", c.s.userAgent())
67593	var body io.Reader = nil
67594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
67595	if err != nil {
67596		return nil, err
67597	}
67598	reqHeaders.Set("Content-Type", "application/json")
67599	c.urlParams_.Set("alt", alt)
67600	c.urlParams_.Set("prettyPrint", "false")
67601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/testIamPermissions")
67602	urls += "?" + c.urlParams_.Encode()
67603	req, err := http.NewRequest("POST", urls, body)
67604	if err != nil {
67605		return nil, err
67606	}
67607	req.Header = reqHeaders
67608	googleapi.Expand(req.URL, map[string]string{
67609		"project":  c.project,
67610		"resource": c.resource,
67611	})
67612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67613}
67614
67615// Do executes the "compute.globalForwardingRules.testIamPermissions" call.
67616// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
67617// non-2xx status code is an error. Response headers are in either
67618// *TestPermissionsResponse.ServerResponse.Header or (if a response was
67619// returned at all) in error.(*googleapi.Error).Header. Use
67620// googleapi.IsNotModified to check whether the returned error was
67621// because http.StatusNotModified was returned.
67622func (c *GlobalForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
67623	gensupport.SetOptions(c.urlParams_, opts...)
67624	res, err := c.doRequest("json")
67625	if res != nil && res.StatusCode == http.StatusNotModified {
67626		if res.Body != nil {
67627			res.Body.Close()
67628		}
67629		return nil, &googleapi.Error{
67630			Code:   res.StatusCode,
67631			Header: res.Header,
67632		}
67633	}
67634	if err != nil {
67635		return nil, err
67636	}
67637	defer googleapi.CloseBody(res)
67638	if err := googleapi.CheckResponse(res); err != nil {
67639		return nil, err
67640	}
67641	ret := &TestPermissionsResponse{
67642		ServerResponse: googleapi.ServerResponse{
67643			Header:         res.Header,
67644			HTTPStatusCode: res.StatusCode,
67645		},
67646	}
67647	target := &ret
67648	if err := gensupport.DecodeResponse(target, res); err != nil {
67649		return nil, err
67650	}
67651	return ret, nil
67652	// {
67653	//   "description": "Returns permissions that a caller has on the specified resource.",
67654	//   "httpMethod": "POST",
67655	//   "id": "compute.globalForwardingRules.testIamPermissions",
67656	//   "parameterOrder": [
67657	//     "project",
67658	//     "resource"
67659	//   ],
67660	//   "parameters": {
67661	//     "project": {
67662	//       "description": "Project ID for this request.",
67663	//       "location": "path",
67664	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67665	//       "required": true,
67666	//       "type": "string"
67667	//     },
67668	//     "resource": {
67669	//       "description": "Name or id of the resource for this request.",
67670	//       "location": "path",
67671	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67672	//       "required": true,
67673	//       "type": "string"
67674	//     }
67675	//   },
67676	//   "path": "{project}/global/forwardingRules/{resource}/testIamPermissions",
67677	//   "request": {
67678	//     "$ref": "TestPermissionsRequest"
67679	//   },
67680	//   "response": {
67681	//     "$ref": "TestPermissionsResponse"
67682	//   },
67683	//   "scopes": [
67684	//     "https://www.googleapis.com/auth/cloud-platform",
67685	//     "https://www.googleapis.com/auth/compute",
67686	//     "https://www.googleapis.com/auth/compute.readonly"
67687	//   ]
67688	// }
67689
67690}
67691
67692// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
67693
67694type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
67695	s                                                 *Service
67696	project                                           string
67697	networkEndpointGroup                              string
67698	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
67699	urlParams_                                        gensupport.URLParams
67700	ctx_                                              context.Context
67701	header_                                           http.Header
67702}
67703
67704// AttachNetworkEndpoints: Attach a network endpoint to the specified
67705// network endpoint group.
67706func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
67707	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67708	c.project = project
67709	c.networkEndpointGroup = networkEndpointGroup
67710	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
67711	return c
67712}
67713
67714// RequestId sets the optional parameter "requestId": An optional
67715// request ID to identify requests. Specify a unique request ID so that
67716// if you must retry your request, the server will know to ignore the
67717// request if it has already been completed.
67718//
67719// For example, consider a situation where you make an initial request
67720// and the request times out. If you make the request again with the
67721// same request ID, the server can check if original operation with the
67722// same request ID was received, and if so, will ignore the second
67723// request. This prevents clients from accidentally creating duplicate
67724// commitments.
67725//
67726// The request ID must be a valid UUID with the exception that zero UUID
67727// is not supported (00000000-0000-0000-0000-000000000000).
67728func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
67729	c.urlParams_.Set("requestId", requestId)
67730	return c
67731}
67732
67733// Fields allows partial responses to be retrieved. See
67734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67735// for more information.
67736func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
67737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67738	return c
67739}
67740
67741// Context sets the context to be used in this call's Do method. Any
67742// pending HTTP request will be aborted if the provided context is
67743// canceled.
67744func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
67745	c.ctx_ = ctx
67746	return c
67747}
67748
67749// Header returns an http.Header that can be modified by the caller to
67750// add HTTP headers to the request.
67751func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
67752	if c.header_ == nil {
67753		c.header_ = make(http.Header)
67754	}
67755	return c.header_
67756}
67757
67758func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
67759	reqHeaders := make(http.Header)
67760	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
67761	for k, v := range c.header_ {
67762		reqHeaders[k] = v
67763	}
67764	reqHeaders.Set("User-Agent", c.s.userAgent())
67765	var body io.Reader = nil
67766	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
67767	if err != nil {
67768		return nil, err
67769	}
67770	reqHeaders.Set("Content-Type", "application/json")
67771	c.urlParams_.Set("alt", alt)
67772	c.urlParams_.Set("prettyPrint", "false")
67773	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
67774	urls += "?" + c.urlParams_.Encode()
67775	req, err := http.NewRequest("POST", urls, body)
67776	if err != nil {
67777		return nil, err
67778	}
67779	req.Header = reqHeaders
67780	googleapi.Expand(req.URL, map[string]string{
67781		"project":              c.project,
67782		"networkEndpointGroup": c.networkEndpointGroup,
67783	})
67784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67785}
67786
67787// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
67788// Exactly one of *Operation or error will be non-nil. Any non-2xx
67789// status code is an error. Response headers are in either
67790// *Operation.ServerResponse.Header or (if a response was returned at
67791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67792// to check whether the returned error was because
67793// http.StatusNotModified was returned.
67794func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67795	gensupport.SetOptions(c.urlParams_, opts...)
67796	res, err := c.doRequest("json")
67797	if res != nil && res.StatusCode == http.StatusNotModified {
67798		if res.Body != nil {
67799			res.Body.Close()
67800		}
67801		return nil, &googleapi.Error{
67802			Code:   res.StatusCode,
67803			Header: res.Header,
67804		}
67805	}
67806	if err != nil {
67807		return nil, err
67808	}
67809	defer googleapi.CloseBody(res)
67810	if err := googleapi.CheckResponse(res); err != nil {
67811		return nil, err
67812	}
67813	ret := &Operation{
67814		ServerResponse: googleapi.ServerResponse{
67815			Header:         res.Header,
67816			HTTPStatusCode: res.StatusCode,
67817		},
67818	}
67819	target := &ret
67820	if err := gensupport.DecodeResponse(target, res); err != nil {
67821		return nil, err
67822	}
67823	return ret, nil
67824	// {
67825	//   "description": "Attach a network endpoint to the specified network endpoint group.",
67826	//   "httpMethod": "POST",
67827	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
67828	//   "parameterOrder": [
67829	//     "project",
67830	//     "networkEndpointGroup"
67831	//   ],
67832	//   "parameters": {
67833	//     "networkEndpointGroup": {
67834	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
67835	//       "location": "path",
67836	//       "required": true,
67837	//       "type": "string"
67838	//     },
67839	//     "project": {
67840	//       "description": "Project ID for this request.",
67841	//       "location": "path",
67842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67843	//       "required": true,
67844	//       "type": "string"
67845	//     },
67846	//     "requestId": {
67847	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67848	//       "location": "query",
67849	//       "type": "string"
67850	//     }
67851	//   },
67852	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
67853	//   "request": {
67854	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
67855	//   },
67856	//   "response": {
67857	//     "$ref": "Operation"
67858	//   },
67859	//   "scopes": [
67860	//     "https://www.googleapis.com/auth/cloud-platform",
67861	//     "https://www.googleapis.com/auth/compute"
67862	//   ]
67863	// }
67864
67865}
67866
67867// method id "compute.globalNetworkEndpointGroups.delete":
67868
67869type GlobalNetworkEndpointGroupsDeleteCall struct {
67870	s                    *Service
67871	project              string
67872	networkEndpointGroup string
67873	urlParams_           gensupport.URLParams
67874	ctx_                 context.Context
67875	header_              http.Header
67876}
67877
67878// Delete: Deletes the specified network endpoint group.Note that the
67879// NEG cannot be deleted if there are backend services referencing it.
67880func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
67881	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67882	c.project = project
67883	c.networkEndpointGroup = networkEndpointGroup
67884	return c
67885}
67886
67887// RequestId sets the optional parameter "requestId": An optional
67888// request ID to identify requests. Specify a unique request ID so that
67889// if you must retry your request, the server will know to ignore the
67890// request if it has already been completed.
67891//
67892// For example, consider a situation where you make an initial request
67893// and the request times out. If you make the request again with the
67894// same request ID, the server can check if original operation with the
67895// same request ID was received, and if so, will ignore the second
67896// request. This prevents clients from accidentally creating duplicate
67897// commitments.
67898//
67899// The request ID must be a valid UUID with the exception that zero UUID
67900// is not supported (00000000-0000-0000-0000-000000000000).
67901func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
67902	c.urlParams_.Set("requestId", requestId)
67903	return c
67904}
67905
67906// Fields allows partial responses to be retrieved. See
67907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67908// for more information.
67909func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
67910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67911	return c
67912}
67913
67914// Context sets the context to be used in this call's Do method. Any
67915// pending HTTP request will be aborted if the provided context is
67916// canceled.
67917func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
67918	c.ctx_ = ctx
67919	return c
67920}
67921
67922// Header returns an http.Header that can be modified by the caller to
67923// add HTTP headers to the request.
67924func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
67925	if c.header_ == nil {
67926		c.header_ = make(http.Header)
67927	}
67928	return c.header_
67929}
67930
67931func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
67932	reqHeaders := make(http.Header)
67933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
67934	for k, v := range c.header_ {
67935		reqHeaders[k] = v
67936	}
67937	reqHeaders.Set("User-Agent", c.s.userAgent())
67938	var body io.Reader = nil
67939	c.urlParams_.Set("alt", alt)
67940	c.urlParams_.Set("prettyPrint", "false")
67941	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
67942	urls += "?" + c.urlParams_.Encode()
67943	req, err := http.NewRequest("DELETE", urls, body)
67944	if err != nil {
67945		return nil, err
67946	}
67947	req.Header = reqHeaders
67948	googleapi.Expand(req.URL, map[string]string{
67949		"project":              c.project,
67950		"networkEndpointGroup": c.networkEndpointGroup,
67951	})
67952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67953}
67954
67955// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
67956// Exactly one of *Operation or error will be non-nil. Any non-2xx
67957// status code is an error. Response headers are in either
67958// *Operation.ServerResponse.Header or (if a response was returned at
67959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67960// to check whether the returned error was because
67961// http.StatusNotModified was returned.
67962func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67963	gensupport.SetOptions(c.urlParams_, opts...)
67964	res, err := c.doRequest("json")
67965	if res != nil && res.StatusCode == http.StatusNotModified {
67966		if res.Body != nil {
67967			res.Body.Close()
67968		}
67969		return nil, &googleapi.Error{
67970			Code:   res.StatusCode,
67971			Header: res.Header,
67972		}
67973	}
67974	if err != nil {
67975		return nil, err
67976	}
67977	defer googleapi.CloseBody(res)
67978	if err := googleapi.CheckResponse(res); err != nil {
67979		return nil, err
67980	}
67981	ret := &Operation{
67982		ServerResponse: googleapi.ServerResponse{
67983			Header:         res.Header,
67984			HTTPStatusCode: res.StatusCode,
67985		},
67986	}
67987	target := &ret
67988	if err := gensupport.DecodeResponse(target, res); err != nil {
67989		return nil, err
67990	}
67991	return ret, nil
67992	// {
67993	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
67994	//   "httpMethod": "DELETE",
67995	//   "id": "compute.globalNetworkEndpointGroups.delete",
67996	//   "parameterOrder": [
67997	//     "project",
67998	//     "networkEndpointGroup"
67999	//   ],
68000	//   "parameters": {
68001	//     "networkEndpointGroup": {
68002	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
68003	//       "location": "path",
68004	//       "required": true,
68005	//       "type": "string"
68006	//     },
68007	//     "project": {
68008	//       "description": "Project ID for this request.",
68009	//       "location": "path",
68010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68011	//       "required": true,
68012	//       "type": "string"
68013	//     },
68014	//     "requestId": {
68015	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68016	//       "location": "query",
68017	//       "type": "string"
68018	//     }
68019	//   },
68020	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
68021	//   "response": {
68022	//     "$ref": "Operation"
68023	//   },
68024	//   "scopes": [
68025	//     "https://www.googleapis.com/auth/cloud-platform",
68026	//     "https://www.googleapis.com/auth/compute"
68027	//   ]
68028	// }
68029
68030}
68031
68032// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
68033
68034type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
68035	s                                                 *Service
68036	project                                           string
68037	networkEndpointGroup                              string
68038	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
68039	urlParams_                                        gensupport.URLParams
68040	ctx_                                              context.Context
68041	header_                                           http.Header
68042}
68043
68044// DetachNetworkEndpoints: Detach the network endpoint from the
68045// specified network endpoint group.
68046func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
68047	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68048	c.project = project
68049	c.networkEndpointGroup = networkEndpointGroup
68050	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
68051	return c
68052}
68053
68054// RequestId sets the optional parameter "requestId": An optional
68055// request ID to identify requests. Specify a unique request ID so that
68056// if you must retry your request, the server will know to ignore the
68057// request if it has already been completed.
68058//
68059// For example, consider a situation where you make an initial request
68060// and the request times out. If you make the request again with the
68061// same request ID, the server can check if original operation with the
68062// same request ID was received, and if so, will ignore the second
68063// request. This prevents clients from accidentally creating duplicate
68064// commitments.
68065//
68066// The request ID must be a valid UUID with the exception that zero UUID
68067// is not supported (00000000-0000-0000-0000-000000000000).
68068func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
68069	c.urlParams_.Set("requestId", requestId)
68070	return c
68071}
68072
68073// Fields allows partial responses to be retrieved. See
68074// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68075// for more information.
68076func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
68077	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68078	return c
68079}
68080
68081// Context sets the context to be used in this call's Do method. Any
68082// pending HTTP request will be aborted if the provided context is
68083// canceled.
68084func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
68085	c.ctx_ = ctx
68086	return c
68087}
68088
68089// Header returns an http.Header that can be modified by the caller to
68090// add HTTP headers to the request.
68091func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
68092	if c.header_ == nil {
68093		c.header_ = make(http.Header)
68094	}
68095	return c.header_
68096}
68097
68098func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
68099	reqHeaders := make(http.Header)
68100	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
68101	for k, v := range c.header_ {
68102		reqHeaders[k] = v
68103	}
68104	reqHeaders.Set("User-Agent", c.s.userAgent())
68105	var body io.Reader = nil
68106	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
68107	if err != nil {
68108		return nil, err
68109	}
68110	reqHeaders.Set("Content-Type", "application/json")
68111	c.urlParams_.Set("alt", alt)
68112	c.urlParams_.Set("prettyPrint", "false")
68113	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
68114	urls += "?" + c.urlParams_.Encode()
68115	req, err := http.NewRequest("POST", urls, body)
68116	if err != nil {
68117		return nil, err
68118	}
68119	req.Header = reqHeaders
68120	googleapi.Expand(req.URL, map[string]string{
68121		"project":              c.project,
68122		"networkEndpointGroup": c.networkEndpointGroup,
68123	})
68124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68125}
68126
68127// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
68128// Exactly one of *Operation or error will be non-nil. Any non-2xx
68129// status code is an error. Response headers are in either
68130// *Operation.ServerResponse.Header or (if a response was returned at
68131// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68132// to check whether the returned error was because
68133// http.StatusNotModified was returned.
68134func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68135	gensupport.SetOptions(c.urlParams_, opts...)
68136	res, err := c.doRequest("json")
68137	if res != nil && res.StatusCode == http.StatusNotModified {
68138		if res.Body != nil {
68139			res.Body.Close()
68140		}
68141		return nil, &googleapi.Error{
68142			Code:   res.StatusCode,
68143			Header: res.Header,
68144		}
68145	}
68146	if err != nil {
68147		return nil, err
68148	}
68149	defer googleapi.CloseBody(res)
68150	if err := googleapi.CheckResponse(res); err != nil {
68151		return nil, err
68152	}
68153	ret := &Operation{
68154		ServerResponse: googleapi.ServerResponse{
68155			Header:         res.Header,
68156			HTTPStatusCode: res.StatusCode,
68157		},
68158	}
68159	target := &ret
68160	if err := gensupport.DecodeResponse(target, res); err != nil {
68161		return nil, err
68162	}
68163	return ret, nil
68164	// {
68165	//   "description": "Detach the network endpoint from the specified network endpoint group.",
68166	//   "httpMethod": "POST",
68167	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
68168	//   "parameterOrder": [
68169	//     "project",
68170	//     "networkEndpointGroup"
68171	//   ],
68172	//   "parameters": {
68173	//     "networkEndpointGroup": {
68174	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
68175	//       "location": "path",
68176	//       "required": true,
68177	//       "type": "string"
68178	//     },
68179	//     "project": {
68180	//       "description": "Project ID for this request.",
68181	//       "location": "path",
68182	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68183	//       "required": true,
68184	//       "type": "string"
68185	//     },
68186	//     "requestId": {
68187	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68188	//       "location": "query",
68189	//       "type": "string"
68190	//     }
68191	//   },
68192	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
68193	//   "request": {
68194	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
68195	//   },
68196	//   "response": {
68197	//     "$ref": "Operation"
68198	//   },
68199	//   "scopes": [
68200	//     "https://www.googleapis.com/auth/cloud-platform",
68201	//     "https://www.googleapis.com/auth/compute"
68202	//   ]
68203	// }
68204
68205}
68206
68207// method id "compute.globalNetworkEndpointGroups.get":
68208
68209type GlobalNetworkEndpointGroupsGetCall struct {
68210	s                    *Service
68211	project              string
68212	networkEndpointGroup string
68213	urlParams_           gensupport.URLParams
68214	ifNoneMatch_         string
68215	ctx_                 context.Context
68216	header_              http.Header
68217}
68218
68219// Get: Returns the specified network endpoint group. Gets a list of
68220// available network endpoint groups by making a list() request.
68221func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
68222	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68223	c.project = project
68224	c.networkEndpointGroup = networkEndpointGroup
68225	return c
68226}
68227
68228// Fields allows partial responses to be retrieved. See
68229// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68230// for more information.
68231func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
68232	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68233	return c
68234}
68235
68236// IfNoneMatch sets the optional parameter which makes the operation
68237// fail if the object's ETag matches the given value. This is useful for
68238// getting updates only after the object has changed since the last
68239// request. Use googleapi.IsNotModified to check whether the response
68240// error from Do is the result of In-None-Match.
68241func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
68242	c.ifNoneMatch_ = entityTag
68243	return c
68244}
68245
68246// Context sets the context to be used in this call's Do method. Any
68247// pending HTTP request will be aborted if the provided context is
68248// canceled.
68249func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
68250	c.ctx_ = ctx
68251	return c
68252}
68253
68254// Header returns an http.Header that can be modified by the caller to
68255// add HTTP headers to the request.
68256func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
68257	if c.header_ == nil {
68258		c.header_ = make(http.Header)
68259	}
68260	return c.header_
68261}
68262
68263func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
68264	reqHeaders := make(http.Header)
68265	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
68266	for k, v := range c.header_ {
68267		reqHeaders[k] = v
68268	}
68269	reqHeaders.Set("User-Agent", c.s.userAgent())
68270	if c.ifNoneMatch_ != "" {
68271		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68272	}
68273	var body io.Reader = nil
68274	c.urlParams_.Set("alt", alt)
68275	c.urlParams_.Set("prettyPrint", "false")
68276	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
68277	urls += "?" + c.urlParams_.Encode()
68278	req, err := http.NewRequest("GET", urls, body)
68279	if err != nil {
68280		return nil, err
68281	}
68282	req.Header = reqHeaders
68283	googleapi.Expand(req.URL, map[string]string{
68284		"project":              c.project,
68285		"networkEndpointGroup": c.networkEndpointGroup,
68286	})
68287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68288}
68289
68290// Do executes the "compute.globalNetworkEndpointGroups.get" call.
68291// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
68292// non-2xx status code is an error. Response headers are in either
68293// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
68294// returned at all) in error.(*googleapi.Error).Header. Use
68295// googleapi.IsNotModified to check whether the returned error was
68296// because http.StatusNotModified was returned.
68297func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
68298	gensupport.SetOptions(c.urlParams_, opts...)
68299	res, err := c.doRequest("json")
68300	if res != nil && res.StatusCode == http.StatusNotModified {
68301		if res.Body != nil {
68302			res.Body.Close()
68303		}
68304		return nil, &googleapi.Error{
68305			Code:   res.StatusCode,
68306			Header: res.Header,
68307		}
68308	}
68309	if err != nil {
68310		return nil, err
68311	}
68312	defer googleapi.CloseBody(res)
68313	if err := googleapi.CheckResponse(res); err != nil {
68314		return nil, err
68315	}
68316	ret := &NetworkEndpointGroup{
68317		ServerResponse: googleapi.ServerResponse{
68318			Header:         res.Header,
68319			HTTPStatusCode: res.StatusCode,
68320		},
68321	}
68322	target := &ret
68323	if err := gensupport.DecodeResponse(target, res); err != nil {
68324		return nil, err
68325	}
68326	return ret, nil
68327	// {
68328	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
68329	//   "httpMethod": "GET",
68330	//   "id": "compute.globalNetworkEndpointGroups.get",
68331	//   "parameterOrder": [
68332	//     "project",
68333	//     "networkEndpointGroup"
68334	//   ],
68335	//   "parameters": {
68336	//     "networkEndpointGroup": {
68337	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
68338	//       "location": "path",
68339	//       "required": true,
68340	//       "type": "string"
68341	//     },
68342	//     "project": {
68343	//       "description": "Project ID for this request.",
68344	//       "location": "path",
68345	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68346	//       "required": true,
68347	//       "type": "string"
68348	//     }
68349	//   },
68350	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
68351	//   "response": {
68352	//     "$ref": "NetworkEndpointGroup"
68353	//   },
68354	//   "scopes": [
68355	//     "https://www.googleapis.com/auth/cloud-platform",
68356	//     "https://www.googleapis.com/auth/compute",
68357	//     "https://www.googleapis.com/auth/compute.readonly"
68358	//   ]
68359	// }
68360
68361}
68362
68363// method id "compute.globalNetworkEndpointGroups.insert":
68364
68365type GlobalNetworkEndpointGroupsInsertCall struct {
68366	s                    *Service
68367	project              string
68368	networkendpointgroup *NetworkEndpointGroup
68369	urlParams_           gensupport.URLParams
68370	ctx_                 context.Context
68371	header_              http.Header
68372}
68373
68374// Insert: Creates a network endpoint group in the specified project
68375// using the parameters that are included in the request.
68376func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
68377	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68378	c.project = project
68379	c.networkendpointgroup = networkendpointgroup
68380	return c
68381}
68382
68383// RequestId sets the optional parameter "requestId": An optional
68384// request ID to identify requests. Specify a unique request ID so that
68385// if you must retry your request, the server will know to ignore the
68386// request if it has already been completed.
68387//
68388// For example, consider a situation where you make an initial request
68389// and the request times out. If you make the request again with the
68390// same request ID, the server can check if original operation with the
68391// same request ID was received, and if so, will ignore the second
68392// request. This prevents clients from accidentally creating duplicate
68393// commitments.
68394//
68395// The request ID must be a valid UUID with the exception that zero UUID
68396// is not supported (00000000-0000-0000-0000-000000000000).
68397func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
68398	c.urlParams_.Set("requestId", requestId)
68399	return c
68400}
68401
68402// Fields allows partial responses to be retrieved. See
68403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68404// for more information.
68405func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
68406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68407	return c
68408}
68409
68410// Context sets the context to be used in this call's Do method. Any
68411// pending HTTP request will be aborted if the provided context is
68412// canceled.
68413func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
68414	c.ctx_ = ctx
68415	return c
68416}
68417
68418// Header returns an http.Header that can be modified by the caller to
68419// add HTTP headers to the request.
68420func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
68421	if c.header_ == nil {
68422		c.header_ = make(http.Header)
68423	}
68424	return c.header_
68425}
68426
68427func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
68428	reqHeaders := make(http.Header)
68429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
68430	for k, v := range c.header_ {
68431		reqHeaders[k] = v
68432	}
68433	reqHeaders.Set("User-Agent", c.s.userAgent())
68434	var body io.Reader = nil
68435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
68436	if err != nil {
68437		return nil, err
68438	}
68439	reqHeaders.Set("Content-Type", "application/json")
68440	c.urlParams_.Set("alt", alt)
68441	c.urlParams_.Set("prettyPrint", "false")
68442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
68443	urls += "?" + c.urlParams_.Encode()
68444	req, err := http.NewRequest("POST", urls, body)
68445	if err != nil {
68446		return nil, err
68447	}
68448	req.Header = reqHeaders
68449	googleapi.Expand(req.URL, map[string]string{
68450		"project": c.project,
68451	})
68452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68453}
68454
68455// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
68456// Exactly one of *Operation or error will be non-nil. Any non-2xx
68457// status code is an error. Response headers are in either
68458// *Operation.ServerResponse.Header or (if a response was returned at
68459// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68460// to check whether the returned error was because
68461// http.StatusNotModified was returned.
68462func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68463	gensupport.SetOptions(c.urlParams_, opts...)
68464	res, err := c.doRequest("json")
68465	if res != nil && res.StatusCode == http.StatusNotModified {
68466		if res.Body != nil {
68467			res.Body.Close()
68468		}
68469		return nil, &googleapi.Error{
68470			Code:   res.StatusCode,
68471			Header: res.Header,
68472		}
68473	}
68474	if err != nil {
68475		return nil, err
68476	}
68477	defer googleapi.CloseBody(res)
68478	if err := googleapi.CheckResponse(res); err != nil {
68479		return nil, err
68480	}
68481	ret := &Operation{
68482		ServerResponse: googleapi.ServerResponse{
68483			Header:         res.Header,
68484			HTTPStatusCode: res.StatusCode,
68485		},
68486	}
68487	target := &ret
68488	if err := gensupport.DecodeResponse(target, res); err != nil {
68489		return nil, err
68490	}
68491	return ret, nil
68492	// {
68493	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
68494	//   "httpMethod": "POST",
68495	//   "id": "compute.globalNetworkEndpointGroups.insert",
68496	//   "parameterOrder": [
68497	//     "project"
68498	//   ],
68499	//   "parameters": {
68500	//     "project": {
68501	//       "description": "Project ID for this request.",
68502	//       "location": "path",
68503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68504	//       "required": true,
68505	//       "type": "string"
68506	//     },
68507	//     "requestId": {
68508	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68509	//       "location": "query",
68510	//       "type": "string"
68511	//     }
68512	//   },
68513	//   "path": "{project}/global/networkEndpointGroups",
68514	//   "request": {
68515	//     "$ref": "NetworkEndpointGroup"
68516	//   },
68517	//   "response": {
68518	//     "$ref": "Operation"
68519	//   },
68520	//   "scopes": [
68521	//     "https://www.googleapis.com/auth/cloud-platform",
68522	//     "https://www.googleapis.com/auth/compute"
68523	//   ]
68524	// }
68525
68526}
68527
68528// method id "compute.globalNetworkEndpointGroups.list":
68529
68530type GlobalNetworkEndpointGroupsListCall struct {
68531	s            *Service
68532	project      string
68533	urlParams_   gensupport.URLParams
68534	ifNoneMatch_ string
68535	ctx_         context.Context
68536	header_      http.Header
68537}
68538
68539// List: Retrieves the list of network endpoint groups that are located
68540// in the specified project.
68541func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
68542	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68543	c.project = project
68544	return c
68545}
68546
68547// Filter sets the optional parameter "filter": A filter expression that
68548// filters resources listed in the response. The expression must specify
68549// the field name, a comparison operator, and the value that you want to
68550// use for filtering. The value must be a string, a number, or a
68551// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68552// `<`.
68553//
68554// For example, if you are filtering Compute Engine instances, you can
68555// exclude instances named `example-instance` by specifying `name !=
68556// example-instance`.
68557//
68558// You can also filter nested fields. For example, you could specify
68559// `scheduling.automaticRestart = false` to include instances only if
68560// they are not scheduled for automatic restarts. You can use filtering
68561// on nested fields to filter based on resource labels.
68562//
68563// To filter on multiple expressions, provide each separate expression
68564// within parentheses. For example: ``` (scheduling.automaticRestart =
68565// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68566// is an `AND` expression. However, you can include `AND` and `OR`
68567// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68568// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68569// (scheduling.automaticRestart = true) ```
68570func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
68571	c.urlParams_.Set("filter", filter)
68572	return c
68573}
68574
68575// MaxResults sets the optional parameter "maxResults": The maximum
68576// number of results per page that should be returned. If the number of
68577// available results is larger than `maxResults`, Compute Engine returns
68578// a `nextPageToken` that can be used to get the next page of results in
68579// subsequent list requests. Acceptable values are `0` to `500`,
68580// inclusive. (Default: `500`)
68581func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
68582	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68583	return c
68584}
68585
68586// OrderBy sets the optional parameter "orderBy": Sorts list results by
68587// a certain order. By default, results are returned in alphanumerical
68588// order based on the resource name.
68589//
68590// You can also sort results in descending order based on the creation
68591// timestamp using `orderBy="creationTimestamp desc". This sorts
68592// results based on the `creationTimestamp` field in reverse
68593// chronological order (newest result first). Use this to sort resources
68594// like operations so that the newest operation is returned
68595// first.
68596//
68597// Currently, only sorting by `name` or `creationTimestamp desc` is
68598// supported.
68599func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
68600	c.urlParams_.Set("orderBy", orderBy)
68601	return c
68602}
68603
68604// PageToken sets the optional parameter "pageToken": Specifies a page
68605// token to use. Set `pageToken` to the `nextPageToken` returned by a
68606// previous list request to get the next page of results.
68607func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
68608	c.urlParams_.Set("pageToken", pageToken)
68609	return c
68610}
68611
68612// ReturnPartialSuccess sets the optional parameter
68613// "returnPartialSuccess": Opt-in for partial success behavior which
68614// provides partial results in case of failure. The default value is
68615// false and the logic is the same as today.
68616func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall {
68617	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
68618	return c
68619}
68620
68621// Fields allows partial responses to be retrieved. See
68622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68623// for more information.
68624func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
68625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68626	return c
68627}
68628
68629// IfNoneMatch sets the optional parameter which makes the operation
68630// fail if the object's ETag matches the given value. This is useful for
68631// getting updates only after the object has changed since the last
68632// request. Use googleapi.IsNotModified to check whether the response
68633// error from Do is the result of In-None-Match.
68634func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
68635	c.ifNoneMatch_ = entityTag
68636	return c
68637}
68638
68639// Context sets the context to be used in this call's Do method. Any
68640// pending HTTP request will be aborted if the provided context is
68641// canceled.
68642func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
68643	c.ctx_ = ctx
68644	return c
68645}
68646
68647// Header returns an http.Header that can be modified by the caller to
68648// add HTTP headers to the request.
68649func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
68650	if c.header_ == nil {
68651		c.header_ = make(http.Header)
68652	}
68653	return c.header_
68654}
68655
68656func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
68657	reqHeaders := make(http.Header)
68658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
68659	for k, v := range c.header_ {
68660		reqHeaders[k] = v
68661	}
68662	reqHeaders.Set("User-Agent", c.s.userAgent())
68663	if c.ifNoneMatch_ != "" {
68664		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68665	}
68666	var body io.Reader = nil
68667	c.urlParams_.Set("alt", alt)
68668	c.urlParams_.Set("prettyPrint", "false")
68669	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
68670	urls += "?" + c.urlParams_.Encode()
68671	req, err := http.NewRequest("GET", urls, body)
68672	if err != nil {
68673		return nil, err
68674	}
68675	req.Header = reqHeaders
68676	googleapi.Expand(req.URL, map[string]string{
68677		"project": c.project,
68678	})
68679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68680}
68681
68682// Do executes the "compute.globalNetworkEndpointGroups.list" call.
68683// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
68684// Any non-2xx status code is an error. Response headers are in either
68685// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
68686// returned at all) in error.(*googleapi.Error).Header. Use
68687// googleapi.IsNotModified to check whether the returned error was
68688// because http.StatusNotModified was returned.
68689func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
68690	gensupport.SetOptions(c.urlParams_, opts...)
68691	res, err := c.doRequest("json")
68692	if res != nil && res.StatusCode == http.StatusNotModified {
68693		if res.Body != nil {
68694			res.Body.Close()
68695		}
68696		return nil, &googleapi.Error{
68697			Code:   res.StatusCode,
68698			Header: res.Header,
68699		}
68700	}
68701	if err != nil {
68702		return nil, err
68703	}
68704	defer googleapi.CloseBody(res)
68705	if err := googleapi.CheckResponse(res); err != nil {
68706		return nil, err
68707	}
68708	ret := &NetworkEndpointGroupList{
68709		ServerResponse: googleapi.ServerResponse{
68710			Header:         res.Header,
68711			HTTPStatusCode: res.StatusCode,
68712		},
68713	}
68714	target := &ret
68715	if err := gensupport.DecodeResponse(target, res); err != nil {
68716		return nil, err
68717	}
68718	return ret, nil
68719	// {
68720	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
68721	//   "httpMethod": "GET",
68722	//   "id": "compute.globalNetworkEndpointGroups.list",
68723	//   "parameterOrder": [
68724	//     "project"
68725	//   ],
68726	//   "parameters": {
68727	//     "filter": {
68728	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
68729	//       "location": "query",
68730	//       "type": "string"
68731	//     },
68732	//     "maxResults": {
68733	//       "default": "500",
68734	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
68735	//       "format": "uint32",
68736	//       "location": "query",
68737	//       "minimum": "0",
68738	//       "type": "integer"
68739	//     },
68740	//     "orderBy": {
68741	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
68742	//       "location": "query",
68743	//       "type": "string"
68744	//     },
68745	//     "pageToken": {
68746	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
68747	//       "location": "query",
68748	//       "type": "string"
68749	//     },
68750	//     "project": {
68751	//       "description": "Project ID for this request.",
68752	//       "location": "path",
68753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68754	//       "required": true,
68755	//       "type": "string"
68756	//     },
68757	//     "returnPartialSuccess": {
68758	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
68759	//       "location": "query",
68760	//       "type": "boolean"
68761	//     }
68762	//   },
68763	//   "path": "{project}/global/networkEndpointGroups",
68764	//   "response": {
68765	//     "$ref": "NetworkEndpointGroupList"
68766	//   },
68767	//   "scopes": [
68768	//     "https://www.googleapis.com/auth/cloud-platform",
68769	//     "https://www.googleapis.com/auth/compute",
68770	//     "https://www.googleapis.com/auth/compute.readonly"
68771	//   ]
68772	// }
68773
68774}
68775
68776// Pages invokes f for each page of results.
68777// A non-nil error returned from f will halt the iteration.
68778// The provided context supersedes any context provided to the Context method.
68779func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
68780	c.ctx_ = ctx
68781	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68782	for {
68783		x, err := c.Do()
68784		if err != nil {
68785			return err
68786		}
68787		if err := f(x); err != nil {
68788			return err
68789		}
68790		if x.NextPageToken == "" {
68791			return nil
68792		}
68793		c.PageToken(x.NextPageToken)
68794	}
68795}
68796
68797// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
68798
68799type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
68800	s                    *Service
68801	project              string
68802	networkEndpointGroup string
68803	urlParams_           gensupport.URLParams
68804	ctx_                 context.Context
68805	header_              http.Header
68806}
68807
68808// ListNetworkEndpoints: Lists the network endpoints in the specified
68809// network endpoint group.
68810func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68811	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68812	c.project = project
68813	c.networkEndpointGroup = networkEndpointGroup
68814	return c
68815}
68816
68817// Filter sets the optional parameter "filter": A filter expression that
68818// filters resources listed in the response. The expression must specify
68819// the field name, a comparison operator, and the value that you want to
68820// use for filtering. The value must be a string, a number, or a
68821// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68822// `<`.
68823//
68824// For example, if you are filtering Compute Engine instances, you can
68825// exclude instances named `example-instance` by specifying `name !=
68826// example-instance`.
68827//
68828// You can also filter nested fields. For example, you could specify
68829// `scheduling.automaticRestart = false` to include instances only if
68830// they are not scheduled for automatic restarts. You can use filtering
68831// on nested fields to filter based on resource labels.
68832//
68833// To filter on multiple expressions, provide each separate expression
68834// within parentheses. For example: ``` (scheduling.automaticRestart =
68835// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68836// is an `AND` expression. However, you can include `AND` and `OR`
68837// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68838// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68839// (scheduling.automaticRestart = true) ```
68840func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68841	c.urlParams_.Set("filter", filter)
68842	return c
68843}
68844
68845// MaxResults sets the optional parameter "maxResults": The maximum
68846// number of results per page that should be returned. If the number of
68847// available results is larger than `maxResults`, Compute Engine returns
68848// a `nextPageToken` that can be used to get the next page of results in
68849// subsequent list requests. Acceptable values are `0` to `500`,
68850// inclusive. (Default: `500`)
68851func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68852	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68853	return c
68854}
68855
68856// OrderBy sets the optional parameter "orderBy": Sorts list results by
68857// a certain order. By default, results are returned in alphanumerical
68858// order based on the resource name.
68859//
68860// You can also sort results in descending order based on the creation
68861// timestamp using `orderBy="creationTimestamp desc". This sorts
68862// results based on the `creationTimestamp` field in reverse
68863// chronological order (newest result first). Use this to sort resources
68864// like operations so that the newest operation is returned
68865// first.
68866//
68867// Currently, only sorting by `name` or `creationTimestamp desc` is
68868// supported.
68869func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68870	c.urlParams_.Set("orderBy", orderBy)
68871	return c
68872}
68873
68874// PageToken sets the optional parameter "pageToken": Specifies a page
68875// token to use. Set `pageToken` to the `nextPageToken` returned by a
68876// previous list request to get the next page of results.
68877func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68878	c.urlParams_.Set("pageToken", pageToken)
68879	return c
68880}
68881
68882// ReturnPartialSuccess sets the optional parameter
68883// "returnPartialSuccess": Opt-in for partial success behavior which
68884// provides partial results in case of failure. The default value is
68885// false and the logic is the same as today.
68886func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68887	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
68888	return c
68889}
68890
68891// Fields allows partial responses to be retrieved. See
68892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68893// for more information.
68894func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68896	return c
68897}
68898
68899// Context sets the context to be used in this call's Do method. Any
68900// pending HTTP request will be aborted if the provided context is
68901// canceled.
68902func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
68903	c.ctx_ = ctx
68904	return c
68905}
68906
68907// Header returns an http.Header that can be modified by the caller to
68908// add HTTP headers to the request.
68909func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
68910	if c.header_ == nil {
68911		c.header_ = make(http.Header)
68912	}
68913	return c.header_
68914}
68915
68916func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
68917	reqHeaders := make(http.Header)
68918	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
68919	for k, v := range c.header_ {
68920		reqHeaders[k] = v
68921	}
68922	reqHeaders.Set("User-Agent", c.s.userAgent())
68923	var body io.Reader = nil
68924	c.urlParams_.Set("alt", alt)
68925	c.urlParams_.Set("prettyPrint", "false")
68926	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
68927	urls += "?" + c.urlParams_.Encode()
68928	req, err := http.NewRequest("POST", urls, body)
68929	if err != nil {
68930		return nil, err
68931	}
68932	req.Header = reqHeaders
68933	googleapi.Expand(req.URL, map[string]string{
68934		"project":              c.project,
68935		"networkEndpointGroup": c.networkEndpointGroup,
68936	})
68937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68938}
68939
68940// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
68941// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
68942// will be non-nil. Any non-2xx status code is an error. Response
68943// headers are in either
68944// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
68945// (if a response was returned at all) in
68946// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
68947// whether the returned error was because http.StatusNotModified was
68948// returned.
68949func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
68950	gensupport.SetOptions(c.urlParams_, opts...)
68951	res, err := c.doRequest("json")
68952	if res != nil && res.StatusCode == http.StatusNotModified {
68953		if res.Body != nil {
68954			res.Body.Close()
68955		}
68956		return nil, &googleapi.Error{
68957			Code:   res.StatusCode,
68958			Header: res.Header,
68959		}
68960	}
68961	if err != nil {
68962		return nil, err
68963	}
68964	defer googleapi.CloseBody(res)
68965	if err := googleapi.CheckResponse(res); err != nil {
68966		return nil, err
68967	}
68968	ret := &NetworkEndpointGroupsListNetworkEndpoints{
68969		ServerResponse: googleapi.ServerResponse{
68970			Header:         res.Header,
68971			HTTPStatusCode: res.StatusCode,
68972		},
68973	}
68974	target := &ret
68975	if err := gensupport.DecodeResponse(target, res); err != nil {
68976		return nil, err
68977	}
68978	return ret, nil
68979	// {
68980	//   "description": "Lists the network endpoints in the specified network endpoint group.",
68981	//   "httpMethod": "POST",
68982	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
68983	//   "parameterOrder": [
68984	//     "project",
68985	//     "networkEndpointGroup"
68986	//   ],
68987	//   "parameters": {
68988	//     "filter": {
68989	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
68990	//       "location": "query",
68991	//       "type": "string"
68992	//     },
68993	//     "maxResults": {
68994	//       "default": "500",
68995	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
68996	//       "format": "uint32",
68997	//       "location": "query",
68998	//       "minimum": "0",
68999	//       "type": "integer"
69000	//     },
69001	//     "networkEndpointGroup": {
69002	//       "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.",
69003	//       "location": "path",
69004	//       "required": true,
69005	//       "type": "string"
69006	//     },
69007	//     "orderBy": {
69008	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
69009	//       "location": "query",
69010	//       "type": "string"
69011	//     },
69012	//     "pageToken": {
69013	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69014	//       "location": "query",
69015	//       "type": "string"
69016	//     },
69017	//     "project": {
69018	//       "description": "Project ID for this request.",
69019	//       "location": "path",
69020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69021	//       "required": true,
69022	//       "type": "string"
69023	//     },
69024	//     "returnPartialSuccess": {
69025	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
69026	//       "location": "query",
69027	//       "type": "boolean"
69028	//     }
69029	//   },
69030	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
69031	//   "response": {
69032	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
69033	//   },
69034	//   "scopes": [
69035	//     "https://www.googleapis.com/auth/cloud-platform",
69036	//     "https://www.googleapis.com/auth/compute",
69037	//     "https://www.googleapis.com/auth/compute.readonly"
69038	//   ]
69039	// }
69040
69041}
69042
69043// Pages invokes f for each page of results.
69044// A non-nil error returned from f will halt the iteration.
69045// The provided context supersedes any context provided to the Context method.
69046func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
69047	c.ctx_ = ctx
69048	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69049	for {
69050		x, err := c.Do()
69051		if err != nil {
69052			return err
69053		}
69054		if err := f(x); err != nil {
69055			return err
69056		}
69057		if x.NextPageToken == "" {
69058			return nil
69059		}
69060		c.PageToken(x.NextPageToken)
69061	}
69062}
69063
69064// method id "compute.globalOperations.aggregatedList":
69065
69066type GlobalOperationsAggregatedListCall struct {
69067	s            *Service
69068	project      string
69069	urlParams_   gensupport.URLParams
69070	ifNoneMatch_ string
69071	ctx_         context.Context
69072	header_      http.Header
69073}
69074
69075// AggregatedList: Retrieves an aggregated list of all operations.
69076// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
69077func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
69078	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69079	c.project = project
69080	return c
69081}
69082
69083// Filter sets the optional parameter "filter": A filter expression that
69084// filters resources listed in the response. The expression must specify
69085// the field name, a comparison operator, and the value that you want to
69086// use for filtering. The value must be a string, a number, or a
69087// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69088// `<`.
69089//
69090// For example, if you are filtering Compute Engine instances, you can
69091// exclude instances named `example-instance` by specifying `name !=
69092// example-instance`.
69093//
69094// You can also filter nested fields. For example, you could specify
69095// `scheduling.automaticRestart = false` to include instances only if
69096// they are not scheduled for automatic restarts. You can use filtering
69097// on nested fields to filter based on resource labels.
69098//
69099// To filter on multiple expressions, provide each separate expression
69100// within parentheses. For example: ``` (scheduling.automaticRestart =
69101// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
69102// is an `AND` expression. However, you can include `AND` and `OR`
69103// expressions explicitly. For example: ``` (cpuPlatform = "Intel
69104// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
69105// (scheduling.automaticRestart = true) ```
69106func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
69107	c.urlParams_.Set("filter", filter)
69108	return c
69109}
69110
69111// IncludeAllScopes sets the optional parameter "includeAllScopes":
69112// Indicates whether every visible scope for each scope type (zone,
69113// region, global) should be included in the response. For new resource
69114// types added after this field, the flag has no effect as new resource
69115// types will always include every visible scope for each scope type in
69116// response. For resource types which predate this field, if this flag
69117// is omitted or false, only scopes of the scope types where the
69118// resource type is expected to be found will be included.
69119func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
69120	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
69121	return c
69122}
69123
69124// MaxResults sets the optional parameter "maxResults": The maximum
69125// number of results per page that should be returned. If the number of
69126// available results is larger than `maxResults`, Compute Engine returns
69127// a `nextPageToken` that can be used to get the next page of results in
69128// subsequent list requests. Acceptable values are `0` to `500`,
69129// inclusive. (Default: `500`)
69130func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
69131	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69132	return c
69133}
69134
69135// OrderBy sets the optional parameter "orderBy": Sorts list results by
69136// a certain order. By default, results are returned in alphanumerical
69137// order based on the resource name.
69138//
69139// You can also sort results in descending order based on the creation
69140// timestamp using `orderBy="creationTimestamp desc". This sorts
69141// results based on the `creationTimestamp` field in reverse
69142// chronological order (newest result first). Use this to sort resources
69143// like operations so that the newest operation is returned
69144// first.
69145//
69146// Currently, only sorting by `name` or `creationTimestamp desc` is
69147// supported.
69148func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
69149	c.urlParams_.Set("orderBy", orderBy)
69150	return c
69151}
69152
69153// PageToken sets the optional parameter "pageToken": Specifies a page
69154// token to use. Set `pageToken` to the `nextPageToken` returned by a
69155// previous list request to get the next page of results.
69156func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
69157	c.urlParams_.Set("pageToken", pageToken)
69158	return c
69159}
69160
69161// ReturnPartialSuccess sets the optional parameter
69162// "returnPartialSuccess": Opt-in for partial success behavior which
69163// provides partial results in case of failure. The default value is
69164// false and the logic is the same as today.
69165func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall {
69166	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69167	return c
69168}
69169
69170// Fields allows partial responses to be retrieved. See
69171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69172// for more information.
69173func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
69174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69175	return c
69176}
69177
69178// IfNoneMatch sets the optional parameter which makes the operation
69179// fail if the object's ETag matches the given value. This is useful for
69180// getting updates only after the object has changed since the last
69181// request. Use googleapi.IsNotModified to check whether the response
69182// error from Do is the result of In-None-Match.
69183func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
69184	c.ifNoneMatch_ = entityTag
69185	return c
69186}
69187
69188// Context sets the context to be used in this call's Do method. Any
69189// pending HTTP request will be aborted if the provided context is
69190// canceled.
69191func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
69192	c.ctx_ = ctx
69193	return c
69194}
69195
69196// Header returns an http.Header that can be modified by the caller to
69197// add HTTP headers to the request.
69198func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
69199	if c.header_ == nil {
69200		c.header_ = make(http.Header)
69201	}
69202	return c.header_
69203}
69204
69205func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
69206	reqHeaders := make(http.Header)
69207	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
69208	for k, v := range c.header_ {
69209		reqHeaders[k] = v
69210	}
69211	reqHeaders.Set("User-Agent", c.s.userAgent())
69212	if c.ifNoneMatch_ != "" {
69213		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69214	}
69215	var body io.Reader = nil
69216	c.urlParams_.Set("alt", alt)
69217	c.urlParams_.Set("prettyPrint", "false")
69218	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
69219	urls += "?" + c.urlParams_.Encode()
69220	req, err := http.NewRequest("GET", urls, body)
69221	if err != nil {
69222		return nil, err
69223	}
69224	req.Header = reqHeaders
69225	googleapi.Expand(req.URL, map[string]string{
69226		"project": c.project,
69227	})
69228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69229}
69230
69231// Do executes the "compute.globalOperations.aggregatedList" call.
69232// Exactly one of *OperationAggregatedList or error will be non-nil. Any
69233// non-2xx status code is an error. Response headers are in either
69234// *OperationAggregatedList.ServerResponse.Header or (if a response was
69235// returned at all) in error.(*googleapi.Error).Header. Use
69236// googleapi.IsNotModified to check whether the returned error was
69237// because http.StatusNotModified was returned.
69238func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
69239	gensupport.SetOptions(c.urlParams_, opts...)
69240	res, err := c.doRequest("json")
69241	if res != nil && res.StatusCode == http.StatusNotModified {
69242		if res.Body != nil {
69243			res.Body.Close()
69244		}
69245		return nil, &googleapi.Error{
69246			Code:   res.StatusCode,
69247			Header: res.Header,
69248		}
69249	}
69250	if err != nil {
69251		return nil, err
69252	}
69253	defer googleapi.CloseBody(res)
69254	if err := googleapi.CheckResponse(res); err != nil {
69255		return nil, err
69256	}
69257	ret := &OperationAggregatedList{
69258		ServerResponse: googleapi.ServerResponse{
69259			Header:         res.Header,
69260			HTTPStatusCode: res.StatusCode,
69261		},
69262	}
69263	target := &ret
69264	if err := gensupport.DecodeResponse(target, res); err != nil {
69265		return nil, err
69266	}
69267	return ret, nil
69268	// {
69269	//   "description": "Retrieves an aggregated list of all operations.",
69270	//   "httpMethod": "GET",
69271	//   "id": "compute.globalOperations.aggregatedList",
69272	//   "parameterOrder": [
69273	//     "project"
69274	//   ],
69275	//   "parameters": {
69276	//     "filter": {
69277	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
69278	//       "location": "query",
69279	//       "type": "string"
69280	//     },
69281	//     "includeAllScopes": {
69282	//       "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.",
69283	//       "location": "query",
69284	//       "type": "boolean"
69285	//     },
69286	//     "maxResults": {
69287	//       "default": "500",
69288	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69289	//       "format": "uint32",
69290	//       "location": "query",
69291	//       "minimum": "0",
69292	//       "type": "integer"
69293	//     },
69294	//     "orderBy": {
69295	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
69296	//       "location": "query",
69297	//       "type": "string"
69298	//     },
69299	//     "pageToken": {
69300	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69301	//       "location": "query",
69302	//       "type": "string"
69303	//     },
69304	//     "project": {
69305	//       "description": "Project ID for this request.",
69306	//       "location": "path",
69307	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69308	//       "required": true,
69309	//       "type": "string"
69310	//     },
69311	//     "returnPartialSuccess": {
69312	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
69313	//       "location": "query",
69314	//       "type": "boolean"
69315	//     }
69316	//   },
69317	//   "path": "{project}/aggregated/operations",
69318	//   "response": {
69319	//     "$ref": "OperationAggregatedList"
69320	//   },
69321	//   "scopes": [
69322	//     "https://www.googleapis.com/auth/cloud-platform",
69323	//     "https://www.googleapis.com/auth/compute",
69324	//     "https://www.googleapis.com/auth/compute.readonly"
69325	//   ]
69326	// }
69327
69328}
69329
69330// Pages invokes f for each page of results.
69331// A non-nil error returned from f will halt the iteration.
69332// The provided context supersedes any context provided to the Context method.
69333func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
69334	c.ctx_ = ctx
69335	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69336	for {
69337		x, err := c.Do()
69338		if err != nil {
69339			return err
69340		}
69341		if err := f(x); err != nil {
69342			return err
69343		}
69344		if x.NextPageToken == "" {
69345			return nil
69346		}
69347		c.PageToken(x.NextPageToken)
69348	}
69349}
69350
69351// method id "compute.globalOperations.delete":
69352
69353type GlobalOperationsDeleteCall struct {
69354	s          *Service
69355	project    string
69356	operation  string
69357	urlParams_ gensupport.URLParams
69358	ctx_       context.Context
69359	header_    http.Header
69360}
69361
69362// Delete: Deletes the specified Operations resource.
69363// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
69364func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
69365	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69366	c.project = project
69367	c.operation = operation
69368	return c
69369}
69370
69371// Fields allows partial responses to be retrieved. See
69372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69373// for more information.
69374func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
69375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69376	return c
69377}
69378
69379// Context sets the context to be used in this call's Do method. Any
69380// pending HTTP request will be aborted if the provided context is
69381// canceled.
69382func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
69383	c.ctx_ = ctx
69384	return c
69385}
69386
69387// Header returns an http.Header that can be modified by the caller to
69388// add HTTP headers to the request.
69389func (c *GlobalOperationsDeleteCall) Header() http.Header {
69390	if c.header_ == nil {
69391		c.header_ = make(http.Header)
69392	}
69393	return c.header_
69394}
69395
69396func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
69397	reqHeaders := make(http.Header)
69398	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
69399	for k, v := range c.header_ {
69400		reqHeaders[k] = v
69401	}
69402	reqHeaders.Set("User-Agent", c.s.userAgent())
69403	var body io.Reader = nil
69404	c.urlParams_.Set("alt", alt)
69405	c.urlParams_.Set("prettyPrint", "false")
69406	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
69407	urls += "?" + c.urlParams_.Encode()
69408	req, err := http.NewRequest("DELETE", urls, body)
69409	if err != nil {
69410		return nil, err
69411	}
69412	req.Header = reqHeaders
69413	googleapi.Expand(req.URL, map[string]string{
69414		"project":   c.project,
69415		"operation": c.operation,
69416	})
69417	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69418}
69419
69420// Do executes the "compute.globalOperations.delete" call.
69421func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
69422	gensupport.SetOptions(c.urlParams_, opts...)
69423	res, err := c.doRequest("json")
69424	if err != nil {
69425		return err
69426	}
69427	defer googleapi.CloseBody(res)
69428	if err := googleapi.CheckResponse(res); err != nil {
69429		return err
69430	}
69431	return nil
69432	// {
69433	//   "description": "Deletes the specified Operations resource.",
69434	//   "httpMethod": "DELETE",
69435	//   "id": "compute.globalOperations.delete",
69436	//   "parameterOrder": [
69437	//     "project",
69438	//     "operation"
69439	//   ],
69440	//   "parameters": {
69441	//     "operation": {
69442	//       "description": "Name of the Operations resource to delete.",
69443	//       "location": "path",
69444	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69445	//       "required": true,
69446	//       "type": "string"
69447	//     },
69448	//     "project": {
69449	//       "description": "Project ID for this request.",
69450	//       "location": "path",
69451	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69452	//       "required": true,
69453	//       "type": "string"
69454	//     }
69455	//   },
69456	//   "path": "{project}/global/operations/{operation}",
69457	//   "scopes": [
69458	//     "https://www.googleapis.com/auth/cloud-platform",
69459	//     "https://www.googleapis.com/auth/compute"
69460	//   ]
69461	// }
69462
69463}
69464
69465// method id "compute.globalOperations.get":
69466
69467type GlobalOperationsGetCall struct {
69468	s            *Service
69469	project      string
69470	operation    string
69471	urlParams_   gensupport.URLParams
69472	ifNoneMatch_ string
69473	ctx_         context.Context
69474	header_      http.Header
69475}
69476
69477// Get: Retrieves the specified Operations resource. Gets a list of
69478// operations by making a `list()` request.
69479// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
69480func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
69481	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69482	c.project = project
69483	c.operation = operation
69484	return c
69485}
69486
69487// Fields allows partial responses to be retrieved. See
69488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69489// for more information.
69490func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
69491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69492	return c
69493}
69494
69495// IfNoneMatch sets the optional parameter which makes the operation
69496// fail if the object's ETag matches the given value. This is useful for
69497// getting updates only after the object has changed since the last
69498// request. Use googleapi.IsNotModified to check whether the response
69499// error from Do is the result of In-None-Match.
69500func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
69501	c.ifNoneMatch_ = entityTag
69502	return c
69503}
69504
69505// Context sets the context to be used in this call's Do method. Any
69506// pending HTTP request will be aborted if the provided context is
69507// canceled.
69508func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
69509	c.ctx_ = ctx
69510	return c
69511}
69512
69513// Header returns an http.Header that can be modified by the caller to
69514// add HTTP headers to the request.
69515func (c *GlobalOperationsGetCall) Header() http.Header {
69516	if c.header_ == nil {
69517		c.header_ = make(http.Header)
69518	}
69519	return c.header_
69520}
69521
69522func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
69523	reqHeaders := make(http.Header)
69524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
69525	for k, v := range c.header_ {
69526		reqHeaders[k] = v
69527	}
69528	reqHeaders.Set("User-Agent", c.s.userAgent())
69529	if c.ifNoneMatch_ != "" {
69530		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69531	}
69532	var body io.Reader = nil
69533	c.urlParams_.Set("alt", alt)
69534	c.urlParams_.Set("prettyPrint", "false")
69535	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
69536	urls += "?" + c.urlParams_.Encode()
69537	req, err := http.NewRequest("GET", urls, body)
69538	if err != nil {
69539		return nil, err
69540	}
69541	req.Header = reqHeaders
69542	googleapi.Expand(req.URL, map[string]string{
69543		"project":   c.project,
69544		"operation": c.operation,
69545	})
69546	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69547}
69548
69549// Do executes the "compute.globalOperations.get" call.
69550// Exactly one of *Operation or error will be non-nil. Any non-2xx
69551// status code is an error. Response headers are in either
69552// *Operation.ServerResponse.Header or (if a response was returned at
69553// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69554// to check whether the returned error was because
69555// http.StatusNotModified was returned.
69556func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69557	gensupport.SetOptions(c.urlParams_, opts...)
69558	res, err := c.doRequest("json")
69559	if res != nil && res.StatusCode == http.StatusNotModified {
69560		if res.Body != nil {
69561			res.Body.Close()
69562		}
69563		return nil, &googleapi.Error{
69564			Code:   res.StatusCode,
69565			Header: res.Header,
69566		}
69567	}
69568	if err != nil {
69569		return nil, err
69570	}
69571	defer googleapi.CloseBody(res)
69572	if err := googleapi.CheckResponse(res); err != nil {
69573		return nil, err
69574	}
69575	ret := &Operation{
69576		ServerResponse: googleapi.ServerResponse{
69577			Header:         res.Header,
69578			HTTPStatusCode: res.StatusCode,
69579		},
69580	}
69581	target := &ret
69582	if err := gensupport.DecodeResponse(target, res); err != nil {
69583		return nil, err
69584	}
69585	return ret, nil
69586	// {
69587	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
69588	//   "httpMethod": "GET",
69589	//   "id": "compute.globalOperations.get",
69590	//   "parameterOrder": [
69591	//     "project",
69592	//     "operation"
69593	//   ],
69594	//   "parameters": {
69595	//     "operation": {
69596	//       "description": "Name of the Operations resource to return.",
69597	//       "location": "path",
69598	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69599	//       "required": true,
69600	//       "type": "string"
69601	//     },
69602	//     "project": {
69603	//       "description": "Project ID for this request.",
69604	//       "location": "path",
69605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69606	//       "required": true,
69607	//       "type": "string"
69608	//     }
69609	//   },
69610	//   "path": "{project}/global/operations/{operation}",
69611	//   "response": {
69612	//     "$ref": "Operation"
69613	//   },
69614	//   "scopes": [
69615	//     "https://www.googleapis.com/auth/cloud-platform",
69616	//     "https://www.googleapis.com/auth/compute",
69617	//     "https://www.googleapis.com/auth/compute.readonly"
69618	//   ]
69619	// }
69620
69621}
69622
69623// method id "compute.globalOperations.list":
69624
69625type GlobalOperationsListCall struct {
69626	s            *Service
69627	project      string
69628	urlParams_   gensupport.URLParams
69629	ifNoneMatch_ string
69630	ctx_         context.Context
69631	header_      http.Header
69632}
69633
69634// List: Retrieves a list of Operation resources contained within the
69635// specified project.
69636// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
69637func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
69638	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69639	c.project = project
69640	return c
69641}
69642
69643// Filter sets the optional parameter "filter": A filter expression that
69644// filters resources listed in the response. The expression must specify
69645// the field name, a comparison operator, and the value that you want to
69646// use for filtering. The value must be a string, a number, or a
69647// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69648// `<`.
69649//
69650// For example, if you are filtering Compute Engine instances, you can
69651// exclude instances named `example-instance` by specifying `name !=
69652// example-instance`.
69653//
69654// You can also filter nested fields. For example, you could specify
69655// `scheduling.automaticRestart = false` to include instances only if
69656// they are not scheduled for automatic restarts. You can use filtering
69657// on nested fields to filter based on resource labels.
69658//
69659// To filter on multiple expressions, provide each separate expression
69660// within parentheses. For example: ``` (scheduling.automaticRestart =
69661// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
69662// is an `AND` expression. However, you can include `AND` and `OR`
69663// expressions explicitly. For example: ``` (cpuPlatform = "Intel
69664// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
69665// (scheduling.automaticRestart = true) ```
69666func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
69667	c.urlParams_.Set("filter", filter)
69668	return c
69669}
69670
69671// MaxResults sets the optional parameter "maxResults": The maximum
69672// number of results per page that should be returned. If the number of
69673// available results is larger than `maxResults`, Compute Engine returns
69674// a `nextPageToken` that can be used to get the next page of results in
69675// subsequent list requests. Acceptable values are `0` to `500`,
69676// inclusive. (Default: `500`)
69677func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
69678	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69679	return c
69680}
69681
69682// OrderBy sets the optional parameter "orderBy": Sorts list results by
69683// a certain order. By default, results are returned in alphanumerical
69684// order based on the resource name.
69685//
69686// You can also sort results in descending order based on the creation
69687// timestamp using `orderBy="creationTimestamp desc". This sorts
69688// results based on the `creationTimestamp` field in reverse
69689// chronological order (newest result first). Use this to sort resources
69690// like operations so that the newest operation is returned
69691// first.
69692//
69693// Currently, only sorting by `name` or `creationTimestamp desc` is
69694// supported.
69695func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
69696	c.urlParams_.Set("orderBy", orderBy)
69697	return c
69698}
69699
69700// PageToken sets the optional parameter "pageToken": Specifies a page
69701// token to use. Set `pageToken` to the `nextPageToken` returned by a
69702// previous list request to get the next page of results.
69703func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
69704	c.urlParams_.Set("pageToken", pageToken)
69705	return c
69706}
69707
69708// ReturnPartialSuccess sets the optional parameter
69709// "returnPartialSuccess": Opt-in for partial success behavior which
69710// provides partial results in case of failure. The default value is
69711// false and the logic is the same as today.
69712func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall {
69713	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69714	return c
69715}
69716
69717// Fields allows partial responses to be retrieved. See
69718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69719// for more information.
69720func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
69721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69722	return c
69723}
69724
69725// IfNoneMatch sets the optional parameter which makes the operation
69726// fail if the object's ETag matches the given value. This is useful for
69727// getting updates only after the object has changed since the last
69728// request. Use googleapi.IsNotModified to check whether the response
69729// error from Do is the result of In-None-Match.
69730func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
69731	c.ifNoneMatch_ = entityTag
69732	return c
69733}
69734
69735// Context sets the context to be used in this call's Do method. Any
69736// pending HTTP request will be aborted if the provided context is
69737// canceled.
69738func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
69739	c.ctx_ = ctx
69740	return c
69741}
69742
69743// Header returns an http.Header that can be modified by the caller to
69744// add HTTP headers to the request.
69745func (c *GlobalOperationsListCall) Header() http.Header {
69746	if c.header_ == nil {
69747		c.header_ = make(http.Header)
69748	}
69749	return c.header_
69750}
69751
69752func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
69753	reqHeaders := make(http.Header)
69754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
69755	for k, v := range c.header_ {
69756		reqHeaders[k] = v
69757	}
69758	reqHeaders.Set("User-Agent", c.s.userAgent())
69759	if c.ifNoneMatch_ != "" {
69760		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69761	}
69762	var body io.Reader = nil
69763	c.urlParams_.Set("alt", alt)
69764	c.urlParams_.Set("prettyPrint", "false")
69765	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
69766	urls += "?" + c.urlParams_.Encode()
69767	req, err := http.NewRequest("GET", urls, body)
69768	if err != nil {
69769		return nil, err
69770	}
69771	req.Header = reqHeaders
69772	googleapi.Expand(req.URL, map[string]string{
69773		"project": c.project,
69774	})
69775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69776}
69777
69778// Do executes the "compute.globalOperations.list" call.
69779// Exactly one of *OperationList or error will be non-nil. Any non-2xx
69780// status code is an error. Response headers are in either
69781// *OperationList.ServerResponse.Header or (if a response was returned
69782// at all) in error.(*googleapi.Error).Header. Use
69783// googleapi.IsNotModified to check whether the returned error was
69784// because http.StatusNotModified was returned.
69785func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
69786	gensupport.SetOptions(c.urlParams_, opts...)
69787	res, err := c.doRequest("json")
69788	if res != nil && res.StatusCode == http.StatusNotModified {
69789		if res.Body != nil {
69790			res.Body.Close()
69791		}
69792		return nil, &googleapi.Error{
69793			Code:   res.StatusCode,
69794			Header: res.Header,
69795		}
69796	}
69797	if err != nil {
69798		return nil, err
69799	}
69800	defer googleapi.CloseBody(res)
69801	if err := googleapi.CheckResponse(res); err != nil {
69802		return nil, err
69803	}
69804	ret := &OperationList{
69805		ServerResponse: googleapi.ServerResponse{
69806			Header:         res.Header,
69807			HTTPStatusCode: res.StatusCode,
69808		},
69809	}
69810	target := &ret
69811	if err := gensupport.DecodeResponse(target, res); err != nil {
69812		return nil, err
69813	}
69814	return ret, nil
69815	// {
69816	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
69817	//   "httpMethod": "GET",
69818	//   "id": "compute.globalOperations.list",
69819	//   "parameterOrder": [
69820	//     "project"
69821	//   ],
69822	//   "parameters": {
69823	//     "filter": {
69824	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
69825	//       "location": "query",
69826	//       "type": "string"
69827	//     },
69828	//     "maxResults": {
69829	//       "default": "500",
69830	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69831	//       "format": "uint32",
69832	//       "location": "query",
69833	//       "minimum": "0",
69834	//       "type": "integer"
69835	//     },
69836	//     "orderBy": {
69837	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
69838	//       "location": "query",
69839	//       "type": "string"
69840	//     },
69841	//     "pageToken": {
69842	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69843	//       "location": "query",
69844	//       "type": "string"
69845	//     },
69846	//     "project": {
69847	//       "description": "Project ID for this request.",
69848	//       "location": "path",
69849	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69850	//       "required": true,
69851	//       "type": "string"
69852	//     },
69853	//     "returnPartialSuccess": {
69854	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
69855	//       "location": "query",
69856	//       "type": "boolean"
69857	//     }
69858	//   },
69859	//   "path": "{project}/global/operations",
69860	//   "response": {
69861	//     "$ref": "OperationList"
69862	//   },
69863	//   "scopes": [
69864	//     "https://www.googleapis.com/auth/cloud-platform",
69865	//     "https://www.googleapis.com/auth/compute",
69866	//     "https://www.googleapis.com/auth/compute.readonly"
69867	//   ]
69868	// }
69869
69870}
69871
69872// Pages invokes f for each page of results.
69873// A non-nil error returned from f will halt the iteration.
69874// The provided context supersedes any context provided to the Context method.
69875func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
69876	c.ctx_ = ctx
69877	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69878	for {
69879		x, err := c.Do()
69880		if err != nil {
69881			return err
69882		}
69883		if err := f(x); err != nil {
69884			return err
69885		}
69886		if x.NextPageToken == "" {
69887			return nil
69888		}
69889		c.PageToken(x.NextPageToken)
69890	}
69891}
69892
69893// method id "compute.globalOperations.wait":
69894
69895type GlobalOperationsWaitCall struct {
69896	s          *Service
69897	project    string
69898	operation  string
69899	urlParams_ gensupport.URLParams
69900	ctx_       context.Context
69901	header_    http.Header
69902}
69903
69904// Wait: Waits for the specified Operation resource to return as `DONE`
69905// or for the request to approach the 2 minute deadline, and retrieves
69906// the specified Operation resource. This method differs from the `GET`
69907// method in that it waits for no more than the default deadline (2
69908// minutes) and then returns the current state of the operation, which
69909// might be `DONE` or still in progress.
69910//
69911// This method is called on a best-effort basis. Specifically:
69912// - In uncommon cases, when the server is overloaded, the request might
69913// return before the default deadline is reached, or might return after
69914// zero seconds.
69915// - If the default deadline is reached, there is no guarantee that the
69916// operation is actually done when the method returns. Be prepared to
69917// retry if the operation is not `DONE`.
69918func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
69919	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69920	c.project = project
69921	c.operation = operation
69922	return c
69923}
69924
69925// Fields allows partial responses to be retrieved. See
69926// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69927// for more information.
69928func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
69929	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69930	return c
69931}
69932
69933// Context sets the context to be used in this call's Do method. Any
69934// pending HTTP request will be aborted if the provided context is
69935// canceled.
69936func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
69937	c.ctx_ = ctx
69938	return c
69939}
69940
69941// Header returns an http.Header that can be modified by the caller to
69942// add HTTP headers to the request.
69943func (c *GlobalOperationsWaitCall) Header() http.Header {
69944	if c.header_ == nil {
69945		c.header_ = make(http.Header)
69946	}
69947	return c.header_
69948}
69949
69950func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
69951	reqHeaders := make(http.Header)
69952	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
69953	for k, v := range c.header_ {
69954		reqHeaders[k] = v
69955	}
69956	reqHeaders.Set("User-Agent", c.s.userAgent())
69957	var body io.Reader = nil
69958	c.urlParams_.Set("alt", alt)
69959	c.urlParams_.Set("prettyPrint", "false")
69960	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}/wait")
69961	urls += "?" + c.urlParams_.Encode()
69962	req, err := http.NewRequest("POST", urls, body)
69963	if err != nil {
69964		return nil, err
69965	}
69966	req.Header = reqHeaders
69967	googleapi.Expand(req.URL, map[string]string{
69968		"project":   c.project,
69969		"operation": c.operation,
69970	})
69971	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69972}
69973
69974// Do executes the "compute.globalOperations.wait" call.
69975// Exactly one of *Operation or error will be non-nil. Any non-2xx
69976// status code is an error. Response headers are in either
69977// *Operation.ServerResponse.Header or (if a response was returned at
69978// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69979// to check whether the returned error was because
69980// http.StatusNotModified was returned.
69981func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69982	gensupport.SetOptions(c.urlParams_, opts...)
69983	res, err := c.doRequest("json")
69984	if res != nil && res.StatusCode == http.StatusNotModified {
69985		if res.Body != nil {
69986			res.Body.Close()
69987		}
69988		return nil, &googleapi.Error{
69989			Code:   res.StatusCode,
69990			Header: res.Header,
69991		}
69992	}
69993	if err != nil {
69994		return nil, err
69995	}
69996	defer googleapi.CloseBody(res)
69997	if err := googleapi.CheckResponse(res); err != nil {
69998		return nil, err
69999	}
70000	ret := &Operation{
70001		ServerResponse: googleapi.ServerResponse{
70002			Header:         res.Header,
70003			HTTPStatusCode: res.StatusCode,
70004		},
70005	}
70006	target := &ret
70007	if err := gensupport.DecodeResponse(target, res); err != nil {
70008		return nil, err
70009	}
70010	return ret, nil
70011	// {
70012	//   "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:  \n- In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. \n- If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`.",
70013	//   "httpMethod": "POST",
70014	//   "id": "compute.globalOperations.wait",
70015	//   "parameterOrder": [
70016	//     "project",
70017	//     "operation"
70018	//   ],
70019	//   "parameters": {
70020	//     "operation": {
70021	//       "description": "Name of the Operations resource to return.",
70022	//       "location": "path",
70023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70024	//       "required": true,
70025	//       "type": "string"
70026	//     },
70027	//     "project": {
70028	//       "description": "Project ID for this request.",
70029	//       "location": "path",
70030	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70031	//       "required": true,
70032	//       "type": "string"
70033	//     }
70034	//   },
70035	//   "path": "{project}/global/operations/{operation}/wait",
70036	//   "response": {
70037	//     "$ref": "Operation"
70038	//   },
70039	//   "scopes": [
70040	//     "https://www.googleapis.com/auth/cloud-platform",
70041	//     "https://www.googleapis.com/auth/compute",
70042	//     "https://www.googleapis.com/auth/compute.readonly"
70043	//   ]
70044	// }
70045
70046}
70047
70048// method id "compute.globalOrganizationOperations.delete":
70049
70050type GlobalOrganizationOperationsDeleteCall struct {
70051	s          *Service
70052	operation  string
70053	urlParams_ gensupport.URLParams
70054	ctx_       context.Context
70055	header_    http.Header
70056}
70057
70058// Delete: Deletes the specified Operations resource.
70059func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
70060	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70061	c.operation = operation
70062	return c
70063}
70064
70065// ParentId sets the optional parameter "parentId": Parent ID for this
70066// request.
70067func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
70068	c.urlParams_.Set("parentId", parentId)
70069	return c
70070}
70071
70072// Fields allows partial responses to be retrieved. See
70073// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70074// for more information.
70075func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
70076	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70077	return c
70078}
70079
70080// Context sets the context to be used in this call's Do method. Any
70081// pending HTTP request will be aborted if the provided context is
70082// canceled.
70083func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
70084	c.ctx_ = ctx
70085	return c
70086}
70087
70088// Header returns an http.Header that can be modified by the caller to
70089// add HTTP headers to the request.
70090func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
70091	if c.header_ == nil {
70092		c.header_ = make(http.Header)
70093	}
70094	return c.header_
70095}
70096
70097func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
70098	reqHeaders := make(http.Header)
70099	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
70100	for k, v := range c.header_ {
70101		reqHeaders[k] = v
70102	}
70103	reqHeaders.Set("User-Agent", c.s.userAgent())
70104	var body io.Reader = nil
70105	c.urlParams_.Set("alt", alt)
70106	c.urlParams_.Set("prettyPrint", "false")
70107	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
70108	urls += "?" + c.urlParams_.Encode()
70109	req, err := http.NewRequest("DELETE", urls, body)
70110	if err != nil {
70111		return nil, err
70112	}
70113	req.Header = reqHeaders
70114	googleapi.Expand(req.URL, map[string]string{
70115		"operation": c.operation,
70116	})
70117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70118}
70119
70120// Do executes the "compute.globalOrganizationOperations.delete" call.
70121func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
70122	gensupport.SetOptions(c.urlParams_, opts...)
70123	res, err := c.doRequest("json")
70124	if err != nil {
70125		return err
70126	}
70127	defer googleapi.CloseBody(res)
70128	if err := googleapi.CheckResponse(res); err != nil {
70129		return err
70130	}
70131	return nil
70132	// {
70133	//   "description": "Deletes the specified Operations resource.",
70134	//   "httpMethod": "DELETE",
70135	//   "id": "compute.globalOrganizationOperations.delete",
70136	//   "parameterOrder": [
70137	//     "operation"
70138	//   ],
70139	//   "parameters": {
70140	//     "operation": {
70141	//       "description": "Name of the Operations resource to delete.",
70142	//       "location": "path",
70143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70144	//       "required": true,
70145	//       "type": "string"
70146	//     },
70147	//     "parentId": {
70148	//       "description": "Parent ID for this request.",
70149	//       "location": "query",
70150	//       "type": "string"
70151	//     }
70152	//   },
70153	//   "path": "locations/global/operations/{operation}",
70154	//   "scopes": [
70155	//     "https://www.googleapis.com/auth/cloud-platform",
70156	//     "https://www.googleapis.com/auth/compute"
70157	//   ]
70158	// }
70159
70160}
70161
70162// method id "compute.globalOrganizationOperations.get":
70163
70164type GlobalOrganizationOperationsGetCall struct {
70165	s            *Service
70166	operation    string
70167	urlParams_   gensupport.URLParams
70168	ifNoneMatch_ string
70169	ctx_         context.Context
70170	header_      http.Header
70171}
70172
70173// Get: Retrieves the specified Operations resource. Gets a list of
70174// operations by making a `list()` request.
70175func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
70176	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70177	c.operation = operation
70178	return c
70179}
70180
70181// ParentId sets the optional parameter "parentId": Parent ID for this
70182// request.
70183func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
70184	c.urlParams_.Set("parentId", parentId)
70185	return c
70186}
70187
70188// Fields allows partial responses to be retrieved. See
70189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70190// for more information.
70191func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
70192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70193	return c
70194}
70195
70196// IfNoneMatch sets the optional parameter which makes the operation
70197// fail if the object's ETag matches the given value. This is useful for
70198// getting updates only after the object has changed since the last
70199// request. Use googleapi.IsNotModified to check whether the response
70200// error from Do is the result of In-None-Match.
70201func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
70202	c.ifNoneMatch_ = entityTag
70203	return c
70204}
70205
70206// Context sets the context to be used in this call's Do method. Any
70207// pending HTTP request will be aborted if the provided context is
70208// canceled.
70209func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
70210	c.ctx_ = ctx
70211	return c
70212}
70213
70214// Header returns an http.Header that can be modified by the caller to
70215// add HTTP headers to the request.
70216func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
70217	if c.header_ == nil {
70218		c.header_ = make(http.Header)
70219	}
70220	return c.header_
70221}
70222
70223func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
70224	reqHeaders := make(http.Header)
70225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
70226	for k, v := range c.header_ {
70227		reqHeaders[k] = v
70228	}
70229	reqHeaders.Set("User-Agent", c.s.userAgent())
70230	if c.ifNoneMatch_ != "" {
70231		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70232	}
70233	var body io.Reader = nil
70234	c.urlParams_.Set("alt", alt)
70235	c.urlParams_.Set("prettyPrint", "false")
70236	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
70237	urls += "?" + c.urlParams_.Encode()
70238	req, err := http.NewRequest("GET", urls, body)
70239	if err != nil {
70240		return nil, err
70241	}
70242	req.Header = reqHeaders
70243	googleapi.Expand(req.URL, map[string]string{
70244		"operation": c.operation,
70245	})
70246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70247}
70248
70249// Do executes the "compute.globalOrganizationOperations.get" call.
70250// Exactly one of *Operation or error will be non-nil. Any non-2xx
70251// status code is an error. Response headers are in either
70252// *Operation.ServerResponse.Header or (if a response was returned at
70253// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70254// to check whether the returned error was because
70255// http.StatusNotModified was returned.
70256func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70257	gensupport.SetOptions(c.urlParams_, opts...)
70258	res, err := c.doRequest("json")
70259	if res != nil && res.StatusCode == http.StatusNotModified {
70260		if res.Body != nil {
70261			res.Body.Close()
70262		}
70263		return nil, &googleapi.Error{
70264			Code:   res.StatusCode,
70265			Header: res.Header,
70266		}
70267	}
70268	if err != nil {
70269		return nil, err
70270	}
70271	defer googleapi.CloseBody(res)
70272	if err := googleapi.CheckResponse(res); err != nil {
70273		return nil, err
70274	}
70275	ret := &Operation{
70276		ServerResponse: googleapi.ServerResponse{
70277			Header:         res.Header,
70278			HTTPStatusCode: res.StatusCode,
70279		},
70280	}
70281	target := &ret
70282	if err := gensupport.DecodeResponse(target, res); err != nil {
70283		return nil, err
70284	}
70285	return ret, nil
70286	// {
70287	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
70288	//   "httpMethod": "GET",
70289	//   "id": "compute.globalOrganizationOperations.get",
70290	//   "parameterOrder": [
70291	//     "operation"
70292	//   ],
70293	//   "parameters": {
70294	//     "operation": {
70295	//       "description": "Name of the Operations resource to return.",
70296	//       "location": "path",
70297	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70298	//       "required": true,
70299	//       "type": "string"
70300	//     },
70301	//     "parentId": {
70302	//       "description": "Parent ID for this request.",
70303	//       "location": "query",
70304	//       "type": "string"
70305	//     }
70306	//   },
70307	//   "path": "locations/global/operations/{operation}",
70308	//   "response": {
70309	//     "$ref": "Operation"
70310	//   },
70311	//   "scopes": [
70312	//     "https://www.googleapis.com/auth/cloud-platform",
70313	//     "https://www.googleapis.com/auth/compute",
70314	//     "https://www.googleapis.com/auth/compute.readonly"
70315	//   ]
70316	// }
70317
70318}
70319
70320// method id "compute.globalOrganizationOperations.list":
70321
70322type GlobalOrganizationOperationsListCall struct {
70323	s            *Service
70324	urlParams_   gensupport.URLParams
70325	ifNoneMatch_ string
70326	ctx_         context.Context
70327	header_      http.Header
70328}
70329
70330// List: Retrieves a list of Operation resources contained within the
70331// specified organization.
70332func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
70333	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70334	return c
70335}
70336
70337// Filter sets the optional parameter "filter": A filter expression that
70338// filters resources listed in the response. The expression must specify
70339// the field name, a comparison operator, and the value that you want to
70340// use for filtering. The value must be a string, a number, or a
70341// boolean. The comparison operator must be either `=`, `!=`, `>`, or
70342// `<`.
70343//
70344// For example, if you are filtering Compute Engine instances, you can
70345// exclude instances named `example-instance` by specifying `name !=
70346// example-instance`.
70347//
70348// You can also filter nested fields. For example, you could specify
70349// `scheduling.automaticRestart = false` to include instances only if
70350// they are not scheduled for automatic restarts. You can use filtering
70351// on nested fields to filter based on resource labels.
70352//
70353// To filter on multiple expressions, provide each separate expression
70354// within parentheses. For example: ``` (scheduling.automaticRestart =
70355// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
70356// is an `AND` expression. However, you can include `AND` and `OR`
70357// expressions explicitly. For example: ``` (cpuPlatform = "Intel
70358// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
70359// (scheduling.automaticRestart = true) ```
70360func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
70361	c.urlParams_.Set("filter", filter)
70362	return c
70363}
70364
70365// MaxResults sets the optional parameter "maxResults": The maximum
70366// number of results per page that should be returned. If the number of
70367// available results is larger than `maxResults`, Compute Engine returns
70368// a `nextPageToken` that can be used to get the next page of results in
70369// subsequent list requests. Acceptable values are `0` to `500`,
70370// inclusive. (Default: `500`)
70371func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
70372	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70373	return c
70374}
70375
70376// OrderBy sets the optional parameter "orderBy": Sorts list results by
70377// a certain order. By default, results are returned in alphanumerical
70378// order based on the resource name.
70379//
70380// You can also sort results in descending order based on the creation
70381// timestamp using `orderBy="creationTimestamp desc". This sorts
70382// results based on the `creationTimestamp` field in reverse
70383// chronological order (newest result first). Use this to sort resources
70384// like operations so that the newest operation is returned
70385// first.
70386//
70387// Currently, only sorting by `name` or `creationTimestamp desc` is
70388// supported.
70389func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
70390	c.urlParams_.Set("orderBy", orderBy)
70391	return c
70392}
70393
70394// PageToken sets the optional parameter "pageToken": Specifies a page
70395// token to use. Set `pageToken` to the `nextPageToken` returned by a
70396// previous list request to get the next page of results.
70397func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
70398	c.urlParams_.Set("pageToken", pageToken)
70399	return c
70400}
70401
70402// ParentId sets the optional parameter "parentId": Parent ID for this
70403// request.
70404func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
70405	c.urlParams_.Set("parentId", parentId)
70406	return c
70407}
70408
70409// ReturnPartialSuccess sets the optional parameter
70410// "returnPartialSuccess": Opt-in for partial success behavior which
70411// provides partial results in case of failure. The default value is
70412// false and the logic is the same as today.
70413func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall {
70414	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
70415	return c
70416}
70417
70418// Fields allows partial responses to be retrieved. See
70419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70420// for more information.
70421func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
70422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70423	return c
70424}
70425
70426// IfNoneMatch sets the optional parameter which makes the operation
70427// fail if the object's ETag matches the given value. This is useful for
70428// getting updates only after the object has changed since the last
70429// request. Use googleapi.IsNotModified to check whether the response
70430// error from Do is the result of In-None-Match.
70431func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
70432	c.ifNoneMatch_ = entityTag
70433	return c
70434}
70435
70436// Context sets the context to be used in this call's Do method. Any
70437// pending HTTP request will be aborted if the provided context is
70438// canceled.
70439func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
70440	c.ctx_ = ctx
70441	return c
70442}
70443
70444// Header returns an http.Header that can be modified by the caller to
70445// add HTTP headers to the request.
70446func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
70447	if c.header_ == nil {
70448		c.header_ = make(http.Header)
70449	}
70450	return c.header_
70451}
70452
70453func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
70454	reqHeaders := make(http.Header)
70455	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
70456	for k, v := range c.header_ {
70457		reqHeaders[k] = v
70458	}
70459	reqHeaders.Set("User-Agent", c.s.userAgent())
70460	if c.ifNoneMatch_ != "" {
70461		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70462	}
70463	var body io.Reader = nil
70464	c.urlParams_.Set("alt", alt)
70465	c.urlParams_.Set("prettyPrint", "false")
70466	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
70467	urls += "?" + c.urlParams_.Encode()
70468	req, err := http.NewRequest("GET", urls, body)
70469	if err != nil {
70470		return nil, err
70471	}
70472	req.Header = reqHeaders
70473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70474}
70475
70476// Do executes the "compute.globalOrganizationOperations.list" call.
70477// Exactly one of *OperationList or error will be non-nil. Any non-2xx
70478// status code is an error. Response headers are in either
70479// *OperationList.ServerResponse.Header or (if a response was returned
70480// at all) in error.(*googleapi.Error).Header. Use
70481// googleapi.IsNotModified to check whether the returned error was
70482// because http.StatusNotModified was returned.
70483func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
70484	gensupport.SetOptions(c.urlParams_, opts...)
70485	res, err := c.doRequest("json")
70486	if res != nil && res.StatusCode == http.StatusNotModified {
70487		if res.Body != nil {
70488			res.Body.Close()
70489		}
70490		return nil, &googleapi.Error{
70491			Code:   res.StatusCode,
70492			Header: res.Header,
70493		}
70494	}
70495	if err != nil {
70496		return nil, err
70497	}
70498	defer googleapi.CloseBody(res)
70499	if err := googleapi.CheckResponse(res); err != nil {
70500		return nil, err
70501	}
70502	ret := &OperationList{
70503		ServerResponse: googleapi.ServerResponse{
70504			Header:         res.Header,
70505			HTTPStatusCode: res.StatusCode,
70506		},
70507	}
70508	target := &ret
70509	if err := gensupport.DecodeResponse(target, res); err != nil {
70510		return nil, err
70511	}
70512	return ret, nil
70513	// {
70514	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
70515	//   "httpMethod": "GET",
70516	//   "id": "compute.globalOrganizationOperations.list",
70517	//   "parameters": {
70518	//     "filter": {
70519	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
70520	//       "location": "query",
70521	//       "type": "string"
70522	//     },
70523	//     "maxResults": {
70524	//       "default": "500",
70525	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
70526	//       "format": "uint32",
70527	//       "location": "query",
70528	//       "minimum": "0",
70529	//       "type": "integer"
70530	//     },
70531	//     "orderBy": {
70532	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
70533	//       "location": "query",
70534	//       "type": "string"
70535	//     },
70536	//     "pageToken": {
70537	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
70538	//       "location": "query",
70539	//       "type": "string"
70540	//     },
70541	//     "parentId": {
70542	//       "description": "Parent ID for this request.",
70543	//       "location": "query",
70544	//       "type": "string"
70545	//     },
70546	//     "returnPartialSuccess": {
70547	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
70548	//       "location": "query",
70549	//       "type": "boolean"
70550	//     }
70551	//   },
70552	//   "path": "locations/global/operations",
70553	//   "response": {
70554	//     "$ref": "OperationList"
70555	//   },
70556	//   "scopes": [
70557	//     "https://www.googleapis.com/auth/cloud-platform",
70558	//     "https://www.googleapis.com/auth/compute",
70559	//     "https://www.googleapis.com/auth/compute.readonly"
70560	//   ]
70561	// }
70562
70563}
70564
70565// Pages invokes f for each page of results.
70566// A non-nil error returned from f will halt the iteration.
70567// The provided context supersedes any context provided to the Context method.
70568func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
70569	c.ctx_ = ctx
70570	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70571	for {
70572		x, err := c.Do()
70573		if err != nil {
70574			return err
70575		}
70576		if err := f(x); err != nil {
70577			return err
70578		}
70579		if x.NextPageToken == "" {
70580			return nil
70581		}
70582		c.PageToken(x.NextPageToken)
70583	}
70584}
70585
70586// method id "compute.globalPublicDelegatedPrefixes.delete":
70587
70588type GlobalPublicDelegatedPrefixesDeleteCall struct {
70589	s                     *Service
70590	project               string
70591	publicDelegatedPrefix string
70592	urlParams_            gensupport.URLParams
70593	ctx_                  context.Context
70594	header_               http.Header
70595}
70596
70597// Delete: Deletes the specified global PublicDelegatedPrefix.
70598func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
70599	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70600	c.project = project
70601	c.publicDelegatedPrefix = publicDelegatedPrefix
70602	return c
70603}
70604
70605// RequestId sets the optional parameter "requestId": An optional
70606// request ID to identify requests. Specify a unique request ID so that
70607// if you must retry your request, the server will know to ignore the
70608// request if it has already been completed.
70609//
70610// For example, consider a situation where you make an initial request
70611// and the request times out. If you make the request again with the
70612// same request ID, the server can check if original operation with the
70613// same request ID was received, and if so, will ignore the second
70614// request. This prevents clients from accidentally creating duplicate
70615// commitments.
70616//
70617// The request ID must be a valid UUID with the exception that zero UUID
70618// is not supported (00000000-0000-0000-0000-000000000000).
70619func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
70620	c.urlParams_.Set("requestId", requestId)
70621	return c
70622}
70623
70624// Fields allows partial responses to be retrieved. See
70625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70626// for more information.
70627func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
70628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70629	return c
70630}
70631
70632// Context sets the context to be used in this call's Do method. Any
70633// pending HTTP request will be aborted if the provided context is
70634// canceled.
70635func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
70636	c.ctx_ = ctx
70637	return c
70638}
70639
70640// Header returns an http.Header that can be modified by the caller to
70641// add HTTP headers to the request.
70642func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
70643	if c.header_ == nil {
70644		c.header_ = make(http.Header)
70645	}
70646	return c.header_
70647}
70648
70649func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
70650	reqHeaders := make(http.Header)
70651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
70652	for k, v := range c.header_ {
70653		reqHeaders[k] = v
70654	}
70655	reqHeaders.Set("User-Agent", c.s.userAgent())
70656	var body io.Reader = nil
70657	c.urlParams_.Set("alt", alt)
70658	c.urlParams_.Set("prettyPrint", "false")
70659	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
70660	urls += "?" + c.urlParams_.Encode()
70661	req, err := http.NewRequest("DELETE", urls, body)
70662	if err != nil {
70663		return nil, err
70664	}
70665	req.Header = reqHeaders
70666	googleapi.Expand(req.URL, map[string]string{
70667		"project":               c.project,
70668		"publicDelegatedPrefix": c.publicDelegatedPrefix,
70669	})
70670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70671}
70672
70673// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
70674// Exactly one of *Operation or error will be non-nil. Any non-2xx
70675// status code is an error. Response headers are in either
70676// *Operation.ServerResponse.Header or (if a response was returned at
70677// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70678// to check whether the returned error was because
70679// http.StatusNotModified was returned.
70680func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70681	gensupport.SetOptions(c.urlParams_, opts...)
70682	res, err := c.doRequest("json")
70683	if res != nil && res.StatusCode == http.StatusNotModified {
70684		if res.Body != nil {
70685			res.Body.Close()
70686		}
70687		return nil, &googleapi.Error{
70688			Code:   res.StatusCode,
70689			Header: res.Header,
70690		}
70691	}
70692	if err != nil {
70693		return nil, err
70694	}
70695	defer googleapi.CloseBody(res)
70696	if err := googleapi.CheckResponse(res); err != nil {
70697		return nil, err
70698	}
70699	ret := &Operation{
70700		ServerResponse: googleapi.ServerResponse{
70701			Header:         res.Header,
70702			HTTPStatusCode: res.StatusCode,
70703		},
70704	}
70705	target := &ret
70706	if err := gensupport.DecodeResponse(target, res); err != nil {
70707		return nil, err
70708	}
70709	return ret, nil
70710	// {
70711	//   "description": "Deletes the specified global PublicDelegatedPrefix.",
70712	//   "httpMethod": "DELETE",
70713	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
70714	//   "parameterOrder": [
70715	//     "project",
70716	//     "publicDelegatedPrefix"
70717	//   ],
70718	//   "parameters": {
70719	//     "project": {
70720	//       "description": "Project ID for this request.",
70721	//       "location": "path",
70722	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70723	//       "required": true,
70724	//       "type": "string"
70725	//     },
70726	//     "publicDelegatedPrefix": {
70727	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
70728	//       "location": "path",
70729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70730	//       "required": true,
70731	//       "type": "string"
70732	//     },
70733	//     "requestId": {
70734	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70735	//       "location": "query",
70736	//       "type": "string"
70737	//     }
70738	//   },
70739	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
70740	//   "response": {
70741	//     "$ref": "Operation"
70742	//   },
70743	//   "scopes": [
70744	//     "https://www.googleapis.com/auth/cloud-platform",
70745	//     "https://www.googleapis.com/auth/compute"
70746	//   ]
70747	// }
70748
70749}
70750
70751// method id "compute.globalPublicDelegatedPrefixes.get":
70752
70753type GlobalPublicDelegatedPrefixesGetCall struct {
70754	s                     *Service
70755	project               string
70756	publicDelegatedPrefix string
70757	urlParams_            gensupport.URLParams
70758	ifNoneMatch_          string
70759	ctx_                  context.Context
70760	header_               http.Header
70761}
70762
70763// Get: Returns the specified global PublicDelegatedPrefix resource.
70764func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
70765	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70766	c.project = project
70767	c.publicDelegatedPrefix = publicDelegatedPrefix
70768	return c
70769}
70770
70771// Fields allows partial responses to be retrieved. See
70772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70773// for more information.
70774func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
70775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70776	return c
70777}
70778
70779// IfNoneMatch sets the optional parameter which makes the operation
70780// fail if the object's ETag matches the given value. This is useful for
70781// getting updates only after the object has changed since the last
70782// request. Use googleapi.IsNotModified to check whether the response
70783// error from Do is the result of In-None-Match.
70784func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
70785	c.ifNoneMatch_ = entityTag
70786	return c
70787}
70788
70789// Context sets the context to be used in this call's Do method. Any
70790// pending HTTP request will be aborted if the provided context is
70791// canceled.
70792func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
70793	c.ctx_ = ctx
70794	return c
70795}
70796
70797// Header returns an http.Header that can be modified by the caller to
70798// add HTTP headers to the request.
70799func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
70800	if c.header_ == nil {
70801		c.header_ = make(http.Header)
70802	}
70803	return c.header_
70804}
70805
70806func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
70807	reqHeaders := make(http.Header)
70808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
70809	for k, v := range c.header_ {
70810		reqHeaders[k] = v
70811	}
70812	reqHeaders.Set("User-Agent", c.s.userAgent())
70813	if c.ifNoneMatch_ != "" {
70814		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70815	}
70816	var body io.Reader = nil
70817	c.urlParams_.Set("alt", alt)
70818	c.urlParams_.Set("prettyPrint", "false")
70819	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
70820	urls += "?" + c.urlParams_.Encode()
70821	req, err := http.NewRequest("GET", urls, body)
70822	if err != nil {
70823		return nil, err
70824	}
70825	req.Header = reqHeaders
70826	googleapi.Expand(req.URL, map[string]string{
70827		"project":               c.project,
70828		"publicDelegatedPrefix": c.publicDelegatedPrefix,
70829	})
70830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70831}
70832
70833// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
70834// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
70835// non-2xx status code is an error. Response headers are in either
70836// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
70837// returned at all) in error.(*googleapi.Error).Header. Use
70838// googleapi.IsNotModified to check whether the returned error was
70839// because http.StatusNotModified was returned.
70840func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
70841	gensupport.SetOptions(c.urlParams_, opts...)
70842	res, err := c.doRequest("json")
70843	if res != nil && res.StatusCode == http.StatusNotModified {
70844		if res.Body != nil {
70845			res.Body.Close()
70846		}
70847		return nil, &googleapi.Error{
70848			Code:   res.StatusCode,
70849			Header: res.Header,
70850		}
70851	}
70852	if err != nil {
70853		return nil, err
70854	}
70855	defer googleapi.CloseBody(res)
70856	if err := googleapi.CheckResponse(res); err != nil {
70857		return nil, err
70858	}
70859	ret := &PublicDelegatedPrefix{
70860		ServerResponse: googleapi.ServerResponse{
70861			Header:         res.Header,
70862			HTTPStatusCode: res.StatusCode,
70863		},
70864	}
70865	target := &ret
70866	if err := gensupport.DecodeResponse(target, res); err != nil {
70867		return nil, err
70868	}
70869	return ret, nil
70870	// {
70871	//   "description": "Returns the specified global PublicDelegatedPrefix resource.",
70872	//   "httpMethod": "GET",
70873	//   "id": "compute.globalPublicDelegatedPrefixes.get",
70874	//   "parameterOrder": [
70875	//     "project",
70876	//     "publicDelegatedPrefix"
70877	//   ],
70878	//   "parameters": {
70879	//     "project": {
70880	//       "description": "Project ID for this request.",
70881	//       "location": "path",
70882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70883	//       "required": true,
70884	//       "type": "string"
70885	//     },
70886	//     "publicDelegatedPrefix": {
70887	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
70888	//       "location": "path",
70889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70890	//       "required": true,
70891	//       "type": "string"
70892	//     }
70893	//   },
70894	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
70895	//   "response": {
70896	//     "$ref": "PublicDelegatedPrefix"
70897	//   },
70898	//   "scopes": [
70899	//     "https://www.googleapis.com/auth/cloud-platform",
70900	//     "https://www.googleapis.com/auth/compute",
70901	//     "https://www.googleapis.com/auth/compute.readonly"
70902	//   ]
70903	// }
70904
70905}
70906
70907// method id "compute.globalPublicDelegatedPrefixes.insert":
70908
70909type GlobalPublicDelegatedPrefixesInsertCall struct {
70910	s                     *Service
70911	project               string
70912	publicdelegatedprefix *PublicDelegatedPrefix
70913	urlParams_            gensupport.URLParams
70914	ctx_                  context.Context
70915	header_               http.Header
70916}
70917
70918// Insert: Creates a global PublicDelegatedPrefix in the specified
70919// project using the parameters that are included in the request.
70920func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
70921	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70922	c.project = project
70923	c.publicdelegatedprefix = publicdelegatedprefix
70924	return c
70925}
70926
70927// RequestId sets the optional parameter "requestId": An optional
70928// request ID to identify requests. Specify a unique request ID so that
70929// if you must retry your request, the server will know to ignore the
70930// request if it has already been completed.
70931//
70932// For example, consider a situation where you make an initial request
70933// and the request times out. If you make the request again with the
70934// same request ID, the server can check if original operation with the
70935// same request ID was received, and if so, will ignore the second
70936// request. This prevents clients from accidentally creating duplicate
70937// commitments.
70938//
70939// The request ID must be a valid UUID with the exception that zero UUID
70940// is not supported (00000000-0000-0000-0000-000000000000).
70941func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
70942	c.urlParams_.Set("requestId", requestId)
70943	return c
70944}
70945
70946// Fields allows partial responses to be retrieved. See
70947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70948// for more information.
70949func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
70950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70951	return c
70952}
70953
70954// Context sets the context to be used in this call's Do method. Any
70955// pending HTTP request will be aborted if the provided context is
70956// canceled.
70957func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
70958	c.ctx_ = ctx
70959	return c
70960}
70961
70962// Header returns an http.Header that can be modified by the caller to
70963// add HTTP headers to the request.
70964func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
70965	if c.header_ == nil {
70966		c.header_ = make(http.Header)
70967	}
70968	return c.header_
70969}
70970
70971func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
70972	reqHeaders := make(http.Header)
70973	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
70974	for k, v := range c.header_ {
70975		reqHeaders[k] = v
70976	}
70977	reqHeaders.Set("User-Agent", c.s.userAgent())
70978	var body io.Reader = nil
70979	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
70980	if err != nil {
70981		return nil, err
70982	}
70983	reqHeaders.Set("Content-Type", "application/json")
70984	c.urlParams_.Set("alt", alt)
70985	c.urlParams_.Set("prettyPrint", "false")
70986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes")
70987	urls += "?" + c.urlParams_.Encode()
70988	req, err := http.NewRequest("POST", urls, body)
70989	if err != nil {
70990		return nil, err
70991	}
70992	req.Header = reqHeaders
70993	googleapi.Expand(req.URL, map[string]string{
70994		"project": c.project,
70995	})
70996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70997}
70998
70999// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
71000// Exactly one of *Operation or error will be non-nil. Any non-2xx
71001// status code is an error. Response headers are in either
71002// *Operation.ServerResponse.Header or (if a response was returned at
71003// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71004// to check whether the returned error was because
71005// http.StatusNotModified was returned.
71006func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71007	gensupport.SetOptions(c.urlParams_, opts...)
71008	res, err := c.doRequest("json")
71009	if res != nil && res.StatusCode == http.StatusNotModified {
71010		if res.Body != nil {
71011			res.Body.Close()
71012		}
71013		return nil, &googleapi.Error{
71014			Code:   res.StatusCode,
71015			Header: res.Header,
71016		}
71017	}
71018	if err != nil {
71019		return nil, err
71020	}
71021	defer googleapi.CloseBody(res)
71022	if err := googleapi.CheckResponse(res); err != nil {
71023		return nil, err
71024	}
71025	ret := &Operation{
71026		ServerResponse: googleapi.ServerResponse{
71027			Header:         res.Header,
71028			HTTPStatusCode: res.StatusCode,
71029		},
71030	}
71031	target := &ret
71032	if err := gensupport.DecodeResponse(target, res); err != nil {
71033		return nil, err
71034	}
71035	return ret, nil
71036	// {
71037	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.",
71038	//   "httpMethod": "POST",
71039	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
71040	//   "parameterOrder": [
71041	//     "project"
71042	//   ],
71043	//   "parameters": {
71044	//     "project": {
71045	//       "description": "Project ID for this request.",
71046	//       "location": "path",
71047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71048	//       "required": true,
71049	//       "type": "string"
71050	//     },
71051	//     "requestId": {
71052	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71053	//       "location": "query",
71054	//       "type": "string"
71055	//     }
71056	//   },
71057	//   "path": "{project}/global/publicDelegatedPrefixes",
71058	//   "request": {
71059	//     "$ref": "PublicDelegatedPrefix"
71060	//   },
71061	//   "response": {
71062	//     "$ref": "Operation"
71063	//   },
71064	//   "scopes": [
71065	//     "https://www.googleapis.com/auth/cloud-platform",
71066	//     "https://www.googleapis.com/auth/compute"
71067	//   ]
71068	// }
71069
71070}
71071
71072// method id "compute.globalPublicDelegatedPrefixes.list":
71073
71074type GlobalPublicDelegatedPrefixesListCall struct {
71075	s            *Service
71076	project      string
71077	urlParams_   gensupport.URLParams
71078	ifNoneMatch_ string
71079	ctx_         context.Context
71080	header_      http.Header
71081}
71082
71083// List: Lists the global PublicDelegatedPrefixes for a project.
71084func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
71085	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71086	c.project = project
71087	return c
71088}
71089
71090// Filter sets the optional parameter "filter": A filter expression that
71091// filters resources listed in the response. The expression must specify
71092// the field name, a comparison operator, and the value that you want to
71093// use for filtering. The value must be a string, a number, or a
71094// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71095// `<`.
71096//
71097// For example, if you are filtering Compute Engine instances, you can
71098// exclude instances named `example-instance` by specifying `name !=
71099// example-instance`.
71100//
71101// You can also filter nested fields. For example, you could specify
71102// `scheduling.automaticRestart = false` to include instances only if
71103// they are not scheduled for automatic restarts. You can use filtering
71104// on nested fields to filter based on resource labels.
71105//
71106// To filter on multiple expressions, provide each separate expression
71107// within parentheses. For example: ``` (scheduling.automaticRestart =
71108// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
71109// is an `AND` expression. However, you can include `AND` and `OR`
71110// expressions explicitly. For example: ``` (cpuPlatform = "Intel
71111// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
71112// (scheduling.automaticRestart = true) ```
71113func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
71114	c.urlParams_.Set("filter", filter)
71115	return c
71116}
71117
71118// MaxResults sets the optional parameter "maxResults": The maximum
71119// number of results per page that should be returned. If the number of
71120// available results is larger than `maxResults`, Compute Engine returns
71121// a `nextPageToken` that can be used to get the next page of results in
71122// subsequent list requests. Acceptable values are `0` to `500`,
71123// inclusive. (Default: `500`)
71124func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
71125	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71126	return c
71127}
71128
71129// OrderBy sets the optional parameter "orderBy": Sorts list results by
71130// a certain order. By default, results are returned in alphanumerical
71131// order based on the resource name.
71132//
71133// You can also sort results in descending order based on the creation
71134// timestamp using `orderBy="creationTimestamp desc". This sorts
71135// results based on the `creationTimestamp` field in reverse
71136// chronological order (newest result first). Use this to sort resources
71137// like operations so that the newest operation is returned
71138// first.
71139//
71140// Currently, only sorting by `name` or `creationTimestamp desc` is
71141// supported.
71142func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
71143	c.urlParams_.Set("orderBy", orderBy)
71144	return c
71145}
71146
71147// PageToken sets the optional parameter "pageToken": Specifies a page
71148// token to use. Set `pageToken` to the `nextPageToken` returned by a
71149// previous list request to get the next page of results.
71150func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
71151	c.urlParams_.Set("pageToken", pageToken)
71152	return c
71153}
71154
71155// ReturnPartialSuccess sets the optional parameter
71156// "returnPartialSuccess": Opt-in for partial success behavior which
71157// provides partial results in case of failure. The default value is
71158// false and the logic is the same as today.
71159func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall {
71160	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71161	return c
71162}
71163
71164// Fields allows partial responses to be retrieved. See
71165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71166// for more information.
71167func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
71168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71169	return c
71170}
71171
71172// IfNoneMatch sets the optional parameter which makes the operation
71173// fail if the object's ETag matches the given value. This is useful for
71174// getting updates only after the object has changed since the last
71175// request. Use googleapi.IsNotModified to check whether the response
71176// error from Do is the result of In-None-Match.
71177func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
71178	c.ifNoneMatch_ = entityTag
71179	return c
71180}
71181
71182// Context sets the context to be used in this call's Do method. Any
71183// pending HTTP request will be aborted if the provided context is
71184// canceled.
71185func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
71186	c.ctx_ = ctx
71187	return c
71188}
71189
71190// Header returns an http.Header that can be modified by the caller to
71191// add HTTP headers to the request.
71192func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
71193	if c.header_ == nil {
71194		c.header_ = make(http.Header)
71195	}
71196	return c.header_
71197}
71198
71199func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
71200	reqHeaders := make(http.Header)
71201	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
71202	for k, v := range c.header_ {
71203		reqHeaders[k] = v
71204	}
71205	reqHeaders.Set("User-Agent", c.s.userAgent())
71206	if c.ifNoneMatch_ != "" {
71207		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71208	}
71209	var body io.Reader = nil
71210	c.urlParams_.Set("alt", alt)
71211	c.urlParams_.Set("prettyPrint", "false")
71212	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes")
71213	urls += "?" + c.urlParams_.Encode()
71214	req, err := http.NewRequest("GET", urls, body)
71215	if err != nil {
71216		return nil, err
71217	}
71218	req.Header = reqHeaders
71219	googleapi.Expand(req.URL, map[string]string{
71220		"project": c.project,
71221	})
71222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71223}
71224
71225// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
71226// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
71227// Any non-2xx status code is an error. Response headers are in either
71228// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
71229// was returned at all) in error.(*googleapi.Error).Header. Use
71230// googleapi.IsNotModified to check whether the returned error was
71231// because http.StatusNotModified was returned.
71232func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
71233	gensupport.SetOptions(c.urlParams_, opts...)
71234	res, err := c.doRequest("json")
71235	if res != nil && res.StatusCode == http.StatusNotModified {
71236		if res.Body != nil {
71237			res.Body.Close()
71238		}
71239		return nil, &googleapi.Error{
71240			Code:   res.StatusCode,
71241			Header: res.Header,
71242		}
71243	}
71244	if err != nil {
71245		return nil, err
71246	}
71247	defer googleapi.CloseBody(res)
71248	if err := googleapi.CheckResponse(res); err != nil {
71249		return nil, err
71250	}
71251	ret := &PublicDelegatedPrefixList{
71252		ServerResponse: googleapi.ServerResponse{
71253			Header:         res.Header,
71254			HTTPStatusCode: res.StatusCode,
71255		},
71256	}
71257	target := &ret
71258	if err := gensupport.DecodeResponse(target, res); err != nil {
71259		return nil, err
71260	}
71261	return ret, nil
71262	// {
71263	//   "description": "Lists the global PublicDelegatedPrefixes for a project.",
71264	//   "httpMethod": "GET",
71265	//   "id": "compute.globalPublicDelegatedPrefixes.list",
71266	//   "parameterOrder": [
71267	//     "project"
71268	//   ],
71269	//   "parameters": {
71270	//     "filter": {
71271	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71272	//       "location": "query",
71273	//       "type": "string"
71274	//     },
71275	//     "maxResults": {
71276	//       "default": "500",
71277	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71278	//       "format": "uint32",
71279	//       "location": "query",
71280	//       "minimum": "0",
71281	//       "type": "integer"
71282	//     },
71283	//     "orderBy": {
71284	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
71285	//       "location": "query",
71286	//       "type": "string"
71287	//     },
71288	//     "pageToken": {
71289	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71290	//       "location": "query",
71291	//       "type": "string"
71292	//     },
71293	//     "project": {
71294	//       "description": "Project ID for this request.",
71295	//       "location": "path",
71296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71297	//       "required": true,
71298	//       "type": "string"
71299	//     },
71300	//     "returnPartialSuccess": {
71301	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
71302	//       "location": "query",
71303	//       "type": "boolean"
71304	//     }
71305	//   },
71306	//   "path": "{project}/global/publicDelegatedPrefixes",
71307	//   "response": {
71308	//     "$ref": "PublicDelegatedPrefixList"
71309	//   },
71310	//   "scopes": [
71311	//     "https://www.googleapis.com/auth/cloud-platform",
71312	//     "https://www.googleapis.com/auth/compute",
71313	//     "https://www.googleapis.com/auth/compute.readonly"
71314	//   ]
71315	// }
71316
71317}
71318
71319// Pages invokes f for each page of results.
71320// A non-nil error returned from f will halt the iteration.
71321// The provided context supersedes any context provided to the Context method.
71322func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
71323	c.ctx_ = ctx
71324	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71325	for {
71326		x, err := c.Do()
71327		if err != nil {
71328			return err
71329		}
71330		if err := f(x); err != nil {
71331			return err
71332		}
71333		if x.NextPageToken == "" {
71334			return nil
71335		}
71336		c.PageToken(x.NextPageToken)
71337	}
71338}
71339
71340// method id "compute.globalPublicDelegatedPrefixes.patch":
71341
71342type GlobalPublicDelegatedPrefixesPatchCall struct {
71343	s                     *Service
71344	project               string
71345	publicDelegatedPrefix string
71346	publicdelegatedprefix *PublicDelegatedPrefix
71347	urlParams_            gensupport.URLParams
71348	ctx_                  context.Context
71349	header_               http.Header
71350}
71351
71352// Patch: Patches the specified global PublicDelegatedPrefix resource
71353// with the data included in the request. This method supports PATCH
71354// semantics and uses JSON merge patch format and processing rules.
71355func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
71356	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71357	c.project = project
71358	c.publicDelegatedPrefix = publicDelegatedPrefix
71359	c.publicdelegatedprefix = publicdelegatedprefix
71360	return c
71361}
71362
71363// RequestId sets the optional parameter "requestId": An optional
71364// request ID to identify requests. Specify a unique request ID so that
71365// if you must retry your request, the server will know to ignore the
71366// request if it has already been completed.
71367//
71368// For example, consider a situation where you make an initial request
71369// and the request times out. If you make the request again with the
71370// same request ID, the server can check if original operation with the
71371// same request ID was received, and if so, will ignore the second
71372// request. This prevents clients from accidentally creating duplicate
71373// commitments.
71374//
71375// The request ID must be a valid UUID with the exception that zero UUID
71376// is not supported (00000000-0000-0000-0000-000000000000).
71377func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
71378	c.urlParams_.Set("requestId", requestId)
71379	return c
71380}
71381
71382// Fields allows partial responses to be retrieved. See
71383// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71384// for more information.
71385func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
71386	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71387	return c
71388}
71389
71390// Context sets the context to be used in this call's Do method. Any
71391// pending HTTP request will be aborted if the provided context is
71392// canceled.
71393func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
71394	c.ctx_ = ctx
71395	return c
71396}
71397
71398// Header returns an http.Header that can be modified by the caller to
71399// add HTTP headers to the request.
71400func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
71401	if c.header_ == nil {
71402		c.header_ = make(http.Header)
71403	}
71404	return c.header_
71405}
71406
71407func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
71408	reqHeaders := make(http.Header)
71409	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
71410	for k, v := range c.header_ {
71411		reqHeaders[k] = v
71412	}
71413	reqHeaders.Set("User-Agent", c.s.userAgent())
71414	var body io.Reader = nil
71415	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
71416	if err != nil {
71417		return nil, err
71418	}
71419	reqHeaders.Set("Content-Type", "application/json")
71420	c.urlParams_.Set("alt", alt)
71421	c.urlParams_.Set("prettyPrint", "false")
71422	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
71423	urls += "?" + c.urlParams_.Encode()
71424	req, err := http.NewRequest("PATCH", urls, body)
71425	if err != nil {
71426		return nil, err
71427	}
71428	req.Header = reqHeaders
71429	googleapi.Expand(req.URL, map[string]string{
71430		"project":               c.project,
71431		"publicDelegatedPrefix": c.publicDelegatedPrefix,
71432	})
71433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71434}
71435
71436// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
71437// Exactly one of *Operation or error will be non-nil. Any non-2xx
71438// status code is an error. Response headers are in either
71439// *Operation.ServerResponse.Header or (if a response was returned at
71440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71441// to check whether the returned error was because
71442// http.StatusNotModified was returned.
71443func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71444	gensupport.SetOptions(c.urlParams_, opts...)
71445	res, err := c.doRequest("json")
71446	if res != nil && res.StatusCode == http.StatusNotModified {
71447		if res.Body != nil {
71448			res.Body.Close()
71449		}
71450		return nil, &googleapi.Error{
71451			Code:   res.StatusCode,
71452			Header: res.Header,
71453		}
71454	}
71455	if err != nil {
71456		return nil, err
71457	}
71458	defer googleapi.CloseBody(res)
71459	if err := googleapi.CheckResponse(res); err != nil {
71460		return nil, err
71461	}
71462	ret := &Operation{
71463		ServerResponse: googleapi.ServerResponse{
71464			Header:         res.Header,
71465			HTTPStatusCode: res.StatusCode,
71466		},
71467	}
71468	target := &ret
71469	if err := gensupport.DecodeResponse(target, res); err != nil {
71470		return nil, err
71471	}
71472	return ret, nil
71473	// {
71474	//   "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.",
71475	//   "httpMethod": "PATCH",
71476	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
71477	//   "parameterOrder": [
71478	//     "project",
71479	//     "publicDelegatedPrefix"
71480	//   ],
71481	//   "parameters": {
71482	//     "project": {
71483	//       "description": "Project ID for this request.",
71484	//       "location": "path",
71485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71486	//       "required": true,
71487	//       "type": "string"
71488	//     },
71489	//     "publicDelegatedPrefix": {
71490	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
71491	//       "location": "path",
71492	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71493	//       "required": true,
71494	//       "type": "string"
71495	//     },
71496	//     "requestId": {
71497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71498	//       "location": "query",
71499	//       "type": "string"
71500	//     }
71501	//   },
71502	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
71503	//   "request": {
71504	//     "$ref": "PublicDelegatedPrefix"
71505	//   },
71506	//   "response": {
71507	//     "$ref": "Operation"
71508	//   },
71509	//   "scopes": [
71510	//     "https://www.googleapis.com/auth/cloud-platform",
71511	//     "https://www.googleapis.com/auth/compute"
71512	//   ]
71513	// }
71514
71515}
71516
71517// method id "compute.healthChecks.aggregatedList":
71518
71519type HealthChecksAggregatedListCall struct {
71520	s            *Service
71521	project      string
71522	urlParams_   gensupport.URLParams
71523	ifNoneMatch_ string
71524	ctx_         context.Context
71525	header_      http.Header
71526}
71527
71528// AggregatedList: Retrieves the list of all HealthCheck resources,
71529// regional and global, available to the specified project.
71530func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
71531	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71532	c.project = project
71533	return c
71534}
71535
71536// Filter sets the optional parameter "filter": A filter expression that
71537// filters resources listed in the response. The expression must specify
71538// the field name, a comparison operator, and the value that you want to
71539// use for filtering. The value must be a string, a number, or a
71540// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71541// `<`.
71542//
71543// For example, if you are filtering Compute Engine instances, you can
71544// exclude instances named `example-instance` by specifying `name !=
71545// example-instance`.
71546//
71547// You can also filter nested fields. For example, you could specify
71548// `scheduling.automaticRestart = false` to include instances only if
71549// they are not scheduled for automatic restarts. You can use filtering
71550// on nested fields to filter based on resource labels.
71551//
71552// To filter on multiple expressions, provide each separate expression
71553// within parentheses. For example: ``` (scheduling.automaticRestart =
71554// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
71555// is an `AND` expression. However, you can include `AND` and `OR`
71556// expressions explicitly. For example: ``` (cpuPlatform = "Intel
71557// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
71558// (scheduling.automaticRestart = true) ```
71559func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
71560	c.urlParams_.Set("filter", filter)
71561	return c
71562}
71563
71564// IncludeAllScopes sets the optional parameter "includeAllScopes":
71565// Indicates whether every visible scope for each scope type (zone,
71566// region, global) should be included in the response. For new resource
71567// types added after this field, the flag has no effect as new resource
71568// types will always include every visible scope for each scope type in
71569// response. For resource types which predate this field, if this flag
71570// is omitted or false, only scopes of the scope types where the
71571// resource type is expected to be found will be included.
71572func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
71573	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
71574	return c
71575}
71576
71577// MaxResults sets the optional parameter "maxResults": The maximum
71578// number of results per page that should be returned. If the number of
71579// available results is larger than `maxResults`, Compute Engine returns
71580// a `nextPageToken` that can be used to get the next page of results in
71581// subsequent list requests. Acceptable values are `0` to `500`,
71582// inclusive. (Default: `500`)
71583func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
71584	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71585	return c
71586}
71587
71588// OrderBy sets the optional parameter "orderBy": Sorts list results by
71589// a certain order. By default, results are returned in alphanumerical
71590// order based on the resource name.
71591//
71592// You can also sort results in descending order based on the creation
71593// timestamp using `orderBy="creationTimestamp desc". This sorts
71594// results based on the `creationTimestamp` field in reverse
71595// chronological order (newest result first). Use this to sort resources
71596// like operations so that the newest operation is returned
71597// first.
71598//
71599// Currently, only sorting by `name` or `creationTimestamp desc` is
71600// supported.
71601func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
71602	c.urlParams_.Set("orderBy", orderBy)
71603	return c
71604}
71605
71606// PageToken sets the optional parameter "pageToken": Specifies a page
71607// token to use. Set `pageToken` to the `nextPageToken` returned by a
71608// previous list request to get the next page of results.
71609func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
71610	c.urlParams_.Set("pageToken", pageToken)
71611	return c
71612}
71613
71614// ReturnPartialSuccess sets the optional parameter
71615// "returnPartialSuccess": Opt-in for partial success behavior which
71616// provides partial results in case of failure. The default value is
71617// false and the logic is the same as today.
71618func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall {
71619	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71620	return c
71621}
71622
71623// Fields allows partial responses to be retrieved. See
71624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71625// for more information.
71626func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
71627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71628	return c
71629}
71630
71631// IfNoneMatch sets the optional parameter which makes the operation
71632// fail if the object's ETag matches the given value. This is useful for
71633// getting updates only after the object has changed since the last
71634// request. Use googleapi.IsNotModified to check whether the response
71635// error from Do is the result of In-None-Match.
71636func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
71637	c.ifNoneMatch_ = entityTag
71638	return c
71639}
71640
71641// Context sets the context to be used in this call's Do method. Any
71642// pending HTTP request will be aborted if the provided context is
71643// canceled.
71644func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
71645	c.ctx_ = ctx
71646	return c
71647}
71648
71649// Header returns an http.Header that can be modified by the caller to
71650// add HTTP headers to the request.
71651func (c *HealthChecksAggregatedListCall) Header() http.Header {
71652	if c.header_ == nil {
71653		c.header_ = make(http.Header)
71654	}
71655	return c.header_
71656}
71657
71658func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
71659	reqHeaders := make(http.Header)
71660	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
71661	for k, v := range c.header_ {
71662		reqHeaders[k] = v
71663	}
71664	reqHeaders.Set("User-Agent", c.s.userAgent())
71665	if c.ifNoneMatch_ != "" {
71666		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71667	}
71668	var body io.Reader = nil
71669	c.urlParams_.Set("alt", alt)
71670	c.urlParams_.Set("prettyPrint", "false")
71671	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/healthChecks")
71672	urls += "?" + c.urlParams_.Encode()
71673	req, err := http.NewRequest("GET", urls, body)
71674	if err != nil {
71675		return nil, err
71676	}
71677	req.Header = reqHeaders
71678	googleapi.Expand(req.URL, map[string]string{
71679		"project": c.project,
71680	})
71681	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71682}
71683
71684// Do executes the "compute.healthChecks.aggregatedList" call.
71685// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
71686// Any non-2xx status code is an error. Response headers are in either
71687// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
71688// was returned at all) in error.(*googleapi.Error).Header. Use
71689// googleapi.IsNotModified to check whether the returned error was
71690// because http.StatusNotModified was returned.
71691func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
71692	gensupport.SetOptions(c.urlParams_, opts...)
71693	res, err := c.doRequest("json")
71694	if res != nil && res.StatusCode == http.StatusNotModified {
71695		if res.Body != nil {
71696			res.Body.Close()
71697		}
71698		return nil, &googleapi.Error{
71699			Code:   res.StatusCode,
71700			Header: res.Header,
71701		}
71702	}
71703	if err != nil {
71704		return nil, err
71705	}
71706	defer googleapi.CloseBody(res)
71707	if err := googleapi.CheckResponse(res); err != nil {
71708		return nil, err
71709	}
71710	ret := &HealthChecksAggregatedList{
71711		ServerResponse: googleapi.ServerResponse{
71712			Header:         res.Header,
71713			HTTPStatusCode: res.StatusCode,
71714		},
71715	}
71716	target := &ret
71717	if err := gensupport.DecodeResponse(target, res); err != nil {
71718		return nil, err
71719	}
71720	return ret, nil
71721	// {
71722	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
71723	//   "httpMethod": "GET",
71724	//   "id": "compute.healthChecks.aggregatedList",
71725	//   "parameterOrder": [
71726	//     "project"
71727	//   ],
71728	//   "parameters": {
71729	//     "filter": {
71730	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71731	//       "location": "query",
71732	//       "type": "string"
71733	//     },
71734	//     "includeAllScopes": {
71735	//       "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.",
71736	//       "location": "query",
71737	//       "type": "boolean"
71738	//     },
71739	//     "maxResults": {
71740	//       "default": "500",
71741	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71742	//       "format": "uint32",
71743	//       "location": "query",
71744	//       "minimum": "0",
71745	//       "type": "integer"
71746	//     },
71747	//     "orderBy": {
71748	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
71749	//       "location": "query",
71750	//       "type": "string"
71751	//     },
71752	//     "pageToken": {
71753	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71754	//       "location": "query",
71755	//       "type": "string"
71756	//     },
71757	//     "project": {
71758	//       "description": "Name of the project scoping this request.",
71759	//       "location": "path",
71760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71761	//       "required": true,
71762	//       "type": "string"
71763	//     },
71764	//     "returnPartialSuccess": {
71765	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
71766	//       "location": "query",
71767	//       "type": "boolean"
71768	//     }
71769	//   },
71770	//   "path": "{project}/aggregated/healthChecks",
71771	//   "response": {
71772	//     "$ref": "HealthChecksAggregatedList"
71773	//   },
71774	//   "scopes": [
71775	//     "https://www.googleapis.com/auth/cloud-platform",
71776	//     "https://www.googleapis.com/auth/compute",
71777	//     "https://www.googleapis.com/auth/compute.readonly"
71778	//   ]
71779	// }
71780
71781}
71782
71783// Pages invokes f for each page of results.
71784// A non-nil error returned from f will halt the iteration.
71785// The provided context supersedes any context provided to the Context method.
71786func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
71787	c.ctx_ = ctx
71788	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71789	for {
71790		x, err := c.Do()
71791		if err != nil {
71792			return err
71793		}
71794		if err := f(x); err != nil {
71795			return err
71796		}
71797		if x.NextPageToken == "" {
71798			return nil
71799		}
71800		c.PageToken(x.NextPageToken)
71801	}
71802}
71803
71804// method id "compute.healthChecks.delete":
71805
71806type HealthChecksDeleteCall struct {
71807	s           *Service
71808	project     string
71809	healthCheck string
71810	urlParams_  gensupport.URLParams
71811	ctx_        context.Context
71812	header_     http.Header
71813}
71814
71815// Delete: Deletes the specified HealthCheck resource.
71816func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
71817	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71818	c.project = project
71819	c.healthCheck = healthCheck
71820	return c
71821}
71822
71823// RequestId sets the optional parameter "requestId": An optional
71824// request ID to identify requests. Specify a unique request ID so that
71825// if you must retry your request, the server will know to ignore the
71826// request if it has already been completed.
71827//
71828// For example, consider a situation where you make an initial request
71829// and the request times out. If you make the request again with the
71830// same request ID, the server can check if original operation with the
71831// same request ID was received, and if so, will ignore the second
71832// request. This prevents clients from accidentally creating duplicate
71833// commitments.
71834//
71835// The request ID must be a valid UUID with the exception that zero UUID
71836// is not supported (00000000-0000-0000-0000-000000000000).
71837func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
71838	c.urlParams_.Set("requestId", requestId)
71839	return c
71840}
71841
71842// Fields allows partial responses to be retrieved. See
71843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71844// for more information.
71845func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
71846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71847	return c
71848}
71849
71850// Context sets the context to be used in this call's Do method. Any
71851// pending HTTP request will be aborted if the provided context is
71852// canceled.
71853func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
71854	c.ctx_ = ctx
71855	return c
71856}
71857
71858// Header returns an http.Header that can be modified by the caller to
71859// add HTTP headers to the request.
71860func (c *HealthChecksDeleteCall) Header() http.Header {
71861	if c.header_ == nil {
71862		c.header_ = make(http.Header)
71863	}
71864	return c.header_
71865}
71866
71867func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
71868	reqHeaders := make(http.Header)
71869	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
71870	for k, v := range c.header_ {
71871		reqHeaders[k] = v
71872	}
71873	reqHeaders.Set("User-Agent", c.s.userAgent())
71874	var body io.Reader = nil
71875	c.urlParams_.Set("alt", alt)
71876	c.urlParams_.Set("prettyPrint", "false")
71877	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
71878	urls += "?" + c.urlParams_.Encode()
71879	req, err := http.NewRequest("DELETE", urls, body)
71880	if err != nil {
71881		return nil, err
71882	}
71883	req.Header = reqHeaders
71884	googleapi.Expand(req.URL, map[string]string{
71885		"project":     c.project,
71886		"healthCheck": c.healthCheck,
71887	})
71888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71889}
71890
71891// Do executes the "compute.healthChecks.delete" call.
71892// Exactly one of *Operation or error will be non-nil. Any non-2xx
71893// status code is an error. Response headers are in either
71894// *Operation.ServerResponse.Header or (if a response was returned at
71895// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71896// to check whether the returned error was because
71897// http.StatusNotModified was returned.
71898func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71899	gensupport.SetOptions(c.urlParams_, opts...)
71900	res, err := c.doRequest("json")
71901	if res != nil && res.StatusCode == http.StatusNotModified {
71902		if res.Body != nil {
71903			res.Body.Close()
71904		}
71905		return nil, &googleapi.Error{
71906			Code:   res.StatusCode,
71907			Header: res.Header,
71908		}
71909	}
71910	if err != nil {
71911		return nil, err
71912	}
71913	defer googleapi.CloseBody(res)
71914	if err := googleapi.CheckResponse(res); err != nil {
71915		return nil, err
71916	}
71917	ret := &Operation{
71918		ServerResponse: googleapi.ServerResponse{
71919			Header:         res.Header,
71920			HTTPStatusCode: res.StatusCode,
71921		},
71922	}
71923	target := &ret
71924	if err := gensupport.DecodeResponse(target, res); err != nil {
71925		return nil, err
71926	}
71927	return ret, nil
71928	// {
71929	//   "description": "Deletes the specified HealthCheck resource.",
71930	//   "httpMethod": "DELETE",
71931	//   "id": "compute.healthChecks.delete",
71932	//   "parameterOrder": [
71933	//     "project",
71934	//     "healthCheck"
71935	//   ],
71936	//   "parameters": {
71937	//     "healthCheck": {
71938	//       "description": "Name of the HealthCheck resource to delete.",
71939	//       "location": "path",
71940	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71941	//       "required": true,
71942	//       "type": "string"
71943	//     },
71944	//     "project": {
71945	//       "description": "Project ID for this request.",
71946	//       "location": "path",
71947	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71948	//       "required": true,
71949	//       "type": "string"
71950	//     },
71951	//     "requestId": {
71952	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71953	//       "location": "query",
71954	//       "type": "string"
71955	//     }
71956	//   },
71957	//   "path": "{project}/global/healthChecks/{healthCheck}",
71958	//   "response": {
71959	//     "$ref": "Operation"
71960	//   },
71961	//   "scopes": [
71962	//     "https://www.googleapis.com/auth/cloud-platform",
71963	//     "https://www.googleapis.com/auth/compute"
71964	//   ]
71965	// }
71966
71967}
71968
71969// method id "compute.healthChecks.get":
71970
71971type HealthChecksGetCall struct {
71972	s            *Service
71973	project      string
71974	healthCheck  string
71975	urlParams_   gensupport.URLParams
71976	ifNoneMatch_ string
71977	ctx_         context.Context
71978	header_      http.Header
71979}
71980
71981// Get: Returns the specified HealthCheck resource. Gets a list of
71982// available health checks by making a list() request.
71983func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
71984	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71985	c.project = project
71986	c.healthCheck = healthCheck
71987	return c
71988}
71989
71990// Fields allows partial responses to be retrieved. See
71991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71992// for more information.
71993func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
71994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71995	return c
71996}
71997
71998// IfNoneMatch sets the optional parameter which makes the operation
71999// fail if the object's ETag matches the given value. This is useful for
72000// getting updates only after the object has changed since the last
72001// request. Use googleapi.IsNotModified to check whether the response
72002// error from Do is the result of In-None-Match.
72003func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
72004	c.ifNoneMatch_ = entityTag
72005	return c
72006}
72007
72008// Context sets the context to be used in this call's Do method. Any
72009// pending HTTP request will be aborted if the provided context is
72010// canceled.
72011func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
72012	c.ctx_ = ctx
72013	return c
72014}
72015
72016// Header returns an http.Header that can be modified by the caller to
72017// add HTTP headers to the request.
72018func (c *HealthChecksGetCall) Header() http.Header {
72019	if c.header_ == nil {
72020		c.header_ = make(http.Header)
72021	}
72022	return c.header_
72023}
72024
72025func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
72026	reqHeaders := make(http.Header)
72027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
72028	for k, v := range c.header_ {
72029		reqHeaders[k] = v
72030	}
72031	reqHeaders.Set("User-Agent", c.s.userAgent())
72032	if c.ifNoneMatch_ != "" {
72033		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72034	}
72035	var body io.Reader = nil
72036	c.urlParams_.Set("alt", alt)
72037	c.urlParams_.Set("prettyPrint", "false")
72038	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
72039	urls += "?" + c.urlParams_.Encode()
72040	req, err := http.NewRequest("GET", urls, body)
72041	if err != nil {
72042		return nil, err
72043	}
72044	req.Header = reqHeaders
72045	googleapi.Expand(req.URL, map[string]string{
72046		"project":     c.project,
72047		"healthCheck": c.healthCheck,
72048	})
72049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72050}
72051
72052// Do executes the "compute.healthChecks.get" call.
72053// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
72054// status code is an error. Response headers are in either
72055// *HealthCheck.ServerResponse.Header or (if a response was returned at
72056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72057// to check whether the returned error was because
72058// http.StatusNotModified was returned.
72059func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
72060	gensupport.SetOptions(c.urlParams_, opts...)
72061	res, err := c.doRequest("json")
72062	if res != nil && res.StatusCode == http.StatusNotModified {
72063		if res.Body != nil {
72064			res.Body.Close()
72065		}
72066		return nil, &googleapi.Error{
72067			Code:   res.StatusCode,
72068			Header: res.Header,
72069		}
72070	}
72071	if err != nil {
72072		return nil, err
72073	}
72074	defer googleapi.CloseBody(res)
72075	if err := googleapi.CheckResponse(res); err != nil {
72076		return nil, err
72077	}
72078	ret := &HealthCheck{
72079		ServerResponse: googleapi.ServerResponse{
72080			Header:         res.Header,
72081			HTTPStatusCode: res.StatusCode,
72082		},
72083	}
72084	target := &ret
72085	if err := gensupport.DecodeResponse(target, res); err != nil {
72086		return nil, err
72087	}
72088	return ret, nil
72089	// {
72090	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
72091	//   "httpMethod": "GET",
72092	//   "id": "compute.healthChecks.get",
72093	//   "parameterOrder": [
72094	//     "project",
72095	//     "healthCheck"
72096	//   ],
72097	//   "parameters": {
72098	//     "healthCheck": {
72099	//       "description": "Name of the HealthCheck resource to return.",
72100	//       "location": "path",
72101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72102	//       "required": true,
72103	//       "type": "string"
72104	//     },
72105	//     "project": {
72106	//       "description": "Project ID for this request.",
72107	//       "location": "path",
72108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72109	//       "required": true,
72110	//       "type": "string"
72111	//     }
72112	//   },
72113	//   "path": "{project}/global/healthChecks/{healthCheck}",
72114	//   "response": {
72115	//     "$ref": "HealthCheck"
72116	//   },
72117	//   "scopes": [
72118	//     "https://www.googleapis.com/auth/cloud-platform",
72119	//     "https://www.googleapis.com/auth/compute",
72120	//     "https://www.googleapis.com/auth/compute.readonly"
72121	//   ]
72122	// }
72123
72124}
72125
72126// method id "compute.healthChecks.insert":
72127
72128type HealthChecksInsertCall struct {
72129	s           *Service
72130	project     string
72131	healthcheck *HealthCheck
72132	urlParams_  gensupport.URLParams
72133	ctx_        context.Context
72134	header_     http.Header
72135}
72136
72137// Insert: Creates a HealthCheck resource in the specified project using
72138// the data included in the request.
72139func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
72140	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72141	c.project = project
72142	c.healthcheck = healthcheck
72143	return c
72144}
72145
72146// RequestId sets the optional parameter "requestId": An optional
72147// request ID to identify requests. Specify a unique request ID so that
72148// if you must retry your request, the server will know to ignore the
72149// request if it has already been completed.
72150//
72151// For example, consider a situation where you make an initial request
72152// and the request times out. If you make the request again with the
72153// same request ID, the server can check if original operation with the
72154// same request ID was received, and if so, will ignore the second
72155// request. This prevents clients from accidentally creating duplicate
72156// commitments.
72157//
72158// The request ID must be a valid UUID with the exception that zero UUID
72159// is not supported (00000000-0000-0000-0000-000000000000).
72160func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
72161	c.urlParams_.Set("requestId", requestId)
72162	return c
72163}
72164
72165// Fields allows partial responses to be retrieved. See
72166// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72167// for more information.
72168func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
72169	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72170	return c
72171}
72172
72173// Context sets the context to be used in this call's Do method. Any
72174// pending HTTP request will be aborted if the provided context is
72175// canceled.
72176func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
72177	c.ctx_ = ctx
72178	return c
72179}
72180
72181// Header returns an http.Header that can be modified by the caller to
72182// add HTTP headers to the request.
72183func (c *HealthChecksInsertCall) Header() http.Header {
72184	if c.header_ == nil {
72185		c.header_ = make(http.Header)
72186	}
72187	return c.header_
72188}
72189
72190func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
72191	reqHeaders := make(http.Header)
72192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
72193	for k, v := range c.header_ {
72194		reqHeaders[k] = v
72195	}
72196	reqHeaders.Set("User-Agent", c.s.userAgent())
72197	var body io.Reader = nil
72198	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
72199	if err != nil {
72200		return nil, err
72201	}
72202	reqHeaders.Set("Content-Type", "application/json")
72203	c.urlParams_.Set("alt", alt)
72204	c.urlParams_.Set("prettyPrint", "false")
72205	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
72206	urls += "?" + c.urlParams_.Encode()
72207	req, err := http.NewRequest("POST", urls, body)
72208	if err != nil {
72209		return nil, err
72210	}
72211	req.Header = reqHeaders
72212	googleapi.Expand(req.URL, map[string]string{
72213		"project": c.project,
72214	})
72215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72216}
72217
72218// Do executes the "compute.healthChecks.insert" call.
72219// Exactly one of *Operation or error will be non-nil. Any non-2xx
72220// status code is an error. Response headers are in either
72221// *Operation.ServerResponse.Header or (if a response was returned at
72222// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72223// to check whether the returned error was because
72224// http.StatusNotModified was returned.
72225func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72226	gensupport.SetOptions(c.urlParams_, opts...)
72227	res, err := c.doRequest("json")
72228	if res != nil && res.StatusCode == http.StatusNotModified {
72229		if res.Body != nil {
72230			res.Body.Close()
72231		}
72232		return nil, &googleapi.Error{
72233			Code:   res.StatusCode,
72234			Header: res.Header,
72235		}
72236	}
72237	if err != nil {
72238		return nil, err
72239	}
72240	defer googleapi.CloseBody(res)
72241	if err := googleapi.CheckResponse(res); err != nil {
72242		return nil, err
72243	}
72244	ret := &Operation{
72245		ServerResponse: googleapi.ServerResponse{
72246			Header:         res.Header,
72247			HTTPStatusCode: res.StatusCode,
72248		},
72249	}
72250	target := &ret
72251	if err := gensupport.DecodeResponse(target, res); err != nil {
72252		return nil, err
72253	}
72254	return ret, nil
72255	// {
72256	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
72257	//   "httpMethod": "POST",
72258	//   "id": "compute.healthChecks.insert",
72259	//   "parameterOrder": [
72260	//     "project"
72261	//   ],
72262	//   "parameters": {
72263	//     "project": {
72264	//       "description": "Project ID for this request.",
72265	//       "location": "path",
72266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72267	//       "required": true,
72268	//       "type": "string"
72269	//     },
72270	//     "requestId": {
72271	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72272	//       "location": "query",
72273	//       "type": "string"
72274	//     }
72275	//   },
72276	//   "path": "{project}/global/healthChecks",
72277	//   "request": {
72278	//     "$ref": "HealthCheck"
72279	//   },
72280	//   "response": {
72281	//     "$ref": "Operation"
72282	//   },
72283	//   "scopes": [
72284	//     "https://www.googleapis.com/auth/cloud-platform",
72285	//     "https://www.googleapis.com/auth/compute"
72286	//   ]
72287	// }
72288
72289}
72290
72291// method id "compute.healthChecks.list":
72292
72293type HealthChecksListCall struct {
72294	s            *Service
72295	project      string
72296	urlParams_   gensupport.URLParams
72297	ifNoneMatch_ string
72298	ctx_         context.Context
72299	header_      http.Header
72300}
72301
72302// List: Retrieves the list of HealthCheck resources available to the
72303// specified project.
72304func (r *HealthChecksService) List(project string) *HealthChecksListCall {
72305	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72306	c.project = project
72307	return c
72308}
72309
72310// Filter sets the optional parameter "filter": A filter expression that
72311// filters resources listed in the response. The expression must specify
72312// the field name, a comparison operator, and the value that you want to
72313// use for filtering. The value must be a string, a number, or a
72314// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72315// `<`.
72316//
72317// For example, if you are filtering Compute Engine instances, you can
72318// exclude instances named `example-instance` by specifying `name !=
72319// example-instance`.
72320//
72321// You can also filter nested fields. For example, you could specify
72322// `scheduling.automaticRestart = false` to include instances only if
72323// they are not scheduled for automatic restarts. You can use filtering
72324// on nested fields to filter based on resource labels.
72325//
72326// To filter on multiple expressions, provide each separate expression
72327// within parentheses. For example: ``` (scheduling.automaticRestart =
72328// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
72329// is an `AND` expression. However, you can include `AND` and `OR`
72330// expressions explicitly. For example: ``` (cpuPlatform = "Intel
72331// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
72332// (scheduling.automaticRestart = true) ```
72333func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
72334	c.urlParams_.Set("filter", filter)
72335	return c
72336}
72337
72338// MaxResults sets the optional parameter "maxResults": The maximum
72339// number of results per page that should be returned. If the number of
72340// available results is larger than `maxResults`, Compute Engine returns
72341// a `nextPageToken` that can be used to get the next page of results in
72342// subsequent list requests. Acceptable values are `0` to `500`,
72343// inclusive. (Default: `500`)
72344func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
72345	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72346	return c
72347}
72348
72349// OrderBy sets the optional parameter "orderBy": Sorts list results by
72350// a certain order. By default, results are returned in alphanumerical
72351// order based on the resource name.
72352//
72353// You can also sort results in descending order based on the creation
72354// timestamp using `orderBy="creationTimestamp desc". This sorts
72355// results based on the `creationTimestamp` field in reverse
72356// chronological order (newest result first). Use this to sort resources
72357// like operations so that the newest operation is returned
72358// first.
72359//
72360// Currently, only sorting by `name` or `creationTimestamp desc` is
72361// supported.
72362func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
72363	c.urlParams_.Set("orderBy", orderBy)
72364	return c
72365}
72366
72367// PageToken sets the optional parameter "pageToken": Specifies a page
72368// token to use. Set `pageToken` to the `nextPageToken` returned by a
72369// previous list request to get the next page of results.
72370func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
72371	c.urlParams_.Set("pageToken", pageToken)
72372	return c
72373}
72374
72375// ReturnPartialSuccess sets the optional parameter
72376// "returnPartialSuccess": Opt-in for partial success behavior which
72377// provides partial results in case of failure. The default value is
72378// false and the logic is the same as today.
72379func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall {
72380	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72381	return c
72382}
72383
72384// Fields allows partial responses to be retrieved. See
72385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72386// for more information.
72387func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
72388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72389	return c
72390}
72391
72392// IfNoneMatch sets the optional parameter which makes the operation
72393// fail if the object's ETag matches the given value. This is useful for
72394// getting updates only after the object has changed since the last
72395// request. Use googleapi.IsNotModified to check whether the response
72396// error from Do is the result of In-None-Match.
72397func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
72398	c.ifNoneMatch_ = entityTag
72399	return c
72400}
72401
72402// Context sets the context to be used in this call's Do method. Any
72403// pending HTTP request will be aborted if the provided context is
72404// canceled.
72405func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
72406	c.ctx_ = ctx
72407	return c
72408}
72409
72410// Header returns an http.Header that can be modified by the caller to
72411// add HTTP headers to the request.
72412func (c *HealthChecksListCall) Header() http.Header {
72413	if c.header_ == nil {
72414		c.header_ = make(http.Header)
72415	}
72416	return c.header_
72417}
72418
72419func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
72420	reqHeaders := make(http.Header)
72421	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
72422	for k, v := range c.header_ {
72423		reqHeaders[k] = v
72424	}
72425	reqHeaders.Set("User-Agent", c.s.userAgent())
72426	if c.ifNoneMatch_ != "" {
72427		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72428	}
72429	var body io.Reader = nil
72430	c.urlParams_.Set("alt", alt)
72431	c.urlParams_.Set("prettyPrint", "false")
72432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
72433	urls += "?" + c.urlParams_.Encode()
72434	req, err := http.NewRequest("GET", urls, body)
72435	if err != nil {
72436		return nil, err
72437	}
72438	req.Header = reqHeaders
72439	googleapi.Expand(req.URL, map[string]string{
72440		"project": c.project,
72441	})
72442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72443}
72444
72445// Do executes the "compute.healthChecks.list" call.
72446// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
72447// status code is an error. Response headers are in either
72448// *HealthCheckList.ServerResponse.Header or (if a response was returned
72449// at all) in error.(*googleapi.Error).Header. Use
72450// googleapi.IsNotModified to check whether the returned error was
72451// because http.StatusNotModified was returned.
72452func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
72453	gensupport.SetOptions(c.urlParams_, opts...)
72454	res, err := c.doRequest("json")
72455	if res != nil && res.StatusCode == http.StatusNotModified {
72456		if res.Body != nil {
72457			res.Body.Close()
72458		}
72459		return nil, &googleapi.Error{
72460			Code:   res.StatusCode,
72461			Header: res.Header,
72462		}
72463	}
72464	if err != nil {
72465		return nil, err
72466	}
72467	defer googleapi.CloseBody(res)
72468	if err := googleapi.CheckResponse(res); err != nil {
72469		return nil, err
72470	}
72471	ret := &HealthCheckList{
72472		ServerResponse: googleapi.ServerResponse{
72473			Header:         res.Header,
72474			HTTPStatusCode: res.StatusCode,
72475		},
72476	}
72477	target := &ret
72478	if err := gensupport.DecodeResponse(target, res); err != nil {
72479		return nil, err
72480	}
72481	return ret, nil
72482	// {
72483	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
72484	//   "httpMethod": "GET",
72485	//   "id": "compute.healthChecks.list",
72486	//   "parameterOrder": [
72487	//     "project"
72488	//   ],
72489	//   "parameters": {
72490	//     "filter": {
72491	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
72492	//       "location": "query",
72493	//       "type": "string"
72494	//     },
72495	//     "maxResults": {
72496	//       "default": "500",
72497	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72498	//       "format": "uint32",
72499	//       "location": "query",
72500	//       "minimum": "0",
72501	//       "type": "integer"
72502	//     },
72503	//     "orderBy": {
72504	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
72505	//       "location": "query",
72506	//       "type": "string"
72507	//     },
72508	//     "pageToken": {
72509	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72510	//       "location": "query",
72511	//       "type": "string"
72512	//     },
72513	//     "project": {
72514	//       "description": "Project ID for this request.",
72515	//       "location": "path",
72516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72517	//       "required": true,
72518	//       "type": "string"
72519	//     },
72520	//     "returnPartialSuccess": {
72521	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
72522	//       "location": "query",
72523	//       "type": "boolean"
72524	//     }
72525	//   },
72526	//   "path": "{project}/global/healthChecks",
72527	//   "response": {
72528	//     "$ref": "HealthCheckList"
72529	//   },
72530	//   "scopes": [
72531	//     "https://www.googleapis.com/auth/cloud-platform",
72532	//     "https://www.googleapis.com/auth/compute",
72533	//     "https://www.googleapis.com/auth/compute.readonly"
72534	//   ]
72535	// }
72536
72537}
72538
72539// Pages invokes f for each page of results.
72540// A non-nil error returned from f will halt the iteration.
72541// The provided context supersedes any context provided to the Context method.
72542func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
72543	c.ctx_ = ctx
72544	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72545	for {
72546		x, err := c.Do()
72547		if err != nil {
72548			return err
72549		}
72550		if err := f(x); err != nil {
72551			return err
72552		}
72553		if x.NextPageToken == "" {
72554			return nil
72555		}
72556		c.PageToken(x.NextPageToken)
72557	}
72558}
72559
72560// method id "compute.healthChecks.patch":
72561
72562type HealthChecksPatchCall struct {
72563	s           *Service
72564	project     string
72565	healthCheck string
72566	healthcheck *HealthCheck
72567	urlParams_  gensupport.URLParams
72568	ctx_        context.Context
72569	header_     http.Header
72570}
72571
72572// Patch: Updates a HealthCheck resource in the specified project using
72573// the data included in the request. This method supports PATCH
72574// semantics and uses the JSON merge patch format and processing rules.
72575func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
72576	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72577	c.project = project
72578	c.healthCheck = healthCheck
72579	c.healthcheck = healthcheck
72580	return c
72581}
72582
72583// RequestId sets the optional parameter "requestId": An optional
72584// request ID to identify requests. Specify a unique request ID so that
72585// if you must retry your request, the server will know to ignore the
72586// request if it has already been completed.
72587//
72588// For example, consider a situation where you make an initial request
72589// and the request times out. If you make the request again with the
72590// same request ID, the server can check if original operation with the
72591// same request ID was received, and if so, will ignore the second
72592// request. This prevents clients from accidentally creating duplicate
72593// commitments.
72594//
72595// The request ID must be a valid UUID with the exception that zero UUID
72596// is not supported (00000000-0000-0000-0000-000000000000).
72597func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
72598	c.urlParams_.Set("requestId", requestId)
72599	return c
72600}
72601
72602// Fields allows partial responses to be retrieved. See
72603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72604// for more information.
72605func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
72606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72607	return c
72608}
72609
72610// Context sets the context to be used in this call's Do method. Any
72611// pending HTTP request will be aborted if the provided context is
72612// canceled.
72613func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
72614	c.ctx_ = ctx
72615	return c
72616}
72617
72618// Header returns an http.Header that can be modified by the caller to
72619// add HTTP headers to the request.
72620func (c *HealthChecksPatchCall) Header() http.Header {
72621	if c.header_ == nil {
72622		c.header_ = make(http.Header)
72623	}
72624	return c.header_
72625}
72626
72627func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
72628	reqHeaders := make(http.Header)
72629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
72630	for k, v := range c.header_ {
72631		reqHeaders[k] = v
72632	}
72633	reqHeaders.Set("User-Agent", c.s.userAgent())
72634	var body io.Reader = nil
72635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
72636	if err != nil {
72637		return nil, err
72638	}
72639	reqHeaders.Set("Content-Type", "application/json")
72640	c.urlParams_.Set("alt", alt)
72641	c.urlParams_.Set("prettyPrint", "false")
72642	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
72643	urls += "?" + c.urlParams_.Encode()
72644	req, err := http.NewRequest("PATCH", urls, body)
72645	if err != nil {
72646		return nil, err
72647	}
72648	req.Header = reqHeaders
72649	googleapi.Expand(req.URL, map[string]string{
72650		"project":     c.project,
72651		"healthCheck": c.healthCheck,
72652	})
72653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72654}
72655
72656// Do executes the "compute.healthChecks.patch" call.
72657// Exactly one of *Operation or error will be non-nil. Any non-2xx
72658// status code is an error. Response headers are in either
72659// *Operation.ServerResponse.Header or (if a response was returned at
72660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72661// to check whether the returned error was because
72662// http.StatusNotModified was returned.
72663func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72664	gensupport.SetOptions(c.urlParams_, opts...)
72665	res, err := c.doRequest("json")
72666	if res != nil && res.StatusCode == http.StatusNotModified {
72667		if res.Body != nil {
72668			res.Body.Close()
72669		}
72670		return nil, &googleapi.Error{
72671			Code:   res.StatusCode,
72672			Header: res.Header,
72673		}
72674	}
72675	if err != nil {
72676		return nil, err
72677	}
72678	defer googleapi.CloseBody(res)
72679	if err := googleapi.CheckResponse(res); err != nil {
72680		return nil, err
72681	}
72682	ret := &Operation{
72683		ServerResponse: googleapi.ServerResponse{
72684			Header:         res.Header,
72685			HTTPStatusCode: res.StatusCode,
72686		},
72687	}
72688	target := &ret
72689	if err := gensupport.DecodeResponse(target, res); err != nil {
72690		return nil, err
72691	}
72692	return ret, nil
72693	// {
72694	//   "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.",
72695	//   "httpMethod": "PATCH",
72696	//   "id": "compute.healthChecks.patch",
72697	//   "parameterOrder": [
72698	//     "project",
72699	//     "healthCheck"
72700	//   ],
72701	//   "parameters": {
72702	//     "healthCheck": {
72703	//       "description": "Name of the HealthCheck resource to patch.",
72704	//       "location": "path",
72705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72706	//       "required": true,
72707	//       "type": "string"
72708	//     },
72709	//     "project": {
72710	//       "description": "Project ID for this request.",
72711	//       "location": "path",
72712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72713	//       "required": true,
72714	//       "type": "string"
72715	//     },
72716	//     "requestId": {
72717	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72718	//       "location": "query",
72719	//       "type": "string"
72720	//     }
72721	//   },
72722	//   "path": "{project}/global/healthChecks/{healthCheck}",
72723	//   "request": {
72724	//     "$ref": "HealthCheck"
72725	//   },
72726	//   "response": {
72727	//     "$ref": "Operation"
72728	//   },
72729	//   "scopes": [
72730	//     "https://www.googleapis.com/auth/cloud-platform",
72731	//     "https://www.googleapis.com/auth/compute"
72732	//   ]
72733	// }
72734
72735}
72736
72737// method id "compute.healthChecks.testIamPermissions":
72738
72739type HealthChecksTestIamPermissionsCall struct {
72740	s                      *Service
72741	project                string
72742	resource               string
72743	testpermissionsrequest *TestPermissionsRequest
72744	urlParams_             gensupport.URLParams
72745	ctx_                   context.Context
72746	header_                http.Header
72747}
72748
72749// TestIamPermissions: Returns permissions that a caller has on the
72750// specified resource.
72751func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall {
72752	c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72753	c.project = project
72754	c.resource = resource
72755	c.testpermissionsrequest = testpermissionsrequest
72756	return c
72757}
72758
72759// Fields allows partial responses to be retrieved. See
72760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72761// for more information.
72762func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall {
72763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72764	return c
72765}
72766
72767// Context sets the context to be used in this call's Do method. Any
72768// pending HTTP request will be aborted if the provided context is
72769// canceled.
72770func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall {
72771	c.ctx_ = ctx
72772	return c
72773}
72774
72775// Header returns an http.Header that can be modified by the caller to
72776// add HTTP headers to the request.
72777func (c *HealthChecksTestIamPermissionsCall) Header() http.Header {
72778	if c.header_ == nil {
72779		c.header_ = make(http.Header)
72780	}
72781	return c.header_
72782}
72783
72784func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
72785	reqHeaders := make(http.Header)
72786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
72787	for k, v := range c.header_ {
72788		reqHeaders[k] = v
72789	}
72790	reqHeaders.Set("User-Agent", c.s.userAgent())
72791	var body io.Reader = nil
72792	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
72793	if err != nil {
72794		return nil, err
72795	}
72796	reqHeaders.Set("Content-Type", "application/json")
72797	c.urlParams_.Set("alt", alt)
72798	c.urlParams_.Set("prettyPrint", "false")
72799	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{resource}/testIamPermissions")
72800	urls += "?" + c.urlParams_.Encode()
72801	req, err := http.NewRequest("POST", urls, body)
72802	if err != nil {
72803		return nil, err
72804	}
72805	req.Header = reqHeaders
72806	googleapi.Expand(req.URL, map[string]string{
72807		"project":  c.project,
72808		"resource": c.resource,
72809	})
72810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72811}
72812
72813// Do executes the "compute.healthChecks.testIamPermissions" call.
72814// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
72815// non-2xx status code is an error. Response headers are in either
72816// *TestPermissionsResponse.ServerResponse.Header or (if a response was
72817// returned at all) in error.(*googleapi.Error).Header. Use
72818// googleapi.IsNotModified to check whether the returned error was
72819// because http.StatusNotModified was returned.
72820func (c *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
72821	gensupport.SetOptions(c.urlParams_, opts...)
72822	res, err := c.doRequest("json")
72823	if res != nil && res.StatusCode == http.StatusNotModified {
72824		if res.Body != nil {
72825			res.Body.Close()
72826		}
72827		return nil, &googleapi.Error{
72828			Code:   res.StatusCode,
72829			Header: res.Header,
72830		}
72831	}
72832	if err != nil {
72833		return nil, err
72834	}
72835	defer googleapi.CloseBody(res)
72836	if err := googleapi.CheckResponse(res); err != nil {
72837		return nil, err
72838	}
72839	ret := &TestPermissionsResponse{
72840		ServerResponse: googleapi.ServerResponse{
72841			Header:         res.Header,
72842			HTTPStatusCode: res.StatusCode,
72843		},
72844	}
72845	target := &ret
72846	if err := gensupport.DecodeResponse(target, res); err != nil {
72847		return nil, err
72848	}
72849	return ret, nil
72850	// {
72851	//   "description": "Returns permissions that a caller has on the specified resource.",
72852	//   "httpMethod": "POST",
72853	//   "id": "compute.healthChecks.testIamPermissions",
72854	//   "parameterOrder": [
72855	//     "project",
72856	//     "resource"
72857	//   ],
72858	//   "parameters": {
72859	//     "project": {
72860	//       "description": "Project ID for this request.",
72861	//       "location": "path",
72862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72863	//       "required": true,
72864	//       "type": "string"
72865	//     },
72866	//     "resource": {
72867	//       "description": "Name or id of the resource for this request.",
72868	//       "location": "path",
72869	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72870	//       "required": true,
72871	//       "type": "string"
72872	//     }
72873	//   },
72874	//   "path": "{project}/global/healthChecks/{resource}/testIamPermissions",
72875	//   "request": {
72876	//     "$ref": "TestPermissionsRequest"
72877	//   },
72878	//   "response": {
72879	//     "$ref": "TestPermissionsResponse"
72880	//   },
72881	//   "scopes": [
72882	//     "https://www.googleapis.com/auth/cloud-platform",
72883	//     "https://www.googleapis.com/auth/compute",
72884	//     "https://www.googleapis.com/auth/compute.readonly"
72885	//   ]
72886	// }
72887
72888}
72889
72890// method id "compute.healthChecks.update":
72891
72892type HealthChecksUpdateCall struct {
72893	s           *Service
72894	project     string
72895	healthCheck string
72896	healthcheck *HealthCheck
72897	urlParams_  gensupport.URLParams
72898	ctx_        context.Context
72899	header_     http.Header
72900}
72901
72902// Update: Updates a HealthCheck resource in the specified project using
72903// the data included in the request.
72904func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
72905	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72906	c.project = project
72907	c.healthCheck = healthCheck
72908	c.healthcheck = healthcheck
72909	return c
72910}
72911
72912// RequestId sets the optional parameter "requestId": An optional
72913// request ID to identify requests. Specify a unique request ID so that
72914// if you must retry your request, the server will know to ignore the
72915// request if it has already been completed.
72916//
72917// For example, consider a situation where you make an initial request
72918// and the request times out. If you make the request again with the
72919// same request ID, the server can check if original operation with the
72920// same request ID was received, and if so, will ignore the second
72921// request. This prevents clients from accidentally creating duplicate
72922// commitments.
72923//
72924// The request ID must be a valid UUID with the exception that zero UUID
72925// is not supported (00000000-0000-0000-0000-000000000000).
72926func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
72927	c.urlParams_.Set("requestId", requestId)
72928	return c
72929}
72930
72931// Fields allows partial responses to be retrieved. See
72932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72933// for more information.
72934func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
72935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72936	return c
72937}
72938
72939// Context sets the context to be used in this call's Do method. Any
72940// pending HTTP request will be aborted if the provided context is
72941// canceled.
72942func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
72943	c.ctx_ = ctx
72944	return c
72945}
72946
72947// Header returns an http.Header that can be modified by the caller to
72948// add HTTP headers to the request.
72949func (c *HealthChecksUpdateCall) Header() http.Header {
72950	if c.header_ == nil {
72951		c.header_ = make(http.Header)
72952	}
72953	return c.header_
72954}
72955
72956func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
72957	reqHeaders := make(http.Header)
72958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
72959	for k, v := range c.header_ {
72960		reqHeaders[k] = v
72961	}
72962	reqHeaders.Set("User-Agent", c.s.userAgent())
72963	var body io.Reader = nil
72964	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
72965	if err != nil {
72966		return nil, err
72967	}
72968	reqHeaders.Set("Content-Type", "application/json")
72969	c.urlParams_.Set("alt", alt)
72970	c.urlParams_.Set("prettyPrint", "false")
72971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
72972	urls += "?" + c.urlParams_.Encode()
72973	req, err := http.NewRequest("PUT", urls, body)
72974	if err != nil {
72975		return nil, err
72976	}
72977	req.Header = reqHeaders
72978	googleapi.Expand(req.URL, map[string]string{
72979		"project":     c.project,
72980		"healthCheck": c.healthCheck,
72981	})
72982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72983}
72984
72985// Do executes the "compute.healthChecks.update" call.
72986// Exactly one of *Operation or error will be non-nil. Any non-2xx
72987// status code is an error. Response headers are in either
72988// *Operation.ServerResponse.Header or (if a response was returned at
72989// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72990// to check whether the returned error was because
72991// http.StatusNotModified was returned.
72992func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72993	gensupport.SetOptions(c.urlParams_, opts...)
72994	res, err := c.doRequest("json")
72995	if res != nil && res.StatusCode == http.StatusNotModified {
72996		if res.Body != nil {
72997			res.Body.Close()
72998		}
72999		return nil, &googleapi.Error{
73000			Code:   res.StatusCode,
73001			Header: res.Header,
73002		}
73003	}
73004	if err != nil {
73005		return nil, err
73006	}
73007	defer googleapi.CloseBody(res)
73008	if err := googleapi.CheckResponse(res); err != nil {
73009		return nil, err
73010	}
73011	ret := &Operation{
73012		ServerResponse: googleapi.ServerResponse{
73013			Header:         res.Header,
73014			HTTPStatusCode: res.StatusCode,
73015		},
73016	}
73017	target := &ret
73018	if err := gensupport.DecodeResponse(target, res); err != nil {
73019		return nil, err
73020	}
73021	return ret, nil
73022	// {
73023	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
73024	//   "httpMethod": "PUT",
73025	//   "id": "compute.healthChecks.update",
73026	//   "parameterOrder": [
73027	//     "project",
73028	//     "healthCheck"
73029	//   ],
73030	//   "parameters": {
73031	//     "healthCheck": {
73032	//       "description": "Name of the HealthCheck resource to update.",
73033	//       "location": "path",
73034	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73035	//       "required": true,
73036	//       "type": "string"
73037	//     },
73038	//     "project": {
73039	//       "description": "Project ID for this request.",
73040	//       "location": "path",
73041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73042	//       "required": true,
73043	//       "type": "string"
73044	//     },
73045	//     "requestId": {
73046	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73047	//       "location": "query",
73048	//       "type": "string"
73049	//     }
73050	//   },
73051	//   "path": "{project}/global/healthChecks/{healthCheck}",
73052	//   "request": {
73053	//     "$ref": "HealthCheck"
73054	//   },
73055	//   "response": {
73056	//     "$ref": "Operation"
73057	//   },
73058	//   "scopes": [
73059	//     "https://www.googleapis.com/auth/cloud-platform",
73060	//     "https://www.googleapis.com/auth/compute"
73061	//   ]
73062	// }
73063
73064}
73065
73066// method id "compute.httpHealthChecks.delete":
73067
73068type HttpHealthChecksDeleteCall struct {
73069	s               *Service
73070	project         string
73071	httpHealthCheck string
73072	urlParams_      gensupport.URLParams
73073	ctx_            context.Context
73074	header_         http.Header
73075}
73076
73077// Delete: Deletes the specified HttpHealthCheck resource.
73078// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
73079func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
73080	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73081	c.project = project
73082	c.httpHealthCheck = httpHealthCheck
73083	return c
73084}
73085
73086// RequestId sets the optional parameter "requestId": An optional
73087// request ID to identify requests. Specify a unique request ID so that
73088// if you must retry your request, the server will know to ignore the
73089// request if it has already been completed.
73090//
73091// For example, consider a situation where you make an initial request
73092// and the request times out. If you make the request again with the
73093// same request ID, the server can check if original operation with the
73094// same request ID was received, and if so, will ignore the second
73095// request. This prevents clients from accidentally creating duplicate
73096// commitments.
73097//
73098// The request ID must be a valid UUID with the exception that zero UUID
73099// is not supported (00000000-0000-0000-0000-000000000000).
73100func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
73101	c.urlParams_.Set("requestId", requestId)
73102	return c
73103}
73104
73105// Fields allows partial responses to be retrieved. See
73106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73107// for more information.
73108func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
73109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73110	return c
73111}
73112
73113// Context sets the context to be used in this call's Do method. Any
73114// pending HTTP request will be aborted if the provided context is
73115// canceled.
73116func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
73117	c.ctx_ = ctx
73118	return c
73119}
73120
73121// Header returns an http.Header that can be modified by the caller to
73122// add HTTP headers to the request.
73123func (c *HttpHealthChecksDeleteCall) Header() http.Header {
73124	if c.header_ == nil {
73125		c.header_ = make(http.Header)
73126	}
73127	return c.header_
73128}
73129
73130func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
73131	reqHeaders := make(http.Header)
73132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
73133	for k, v := range c.header_ {
73134		reqHeaders[k] = v
73135	}
73136	reqHeaders.Set("User-Agent", c.s.userAgent())
73137	var body io.Reader = nil
73138	c.urlParams_.Set("alt", alt)
73139	c.urlParams_.Set("prettyPrint", "false")
73140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
73141	urls += "?" + c.urlParams_.Encode()
73142	req, err := http.NewRequest("DELETE", urls, body)
73143	if err != nil {
73144		return nil, err
73145	}
73146	req.Header = reqHeaders
73147	googleapi.Expand(req.URL, map[string]string{
73148		"project":         c.project,
73149		"httpHealthCheck": c.httpHealthCheck,
73150	})
73151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73152}
73153
73154// Do executes the "compute.httpHealthChecks.delete" call.
73155// Exactly one of *Operation or error will be non-nil. Any non-2xx
73156// status code is an error. Response headers are in either
73157// *Operation.ServerResponse.Header or (if a response was returned at
73158// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73159// to check whether the returned error was because
73160// http.StatusNotModified was returned.
73161func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73162	gensupport.SetOptions(c.urlParams_, opts...)
73163	res, err := c.doRequest("json")
73164	if res != nil && res.StatusCode == http.StatusNotModified {
73165		if res.Body != nil {
73166			res.Body.Close()
73167		}
73168		return nil, &googleapi.Error{
73169			Code:   res.StatusCode,
73170			Header: res.Header,
73171		}
73172	}
73173	if err != nil {
73174		return nil, err
73175	}
73176	defer googleapi.CloseBody(res)
73177	if err := googleapi.CheckResponse(res); err != nil {
73178		return nil, err
73179	}
73180	ret := &Operation{
73181		ServerResponse: googleapi.ServerResponse{
73182			Header:         res.Header,
73183			HTTPStatusCode: res.StatusCode,
73184		},
73185	}
73186	target := &ret
73187	if err := gensupport.DecodeResponse(target, res); err != nil {
73188		return nil, err
73189	}
73190	return ret, nil
73191	// {
73192	//   "description": "Deletes the specified HttpHealthCheck resource.",
73193	//   "httpMethod": "DELETE",
73194	//   "id": "compute.httpHealthChecks.delete",
73195	//   "parameterOrder": [
73196	//     "project",
73197	//     "httpHealthCheck"
73198	//   ],
73199	//   "parameters": {
73200	//     "httpHealthCheck": {
73201	//       "description": "Name of the HttpHealthCheck resource to delete.",
73202	//       "location": "path",
73203	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73204	//       "required": true,
73205	//       "type": "string"
73206	//     },
73207	//     "project": {
73208	//       "description": "Project ID for this request.",
73209	//       "location": "path",
73210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73211	//       "required": true,
73212	//       "type": "string"
73213	//     },
73214	//     "requestId": {
73215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73216	//       "location": "query",
73217	//       "type": "string"
73218	//     }
73219	//   },
73220	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
73221	//   "response": {
73222	//     "$ref": "Operation"
73223	//   },
73224	//   "scopes": [
73225	//     "https://www.googleapis.com/auth/cloud-platform",
73226	//     "https://www.googleapis.com/auth/compute"
73227	//   ]
73228	// }
73229
73230}
73231
73232// method id "compute.httpHealthChecks.get":
73233
73234type HttpHealthChecksGetCall struct {
73235	s               *Service
73236	project         string
73237	httpHealthCheck string
73238	urlParams_      gensupport.URLParams
73239	ifNoneMatch_    string
73240	ctx_            context.Context
73241	header_         http.Header
73242}
73243
73244// Get: Returns the specified HttpHealthCheck resource. Gets a list of
73245// available HTTP health checks by making a list() request.
73246// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
73247func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
73248	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73249	c.project = project
73250	c.httpHealthCheck = httpHealthCheck
73251	return c
73252}
73253
73254// Fields allows partial responses to be retrieved. See
73255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73256// for more information.
73257func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
73258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73259	return c
73260}
73261
73262// IfNoneMatch sets the optional parameter which makes the operation
73263// fail if the object's ETag matches the given value. This is useful for
73264// getting updates only after the object has changed since the last
73265// request. Use googleapi.IsNotModified to check whether the response
73266// error from Do is the result of In-None-Match.
73267func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
73268	c.ifNoneMatch_ = entityTag
73269	return c
73270}
73271
73272// Context sets the context to be used in this call's Do method. Any
73273// pending HTTP request will be aborted if the provided context is
73274// canceled.
73275func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
73276	c.ctx_ = ctx
73277	return c
73278}
73279
73280// Header returns an http.Header that can be modified by the caller to
73281// add HTTP headers to the request.
73282func (c *HttpHealthChecksGetCall) Header() http.Header {
73283	if c.header_ == nil {
73284		c.header_ = make(http.Header)
73285	}
73286	return c.header_
73287}
73288
73289func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
73290	reqHeaders := make(http.Header)
73291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
73292	for k, v := range c.header_ {
73293		reqHeaders[k] = v
73294	}
73295	reqHeaders.Set("User-Agent", c.s.userAgent())
73296	if c.ifNoneMatch_ != "" {
73297		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73298	}
73299	var body io.Reader = nil
73300	c.urlParams_.Set("alt", alt)
73301	c.urlParams_.Set("prettyPrint", "false")
73302	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
73303	urls += "?" + c.urlParams_.Encode()
73304	req, err := http.NewRequest("GET", urls, body)
73305	if err != nil {
73306		return nil, err
73307	}
73308	req.Header = reqHeaders
73309	googleapi.Expand(req.URL, map[string]string{
73310		"project":         c.project,
73311		"httpHealthCheck": c.httpHealthCheck,
73312	})
73313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73314}
73315
73316// Do executes the "compute.httpHealthChecks.get" call.
73317// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
73318// status code is an error. Response headers are in either
73319// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
73320// at all) in error.(*googleapi.Error).Header. Use
73321// googleapi.IsNotModified to check whether the returned error was
73322// because http.StatusNotModified was returned.
73323func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
73324	gensupport.SetOptions(c.urlParams_, opts...)
73325	res, err := c.doRequest("json")
73326	if res != nil && res.StatusCode == http.StatusNotModified {
73327		if res.Body != nil {
73328			res.Body.Close()
73329		}
73330		return nil, &googleapi.Error{
73331			Code:   res.StatusCode,
73332			Header: res.Header,
73333		}
73334	}
73335	if err != nil {
73336		return nil, err
73337	}
73338	defer googleapi.CloseBody(res)
73339	if err := googleapi.CheckResponse(res); err != nil {
73340		return nil, err
73341	}
73342	ret := &HttpHealthCheck{
73343		ServerResponse: googleapi.ServerResponse{
73344			Header:         res.Header,
73345			HTTPStatusCode: res.StatusCode,
73346		},
73347	}
73348	target := &ret
73349	if err := gensupport.DecodeResponse(target, res); err != nil {
73350		return nil, err
73351	}
73352	return ret, nil
73353	// {
73354	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
73355	//   "httpMethod": "GET",
73356	//   "id": "compute.httpHealthChecks.get",
73357	//   "parameterOrder": [
73358	//     "project",
73359	//     "httpHealthCheck"
73360	//   ],
73361	//   "parameters": {
73362	//     "httpHealthCheck": {
73363	//       "description": "Name of the HttpHealthCheck resource to return.",
73364	//       "location": "path",
73365	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73366	//       "required": true,
73367	//       "type": "string"
73368	//     },
73369	//     "project": {
73370	//       "description": "Project ID for this request.",
73371	//       "location": "path",
73372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73373	//       "required": true,
73374	//       "type": "string"
73375	//     }
73376	//   },
73377	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
73378	//   "response": {
73379	//     "$ref": "HttpHealthCheck"
73380	//   },
73381	//   "scopes": [
73382	//     "https://www.googleapis.com/auth/cloud-platform",
73383	//     "https://www.googleapis.com/auth/compute",
73384	//     "https://www.googleapis.com/auth/compute.readonly"
73385	//   ]
73386	// }
73387
73388}
73389
73390// method id "compute.httpHealthChecks.insert":
73391
73392type HttpHealthChecksInsertCall struct {
73393	s               *Service
73394	project         string
73395	httphealthcheck *HttpHealthCheck
73396	urlParams_      gensupport.URLParams
73397	ctx_            context.Context
73398	header_         http.Header
73399}
73400
73401// Insert: Creates a HttpHealthCheck resource in the specified project
73402// using the data included in the request.
73403// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
73404func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
73405	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73406	c.project = project
73407	c.httphealthcheck = httphealthcheck
73408	return c
73409}
73410
73411// RequestId sets the optional parameter "requestId": An optional
73412// request ID to identify requests. Specify a unique request ID so that
73413// if you must retry your request, the server will know to ignore the
73414// request if it has already been completed.
73415//
73416// For example, consider a situation where you make an initial request
73417// and the request times out. If you make the request again with the
73418// same request ID, the server can check if original operation with the
73419// same request ID was received, and if so, will ignore the second
73420// request. This prevents clients from accidentally creating duplicate
73421// commitments.
73422//
73423// The request ID must be a valid UUID with the exception that zero UUID
73424// is not supported (00000000-0000-0000-0000-000000000000).
73425func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
73426	c.urlParams_.Set("requestId", requestId)
73427	return c
73428}
73429
73430// Fields allows partial responses to be retrieved. See
73431// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73432// for more information.
73433func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
73434	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73435	return c
73436}
73437
73438// Context sets the context to be used in this call's Do method. Any
73439// pending HTTP request will be aborted if the provided context is
73440// canceled.
73441func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
73442	c.ctx_ = ctx
73443	return c
73444}
73445
73446// Header returns an http.Header that can be modified by the caller to
73447// add HTTP headers to the request.
73448func (c *HttpHealthChecksInsertCall) Header() http.Header {
73449	if c.header_ == nil {
73450		c.header_ = make(http.Header)
73451	}
73452	return c.header_
73453}
73454
73455func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
73456	reqHeaders := make(http.Header)
73457	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
73458	for k, v := range c.header_ {
73459		reqHeaders[k] = v
73460	}
73461	reqHeaders.Set("User-Agent", c.s.userAgent())
73462	var body io.Reader = nil
73463	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
73464	if err != nil {
73465		return nil, err
73466	}
73467	reqHeaders.Set("Content-Type", "application/json")
73468	c.urlParams_.Set("alt", alt)
73469	c.urlParams_.Set("prettyPrint", "false")
73470	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
73471	urls += "?" + c.urlParams_.Encode()
73472	req, err := http.NewRequest("POST", urls, body)
73473	if err != nil {
73474		return nil, err
73475	}
73476	req.Header = reqHeaders
73477	googleapi.Expand(req.URL, map[string]string{
73478		"project": c.project,
73479	})
73480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73481}
73482
73483// Do executes the "compute.httpHealthChecks.insert" call.
73484// Exactly one of *Operation or error will be non-nil. Any non-2xx
73485// status code is an error. Response headers are in either
73486// *Operation.ServerResponse.Header or (if a response was returned at
73487// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73488// to check whether the returned error was because
73489// http.StatusNotModified was returned.
73490func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73491	gensupport.SetOptions(c.urlParams_, opts...)
73492	res, err := c.doRequest("json")
73493	if res != nil && res.StatusCode == http.StatusNotModified {
73494		if res.Body != nil {
73495			res.Body.Close()
73496		}
73497		return nil, &googleapi.Error{
73498			Code:   res.StatusCode,
73499			Header: res.Header,
73500		}
73501	}
73502	if err != nil {
73503		return nil, err
73504	}
73505	defer googleapi.CloseBody(res)
73506	if err := googleapi.CheckResponse(res); err != nil {
73507		return nil, err
73508	}
73509	ret := &Operation{
73510		ServerResponse: googleapi.ServerResponse{
73511			Header:         res.Header,
73512			HTTPStatusCode: res.StatusCode,
73513		},
73514	}
73515	target := &ret
73516	if err := gensupport.DecodeResponse(target, res); err != nil {
73517		return nil, err
73518	}
73519	return ret, nil
73520	// {
73521	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
73522	//   "httpMethod": "POST",
73523	//   "id": "compute.httpHealthChecks.insert",
73524	//   "parameterOrder": [
73525	//     "project"
73526	//   ],
73527	//   "parameters": {
73528	//     "project": {
73529	//       "description": "Project ID for this request.",
73530	//       "location": "path",
73531	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73532	//       "required": true,
73533	//       "type": "string"
73534	//     },
73535	//     "requestId": {
73536	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73537	//       "location": "query",
73538	//       "type": "string"
73539	//     }
73540	//   },
73541	//   "path": "{project}/global/httpHealthChecks",
73542	//   "request": {
73543	//     "$ref": "HttpHealthCheck"
73544	//   },
73545	//   "response": {
73546	//     "$ref": "Operation"
73547	//   },
73548	//   "scopes": [
73549	//     "https://www.googleapis.com/auth/cloud-platform",
73550	//     "https://www.googleapis.com/auth/compute"
73551	//   ]
73552	// }
73553
73554}
73555
73556// method id "compute.httpHealthChecks.list":
73557
73558type HttpHealthChecksListCall struct {
73559	s            *Service
73560	project      string
73561	urlParams_   gensupport.URLParams
73562	ifNoneMatch_ string
73563	ctx_         context.Context
73564	header_      http.Header
73565}
73566
73567// List: Retrieves the list of HttpHealthCheck resources available to
73568// the specified project.
73569// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
73570func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
73571	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73572	c.project = project
73573	return c
73574}
73575
73576// Filter sets the optional parameter "filter": A filter expression that
73577// filters resources listed in the response. The expression must specify
73578// the field name, a comparison operator, and the value that you want to
73579// use for filtering. The value must be a string, a number, or a
73580// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73581// `<`.
73582//
73583// For example, if you are filtering Compute Engine instances, you can
73584// exclude instances named `example-instance` by specifying `name !=
73585// example-instance`.
73586//
73587// You can also filter nested fields. For example, you could specify
73588// `scheduling.automaticRestart = false` to include instances only if
73589// they are not scheduled for automatic restarts. You can use filtering
73590// on nested fields to filter based on resource labels.
73591//
73592// To filter on multiple expressions, provide each separate expression
73593// within parentheses. For example: ``` (scheduling.automaticRestart =
73594// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73595// is an `AND` expression. However, you can include `AND` and `OR`
73596// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73597// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73598// (scheduling.automaticRestart = true) ```
73599func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
73600	c.urlParams_.Set("filter", filter)
73601	return c
73602}
73603
73604// MaxResults sets the optional parameter "maxResults": The maximum
73605// number of results per page that should be returned. If the number of
73606// available results is larger than `maxResults`, Compute Engine returns
73607// a `nextPageToken` that can be used to get the next page of results in
73608// subsequent list requests. Acceptable values are `0` to `500`,
73609// inclusive. (Default: `500`)
73610func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
73611	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73612	return c
73613}
73614
73615// OrderBy sets the optional parameter "orderBy": Sorts list results by
73616// a certain order. By default, results are returned in alphanumerical
73617// order based on the resource name.
73618//
73619// You can also sort results in descending order based on the creation
73620// timestamp using `orderBy="creationTimestamp desc". This sorts
73621// results based on the `creationTimestamp` field in reverse
73622// chronological order (newest result first). Use this to sort resources
73623// like operations so that the newest operation is returned
73624// first.
73625//
73626// Currently, only sorting by `name` or `creationTimestamp desc` is
73627// supported.
73628func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
73629	c.urlParams_.Set("orderBy", orderBy)
73630	return c
73631}
73632
73633// PageToken sets the optional parameter "pageToken": Specifies a page
73634// token to use. Set `pageToken` to the `nextPageToken` returned by a
73635// previous list request to get the next page of results.
73636func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
73637	c.urlParams_.Set("pageToken", pageToken)
73638	return c
73639}
73640
73641// ReturnPartialSuccess sets the optional parameter
73642// "returnPartialSuccess": Opt-in for partial success behavior which
73643// provides partial results in case of failure. The default value is
73644// false and the logic is the same as today.
73645func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall {
73646	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73647	return c
73648}
73649
73650// Fields allows partial responses to be retrieved. See
73651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73652// for more information.
73653func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
73654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73655	return c
73656}
73657
73658// IfNoneMatch sets the optional parameter which makes the operation
73659// fail if the object's ETag matches the given value. This is useful for
73660// getting updates only after the object has changed since the last
73661// request. Use googleapi.IsNotModified to check whether the response
73662// error from Do is the result of In-None-Match.
73663func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
73664	c.ifNoneMatch_ = entityTag
73665	return c
73666}
73667
73668// Context sets the context to be used in this call's Do method. Any
73669// pending HTTP request will be aborted if the provided context is
73670// canceled.
73671func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
73672	c.ctx_ = ctx
73673	return c
73674}
73675
73676// Header returns an http.Header that can be modified by the caller to
73677// add HTTP headers to the request.
73678func (c *HttpHealthChecksListCall) Header() http.Header {
73679	if c.header_ == nil {
73680		c.header_ = make(http.Header)
73681	}
73682	return c.header_
73683}
73684
73685func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
73686	reqHeaders := make(http.Header)
73687	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
73688	for k, v := range c.header_ {
73689		reqHeaders[k] = v
73690	}
73691	reqHeaders.Set("User-Agent", c.s.userAgent())
73692	if c.ifNoneMatch_ != "" {
73693		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73694	}
73695	var body io.Reader = nil
73696	c.urlParams_.Set("alt", alt)
73697	c.urlParams_.Set("prettyPrint", "false")
73698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
73699	urls += "?" + c.urlParams_.Encode()
73700	req, err := http.NewRequest("GET", urls, body)
73701	if err != nil {
73702		return nil, err
73703	}
73704	req.Header = reqHeaders
73705	googleapi.Expand(req.URL, map[string]string{
73706		"project": c.project,
73707	})
73708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73709}
73710
73711// Do executes the "compute.httpHealthChecks.list" call.
73712// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
73713// non-2xx status code is an error. Response headers are in either
73714// *HttpHealthCheckList.ServerResponse.Header or (if a response was
73715// returned at all) in error.(*googleapi.Error).Header. Use
73716// googleapi.IsNotModified to check whether the returned error was
73717// because http.StatusNotModified was returned.
73718func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
73719	gensupport.SetOptions(c.urlParams_, opts...)
73720	res, err := c.doRequest("json")
73721	if res != nil && res.StatusCode == http.StatusNotModified {
73722		if res.Body != nil {
73723			res.Body.Close()
73724		}
73725		return nil, &googleapi.Error{
73726			Code:   res.StatusCode,
73727			Header: res.Header,
73728		}
73729	}
73730	if err != nil {
73731		return nil, err
73732	}
73733	defer googleapi.CloseBody(res)
73734	if err := googleapi.CheckResponse(res); err != nil {
73735		return nil, err
73736	}
73737	ret := &HttpHealthCheckList{
73738		ServerResponse: googleapi.ServerResponse{
73739			Header:         res.Header,
73740			HTTPStatusCode: res.StatusCode,
73741		},
73742	}
73743	target := &ret
73744	if err := gensupport.DecodeResponse(target, res); err != nil {
73745		return nil, err
73746	}
73747	return ret, nil
73748	// {
73749	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
73750	//   "httpMethod": "GET",
73751	//   "id": "compute.httpHealthChecks.list",
73752	//   "parameterOrder": [
73753	//     "project"
73754	//   ],
73755	//   "parameters": {
73756	//     "filter": {
73757	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73758	//       "location": "query",
73759	//       "type": "string"
73760	//     },
73761	//     "maxResults": {
73762	//       "default": "500",
73763	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73764	//       "format": "uint32",
73765	//       "location": "query",
73766	//       "minimum": "0",
73767	//       "type": "integer"
73768	//     },
73769	//     "orderBy": {
73770	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73771	//       "location": "query",
73772	//       "type": "string"
73773	//     },
73774	//     "pageToken": {
73775	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73776	//       "location": "query",
73777	//       "type": "string"
73778	//     },
73779	//     "project": {
73780	//       "description": "Project ID for this request.",
73781	//       "location": "path",
73782	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73783	//       "required": true,
73784	//       "type": "string"
73785	//     },
73786	//     "returnPartialSuccess": {
73787	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
73788	//       "location": "query",
73789	//       "type": "boolean"
73790	//     }
73791	//   },
73792	//   "path": "{project}/global/httpHealthChecks",
73793	//   "response": {
73794	//     "$ref": "HttpHealthCheckList"
73795	//   },
73796	//   "scopes": [
73797	//     "https://www.googleapis.com/auth/cloud-platform",
73798	//     "https://www.googleapis.com/auth/compute",
73799	//     "https://www.googleapis.com/auth/compute.readonly"
73800	//   ]
73801	// }
73802
73803}
73804
73805// Pages invokes f for each page of results.
73806// A non-nil error returned from f will halt the iteration.
73807// The provided context supersedes any context provided to the Context method.
73808func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
73809	c.ctx_ = ctx
73810	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73811	for {
73812		x, err := c.Do()
73813		if err != nil {
73814			return err
73815		}
73816		if err := f(x); err != nil {
73817			return err
73818		}
73819		if x.NextPageToken == "" {
73820			return nil
73821		}
73822		c.PageToken(x.NextPageToken)
73823	}
73824}
73825
73826// method id "compute.httpHealthChecks.patch":
73827
73828type HttpHealthChecksPatchCall struct {
73829	s               *Service
73830	project         string
73831	httpHealthCheck string
73832	httphealthcheck *HttpHealthCheck
73833	urlParams_      gensupport.URLParams
73834	ctx_            context.Context
73835	header_         http.Header
73836}
73837
73838// Patch: Updates a HttpHealthCheck resource in the specified project
73839// using the data included in the request. This method supports PATCH
73840// semantics and uses the JSON merge patch format and processing rules.
73841// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
73842func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
73843	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73844	c.project = project
73845	c.httpHealthCheck = httpHealthCheck
73846	c.httphealthcheck = httphealthcheck
73847	return c
73848}
73849
73850// RequestId sets the optional parameter "requestId": An optional
73851// request ID to identify requests. Specify a unique request ID so that
73852// if you must retry your request, the server will know to ignore the
73853// request if it has already been completed.
73854//
73855// For example, consider a situation where you make an initial request
73856// and the request times out. If you make the request again with the
73857// same request ID, the server can check if original operation with the
73858// same request ID was received, and if so, will ignore the second
73859// request. This prevents clients from accidentally creating duplicate
73860// commitments.
73861//
73862// The request ID must be a valid UUID with the exception that zero UUID
73863// is not supported (00000000-0000-0000-0000-000000000000).
73864func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
73865	c.urlParams_.Set("requestId", requestId)
73866	return c
73867}
73868
73869// Fields allows partial responses to be retrieved. See
73870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73871// for more information.
73872func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
73873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73874	return c
73875}
73876
73877// Context sets the context to be used in this call's Do method. Any
73878// pending HTTP request will be aborted if the provided context is
73879// canceled.
73880func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
73881	c.ctx_ = ctx
73882	return c
73883}
73884
73885// Header returns an http.Header that can be modified by the caller to
73886// add HTTP headers to the request.
73887func (c *HttpHealthChecksPatchCall) Header() http.Header {
73888	if c.header_ == nil {
73889		c.header_ = make(http.Header)
73890	}
73891	return c.header_
73892}
73893
73894func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
73895	reqHeaders := make(http.Header)
73896	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
73897	for k, v := range c.header_ {
73898		reqHeaders[k] = v
73899	}
73900	reqHeaders.Set("User-Agent", c.s.userAgent())
73901	var body io.Reader = nil
73902	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
73903	if err != nil {
73904		return nil, err
73905	}
73906	reqHeaders.Set("Content-Type", "application/json")
73907	c.urlParams_.Set("alt", alt)
73908	c.urlParams_.Set("prettyPrint", "false")
73909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
73910	urls += "?" + c.urlParams_.Encode()
73911	req, err := http.NewRequest("PATCH", urls, body)
73912	if err != nil {
73913		return nil, err
73914	}
73915	req.Header = reqHeaders
73916	googleapi.Expand(req.URL, map[string]string{
73917		"project":         c.project,
73918		"httpHealthCheck": c.httpHealthCheck,
73919	})
73920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73921}
73922
73923// Do executes the "compute.httpHealthChecks.patch" call.
73924// Exactly one of *Operation or error will be non-nil. Any non-2xx
73925// status code is an error. Response headers are in either
73926// *Operation.ServerResponse.Header or (if a response was returned at
73927// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73928// to check whether the returned error was because
73929// http.StatusNotModified was returned.
73930func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73931	gensupport.SetOptions(c.urlParams_, opts...)
73932	res, err := c.doRequest("json")
73933	if res != nil && res.StatusCode == http.StatusNotModified {
73934		if res.Body != nil {
73935			res.Body.Close()
73936		}
73937		return nil, &googleapi.Error{
73938			Code:   res.StatusCode,
73939			Header: res.Header,
73940		}
73941	}
73942	if err != nil {
73943		return nil, err
73944	}
73945	defer googleapi.CloseBody(res)
73946	if err := googleapi.CheckResponse(res); err != nil {
73947		return nil, err
73948	}
73949	ret := &Operation{
73950		ServerResponse: googleapi.ServerResponse{
73951			Header:         res.Header,
73952			HTTPStatusCode: res.StatusCode,
73953		},
73954	}
73955	target := &ret
73956	if err := gensupport.DecodeResponse(target, res); err != nil {
73957		return nil, err
73958	}
73959	return ret, nil
73960	// {
73961	//   "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.",
73962	//   "httpMethod": "PATCH",
73963	//   "id": "compute.httpHealthChecks.patch",
73964	//   "parameterOrder": [
73965	//     "project",
73966	//     "httpHealthCheck"
73967	//   ],
73968	//   "parameters": {
73969	//     "httpHealthCheck": {
73970	//       "description": "Name of the HttpHealthCheck resource to patch.",
73971	//       "location": "path",
73972	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73973	//       "required": true,
73974	//       "type": "string"
73975	//     },
73976	//     "project": {
73977	//       "description": "Project ID for this request.",
73978	//       "location": "path",
73979	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73980	//       "required": true,
73981	//       "type": "string"
73982	//     },
73983	//     "requestId": {
73984	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73985	//       "location": "query",
73986	//       "type": "string"
73987	//     }
73988	//   },
73989	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
73990	//   "request": {
73991	//     "$ref": "HttpHealthCheck"
73992	//   },
73993	//   "response": {
73994	//     "$ref": "Operation"
73995	//   },
73996	//   "scopes": [
73997	//     "https://www.googleapis.com/auth/cloud-platform",
73998	//     "https://www.googleapis.com/auth/compute"
73999	//   ]
74000	// }
74001
74002}
74003
74004// method id "compute.httpHealthChecks.testIamPermissions":
74005
74006type HttpHealthChecksTestIamPermissionsCall struct {
74007	s                      *Service
74008	project                string
74009	resource               string
74010	testpermissionsrequest *TestPermissionsRequest
74011	urlParams_             gensupport.URLParams
74012	ctx_                   context.Context
74013	header_                http.Header
74014}
74015
74016// TestIamPermissions: Returns permissions that a caller has on the
74017// specified resource.
74018func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall {
74019	c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74020	c.project = project
74021	c.resource = resource
74022	c.testpermissionsrequest = testpermissionsrequest
74023	return c
74024}
74025
74026// Fields allows partial responses to be retrieved. See
74027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74028// for more information.
74029func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall {
74030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74031	return c
74032}
74033
74034// Context sets the context to be used in this call's Do method. Any
74035// pending HTTP request will be aborted if the provided context is
74036// canceled.
74037func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall {
74038	c.ctx_ = ctx
74039	return c
74040}
74041
74042// Header returns an http.Header that can be modified by the caller to
74043// add HTTP headers to the request.
74044func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header {
74045	if c.header_ == nil {
74046		c.header_ = make(http.Header)
74047	}
74048	return c.header_
74049}
74050
74051func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
74052	reqHeaders := make(http.Header)
74053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
74054	for k, v := range c.header_ {
74055		reqHeaders[k] = v
74056	}
74057	reqHeaders.Set("User-Agent", c.s.userAgent())
74058	var body io.Reader = nil
74059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
74060	if err != nil {
74061		return nil, err
74062	}
74063	reqHeaders.Set("Content-Type", "application/json")
74064	c.urlParams_.Set("alt", alt)
74065	c.urlParams_.Set("prettyPrint", "false")
74066	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{resource}/testIamPermissions")
74067	urls += "?" + c.urlParams_.Encode()
74068	req, err := http.NewRequest("POST", urls, body)
74069	if err != nil {
74070		return nil, err
74071	}
74072	req.Header = reqHeaders
74073	googleapi.Expand(req.URL, map[string]string{
74074		"project":  c.project,
74075		"resource": c.resource,
74076	})
74077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74078}
74079
74080// Do executes the "compute.httpHealthChecks.testIamPermissions" call.
74081// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
74082// non-2xx status code is an error. Response headers are in either
74083// *TestPermissionsResponse.ServerResponse.Header or (if a response was
74084// returned at all) in error.(*googleapi.Error).Header. Use
74085// googleapi.IsNotModified to check whether the returned error was
74086// because http.StatusNotModified was returned.
74087func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
74088	gensupport.SetOptions(c.urlParams_, opts...)
74089	res, err := c.doRequest("json")
74090	if res != nil && res.StatusCode == http.StatusNotModified {
74091		if res.Body != nil {
74092			res.Body.Close()
74093		}
74094		return nil, &googleapi.Error{
74095			Code:   res.StatusCode,
74096			Header: res.Header,
74097		}
74098	}
74099	if err != nil {
74100		return nil, err
74101	}
74102	defer googleapi.CloseBody(res)
74103	if err := googleapi.CheckResponse(res); err != nil {
74104		return nil, err
74105	}
74106	ret := &TestPermissionsResponse{
74107		ServerResponse: googleapi.ServerResponse{
74108			Header:         res.Header,
74109			HTTPStatusCode: res.StatusCode,
74110		},
74111	}
74112	target := &ret
74113	if err := gensupport.DecodeResponse(target, res); err != nil {
74114		return nil, err
74115	}
74116	return ret, nil
74117	// {
74118	//   "description": "Returns permissions that a caller has on the specified resource.",
74119	//   "httpMethod": "POST",
74120	//   "id": "compute.httpHealthChecks.testIamPermissions",
74121	//   "parameterOrder": [
74122	//     "project",
74123	//     "resource"
74124	//   ],
74125	//   "parameters": {
74126	//     "project": {
74127	//       "description": "Project ID for this request.",
74128	//       "location": "path",
74129	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74130	//       "required": true,
74131	//       "type": "string"
74132	//     },
74133	//     "resource": {
74134	//       "description": "Name or id of the resource for this request.",
74135	//       "location": "path",
74136	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74137	//       "required": true,
74138	//       "type": "string"
74139	//     }
74140	//   },
74141	//   "path": "{project}/global/httpHealthChecks/{resource}/testIamPermissions",
74142	//   "request": {
74143	//     "$ref": "TestPermissionsRequest"
74144	//   },
74145	//   "response": {
74146	//     "$ref": "TestPermissionsResponse"
74147	//   },
74148	//   "scopes": [
74149	//     "https://www.googleapis.com/auth/cloud-platform",
74150	//     "https://www.googleapis.com/auth/compute",
74151	//     "https://www.googleapis.com/auth/compute.readonly"
74152	//   ]
74153	// }
74154
74155}
74156
74157// method id "compute.httpHealthChecks.update":
74158
74159type HttpHealthChecksUpdateCall struct {
74160	s               *Service
74161	project         string
74162	httpHealthCheck string
74163	httphealthcheck *HttpHealthCheck
74164	urlParams_      gensupport.URLParams
74165	ctx_            context.Context
74166	header_         http.Header
74167}
74168
74169// Update: Updates a HttpHealthCheck resource in the specified project
74170// using the data included in the request.
74171// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
74172func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
74173	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74174	c.project = project
74175	c.httpHealthCheck = httpHealthCheck
74176	c.httphealthcheck = httphealthcheck
74177	return c
74178}
74179
74180// RequestId sets the optional parameter "requestId": An optional
74181// request ID to identify requests. Specify a unique request ID so that
74182// if you must retry your request, the server will know to ignore the
74183// request if it has already been completed.
74184//
74185// For example, consider a situation where you make an initial request
74186// and the request times out. If you make the request again with the
74187// same request ID, the server can check if original operation with the
74188// same request ID was received, and if so, will ignore the second
74189// request. This prevents clients from accidentally creating duplicate
74190// commitments.
74191//
74192// The request ID must be a valid UUID with the exception that zero UUID
74193// is not supported (00000000-0000-0000-0000-000000000000).
74194func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
74195	c.urlParams_.Set("requestId", requestId)
74196	return c
74197}
74198
74199// Fields allows partial responses to be retrieved. See
74200// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74201// for more information.
74202func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
74203	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74204	return c
74205}
74206
74207// Context sets the context to be used in this call's Do method. Any
74208// pending HTTP request will be aborted if the provided context is
74209// canceled.
74210func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
74211	c.ctx_ = ctx
74212	return c
74213}
74214
74215// Header returns an http.Header that can be modified by the caller to
74216// add HTTP headers to the request.
74217func (c *HttpHealthChecksUpdateCall) Header() http.Header {
74218	if c.header_ == nil {
74219		c.header_ = make(http.Header)
74220	}
74221	return c.header_
74222}
74223
74224func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
74225	reqHeaders := make(http.Header)
74226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
74227	for k, v := range c.header_ {
74228		reqHeaders[k] = v
74229	}
74230	reqHeaders.Set("User-Agent", c.s.userAgent())
74231	var body io.Reader = nil
74232	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
74233	if err != nil {
74234		return nil, err
74235	}
74236	reqHeaders.Set("Content-Type", "application/json")
74237	c.urlParams_.Set("alt", alt)
74238	c.urlParams_.Set("prettyPrint", "false")
74239	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
74240	urls += "?" + c.urlParams_.Encode()
74241	req, err := http.NewRequest("PUT", urls, body)
74242	if err != nil {
74243		return nil, err
74244	}
74245	req.Header = reqHeaders
74246	googleapi.Expand(req.URL, map[string]string{
74247		"project":         c.project,
74248		"httpHealthCheck": c.httpHealthCheck,
74249	})
74250	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74251}
74252
74253// Do executes the "compute.httpHealthChecks.update" call.
74254// Exactly one of *Operation or error will be non-nil. Any non-2xx
74255// status code is an error. Response headers are in either
74256// *Operation.ServerResponse.Header or (if a response was returned at
74257// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74258// to check whether the returned error was because
74259// http.StatusNotModified was returned.
74260func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74261	gensupport.SetOptions(c.urlParams_, opts...)
74262	res, err := c.doRequest("json")
74263	if res != nil && res.StatusCode == http.StatusNotModified {
74264		if res.Body != nil {
74265			res.Body.Close()
74266		}
74267		return nil, &googleapi.Error{
74268			Code:   res.StatusCode,
74269			Header: res.Header,
74270		}
74271	}
74272	if err != nil {
74273		return nil, err
74274	}
74275	defer googleapi.CloseBody(res)
74276	if err := googleapi.CheckResponse(res); err != nil {
74277		return nil, err
74278	}
74279	ret := &Operation{
74280		ServerResponse: googleapi.ServerResponse{
74281			Header:         res.Header,
74282			HTTPStatusCode: res.StatusCode,
74283		},
74284	}
74285	target := &ret
74286	if err := gensupport.DecodeResponse(target, res); err != nil {
74287		return nil, err
74288	}
74289	return ret, nil
74290	// {
74291	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
74292	//   "httpMethod": "PUT",
74293	//   "id": "compute.httpHealthChecks.update",
74294	//   "parameterOrder": [
74295	//     "project",
74296	//     "httpHealthCheck"
74297	//   ],
74298	//   "parameters": {
74299	//     "httpHealthCheck": {
74300	//       "description": "Name of the HttpHealthCheck resource to update.",
74301	//       "location": "path",
74302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74303	//       "required": true,
74304	//       "type": "string"
74305	//     },
74306	//     "project": {
74307	//       "description": "Project ID for this request.",
74308	//       "location": "path",
74309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74310	//       "required": true,
74311	//       "type": "string"
74312	//     },
74313	//     "requestId": {
74314	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74315	//       "location": "query",
74316	//       "type": "string"
74317	//     }
74318	//   },
74319	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
74320	//   "request": {
74321	//     "$ref": "HttpHealthCheck"
74322	//   },
74323	//   "response": {
74324	//     "$ref": "Operation"
74325	//   },
74326	//   "scopes": [
74327	//     "https://www.googleapis.com/auth/cloud-platform",
74328	//     "https://www.googleapis.com/auth/compute"
74329	//   ]
74330	// }
74331
74332}
74333
74334// method id "compute.httpsHealthChecks.delete":
74335
74336type HttpsHealthChecksDeleteCall struct {
74337	s                *Service
74338	project          string
74339	httpsHealthCheck string
74340	urlParams_       gensupport.URLParams
74341	ctx_             context.Context
74342	header_          http.Header
74343}
74344
74345// Delete: Deletes the specified HttpsHealthCheck resource.
74346func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
74347	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74348	c.project = project
74349	c.httpsHealthCheck = httpsHealthCheck
74350	return c
74351}
74352
74353// RequestId sets the optional parameter "requestId": An optional
74354// request ID to identify requests. Specify a unique request ID so that
74355// if you must retry your request, the server will know to ignore the
74356// request if it has already been completed.
74357//
74358// For example, consider a situation where you make an initial request
74359// and the request times out. If you make the request again with the
74360// same request ID, the server can check if original operation with the
74361// same request ID was received, and if so, will ignore the second
74362// request. This prevents clients from accidentally creating duplicate
74363// commitments.
74364//
74365// The request ID must be a valid UUID with the exception that zero UUID
74366// is not supported (00000000-0000-0000-0000-000000000000).
74367func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
74368	c.urlParams_.Set("requestId", requestId)
74369	return c
74370}
74371
74372// Fields allows partial responses to be retrieved. See
74373// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74374// for more information.
74375func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
74376	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74377	return c
74378}
74379
74380// Context sets the context to be used in this call's Do method. Any
74381// pending HTTP request will be aborted if the provided context is
74382// canceled.
74383func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
74384	c.ctx_ = ctx
74385	return c
74386}
74387
74388// Header returns an http.Header that can be modified by the caller to
74389// add HTTP headers to the request.
74390func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
74391	if c.header_ == nil {
74392		c.header_ = make(http.Header)
74393	}
74394	return c.header_
74395}
74396
74397func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
74398	reqHeaders := make(http.Header)
74399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
74400	for k, v := range c.header_ {
74401		reqHeaders[k] = v
74402	}
74403	reqHeaders.Set("User-Agent", c.s.userAgent())
74404	var body io.Reader = nil
74405	c.urlParams_.Set("alt", alt)
74406	c.urlParams_.Set("prettyPrint", "false")
74407	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
74408	urls += "?" + c.urlParams_.Encode()
74409	req, err := http.NewRequest("DELETE", urls, body)
74410	if err != nil {
74411		return nil, err
74412	}
74413	req.Header = reqHeaders
74414	googleapi.Expand(req.URL, map[string]string{
74415		"project":          c.project,
74416		"httpsHealthCheck": c.httpsHealthCheck,
74417	})
74418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74419}
74420
74421// Do executes the "compute.httpsHealthChecks.delete" call.
74422// Exactly one of *Operation or error will be non-nil. Any non-2xx
74423// status code is an error. Response headers are in either
74424// *Operation.ServerResponse.Header or (if a response was returned at
74425// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74426// to check whether the returned error was because
74427// http.StatusNotModified was returned.
74428func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74429	gensupport.SetOptions(c.urlParams_, opts...)
74430	res, err := c.doRequest("json")
74431	if res != nil && res.StatusCode == http.StatusNotModified {
74432		if res.Body != nil {
74433			res.Body.Close()
74434		}
74435		return nil, &googleapi.Error{
74436			Code:   res.StatusCode,
74437			Header: res.Header,
74438		}
74439	}
74440	if err != nil {
74441		return nil, err
74442	}
74443	defer googleapi.CloseBody(res)
74444	if err := googleapi.CheckResponse(res); err != nil {
74445		return nil, err
74446	}
74447	ret := &Operation{
74448		ServerResponse: googleapi.ServerResponse{
74449			Header:         res.Header,
74450			HTTPStatusCode: res.StatusCode,
74451		},
74452	}
74453	target := &ret
74454	if err := gensupport.DecodeResponse(target, res); err != nil {
74455		return nil, err
74456	}
74457	return ret, nil
74458	// {
74459	//   "description": "Deletes the specified HttpsHealthCheck resource.",
74460	//   "httpMethod": "DELETE",
74461	//   "id": "compute.httpsHealthChecks.delete",
74462	//   "parameterOrder": [
74463	//     "project",
74464	//     "httpsHealthCheck"
74465	//   ],
74466	//   "parameters": {
74467	//     "httpsHealthCheck": {
74468	//       "description": "Name of the HttpsHealthCheck resource to delete.",
74469	//       "location": "path",
74470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74471	//       "required": true,
74472	//       "type": "string"
74473	//     },
74474	//     "project": {
74475	//       "description": "Project ID for this request.",
74476	//       "location": "path",
74477	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74478	//       "required": true,
74479	//       "type": "string"
74480	//     },
74481	//     "requestId": {
74482	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74483	//       "location": "query",
74484	//       "type": "string"
74485	//     }
74486	//   },
74487	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
74488	//   "response": {
74489	//     "$ref": "Operation"
74490	//   },
74491	//   "scopes": [
74492	//     "https://www.googleapis.com/auth/cloud-platform",
74493	//     "https://www.googleapis.com/auth/compute"
74494	//   ]
74495	// }
74496
74497}
74498
74499// method id "compute.httpsHealthChecks.get":
74500
74501type HttpsHealthChecksGetCall struct {
74502	s                *Service
74503	project          string
74504	httpsHealthCheck string
74505	urlParams_       gensupport.URLParams
74506	ifNoneMatch_     string
74507	ctx_             context.Context
74508	header_          http.Header
74509}
74510
74511// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
74512// available HTTPS health checks by making a list() request.
74513func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
74514	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74515	c.project = project
74516	c.httpsHealthCheck = httpsHealthCheck
74517	return c
74518}
74519
74520// Fields allows partial responses to be retrieved. See
74521// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74522// for more information.
74523func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
74524	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74525	return c
74526}
74527
74528// IfNoneMatch sets the optional parameter which makes the operation
74529// fail if the object's ETag matches the given value. This is useful for
74530// getting updates only after the object has changed since the last
74531// request. Use googleapi.IsNotModified to check whether the response
74532// error from Do is the result of In-None-Match.
74533func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
74534	c.ifNoneMatch_ = entityTag
74535	return c
74536}
74537
74538// Context sets the context to be used in this call's Do method. Any
74539// pending HTTP request will be aborted if the provided context is
74540// canceled.
74541func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
74542	c.ctx_ = ctx
74543	return c
74544}
74545
74546// Header returns an http.Header that can be modified by the caller to
74547// add HTTP headers to the request.
74548func (c *HttpsHealthChecksGetCall) Header() http.Header {
74549	if c.header_ == nil {
74550		c.header_ = make(http.Header)
74551	}
74552	return c.header_
74553}
74554
74555func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
74556	reqHeaders := make(http.Header)
74557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
74558	for k, v := range c.header_ {
74559		reqHeaders[k] = v
74560	}
74561	reqHeaders.Set("User-Agent", c.s.userAgent())
74562	if c.ifNoneMatch_ != "" {
74563		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74564	}
74565	var body io.Reader = nil
74566	c.urlParams_.Set("alt", alt)
74567	c.urlParams_.Set("prettyPrint", "false")
74568	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
74569	urls += "?" + c.urlParams_.Encode()
74570	req, err := http.NewRequest("GET", urls, body)
74571	if err != nil {
74572		return nil, err
74573	}
74574	req.Header = reqHeaders
74575	googleapi.Expand(req.URL, map[string]string{
74576		"project":          c.project,
74577		"httpsHealthCheck": c.httpsHealthCheck,
74578	})
74579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74580}
74581
74582// Do executes the "compute.httpsHealthChecks.get" call.
74583// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
74584// non-2xx status code is an error. Response headers are in either
74585// *HttpsHealthCheck.ServerResponse.Header or (if a response was
74586// returned at all) in error.(*googleapi.Error).Header. Use
74587// googleapi.IsNotModified to check whether the returned error was
74588// because http.StatusNotModified was returned.
74589func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
74590	gensupport.SetOptions(c.urlParams_, opts...)
74591	res, err := c.doRequest("json")
74592	if res != nil && res.StatusCode == http.StatusNotModified {
74593		if res.Body != nil {
74594			res.Body.Close()
74595		}
74596		return nil, &googleapi.Error{
74597			Code:   res.StatusCode,
74598			Header: res.Header,
74599		}
74600	}
74601	if err != nil {
74602		return nil, err
74603	}
74604	defer googleapi.CloseBody(res)
74605	if err := googleapi.CheckResponse(res); err != nil {
74606		return nil, err
74607	}
74608	ret := &HttpsHealthCheck{
74609		ServerResponse: googleapi.ServerResponse{
74610			Header:         res.Header,
74611			HTTPStatusCode: res.StatusCode,
74612		},
74613	}
74614	target := &ret
74615	if err := gensupport.DecodeResponse(target, res); err != nil {
74616		return nil, err
74617	}
74618	return ret, nil
74619	// {
74620	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
74621	//   "httpMethod": "GET",
74622	//   "id": "compute.httpsHealthChecks.get",
74623	//   "parameterOrder": [
74624	//     "project",
74625	//     "httpsHealthCheck"
74626	//   ],
74627	//   "parameters": {
74628	//     "httpsHealthCheck": {
74629	//       "description": "Name of the HttpsHealthCheck resource to return.",
74630	//       "location": "path",
74631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74632	//       "required": true,
74633	//       "type": "string"
74634	//     },
74635	//     "project": {
74636	//       "description": "Project ID for this request.",
74637	//       "location": "path",
74638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74639	//       "required": true,
74640	//       "type": "string"
74641	//     }
74642	//   },
74643	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
74644	//   "response": {
74645	//     "$ref": "HttpsHealthCheck"
74646	//   },
74647	//   "scopes": [
74648	//     "https://www.googleapis.com/auth/cloud-platform",
74649	//     "https://www.googleapis.com/auth/compute",
74650	//     "https://www.googleapis.com/auth/compute.readonly"
74651	//   ]
74652	// }
74653
74654}
74655
74656// method id "compute.httpsHealthChecks.insert":
74657
74658type HttpsHealthChecksInsertCall struct {
74659	s                *Service
74660	project          string
74661	httpshealthcheck *HttpsHealthCheck
74662	urlParams_       gensupport.URLParams
74663	ctx_             context.Context
74664	header_          http.Header
74665}
74666
74667// Insert: Creates a HttpsHealthCheck resource in the specified project
74668// using the data included in the request.
74669func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
74670	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74671	c.project = project
74672	c.httpshealthcheck = httpshealthcheck
74673	return c
74674}
74675
74676// RequestId sets the optional parameter "requestId": An optional
74677// request ID to identify requests. Specify a unique request ID so that
74678// if you must retry your request, the server will know to ignore the
74679// request if it has already been completed.
74680//
74681// For example, consider a situation where you make an initial request
74682// and the request times out. If you make the request again with the
74683// same request ID, the server can check if original operation with the
74684// same request ID was received, and if so, will ignore the second
74685// request. This prevents clients from accidentally creating duplicate
74686// commitments.
74687//
74688// The request ID must be a valid UUID with the exception that zero UUID
74689// is not supported (00000000-0000-0000-0000-000000000000).
74690func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
74691	c.urlParams_.Set("requestId", requestId)
74692	return c
74693}
74694
74695// Fields allows partial responses to be retrieved. See
74696// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74697// for more information.
74698func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
74699	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74700	return c
74701}
74702
74703// Context sets the context to be used in this call's Do method. Any
74704// pending HTTP request will be aborted if the provided context is
74705// canceled.
74706func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
74707	c.ctx_ = ctx
74708	return c
74709}
74710
74711// Header returns an http.Header that can be modified by the caller to
74712// add HTTP headers to the request.
74713func (c *HttpsHealthChecksInsertCall) Header() http.Header {
74714	if c.header_ == nil {
74715		c.header_ = make(http.Header)
74716	}
74717	return c.header_
74718}
74719
74720func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
74721	reqHeaders := make(http.Header)
74722	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
74723	for k, v := range c.header_ {
74724		reqHeaders[k] = v
74725	}
74726	reqHeaders.Set("User-Agent", c.s.userAgent())
74727	var body io.Reader = nil
74728	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
74729	if err != nil {
74730		return nil, err
74731	}
74732	reqHeaders.Set("Content-Type", "application/json")
74733	c.urlParams_.Set("alt", alt)
74734	c.urlParams_.Set("prettyPrint", "false")
74735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
74736	urls += "?" + c.urlParams_.Encode()
74737	req, err := http.NewRequest("POST", urls, body)
74738	if err != nil {
74739		return nil, err
74740	}
74741	req.Header = reqHeaders
74742	googleapi.Expand(req.URL, map[string]string{
74743		"project": c.project,
74744	})
74745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74746}
74747
74748// Do executes the "compute.httpsHealthChecks.insert" call.
74749// Exactly one of *Operation or error will be non-nil. Any non-2xx
74750// status code is an error. Response headers are in either
74751// *Operation.ServerResponse.Header or (if a response was returned at
74752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74753// to check whether the returned error was because
74754// http.StatusNotModified was returned.
74755func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74756	gensupport.SetOptions(c.urlParams_, opts...)
74757	res, err := c.doRequest("json")
74758	if res != nil && res.StatusCode == http.StatusNotModified {
74759		if res.Body != nil {
74760			res.Body.Close()
74761		}
74762		return nil, &googleapi.Error{
74763			Code:   res.StatusCode,
74764			Header: res.Header,
74765		}
74766	}
74767	if err != nil {
74768		return nil, err
74769	}
74770	defer googleapi.CloseBody(res)
74771	if err := googleapi.CheckResponse(res); err != nil {
74772		return nil, err
74773	}
74774	ret := &Operation{
74775		ServerResponse: googleapi.ServerResponse{
74776			Header:         res.Header,
74777			HTTPStatusCode: res.StatusCode,
74778		},
74779	}
74780	target := &ret
74781	if err := gensupport.DecodeResponse(target, res); err != nil {
74782		return nil, err
74783	}
74784	return ret, nil
74785	// {
74786	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
74787	//   "httpMethod": "POST",
74788	//   "id": "compute.httpsHealthChecks.insert",
74789	//   "parameterOrder": [
74790	//     "project"
74791	//   ],
74792	//   "parameters": {
74793	//     "project": {
74794	//       "description": "Project ID for this request.",
74795	//       "location": "path",
74796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74797	//       "required": true,
74798	//       "type": "string"
74799	//     },
74800	//     "requestId": {
74801	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74802	//       "location": "query",
74803	//       "type": "string"
74804	//     }
74805	//   },
74806	//   "path": "{project}/global/httpsHealthChecks",
74807	//   "request": {
74808	//     "$ref": "HttpsHealthCheck"
74809	//   },
74810	//   "response": {
74811	//     "$ref": "Operation"
74812	//   },
74813	//   "scopes": [
74814	//     "https://www.googleapis.com/auth/cloud-platform",
74815	//     "https://www.googleapis.com/auth/compute"
74816	//   ]
74817	// }
74818
74819}
74820
74821// method id "compute.httpsHealthChecks.list":
74822
74823type HttpsHealthChecksListCall struct {
74824	s            *Service
74825	project      string
74826	urlParams_   gensupport.URLParams
74827	ifNoneMatch_ string
74828	ctx_         context.Context
74829	header_      http.Header
74830}
74831
74832// List: Retrieves the list of HttpsHealthCheck resources available to
74833// the specified project.
74834func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
74835	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74836	c.project = project
74837	return c
74838}
74839
74840// Filter sets the optional parameter "filter": A filter expression that
74841// filters resources listed in the response. The expression must specify
74842// the field name, a comparison operator, and the value that you want to
74843// use for filtering. The value must be a string, a number, or a
74844// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74845// `<`.
74846//
74847// For example, if you are filtering Compute Engine instances, you can
74848// exclude instances named `example-instance` by specifying `name !=
74849// example-instance`.
74850//
74851// You can also filter nested fields. For example, you could specify
74852// `scheduling.automaticRestart = false` to include instances only if
74853// they are not scheduled for automatic restarts. You can use filtering
74854// on nested fields to filter based on resource labels.
74855//
74856// To filter on multiple expressions, provide each separate expression
74857// within parentheses. For example: ``` (scheduling.automaticRestart =
74858// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
74859// is an `AND` expression. However, you can include `AND` and `OR`
74860// expressions explicitly. For example: ``` (cpuPlatform = "Intel
74861// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
74862// (scheduling.automaticRestart = true) ```
74863func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
74864	c.urlParams_.Set("filter", filter)
74865	return c
74866}
74867
74868// MaxResults sets the optional parameter "maxResults": The maximum
74869// number of results per page that should be returned. If the number of
74870// available results is larger than `maxResults`, Compute Engine returns
74871// a `nextPageToken` that can be used to get the next page of results in
74872// subsequent list requests. Acceptable values are `0` to `500`,
74873// inclusive. (Default: `500`)
74874func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
74875	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74876	return c
74877}
74878
74879// OrderBy sets the optional parameter "orderBy": Sorts list results by
74880// a certain order. By default, results are returned in alphanumerical
74881// order based on the resource name.
74882//
74883// You can also sort results in descending order based on the creation
74884// timestamp using `orderBy="creationTimestamp desc". This sorts
74885// results based on the `creationTimestamp` field in reverse
74886// chronological order (newest result first). Use this to sort resources
74887// like operations so that the newest operation is returned
74888// first.
74889//
74890// Currently, only sorting by `name` or `creationTimestamp desc` is
74891// supported.
74892func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
74893	c.urlParams_.Set("orderBy", orderBy)
74894	return c
74895}
74896
74897// PageToken sets the optional parameter "pageToken": Specifies a page
74898// token to use. Set `pageToken` to the `nextPageToken` returned by a
74899// previous list request to get the next page of results.
74900func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
74901	c.urlParams_.Set("pageToken", pageToken)
74902	return c
74903}
74904
74905// ReturnPartialSuccess sets the optional parameter
74906// "returnPartialSuccess": Opt-in for partial success behavior which
74907// provides partial results in case of failure. The default value is
74908// false and the logic is the same as today.
74909func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall {
74910	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74911	return c
74912}
74913
74914// Fields allows partial responses to be retrieved. See
74915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74916// for more information.
74917func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
74918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74919	return c
74920}
74921
74922// IfNoneMatch sets the optional parameter which makes the operation
74923// fail if the object's ETag matches the given value. This is useful for
74924// getting updates only after the object has changed since the last
74925// request. Use googleapi.IsNotModified to check whether the response
74926// error from Do is the result of In-None-Match.
74927func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
74928	c.ifNoneMatch_ = entityTag
74929	return c
74930}
74931
74932// Context sets the context to be used in this call's Do method. Any
74933// pending HTTP request will be aborted if the provided context is
74934// canceled.
74935func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
74936	c.ctx_ = ctx
74937	return c
74938}
74939
74940// Header returns an http.Header that can be modified by the caller to
74941// add HTTP headers to the request.
74942func (c *HttpsHealthChecksListCall) Header() http.Header {
74943	if c.header_ == nil {
74944		c.header_ = make(http.Header)
74945	}
74946	return c.header_
74947}
74948
74949func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
74950	reqHeaders := make(http.Header)
74951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
74952	for k, v := range c.header_ {
74953		reqHeaders[k] = v
74954	}
74955	reqHeaders.Set("User-Agent", c.s.userAgent())
74956	if c.ifNoneMatch_ != "" {
74957		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74958	}
74959	var body io.Reader = nil
74960	c.urlParams_.Set("alt", alt)
74961	c.urlParams_.Set("prettyPrint", "false")
74962	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
74963	urls += "?" + c.urlParams_.Encode()
74964	req, err := http.NewRequest("GET", urls, body)
74965	if err != nil {
74966		return nil, err
74967	}
74968	req.Header = reqHeaders
74969	googleapi.Expand(req.URL, map[string]string{
74970		"project": c.project,
74971	})
74972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74973}
74974
74975// Do executes the "compute.httpsHealthChecks.list" call.
74976// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
74977// non-2xx status code is an error. Response headers are in either
74978// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
74979// returned at all) in error.(*googleapi.Error).Header. Use
74980// googleapi.IsNotModified to check whether the returned error was
74981// because http.StatusNotModified was returned.
74982func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
74983	gensupport.SetOptions(c.urlParams_, opts...)
74984	res, err := c.doRequest("json")
74985	if res != nil && res.StatusCode == http.StatusNotModified {
74986		if res.Body != nil {
74987			res.Body.Close()
74988		}
74989		return nil, &googleapi.Error{
74990			Code:   res.StatusCode,
74991			Header: res.Header,
74992		}
74993	}
74994	if err != nil {
74995		return nil, err
74996	}
74997	defer googleapi.CloseBody(res)
74998	if err := googleapi.CheckResponse(res); err != nil {
74999		return nil, err
75000	}
75001	ret := &HttpsHealthCheckList{
75002		ServerResponse: googleapi.ServerResponse{
75003			Header:         res.Header,
75004			HTTPStatusCode: res.StatusCode,
75005		},
75006	}
75007	target := &ret
75008	if err := gensupport.DecodeResponse(target, res); err != nil {
75009		return nil, err
75010	}
75011	return ret, nil
75012	// {
75013	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
75014	//   "httpMethod": "GET",
75015	//   "id": "compute.httpsHealthChecks.list",
75016	//   "parameterOrder": [
75017	//     "project"
75018	//   ],
75019	//   "parameters": {
75020	//     "filter": {
75021	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
75022	//       "location": "query",
75023	//       "type": "string"
75024	//     },
75025	//     "maxResults": {
75026	//       "default": "500",
75027	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
75028	//       "format": "uint32",
75029	//       "location": "query",
75030	//       "minimum": "0",
75031	//       "type": "integer"
75032	//     },
75033	//     "orderBy": {
75034	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
75035	//       "location": "query",
75036	//       "type": "string"
75037	//     },
75038	//     "pageToken": {
75039	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
75040	//       "location": "query",
75041	//       "type": "string"
75042	//     },
75043	//     "project": {
75044	//       "description": "Project ID for this request.",
75045	//       "location": "path",
75046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75047	//       "required": true,
75048	//       "type": "string"
75049	//     },
75050	//     "returnPartialSuccess": {
75051	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
75052	//       "location": "query",
75053	//       "type": "boolean"
75054	//     }
75055	//   },
75056	//   "path": "{project}/global/httpsHealthChecks",
75057	//   "response": {
75058	//     "$ref": "HttpsHealthCheckList"
75059	//   },
75060	//   "scopes": [
75061	//     "https://www.googleapis.com/auth/cloud-platform",
75062	//     "https://www.googleapis.com/auth/compute",
75063	//     "https://www.googleapis.com/auth/compute.readonly"
75064	//   ]
75065	// }
75066
75067}
75068
75069// Pages invokes f for each page of results.
75070// A non-nil error returned from f will halt the iteration.
75071// The provided context supersedes any context provided to the Context method.
75072func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
75073	c.ctx_ = ctx
75074	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75075	for {
75076		x, err := c.Do()
75077		if err != nil {
75078			return err
75079		}
75080		if err := f(x); err != nil {
75081			return err
75082		}
75083		if x.NextPageToken == "" {
75084			return nil
75085		}
75086		c.PageToken(x.NextPageToken)
75087	}
75088}
75089
75090// method id "compute.httpsHealthChecks.patch":
75091
75092type HttpsHealthChecksPatchCall struct {
75093	s                *Service
75094	project          string
75095	httpsHealthCheck string
75096	httpshealthcheck *HttpsHealthCheck
75097	urlParams_       gensupport.URLParams
75098	ctx_             context.Context
75099	header_          http.Header
75100}
75101
75102// Patch: Updates a HttpsHealthCheck resource in the specified project
75103// using the data included in the request. This method supports PATCH
75104// semantics and uses the JSON merge patch format and processing rules.
75105func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
75106	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75107	c.project = project
75108	c.httpsHealthCheck = httpsHealthCheck
75109	c.httpshealthcheck = httpshealthcheck
75110	return c
75111}
75112
75113// RequestId sets the optional parameter "requestId": An optional
75114// request ID to identify requests. Specify a unique request ID so that
75115// if you must retry your request, the server will know to ignore the
75116// request if it has already been completed.
75117//
75118// For example, consider a situation where you make an initial request
75119// and the request times out. If you make the request again with the
75120// same request ID, the server can check if original operation with the
75121// same request ID was received, and if so, will ignore the second
75122// request. This prevents clients from accidentally creating duplicate
75123// commitments.
75124//
75125// The request ID must be a valid UUID with the exception that zero UUID
75126// is not supported (00000000-0000-0000-0000-000000000000).
75127func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
75128	c.urlParams_.Set("requestId", requestId)
75129	return c
75130}
75131
75132// Fields allows partial responses to be retrieved. See
75133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75134// for more information.
75135func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
75136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75137	return c
75138}
75139
75140// Context sets the context to be used in this call's Do method. Any
75141// pending HTTP request will be aborted if the provided context is
75142// canceled.
75143func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
75144	c.ctx_ = ctx
75145	return c
75146}
75147
75148// Header returns an http.Header that can be modified by the caller to
75149// add HTTP headers to the request.
75150func (c *HttpsHealthChecksPatchCall) Header() http.Header {
75151	if c.header_ == nil {
75152		c.header_ = make(http.Header)
75153	}
75154	return c.header_
75155}
75156
75157func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
75158	reqHeaders := make(http.Header)
75159	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
75160	for k, v := range c.header_ {
75161		reqHeaders[k] = v
75162	}
75163	reqHeaders.Set("User-Agent", c.s.userAgent())
75164	var body io.Reader = nil
75165	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
75166	if err != nil {
75167		return nil, err
75168	}
75169	reqHeaders.Set("Content-Type", "application/json")
75170	c.urlParams_.Set("alt", alt)
75171	c.urlParams_.Set("prettyPrint", "false")
75172	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
75173	urls += "?" + c.urlParams_.Encode()
75174	req, err := http.NewRequest("PATCH", urls, body)
75175	if err != nil {
75176		return nil, err
75177	}
75178	req.Header = reqHeaders
75179	googleapi.Expand(req.URL, map[string]string{
75180		"project":          c.project,
75181		"httpsHealthCheck": c.httpsHealthCheck,
75182	})
75183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75184}
75185
75186// Do executes the "compute.httpsHealthChecks.patch" call.
75187// Exactly one of *Operation or error will be non-nil. Any non-2xx
75188// status code is an error. Response headers are in either
75189// *Operation.ServerResponse.Header or (if a response was returned at
75190// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75191// to check whether the returned error was because
75192// http.StatusNotModified was returned.
75193func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75194	gensupport.SetOptions(c.urlParams_, opts...)
75195	res, err := c.doRequest("json")
75196	if res != nil && res.StatusCode == http.StatusNotModified {
75197		if res.Body != nil {
75198			res.Body.Close()
75199		}
75200		return nil, &googleapi.Error{
75201			Code:   res.StatusCode,
75202			Header: res.Header,
75203		}
75204	}
75205	if err != nil {
75206		return nil, err
75207	}
75208	defer googleapi.CloseBody(res)
75209	if err := googleapi.CheckResponse(res); err != nil {
75210		return nil, err
75211	}
75212	ret := &Operation{
75213		ServerResponse: googleapi.ServerResponse{
75214			Header:         res.Header,
75215			HTTPStatusCode: res.StatusCode,
75216		},
75217	}
75218	target := &ret
75219	if err := gensupport.DecodeResponse(target, res); err != nil {
75220		return nil, err
75221	}
75222	return ret, nil
75223	// {
75224	//   "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.",
75225	//   "httpMethod": "PATCH",
75226	//   "id": "compute.httpsHealthChecks.patch",
75227	//   "parameterOrder": [
75228	//     "project",
75229	//     "httpsHealthCheck"
75230	//   ],
75231	//   "parameters": {
75232	//     "httpsHealthCheck": {
75233	//       "description": "Name of the HttpsHealthCheck resource to patch.",
75234	//       "location": "path",
75235	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75236	//       "required": true,
75237	//       "type": "string"
75238	//     },
75239	//     "project": {
75240	//       "description": "Project ID for this request.",
75241	//       "location": "path",
75242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75243	//       "required": true,
75244	//       "type": "string"
75245	//     },
75246	//     "requestId": {
75247	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75248	//       "location": "query",
75249	//       "type": "string"
75250	//     }
75251	//   },
75252	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
75253	//   "request": {
75254	//     "$ref": "HttpsHealthCheck"
75255	//   },
75256	//   "response": {
75257	//     "$ref": "Operation"
75258	//   },
75259	//   "scopes": [
75260	//     "https://www.googleapis.com/auth/cloud-platform",
75261	//     "https://www.googleapis.com/auth/compute"
75262	//   ]
75263	// }
75264
75265}
75266
75267// method id "compute.httpsHealthChecks.testIamPermissions":
75268
75269type HttpsHealthChecksTestIamPermissionsCall struct {
75270	s                      *Service
75271	project                string
75272	resource               string
75273	testpermissionsrequest *TestPermissionsRequest
75274	urlParams_             gensupport.URLParams
75275	ctx_                   context.Context
75276	header_                http.Header
75277}
75278
75279// TestIamPermissions: Returns permissions that a caller has on the
75280// specified resource.
75281func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall {
75282	c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75283	c.project = project
75284	c.resource = resource
75285	c.testpermissionsrequest = testpermissionsrequest
75286	return c
75287}
75288
75289// Fields allows partial responses to be retrieved. See
75290// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75291// for more information.
75292func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall {
75293	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75294	return c
75295}
75296
75297// Context sets the context to be used in this call's Do method. Any
75298// pending HTTP request will be aborted if the provided context is
75299// canceled.
75300func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall {
75301	c.ctx_ = ctx
75302	return c
75303}
75304
75305// Header returns an http.Header that can be modified by the caller to
75306// add HTTP headers to the request.
75307func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header {
75308	if c.header_ == nil {
75309		c.header_ = make(http.Header)
75310	}
75311	return c.header_
75312}
75313
75314func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
75315	reqHeaders := make(http.Header)
75316	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
75317	for k, v := range c.header_ {
75318		reqHeaders[k] = v
75319	}
75320	reqHeaders.Set("User-Agent", c.s.userAgent())
75321	var body io.Reader = nil
75322	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
75323	if err != nil {
75324		return nil, err
75325	}
75326	reqHeaders.Set("Content-Type", "application/json")
75327	c.urlParams_.Set("alt", alt)
75328	c.urlParams_.Set("prettyPrint", "false")
75329	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{resource}/testIamPermissions")
75330	urls += "?" + c.urlParams_.Encode()
75331	req, err := http.NewRequest("POST", urls, body)
75332	if err != nil {
75333		return nil, err
75334	}
75335	req.Header = reqHeaders
75336	googleapi.Expand(req.URL, map[string]string{
75337		"project":  c.project,
75338		"resource": c.resource,
75339	})
75340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75341}
75342
75343// Do executes the "compute.httpsHealthChecks.testIamPermissions" call.
75344// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
75345// non-2xx status code is an error. Response headers are in either
75346// *TestPermissionsResponse.ServerResponse.Header or (if a response was
75347// returned at all) in error.(*googleapi.Error).Header. Use
75348// googleapi.IsNotModified to check whether the returned error was
75349// because http.StatusNotModified was returned.
75350func (c *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
75351	gensupport.SetOptions(c.urlParams_, opts...)
75352	res, err := c.doRequest("json")
75353	if res != nil && res.StatusCode == http.StatusNotModified {
75354		if res.Body != nil {
75355			res.Body.Close()
75356		}
75357		return nil, &googleapi.Error{
75358			Code:   res.StatusCode,
75359			Header: res.Header,
75360		}
75361	}
75362	if err != nil {
75363		return nil, err
75364	}
75365	defer googleapi.CloseBody(res)
75366	if err := googleapi.CheckResponse(res); err != nil {
75367		return nil, err
75368	}
75369	ret := &TestPermissionsResponse{
75370		ServerResponse: googleapi.ServerResponse{
75371			Header:         res.Header,
75372			HTTPStatusCode: res.StatusCode,
75373		},
75374	}
75375	target := &ret
75376	if err := gensupport.DecodeResponse(target, res); err != nil {
75377		return nil, err
75378	}
75379	return ret, nil
75380	// {
75381	//   "description": "Returns permissions that a caller has on the specified resource.",
75382	//   "httpMethod": "POST",
75383	//   "id": "compute.httpsHealthChecks.testIamPermissions",
75384	//   "parameterOrder": [
75385	//     "project",
75386	//     "resource"
75387	//   ],
75388	//   "parameters": {
75389	//     "project": {
75390	//       "description": "Project ID for this request.",
75391	//       "location": "path",
75392	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75393	//       "required": true,
75394	//       "type": "string"
75395	//     },
75396	//     "resource": {
75397	//       "description": "Name or id of the resource for this request.",
75398	//       "location": "path",
75399	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75400	//       "required": true,
75401	//       "type": "string"
75402	//     }
75403	//   },
75404	//   "path": "{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
75405	//   "request": {
75406	//     "$ref": "TestPermissionsRequest"
75407	//   },
75408	//   "response": {
75409	//     "$ref": "TestPermissionsResponse"
75410	//   },
75411	//   "scopes": [
75412	//     "https://www.googleapis.com/auth/cloud-platform",
75413	//     "https://www.googleapis.com/auth/compute",
75414	//     "https://www.googleapis.com/auth/compute.readonly"
75415	//   ]
75416	// }
75417
75418}
75419
75420// method id "compute.httpsHealthChecks.update":
75421
75422type HttpsHealthChecksUpdateCall struct {
75423	s                *Service
75424	project          string
75425	httpsHealthCheck string
75426	httpshealthcheck *HttpsHealthCheck
75427	urlParams_       gensupport.URLParams
75428	ctx_             context.Context
75429	header_          http.Header
75430}
75431
75432// Update: Updates a HttpsHealthCheck resource in the specified project
75433// using the data included in the request.
75434func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
75435	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75436	c.project = project
75437	c.httpsHealthCheck = httpsHealthCheck
75438	c.httpshealthcheck = httpshealthcheck
75439	return c
75440}
75441
75442// RequestId sets the optional parameter "requestId": An optional
75443// request ID to identify requests. Specify a unique request ID so that
75444// if you must retry your request, the server will know to ignore the
75445// request if it has already been completed.
75446//
75447// For example, consider a situation where you make an initial request
75448// and the request times out. If you make the request again with the
75449// same request ID, the server can check if original operation with the
75450// same request ID was received, and if so, will ignore the second
75451// request. This prevents clients from accidentally creating duplicate
75452// commitments.
75453//
75454// The request ID must be a valid UUID with the exception that zero UUID
75455// is not supported (00000000-0000-0000-0000-000000000000).
75456func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
75457	c.urlParams_.Set("requestId", requestId)
75458	return c
75459}
75460
75461// Fields allows partial responses to be retrieved. See
75462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75463// for more information.
75464func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
75465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75466	return c
75467}
75468
75469// Context sets the context to be used in this call's Do method. Any
75470// pending HTTP request will be aborted if the provided context is
75471// canceled.
75472func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
75473	c.ctx_ = ctx
75474	return c
75475}
75476
75477// Header returns an http.Header that can be modified by the caller to
75478// add HTTP headers to the request.
75479func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
75480	if c.header_ == nil {
75481		c.header_ = make(http.Header)
75482	}
75483	return c.header_
75484}
75485
75486func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
75487	reqHeaders := make(http.Header)
75488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
75489	for k, v := range c.header_ {
75490		reqHeaders[k] = v
75491	}
75492	reqHeaders.Set("User-Agent", c.s.userAgent())
75493	var body io.Reader = nil
75494	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
75495	if err != nil {
75496		return nil, err
75497	}
75498	reqHeaders.Set("Content-Type", "application/json")
75499	c.urlParams_.Set("alt", alt)
75500	c.urlParams_.Set("prettyPrint", "false")
75501	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
75502	urls += "?" + c.urlParams_.Encode()
75503	req, err := http.NewRequest("PUT", urls, body)
75504	if err != nil {
75505		return nil, err
75506	}
75507	req.Header = reqHeaders
75508	googleapi.Expand(req.URL, map[string]string{
75509		"project":          c.project,
75510		"httpsHealthCheck": c.httpsHealthCheck,
75511	})
75512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75513}
75514
75515// Do executes the "compute.httpsHealthChecks.update" call.
75516// Exactly one of *Operation or error will be non-nil. Any non-2xx
75517// status code is an error. Response headers are in either
75518// *Operation.ServerResponse.Header or (if a response was returned at
75519// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75520// to check whether the returned error was because
75521// http.StatusNotModified was returned.
75522func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75523	gensupport.SetOptions(c.urlParams_, opts...)
75524	res, err := c.doRequest("json")
75525	if res != nil && res.StatusCode == http.StatusNotModified {
75526		if res.Body != nil {
75527			res.Body.Close()
75528		}
75529		return nil, &googleapi.Error{
75530			Code:   res.StatusCode,
75531			Header: res.Header,
75532		}
75533	}
75534	if err != nil {
75535		return nil, err
75536	}
75537	defer googleapi.CloseBody(res)
75538	if err := googleapi.CheckResponse(res); err != nil {
75539		return nil, err
75540	}
75541	ret := &Operation{
75542		ServerResponse: googleapi.ServerResponse{
75543			Header:         res.Header,
75544			HTTPStatusCode: res.StatusCode,
75545		},
75546	}
75547	target := &ret
75548	if err := gensupport.DecodeResponse(target, res); err != nil {
75549		return nil, err
75550	}
75551	return ret, nil
75552	// {
75553	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
75554	//   "httpMethod": "PUT",
75555	//   "id": "compute.httpsHealthChecks.update",
75556	//   "parameterOrder": [
75557	//     "project",
75558	//     "httpsHealthCheck"
75559	//   ],
75560	//   "parameters": {
75561	//     "httpsHealthCheck": {
75562	//       "description": "Name of the HttpsHealthCheck resource to update.",
75563	//       "location": "path",
75564	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75565	//       "required": true,
75566	//       "type": "string"
75567	//     },
75568	//     "project": {
75569	//       "description": "Project ID for this request.",
75570	//       "location": "path",
75571	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75572	//       "required": true,
75573	//       "type": "string"
75574	//     },
75575	//     "requestId": {
75576	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75577	//       "location": "query",
75578	//       "type": "string"
75579	//     }
75580	//   },
75581	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
75582	//   "request": {
75583	//     "$ref": "HttpsHealthCheck"
75584	//   },
75585	//   "response": {
75586	//     "$ref": "Operation"
75587	//   },
75588	//   "scopes": [
75589	//     "https://www.googleapis.com/auth/cloud-platform",
75590	//     "https://www.googleapis.com/auth/compute"
75591	//   ]
75592	// }
75593
75594}
75595
75596// method id "compute.images.delete":
75597
75598type ImagesDeleteCall struct {
75599	s          *Service
75600	project    string
75601	image      string
75602	urlParams_ gensupport.URLParams
75603	ctx_       context.Context
75604	header_    http.Header
75605}
75606
75607// Delete: Deletes the specified image.
75608// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
75609func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
75610	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75611	c.project = project
75612	c.image = image
75613	return c
75614}
75615
75616// RequestId sets the optional parameter "requestId": An optional
75617// request ID to identify requests. Specify a unique request ID so that
75618// if you must retry your request, the server will know to ignore the
75619// request if it has already been completed.
75620//
75621// For example, consider a situation where you make an initial request
75622// and the request times out. If you make the request again with the
75623// same request ID, the server can check if original operation with the
75624// same request ID was received, and if so, will ignore the second
75625// request. This prevents clients from accidentally creating duplicate
75626// commitments.
75627//
75628// The request ID must be a valid UUID with the exception that zero UUID
75629// is not supported (00000000-0000-0000-0000-000000000000).
75630func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
75631	c.urlParams_.Set("requestId", requestId)
75632	return c
75633}
75634
75635// Fields allows partial responses to be retrieved. See
75636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75637// for more information.
75638func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
75639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75640	return c
75641}
75642
75643// Context sets the context to be used in this call's Do method. Any
75644// pending HTTP request will be aborted if the provided context is
75645// canceled.
75646func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
75647	c.ctx_ = ctx
75648	return c
75649}
75650
75651// Header returns an http.Header that can be modified by the caller to
75652// add HTTP headers to the request.
75653func (c *ImagesDeleteCall) Header() http.Header {
75654	if c.header_ == nil {
75655		c.header_ = make(http.Header)
75656	}
75657	return c.header_
75658}
75659
75660func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
75661	reqHeaders := make(http.Header)
75662	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
75663	for k, v := range c.header_ {
75664		reqHeaders[k] = v
75665	}
75666	reqHeaders.Set("User-Agent", c.s.userAgent())
75667	var body io.Reader = nil
75668	c.urlParams_.Set("alt", alt)
75669	c.urlParams_.Set("prettyPrint", "false")
75670	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
75671	urls += "?" + c.urlParams_.Encode()
75672	req, err := http.NewRequest("DELETE", urls, body)
75673	if err != nil {
75674		return nil, err
75675	}
75676	req.Header = reqHeaders
75677	googleapi.Expand(req.URL, map[string]string{
75678		"project": c.project,
75679		"image":   c.image,
75680	})
75681	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75682}
75683
75684// Do executes the "compute.images.delete" call.
75685// Exactly one of *Operation or error will be non-nil. Any non-2xx
75686// status code is an error. Response headers are in either
75687// *Operation.ServerResponse.Header or (if a response was returned at
75688// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75689// to check whether the returned error was because
75690// http.StatusNotModified was returned.
75691func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75692	gensupport.SetOptions(c.urlParams_, opts...)
75693	res, err := c.doRequest("json")
75694	if res != nil && res.StatusCode == http.StatusNotModified {
75695		if res.Body != nil {
75696			res.Body.Close()
75697		}
75698		return nil, &googleapi.Error{
75699			Code:   res.StatusCode,
75700			Header: res.Header,
75701		}
75702	}
75703	if err != nil {
75704		return nil, err
75705	}
75706	defer googleapi.CloseBody(res)
75707	if err := googleapi.CheckResponse(res); err != nil {
75708		return nil, err
75709	}
75710	ret := &Operation{
75711		ServerResponse: googleapi.ServerResponse{
75712			Header:         res.Header,
75713			HTTPStatusCode: res.StatusCode,
75714		},
75715	}
75716	target := &ret
75717	if err := gensupport.DecodeResponse(target, res); err != nil {
75718		return nil, err
75719	}
75720	return ret, nil
75721	// {
75722	//   "description": "Deletes the specified image.",
75723	//   "httpMethod": "DELETE",
75724	//   "id": "compute.images.delete",
75725	//   "parameterOrder": [
75726	//     "project",
75727	//     "image"
75728	//   ],
75729	//   "parameters": {
75730	//     "image": {
75731	//       "description": "Name of the image resource to delete.",
75732	//       "location": "path",
75733	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75734	//       "required": true,
75735	//       "type": "string"
75736	//     },
75737	//     "project": {
75738	//       "description": "Project ID for this request.",
75739	//       "location": "path",
75740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75741	//       "required": true,
75742	//       "type": "string"
75743	//     },
75744	//     "requestId": {
75745	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75746	//       "location": "query",
75747	//       "type": "string"
75748	//     }
75749	//   },
75750	//   "path": "{project}/global/images/{image}",
75751	//   "response": {
75752	//     "$ref": "Operation"
75753	//   },
75754	//   "scopes": [
75755	//     "https://www.googleapis.com/auth/cloud-platform",
75756	//     "https://www.googleapis.com/auth/compute"
75757	//   ]
75758	// }
75759
75760}
75761
75762// method id "compute.images.deprecate":
75763
75764type ImagesDeprecateCall struct {
75765	s                 *Service
75766	project           string
75767	image             string
75768	deprecationstatus *DeprecationStatus
75769	urlParams_        gensupport.URLParams
75770	ctx_              context.Context
75771	header_           http.Header
75772}
75773
75774// Deprecate: Sets the deprecation status of an image.
75775//
75776// If an empty request body is given, clears the deprecation status
75777// instead.
75778// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
75779func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
75780	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75781	c.project = project
75782	c.image = image
75783	c.deprecationstatus = deprecationstatus
75784	return c
75785}
75786
75787// RequestId sets the optional parameter "requestId": An optional
75788// request ID to identify requests. Specify a unique request ID so that
75789// if you must retry your request, the server will know to ignore the
75790// request if it has already been completed.
75791//
75792// For example, consider a situation where you make an initial request
75793// and the request times out. If you make the request again with the
75794// same request ID, the server can check if original operation with the
75795// same request ID was received, and if so, will ignore the second
75796// request. This prevents clients from accidentally creating duplicate
75797// commitments.
75798//
75799// The request ID must be a valid UUID with the exception that zero UUID
75800// is not supported (00000000-0000-0000-0000-000000000000).
75801func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
75802	c.urlParams_.Set("requestId", requestId)
75803	return c
75804}
75805
75806// Fields allows partial responses to be retrieved. See
75807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75808// for more information.
75809func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
75810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75811	return c
75812}
75813
75814// Context sets the context to be used in this call's Do method. Any
75815// pending HTTP request will be aborted if the provided context is
75816// canceled.
75817func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
75818	c.ctx_ = ctx
75819	return c
75820}
75821
75822// Header returns an http.Header that can be modified by the caller to
75823// add HTTP headers to the request.
75824func (c *ImagesDeprecateCall) Header() http.Header {
75825	if c.header_ == nil {
75826		c.header_ = make(http.Header)
75827	}
75828	return c.header_
75829}
75830
75831func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
75832	reqHeaders := make(http.Header)
75833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
75834	for k, v := range c.header_ {
75835		reqHeaders[k] = v
75836	}
75837	reqHeaders.Set("User-Agent", c.s.userAgent())
75838	var body io.Reader = nil
75839	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
75840	if err != nil {
75841		return nil, err
75842	}
75843	reqHeaders.Set("Content-Type", "application/json")
75844	c.urlParams_.Set("alt", alt)
75845	c.urlParams_.Set("prettyPrint", "false")
75846	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
75847	urls += "?" + c.urlParams_.Encode()
75848	req, err := http.NewRequest("POST", urls, body)
75849	if err != nil {
75850		return nil, err
75851	}
75852	req.Header = reqHeaders
75853	googleapi.Expand(req.URL, map[string]string{
75854		"project": c.project,
75855		"image":   c.image,
75856	})
75857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75858}
75859
75860// Do executes the "compute.images.deprecate" call.
75861// Exactly one of *Operation or error will be non-nil. Any non-2xx
75862// status code is an error. Response headers are in either
75863// *Operation.ServerResponse.Header or (if a response was returned at
75864// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75865// to check whether the returned error was because
75866// http.StatusNotModified was returned.
75867func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75868	gensupport.SetOptions(c.urlParams_, opts...)
75869	res, err := c.doRequest("json")
75870	if res != nil && res.StatusCode == http.StatusNotModified {
75871		if res.Body != nil {
75872			res.Body.Close()
75873		}
75874		return nil, &googleapi.Error{
75875			Code:   res.StatusCode,
75876			Header: res.Header,
75877		}
75878	}
75879	if err != nil {
75880		return nil, err
75881	}
75882	defer googleapi.CloseBody(res)
75883	if err := googleapi.CheckResponse(res); err != nil {
75884		return nil, err
75885	}
75886	ret := &Operation{
75887		ServerResponse: googleapi.ServerResponse{
75888			Header:         res.Header,
75889			HTTPStatusCode: res.StatusCode,
75890		},
75891	}
75892	target := &ret
75893	if err := gensupport.DecodeResponse(target, res); err != nil {
75894		return nil, err
75895	}
75896	return ret, nil
75897	// {
75898	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
75899	//   "httpMethod": "POST",
75900	//   "id": "compute.images.deprecate",
75901	//   "parameterOrder": [
75902	//     "project",
75903	//     "image"
75904	//   ],
75905	//   "parameters": {
75906	//     "image": {
75907	//       "description": "Image name.",
75908	//       "location": "path",
75909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75910	//       "required": true,
75911	//       "type": "string"
75912	//     },
75913	//     "project": {
75914	//       "description": "Project ID for this request.",
75915	//       "location": "path",
75916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75917	//       "required": true,
75918	//       "type": "string"
75919	//     },
75920	//     "requestId": {
75921	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75922	//       "location": "query",
75923	//       "type": "string"
75924	//     }
75925	//   },
75926	//   "path": "{project}/global/images/{image}/deprecate",
75927	//   "request": {
75928	//     "$ref": "DeprecationStatus"
75929	//   },
75930	//   "response": {
75931	//     "$ref": "Operation"
75932	//   },
75933	//   "scopes": [
75934	//     "https://www.googleapis.com/auth/cloud-platform",
75935	//     "https://www.googleapis.com/auth/compute"
75936	//   ]
75937	// }
75938
75939}
75940
75941// method id "compute.images.get":
75942
75943type ImagesGetCall struct {
75944	s            *Service
75945	project      string
75946	image        string
75947	urlParams_   gensupport.URLParams
75948	ifNoneMatch_ string
75949	ctx_         context.Context
75950	header_      http.Header
75951}
75952
75953// Get: Returns the specified image. Gets a list of available images by
75954// making a list() request.
75955// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
75956func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
75957	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75958	c.project = project
75959	c.image = image
75960	return c
75961}
75962
75963// Fields allows partial responses to be retrieved. See
75964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75965// for more information.
75966func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
75967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75968	return c
75969}
75970
75971// IfNoneMatch sets the optional parameter which makes the operation
75972// fail if the object's ETag matches the given value. This is useful for
75973// getting updates only after the object has changed since the last
75974// request. Use googleapi.IsNotModified to check whether the response
75975// error from Do is the result of In-None-Match.
75976func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
75977	c.ifNoneMatch_ = entityTag
75978	return c
75979}
75980
75981// Context sets the context to be used in this call's Do method. Any
75982// pending HTTP request will be aborted if the provided context is
75983// canceled.
75984func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
75985	c.ctx_ = ctx
75986	return c
75987}
75988
75989// Header returns an http.Header that can be modified by the caller to
75990// add HTTP headers to the request.
75991func (c *ImagesGetCall) Header() http.Header {
75992	if c.header_ == nil {
75993		c.header_ = make(http.Header)
75994	}
75995	return c.header_
75996}
75997
75998func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
75999	reqHeaders := make(http.Header)
76000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
76001	for k, v := range c.header_ {
76002		reqHeaders[k] = v
76003	}
76004	reqHeaders.Set("User-Agent", c.s.userAgent())
76005	if c.ifNoneMatch_ != "" {
76006		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76007	}
76008	var body io.Reader = nil
76009	c.urlParams_.Set("alt", alt)
76010	c.urlParams_.Set("prettyPrint", "false")
76011	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
76012	urls += "?" + c.urlParams_.Encode()
76013	req, err := http.NewRequest("GET", urls, body)
76014	if err != nil {
76015		return nil, err
76016	}
76017	req.Header = reqHeaders
76018	googleapi.Expand(req.URL, map[string]string{
76019		"project": c.project,
76020		"image":   c.image,
76021	})
76022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76023}
76024
76025// Do executes the "compute.images.get" call.
76026// Exactly one of *Image or error will be non-nil. Any non-2xx status
76027// code is an error. Response headers are in either
76028// *Image.ServerResponse.Header or (if a response was returned at all)
76029// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
76030// check whether the returned error was because http.StatusNotModified
76031// was returned.
76032func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
76033	gensupport.SetOptions(c.urlParams_, opts...)
76034	res, err := c.doRequest("json")
76035	if res != nil && res.StatusCode == http.StatusNotModified {
76036		if res.Body != nil {
76037			res.Body.Close()
76038		}
76039		return nil, &googleapi.Error{
76040			Code:   res.StatusCode,
76041			Header: res.Header,
76042		}
76043	}
76044	if err != nil {
76045		return nil, err
76046	}
76047	defer googleapi.CloseBody(res)
76048	if err := googleapi.CheckResponse(res); err != nil {
76049		return nil, err
76050	}
76051	ret := &Image{
76052		ServerResponse: googleapi.ServerResponse{
76053			Header:         res.Header,
76054			HTTPStatusCode: res.StatusCode,
76055		},
76056	}
76057	target := &ret
76058	if err := gensupport.DecodeResponse(target, res); err != nil {
76059		return nil, err
76060	}
76061	return ret, nil
76062	// {
76063	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
76064	//   "httpMethod": "GET",
76065	//   "id": "compute.images.get",
76066	//   "parameterOrder": [
76067	//     "project",
76068	//     "image"
76069	//   ],
76070	//   "parameters": {
76071	//     "image": {
76072	//       "description": "Name of the image resource to return.",
76073	//       "location": "path",
76074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76075	//       "required": true,
76076	//       "type": "string"
76077	//     },
76078	//     "project": {
76079	//       "description": "Project ID for this request.",
76080	//       "location": "path",
76081	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76082	//       "required": true,
76083	//       "type": "string"
76084	//     }
76085	//   },
76086	//   "path": "{project}/global/images/{image}",
76087	//   "response": {
76088	//     "$ref": "Image"
76089	//   },
76090	//   "scopes": [
76091	//     "https://www.googleapis.com/auth/cloud-platform",
76092	//     "https://www.googleapis.com/auth/compute",
76093	//     "https://www.googleapis.com/auth/compute.readonly"
76094	//   ]
76095	// }
76096
76097}
76098
76099// method id "compute.images.getFromFamily":
76100
76101type ImagesGetFromFamilyCall struct {
76102	s            *Service
76103	project      string
76104	family       string
76105	urlParams_   gensupport.URLParams
76106	ifNoneMatch_ string
76107	ctx_         context.Context
76108	header_      http.Header
76109}
76110
76111// GetFromFamily: Returns the latest image that is part of an image
76112// family and is not deprecated.
76113func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
76114	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76115	c.project = project
76116	c.family = family
76117	return c
76118}
76119
76120// Fields allows partial responses to be retrieved. See
76121// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76122// for more information.
76123func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
76124	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76125	return c
76126}
76127
76128// IfNoneMatch sets the optional parameter which makes the operation
76129// fail if the object's ETag matches the given value. This is useful for
76130// getting updates only after the object has changed since the last
76131// request. Use googleapi.IsNotModified to check whether the response
76132// error from Do is the result of In-None-Match.
76133func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
76134	c.ifNoneMatch_ = entityTag
76135	return c
76136}
76137
76138// Context sets the context to be used in this call's Do method. Any
76139// pending HTTP request will be aborted if the provided context is
76140// canceled.
76141func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
76142	c.ctx_ = ctx
76143	return c
76144}
76145
76146// Header returns an http.Header that can be modified by the caller to
76147// add HTTP headers to the request.
76148func (c *ImagesGetFromFamilyCall) Header() http.Header {
76149	if c.header_ == nil {
76150		c.header_ = make(http.Header)
76151	}
76152	return c.header_
76153}
76154
76155func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
76156	reqHeaders := make(http.Header)
76157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
76158	for k, v := range c.header_ {
76159		reqHeaders[k] = v
76160	}
76161	reqHeaders.Set("User-Agent", c.s.userAgent())
76162	if c.ifNoneMatch_ != "" {
76163		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76164	}
76165	var body io.Reader = nil
76166	c.urlParams_.Set("alt", alt)
76167	c.urlParams_.Set("prettyPrint", "false")
76168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
76169	urls += "?" + c.urlParams_.Encode()
76170	req, err := http.NewRequest("GET", urls, body)
76171	if err != nil {
76172		return nil, err
76173	}
76174	req.Header = reqHeaders
76175	googleapi.Expand(req.URL, map[string]string{
76176		"project": c.project,
76177		"family":  c.family,
76178	})
76179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76180}
76181
76182// Do executes the "compute.images.getFromFamily" call.
76183// Exactly one of *Image or error will be non-nil. Any non-2xx status
76184// code is an error. Response headers are in either
76185// *Image.ServerResponse.Header or (if a response was returned at all)
76186// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
76187// check whether the returned error was because http.StatusNotModified
76188// was returned.
76189func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
76190	gensupport.SetOptions(c.urlParams_, opts...)
76191	res, err := c.doRequest("json")
76192	if res != nil && res.StatusCode == http.StatusNotModified {
76193		if res.Body != nil {
76194			res.Body.Close()
76195		}
76196		return nil, &googleapi.Error{
76197			Code:   res.StatusCode,
76198			Header: res.Header,
76199		}
76200	}
76201	if err != nil {
76202		return nil, err
76203	}
76204	defer googleapi.CloseBody(res)
76205	if err := googleapi.CheckResponse(res); err != nil {
76206		return nil, err
76207	}
76208	ret := &Image{
76209		ServerResponse: googleapi.ServerResponse{
76210			Header:         res.Header,
76211			HTTPStatusCode: res.StatusCode,
76212		},
76213	}
76214	target := &ret
76215	if err := gensupport.DecodeResponse(target, res); err != nil {
76216		return nil, err
76217	}
76218	return ret, nil
76219	// {
76220	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
76221	//   "httpMethod": "GET",
76222	//   "id": "compute.images.getFromFamily",
76223	//   "parameterOrder": [
76224	//     "project",
76225	//     "family"
76226	//   ],
76227	//   "parameters": {
76228	//     "family": {
76229	//       "description": "Name of the image family to search for.",
76230	//       "location": "path",
76231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76232	//       "required": true,
76233	//       "type": "string"
76234	//     },
76235	//     "project": {
76236	//       "description": "Project ID for this request.",
76237	//       "location": "path",
76238	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76239	//       "required": true,
76240	//       "type": "string"
76241	//     }
76242	//   },
76243	//   "path": "{project}/global/images/family/{family}",
76244	//   "response": {
76245	//     "$ref": "Image"
76246	//   },
76247	//   "scopes": [
76248	//     "https://www.googleapis.com/auth/cloud-platform",
76249	//     "https://www.googleapis.com/auth/compute",
76250	//     "https://www.googleapis.com/auth/compute.readonly"
76251	//   ]
76252	// }
76253
76254}
76255
76256// method id "compute.images.getIamPolicy":
76257
76258type ImagesGetIamPolicyCall struct {
76259	s            *Service
76260	project      string
76261	resource     string
76262	urlParams_   gensupport.URLParams
76263	ifNoneMatch_ string
76264	ctx_         context.Context
76265	header_      http.Header
76266}
76267
76268// GetIamPolicy: Gets the access control policy for a resource. May be
76269// empty if no such policy or resource exists.
76270func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
76271	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76272	c.project = project
76273	c.resource = resource
76274	return c
76275}
76276
76277// OptionsRequestedPolicyVersion sets the optional parameter
76278// "optionsRequestedPolicyVersion": Requested IAM Policy version.
76279func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
76280	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
76281	return c
76282}
76283
76284// Fields allows partial responses to be retrieved. See
76285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76286// for more information.
76287func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
76288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76289	return c
76290}
76291
76292// IfNoneMatch sets the optional parameter which makes the operation
76293// fail if the object's ETag matches the given value. This is useful for
76294// getting updates only after the object has changed since the last
76295// request. Use googleapi.IsNotModified to check whether the response
76296// error from Do is the result of In-None-Match.
76297func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
76298	c.ifNoneMatch_ = entityTag
76299	return c
76300}
76301
76302// Context sets the context to be used in this call's Do method. Any
76303// pending HTTP request will be aborted if the provided context is
76304// canceled.
76305func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
76306	c.ctx_ = ctx
76307	return c
76308}
76309
76310// Header returns an http.Header that can be modified by the caller to
76311// add HTTP headers to the request.
76312func (c *ImagesGetIamPolicyCall) Header() http.Header {
76313	if c.header_ == nil {
76314		c.header_ = make(http.Header)
76315	}
76316	return c.header_
76317}
76318
76319func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
76320	reqHeaders := make(http.Header)
76321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
76322	for k, v := range c.header_ {
76323		reqHeaders[k] = v
76324	}
76325	reqHeaders.Set("User-Agent", c.s.userAgent())
76326	if c.ifNoneMatch_ != "" {
76327		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76328	}
76329	var body io.Reader = nil
76330	c.urlParams_.Set("alt", alt)
76331	c.urlParams_.Set("prettyPrint", "false")
76332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/getIamPolicy")
76333	urls += "?" + c.urlParams_.Encode()
76334	req, err := http.NewRequest("GET", urls, body)
76335	if err != nil {
76336		return nil, err
76337	}
76338	req.Header = reqHeaders
76339	googleapi.Expand(req.URL, map[string]string{
76340		"project":  c.project,
76341		"resource": c.resource,
76342	})
76343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76344}
76345
76346// Do executes the "compute.images.getIamPolicy" call.
76347// Exactly one of *Policy or error will be non-nil. Any non-2xx status
76348// code is an error. Response headers are in either
76349// *Policy.ServerResponse.Header or (if a response was returned at all)
76350// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
76351// check whether the returned error was because http.StatusNotModified
76352// was returned.
76353func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
76354	gensupport.SetOptions(c.urlParams_, opts...)
76355	res, err := c.doRequest("json")
76356	if res != nil && res.StatusCode == http.StatusNotModified {
76357		if res.Body != nil {
76358			res.Body.Close()
76359		}
76360		return nil, &googleapi.Error{
76361			Code:   res.StatusCode,
76362			Header: res.Header,
76363		}
76364	}
76365	if err != nil {
76366		return nil, err
76367	}
76368	defer googleapi.CloseBody(res)
76369	if err := googleapi.CheckResponse(res); err != nil {
76370		return nil, err
76371	}
76372	ret := &Policy{
76373		ServerResponse: googleapi.ServerResponse{
76374			Header:         res.Header,
76375			HTTPStatusCode: res.StatusCode,
76376		},
76377	}
76378	target := &ret
76379	if err := gensupport.DecodeResponse(target, res); err != nil {
76380		return nil, err
76381	}
76382	return ret, nil
76383	// {
76384	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
76385	//   "httpMethod": "GET",
76386	//   "id": "compute.images.getIamPolicy",
76387	//   "parameterOrder": [
76388	//     "project",
76389	//     "resource"
76390	//   ],
76391	//   "parameters": {
76392	//     "optionsRequestedPolicyVersion": {
76393	//       "description": "Requested IAM Policy version.",
76394	//       "format": "int32",
76395	//       "location": "query",
76396	//       "type": "integer"
76397	//     },
76398	//     "project": {
76399	//       "description": "Project ID for this request.",
76400	//       "location": "path",
76401	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76402	//       "required": true,
76403	//       "type": "string"
76404	//     },
76405	//     "resource": {
76406	//       "description": "Name or id of the resource for this request.",
76407	//       "location": "path",
76408	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76409	//       "required": true,
76410	//       "type": "string"
76411	//     }
76412	//   },
76413	//   "path": "{project}/global/images/{resource}/getIamPolicy",
76414	//   "response": {
76415	//     "$ref": "Policy"
76416	//   },
76417	//   "scopes": [
76418	//     "https://www.googleapis.com/auth/cloud-platform",
76419	//     "https://www.googleapis.com/auth/compute",
76420	//     "https://www.googleapis.com/auth/compute.readonly"
76421	//   ]
76422	// }
76423
76424}
76425
76426// method id "compute.images.insert":
76427
76428type ImagesInsertCall struct {
76429	s          *Service
76430	project    string
76431	image      *Image
76432	urlParams_ gensupport.URLParams
76433	ctx_       context.Context
76434	header_    http.Header
76435}
76436
76437// Insert: Creates an image in the specified project using the data
76438// included in the request.
76439// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
76440func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
76441	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76442	c.project = project
76443	c.image = image
76444	return c
76445}
76446
76447// ForceCreate sets the optional parameter "forceCreate": Force image
76448// creation if true.
76449func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
76450	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
76451	return c
76452}
76453
76454// RequestId sets the optional parameter "requestId": An optional
76455// request ID to identify requests. Specify a unique request ID so that
76456// if you must retry your request, the server will know to ignore the
76457// request if it has already been completed.
76458//
76459// For example, consider a situation where you make an initial request
76460// and the request times out. If you make the request again with the
76461// same request ID, the server can check if original operation with the
76462// same request ID was received, and if so, will ignore the second
76463// request. This prevents clients from accidentally creating duplicate
76464// commitments.
76465//
76466// The request ID must be a valid UUID with the exception that zero UUID
76467// is not supported (00000000-0000-0000-0000-000000000000).
76468func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
76469	c.urlParams_.Set("requestId", requestId)
76470	return c
76471}
76472
76473// Fields allows partial responses to be retrieved. See
76474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76475// for more information.
76476func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
76477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76478	return c
76479}
76480
76481// Context sets the context to be used in this call's Do method. Any
76482// pending HTTP request will be aborted if the provided context is
76483// canceled.
76484func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
76485	c.ctx_ = ctx
76486	return c
76487}
76488
76489// Header returns an http.Header that can be modified by the caller to
76490// add HTTP headers to the request.
76491func (c *ImagesInsertCall) Header() http.Header {
76492	if c.header_ == nil {
76493		c.header_ = make(http.Header)
76494	}
76495	return c.header_
76496}
76497
76498func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
76499	reqHeaders := make(http.Header)
76500	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
76501	for k, v := range c.header_ {
76502		reqHeaders[k] = v
76503	}
76504	reqHeaders.Set("User-Agent", c.s.userAgent())
76505	var body io.Reader = nil
76506	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
76507	if err != nil {
76508		return nil, err
76509	}
76510	reqHeaders.Set("Content-Type", "application/json")
76511	c.urlParams_.Set("alt", alt)
76512	c.urlParams_.Set("prettyPrint", "false")
76513	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
76514	urls += "?" + c.urlParams_.Encode()
76515	req, err := http.NewRequest("POST", urls, body)
76516	if err != nil {
76517		return nil, err
76518	}
76519	req.Header = reqHeaders
76520	googleapi.Expand(req.URL, map[string]string{
76521		"project": c.project,
76522	})
76523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76524}
76525
76526// Do executes the "compute.images.insert" call.
76527// Exactly one of *Operation or error will be non-nil. Any non-2xx
76528// status code is an error. Response headers are in either
76529// *Operation.ServerResponse.Header or (if a response was returned at
76530// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76531// to check whether the returned error was because
76532// http.StatusNotModified was returned.
76533func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76534	gensupport.SetOptions(c.urlParams_, opts...)
76535	res, err := c.doRequest("json")
76536	if res != nil && res.StatusCode == http.StatusNotModified {
76537		if res.Body != nil {
76538			res.Body.Close()
76539		}
76540		return nil, &googleapi.Error{
76541			Code:   res.StatusCode,
76542			Header: res.Header,
76543		}
76544	}
76545	if err != nil {
76546		return nil, err
76547	}
76548	defer googleapi.CloseBody(res)
76549	if err := googleapi.CheckResponse(res); err != nil {
76550		return nil, err
76551	}
76552	ret := &Operation{
76553		ServerResponse: googleapi.ServerResponse{
76554			Header:         res.Header,
76555			HTTPStatusCode: res.StatusCode,
76556		},
76557	}
76558	target := &ret
76559	if err := gensupport.DecodeResponse(target, res); err != nil {
76560		return nil, err
76561	}
76562	return ret, nil
76563	// {
76564	//   "description": "Creates an image in the specified project using the data included in the request.",
76565	//   "httpMethod": "POST",
76566	//   "id": "compute.images.insert",
76567	//   "parameterOrder": [
76568	//     "project"
76569	//   ],
76570	//   "parameters": {
76571	//     "forceCreate": {
76572	//       "description": "Force image creation if true.",
76573	//       "location": "query",
76574	//       "type": "boolean"
76575	//     },
76576	//     "project": {
76577	//       "description": "Project ID for this request.",
76578	//       "location": "path",
76579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76580	//       "required": true,
76581	//       "type": "string"
76582	//     },
76583	//     "requestId": {
76584	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76585	//       "location": "query",
76586	//       "type": "string"
76587	//     }
76588	//   },
76589	//   "path": "{project}/global/images",
76590	//   "request": {
76591	//     "$ref": "Image"
76592	//   },
76593	//   "response": {
76594	//     "$ref": "Operation"
76595	//   },
76596	//   "scopes": [
76597	//     "https://www.googleapis.com/auth/cloud-platform",
76598	//     "https://www.googleapis.com/auth/compute",
76599	//     "https://www.googleapis.com/auth/devstorage.full_control",
76600	//     "https://www.googleapis.com/auth/devstorage.read_only",
76601	//     "https://www.googleapis.com/auth/devstorage.read_write"
76602	//   ]
76603	// }
76604
76605}
76606
76607// method id "compute.images.list":
76608
76609type ImagesListCall struct {
76610	s            *Service
76611	project      string
76612	urlParams_   gensupport.URLParams
76613	ifNoneMatch_ string
76614	ctx_         context.Context
76615	header_      http.Header
76616}
76617
76618// List: Retrieves the list of custom images available to the specified
76619// project. Custom images are images you create that belong to your
76620// project. This method does not get any images that belong to other
76621// projects, including publicly-available images, like Debian 8. If you
76622// want to get a list of publicly-available images, use this method to
76623// make a request to the respective image project, such as debian-cloud
76624// or windows-cloud.
76625// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
76626func (r *ImagesService) List(project string) *ImagesListCall {
76627	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76628	c.project = project
76629	return c
76630}
76631
76632// Filter sets the optional parameter "filter": A filter expression that
76633// filters resources listed in the response. The expression must specify
76634// the field name, a comparison operator, and the value that you want to
76635// use for filtering. The value must be a string, a number, or a
76636// boolean. The comparison operator must be either `=`, `!=`, `>`, or
76637// `<`.
76638//
76639// For example, if you are filtering Compute Engine instances, you can
76640// exclude instances named `example-instance` by specifying `name !=
76641// example-instance`.
76642//
76643// You can also filter nested fields. For example, you could specify
76644// `scheduling.automaticRestart = false` to include instances only if
76645// they are not scheduled for automatic restarts. You can use filtering
76646// on nested fields to filter based on resource labels.
76647//
76648// To filter on multiple expressions, provide each separate expression
76649// within parentheses. For example: ``` (scheduling.automaticRestart =
76650// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
76651// is an `AND` expression. However, you can include `AND` and `OR`
76652// expressions explicitly. For example: ``` (cpuPlatform = "Intel
76653// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
76654// (scheduling.automaticRestart = true) ```
76655func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
76656	c.urlParams_.Set("filter", filter)
76657	return c
76658}
76659
76660// MaxResults sets the optional parameter "maxResults": The maximum
76661// number of results per page that should be returned. If the number of
76662// available results is larger than `maxResults`, Compute Engine returns
76663// a `nextPageToken` that can be used to get the next page of results in
76664// subsequent list requests. Acceptable values are `0` to `500`,
76665// inclusive. (Default: `500`)
76666func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
76667	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76668	return c
76669}
76670
76671// OrderBy sets the optional parameter "orderBy": Sorts list results by
76672// a certain order. By default, results are returned in alphanumerical
76673// order based on the resource name.
76674//
76675// You can also sort results in descending order based on the creation
76676// timestamp using `orderBy="creationTimestamp desc". This sorts
76677// results based on the `creationTimestamp` field in reverse
76678// chronological order (newest result first). Use this to sort resources
76679// like operations so that the newest operation is returned
76680// first.
76681//
76682// Currently, only sorting by `name` or `creationTimestamp desc` is
76683// supported.
76684func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
76685	c.urlParams_.Set("orderBy", orderBy)
76686	return c
76687}
76688
76689// PageToken sets the optional parameter "pageToken": Specifies a page
76690// token to use. Set `pageToken` to the `nextPageToken` returned by a
76691// previous list request to get the next page of results.
76692func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
76693	c.urlParams_.Set("pageToken", pageToken)
76694	return c
76695}
76696
76697// ReturnPartialSuccess sets the optional parameter
76698// "returnPartialSuccess": Opt-in for partial success behavior which
76699// provides partial results in case of failure. The default value is
76700// false and the logic is the same as today.
76701func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall {
76702	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
76703	return c
76704}
76705
76706// Fields allows partial responses to be retrieved. See
76707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76708// for more information.
76709func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
76710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76711	return c
76712}
76713
76714// IfNoneMatch sets the optional parameter which makes the operation
76715// fail if the object's ETag matches the given value. This is useful for
76716// getting updates only after the object has changed since the last
76717// request. Use googleapi.IsNotModified to check whether the response
76718// error from Do is the result of In-None-Match.
76719func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
76720	c.ifNoneMatch_ = entityTag
76721	return c
76722}
76723
76724// Context sets the context to be used in this call's Do method. Any
76725// pending HTTP request will be aborted if the provided context is
76726// canceled.
76727func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
76728	c.ctx_ = ctx
76729	return c
76730}
76731
76732// Header returns an http.Header that can be modified by the caller to
76733// add HTTP headers to the request.
76734func (c *ImagesListCall) Header() http.Header {
76735	if c.header_ == nil {
76736		c.header_ = make(http.Header)
76737	}
76738	return c.header_
76739}
76740
76741func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
76742	reqHeaders := make(http.Header)
76743	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
76744	for k, v := range c.header_ {
76745		reqHeaders[k] = v
76746	}
76747	reqHeaders.Set("User-Agent", c.s.userAgent())
76748	if c.ifNoneMatch_ != "" {
76749		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76750	}
76751	var body io.Reader = nil
76752	c.urlParams_.Set("alt", alt)
76753	c.urlParams_.Set("prettyPrint", "false")
76754	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
76755	urls += "?" + c.urlParams_.Encode()
76756	req, err := http.NewRequest("GET", urls, body)
76757	if err != nil {
76758		return nil, err
76759	}
76760	req.Header = reqHeaders
76761	googleapi.Expand(req.URL, map[string]string{
76762		"project": c.project,
76763	})
76764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76765}
76766
76767// Do executes the "compute.images.list" call.
76768// Exactly one of *ImageList or error will be non-nil. Any non-2xx
76769// status code is an error. Response headers are in either
76770// *ImageList.ServerResponse.Header or (if a response was returned at
76771// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76772// to check whether the returned error was because
76773// http.StatusNotModified was returned.
76774func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
76775	gensupport.SetOptions(c.urlParams_, opts...)
76776	res, err := c.doRequest("json")
76777	if res != nil && res.StatusCode == http.StatusNotModified {
76778		if res.Body != nil {
76779			res.Body.Close()
76780		}
76781		return nil, &googleapi.Error{
76782			Code:   res.StatusCode,
76783			Header: res.Header,
76784		}
76785	}
76786	if err != nil {
76787		return nil, err
76788	}
76789	defer googleapi.CloseBody(res)
76790	if err := googleapi.CheckResponse(res); err != nil {
76791		return nil, err
76792	}
76793	ret := &ImageList{
76794		ServerResponse: googleapi.ServerResponse{
76795			Header:         res.Header,
76796			HTTPStatusCode: res.StatusCode,
76797		},
76798	}
76799	target := &ret
76800	if err := gensupport.DecodeResponse(target, res); err != nil {
76801		return nil, err
76802	}
76803	return ret, nil
76804	// {
76805	//   "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.",
76806	//   "httpMethod": "GET",
76807	//   "id": "compute.images.list",
76808	//   "parameterOrder": [
76809	//     "project"
76810	//   ],
76811	//   "parameters": {
76812	//     "filter": {
76813	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
76814	//       "location": "query",
76815	//       "type": "string"
76816	//     },
76817	//     "maxResults": {
76818	//       "default": "500",
76819	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
76820	//       "format": "uint32",
76821	//       "location": "query",
76822	//       "minimum": "0",
76823	//       "type": "integer"
76824	//     },
76825	//     "orderBy": {
76826	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
76827	//       "location": "query",
76828	//       "type": "string"
76829	//     },
76830	//     "pageToken": {
76831	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
76832	//       "location": "query",
76833	//       "type": "string"
76834	//     },
76835	//     "project": {
76836	//       "description": "Project ID for this request.",
76837	//       "location": "path",
76838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76839	//       "required": true,
76840	//       "type": "string"
76841	//     },
76842	//     "returnPartialSuccess": {
76843	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
76844	//       "location": "query",
76845	//       "type": "boolean"
76846	//     }
76847	//   },
76848	//   "path": "{project}/global/images",
76849	//   "response": {
76850	//     "$ref": "ImageList"
76851	//   },
76852	//   "scopes": [
76853	//     "https://www.googleapis.com/auth/cloud-platform",
76854	//     "https://www.googleapis.com/auth/compute",
76855	//     "https://www.googleapis.com/auth/compute.readonly"
76856	//   ]
76857	// }
76858
76859}
76860
76861// Pages invokes f for each page of results.
76862// A non-nil error returned from f will halt the iteration.
76863// The provided context supersedes any context provided to the Context method.
76864func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
76865	c.ctx_ = ctx
76866	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76867	for {
76868		x, err := c.Do()
76869		if err != nil {
76870			return err
76871		}
76872		if err := f(x); err != nil {
76873			return err
76874		}
76875		if x.NextPageToken == "" {
76876			return nil
76877		}
76878		c.PageToken(x.NextPageToken)
76879	}
76880}
76881
76882// method id "compute.images.patch":
76883
76884type ImagesPatchCall struct {
76885	s          *Service
76886	project    string
76887	image      string
76888	image2     *Image
76889	urlParams_ gensupport.URLParams
76890	ctx_       context.Context
76891	header_    http.Header
76892}
76893
76894// Patch: Patches the specified image with the data included in the
76895// request. Only the following fields can be modified: family,
76896// description, deprecation status.
76897func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall {
76898	c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76899	c.project = project
76900	c.image = image
76901	c.image2 = image2
76902	return c
76903}
76904
76905// RequestId sets the optional parameter "requestId": An optional
76906// request ID to identify requests. Specify a unique request ID so that
76907// if you must retry your request, the server will know to ignore the
76908// request if it has already been completed.
76909//
76910// For example, consider a situation where you make an initial request
76911// and the request times out. If you make the request again with the
76912// same request ID, the server can check if original operation with the
76913// same request ID was received, and if so, will ignore the second
76914// request. This prevents clients from accidentally creating duplicate
76915// commitments.
76916//
76917// The request ID must be a valid UUID with the exception that zero UUID
76918// is not supported (00000000-0000-0000-0000-000000000000).
76919func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall {
76920	c.urlParams_.Set("requestId", requestId)
76921	return c
76922}
76923
76924// Fields allows partial responses to be retrieved. See
76925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76926// for more information.
76927func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall {
76928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76929	return c
76930}
76931
76932// Context sets the context to be used in this call's Do method. Any
76933// pending HTTP request will be aborted if the provided context is
76934// canceled.
76935func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall {
76936	c.ctx_ = ctx
76937	return c
76938}
76939
76940// Header returns an http.Header that can be modified by the caller to
76941// add HTTP headers to the request.
76942func (c *ImagesPatchCall) Header() http.Header {
76943	if c.header_ == nil {
76944		c.header_ = make(http.Header)
76945	}
76946	return c.header_
76947}
76948
76949func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) {
76950	reqHeaders := make(http.Header)
76951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
76952	for k, v := range c.header_ {
76953		reqHeaders[k] = v
76954	}
76955	reqHeaders.Set("User-Agent", c.s.userAgent())
76956	var body io.Reader = nil
76957	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2)
76958	if err != nil {
76959		return nil, err
76960	}
76961	reqHeaders.Set("Content-Type", "application/json")
76962	c.urlParams_.Set("alt", alt)
76963	c.urlParams_.Set("prettyPrint", "false")
76964	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
76965	urls += "?" + c.urlParams_.Encode()
76966	req, err := http.NewRequest("PATCH", urls, body)
76967	if err != nil {
76968		return nil, err
76969	}
76970	req.Header = reqHeaders
76971	googleapi.Expand(req.URL, map[string]string{
76972		"project": c.project,
76973		"image":   c.image,
76974	})
76975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76976}
76977
76978// Do executes the "compute.images.patch" call.
76979// Exactly one of *Operation or error will be non-nil. Any non-2xx
76980// status code is an error. Response headers are in either
76981// *Operation.ServerResponse.Header or (if a response was returned at
76982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76983// to check whether the returned error was because
76984// http.StatusNotModified was returned.
76985func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76986	gensupport.SetOptions(c.urlParams_, opts...)
76987	res, err := c.doRequest("json")
76988	if res != nil && res.StatusCode == http.StatusNotModified {
76989		if res.Body != nil {
76990			res.Body.Close()
76991		}
76992		return nil, &googleapi.Error{
76993			Code:   res.StatusCode,
76994			Header: res.Header,
76995		}
76996	}
76997	if err != nil {
76998		return nil, err
76999	}
77000	defer googleapi.CloseBody(res)
77001	if err := googleapi.CheckResponse(res); err != nil {
77002		return nil, err
77003	}
77004	ret := &Operation{
77005		ServerResponse: googleapi.ServerResponse{
77006			Header:         res.Header,
77007			HTTPStatusCode: res.StatusCode,
77008		},
77009	}
77010	target := &ret
77011	if err := gensupport.DecodeResponse(target, res); err != nil {
77012		return nil, err
77013	}
77014	return ret, nil
77015	// {
77016	//   "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.",
77017	//   "httpMethod": "PATCH",
77018	//   "id": "compute.images.patch",
77019	//   "parameterOrder": [
77020	//     "project",
77021	//     "image"
77022	//   ],
77023	//   "parameters": {
77024	//     "image": {
77025	//       "description": "Name of the image resource to patch.",
77026	//       "location": "path",
77027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77028	//       "required": true,
77029	//       "type": "string"
77030	//     },
77031	//     "project": {
77032	//       "description": "Project ID for this request.",
77033	//       "location": "path",
77034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77035	//       "required": true,
77036	//       "type": "string"
77037	//     },
77038	//     "requestId": {
77039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77040	//       "location": "query",
77041	//       "type": "string"
77042	//     }
77043	//   },
77044	//   "path": "{project}/global/images/{image}",
77045	//   "request": {
77046	//     "$ref": "Image"
77047	//   },
77048	//   "response": {
77049	//     "$ref": "Operation"
77050	//   },
77051	//   "scopes": [
77052	//     "https://www.googleapis.com/auth/cloud-platform",
77053	//     "https://www.googleapis.com/auth/compute"
77054	//   ]
77055	// }
77056
77057}
77058
77059// method id "compute.images.setIamPolicy":
77060
77061type ImagesSetIamPolicyCall struct {
77062	s                      *Service
77063	project                string
77064	resource               string
77065	globalsetpolicyrequest *GlobalSetPolicyRequest
77066	urlParams_             gensupport.URLParams
77067	ctx_                   context.Context
77068	header_                http.Header
77069}
77070
77071// SetIamPolicy: Sets the access control policy on the specified
77072// resource. Replaces any existing policy.
77073func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
77074	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77075	c.project = project
77076	c.resource = resource
77077	c.globalsetpolicyrequest = globalsetpolicyrequest
77078	return c
77079}
77080
77081// Fields allows partial responses to be retrieved. See
77082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77083// for more information.
77084func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
77085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77086	return c
77087}
77088
77089// Context sets the context to be used in this call's Do method. Any
77090// pending HTTP request will be aborted if the provided context is
77091// canceled.
77092func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
77093	c.ctx_ = ctx
77094	return c
77095}
77096
77097// Header returns an http.Header that can be modified by the caller to
77098// add HTTP headers to the request.
77099func (c *ImagesSetIamPolicyCall) Header() http.Header {
77100	if c.header_ == nil {
77101		c.header_ = make(http.Header)
77102	}
77103	return c.header_
77104}
77105
77106func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
77107	reqHeaders := make(http.Header)
77108	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
77109	for k, v := range c.header_ {
77110		reqHeaders[k] = v
77111	}
77112	reqHeaders.Set("User-Agent", c.s.userAgent())
77113	var body io.Reader = nil
77114	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
77115	if err != nil {
77116		return nil, err
77117	}
77118	reqHeaders.Set("Content-Type", "application/json")
77119	c.urlParams_.Set("alt", alt)
77120	c.urlParams_.Set("prettyPrint", "false")
77121	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setIamPolicy")
77122	urls += "?" + c.urlParams_.Encode()
77123	req, err := http.NewRequest("POST", urls, body)
77124	if err != nil {
77125		return nil, err
77126	}
77127	req.Header = reqHeaders
77128	googleapi.Expand(req.URL, map[string]string{
77129		"project":  c.project,
77130		"resource": c.resource,
77131	})
77132	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77133}
77134
77135// Do executes the "compute.images.setIamPolicy" call.
77136// Exactly one of *Policy or error will be non-nil. Any non-2xx status
77137// code is an error. Response headers are in either
77138// *Policy.ServerResponse.Header or (if a response was returned at all)
77139// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
77140// check whether the returned error was because http.StatusNotModified
77141// was returned.
77142func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
77143	gensupport.SetOptions(c.urlParams_, opts...)
77144	res, err := c.doRequest("json")
77145	if res != nil && res.StatusCode == http.StatusNotModified {
77146		if res.Body != nil {
77147			res.Body.Close()
77148		}
77149		return nil, &googleapi.Error{
77150			Code:   res.StatusCode,
77151			Header: res.Header,
77152		}
77153	}
77154	if err != nil {
77155		return nil, err
77156	}
77157	defer googleapi.CloseBody(res)
77158	if err := googleapi.CheckResponse(res); err != nil {
77159		return nil, err
77160	}
77161	ret := &Policy{
77162		ServerResponse: googleapi.ServerResponse{
77163			Header:         res.Header,
77164			HTTPStatusCode: res.StatusCode,
77165		},
77166	}
77167	target := &ret
77168	if err := gensupport.DecodeResponse(target, res); err != nil {
77169		return nil, err
77170	}
77171	return ret, nil
77172	// {
77173	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
77174	//   "httpMethod": "POST",
77175	//   "id": "compute.images.setIamPolicy",
77176	//   "parameterOrder": [
77177	//     "project",
77178	//     "resource"
77179	//   ],
77180	//   "parameters": {
77181	//     "project": {
77182	//       "description": "Project ID for this request.",
77183	//       "location": "path",
77184	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77185	//       "required": true,
77186	//       "type": "string"
77187	//     },
77188	//     "resource": {
77189	//       "description": "Name or id of the resource for this request.",
77190	//       "location": "path",
77191	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77192	//       "required": true,
77193	//       "type": "string"
77194	//     }
77195	//   },
77196	//   "path": "{project}/global/images/{resource}/setIamPolicy",
77197	//   "request": {
77198	//     "$ref": "GlobalSetPolicyRequest"
77199	//   },
77200	//   "response": {
77201	//     "$ref": "Policy"
77202	//   },
77203	//   "scopes": [
77204	//     "https://www.googleapis.com/auth/cloud-platform",
77205	//     "https://www.googleapis.com/auth/compute"
77206	//   ]
77207	// }
77208
77209}
77210
77211// method id "compute.images.setLabels":
77212
77213type ImagesSetLabelsCall struct {
77214	s                      *Service
77215	project                string
77216	resource               string
77217	globalsetlabelsrequest *GlobalSetLabelsRequest
77218	urlParams_             gensupport.URLParams
77219	ctx_                   context.Context
77220	header_                http.Header
77221}
77222
77223// SetLabels: Sets the labels on an image. To learn more about labels,
77224// read the Labeling Resources documentation.
77225func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
77226	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77227	c.project = project
77228	c.resource = resource
77229	c.globalsetlabelsrequest = globalsetlabelsrequest
77230	return c
77231}
77232
77233// Fields allows partial responses to be retrieved. See
77234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77235// for more information.
77236func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
77237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77238	return c
77239}
77240
77241// Context sets the context to be used in this call's Do method. Any
77242// pending HTTP request will be aborted if the provided context is
77243// canceled.
77244func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
77245	c.ctx_ = ctx
77246	return c
77247}
77248
77249// Header returns an http.Header that can be modified by the caller to
77250// add HTTP headers to the request.
77251func (c *ImagesSetLabelsCall) Header() http.Header {
77252	if c.header_ == nil {
77253		c.header_ = make(http.Header)
77254	}
77255	return c.header_
77256}
77257
77258func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
77259	reqHeaders := make(http.Header)
77260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
77261	for k, v := range c.header_ {
77262		reqHeaders[k] = v
77263	}
77264	reqHeaders.Set("User-Agent", c.s.userAgent())
77265	var body io.Reader = nil
77266	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
77267	if err != nil {
77268		return nil, err
77269	}
77270	reqHeaders.Set("Content-Type", "application/json")
77271	c.urlParams_.Set("alt", alt)
77272	c.urlParams_.Set("prettyPrint", "false")
77273	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
77274	urls += "?" + c.urlParams_.Encode()
77275	req, err := http.NewRequest("POST", urls, body)
77276	if err != nil {
77277		return nil, err
77278	}
77279	req.Header = reqHeaders
77280	googleapi.Expand(req.URL, map[string]string{
77281		"project":  c.project,
77282		"resource": c.resource,
77283	})
77284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77285}
77286
77287// Do executes the "compute.images.setLabels" call.
77288// Exactly one of *Operation or error will be non-nil. Any non-2xx
77289// status code is an error. Response headers are in either
77290// *Operation.ServerResponse.Header or (if a response was returned at
77291// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77292// to check whether the returned error was because
77293// http.StatusNotModified was returned.
77294func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77295	gensupport.SetOptions(c.urlParams_, opts...)
77296	res, err := c.doRequest("json")
77297	if res != nil && res.StatusCode == http.StatusNotModified {
77298		if res.Body != nil {
77299			res.Body.Close()
77300		}
77301		return nil, &googleapi.Error{
77302			Code:   res.StatusCode,
77303			Header: res.Header,
77304		}
77305	}
77306	if err != nil {
77307		return nil, err
77308	}
77309	defer googleapi.CloseBody(res)
77310	if err := googleapi.CheckResponse(res); err != nil {
77311		return nil, err
77312	}
77313	ret := &Operation{
77314		ServerResponse: googleapi.ServerResponse{
77315			Header:         res.Header,
77316			HTTPStatusCode: res.StatusCode,
77317		},
77318	}
77319	target := &ret
77320	if err := gensupport.DecodeResponse(target, res); err != nil {
77321		return nil, err
77322	}
77323	return ret, nil
77324	// {
77325	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
77326	//   "httpMethod": "POST",
77327	//   "id": "compute.images.setLabels",
77328	//   "parameterOrder": [
77329	//     "project",
77330	//     "resource"
77331	//   ],
77332	//   "parameters": {
77333	//     "project": {
77334	//       "description": "Project ID for this request.",
77335	//       "location": "path",
77336	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77337	//       "required": true,
77338	//       "type": "string"
77339	//     },
77340	//     "resource": {
77341	//       "description": "Name or id of the resource for this request.",
77342	//       "location": "path",
77343	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77344	//       "required": true,
77345	//       "type": "string"
77346	//     }
77347	//   },
77348	//   "path": "{project}/global/images/{resource}/setLabels",
77349	//   "request": {
77350	//     "$ref": "GlobalSetLabelsRequest"
77351	//   },
77352	//   "response": {
77353	//     "$ref": "Operation"
77354	//   },
77355	//   "scopes": [
77356	//     "https://www.googleapis.com/auth/cloud-platform",
77357	//     "https://www.googleapis.com/auth/compute"
77358	//   ]
77359	// }
77360
77361}
77362
77363// method id "compute.images.testIamPermissions":
77364
77365type ImagesTestIamPermissionsCall struct {
77366	s                      *Service
77367	project                string
77368	resource               string
77369	testpermissionsrequest *TestPermissionsRequest
77370	urlParams_             gensupport.URLParams
77371	ctx_                   context.Context
77372	header_                http.Header
77373}
77374
77375// TestIamPermissions: Returns permissions that a caller has on the
77376// specified resource.
77377func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
77378	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77379	c.project = project
77380	c.resource = resource
77381	c.testpermissionsrequest = testpermissionsrequest
77382	return c
77383}
77384
77385// Fields allows partial responses to be retrieved. See
77386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77387// for more information.
77388func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
77389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77390	return c
77391}
77392
77393// Context sets the context to be used in this call's Do method. Any
77394// pending HTTP request will be aborted if the provided context is
77395// canceled.
77396func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
77397	c.ctx_ = ctx
77398	return c
77399}
77400
77401// Header returns an http.Header that can be modified by the caller to
77402// add HTTP headers to the request.
77403func (c *ImagesTestIamPermissionsCall) Header() http.Header {
77404	if c.header_ == nil {
77405		c.header_ = make(http.Header)
77406	}
77407	return c.header_
77408}
77409
77410func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
77411	reqHeaders := make(http.Header)
77412	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
77413	for k, v := range c.header_ {
77414		reqHeaders[k] = v
77415	}
77416	reqHeaders.Set("User-Agent", c.s.userAgent())
77417	var body io.Reader = nil
77418	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
77419	if err != nil {
77420		return nil, err
77421	}
77422	reqHeaders.Set("Content-Type", "application/json")
77423	c.urlParams_.Set("alt", alt)
77424	c.urlParams_.Set("prettyPrint", "false")
77425	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/testIamPermissions")
77426	urls += "?" + c.urlParams_.Encode()
77427	req, err := http.NewRequest("POST", urls, body)
77428	if err != nil {
77429		return nil, err
77430	}
77431	req.Header = reqHeaders
77432	googleapi.Expand(req.URL, map[string]string{
77433		"project":  c.project,
77434		"resource": c.resource,
77435	})
77436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77437}
77438
77439// Do executes the "compute.images.testIamPermissions" call.
77440// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
77441// non-2xx status code is an error. Response headers are in either
77442// *TestPermissionsResponse.ServerResponse.Header or (if a response was
77443// returned at all) in error.(*googleapi.Error).Header. Use
77444// googleapi.IsNotModified to check whether the returned error was
77445// because http.StatusNotModified was returned.
77446func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
77447	gensupport.SetOptions(c.urlParams_, opts...)
77448	res, err := c.doRequest("json")
77449	if res != nil && res.StatusCode == http.StatusNotModified {
77450		if res.Body != nil {
77451			res.Body.Close()
77452		}
77453		return nil, &googleapi.Error{
77454			Code:   res.StatusCode,
77455			Header: res.Header,
77456		}
77457	}
77458	if err != nil {
77459		return nil, err
77460	}
77461	defer googleapi.CloseBody(res)
77462	if err := googleapi.CheckResponse(res); err != nil {
77463		return nil, err
77464	}
77465	ret := &TestPermissionsResponse{
77466		ServerResponse: googleapi.ServerResponse{
77467			Header:         res.Header,
77468			HTTPStatusCode: res.StatusCode,
77469		},
77470	}
77471	target := &ret
77472	if err := gensupport.DecodeResponse(target, res); err != nil {
77473		return nil, err
77474	}
77475	return ret, nil
77476	// {
77477	//   "description": "Returns permissions that a caller has on the specified resource.",
77478	//   "httpMethod": "POST",
77479	//   "id": "compute.images.testIamPermissions",
77480	//   "parameterOrder": [
77481	//     "project",
77482	//     "resource"
77483	//   ],
77484	//   "parameters": {
77485	//     "project": {
77486	//       "description": "Project ID for this request.",
77487	//       "location": "path",
77488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77489	//       "required": true,
77490	//       "type": "string"
77491	//     },
77492	//     "resource": {
77493	//       "description": "Name or id of the resource for this request.",
77494	//       "location": "path",
77495	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77496	//       "required": true,
77497	//       "type": "string"
77498	//     }
77499	//   },
77500	//   "path": "{project}/global/images/{resource}/testIamPermissions",
77501	//   "request": {
77502	//     "$ref": "TestPermissionsRequest"
77503	//   },
77504	//   "response": {
77505	//     "$ref": "TestPermissionsResponse"
77506	//   },
77507	//   "scopes": [
77508	//     "https://www.googleapis.com/auth/cloud-platform",
77509	//     "https://www.googleapis.com/auth/compute",
77510	//     "https://www.googleapis.com/auth/compute.readonly"
77511	//   ]
77512	// }
77513
77514}
77515
77516// method id "compute.instanceGroupManagers.abandonInstances":
77517
77518type InstanceGroupManagersAbandonInstancesCall struct {
77519	s                                            *Service
77520	project                                      string
77521	zone                                         string
77522	instanceGroupManager                         string
77523	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
77524	urlParams_                                   gensupport.URLParams
77525	ctx_                                         context.Context
77526	header_                                      http.Header
77527}
77528
77529// AbandonInstances: Flags the specified instances to be removed from
77530// the managed instance group. Abandoning an instance does not delete
77531// the instance, but it does remove the instance from any target pools
77532// that are applied by the managed instance group. This method reduces
77533// the targetSize of the managed instance group by the number of
77534// instances that you abandon. This operation is marked as DONE when the
77535// action is scheduled even if the instances have not yet been removed
77536// from the group. You must separately verify the status of the
77537// abandoning action with the listmanagedinstances method.
77538//
77539// If the group is part of a backend service that has enabled connection
77540// draining, it can take up to 60 seconds after the connection draining
77541// duration has elapsed before the VM instance is removed or
77542// deleted.
77543//
77544// You can specify a maximum of 1000 instances with this method per
77545// request.
77546func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
77547	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77548	c.project = project
77549	c.zone = zone
77550	c.instanceGroupManager = instanceGroupManager
77551	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
77552	return c
77553}
77554
77555// RequestId sets the optional parameter "requestId": An optional
77556// request ID to identify requests. Specify a unique request ID so that
77557// if you must retry your request, the server will know to ignore the
77558// request if it has already been completed.
77559//
77560// For example, consider a situation where you make an initial request
77561// and the request times out. If you make the request again with the
77562// same request ID, the server can check if original operation with the
77563// same request ID was received, and if so, will ignore the second
77564// request. This prevents clients from accidentally creating duplicate
77565// commitments.
77566//
77567// The request ID must be a valid UUID with the exception that zero UUID
77568// is not supported (00000000-0000-0000-0000-000000000000).
77569func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
77570	c.urlParams_.Set("requestId", requestId)
77571	return c
77572}
77573
77574// Fields allows partial responses to be retrieved. See
77575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77576// for more information.
77577func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
77578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77579	return c
77580}
77581
77582// Context sets the context to be used in this call's Do method. Any
77583// pending HTTP request will be aborted if the provided context is
77584// canceled.
77585func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
77586	c.ctx_ = ctx
77587	return c
77588}
77589
77590// Header returns an http.Header that can be modified by the caller to
77591// add HTTP headers to the request.
77592func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
77593	if c.header_ == nil {
77594		c.header_ = make(http.Header)
77595	}
77596	return c.header_
77597}
77598
77599func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
77600	reqHeaders := make(http.Header)
77601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
77602	for k, v := range c.header_ {
77603		reqHeaders[k] = v
77604	}
77605	reqHeaders.Set("User-Agent", c.s.userAgent())
77606	var body io.Reader = nil
77607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
77608	if err != nil {
77609		return nil, err
77610	}
77611	reqHeaders.Set("Content-Type", "application/json")
77612	c.urlParams_.Set("alt", alt)
77613	c.urlParams_.Set("prettyPrint", "false")
77614	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
77615	urls += "?" + c.urlParams_.Encode()
77616	req, err := http.NewRequest("POST", urls, body)
77617	if err != nil {
77618		return nil, err
77619	}
77620	req.Header = reqHeaders
77621	googleapi.Expand(req.URL, map[string]string{
77622		"project":              c.project,
77623		"zone":                 c.zone,
77624		"instanceGroupManager": c.instanceGroupManager,
77625	})
77626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77627}
77628
77629// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
77630// Exactly one of *Operation or error will be non-nil. Any non-2xx
77631// status code is an error. Response headers are in either
77632// *Operation.ServerResponse.Header or (if a response was returned at
77633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77634// to check whether the returned error was because
77635// http.StatusNotModified was returned.
77636func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77637	gensupport.SetOptions(c.urlParams_, opts...)
77638	res, err := c.doRequest("json")
77639	if res != nil && res.StatusCode == http.StatusNotModified {
77640		if res.Body != nil {
77641			res.Body.Close()
77642		}
77643		return nil, &googleapi.Error{
77644			Code:   res.StatusCode,
77645			Header: res.Header,
77646		}
77647	}
77648	if err != nil {
77649		return nil, err
77650	}
77651	defer googleapi.CloseBody(res)
77652	if err := googleapi.CheckResponse(res); err != nil {
77653		return nil, err
77654	}
77655	ret := &Operation{
77656		ServerResponse: googleapi.ServerResponse{
77657			Header:         res.Header,
77658			HTTPStatusCode: res.StatusCode,
77659		},
77660	}
77661	target := &ret
77662	if err := gensupport.DecodeResponse(target, res); err != nil {
77663		return nil, err
77664	}
77665	return ret, nil
77666	// {
77667	//   "description": "Flags the specified instances to be removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
77668	//   "httpMethod": "POST",
77669	//   "id": "compute.instanceGroupManagers.abandonInstances",
77670	//   "parameterOrder": [
77671	//     "project",
77672	//     "zone",
77673	//     "instanceGroupManager"
77674	//   ],
77675	//   "parameters": {
77676	//     "instanceGroupManager": {
77677	//       "description": "The name of the managed instance group.",
77678	//       "location": "path",
77679	//       "required": true,
77680	//       "type": "string"
77681	//     },
77682	//     "project": {
77683	//       "description": "Project ID for this request.",
77684	//       "location": "path",
77685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77686	//       "required": true,
77687	//       "type": "string"
77688	//     },
77689	//     "requestId": {
77690	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77691	//       "location": "query",
77692	//       "type": "string"
77693	//     },
77694	//     "zone": {
77695	//       "description": "The name of the zone where the managed instance group is located.",
77696	//       "location": "path",
77697	//       "required": true,
77698	//       "type": "string"
77699	//     }
77700	//   },
77701	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
77702	//   "request": {
77703	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
77704	//   },
77705	//   "response": {
77706	//     "$ref": "Operation"
77707	//   },
77708	//   "scopes": [
77709	//     "https://www.googleapis.com/auth/cloud-platform",
77710	//     "https://www.googleapis.com/auth/compute"
77711	//   ]
77712	// }
77713
77714}
77715
77716// method id "compute.instanceGroupManagers.aggregatedList":
77717
77718type InstanceGroupManagersAggregatedListCall struct {
77719	s            *Service
77720	project      string
77721	urlParams_   gensupport.URLParams
77722	ifNoneMatch_ string
77723	ctx_         context.Context
77724	header_      http.Header
77725}
77726
77727// AggregatedList: Retrieves the list of managed instance groups and
77728// groups them by zone.
77729func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
77730	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77731	c.project = project
77732	return c
77733}
77734
77735// Filter sets the optional parameter "filter": A filter expression that
77736// filters resources listed in the response. The expression must specify
77737// the field name, a comparison operator, and the value that you want to
77738// use for filtering. The value must be a string, a number, or a
77739// boolean. The comparison operator must be either `=`, `!=`, `>`, or
77740// `<`.
77741//
77742// For example, if you are filtering Compute Engine instances, you can
77743// exclude instances named `example-instance` by specifying `name !=
77744// example-instance`.
77745//
77746// You can also filter nested fields. For example, you could specify
77747// `scheduling.automaticRestart = false` to include instances only if
77748// they are not scheduled for automatic restarts. You can use filtering
77749// on nested fields to filter based on resource labels.
77750//
77751// To filter on multiple expressions, provide each separate expression
77752// within parentheses. For example: ``` (scheduling.automaticRestart =
77753// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
77754// is an `AND` expression. However, you can include `AND` and `OR`
77755// expressions explicitly. For example: ``` (cpuPlatform = "Intel
77756// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
77757// (scheduling.automaticRestart = true) ```
77758func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
77759	c.urlParams_.Set("filter", filter)
77760	return c
77761}
77762
77763// IncludeAllScopes sets the optional parameter "includeAllScopes":
77764// Indicates whether every visible scope for each scope type (zone,
77765// region, global) should be included in the response. For new resource
77766// types added after this field, the flag has no effect as new resource
77767// types will always include every visible scope for each scope type in
77768// response. For resource types which predate this field, if this flag
77769// is omitted or false, only scopes of the scope types where the
77770// resource type is expected to be found will be included.
77771func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
77772	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
77773	return c
77774}
77775
77776// MaxResults sets the optional parameter "maxResults": The maximum
77777// number of results per page that should be returned. If the number of
77778// available results is larger than `maxResults`, Compute Engine returns
77779// a `nextPageToken` that can be used to get the next page of results in
77780// subsequent list requests. Acceptable values are `0` to `500`,
77781// inclusive. (Default: `500`)
77782func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
77783	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77784	return c
77785}
77786
77787// OrderBy sets the optional parameter "orderBy": Sorts list results by
77788// a certain order. By default, results are returned in alphanumerical
77789// order based on the resource name.
77790//
77791// You can also sort results in descending order based on the creation
77792// timestamp using `orderBy="creationTimestamp desc". This sorts
77793// results based on the `creationTimestamp` field in reverse
77794// chronological order (newest result first). Use this to sort resources
77795// like operations so that the newest operation is returned
77796// first.
77797//
77798// Currently, only sorting by `name` or `creationTimestamp desc` is
77799// supported.
77800func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
77801	c.urlParams_.Set("orderBy", orderBy)
77802	return c
77803}
77804
77805// PageToken sets the optional parameter "pageToken": Specifies a page
77806// token to use. Set `pageToken` to the `nextPageToken` returned by a
77807// previous list request to get the next page of results.
77808func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
77809	c.urlParams_.Set("pageToken", pageToken)
77810	return c
77811}
77812
77813// ReturnPartialSuccess sets the optional parameter
77814// "returnPartialSuccess": Opt-in for partial success behavior which
77815// provides partial results in case of failure. The default value is
77816// false and the logic is the same as today.
77817func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall {
77818	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
77819	return c
77820}
77821
77822// Fields allows partial responses to be retrieved. See
77823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77824// for more information.
77825func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
77826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77827	return c
77828}
77829
77830// IfNoneMatch sets the optional parameter which makes the operation
77831// fail if the object's ETag matches the given value. This is useful for
77832// getting updates only after the object has changed since the last
77833// request. Use googleapi.IsNotModified to check whether the response
77834// error from Do is the result of In-None-Match.
77835func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
77836	c.ifNoneMatch_ = entityTag
77837	return c
77838}
77839
77840// Context sets the context to be used in this call's Do method. Any
77841// pending HTTP request will be aborted if the provided context is
77842// canceled.
77843func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
77844	c.ctx_ = ctx
77845	return c
77846}
77847
77848// Header returns an http.Header that can be modified by the caller to
77849// add HTTP headers to the request.
77850func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
77851	if c.header_ == nil {
77852		c.header_ = make(http.Header)
77853	}
77854	return c.header_
77855}
77856
77857func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
77858	reqHeaders := make(http.Header)
77859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
77860	for k, v := range c.header_ {
77861		reqHeaders[k] = v
77862	}
77863	reqHeaders.Set("User-Agent", c.s.userAgent())
77864	if c.ifNoneMatch_ != "" {
77865		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77866	}
77867	var body io.Reader = nil
77868	c.urlParams_.Set("alt", alt)
77869	c.urlParams_.Set("prettyPrint", "false")
77870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
77871	urls += "?" + c.urlParams_.Encode()
77872	req, err := http.NewRequest("GET", urls, body)
77873	if err != nil {
77874		return nil, err
77875	}
77876	req.Header = reqHeaders
77877	googleapi.Expand(req.URL, map[string]string{
77878		"project": c.project,
77879	})
77880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77881}
77882
77883// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
77884// Exactly one of *InstanceGroupManagerAggregatedList or error will be
77885// non-nil. Any non-2xx status code is an error. Response headers are in
77886// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
77887// (if a response was returned at all) in
77888// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
77889// whether the returned error was because http.StatusNotModified was
77890// returned.
77891func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
77892	gensupport.SetOptions(c.urlParams_, opts...)
77893	res, err := c.doRequest("json")
77894	if res != nil && res.StatusCode == http.StatusNotModified {
77895		if res.Body != nil {
77896			res.Body.Close()
77897		}
77898		return nil, &googleapi.Error{
77899			Code:   res.StatusCode,
77900			Header: res.Header,
77901		}
77902	}
77903	if err != nil {
77904		return nil, err
77905	}
77906	defer googleapi.CloseBody(res)
77907	if err := googleapi.CheckResponse(res); err != nil {
77908		return nil, err
77909	}
77910	ret := &InstanceGroupManagerAggregatedList{
77911		ServerResponse: googleapi.ServerResponse{
77912			Header:         res.Header,
77913			HTTPStatusCode: res.StatusCode,
77914		},
77915	}
77916	target := &ret
77917	if err := gensupport.DecodeResponse(target, res); err != nil {
77918		return nil, err
77919	}
77920	return ret, nil
77921	// {
77922	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
77923	//   "httpMethod": "GET",
77924	//   "id": "compute.instanceGroupManagers.aggregatedList",
77925	//   "parameterOrder": [
77926	//     "project"
77927	//   ],
77928	//   "parameters": {
77929	//     "filter": {
77930	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
77931	//       "location": "query",
77932	//       "type": "string"
77933	//     },
77934	//     "includeAllScopes": {
77935	//       "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.",
77936	//       "location": "query",
77937	//       "type": "boolean"
77938	//     },
77939	//     "maxResults": {
77940	//       "default": "500",
77941	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
77942	//       "format": "uint32",
77943	//       "location": "query",
77944	//       "minimum": "0",
77945	//       "type": "integer"
77946	//     },
77947	//     "orderBy": {
77948	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
77949	//       "location": "query",
77950	//       "type": "string"
77951	//     },
77952	//     "pageToken": {
77953	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
77954	//       "location": "query",
77955	//       "type": "string"
77956	//     },
77957	//     "project": {
77958	//       "description": "Project ID for this request.",
77959	//       "location": "path",
77960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77961	//       "required": true,
77962	//       "type": "string"
77963	//     },
77964	//     "returnPartialSuccess": {
77965	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
77966	//       "location": "query",
77967	//       "type": "boolean"
77968	//     }
77969	//   },
77970	//   "path": "{project}/aggregated/instanceGroupManagers",
77971	//   "response": {
77972	//     "$ref": "InstanceGroupManagerAggregatedList"
77973	//   },
77974	//   "scopes": [
77975	//     "https://www.googleapis.com/auth/cloud-platform",
77976	//     "https://www.googleapis.com/auth/compute",
77977	//     "https://www.googleapis.com/auth/compute.readonly"
77978	//   ]
77979	// }
77980
77981}
77982
77983// Pages invokes f for each page of results.
77984// A non-nil error returned from f will halt the iteration.
77985// The provided context supersedes any context provided to the Context method.
77986func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
77987	c.ctx_ = ctx
77988	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77989	for {
77990		x, err := c.Do()
77991		if err != nil {
77992			return err
77993		}
77994		if err := f(x); err != nil {
77995			return err
77996		}
77997		if x.NextPageToken == "" {
77998			return nil
77999		}
78000		c.PageToken(x.NextPageToken)
78001	}
78002}
78003
78004// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
78005
78006type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
78007	s                                        *Service
78008	project                                  string
78009	zone                                     string
78010	instanceGroupManager                     string
78011	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
78012	urlParams_                               gensupport.URLParams
78013	ctx_                                     context.Context
78014	header_                                  http.Header
78015}
78016
78017// ApplyUpdatesToInstances: Applies changes to selected instances on the
78018// managed instance group. This method can be used to apply new
78019// overrides and/or new versions.
78020func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
78021	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78022	c.project = project
78023	c.zone = zone
78024	c.instanceGroupManager = instanceGroupManager
78025	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
78026	return c
78027}
78028
78029// Fields allows partial responses to be retrieved. See
78030// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78031// for more information.
78032func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
78033	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78034	return c
78035}
78036
78037// Context sets the context to be used in this call's Do method. Any
78038// pending HTTP request will be aborted if the provided context is
78039// canceled.
78040func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
78041	c.ctx_ = ctx
78042	return c
78043}
78044
78045// Header returns an http.Header that can be modified by the caller to
78046// add HTTP headers to the request.
78047func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
78048	if c.header_ == nil {
78049		c.header_ = make(http.Header)
78050	}
78051	return c.header_
78052}
78053
78054func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
78055	reqHeaders := make(http.Header)
78056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
78057	for k, v := range c.header_ {
78058		reqHeaders[k] = v
78059	}
78060	reqHeaders.Set("User-Agent", c.s.userAgent())
78061	var body io.Reader = nil
78062	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
78063	if err != nil {
78064		return nil, err
78065	}
78066	reqHeaders.Set("Content-Type", "application/json")
78067	c.urlParams_.Set("alt", alt)
78068	c.urlParams_.Set("prettyPrint", "false")
78069	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
78070	urls += "?" + c.urlParams_.Encode()
78071	req, err := http.NewRequest("POST", urls, body)
78072	if err != nil {
78073		return nil, err
78074	}
78075	req.Header = reqHeaders
78076	googleapi.Expand(req.URL, map[string]string{
78077		"project":              c.project,
78078		"zone":                 c.zone,
78079		"instanceGroupManager": c.instanceGroupManager,
78080	})
78081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78082}
78083
78084// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
78085// Exactly one of *Operation or error will be non-nil. Any non-2xx
78086// status code is an error. Response headers are in either
78087// *Operation.ServerResponse.Header or (if a response was returned at
78088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78089// to check whether the returned error was because
78090// http.StatusNotModified was returned.
78091func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78092	gensupport.SetOptions(c.urlParams_, opts...)
78093	res, err := c.doRequest("json")
78094	if res != nil && res.StatusCode == http.StatusNotModified {
78095		if res.Body != nil {
78096			res.Body.Close()
78097		}
78098		return nil, &googleapi.Error{
78099			Code:   res.StatusCode,
78100			Header: res.Header,
78101		}
78102	}
78103	if err != nil {
78104		return nil, err
78105	}
78106	defer googleapi.CloseBody(res)
78107	if err := googleapi.CheckResponse(res); err != nil {
78108		return nil, err
78109	}
78110	ret := &Operation{
78111		ServerResponse: googleapi.ServerResponse{
78112			Header:         res.Header,
78113			HTTPStatusCode: res.StatusCode,
78114		},
78115	}
78116	target := &ret
78117	if err := gensupport.DecodeResponse(target, res); err != nil {
78118		return nil, err
78119	}
78120	return ret, nil
78121	// {
78122	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
78123	//   "httpMethod": "POST",
78124	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
78125	//   "parameterOrder": [
78126	//     "project",
78127	//     "zone",
78128	//     "instanceGroupManager"
78129	//   ],
78130	//   "parameters": {
78131	//     "instanceGroupManager": {
78132	//       "description": "The name of the managed instance group, should conform to RFC1035.",
78133	//       "location": "path",
78134	//       "required": true,
78135	//       "type": "string"
78136	//     },
78137	//     "project": {
78138	//       "description": "Project ID for this request.",
78139	//       "location": "path",
78140	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78141	//       "required": true,
78142	//       "type": "string"
78143	//     },
78144	//     "zone": {
78145	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
78146	//       "location": "path",
78147	//       "required": true,
78148	//       "type": "string"
78149	//     }
78150	//   },
78151	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
78152	//   "request": {
78153	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
78154	//   },
78155	//   "response": {
78156	//     "$ref": "Operation"
78157	//   },
78158	//   "scopes": [
78159	//     "https://www.googleapis.com/auth/cloud-platform",
78160	//     "https://www.googleapis.com/auth/compute"
78161	//   ]
78162	// }
78163
78164}
78165
78166// method id "compute.instanceGroupManagers.createInstances":
78167
78168type InstanceGroupManagersCreateInstancesCall struct {
78169	s                                           *Service
78170	project                                     string
78171	zone                                        string
78172	instanceGroupManager                        string
78173	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
78174	urlParams_                                  gensupport.URLParams
78175	ctx_                                        context.Context
78176	header_                                     http.Header
78177}
78178
78179// CreateInstances: Creates instances with per-instance configs in this
78180// managed instance group. Instances are created using the current
78181// instance template. The create instances operation is marked DONE if
78182// the createInstances request is successful. The underlying actions
78183// take additional time. You must separately verify the status of the
78184// creating or actions with the listmanagedinstances method.
78185func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
78186	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78187	c.project = project
78188	c.zone = zone
78189	c.instanceGroupManager = instanceGroupManager
78190	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
78191	return c
78192}
78193
78194// RequestId sets the optional parameter "requestId": An optional
78195// request ID to identify requests. Specify a unique request ID so that
78196// if you must retry your request, the server will know to ignore the
78197// request if it has already been completed.
78198//
78199// For example, consider a situation where you make an initial request
78200// and the request times out. If you make the request again with the
78201// same request ID, the server can check if original operation with the
78202// same request ID was received, and if so, will ignore the second
78203// request.
78204//
78205// The request ID must be a valid UUID with the exception that zero UUID
78206// is not supported (00000000-0000-0000-0000-000000000000).
78207func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
78208	c.urlParams_.Set("requestId", requestId)
78209	return c
78210}
78211
78212// Fields allows partial responses to be retrieved. See
78213// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78214// for more information.
78215func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
78216	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78217	return c
78218}
78219
78220// Context sets the context to be used in this call's Do method. Any
78221// pending HTTP request will be aborted if the provided context is
78222// canceled.
78223func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
78224	c.ctx_ = ctx
78225	return c
78226}
78227
78228// Header returns an http.Header that can be modified by the caller to
78229// add HTTP headers to the request.
78230func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
78231	if c.header_ == nil {
78232		c.header_ = make(http.Header)
78233	}
78234	return c.header_
78235}
78236
78237func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
78238	reqHeaders := make(http.Header)
78239	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
78240	for k, v := range c.header_ {
78241		reqHeaders[k] = v
78242	}
78243	reqHeaders.Set("User-Agent", c.s.userAgent())
78244	var body io.Reader = nil
78245	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
78246	if err != nil {
78247		return nil, err
78248	}
78249	reqHeaders.Set("Content-Type", "application/json")
78250	c.urlParams_.Set("alt", alt)
78251	c.urlParams_.Set("prettyPrint", "false")
78252	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
78253	urls += "?" + c.urlParams_.Encode()
78254	req, err := http.NewRequest("POST", urls, body)
78255	if err != nil {
78256		return nil, err
78257	}
78258	req.Header = reqHeaders
78259	googleapi.Expand(req.URL, map[string]string{
78260		"project":              c.project,
78261		"zone":                 c.zone,
78262		"instanceGroupManager": c.instanceGroupManager,
78263	})
78264	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78265}
78266
78267// Do executes the "compute.instanceGroupManagers.createInstances" call.
78268// Exactly one of *Operation or error will be non-nil. Any non-2xx
78269// status code is an error. Response headers are in either
78270// *Operation.ServerResponse.Header or (if a response was returned at
78271// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78272// to check whether the returned error was because
78273// http.StatusNotModified was returned.
78274func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78275	gensupport.SetOptions(c.urlParams_, opts...)
78276	res, err := c.doRequest("json")
78277	if res != nil && res.StatusCode == http.StatusNotModified {
78278		if res.Body != nil {
78279			res.Body.Close()
78280		}
78281		return nil, &googleapi.Error{
78282			Code:   res.StatusCode,
78283			Header: res.Header,
78284		}
78285	}
78286	if err != nil {
78287		return nil, err
78288	}
78289	defer googleapi.CloseBody(res)
78290	if err := googleapi.CheckResponse(res); err != nil {
78291		return nil, err
78292	}
78293	ret := &Operation{
78294		ServerResponse: googleapi.ServerResponse{
78295			Header:         res.Header,
78296			HTTPStatusCode: res.StatusCode,
78297		},
78298	}
78299	target := &ret
78300	if err := gensupport.DecodeResponse(target, res); err != nil {
78301		return nil, err
78302	}
78303	return ret, nil
78304	// {
78305	//   "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.",
78306	//   "httpMethod": "POST",
78307	//   "id": "compute.instanceGroupManagers.createInstances",
78308	//   "parameterOrder": [
78309	//     "project",
78310	//     "zone",
78311	//     "instanceGroupManager"
78312	//   ],
78313	//   "parameters": {
78314	//     "instanceGroupManager": {
78315	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
78316	//       "location": "path",
78317	//       "required": true,
78318	//       "type": "string"
78319	//     },
78320	//     "project": {
78321	//       "description": "Project ID for this request.",
78322	//       "location": "path",
78323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78324	//       "required": true,
78325	//       "type": "string"
78326	//     },
78327	//     "requestId": {
78328	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78329	//       "location": "query",
78330	//       "type": "string"
78331	//     },
78332	//     "zone": {
78333	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
78334	//       "location": "path",
78335	//       "required": true,
78336	//       "type": "string"
78337	//     }
78338	//   },
78339	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
78340	//   "request": {
78341	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
78342	//   },
78343	//   "response": {
78344	//     "$ref": "Operation"
78345	//   },
78346	//   "scopes": [
78347	//     "https://www.googleapis.com/auth/cloud-platform",
78348	//     "https://www.googleapis.com/auth/compute"
78349	//   ]
78350	// }
78351
78352}
78353
78354// method id "compute.instanceGroupManagers.delete":
78355
78356type InstanceGroupManagersDeleteCall struct {
78357	s                    *Service
78358	project              string
78359	zone                 string
78360	instanceGroupManager string
78361	urlParams_           gensupport.URLParams
78362	ctx_                 context.Context
78363	header_              http.Header
78364}
78365
78366// Delete: Deletes the specified managed instance group and all of the
78367// instances in that group. Note that the instance group must not belong
78368// to a backend service. Read  Deleting an instance group for more
78369// information.
78370func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
78371	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78372	c.project = project
78373	c.zone = zone
78374	c.instanceGroupManager = instanceGroupManager
78375	return c
78376}
78377
78378// RequestId sets the optional parameter "requestId": An optional
78379// request ID to identify requests. Specify a unique request ID so that
78380// if you must retry your request, the server will know to ignore the
78381// request if it has already been completed.
78382//
78383// For example, consider a situation where you make an initial request
78384// and the request times out. If you make the request again with the
78385// same request ID, the server can check if original operation with the
78386// same request ID was received, and if so, will ignore the second
78387// request. This prevents clients from accidentally creating duplicate
78388// commitments.
78389//
78390// The request ID must be a valid UUID with the exception that zero UUID
78391// is not supported (00000000-0000-0000-0000-000000000000).
78392func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
78393	c.urlParams_.Set("requestId", requestId)
78394	return c
78395}
78396
78397// Fields allows partial responses to be retrieved. See
78398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78399// for more information.
78400func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
78401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78402	return c
78403}
78404
78405// Context sets the context to be used in this call's Do method. Any
78406// pending HTTP request will be aborted if the provided context is
78407// canceled.
78408func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
78409	c.ctx_ = ctx
78410	return c
78411}
78412
78413// Header returns an http.Header that can be modified by the caller to
78414// add HTTP headers to the request.
78415func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
78416	if c.header_ == nil {
78417		c.header_ = make(http.Header)
78418	}
78419	return c.header_
78420}
78421
78422func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
78423	reqHeaders := make(http.Header)
78424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
78425	for k, v := range c.header_ {
78426		reqHeaders[k] = v
78427	}
78428	reqHeaders.Set("User-Agent", c.s.userAgent())
78429	var body io.Reader = nil
78430	c.urlParams_.Set("alt", alt)
78431	c.urlParams_.Set("prettyPrint", "false")
78432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
78433	urls += "?" + c.urlParams_.Encode()
78434	req, err := http.NewRequest("DELETE", urls, body)
78435	if err != nil {
78436		return nil, err
78437	}
78438	req.Header = reqHeaders
78439	googleapi.Expand(req.URL, map[string]string{
78440		"project":              c.project,
78441		"zone":                 c.zone,
78442		"instanceGroupManager": c.instanceGroupManager,
78443	})
78444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78445}
78446
78447// Do executes the "compute.instanceGroupManagers.delete" call.
78448// Exactly one of *Operation or error will be non-nil. Any non-2xx
78449// status code is an error. Response headers are in either
78450// *Operation.ServerResponse.Header or (if a response was returned at
78451// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78452// to check whether the returned error was because
78453// http.StatusNotModified was returned.
78454func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78455	gensupport.SetOptions(c.urlParams_, opts...)
78456	res, err := c.doRequest("json")
78457	if res != nil && res.StatusCode == http.StatusNotModified {
78458		if res.Body != nil {
78459			res.Body.Close()
78460		}
78461		return nil, &googleapi.Error{
78462			Code:   res.StatusCode,
78463			Header: res.Header,
78464		}
78465	}
78466	if err != nil {
78467		return nil, err
78468	}
78469	defer googleapi.CloseBody(res)
78470	if err := googleapi.CheckResponse(res); err != nil {
78471		return nil, err
78472	}
78473	ret := &Operation{
78474		ServerResponse: googleapi.ServerResponse{
78475			Header:         res.Header,
78476			HTTPStatusCode: res.StatusCode,
78477		},
78478	}
78479	target := &ret
78480	if err := gensupport.DecodeResponse(target, res); err != nil {
78481		return nil, err
78482	}
78483	return ret, nil
78484	// {
78485	//   "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.",
78486	//   "httpMethod": "DELETE",
78487	//   "id": "compute.instanceGroupManagers.delete",
78488	//   "parameterOrder": [
78489	//     "project",
78490	//     "zone",
78491	//     "instanceGroupManager"
78492	//   ],
78493	//   "parameters": {
78494	//     "instanceGroupManager": {
78495	//       "description": "The name of the managed instance group to delete.",
78496	//       "location": "path",
78497	//       "required": true,
78498	//       "type": "string"
78499	//     },
78500	//     "project": {
78501	//       "description": "Project ID for this request.",
78502	//       "location": "path",
78503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78504	//       "required": true,
78505	//       "type": "string"
78506	//     },
78507	//     "requestId": {
78508	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78509	//       "location": "query",
78510	//       "type": "string"
78511	//     },
78512	//     "zone": {
78513	//       "description": "The name of the zone where the managed instance group is located.",
78514	//       "location": "path",
78515	//       "required": true,
78516	//       "type": "string"
78517	//     }
78518	//   },
78519	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
78520	//   "response": {
78521	//     "$ref": "Operation"
78522	//   },
78523	//   "scopes": [
78524	//     "https://www.googleapis.com/auth/cloud-platform",
78525	//     "https://www.googleapis.com/auth/compute"
78526	//   ]
78527	// }
78528
78529}
78530
78531// method id "compute.instanceGroupManagers.deleteInstances":
78532
78533type InstanceGroupManagersDeleteInstancesCall struct {
78534	s                                           *Service
78535	project                                     string
78536	zone                                        string
78537	instanceGroupManager                        string
78538	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
78539	urlParams_                                  gensupport.URLParams
78540	ctx_                                        context.Context
78541	header_                                     http.Header
78542}
78543
78544// DeleteInstances: Flags the specified instances in the managed
78545// instance group for immediate deletion. The instances are also removed
78546// from any target pools of which they were a member. This method
78547// reduces the targetSize of the managed instance group by the number of
78548// instances that you delete. This operation is marked as DONE when the
78549// action is scheduled even if the instances are still being deleted.
78550// You must separately verify the status of the deleting action with the
78551// listmanagedinstances method.
78552//
78553// If the group is part of a backend service that has enabled connection
78554// draining, it can take up to 60 seconds after the connection draining
78555// duration has elapsed before the VM instance is removed or
78556// deleted.
78557//
78558// You can specify a maximum of 1000 instances with this method per
78559// request.
78560func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
78561	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78562	c.project = project
78563	c.zone = zone
78564	c.instanceGroupManager = instanceGroupManager
78565	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
78566	return c
78567}
78568
78569// RequestId sets the optional parameter "requestId": An optional
78570// request ID to identify requests. Specify a unique request ID so that
78571// if you must retry your request, the server will know to ignore the
78572// request if it has already been completed.
78573//
78574// For example, consider a situation where you make an initial request
78575// and the request times out. If you make the request again with the
78576// same request ID, the server can check if original operation with the
78577// same request ID was received, and if so, will ignore the second
78578// request. This prevents clients from accidentally creating duplicate
78579// commitments.
78580//
78581// The request ID must be a valid UUID with the exception that zero UUID
78582// is not supported (00000000-0000-0000-0000-000000000000).
78583func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
78584	c.urlParams_.Set("requestId", requestId)
78585	return c
78586}
78587
78588// Fields allows partial responses to be retrieved. See
78589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78590// for more information.
78591func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
78592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78593	return c
78594}
78595
78596// Context sets the context to be used in this call's Do method. Any
78597// pending HTTP request will be aborted if the provided context is
78598// canceled.
78599func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
78600	c.ctx_ = ctx
78601	return c
78602}
78603
78604// Header returns an http.Header that can be modified by the caller to
78605// add HTTP headers to the request.
78606func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
78607	if c.header_ == nil {
78608		c.header_ = make(http.Header)
78609	}
78610	return c.header_
78611}
78612
78613func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
78614	reqHeaders := make(http.Header)
78615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
78616	for k, v := range c.header_ {
78617		reqHeaders[k] = v
78618	}
78619	reqHeaders.Set("User-Agent", c.s.userAgent())
78620	var body io.Reader = nil
78621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
78622	if err != nil {
78623		return nil, err
78624	}
78625	reqHeaders.Set("Content-Type", "application/json")
78626	c.urlParams_.Set("alt", alt)
78627	c.urlParams_.Set("prettyPrint", "false")
78628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
78629	urls += "?" + c.urlParams_.Encode()
78630	req, err := http.NewRequest("POST", urls, body)
78631	if err != nil {
78632		return nil, err
78633	}
78634	req.Header = reqHeaders
78635	googleapi.Expand(req.URL, map[string]string{
78636		"project":              c.project,
78637		"zone":                 c.zone,
78638		"instanceGroupManager": c.instanceGroupManager,
78639	})
78640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78641}
78642
78643// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
78644// Exactly one of *Operation or error will be non-nil. Any non-2xx
78645// status code is an error. Response headers are in either
78646// *Operation.ServerResponse.Header or (if a response was returned at
78647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78648// to check whether the returned error was because
78649// http.StatusNotModified was returned.
78650func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78651	gensupport.SetOptions(c.urlParams_, opts...)
78652	res, err := c.doRequest("json")
78653	if res != nil && res.StatusCode == http.StatusNotModified {
78654		if res.Body != nil {
78655			res.Body.Close()
78656		}
78657		return nil, &googleapi.Error{
78658			Code:   res.StatusCode,
78659			Header: res.Header,
78660		}
78661	}
78662	if err != nil {
78663		return nil, err
78664	}
78665	defer googleapi.CloseBody(res)
78666	if err := googleapi.CheckResponse(res); err != nil {
78667		return nil, err
78668	}
78669	ret := &Operation{
78670		ServerResponse: googleapi.ServerResponse{
78671			Header:         res.Header,
78672			HTTPStatusCode: res.StatusCode,
78673		},
78674	}
78675	target := &ret
78676	if err := gensupport.DecodeResponse(target, res); err != nil {
78677		return nil, err
78678	}
78679	return ret, nil
78680	// {
78681	//   "description": "Flags the specified instances in the managed instance group for immediate deletion. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
78682	//   "httpMethod": "POST",
78683	//   "id": "compute.instanceGroupManagers.deleteInstances",
78684	//   "parameterOrder": [
78685	//     "project",
78686	//     "zone",
78687	//     "instanceGroupManager"
78688	//   ],
78689	//   "parameters": {
78690	//     "instanceGroupManager": {
78691	//       "description": "The name of the managed instance group.",
78692	//       "location": "path",
78693	//       "required": true,
78694	//       "type": "string"
78695	//     },
78696	//     "project": {
78697	//       "description": "Project ID for this request.",
78698	//       "location": "path",
78699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78700	//       "required": true,
78701	//       "type": "string"
78702	//     },
78703	//     "requestId": {
78704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78705	//       "location": "query",
78706	//       "type": "string"
78707	//     },
78708	//     "zone": {
78709	//       "description": "The name of the zone where the managed instance group is located.",
78710	//       "location": "path",
78711	//       "required": true,
78712	//       "type": "string"
78713	//     }
78714	//   },
78715	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
78716	//   "request": {
78717	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
78718	//   },
78719	//   "response": {
78720	//     "$ref": "Operation"
78721	//   },
78722	//   "scopes": [
78723	//     "https://www.googleapis.com/auth/cloud-platform",
78724	//     "https://www.googleapis.com/auth/compute"
78725	//   ]
78726	// }
78727
78728}
78729
78730// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
78731
78732type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
78733	s                                                *Service
78734	project                                          string
78735	zone                                             string
78736	instanceGroupManager                             string
78737	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
78738	urlParams_                                       gensupport.URLParams
78739	ctx_                                             context.Context
78740	header_                                          http.Header
78741}
78742
78743// DeletePerInstanceConfigs: Deletes selected per-instance configs for
78744// the managed instance group.
78745func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
78746	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78747	c.project = project
78748	c.zone = zone
78749	c.instanceGroupManager = instanceGroupManager
78750	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
78751	return c
78752}
78753
78754// Fields allows partial responses to be retrieved. See
78755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78756// for more information.
78757func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
78758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78759	return c
78760}
78761
78762// Context sets the context to be used in this call's Do method. Any
78763// pending HTTP request will be aborted if the provided context is
78764// canceled.
78765func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
78766	c.ctx_ = ctx
78767	return c
78768}
78769
78770// Header returns an http.Header that can be modified by the caller to
78771// add HTTP headers to the request.
78772func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
78773	if c.header_ == nil {
78774		c.header_ = make(http.Header)
78775	}
78776	return c.header_
78777}
78778
78779func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
78780	reqHeaders := make(http.Header)
78781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
78782	for k, v := range c.header_ {
78783		reqHeaders[k] = v
78784	}
78785	reqHeaders.Set("User-Agent", c.s.userAgent())
78786	var body io.Reader = nil
78787	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
78788	if err != nil {
78789		return nil, err
78790	}
78791	reqHeaders.Set("Content-Type", "application/json")
78792	c.urlParams_.Set("alt", alt)
78793	c.urlParams_.Set("prettyPrint", "false")
78794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
78795	urls += "?" + c.urlParams_.Encode()
78796	req, err := http.NewRequest("POST", urls, body)
78797	if err != nil {
78798		return nil, err
78799	}
78800	req.Header = reqHeaders
78801	googleapi.Expand(req.URL, map[string]string{
78802		"project":              c.project,
78803		"zone":                 c.zone,
78804		"instanceGroupManager": c.instanceGroupManager,
78805	})
78806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78807}
78808
78809// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
78810// Exactly one of *Operation or error will be non-nil. Any non-2xx
78811// status code is an error. Response headers are in either
78812// *Operation.ServerResponse.Header or (if a response was returned at
78813// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78814// to check whether the returned error was because
78815// http.StatusNotModified was returned.
78816func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78817	gensupport.SetOptions(c.urlParams_, opts...)
78818	res, err := c.doRequest("json")
78819	if res != nil && res.StatusCode == http.StatusNotModified {
78820		if res.Body != nil {
78821			res.Body.Close()
78822		}
78823		return nil, &googleapi.Error{
78824			Code:   res.StatusCode,
78825			Header: res.Header,
78826		}
78827	}
78828	if err != nil {
78829		return nil, err
78830	}
78831	defer googleapi.CloseBody(res)
78832	if err := googleapi.CheckResponse(res); err != nil {
78833		return nil, err
78834	}
78835	ret := &Operation{
78836		ServerResponse: googleapi.ServerResponse{
78837			Header:         res.Header,
78838			HTTPStatusCode: res.StatusCode,
78839		},
78840	}
78841	target := &ret
78842	if err := gensupport.DecodeResponse(target, res); err != nil {
78843		return nil, err
78844	}
78845	return ret, nil
78846	// {
78847	//   "description": "Deletes selected per-instance configs for the managed instance group.",
78848	//   "httpMethod": "POST",
78849	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
78850	//   "parameterOrder": [
78851	//     "project",
78852	//     "zone",
78853	//     "instanceGroupManager"
78854	//   ],
78855	//   "parameters": {
78856	//     "instanceGroupManager": {
78857	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
78858	//       "location": "path",
78859	//       "required": true,
78860	//       "type": "string"
78861	//     },
78862	//     "project": {
78863	//       "description": "Project ID for this request.",
78864	//       "location": "path",
78865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78866	//       "required": true,
78867	//       "type": "string"
78868	//     },
78869	//     "zone": {
78870	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
78871	//       "location": "path",
78872	//       "required": true,
78873	//       "type": "string"
78874	//     }
78875	//   },
78876	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
78877	//   "request": {
78878	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
78879	//   },
78880	//   "response": {
78881	//     "$ref": "Operation"
78882	//   },
78883	//   "scopes": [
78884	//     "https://www.googleapis.com/auth/cloud-platform",
78885	//     "https://www.googleapis.com/auth/compute"
78886	//   ]
78887	// }
78888
78889}
78890
78891// method id "compute.instanceGroupManagers.get":
78892
78893type InstanceGroupManagersGetCall struct {
78894	s                    *Service
78895	project              string
78896	zone                 string
78897	instanceGroupManager string
78898	urlParams_           gensupport.URLParams
78899	ifNoneMatch_         string
78900	ctx_                 context.Context
78901	header_              http.Header
78902}
78903
78904// Get: Returns all of the details about the specified managed instance
78905// group. Gets a list of available managed instance groups by making a
78906// list() request.
78907func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
78908	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78909	c.project = project
78910	c.zone = zone
78911	c.instanceGroupManager = instanceGroupManager
78912	return c
78913}
78914
78915// Fields allows partial responses to be retrieved. See
78916// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78917// for more information.
78918func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
78919	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78920	return c
78921}
78922
78923// IfNoneMatch sets the optional parameter which makes the operation
78924// fail if the object's ETag matches the given value. This is useful for
78925// getting updates only after the object has changed since the last
78926// request. Use googleapi.IsNotModified to check whether the response
78927// error from Do is the result of In-None-Match.
78928func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
78929	c.ifNoneMatch_ = entityTag
78930	return c
78931}
78932
78933// Context sets the context to be used in this call's Do method. Any
78934// pending HTTP request will be aborted if the provided context is
78935// canceled.
78936func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
78937	c.ctx_ = ctx
78938	return c
78939}
78940
78941// Header returns an http.Header that can be modified by the caller to
78942// add HTTP headers to the request.
78943func (c *InstanceGroupManagersGetCall) Header() http.Header {
78944	if c.header_ == nil {
78945		c.header_ = make(http.Header)
78946	}
78947	return c.header_
78948}
78949
78950func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
78951	reqHeaders := make(http.Header)
78952	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
78953	for k, v := range c.header_ {
78954		reqHeaders[k] = v
78955	}
78956	reqHeaders.Set("User-Agent", c.s.userAgent())
78957	if c.ifNoneMatch_ != "" {
78958		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78959	}
78960	var body io.Reader = nil
78961	c.urlParams_.Set("alt", alt)
78962	c.urlParams_.Set("prettyPrint", "false")
78963	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
78964	urls += "?" + c.urlParams_.Encode()
78965	req, err := http.NewRequest("GET", urls, body)
78966	if err != nil {
78967		return nil, err
78968	}
78969	req.Header = reqHeaders
78970	googleapi.Expand(req.URL, map[string]string{
78971		"project":              c.project,
78972		"zone":                 c.zone,
78973		"instanceGroupManager": c.instanceGroupManager,
78974	})
78975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78976}
78977
78978// Do executes the "compute.instanceGroupManagers.get" call.
78979// Exactly one of *InstanceGroupManager or error will be non-nil. Any
78980// non-2xx status code is an error. Response headers are in either
78981// *InstanceGroupManager.ServerResponse.Header or (if a response was
78982// returned at all) in error.(*googleapi.Error).Header. Use
78983// googleapi.IsNotModified to check whether the returned error was
78984// because http.StatusNotModified was returned.
78985func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
78986	gensupport.SetOptions(c.urlParams_, opts...)
78987	res, err := c.doRequest("json")
78988	if res != nil && res.StatusCode == http.StatusNotModified {
78989		if res.Body != nil {
78990			res.Body.Close()
78991		}
78992		return nil, &googleapi.Error{
78993			Code:   res.StatusCode,
78994			Header: res.Header,
78995		}
78996	}
78997	if err != nil {
78998		return nil, err
78999	}
79000	defer googleapi.CloseBody(res)
79001	if err := googleapi.CheckResponse(res); err != nil {
79002		return nil, err
79003	}
79004	ret := &InstanceGroupManager{
79005		ServerResponse: googleapi.ServerResponse{
79006			Header:         res.Header,
79007			HTTPStatusCode: res.StatusCode,
79008		},
79009	}
79010	target := &ret
79011	if err := gensupport.DecodeResponse(target, res); err != nil {
79012		return nil, err
79013	}
79014	return ret, nil
79015	// {
79016	//   "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.",
79017	//   "httpMethod": "GET",
79018	//   "id": "compute.instanceGroupManagers.get",
79019	//   "parameterOrder": [
79020	//     "project",
79021	//     "zone",
79022	//     "instanceGroupManager"
79023	//   ],
79024	//   "parameters": {
79025	//     "instanceGroupManager": {
79026	//       "description": "The name of the managed instance group.",
79027	//       "location": "path",
79028	//       "required": true,
79029	//       "type": "string"
79030	//     },
79031	//     "project": {
79032	//       "description": "Project ID for this request.",
79033	//       "location": "path",
79034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79035	//       "required": true,
79036	//       "type": "string"
79037	//     },
79038	//     "zone": {
79039	//       "description": "The name of the zone where the managed instance group is located.",
79040	//       "location": "path",
79041	//       "required": true,
79042	//       "type": "string"
79043	//     }
79044	//   },
79045	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
79046	//   "response": {
79047	//     "$ref": "InstanceGroupManager"
79048	//   },
79049	//   "scopes": [
79050	//     "https://www.googleapis.com/auth/cloud-platform",
79051	//     "https://www.googleapis.com/auth/compute",
79052	//     "https://www.googleapis.com/auth/compute.readonly"
79053	//   ]
79054	// }
79055
79056}
79057
79058// method id "compute.instanceGroupManagers.insert":
79059
79060type InstanceGroupManagersInsertCall struct {
79061	s                    *Service
79062	project              string
79063	zone                 string
79064	instancegroupmanager *InstanceGroupManager
79065	urlParams_           gensupport.URLParams
79066	ctx_                 context.Context
79067	header_              http.Header
79068}
79069
79070// Insert: Creates a managed instance group using the information that
79071// you specify in the request. After the group is created, instances in
79072// the group are created using the specified instance template. This
79073// operation is marked as DONE when the group is created even if the
79074// instances in the group have not yet been created. You must separately
79075// verify the status of the individual instances with the
79076// listmanagedinstances method.
79077//
79078// A managed instance group can have up to 1000 VM instances per group.
79079// Please contact Cloud Support if you need an increase in this limit.
79080func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
79081	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79082	c.project = project
79083	c.zone = zone
79084	c.instancegroupmanager = instancegroupmanager
79085	return c
79086}
79087
79088// RequestId sets the optional parameter "requestId": An optional
79089// request ID to identify requests. Specify a unique request ID so that
79090// if you must retry your request, the server will know to ignore the
79091// request if it has already been completed.
79092//
79093// For example, consider a situation where you make an initial request
79094// and the request times out. If you make the request again with the
79095// same request ID, the server can check if original operation with the
79096// same request ID was received, and if so, will ignore the second
79097// request. This prevents clients from accidentally creating duplicate
79098// commitments.
79099//
79100// The request ID must be a valid UUID with the exception that zero UUID
79101// is not supported (00000000-0000-0000-0000-000000000000).
79102func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
79103	c.urlParams_.Set("requestId", requestId)
79104	return c
79105}
79106
79107// Fields allows partial responses to be retrieved. See
79108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79109// for more information.
79110func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
79111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79112	return c
79113}
79114
79115// Context sets the context to be used in this call's Do method. Any
79116// pending HTTP request will be aborted if the provided context is
79117// canceled.
79118func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
79119	c.ctx_ = ctx
79120	return c
79121}
79122
79123// Header returns an http.Header that can be modified by the caller to
79124// add HTTP headers to the request.
79125func (c *InstanceGroupManagersInsertCall) Header() http.Header {
79126	if c.header_ == nil {
79127		c.header_ = make(http.Header)
79128	}
79129	return c.header_
79130}
79131
79132func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
79133	reqHeaders := make(http.Header)
79134	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
79135	for k, v := range c.header_ {
79136		reqHeaders[k] = v
79137	}
79138	reqHeaders.Set("User-Agent", c.s.userAgent())
79139	var body io.Reader = nil
79140	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
79141	if err != nil {
79142		return nil, err
79143	}
79144	reqHeaders.Set("Content-Type", "application/json")
79145	c.urlParams_.Set("alt", alt)
79146	c.urlParams_.Set("prettyPrint", "false")
79147	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
79148	urls += "?" + c.urlParams_.Encode()
79149	req, err := http.NewRequest("POST", urls, body)
79150	if err != nil {
79151		return nil, err
79152	}
79153	req.Header = reqHeaders
79154	googleapi.Expand(req.URL, map[string]string{
79155		"project": c.project,
79156		"zone":    c.zone,
79157	})
79158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79159}
79160
79161// Do executes the "compute.instanceGroupManagers.insert" call.
79162// Exactly one of *Operation or error will be non-nil. Any non-2xx
79163// status code is an error. Response headers are in either
79164// *Operation.ServerResponse.Header or (if a response was returned at
79165// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79166// to check whether the returned error was because
79167// http.StatusNotModified was returned.
79168func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79169	gensupport.SetOptions(c.urlParams_, opts...)
79170	res, err := c.doRequest("json")
79171	if res != nil && res.StatusCode == http.StatusNotModified {
79172		if res.Body != nil {
79173			res.Body.Close()
79174		}
79175		return nil, &googleapi.Error{
79176			Code:   res.StatusCode,
79177			Header: res.Header,
79178		}
79179	}
79180	if err != nil {
79181		return nil, err
79182	}
79183	defer googleapi.CloseBody(res)
79184	if err := googleapi.CheckResponse(res); err != nil {
79185		return nil, err
79186	}
79187	ret := &Operation{
79188		ServerResponse: googleapi.ServerResponse{
79189			Header:         res.Header,
79190			HTTPStatusCode: res.StatusCode,
79191		},
79192	}
79193	target := &ret
79194	if err := gensupport.DecodeResponse(target, res); err != nil {
79195		return nil, err
79196	}
79197	return ret, nil
79198	// {
79199	//   "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.\n\nA managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.",
79200	//   "httpMethod": "POST",
79201	//   "id": "compute.instanceGroupManagers.insert",
79202	//   "parameterOrder": [
79203	//     "project",
79204	//     "zone"
79205	//   ],
79206	//   "parameters": {
79207	//     "project": {
79208	//       "description": "Project ID for this request.",
79209	//       "location": "path",
79210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79211	//       "required": true,
79212	//       "type": "string"
79213	//     },
79214	//     "requestId": {
79215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79216	//       "location": "query",
79217	//       "type": "string"
79218	//     },
79219	//     "zone": {
79220	//       "description": "The name of the zone where you want to create the managed instance group.",
79221	//       "location": "path",
79222	//       "required": true,
79223	//       "type": "string"
79224	//     }
79225	//   },
79226	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
79227	//   "request": {
79228	//     "$ref": "InstanceGroupManager"
79229	//   },
79230	//   "response": {
79231	//     "$ref": "Operation"
79232	//   },
79233	//   "scopes": [
79234	//     "https://www.googleapis.com/auth/cloud-platform",
79235	//     "https://www.googleapis.com/auth/compute"
79236	//   ]
79237	// }
79238
79239}
79240
79241// method id "compute.instanceGroupManagers.list":
79242
79243type InstanceGroupManagersListCall struct {
79244	s            *Service
79245	project      string
79246	zone         string
79247	urlParams_   gensupport.URLParams
79248	ifNoneMatch_ string
79249	ctx_         context.Context
79250	header_      http.Header
79251}
79252
79253// List: Retrieves a list of managed instance groups that are contained
79254// within the specified project and zone.
79255func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
79256	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79257	c.project = project
79258	c.zone = zone
79259	return c
79260}
79261
79262// Filter sets the optional parameter "filter": A filter expression that
79263// filters resources listed in the response. The expression must specify
79264// the field name, a comparison operator, and the value that you want to
79265// use for filtering. The value must be a string, a number, or a
79266// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79267// `<`.
79268//
79269// For example, if you are filtering Compute Engine instances, you can
79270// exclude instances named `example-instance` by specifying `name !=
79271// example-instance`.
79272//
79273// You can also filter nested fields. For example, you could specify
79274// `scheduling.automaticRestart = false` to include instances only if
79275// they are not scheduled for automatic restarts. You can use filtering
79276// on nested fields to filter based on resource labels.
79277//
79278// To filter on multiple expressions, provide each separate expression
79279// within parentheses. For example: ``` (scheduling.automaticRestart =
79280// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79281// is an `AND` expression. However, you can include `AND` and `OR`
79282// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79283// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79284// (scheduling.automaticRestart = true) ```
79285func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
79286	c.urlParams_.Set("filter", filter)
79287	return c
79288}
79289
79290// MaxResults sets the optional parameter "maxResults": The maximum
79291// number of results per page that should be returned. If the number of
79292// available results is larger than `maxResults`, Compute Engine returns
79293// a `nextPageToken` that can be used to get the next page of results in
79294// subsequent list requests. Acceptable values are `0` to `500`,
79295// inclusive. (Default: `500`)
79296func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
79297	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79298	return c
79299}
79300
79301// OrderBy sets the optional parameter "orderBy": Sorts list results by
79302// a certain order. By default, results are returned in alphanumerical
79303// order based on the resource name.
79304//
79305// You can also sort results in descending order based on the creation
79306// timestamp using `orderBy="creationTimestamp desc". This sorts
79307// results based on the `creationTimestamp` field in reverse
79308// chronological order (newest result first). Use this to sort resources
79309// like operations so that the newest operation is returned
79310// first.
79311//
79312// Currently, only sorting by `name` or `creationTimestamp desc` is
79313// supported.
79314func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
79315	c.urlParams_.Set("orderBy", orderBy)
79316	return c
79317}
79318
79319// PageToken sets the optional parameter "pageToken": Specifies a page
79320// token to use. Set `pageToken` to the `nextPageToken` returned by a
79321// previous list request to get the next page of results.
79322func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
79323	c.urlParams_.Set("pageToken", pageToken)
79324	return c
79325}
79326
79327// ReturnPartialSuccess sets the optional parameter
79328// "returnPartialSuccess": Opt-in for partial success behavior which
79329// provides partial results in case of failure. The default value is
79330// false and the logic is the same as today.
79331func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall {
79332	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
79333	return c
79334}
79335
79336// Fields allows partial responses to be retrieved. See
79337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79338// for more information.
79339func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
79340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79341	return c
79342}
79343
79344// IfNoneMatch sets the optional parameter which makes the operation
79345// fail if the object's ETag matches the given value. This is useful for
79346// getting updates only after the object has changed since the last
79347// request. Use googleapi.IsNotModified to check whether the response
79348// error from Do is the result of In-None-Match.
79349func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
79350	c.ifNoneMatch_ = entityTag
79351	return c
79352}
79353
79354// Context sets the context to be used in this call's Do method. Any
79355// pending HTTP request will be aborted if the provided context is
79356// canceled.
79357func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
79358	c.ctx_ = ctx
79359	return c
79360}
79361
79362// Header returns an http.Header that can be modified by the caller to
79363// add HTTP headers to the request.
79364func (c *InstanceGroupManagersListCall) Header() http.Header {
79365	if c.header_ == nil {
79366		c.header_ = make(http.Header)
79367	}
79368	return c.header_
79369}
79370
79371func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
79372	reqHeaders := make(http.Header)
79373	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
79374	for k, v := range c.header_ {
79375		reqHeaders[k] = v
79376	}
79377	reqHeaders.Set("User-Agent", c.s.userAgent())
79378	if c.ifNoneMatch_ != "" {
79379		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79380	}
79381	var body io.Reader = nil
79382	c.urlParams_.Set("alt", alt)
79383	c.urlParams_.Set("prettyPrint", "false")
79384	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
79385	urls += "?" + c.urlParams_.Encode()
79386	req, err := http.NewRequest("GET", urls, body)
79387	if err != nil {
79388		return nil, err
79389	}
79390	req.Header = reqHeaders
79391	googleapi.Expand(req.URL, map[string]string{
79392		"project": c.project,
79393		"zone":    c.zone,
79394	})
79395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79396}
79397
79398// Do executes the "compute.instanceGroupManagers.list" call.
79399// Exactly one of *InstanceGroupManagerList or error will be non-nil.
79400// Any non-2xx status code is an error. Response headers are in either
79401// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
79402// returned at all) in error.(*googleapi.Error).Header. Use
79403// googleapi.IsNotModified to check whether the returned error was
79404// because http.StatusNotModified was returned.
79405func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
79406	gensupport.SetOptions(c.urlParams_, opts...)
79407	res, err := c.doRequest("json")
79408	if res != nil && res.StatusCode == http.StatusNotModified {
79409		if res.Body != nil {
79410			res.Body.Close()
79411		}
79412		return nil, &googleapi.Error{
79413			Code:   res.StatusCode,
79414			Header: res.Header,
79415		}
79416	}
79417	if err != nil {
79418		return nil, err
79419	}
79420	defer googleapi.CloseBody(res)
79421	if err := googleapi.CheckResponse(res); err != nil {
79422		return nil, err
79423	}
79424	ret := &InstanceGroupManagerList{
79425		ServerResponse: googleapi.ServerResponse{
79426			Header:         res.Header,
79427			HTTPStatusCode: res.StatusCode,
79428		},
79429	}
79430	target := &ret
79431	if err := gensupport.DecodeResponse(target, res); err != nil {
79432		return nil, err
79433	}
79434	return ret, nil
79435	// {
79436	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
79437	//   "httpMethod": "GET",
79438	//   "id": "compute.instanceGroupManagers.list",
79439	//   "parameterOrder": [
79440	//     "project",
79441	//     "zone"
79442	//   ],
79443	//   "parameters": {
79444	//     "filter": {
79445	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
79446	//       "location": "query",
79447	//       "type": "string"
79448	//     },
79449	//     "maxResults": {
79450	//       "default": "500",
79451	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
79452	//       "format": "uint32",
79453	//       "location": "query",
79454	//       "minimum": "0",
79455	//       "type": "integer"
79456	//     },
79457	//     "orderBy": {
79458	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
79459	//       "location": "query",
79460	//       "type": "string"
79461	//     },
79462	//     "pageToken": {
79463	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
79464	//       "location": "query",
79465	//       "type": "string"
79466	//     },
79467	//     "project": {
79468	//       "description": "Project ID for this request.",
79469	//       "location": "path",
79470	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79471	//       "required": true,
79472	//       "type": "string"
79473	//     },
79474	//     "returnPartialSuccess": {
79475	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
79476	//       "location": "query",
79477	//       "type": "boolean"
79478	//     },
79479	//     "zone": {
79480	//       "description": "The name of the zone where the managed instance group is located.",
79481	//       "location": "path",
79482	//       "required": true,
79483	//       "type": "string"
79484	//     }
79485	//   },
79486	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
79487	//   "response": {
79488	//     "$ref": "InstanceGroupManagerList"
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 *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) 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.instanceGroupManagers.listErrors":
79521
79522type InstanceGroupManagersListErrorsCall struct {
79523	s                    *Service
79524	project              string
79525	zone                 string
79526	instanceGroupManager string
79527	urlParams_           gensupport.URLParams
79528	ifNoneMatch_         string
79529	ctx_                 context.Context
79530	header_              http.Header
79531}
79532
79533// ListErrors: Lists all errors thrown by actions on instances for a
79534// given managed instance group.
79535func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
79536	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79537	c.project = project
79538	c.zone = zone
79539	c.instanceGroupManager = instanceGroupManager
79540	return c
79541}
79542
79543// Filter sets the optional parameter "filter": A filter expression that
79544// filters resources listed in the response. The expression must specify
79545// the field name, a comparison operator, and the value that you want to
79546// use for filtering. The value must be a string, a number, or a
79547// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79548// `<`.
79549//
79550// For example, if you are filtering Compute Engine instances, you can
79551// exclude instances named `example-instance` by specifying `name !=
79552// example-instance`.
79553//
79554// You can also filter nested fields. For example, you could specify
79555// `scheduling.automaticRestart = false` to include instances only if
79556// they are not scheduled for automatic restarts. You can use filtering
79557// on nested fields to filter based on resource labels.
79558//
79559// To filter on multiple expressions, provide each separate expression
79560// within parentheses. For example: ``` (scheduling.automaticRestart =
79561// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79562// is an `AND` expression. However, you can include `AND` and `OR`
79563// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79564// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79565// (scheduling.automaticRestart = true) ```
79566func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
79567	c.urlParams_.Set("filter", filter)
79568	return c
79569}
79570
79571// MaxResults sets the optional parameter "maxResults": The maximum
79572// number of results per page that should be returned. If the number of
79573// available results is larger than `maxResults`, Compute Engine returns
79574// a `nextPageToken` that can be used to get the next page of results in
79575// subsequent list requests. Acceptable values are `0` to `500`,
79576// inclusive. (Default: `500`)
79577func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
79578	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79579	return c
79580}
79581
79582// OrderBy sets the optional parameter "orderBy": Sorts list results by
79583// a certain order. By default, results are returned in alphanumerical
79584// order based on the resource name.
79585//
79586// You can also sort results in descending order based on the creation
79587// timestamp using `orderBy="creationTimestamp desc". This sorts
79588// results based on the `creationTimestamp` field in reverse
79589// chronological order (newest result first). Use this to sort resources
79590// like operations so that the newest operation is returned
79591// first.
79592//
79593// Currently, only sorting by `name` or `creationTimestamp desc` is
79594// supported.
79595func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
79596	c.urlParams_.Set("orderBy", orderBy)
79597	return c
79598}
79599
79600// PageToken sets the optional parameter "pageToken": Specifies a page
79601// token to use. Set `pageToken` to the `nextPageToken` returned by a
79602// previous list request to get the next page of results.
79603func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
79604	c.urlParams_.Set("pageToken", pageToken)
79605	return c
79606}
79607
79608// ReturnPartialSuccess sets the optional parameter
79609// "returnPartialSuccess": Opt-in for partial success behavior which
79610// provides partial results in case of failure. The default value is
79611// false and the logic is the same as today.
79612func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall {
79613	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
79614	return c
79615}
79616
79617// Fields allows partial responses to be retrieved. See
79618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79619// for more information.
79620func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
79621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79622	return c
79623}
79624
79625// IfNoneMatch sets the optional parameter which makes the operation
79626// fail if the object's ETag matches the given value. This is useful for
79627// getting updates only after the object has changed since the last
79628// request. Use googleapi.IsNotModified to check whether the response
79629// error from Do is the result of In-None-Match.
79630func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
79631	c.ifNoneMatch_ = entityTag
79632	return c
79633}
79634
79635// Context sets the context to be used in this call's Do method. Any
79636// pending HTTP request will be aborted if the provided context is
79637// canceled.
79638func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
79639	c.ctx_ = ctx
79640	return c
79641}
79642
79643// Header returns an http.Header that can be modified by the caller to
79644// add HTTP headers to the request.
79645func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
79646	if c.header_ == nil {
79647		c.header_ = make(http.Header)
79648	}
79649	return c.header_
79650}
79651
79652func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
79653	reqHeaders := make(http.Header)
79654	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
79655	for k, v := range c.header_ {
79656		reqHeaders[k] = v
79657	}
79658	reqHeaders.Set("User-Agent", c.s.userAgent())
79659	if c.ifNoneMatch_ != "" {
79660		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79661	}
79662	var body io.Reader = nil
79663	c.urlParams_.Set("alt", alt)
79664	c.urlParams_.Set("prettyPrint", "false")
79665	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
79666	urls += "?" + c.urlParams_.Encode()
79667	req, err := http.NewRequest("GET", urls, body)
79668	if err != nil {
79669		return nil, err
79670	}
79671	req.Header = reqHeaders
79672	googleapi.Expand(req.URL, map[string]string{
79673		"project":              c.project,
79674		"zone":                 c.zone,
79675		"instanceGroupManager": c.instanceGroupManager,
79676	})
79677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79678}
79679
79680// Do executes the "compute.instanceGroupManagers.listErrors" call.
79681// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
79682// be non-nil. Any non-2xx status code is an error. Response headers are
79683// in either
79684// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
79685// a response was returned at all) in error.(*googleapi.Error).Header.
79686// Use googleapi.IsNotModified to check whether the returned error was
79687// because http.StatusNotModified was returned.
79688func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
79689	gensupport.SetOptions(c.urlParams_, opts...)
79690	res, err := c.doRequest("json")
79691	if res != nil && res.StatusCode == http.StatusNotModified {
79692		if res.Body != nil {
79693			res.Body.Close()
79694		}
79695		return nil, &googleapi.Error{
79696			Code:   res.StatusCode,
79697			Header: res.Header,
79698		}
79699	}
79700	if err != nil {
79701		return nil, err
79702	}
79703	defer googleapi.CloseBody(res)
79704	if err := googleapi.CheckResponse(res); err != nil {
79705		return nil, err
79706	}
79707	ret := &InstanceGroupManagersListErrorsResponse{
79708		ServerResponse: googleapi.ServerResponse{
79709			Header:         res.Header,
79710			HTTPStatusCode: res.StatusCode,
79711		},
79712	}
79713	target := &ret
79714	if err := gensupport.DecodeResponse(target, res); err != nil {
79715		return nil, err
79716	}
79717	return ret, nil
79718	// {
79719	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group.",
79720	//   "httpMethod": "GET",
79721	//   "id": "compute.instanceGroupManagers.listErrors",
79722	//   "parameterOrder": [
79723	//     "project",
79724	//     "zone",
79725	//     "instanceGroupManager"
79726	//   ],
79727	//   "parameters": {
79728	//     "filter": {
79729	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
79730	//       "location": "query",
79731	//       "type": "string"
79732	//     },
79733	//     "instanceGroupManager": {
79734	//       "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.",
79735	//       "location": "path",
79736	//       "required": true,
79737	//       "type": "string"
79738	//     },
79739	//     "maxResults": {
79740	//       "default": "500",
79741	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
79742	//       "format": "uint32",
79743	//       "location": "query",
79744	//       "minimum": "0",
79745	//       "type": "integer"
79746	//     },
79747	//     "orderBy": {
79748	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
79749	//       "location": "query",
79750	//       "type": "string"
79751	//     },
79752	//     "pageToken": {
79753	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
79754	//       "location": "query",
79755	//       "type": "string"
79756	//     },
79757	//     "project": {
79758	//       "description": "Project ID for this request.",
79759	//       "location": "path",
79760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79761	//       "required": true,
79762	//       "type": "string"
79763	//     },
79764	//     "returnPartialSuccess": {
79765	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
79766	//       "location": "query",
79767	//       "type": "boolean"
79768	//     },
79769	//     "zone": {
79770	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
79771	//       "location": "path",
79772	//       "required": true,
79773	//       "type": "string"
79774	//     }
79775	//   },
79776	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
79777	//   "response": {
79778	//     "$ref": "InstanceGroupManagersListErrorsResponse"
79779	//   },
79780	//   "scopes": [
79781	//     "https://www.googleapis.com/auth/cloud-platform",
79782	//     "https://www.googleapis.com/auth/compute",
79783	//     "https://www.googleapis.com/auth/compute.readonly"
79784	//   ]
79785	// }
79786
79787}
79788
79789// Pages invokes f for each page of results.
79790// A non-nil error returned from f will halt the iteration.
79791// The provided context supersedes any context provided to the Context method.
79792func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
79793	c.ctx_ = ctx
79794	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79795	for {
79796		x, err := c.Do()
79797		if err != nil {
79798			return err
79799		}
79800		if err := f(x); err != nil {
79801			return err
79802		}
79803		if x.NextPageToken == "" {
79804			return nil
79805		}
79806		c.PageToken(x.NextPageToken)
79807	}
79808}
79809
79810// method id "compute.instanceGroupManagers.listManagedInstances":
79811
79812type InstanceGroupManagersListManagedInstancesCall struct {
79813	s                    *Service
79814	project              string
79815	zone                 string
79816	instanceGroupManager string
79817	urlParams_           gensupport.URLParams
79818	ctx_                 context.Context
79819	header_              http.Header
79820}
79821
79822// ListManagedInstances: Lists all of the instances in the managed
79823// instance group. Each instance in the list has a currentAction, which
79824// indicates the action that the managed instance group is performing on
79825// the instance. For example, if the group is still creating an
79826// instance, the currentAction is CREATING. If a previous action failed,
79827// the list displays the errors for that failed action.
79828func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
79829	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79830	c.project = project
79831	c.zone = zone
79832	c.instanceGroupManager = instanceGroupManager
79833	return c
79834}
79835
79836// Filter sets the optional parameter "filter": A filter expression that
79837// filters resources listed in the response. The expression must specify
79838// the field name, a comparison operator, and the value that you want to
79839// use for filtering. The value must be a string, a number, or a
79840// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79841// `<`.
79842//
79843// For example, if you are filtering Compute Engine instances, you can
79844// exclude instances named `example-instance` by specifying `name !=
79845// example-instance`.
79846//
79847// You can also filter nested fields. For example, you could specify
79848// `scheduling.automaticRestart = false` to include instances only if
79849// they are not scheduled for automatic restarts. You can use filtering
79850// on nested fields to filter based on resource labels.
79851//
79852// To filter on multiple expressions, provide each separate expression
79853// within parentheses. For example: ``` (scheduling.automaticRestart =
79854// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79855// is an `AND` expression. However, you can include `AND` and `OR`
79856// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79857// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79858// (scheduling.automaticRestart = true) ```
79859func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
79860	c.urlParams_.Set("filter", filter)
79861	return c
79862}
79863
79864// MaxResults sets the optional parameter "maxResults": The maximum
79865// number of results per page that should be returned. If the number of
79866// available results is larger than `maxResults`, Compute Engine returns
79867// a `nextPageToken` that can be used to get the next page of results in
79868// subsequent list requests. Acceptable values are `0` to `500`,
79869// inclusive. (Default: `500`)
79870func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
79871	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79872	return c
79873}
79874
79875// OrderBy sets the optional parameter "orderBy": Sorts list results by
79876// a certain order. By default, results are returned in alphanumerical
79877// order based on the resource name.
79878//
79879// You can also sort results in descending order based on the creation
79880// timestamp using `orderBy="creationTimestamp desc". This sorts
79881// results based on the `creationTimestamp` field in reverse
79882// chronological order (newest result first). Use this to sort resources
79883// like operations so that the newest operation is returned
79884// first.
79885//
79886// Currently, only sorting by `name` or `creationTimestamp desc` is
79887// supported.
79888func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
79889	c.urlParams_.Set("orderBy", orderBy)
79890	return c
79891}
79892
79893// PageToken sets the optional parameter "pageToken": Specifies a page
79894// token to use. Set `pageToken` to the `nextPageToken` returned by a
79895// previous list request to get the next page of results.
79896func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
79897	c.urlParams_.Set("pageToken", pageToken)
79898	return c
79899}
79900
79901// Fields allows partial responses to be retrieved. See
79902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79903// for more information.
79904func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
79905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79906	return c
79907}
79908
79909// Context sets the context to be used in this call's Do method. Any
79910// pending HTTP request will be aborted if the provided context is
79911// canceled.
79912func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
79913	c.ctx_ = ctx
79914	return c
79915}
79916
79917// Header returns an http.Header that can be modified by the caller to
79918// add HTTP headers to the request.
79919func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
79920	if c.header_ == nil {
79921		c.header_ = make(http.Header)
79922	}
79923	return c.header_
79924}
79925
79926func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
79927	reqHeaders := make(http.Header)
79928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
79929	for k, v := range c.header_ {
79930		reqHeaders[k] = v
79931	}
79932	reqHeaders.Set("User-Agent", c.s.userAgent())
79933	var body io.Reader = nil
79934	c.urlParams_.Set("alt", alt)
79935	c.urlParams_.Set("prettyPrint", "false")
79936	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
79937	urls += "?" + c.urlParams_.Encode()
79938	req, err := http.NewRequest("POST", urls, body)
79939	if err != nil {
79940		return nil, err
79941	}
79942	req.Header = reqHeaders
79943	googleapi.Expand(req.URL, map[string]string{
79944		"project":              c.project,
79945		"zone":                 c.zone,
79946		"instanceGroupManager": c.instanceGroupManager,
79947	})
79948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79949}
79950
79951// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
79952// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
79953// error will be non-nil. Any non-2xx status code is an error. Response
79954// headers are in either
79955// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
79956// er or (if a response was returned at all) in
79957// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
79958// whether the returned error was because http.StatusNotModified was
79959// returned.
79960func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
79961	gensupport.SetOptions(c.urlParams_, opts...)
79962	res, err := c.doRequest("json")
79963	if res != nil && res.StatusCode == http.StatusNotModified {
79964		if res.Body != nil {
79965			res.Body.Close()
79966		}
79967		return nil, &googleapi.Error{
79968			Code:   res.StatusCode,
79969			Header: res.Header,
79970		}
79971	}
79972	if err != nil {
79973		return nil, err
79974	}
79975	defer googleapi.CloseBody(res)
79976	if err := googleapi.CheckResponse(res); err != nil {
79977		return nil, err
79978	}
79979	ret := &InstanceGroupManagersListManagedInstancesResponse{
79980		ServerResponse: googleapi.ServerResponse{
79981			Header:         res.Header,
79982			HTTPStatusCode: res.StatusCode,
79983		},
79984	}
79985	target := &ret
79986	if err := gensupport.DecodeResponse(target, res); err != nil {
79987		return nil, err
79988	}
79989	return ret, nil
79990	// {
79991	//   "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.",
79992	//   "httpMethod": "POST",
79993	//   "id": "compute.instanceGroupManagers.listManagedInstances",
79994	//   "parameterOrder": [
79995	//     "project",
79996	//     "zone",
79997	//     "instanceGroupManager"
79998	//   ],
79999	//   "parameters": {
80000	//     "filter": {
80001	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
80002	//       "location": "query",
80003	//       "type": "string"
80004	//     },
80005	//     "instanceGroupManager": {
80006	//       "description": "The name of the managed instance group.",
80007	//       "location": "path",
80008	//       "required": true,
80009	//       "type": "string"
80010	//     },
80011	//     "maxResults": {
80012	//       "default": "500",
80013	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
80014	//       "format": "uint32",
80015	//       "location": "query",
80016	//       "minimum": "0",
80017	//       "type": "integer"
80018	//     },
80019	//     "orderBy": {
80020	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
80021	//       "location": "query",
80022	//       "type": "string"
80023	//     },
80024	//     "pageToken": {
80025	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
80026	//       "location": "query",
80027	//       "type": "string"
80028	//     },
80029	//     "project": {
80030	//       "description": "Project ID for this request.",
80031	//       "location": "path",
80032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80033	//       "required": true,
80034	//       "type": "string"
80035	//     },
80036	//     "zone": {
80037	//       "description": "The name of the zone where the managed instance group is located.",
80038	//       "location": "path",
80039	//       "required": true,
80040	//       "type": "string"
80041	//     }
80042	//   },
80043	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
80044	//   "response": {
80045	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
80046	//   },
80047	//   "scopes": [
80048	//     "https://www.googleapis.com/auth/cloud-platform",
80049	//     "https://www.googleapis.com/auth/compute",
80050	//     "https://www.googleapis.com/auth/compute.readonly"
80051	//   ]
80052	// }
80053
80054}
80055
80056// Pages invokes f for each page of results.
80057// A non-nil error returned from f will halt the iteration.
80058// The provided context supersedes any context provided to the Context method.
80059func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
80060	c.ctx_ = ctx
80061	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80062	for {
80063		x, err := c.Do()
80064		if err != nil {
80065			return err
80066		}
80067		if err := f(x); err != nil {
80068			return err
80069		}
80070		if x.NextPageToken == "" {
80071			return nil
80072		}
80073		c.PageToken(x.NextPageToken)
80074	}
80075}
80076
80077// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
80078
80079type InstanceGroupManagersListPerInstanceConfigsCall struct {
80080	s                    *Service
80081	project              string
80082	zone                 string
80083	instanceGroupManager string
80084	urlParams_           gensupport.URLParams
80085	ctx_                 context.Context
80086	header_              http.Header
80087}
80088
80089// ListPerInstanceConfigs: Lists all of the per-instance configs defined
80090// for the managed instance group.
80091func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
80092	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80093	c.project = project
80094	c.zone = zone
80095	c.instanceGroupManager = instanceGroupManager
80096	return c
80097}
80098
80099// Filter sets the optional parameter "filter": A filter expression that
80100// filters resources listed in the response. The expression must specify
80101// the field name, a comparison operator, and the value that you want to
80102// use for filtering. The value must be a string, a number, or a
80103// boolean. The comparison operator must be either `=`, `!=`, `>`, or
80104// `<`.
80105//
80106// For example, if you are filtering Compute Engine instances, you can
80107// exclude instances named `example-instance` by specifying `name !=
80108// example-instance`.
80109//
80110// You can also filter nested fields. For example, you could specify
80111// `scheduling.automaticRestart = false` to include instances only if
80112// they are not scheduled for automatic restarts. You can use filtering
80113// on nested fields to filter based on resource labels.
80114//
80115// To filter on multiple expressions, provide each separate expression
80116// within parentheses. For example: ``` (scheduling.automaticRestart =
80117// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
80118// is an `AND` expression. However, you can include `AND` and `OR`
80119// expressions explicitly. For example: ``` (cpuPlatform = "Intel
80120// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
80121// (scheduling.automaticRestart = true) ```
80122func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
80123	c.urlParams_.Set("filter", filter)
80124	return c
80125}
80126
80127// MaxResults sets the optional parameter "maxResults": The maximum
80128// number of results per page that should be returned. If the number of
80129// available results is larger than `maxResults`, Compute Engine returns
80130// a `nextPageToken` that can be used to get the next page of results in
80131// subsequent list requests. Acceptable values are `0` to `500`,
80132// inclusive. (Default: `500`)
80133func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
80134	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80135	return c
80136}
80137
80138// OrderBy sets the optional parameter "orderBy": Sorts list results by
80139// a certain order. By default, results are returned in alphanumerical
80140// order based on the resource name.
80141//
80142// You can also sort results in descending order based on the creation
80143// timestamp using `orderBy="creationTimestamp desc". This sorts
80144// results based on the `creationTimestamp` field in reverse
80145// chronological order (newest result first). Use this to sort resources
80146// like operations so that the newest operation is returned
80147// first.
80148//
80149// Currently, only sorting by `name` or `creationTimestamp desc` is
80150// supported.
80151func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
80152	c.urlParams_.Set("orderBy", orderBy)
80153	return c
80154}
80155
80156// PageToken sets the optional parameter "pageToken": Specifies a page
80157// token to use. Set `pageToken` to the `nextPageToken` returned by a
80158// previous list request to get the next page of results.
80159func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
80160	c.urlParams_.Set("pageToken", pageToken)
80161	return c
80162}
80163
80164// ReturnPartialSuccess sets the optional parameter
80165// "returnPartialSuccess": Opt-in for partial success behavior which
80166// provides partial results in case of failure. The default value is
80167// false and the logic is the same as today.
80168func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall {
80169	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
80170	return c
80171}
80172
80173// Fields allows partial responses to be retrieved. See
80174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80175// for more information.
80176func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
80177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80178	return c
80179}
80180
80181// Context sets the context to be used in this call's Do method. Any
80182// pending HTTP request will be aborted if the provided context is
80183// canceled.
80184func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
80185	c.ctx_ = ctx
80186	return c
80187}
80188
80189// Header returns an http.Header that can be modified by the caller to
80190// add HTTP headers to the request.
80191func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
80192	if c.header_ == nil {
80193		c.header_ = make(http.Header)
80194	}
80195	return c.header_
80196}
80197
80198func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
80199	reqHeaders := make(http.Header)
80200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
80201	for k, v := range c.header_ {
80202		reqHeaders[k] = v
80203	}
80204	reqHeaders.Set("User-Agent", c.s.userAgent())
80205	var body io.Reader = nil
80206	c.urlParams_.Set("alt", alt)
80207	c.urlParams_.Set("prettyPrint", "false")
80208	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
80209	urls += "?" + c.urlParams_.Encode()
80210	req, err := http.NewRequest("POST", urls, body)
80211	if err != nil {
80212		return nil, err
80213	}
80214	req.Header = reqHeaders
80215	googleapi.Expand(req.URL, map[string]string{
80216		"project":              c.project,
80217		"zone":                 c.zone,
80218		"instanceGroupManager": c.instanceGroupManager,
80219	})
80220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80221}
80222
80223// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
80224// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
80225// error will be non-nil. Any non-2xx status code is an error. Response
80226// headers are in either
80227// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
80228//  or (if a response was returned at all) in
80229// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
80230// whether the returned error was because http.StatusNotModified was
80231// returned.
80232func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
80233	gensupport.SetOptions(c.urlParams_, opts...)
80234	res, err := c.doRequest("json")
80235	if res != nil && res.StatusCode == http.StatusNotModified {
80236		if res.Body != nil {
80237			res.Body.Close()
80238		}
80239		return nil, &googleapi.Error{
80240			Code:   res.StatusCode,
80241			Header: res.Header,
80242		}
80243	}
80244	if err != nil {
80245		return nil, err
80246	}
80247	defer googleapi.CloseBody(res)
80248	if err := googleapi.CheckResponse(res); err != nil {
80249		return nil, err
80250	}
80251	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
80252		ServerResponse: googleapi.ServerResponse{
80253			Header:         res.Header,
80254			HTTPStatusCode: res.StatusCode,
80255		},
80256	}
80257	target := &ret
80258	if err := gensupport.DecodeResponse(target, res); err != nil {
80259		return nil, err
80260	}
80261	return ret, nil
80262	// {
80263	//   "description": "Lists all of the per-instance configs defined for the managed instance group.",
80264	//   "httpMethod": "POST",
80265	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
80266	//   "parameterOrder": [
80267	//     "project",
80268	//     "zone",
80269	//     "instanceGroupManager"
80270	//   ],
80271	//   "parameters": {
80272	//     "filter": {
80273	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
80274	//       "location": "query",
80275	//       "type": "string"
80276	//     },
80277	//     "instanceGroupManager": {
80278	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
80279	//       "location": "path",
80280	//       "required": true,
80281	//       "type": "string"
80282	//     },
80283	//     "maxResults": {
80284	//       "default": "500",
80285	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
80286	//       "format": "uint32",
80287	//       "location": "query",
80288	//       "minimum": "0",
80289	//       "type": "integer"
80290	//     },
80291	//     "orderBy": {
80292	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
80293	//       "location": "query",
80294	//       "type": "string"
80295	//     },
80296	//     "pageToken": {
80297	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
80298	//       "location": "query",
80299	//       "type": "string"
80300	//     },
80301	//     "project": {
80302	//       "description": "Project ID for this request.",
80303	//       "location": "path",
80304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80305	//       "required": true,
80306	//       "type": "string"
80307	//     },
80308	//     "returnPartialSuccess": {
80309	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
80310	//       "location": "query",
80311	//       "type": "boolean"
80312	//     },
80313	//     "zone": {
80314	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
80315	//       "location": "path",
80316	//       "required": true,
80317	//       "type": "string"
80318	//     }
80319	//   },
80320	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
80321	//   "response": {
80322	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
80323	//   },
80324	//   "scopes": [
80325	//     "https://www.googleapis.com/auth/cloud-platform",
80326	//     "https://www.googleapis.com/auth/compute",
80327	//     "https://www.googleapis.com/auth/compute.readonly"
80328	//   ]
80329	// }
80330
80331}
80332
80333// Pages invokes f for each page of results.
80334// A non-nil error returned from f will halt the iteration.
80335// The provided context supersedes any context provided to the Context method.
80336func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
80337	c.ctx_ = ctx
80338	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80339	for {
80340		x, err := c.Do()
80341		if err != nil {
80342			return err
80343		}
80344		if err := f(x); err != nil {
80345			return err
80346		}
80347		if x.NextPageToken == "" {
80348			return nil
80349		}
80350		c.PageToken(x.NextPageToken)
80351	}
80352}
80353
80354// method id "compute.instanceGroupManagers.patch":
80355
80356type InstanceGroupManagersPatchCall struct {
80357	s                    *Service
80358	project              string
80359	zone                 string
80360	instanceGroupManager string
80361	instancegroupmanager *InstanceGroupManager
80362	urlParams_           gensupport.URLParams
80363	ctx_                 context.Context
80364	header_              http.Header
80365}
80366
80367// Patch: Updates a managed instance group using the information that
80368// you specify in the request. This operation is marked as DONE when the
80369// group is patched even if the instances in the group are still in the
80370// process of being patched. You must separately verify the status of
80371// the individual instances with the listManagedInstances method. This
80372// method supports PATCH semantics and uses the JSON merge patch format
80373// and processing rules.
80374func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
80375	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80376	c.project = project
80377	c.zone = zone
80378	c.instanceGroupManager = instanceGroupManager
80379	c.instancegroupmanager = instancegroupmanager
80380	return c
80381}
80382
80383// RequestId sets the optional parameter "requestId": An optional
80384// request ID to identify requests. Specify a unique request ID so that
80385// if you must retry your request, the server will know to ignore the
80386// request if it has already been completed.
80387//
80388// For example, consider a situation where you make an initial request
80389// and the request times out. If you make the request again with the
80390// same request ID, the server can check if original operation with the
80391// same request ID was received, and if so, will ignore the second
80392// request. This prevents clients from accidentally creating duplicate
80393// commitments.
80394//
80395// The request ID must be a valid UUID with the exception that zero UUID
80396// is not supported (00000000-0000-0000-0000-000000000000).
80397func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
80398	c.urlParams_.Set("requestId", requestId)
80399	return c
80400}
80401
80402// Fields allows partial responses to be retrieved. See
80403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80404// for more information.
80405func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
80406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80407	return c
80408}
80409
80410// Context sets the context to be used in this call's Do method. Any
80411// pending HTTP request will be aborted if the provided context is
80412// canceled.
80413func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
80414	c.ctx_ = ctx
80415	return c
80416}
80417
80418// Header returns an http.Header that can be modified by the caller to
80419// add HTTP headers to the request.
80420func (c *InstanceGroupManagersPatchCall) Header() http.Header {
80421	if c.header_ == nil {
80422		c.header_ = make(http.Header)
80423	}
80424	return c.header_
80425}
80426
80427func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
80428	reqHeaders := make(http.Header)
80429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
80430	for k, v := range c.header_ {
80431		reqHeaders[k] = v
80432	}
80433	reqHeaders.Set("User-Agent", c.s.userAgent())
80434	var body io.Reader = nil
80435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
80436	if err != nil {
80437		return nil, err
80438	}
80439	reqHeaders.Set("Content-Type", "application/json")
80440	c.urlParams_.Set("alt", alt)
80441	c.urlParams_.Set("prettyPrint", "false")
80442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
80443	urls += "?" + c.urlParams_.Encode()
80444	req, err := http.NewRequest("PATCH", urls, body)
80445	if err != nil {
80446		return nil, err
80447	}
80448	req.Header = reqHeaders
80449	googleapi.Expand(req.URL, map[string]string{
80450		"project":              c.project,
80451		"zone":                 c.zone,
80452		"instanceGroupManager": c.instanceGroupManager,
80453	})
80454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80455}
80456
80457// Do executes the "compute.instanceGroupManagers.patch" call.
80458// Exactly one of *Operation or error will be non-nil. Any non-2xx
80459// status code is an error. Response headers are in either
80460// *Operation.ServerResponse.Header or (if a response was returned at
80461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80462// to check whether the returned error was because
80463// http.StatusNotModified was returned.
80464func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80465	gensupport.SetOptions(c.urlParams_, opts...)
80466	res, err := c.doRequest("json")
80467	if res != nil && res.StatusCode == http.StatusNotModified {
80468		if res.Body != nil {
80469			res.Body.Close()
80470		}
80471		return nil, &googleapi.Error{
80472			Code:   res.StatusCode,
80473			Header: res.Header,
80474		}
80475	}
80476	if err != nil {
80477		return nil, err
80478	}
80479	defer googleapi.CloseBody(res)
80480	if err := googleapi.CheckResponse(res); err != nil {
80481		return nil, err
80482	}
80483	ret := &Operation{
80484		ServerResponse: googleapi.ServerResponse{
80485			Header:         res.Header,
80486			HTTPStatusCode: res.StatusCode,
80487		},
80488	}
80489	target := &ret
80490	if err := gensupport.DecodeResponse(target, res); err != nil {
80491		return nil, err
80492	}
80493	return ret, nil
80494	// {
80495	//   "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.",
80496	//   "httpMethod": "PATCH",
80497	//   "id": "compute.instanceGroupManagers.patch",
80498	//   "parameterOrder": [
80499	//     "project",
80500	//     "zone",
80501	//     "instanceGroupManager"
80502	//   ],
80503	//   "parameters": {
80504	//     "instanceGroupManager": {
80505	//       "description": "The name of the instance group manager.",
80506	//       "location": "path",
80507	//       "required": true,
80508	//       "type": "string"
80509	//     },
80510	//     "project": {
80511	//       "description": "Project ID for this request.",
80512	//       "location": "path",
80513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80514	//       "required": true,
80515	//       "type": "string"
80516	//     },
80517	//     "requestId": {
80518	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80519	//       "location": "query",
80520	//       "type": "string"
80521	//     },
80522	//     "zone": {
80523	//       "description": "The name of the zone where you want to create the managed instance group.",
80524	//       "location": "path",
80525	//       "required": true,
80526	//       "type": "string"
80527	//     }
80528	//   },
80529	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
80530	//   "request": {
80531	//     "$ref": "InstanceGroupManager"
80532	//   },
80533	//   "response": {
80534	//     "$ref": "Operation"
80535	//   },
80536	//   "scopes": [
80537	//     "https://www.googleapis.com/auth/cloud-platform",
80538	//     "https://www.googleapis.com/auth/compute"
80539	//   ]
80540	// }
80541
80542}
80543
80544// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
80545
80546type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
80547	s                                               *Service
80548	project                                         string
80549	zone                                            string
80550	instanceGroupManager                            string
80551	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
80552	urlParams_                                      gensupport.URLParams
80553	ctx_                                            context.Context
80554	header_                                         http.Header
80555}
80556
80557// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
80558// the managed instance group. perInstanceConfig.name serves as a key
80559// used to distinguish whether to perform insert or patch.
80560func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
80561	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80562	c.project = project
80563	c.zone = zone
80564	c.instanceGroupManager = instanceGroupManager
80565	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
80566	return c
80567}
80568
80569// RequestId sets the optional parameter "requestId": An optional
80570// request ID to identify requests. Specify a unique request ID so that
80571// if you must retry your request, the server will know to ignore the
80572// request if it has already been completed.
80573//
80574// For example, consider a situation where you make an initial request
80575// and the request times out. If you make the request again with the
80576// same request ID, the server can check if original operation with the
80577// same request ID was received, and if so, will ignore the second
80578// request. This prevents clients from accidentally creating duplicate
80579// commitments.
80580//
80581// The request ID must be a valid UUID with the exception that zero UUID
80582// is not supported (00000000-0000-0000-0000-000000000000).
80583func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
80584	c.urlParams_.Set("requestId", requestId)
80585	return c
80586}
80587
80588// Fields allows partial responses to be retrieved. See
80589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80590// for more information.
80591func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
80592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80593	return c
80594}
80595
80596// Context sets the context to be used in this call's Do method. Any
80597// pending HTTP request will be aborted if the provided context is
80598// canceled.
80599func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
80600	c.ctx_ = ctx
80601	return c
80602}
80603
80604// Header returns an http.Header that can be modified by the caller to
80605// add HTTP headers to the request.
80606func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
80607	if c.header_ == nil {
80608		c.header_ = make(http.Header)
80609	}
80610	return c.header_
80611}
80612
80613func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
80614	reqHeaders := make(http.Header)
80615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
80616	for k, v := range c.header_ {
80617		reqHeaders[k] = v
80618	}
80619	reqHeaders.Set("User-Agent", c.s.userAgent())
80620	var body io.Reader = nil
80621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
80622	if err != nil {
80623		return nil, err
80624	}
80625	reqHeaders.Set("Content-Type", "application/json")
80626	c.urlParams_.Set("alt", alt)
80627	c.urlParams_.Set("prettyPrint", "false")
80628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
80629	urls += "?" + c.urlParams_.Encode()
80630	req, err := http.NewRequest("POST", urls, body)
80631	if err != nil {
80632		return nil, err
80633	}
80634	req.Header = reqHeaders
80635	googleapi.Expand(req.URL, map[string]string{
80636		"project":              c.project,
80637		"zone":                 c.zone,
80638		"instanceGroupManager": c.instanceGroupManager,
80639	})
80640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80641}
80642
80643// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
80644// Exactly one of *Operation or error will be non-nil. Any non-2xx
80645// status code is an error. Response headers are in either
80646// *Operation.ServerResponse.Header or (if a response was returned at
80647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80648// to check whether the returned error was because
80649// http.StatusNotModified was returned.
80650func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80651	gensupport.SetOptions(c.urlParams_, opts...)
80652	res, err := c.doRequest("json")
80653	if res != nil && res.StatusCode == http.StatusNotModified {
80654		if res.Body != nil {
80655			res.Body.Close()
80656		}
80657		return nil, &googleapi.Error{
80658			Code:   res.StatusCode,
80659			Header: res.Header,
80660		}
80661	}
80662	if err != nil {
80663		return nil, err
80664	}
80665	defer googleapi.CloseBody(res)
80666	if err := googleapi.CheckResponse(res); err != nil {
80667		return nil, err
80668	}
80669	ret := &Operation{
80670		ServerResponse: googleapi.ServerResponse{
80671			Header:         res.Header,
80672			HTTPStatusCode: res.StatusCode,
80673		},
80674	}
80675	target := &ret
80676	if err := gensupport.DecodeResponse(target, res); err != nil {
80677		return nil, err
80678	}
80679	return ret, nil
80680	// {
80681	//   "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.",
80682	//   "httpMethod": "POST",
80683	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
80684	//   "parameterOrder": [
80685	//     "project",
80686	//     "zone",
80687	//     "instanceGroupManager"
80688	//   ],
80689	//   "parameters": {
80690	//     "instanceGroupManager": {
80691	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
80692	//       "location": "path",
80693	//       "required": true,
80694	//       "type": "string"
80695	//     },
80696	//     "project": {
80697	//       "description": "Project ID for this request.",
80698	//       "location": "path",
80699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80700	//       "required": true,
80701	//       "type": "string"
80702	//     },
80703	//     "requestId": {
80704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80705	//       "location": "query",
80706	//       "type": "string"
80707	//     },
80708	//     "zone": {
80709	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
80710	//       "location": "path",
80711	//       "required": true,
80712	//       "type": "string"
80713	//     }
80714	//   },
80715	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
80716	//   "request": {
80717	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
80718	//   },
80719	//   "response": {
80720	//     "$ref": "Operation"
80721	//   },
80722	//   "scopes": [
80723	//     "https://www.googleapis.com/auth/cloud-platform",
80724	//     "https://www.googleapis.com/auth/compute"
80725	//   ]
80726	// }
80727
80728}
80729
80730// method id "compute.instanceGroupManagers.recreateInstances":
80731
80732type InstanceGroupManagersRecreateInstancesCall struct {
80733	s                                             *Service
80734	project                                       string
80735	zone                                          string
80736	instanceGroupManager                          string
80737	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
80738	urlParams_                                    gensupport.URLParams
80739	ctx_                                          context.Context
80740	header_                                       http.Header
80741}
80742
80743// RecreateInstances: Flags the specified instances in the managed
80744// instance group to be immediately recreated. The instances are deleted
80745// and recreated using the current instance template for the managed
80746// instance group. This operation is marked as DONE when the flag is set
80747// even if the instances have not yet been recreated. You must
80748// separately verify the status of the recreating action with the
80749// listmanagedinstances method.
80750//
80751// If the group is part of a backend service that has enabled connection
80752// draining, it can take up to 60 seconds after the connection draining
80753// duration has elapsed before the VM instance is removed or
80754// deleted.
80755//
80756// You can specify a maximum of 1000 instances with this method per
80757// request.
80758func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
80759	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80760	c.project = project
80761	c.zone = zone
80762	c.instanceGroupManager = instanceGroupManager
80763	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
80764	return c
80765}
80766
80767// RequestId sets the optional parameter "requestId": An optional
80768// request ID to identify requests. Specify a unique request ID so that
80769// if you must retry your request, the server will know to ignore the
80770// request if it has already been completed.
80771//
80772// For example, consider a situation where you make an initial request
80773// and the request times out. If you make the request again with the
80774// same request ID, the server can check if original operation with the
80775// same request ID was received, and if so, will ignore the second
80776// request. This prevents clients from accidentally creating duplicate
80777// commitments.
80778//
80779// The request ID must be a valid UUID with the exception that zero UUID
80780// is not supported (00000000-0000-0000-0000-000000000000).
80781func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
80782	c.urlParams_.Set("requestId", requestId)
80783	return c
80784}
80785
80786// Fields allows partial responses to be retrieved. See
80787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80788// for more information.
80789func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
80790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80791	return c
80792}
80793
80794// Context sets the context to be used in this call's Do method. Any
80795// pending HTTP request will be aborted if the provided context is
80796// canceled.
80797func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
80798	c.ctx_ = ctx
80799	return c
80800}
80801
80802// Header returns an http.Header that can be modified by the caller to
80803// add HTTP headers to the request.
80804func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
80805	if c.header_ == nil {
80806		c.header_ = make(http.Header)
80807	}
80808	return c.header_
80809}
80810
80811func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
80812	reqHeaders := make(http.Header)
80813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
80814	for k, v := range c.header_ {
80815		reqHeaders[k] = v
80816	}
80817	reqHeaders.Set("User-Agent", c.s.userAgent())
80818	var body io.Reader = nil
80819	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
80820	if err != nil {
80821		return nil, err
80822	}
80823	reqHeaders.Set("Content-Type", "application/json")
80824	c.urlParams_.Set("alt", alt)
80825	c.urlParams_.Set("prettyPrint", "false")
80826	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
80827	urls += "?" + c.urlParams_.Encode()
80828	req, err := http.NewRequest("POST", urls, body)
80829	if err != nil {
80830		return nil, err
80831	}
80832	req.Header = reqHeaders
80833	googleapi.Expand(req.URL, map[string]string{
80834		"project":              c.project,
80835		"zone":                 c.zone,
80836		"instanceGroupManager": c.instanceGroupManager,
80837	})
80838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80839}
80840
80841// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
80842// Exactly one of *Operation or error will be non-nil. Any non-2xx
80843// status code is an error. Response headers are in either
80844// *Operation.ServerResponse.Header or (if a response was returned at
80845// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80846// to check whether the returned error was because
80847// http.StatusNotModified was returned.
80848func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80849	gensupport.SetOptions(c.urlParams_, opts...)
80850	res, err := c.doRequest("json")
80851	if res != nil && res.StatusCode == http.StatusNotModified {
80852		if res.Body != nil {
80853			res.Body.Close()
80854		}
80855		return nil, &googleapi.Error{
80856			Code:   res.StatusCode,
80857			Header: res.Header,
80858		}
80859	}
80860	if err != nil {
80861		return nil, err
80862	}
80863	defer googleapi.CloseBody(res)
80864	if err := googleapi.CheckResponse(res); err != nil {
80865		return nil, err
80866	}
80867	ret := &Operation{
80868		ServerResponse: googleapi.ServerResponse{
80869			Header:         res.Header,
80870			HTTPStatusCode: res.StatusCode,
80871		},
80872	}
80873	target := &ret
80874	if err := gensupport.DecodeResponse(target, res); err != nil {
80875		return nil, err
80876	}
80877	return ret, nil
80878	// {
80879	//   "description": "Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
80880	//   "httpMethod": "POST",
80881	//   "id": "compute.instanceGroupManagers.recreateInstances",
80882	//   "parameterOrder": [
80883	//     "project",
80884	//     "zone",
80885	//     "instanceGroupManager"
80886	//   ],
80887	//   "parameters": {
80888	//     "instanceGroupManager": {
80889	//       "description": "The name of the managed instance group.",
80890	//       "location": "path",
80891	//       "required": true,
80892	//       "type": "string"
80893	//     },
80894	//     "project": {
80895	//       "description": "Project ID for this request.",
80896	//       "location": "path",
80897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80898	//       "required": true,
80899	//       "type": "string"
80900	//     },
80901	//     "requestId": {
80902	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80903	//       "location": "query",
80904	//       "type": "string"
80905	//     },
80906	//     "zone": {
80907	//       "description": "The name of the zone where the managed instance group is located.",
80908	//       "location": "path",
80909	//       "required": true,
80910	//       "type": "string"
80911	//     }
80912	//   },
80913	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
80914	//   "request": {
80915	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
80916	//   },
80917	//   "response": {
80918	//     "$ref": "Operation"
80919	//   },
80920	//   "scopes": [
80921	//     "https://www.googleapis.com/auth/cloud-platform",
80922	//     "https://www.googleapis.com/auth/compute"
80923	//   ]
80924	// }
80925
80926}
80927
80928// method id "compute.instanceGroupManagers.resize":
80929
80930type InstanceGroupManagersResizeCall struct {
80931	s                    *Service
80932	project              string
80933	zone                 string
80934	instanceGroupManager string
80935	urlParams_           gensupport.URLParams
80936	ctx_                 context.Context
80937	header_              http.Header
80938}
80939
80940// Resize: Resizes the managed instance group. If you increase the size,
80941// the group creates new instances using the current instance template.
80942// If you decrease the size, the group deletes instances. The resize
80943// operation is marked DONE when the resize actions are scheduled even
80944// if the group has not yet added or deleted any instances. You must
80945// separately verify the status of the creating or deleting actions with
80946// the listmanagedinstances method.
80947//
80948// When resizing down, the instance group arbitrarily chooses the order
80949// in which VMs are deleted. The group takes into account some VM
80950// attributes when making the selection including:
80951//
80952// + The status of the VM instance. + The health of the VM instance. +
80953// The instance template version the VM is based on. + For regional
80954// managed instance groups, the location of the VM instance.
80955//
80956// This list is subject to change.
80957//
80958// If the group is part of a backend service that has enabled connection
80959// draining, it can take up to 60 seconds after the connection draining
80960// duration has elapsed before the VM instance is removed or deleted.
80961func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
80962	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80963	c.project = project
80964	c.zone = zone
80965	c.instanceGroupManager = instanceGroupManager
80966	c.urlParams_.Set("size", fmt.Sprint(size))
80967	return c
80968}
80969
80970// RequestId sets the optional parameter "requestId": An optional
80971// request ID to identify requests. Specify a unique request ID so that
80972// if you must retry your request, the server will know to ignore the
80973// request if it has already been completed.
80974//
80975// For example, consider a situation where you make an initial request
80976// and the request times out. If you make the request again with the
80977// same request ID, the server can check if original operation with the
80978// same request ID was received, and if so, will ignore the second
80979// request. This prevents clients from accidentally creating duplicate
80980// commitments.
80981//
80982// The request ID must be a valid UUID with the exception that zero UUID
80983// is not supported (00000000-0000-0000-0000-000000000000).
80984func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
80985	c.urlParams_.Set("requestId", requestId)
80986	return c
80987}
80988
80989// Fields allows partial responses to be retrieved. See
80990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80991// for more information.
80992func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
80993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80994	return c
80995}
80996
80997// Context sets the context to be used in this call's Do method. Any
80998// pending HTTP request will be aborted if the provided context is
80999// canceled.
81000func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
81001	c.ctx_ = ctx
81002	return c
81003}
81004
81005// Header returns an http.Header that can be modified by the caller to
81006// add HTTP headers to the request.
81007func (c *InstanceGroupManagersResizeCall) Header() http.Header {
81008	if c.header_ == nil {
81009		c.header_ = make(http.Header)
81010	}
81011	return c.header_
81012}
81013
81014func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
81015	reqHeaders := make(http.Header)
81016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
81017	for k, v := range c.header_ {
81018		reqHeaders[k] = v
81019	}
81020	reqHeaders.Set("User-Agent", c.s.userAgent())
81021	var body io.Reader = nil
81022	c.urlParams_.Set("alt", alt)
81023	c.urlParams_.Set("prettyPrint", "false")
81024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
81025	urls += "?" + c.urlParams_.Encode()
81026	req, err := http.NewRequest("POST", urls, body)
81027	if err != nil {
81028		return nil, err
81029	}
81030	req.Header = reqHeaders
81031	googleapi.Expand(req.URL, map[string]string{
81032		"project":              c.project,
81033		"zone":                 c.zone,
81034		"instanceGroupManager": c.instanceGroupManager,
81035	})
81036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81037}
81038
81039// Do executes the "compute.instanceGroupManagers.resize" call.
81040// Exactly one of *Operation or error will be non-nil. Any non-2xx
81041// status code is an error. Response headers are in either
81042// *Operation.ServerResponse.Header or (if a response was returned at
81043// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81044// to check whether the returned error was because
81045// http.StatusNotModified was returned.
81046func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81047	gensupport.SetOptions(c.urlParams_, opts...)
81048	res, err := c.doRequest("json")
81049	if res != nil && res.StatusCode == http.StatusNotModified {
81050		if res.Body != nil {
81051			res.Body.Close()
81052		}
81053		return nil, &googleapi.Error{
81054			Code:   res.StatusCode,
81055			Header: res.Header,
81056		}
81057	}
81058	if err != nil {
81059		return nil, err
81060	}
81061	defer googleapi.CloseBody(res)
81062	if err := googleapi.CheckResponse(res); err != nil {
81063		return nil, err
81064	}
81065	ret := &Operation{
81066		ServerResponse: googleapi.ServerResponse{
81067			Header:         res.Header,
81068			HTTPStatusCode: res.StatusCode,
81069		},
81070	}
81071	target := &ret
81072	if err := gensupport.DecodeResponse(target, res); err != nil {
81073		return nil, err
81074	}
81075	return ret, nil
81076	// {
81077	//   "description": "Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.\n\nWhen resizing down, the instance group arbitrarily chooses the order in which VMs are deleted. The group takes into account some VM attributes when making the selection including:\n\n+ The status of the VM instance. + The health of the VM instance. + The instance template version the VM is based on. + For regional managed instance groups, the location of the VM instance.\n\nThis list is subject to change.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.",
81078	//   "httpMethod": "POST",
81079	//   "id": "compute.instanceGroupManagers.resize",
81080	//   "parameterOrder": [
81081	//     "project",
81082	//     "zone",
81083	//     "instanceGroupManager",
81084	//     "size"
81085	//   ],
81086	//   "parameters": {
81087	//     "instanceGroupManager": {
81088	//       "description": "The name of the managed instance group.",
81089	//       "location": "path",
81090	//       "required": true,
81091	//       "type": "string"
81092	//     },
81093	//     "project": {
81094	//       "description": "Project ID for this request.",
81095	//       "location": "path",
81096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81097	//       "required": true,
81098	//       "type": "string"
81099	//     },
81100	//     "requestId": {
81101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81102	//       "location": "query",
81103	//       "type": "string"
81104	//     },
81105	//     "size": {
81106	//       "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.",
81107	//       "format": "int32",
81108	//       "location": "query",
81109	//       "required": true,
81110	//       "type": "integer"
81111	//     },
81112	//     "zone": {
81113	//       "description": "The name of the zone where the managed instance group is located.",
81114	//       "location": "path",
81115	//       "required": true,
81116	//       "type": "string"
81117	//     }
81118	//   },
81119	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
81120	//   "response": {
81121	//     "$ref": "Operation"
81122	//   },
81123	//   "scopes": [
81124	//     "https://www.googleapis.com/auth/cloud-platform",
81125	//     "https://www.googleapis.com/auth/compute"
81126	//   ]
81127	// }
81128
81129}
81130
81131// method id "compute.instanceGroupManagers.resizeAdvanced":
81132
81133type InstanceGroupManagersResizeAdvancedCall struct {
81134	s                                          *Service
81135	project                                    string
81136	zone                                       string
81137	instanceGroupManager                       string
81138	instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest
81139	urlParams_                                 gensupport.URLParams
81140	ctx_                                       context.Context
81141	header_                                    http.Header
81142}
81143
81144// ResizeAdvanced: Resizes the managed instance group with advanced
81145// configuration options like disabling creation retries. This is an
81146// extended version of the resize method.
81147//
81148// If you increase the size of the instance group, the group creates new
81149// instances using the current instance template. If you decrease the
81150// size, the group deletes instances. The resize operation is marked
81151// DONE when the resize actions are scheduled even if the group has not
81152// yet added or deleted any instances. You must separately verify the
81153// status of the creating, creatingWithoutRetries, or deleting actions
81154// with the get or listmanagedinstances method.
81155//
81156// If the group is part of a backend service that has enabled connection
81157// draining, it can take up to 60 seconds after the connection draining
81158// duration has elapsed before the VM instance is removed or deleted.
81159func (r *InstanceGroupManagersService) ResizeAdvanced(project string, zone string, instanceGroupManager string, instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest) *InstanceGroupManagersResizeAdvancedCall {
81160	c := &InstanceGroupManagersResizeAdvancedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81161	c.project = project
81162	c.zone = zone
81163	c.instanceGroupManager = instanceGroupManager
81164	c.instancegroupmanagersresizeadvancedrequest = instancegroupmanagersresizeadvancedrequest
81165	return c
81166}
81167
81168// RequestId sets the optional parameter "requestId": An optional
81169// request ID to identify requests. Specify a unique request ID so that
81170// if you must retry your request, the server will know to ignore the
81171// request if it has already been completed.
81172//
81173// For example, consider a situation where you make an initial request
81174// and the request times out. If you make the request again with the
81175// same request ID, the server can check if original operation with the
81176// same request ID was received, and if so, will ignore the second
81177// request. This prevents clients from accidentally creating duplicate
81178// commitments.
81179//
81180// The request ID must be a valid UUID with the exception that zero UUID
81181// is not supported (00000000-0000-0000-0000-000000000000).
81182func (c *InstanceGroupManagersResizeAdvancedCall) RequestId(requestId string) *InstanceGroupManagersResizeAdvancedCall {
81183	c.urlParams_.Set("requestId", requestId)
81184	return c
81185}
81186
81187// Fields allows partial responses to be retrieved. See
81188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81189// for more information.
81190func (c *InstanceGroupManagersResizeAdvancedCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeAdvancedCall {
81191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81192	return c
81193}
81194
81195// Context sets the context to be used in this call's Do method. Any
81196// pending HTTP request will be aborted if the provided context is
81197// canceled.
81198func (c *InstanceGroupManagersResizeAdvancedCall) Context(ctx context.Context) *InstanceGroupManagersResizeAdvancedCall {
81199	c.ctx_ = ctx
81200	return c
81201}
81202
81203// Header returns an http.Header that can be modified by the caller to
81204// add HTTP headers to the request.
81205func (c *InstanceGroupManagersResizeAdvancedCall) Header() http.Header {
81206	if c.header_ == nil {
81207		c.header_ = make(http.Header)
81208	}
81209	return c.header_
81210}
81211
81212func (c *InstanceGroupManagersResizeAdvancedCall) doRequest(alt string) (*http.Response, error) {
81213	reqHeaders := make(http.Header)
81214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
81215	for k, v := range c.header_ {
81216		reqHeaders[k] = v
81217	}
81218	reqHeaders.Set("User-Agent", c.s.userAgent())
81219	var body io.Reader = nil
81220	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersresizeadvancedrequest)
81221	if err != nil {
81222		return nil, err
81223	}
81224	reqHeaders.Set("Content-Type", "application/json")
81225	c.urlParams_.Set("alt", alt)
81226	c.urlParams_.Set("prettyPrint", "false")
81227	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced")
81228	urls += "?" + c.urlParams_.Encode()
81229	req, err := http.NewRequest("POST", urls, body)
81230	if err != nil {
81231		return nil, err
81232	}
81233	req.Header = reqHeaders
81234	googleapi.Expand(req.URL, map[string]string{
81235		"project":              c.project,
81236		"zone":                 c.zone,
81237		"instanceGroupManager": c.instanceGroupManager,
81238	})
81239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81240}
81241
81242// Do executes the "compute.instanceGroupManagers.resizeAdvanced" call.
81243// Exactly one of *Operation or error will be non-nil. Any non-2xx
81244// status code is an error. Response headers are in either
81245// *Operation.ServerResponse.Header or (if a response was returned at
81246// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81247// to check whether the returned error was because
81248// http.StatusNotModified was returned.
81249func (c *InstanceGroupManagersResizeAdvancedCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81250	gensupport.SetOptions(c.urlParams_, opts...)
81251	res, err := c.doRequest("json")
81252	if res != nil && res.StatusCode == http.StatusNotModified {
81253		if res.Body != nil {
81254			res.Body.Close()
81255		}
81256		return nil, &googleapi.Error{
81257			Code:   res.StatusCode,
81258			Header: res.Header,
81259		}
81260	}
81261	if err != nil {
81262		return nil, err
81263	}
81264	defer googleapi.CloseBody(res)
81265	if err := googleapi.CheckResponse(res); err != nil {
81266		return nil, err
81267	}
81268	ret := &Operation{
81269		ServerResponse: googleapi.ServerResponse{
81270			Header:         res.Header,
81271			HTTPStatusCode: res.StatusCode,
81272		},
81273	}
81274	target := &ret
81275	if err := gensupport.DecodeResponse(target, res); err != nil {
81276		return nil, err
81277	}
81278	return ret, nil
81279	// {
81280	//   "description": "Resizes the managed instance group with advanced configuration options like disabling creation retries. This is an extended version of the resize method.\n\nIf you increase the size of the instance group, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating, creatingWithoutRetries, or deleting actions with the get or listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.",
81281	//   "httpMethod": "POST",
81282	//   "id": "compute.instanceGroupManagers.resizeAdvanced",
81283	//   "parameterOrder": [
81284	//     "project",
81285	//     "zone",
81286	//     "instanceGroupManager"
81287	//   ],
81288	//   "parameters": {
81289	//     "instanceGroupManager": {
81290	//       "description": "The name of the managed instance group.",
81291	//       "location": "path",
81292	//       "required": true,
81293	//       "type": "string"
81294	//     },
81295	//     "project": {
81296	//       "description": "Project ID for this request.",
81297	//       "location": "path",
81298	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81299	//       "required": true,
81300	//       "type": "string"
81301	//     },
81302	//     "requestId": {
81303	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81304	//       "location": "query",
81305	//       "type": "string"
81306	//     },
81307	//     "zone": {
81308	//       "description": "The name of the zone where the managed instance group is located.",
81309	//       "location": "path",
81310	//       "required": true,
81311	//       "type": "string"
81312	//     }
81313	//   },
81314	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced",
81315	//   "request": {
81316	//     "$ref": "InstanceGroupManagersResizeAdvancedRequest"
81317	//   },
81318	//   "response": {
81319	//     "$ref": "Operation"
81320	//   },
81321	//   "scopes": [
81322	//     "https://www.googleapis.com/auth/cloud-platform",
81323	//     "https://www.googleapis.com/auth/compute"
81324	//   ]
81325	// }
81326
81327}
81328
81329// method id "compute.instanceGroupManagers.setAutoHealingPolicies":
81330
81331type InstanceGroupManagersSetAutoHealingPoliciesCall struct {
81332	s                                          *Service
81333	project                                    string
81334	zone                                       string
81335	instanceGroupManager                       string
81336	instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest
81337	urlParams_                                 gensupport.URLParams
81338	ctx_                                       context.Context
81339	header_                                    http.Header
81340}
81341
81342// SetAutoHealingPolicies: Modifies the autohealing policies.
81343// [Deprecated] This method is deprecated. Please use Patch instead.
81344func (r *InstanceGroupManagersService) SetAutoHealingPolicies(project string, zone string, instanceGroupManager string, instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest) *InstanceGroupManagersSetAutoHealingPoliciesCall {
81345	c := &InstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81346	c.project = project
81347	c.zone = zone
81348	c.instanceGroupManager = instanceGroupManager
81349	c.instancegroupmanagerssetautohealingrequest = instancegroupmanagerssetautohealingrequest
81350	return c
81351}
81352
81353// RequestId sets the optional parameter "requestId": An optional
81354// request ID to identify requests. Specify a unique request ID so that
81355// if you must retry your request, the server will know to ignore the
81356// request if it has already been completed.
81357//
81358// For example, consider a situation where you make an initial request
81359// and the request times out. If you make the request again with the
81360// same request ID, the server can check if original operation with the
81361// same request ID was received, and if so, will ignore the second
81362// request. This prevents clients from accidentally creating duplicate
81363// commitments.
81364//
81365// The request ID must be a valid UUID with the exception that zero UUID
81366// is not supported (00000000-0000-0000-0000-000000000000).
81367func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *InstanceGroupManagersSetAutoHealingPoliciesCall {
81368	c.urlParams_.Set("requestId", requestId)
81369	return c
81370}
81371
81372// Fields allows partial responses to be retrieved. See
81373// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81374// for more information.
81375func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetAutoHealingPoliciesCall {
81376	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81377	return c
81378}
81379
81380// Context sets the context to be used in this call's Do method. Any
81381// pending HTTP request will be aborted if the provided context is
81382// canceled.
81383func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *InstanceGroupManagersSetAutoHealingPoliciesCall {
81384	c.ctx_ = ctx
81385	return c
81386}
81387
81388// Header returns an http.Header that can be modified by the caller to
81389// add HTTP headers to the request.
81390func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
81391	if c.header_ == nil {
81392		c.header_ = make(http.Header)
81393	}
81394	return c.header_
81395}
81396
81397func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
81398	reqHeaders := make(http.Header)
81399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
81400	for k, v := range c.header_ {
81401		reqHeaders[k] = v
81402	}
81403	reqHeaders.Set("User-Agent", c.s.userAgent())
81404	var body io.Reader = nil
81405	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetautohealingrequest)
81406	if err != nil {
81407		return nil, err
81408	}
81409	reqHeaders.Set("Content-Type", "application/json")
81410	c.urlParams_.Set("alt", alt)
81411	c.urlParams_.Set("prettyPrint", "false")
81412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
81413	urls += "?" + c.urlParams_.Encode()
81414	req, err := http.NewRequest("POST", urls, body)
81415	if err != nil {
81416		return nil, err
81417	}
81418	req.Header = reqHeaders
81419	googleapi.Expand(req.URL, map[string]string{
81420		"project":              c.project,
81421		"zone":                 c.zone,
81422		"instanceGroupManager": c.instanceGroupManager,
81423	})
81424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81425}
81426
81427// Do executes the "compute.instanceGroupManagers.setAutoHealingPolicies" call.
81428// Exactly one of *Operation or error will be non-nil. Any non-2xx
81429// status code is an error. Response headers are in either
81430// *Operation.ServerResponse.Header or (if a response was returned at
81431// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81432// to check whether the returned error was because
81433// http.StatusNotModified was returned.
81434func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81435	gensupport.SetOptions(c.urlParams_, opts...)
81436	res, err := c.doRequest("json")
81437	if res != nil && res.StatusCode == http.StatusNotModified {
81438		if res.Body != nil {
81439			res.Body.Close()
81440		}
81441		return nil, &googleapi.Error{
81442			Code:   res.StatusCode,
81443			Header: res.Header,
81444		}
81445	}
81446	if err != nil {
81447		return nil, err
81448	}
81449	defer googleapi.CloseBody(res)
81450	if err := googleapi.CheckResponse(res); err != nil {
81451		return nil, err
81452	}
81453	ret := &Operation{
81454		ServerResponse: googleapi.ServerResponse{
81455			Header:         res.Header,
81456			HTTPStatusCode: res.StatusCode,
81457		},
81458	}
81459	target := &ret
81460	if err := gensupport.DecodeResponse(target, res); err != nil {
81461		return nil, err
81462	}
81463	return ret, nil
81464	// {
81465	//   "description": "Modifies the autohealing policies. [Deprecated] This method is deprecated. Please use Patch instead.",
81466	//   "httpMethod": "POST",
81467	//   "id": "compute.instanceGroupManagers.setAutoHealingPolicies",
81468	//   "parameterOrder": [
81469	//     "project",
81470	//     "zone",
81471	//     "instanceGroupManager"
81472	//   ],
81473	//   "parameters": {
81474	//     "instanceGroupManager": {
81475	//       "description": "The name of the instance group manager.",
81476	//       "location": "path",
81477	//       "required": true,
81478	//       "type": "string"
81479	//     },
81480	//     "project": {
81481	//       "description": "Project ID for this request.",
81482	//       "location": "path",
81483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81484	//       "required": true,
81485	//       "type": "string"
81486	//     },
81487	//     "requestId": {
81488	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81489	//       "location": "query",
81490	//       "type": "string"
81491	//     },
81492	//     "zone": {
81493	//       "description": "The name of the zone where the managed instance group is located.",
81494	//       "location": "path",
81495	//       "required": true,
81496	//       "type": "string"
81497	//     }
81498	//   },
81499	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
81500	//   "request": {
81501	//     "$ref": "InstanceGroupManagersSetAutoHealingRequest"
81502	//   },
81503	//   "response": {
81504	//     "$ref": "Operation"
81505	//   },
81506	//   "scopes": [
81507	//     "https://www.googleapis.com/auth/cloud-platform",
81508	//     "https://www.googleapis.com/auth/compute"
81509	//   ]
81510	// }
81511
81512}
81513
81514// method id "compute.instanceGroupManagers.setInstanceTemplate":
81515
81516type InstanceGroupManagersSetInstanceTemplateCall struct {
81517	s                                               *Service
81518	project                                         string
81519	zone                                            string
81520	instanceGroupManager                            string
81521	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
81522	urlParams_                                      gensupport.URLParams
81523	ctx_                                            context.Context
81524	header_                                         http.Header
81525}
81526
81527// SetInstanceTemplate: Specifies the instance template to use when
81528// creating new instances in this group. The templates for existing
81529// instances in the group do not change unless you recreate them.
81530func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
81531	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81532	c.project = project
81533	c.zone = zone
81534	c.instanceGroupManager = instanceGroupManager
81535	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
81536	return c
81537}
81538
81539// RequestId sets the optional parameter "requestId": An optional
81540// request ID to identify requests. Specify a unique request ID so that
81541// if you must retry your request, the server will know to ignore the
81542// request if it has already been completed.
81543//
81544// For example, consider a situation where you make an initial request
81545// and the request times out. If you make the request again with the
81546// same request ID, the server can check if original operation with the
81547// same request ID was received, and if so, will ignore the second
81548// request. This prevents clients from accidentally creating duplicate
81549// commitments.
81550//
81551// The request ID must be a valid UUID with the exception that zero UUID
81552// is not supported (00000000-0000-0000-0000-000000000000).
81553func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
81554	c.urlParams_.Set("requestId", requestId)
81555	return c
81556}
81557
81558// Fields allows partial responses to be retrieved. See
81559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81560// for more information.
81561func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
81562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81563	return c
81564}
81565
81566// Context sets the context to be used in this call's Do method. Any
81567// pending HTTP request will be aborted if the provided context is
81568// canceled.
81569func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
81570	c.ctx_ = ctx
81571	return c
81572}
81573
81574// Header returns an http.Header that can be modified by the caller to
81575// add HTTP headers to the request.
81576func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
81577	if c.header_ == nil {
81578		c.header_ = make(http.Header)
81579	}
81580	return c.header_
81581}
81582
81583func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
81584	reqHeaders := make(http.Header)
81585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
81586	for k, v := range c.header_ {
81587		reqHeaders[k] = v
81588	}
81589	reqHeaders.Set("User-Agent", c.s.userAgent())
81590	var body io.Reader = nil
81591	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
81592	if err != nil {
81593		return nil, err
81594	}
81595	reqHeaders.Set("Content-Type", "application/json")
81596	c.urlParams_.Set("alt", alt)
81597	c.urlParams_.Set("prettyPrint", "false")
81598	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
81599	urls += "?" + c.urlParams_.Encode()
81600	req, err := http.NewRequest("POST", urls, body)
81601	if err != nil {
81602		return nil, err
81603	}
81604	req.Header = reqHeaders
81605	googleapi.Expand(req.URL, map[string]string{
81606		"project":              c.project,
81607		"zone":                 c.zone,
81608		"instanceGroupManager": c.instanceGroupManager,
81609	})
81610	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81611}
81612
81613// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
81614// Exactly one of *Operation or error will be non-nil. Any non-2xx
81615// status code is an error. Response headers are in either
81616// *Operation.ServerResponse.Header or (if a response was returned at
81617// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81618// to check whether the returned error was because
81619// http.StatusNotModified was returned.
81620func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81621	gensupport.SetOptions(c.urlParams_, opts...)
81622	res, err := c.doRequest("json")
81623	if res != nil && res.StatusCode == http.StatusNotModified {
81624		if res.Body != nil {
81625			res.Body.Close()
81626		}
81627		return nil, &googleapi.Error{
81628			Code:   res.StatusCode,
81629			Header: res.Header,
81630		}
81631	}
81632	if err != nil {
81633		return nil, err
81634	}
81635	defer googleapi.CloseBody(res)
81636	if err := googleapi.CheckResponse(res); err != nil {
81637		return nil, err
81638	}
81639	ret := &Operation{
81640		ServerResponse: googleapi.ServerResponse{
81641			Header:         res.Header,
81642			HTTPStatusCode: res.StatusCode,
81643		},
81644	}
81645	target := &ret
81646	if err := gensupport.DecodeResponse(target, res); err != nil {
81647		return nil, err
81648	}
81649	return ret, nil
81650	// {
81651	//   "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 recreate them.",
81652	//   "httpMethod": "POST",
81653	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
81654	//   "parameterOrder": [
81655	//     "project",
81656	//     "zone",
81657	//     "instanceGroupManager"
81658	//   ],
81659	//   "parameters": {
81660	//     "instanceGroupManager": {
81661	//       "description": "The name of the managed instance group.",
81662	//       "location": "path",
81663	//       "required": true,
81664	//       "type": "string"
81665	//     },
81666	//     "project": {
81667	//       "description": "Project ID for this request.",
81668	//       "location": "path",
81669	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81670	//       "required": true,
81671	//       "type": "string"
81672	//     },
81673	//     "requestId": {
81674	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81675	//       "location": "query",
81676	//       "type": "string"
81677	//     },
81678	//     "zone": {
81679	//       "description": "The name of the zone where the managed instance group is located.",
81680	//       "location": "path",
81681	//       "required": true,
81682	//       "type": "string"
81683	//     }
81684	//   },
81685	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
81686	//   "request": {
81687	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
81688	//   },
81689	//   "response": {
81690	//     "$ref": "Operation"
81691	//   },
81692	//   "scopes": [
81693	//     "https://www.googleapis.com/auth/cloud-platform",
81694	//     "https://www.googleapis.com/auth/compute"
81695	//   ]
81696	// }
81697
81698}
81699
81700// method id "compute.instanceGroupManagers.setTargetPools":
81701
81702type InstanceGroupManagersSetTargetPoolsCall struct {
81703	s                                          *Service
81704	project                                    string
81705	zone                                       string
81706	instanceGroupManager                       string
81707	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
81708	urlParams_                                 gensupport.URLParams
81709	ctx_                                       context.Context
81710	header_                                    http.Header
81711}
81712
81713// SetTargetPools: Modifies the target pools to which all instances in
81714// this managed instance group are assigned. The target pools
81715// automatically apply to all of the instances in the managed instance
81716// group. This operation is marked DONE when you make the request even
81717// if the instances have not yet been added to their target pools. The
81718// change might take some time to apply to all of the instances in the
81719// group depending on the size of the group.
81720func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
81721	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81722	c.project = project
81723	c.zone = zone
81724	c.instanceGroupManager = instanceGroupManager
81725	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
81726	return c
81727}
81728
81729// RequestId sets the optional parameter "requestId": An optional
81730// request ID to identify requests. Specify a unique request ID so that
81731// if you must retry your request, the server will know to ignore the
81732// request if it has already been completed.
81733//
81734// For example, consider a situation where you make an initial request
81735// and the request times out. If you make the request again with the
81736// same request ID, the server can check if original operation with the
81737// same request ID was received, and if so, will ignore the second
81738// request. This prevents clients from accidentally creating duplicate
81739// commitments.
81740//
81741// The request ID must be a valid UUID with the exception that zero UUID
81742// is not supported (00000000-0000-0000-0000-000000000000).
81743func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
81744	c.urlParams_.Set("requestId", requestId)
81745	return c
81746}
81747
81748// Fields allows partial responses to be retrieved. See
81749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81750// for more information.
81751func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
81752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81753	return c
81754}
81755
81756// Context sets the context to be used in this call's Do method. Any
81757// pending HTTP request will be aborted if the provided context is
81758// canceled.
81759func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
81760	c.ctx_ = ctx
81761	return c
81762}
81763
81764// Header returns an http.Header that can be modified by the caller to
81765// add HTTP headers to the request.
81766func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
81767	if c.header_ == nil {
81768		c.header_ = make(http.Header)
81769	}
81770	return c.header_
81771}
81772
81773func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
81774	reqHeaders := make(http.Header)
81775	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
81776	for k, v := range c.header_ {
81777		reqHeaders[k] = v
81778	}
81779	reqHeaders.Set("User-Agent", c.s.userAgent())
81780	var body io.Reader = nil
81781	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
81782	if err != nil {
81783		return nil, err
81784	}
81785	reqHeaders.Set("Content-Type", "application/json")
81786	c.urlParams_.Set("alt", alt)
81787	c.urlParams_.Set("prettyPrint", "false")
81788	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
81789	urls += "?" + c.urlParams_.Encode()
81790	req, err := http.NewRequest("POST", urls, body)
81791	if err != nil {
81792		return nil, err
81793	}
81794	req.Header = reqHeaders
81795	googleapi.Expand(req.URL, map[string]string{
81796		"project":              c.project,
81797		"zone":                 c.zone,
81798		"instanceGroupManager": c.instanceGroupManager,
81799	})
81800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81801}
81802
81803// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
81804// Exactly one of *Operation or error will be non-nil. Any non-2xx
81805// status code is an error. Response headers are in either
81806// *Operation.ServerResponse.Header or (if a response was returned at
81807// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81808// to check whether the returned error was because
81809// http.StatusNotModified was returned.
81810func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81811	gensupport.SetOptions(c.urlParams_, opts...)
81812	res, err := c.doRequest("json")
81813	if res != nil && res.StatusCode == http.StatusNotModified {
81814		if res.Body != nil {
81815			res.Body.Close()
81816		}
81817		return nil, &googleapi.Error{
81818			Code:   res.StatusCode,
81819			Header: res.Header,
81820		}
81821	}
81822	if err != nil {
81823		return nil, err
81824	}
81825	defer googleapi.CloseBody(res)
81826	if err := googleapi.CheckResponse(res); err != nil {
81827		return nil, err
81828	}
81829	ret := &Operation{
81830		ServerResponse: googleapi.ServerResponse{
81831			Header:         res.Header,
81832			HTTPStatusCode: res.StatusCode,
81833		},
81834	}
81835	target := &ret
81836	if err := gensupport.DecodeResponse(target, res); err != nil {
81837		return nil, err
81838	}
81839	return ret, nil
81840	// {
81841	//   "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.",
81842	//   "httpMethod": "POST",
81843	//   "id": "compute.instanceGroupManagers.setTargetPools",
81844	//   "parameterOrder": [
81845	//     "project",
81846	//     "zone",
81847	//     "instanceGroupManager"
81848	//   ],
81849	//   "parameters": {
81850	//     "instanceGroupManager": {
81851	//       "description": "The name of the managed instance group.",
81852	//       "location": "path",
81853	//       "required": true,
81854	//       "type": "string"
81855	//     },
81856	//     "project": {
81857	//       "description": "Project ID for this request.",
81858	//       "location": "path",
81859	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81860	//       "required": true,
81861	//       "type": "string"
81862	//     },
81863	//     "requestId": {
81864	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81865	//       "location": "query",
81866	//       "type": "string"
81867	//     },
81868	//     "zone": {
81869	//       "description": "The name of the zone where the managed instance group is located.",
81870	//       "location": "path",
81871	//       "required": true,
81872	//       "type": "string"
81873	//     }
81874	//   },
81875	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
81876	//   "request": {
81877	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
81878	//   },
81879	//   "response": {
81880	//     "$ref": "Operation"
81881	//   },
81882	//   "scopes": [
81883	//     "https://www.googleapis.com/auth/cloud-platform",
81884	//     "https://www.googleapis.com/auth/compute"
81885	//   ]
81886	// }
81887
81888}
81889
81890// method id "compute.instanceGroupManagers.testIamPermissions":
81891
81892type InstanceGroupManagersTestIamPermissionsCall struct {
81893	s                      *Service
81894	project                string
81895	zone                   string
81896	resource               string
81897	testpermissionsrequest *TestPermissionsRequest
81898	urlParams_             gensupport.URLParams
81899	ctx_                   context.Context
81900	header_                http.Header
81901}
81902
81903// TestIamPermissions: Returns permissions that a caller has on the
81904// specified resource.
81905func (r *InstanceGroupManagersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupManagersTestIamPermissionsCall {
81906	c := &InstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81907	c.project = project
81908	c.zone = zone
81909	c.resource = resource
81910	c.testpermissionsrequest = testpermissionsrequest
81911	return c
81912}
81913
81914// Fields allows partial responses to be retrieved. See
81915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81916// for more information.
81917func (c *InstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersTestIamPermissionsCall {
81918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81919	return c
81920}
81921
81922// Context sets the context to be used in this call's Do method. Any
81923// pending HTTP request will be aborted if the provided context is
81924// canceled.
81925func (c *InstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupManagersTestIamPermissionsCall {
81926	c.ctx_ = ctx
81927	return c
81928}
81929
81930// Header returns an http.Header that can be modified by the caller to
81931// add HTTP headers to the request.
81932func (c *InstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
81933	if c.header_ == nil {
81934		c.header_ = make(http.Header)
81935	}
81936	return c.header_
81937}
81938
81939func (c *InstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
81940	reqHeaders := make(http.Header)
81941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
81942	for k, v := range c.header_ {
81943		reqHeaders[k] = v
81944	}
81945	reqHeaders.Set("User-Agent", c.s.userAgent())
81946	var body io.Reader = nil
81947	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
81948	if err != nil {
81949		return nil, err
81950	}
81951	reqHeaders.Set("Content-Type", "application/json")
81952	c.urlParams_.Set("alt", alt)
81953	c.urlParams_.Set("prettyPrint", "false")
81954	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions")
81955	urls += "?" + c.urlParams_.Encode()
81956	req, err := http.NewRequest("POST", urls, body)
81957	if err != nil {
81958		return nil, err
81959	}
81960	req.Header = reqHeaders
81961	googleapi.Expand(req.URL, map[string]string{
81962		"project":  c.project,
81963		"zone":     c.zone,
81964		"resource": c.resource,
81965	})
81966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81967}
81968
81969// Do executes the "compute.instanceGroupManagers.testIamPermissions" call.
81970// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
81971// non-2xx status code is an error. Response headers are in either
81972// *TestPermissionsResponse.ServerResponse.Header or (if a response was
81973// returned at all) in error.(*googleapi.Error).Header. Use
81974// googleapi.IsNotModified to check whether the returned error was
81975// because http.StatusNotModified was returned.
81976func (c *InstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
81977	gensupport.SetOptions(c.urlParams_, opts...)
81978	res, err := c.doRequest("json")
81979	if res != nil && res.StatusCode == http.StatusNotModified {
81980		if res.Body != nil {
81981			res.Body.Close()
81982		}
81983		return nil, &googleapi.Error{
81984			Code:   res.StatusCode,
81985			Header: res.Header,
81986		}
81987	}
81988	if err != nil {
81989		return nil, err
81990	}
81991	defer googleapi.CloseBody(res)
81992	if err := googleapi.CheckResponse(res); err != nil {
81993		return nil, err
81994	}
81995	ret := &TestPermissionsResponse{
81996		ServerResponse: googleapi.ServerResponse{
81997			Header:         res.Header,
81998			HTTPStatusCode: res.StatusCode,
81999		},
82000	}
82001	target := &ret
82002	if err := gensupport.DecodeResponse(target, res); err != nil {
82003		return nil, err
82004	}
82005	return ret, nil
82006	// {
82007	//   "description": "Returns permissions that a caller has on the specified resource.",
82008	//   "httpMethod": "POST",
82009	//   "id": "compute.instanceGroupManagers.testIamPermissions",
82010	//   "parameterOrder": [
82011	//     "project",
82012	//     "zone",
82013	//     "resource"
82014	//   ],
82015	//   "parameters": {
82016	//     "project": {
82017	//       "description": "Project ID for this request.",
82018	//       "location": "path",
82019	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82020	//       "required": true,
82021	//       "type": "string"
82022	//     },
82023	//     "resource": {
82024	//       "description": "Name or id of the resource for this request.",
82025	//       "location": "path",
82026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82027	//       "required": true,
82028	//       "type": "string"
82029	//     },
82030	//     "zone": {
82031	//       "description": "The name of the zone for this request.",
82032	//       "location": "path",
82033	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82034	//       "required": true,
82035	//       "type": "string"
82036	//     }
82037	//   },
82038	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions",
82039	//   "request": {
82040	//     "$ref": "TestPermissionsRequest"
82041	//   },
82042	//   "response": {
82043	//     "$ref": "TestPermissionsResponse"
82044	//   },
82045	//   "scopes": [
82046	//     "https://www.googleapis.com/auth/cloud-platform",
82047	//     "https://www.googleapis.com/auth/compute",
82048	//     "https://www.googleapis.com/auth/compute.readonly"
82049	//   ]
82050	// }
82051
82052}
82053
82054// method id "compute.instanceGroupManagers.update":
82055
82056type InstanceGroupManagersUpdateCall struct {
82057	s                    *Service
82058	project              string
82059	zone                 string
82060	instanceGroupManager string
82061	instancegroupmanager *InstanceGroupManager
82062	urlParams_           gensupport.URLParams
82063	ctx_                 context.Context
82064	header_              http.Header
82065}
82066
82067// Update: Updates a managed instance group using the information that
82068// you specify in the request. This operation is marked as DONE when the
82069// group is updated even if the instances in the group have not yet been
82070// updated. You must separately verify the status of the individual
82071// instances with the listManagedInstances method.
82072func (r *InstanceGroupManagersService) Update(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersUpdateCall {
82073	c := &InstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82074	c.project = project
82075	c.zone = zone
82076	c.instanceGroupManager = instanceGroupManager
82077	c.instancegroupmanager = instancegroupmanager
82078	return c
82079}
82080
82081// RequestId sets the optional parameter "requestId": An optional
82082// request ID to identify requests. Specify a unique request ID so that
82083// if you must retry your request, the server will know to ignore the
82084// request if it has already been completed.
82085//
82086// For example, consider a situation where you make an initial request
82087// and the request times out. If you make the request again with the
82088// same request ID, the server can check if original operation with the
82089// same request ID was received, and if so, will ignore the second
82090// request. This prevents clients from accidentally creating duplicate
82091// commitments.
82092//
82093// The request ID must be a valid UUID with the exception that zero UUID
82094// is not supported (00000000-0000-0000-0000-000000000000).
82095func (c *InstanceGroupManagersUpdateCall) RequestId(requestId string) *InstanceGroupManagersUpdateCall {
82096	c.urlParams_.Set("requestId", requestId)
82097	return c
82098}
82099
82100// Fields allows partial responses to be retrieved. See
82101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82102// for more information.
82103func (c *InstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdateCall {
82104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82105	return c
82106}
82107
82108// Context sets the context to be used in this call's Do method. Any
82109// pending HTTP request will be aborted if the provided context is
82110// canceled.
82111func (c *InstanceGroupManagersUpdateCall) Context(ctx context.Context) *InstanceGroupManagersUpdateCall {
82112	c.ctx_ = ctx
82113	return c
82114}
82115
82116// Header returns an http.Header that can be modified by the caller to
82117// add HTTP headers to the request.
82118func (c *InstanceGroupManagersUpdateCall) Header() http.Header {
82119	if c.header_ == nil {
82120		c.header_ = make(http.Header)
82121	}
82122	return c.header_
82123}
82124
82125func (c *InstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
82126	reqHeaders := make(http.Header)
82127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
82128	for k, v := range c.header_ {
82129		reqHeaders[k] = v
82130	}
82131	reqHeaders.Set("User-Agent", c.s.userAgent())
82132	var body io.Reader = nil
82133	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
82134	if err != nil {
82135		return nil, err
82136	}
82137	reqHeaders.Set("Content-Type", "application/json")
82138	c.urlParams_.Set("alt", alt)
82139	c.urlParams_.Set("prettyPrint", "false")
82140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
82141	urls += "?" + c.urlParams_.Encode()
82142	req, err := http.NewRequest("PUT", urls, body)
82143	if err != nil {
82144		return nil, err
82145	}
82146	req.Header = reqHeaders
82147	googleapi.Expand(req.URL, map[string]string{
82148		"project":              c.project,
82149		"zone":                 c.zone,
82150		"instanceGroupManager": c.instanceGroupManager,
82151	})
82152	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82153}
82154
82155// Do executes the "compute.instanceGroupManagers.update" call.
82156// Exactly one of *Operation or error will be non-nil. Any non-2xx
82157// status code is an error. Response headers are in either
82158// *Operation.ServerResponse.Header or (if a response was returned at
82159// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82160// to check whether the returned error was because
82161// http.StatusNotModified was returned.
82162func (c *InstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82163	gensupport.SetOptions(c.urlParams_, opts...)
82164	res, err := c.doRequest("json")
82165	if res != nil && res.StatusCode == http.StatusNotModified {
82166		if res.Body != nil {
82167			res.Body.Close()
82168		}
82169		return nil, &googleapi.Error{
82170			Code:   res.StatusCode,
82171			Header: res.Header,
82172		}
82173	}
82174	if err != nil {
82175		return nil, err
82176	}
82177	defer googleapi.CloseBody(res)
82178	if err := googleapi.CheckResponse(res); err != nil {
82179		return nil, err
82180	}
82181	ret := &Operation{
82182		ServerResponse: googleapi.ServerResponse{
82183			Header:         res.Header,
82184			HTTPStatusCode: res.StatusCode,
82185		},
82186	}
82187	target := &ret
82188	if err := gensupport.DecodeResponse(target, res); err != nil {
82189		return nil, err
82190	}
82191	return ret, nil
82192	// {
82193	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listManagedInstances method.",
82194	//   "httpMethod": "PUT",
82195	//   "id": "compute.instanceGroupManagers.update",
82196	//   "parameterOrder": [
82197	//     "project",
82198	//     "zone",
82199	//     "instanceGroupManager"
82200	//   ],
82201	//   "parameters": {
82202	//     "instanceGroupManager": {
82203	//       "description": "The name of the instance group manager.",
82204	//       "location": "path",
82205	//       "required": true,
82206	//       "type": "string"
82207	//     },
82208	//     "project": {
82209	//       "description": "Project ID for this request.",
82210	//       "location": "path",
82211	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82212	//       "required": true,
82213	//       "type": "string"
82214	//     },
82215	//     "requestId": {
82216	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82217	//       "location": "query",
82218	//       "type": "string"
82219	//     },
82220	//     "zone": {
82221	//       "description": "The name of the zone where you want to create the managed instance group.",
82222	//       "location": "path",
82223	//       "required": true,
82224	//       "type": "string"
82225	//     }
82226	//   },
82227	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
82228	//   "request": {
82229	//     "$ref": "InstanceGroupManager"
82230	//   },
82231	//   "response": {
82232	//     "$ref": "Operation"
82233	//   },
82234	//   "scopes": [
82235	//     "https://www.googleapis.com/auth/cloud-platform",
82236	//     "https://www.googleapis.com/auth/compute"
82237	//   ]
82238	// }
82239
82240}
82241
82242// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
82243
82244type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
82245	s                                                *Service
82246	project                                          string
82247	zone                                             string
82248	instanceGroupManager                             string
82249	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
82250	urlParams_                                       gensupport.URLParams
82251	ctx_                                             context.Context
82252	header_                                          http.Header
82253}
82254
82255// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
82256// the managed instance group. perInstanceConfig.name serves as a key
82257// used to distinguish whether to perform insert or patch.
82258func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
82259	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82260	c.project = project
82261	c.zone = zone
82262	c.instanceGroupManager = instanceGroupManager
82263	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
82264	return c
82265}
82266
82267// RequestId sets the optional parameter "requestId": An optional
82268// request ID to identify requests. Specify a unique request ID so that
82269// if you must retry your request, the server will know to ignore the
82270// request if it has already been completed.
82271//
82272// For example, consider a situation where you make an initial request
82273// and the request times out. If you make the request again with the
82274// same request ID, the server can check if original operation with the
82275// same request ID was received, and if so, will ignore the second
82276// request. This prevents clients from accidentally creating duplicate
82277// commitments.
82278//
82279// The request ID must be a valid UUID with the exception that zero UUID
82280// is not supported (00000000-0000-0000-0000-000000000000).
82281func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
82282	c.urlParams_.Set("requestId", requestId)
82283	return c
82284}
82285
82286// Fields allows partial responses to be retrieved. See
82287// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82288// for more information.
82289func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
82290	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82291	return c
82292}
82293
82294// Context sets the context to be used in this call's Do method. Any
82295// pending HTTP request will be aborted if the provided context is
82296// canceled.
82297func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
82298	c.ctx_ = ctx
82299	return c
82300}
82301
82302// Header returns an http.Header that can be modified by the caller to
82303// add HTTP headers to the request.
82304func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
82305	if c.header_ == nil {
82306		c.header_ = make(http.Header)
82307	}
82308	return c.header_
82309}
82310
82311func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
82312	reqHeaders := make(http.Header)
82313	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
82314	for k, v := range c.header_ {
82315		reqHeaders[k] = v
82316	}
82317	reqHeaders.Set("User-Agent", c.s.userAgent())
82318	var body io.Reader = nil
82319	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
82320	if err != nil {
82321		return nil, err
82322	}
82323	reqHeaders.Set("Content-Type", "application/json")
82324	c.urlParams_.Set("alt", alt)
82325	c.urlParams_.Set("prettyPrint", "false")
82326	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
82327	urls += "?" + c.urlParams_.Encode()
82328	req, err := http.NewRequest("POST", urls, body)
82329	if err != nil {
82330		return nil, err
82331	}
82332	req.Header = reqHeaders
82333	googleapi.Expand(req.URL, map[string]string{
82334		"project":              c.project,
82335		"zone":                 c.zone,
82336		"instanceGroupManager": c.instanceGroupManager,
82337	})
82338	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82339}
82340
82341// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
82342// Exactly one of *Operation or error will be non-nil. Any non-2xx
82343// status code is an error. Response headers are in either
82344// *Operation.ServerResponse.Header or (if a response was returned at
82345// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82346// to check whether the returned error was because
82347// http.StatusNotModified was returned.
82348func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82349	gensupport.SetOptions(c.urlParams_, opts...)
82350	res, err := c.doRequest("json")
82351	if res != nil && res.StatusCode == http.StatusNotModified {
82352		if res.Body != nil {
82353			res.Body.Close()
82354		}
82355		return nil, &googleapi.Error{
82356			Code:   res.StatusCode,
82357			Header: res.Header,
82358		}
82359	}
82360	if err != nil {
82361		return nil, err
82362	}
82363	defer googleapi.CloseBody(res)
82364	if err := googleapi.CheckResponse(res); err != nil {
82365		return nil, err
82366	}
82367	ret := &Operation{
82368		ServerResponse: googleapi.ServerResponse{
82369			Header:         res.Header,
82370			HTTPStatusCode: res.StatusCode,
82371		},
82372	}
82373	target := &ret
82374	if err := gensupport.DecodeResponse(target, res); err != nil {
82375		return nil, err
82376	}
82377	return ret, nil
82378	// {
82379	//   "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.",
82380	//   "httpMethod": "POST",
82381	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
82382	//   "parameterOrder": [
82383	//     "project",
82384	//     "zone",
82385	//     "instanceGroupManager"
82386	//   ],
82387	//   "parameters": {
82388	//     "instanceGroupManager": {
82389	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
82390	//       "location": "path",
82391	//       "required": true,
82392	//       "type": "string"
82393	//     },
82394	//     "project": {
82395	//       "description": "Project ID for this request.",
82396	//       "location": "path",
82397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82398	//       "required": true,
82399	//       "type": "string"
82400	//     },
82401	//     "requestId": {
82402	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82403	//       "location": "query",
82404	//       "type": "string"
82405	//     },
82406	//     "zone": {
82407	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
82408	//       "location": "path",
82409	//       "required": true,
82410	//       "type": "string"
82411	//     }
82412	//   },
82413	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
82414	//   "request": {
82415	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
82416	//   },
82417	//   "response": {
82418	//     "$ref": "Operation"
82419	//   },
82420	//   "scopes": [
82421	//     "https://www.googleapis.com/auth/cloud-platform",
82422	//     "https://www.googleapis.com/auth/compute"
82423	//   ]
82424	// }
82425
82426}
82427
82428// method id "compute.instanceGroups.addInstances":
82429
82430type InstanceGroupsAddInstancesCall struct {
82431	s                                 *Service
82432	project                           string
82433	zone                              string
82434	instanceGroup                     string
82435	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
82436	urlParams_                        gensupport.URLParams
82437	ctx_                              context.Context
82438	header_                           http.Header
82439}
82440
82441// AddInstances: Adds a list of instances to the specified instance
82442// group. All of the instances in the instance group must be in the same
82443// network/subnetwork. Read  Adding instances for more information.
82444func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
82445	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82446	c.project = project
82447	c.zone = zone
82448	c.instanceGroup = instanceGroup
82449	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
82450	return c
82451}
82452
82453// RequestId sets the optional parameter "requestId": An optional
82454// request ID to identify requests. Specify a unique request ID so that
82455// if you must retry your request, the server will know to ignore the
82456// request if it has already been completed.
82457//
82458// For example, consider a situation where you make an initial request
82459// and the request times out. If you make the request again with the
82460// same request ID, the server can check if original operation with the
82461// same request ID was received, and if so, will ignore the second
82462// request. This prevents clients from accidentally creating duplicate
82463// commitments.
82464//
82465// The request ID must be a valid UUID with the exception that zero UUID
82466// is not supported (00000000-0000-0000-0000-000000000000).
82467func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
82468	c.urlParams_.Set("requestId", requestId)
82469	return c
82470}
82471
82472// Fields allows partial responses to be retrieved. See
82473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82474// for more information.
82475func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
82476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82477	return c
82478}
82479
82480// Context sets the context to be used in this call's Do method. Any
82481// pending HTTP request will be aborted if the provided context is
82482// canceled.
82483func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
82484	c.ctx_ = ctx
82485	return c
82486}
82487
82488// Header returns an http.Header that can be modified by the caller to
82489// add HTTP headers to the request.
82490func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
82491	if c.header_ == nil {
82492		c.header_ = make(http.Header)
82493	}
82494	return c.header_
82495}
82496
82497func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
82498	reqHeaders := make(http.Header)
82499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
82500	for k, v := range c.header_ {
82501		reqHeaders[k] = v
82502	}
82503	reqHeaders.Set("User-Agent", c.s.userAgent())
82504	var body io.Reader = nil
82505	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
82506	if err != nil {
82507		return nil, err
82508	}
82509	reqHeaders.Set("Content-Type", "application/json")
82510	c.urlParams_.Set("alt", alt)
82511	c.urlParams_.Set("prettyPrint", "false")
82512	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
82513	urls += "?" + c.urlParams_.Encode()
82514	req, err := http.NewRequest("POST", urls, body)
82515	if err != nil {
82516		return nil, err
82517	}
82518	req.Header = reqHeaders
82519	googleapi.Expand(req.URL, map[string]string{
82520		"project":       c.project,
82521		"zone":          c.zone,
82522		"instanceGroup": c.instanceGroup,
82523	})
82524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82525}
82526
82527// Do executes the "compute.instanceGroups.addInstances" call.
82528// Exactly one of *Operation or error will be non-nil. Any non-2xx
82529// status code is an error. Response headers are in either
82530// *Operation.ServerResponse.Header or (if a response was returned at
82531// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82532// to check whether the returned error was because
82533// http.StatusNotModified was returned.
82534func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82535	gensupport.SetOptions(c.urlParams_, opts...)
82536	res, err := c.doRequest("json")
82537	if res != nil && res.StatusCode == http.StatusNotModified {
82538		if res.Body != nil {
82539			res.Body.Close()
82540		}
82541		return nil, &googleapi.Error{
82542			Code:   res.StatusCode,
82543			Header: res.Header,
82544		}
82545	}
82546	if err != nil {
82547		return nil, err
82548	}
82549	defer googleapi.CloseBody(res)
82550	if err := googleapi.CheckResponse(res); err != nil {
82551		return nil, err
82552	}
82553	ret := &Operation{
82554		ServerResponse: googleapi.ServerResponse{
82555			Header:         res.Header,
82556			HTTPStatusCode: res.StatusCode,
82557		},
82558	}
82559	target := &ret
82560	if err := gensupport.DecodeResponse(target, res); err != nil {
82561		return nil, err
82562	}
82563	return ret, nil
82564	// {
82565	//   "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.",
82566	//   "httpMethod": "POST",
82567	//   "id": "compute.instanceGroups.addInstances",
82568	//   "parameterOrder": [
82569	//     "project",
82570	//     "zone",
82571	//     "instanceGroup"
82572	//   ],
82573	//   "parameters": {
82574	//     "instanceGroup": {
82575	//       "description": "The name of the instance group where you are adding instances.",
82576	//       "location": "path",
82577	//       "required": true,
82578	//       "type": "string"
82579	//     },
82580	//     "project": {
82581	//       "description": "Project ID for this request.",
82582	//       "location": "path",
82583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82584	//       "required": true,
82585	//       "type": "string"
82586	//     },
82587	//     "requestId": {
82588	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82589	//       "location": "query",
82590	//       "type": "string"
82591	//     },
82592	//     "zone": {
82593	//       "description": "The name of the zone where the instance group is located.",
82594	//       "location": "path",
82595	//       "required": true,
82596	//       "type": "string"
82597	//     }
82598	//   },
82599	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
82600	//   "request": {
82601	//     "$ref": "InstanceGroupsAddInstancesRequest"
82602	//   },
82603	//   "response": {
82604	//     "$ref": "Operation"
82605	//   },
82606	//   "scopes": [
82607	//     "https://www.googleapis.com/auth/cloud-platform",
82608	//     "https://www.googleapis.com/auth/compute"
82609	//   ]
82610	// }
82611
82612}
82613
82614// method id "compute.instanceGroups.aggregatedList":
82615
82616type InstanceGroupsAggregatedListCall struct {
82617	s            *Service
82618	project      string
82619	urlParams_   gensupport.URLParams
82620	ifNoneMatch_ string
82621	ctx_         context.Context
82622	header_      http.Header
82623}
82624
82625// AggregatedList: Retrieves the list of instance groups and sorts them
82626// by zone.
82627func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
82628	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82629	c.project = project
82630	return c
82631}
82632
82633// Filter sets the optional parameter "filter": A filter expression that
82634// filters resources listed in the response. The expression must specify
82635// the field name, a comparison operator, and the value that you want to
82636// use for filtering. The value must be a string, a number, or a
82637// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82638// `<`.
82639//
82640// For example, if you are filtering Compute Engine instances, you can
82641// exclude instances named `example-instance` by specifying `name !=
82642// example-instance`.
82643//
82644// You can also filter nested fields. For example, you could specify
82645// `scheduling.automaticRestart = false` to include instances only if
82646// they are not scheduled for automatic restarts. You can use filtering
82647// on nested fields to filter based on resource labels.
82648//
82649// To filter on multiple expressions, provide each separate expression
82650// within parentheses. For example: ``` (scheduling.automaticRestart =
82651// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82652// is an `AND` expression. However, you can include `AND` and `OR`
82653// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82654// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82655// (scheduling.automaticRestart = true) ```
82656func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
82657	c.urlParams_.Set("filter", filter)
82658	return c
82659}
82660
82661// IncludeAllScopes sets the optional parameter "includeAllScopes":
82662// Indicates whether every visible scope for each scope type (zone,
82663// region, global) should be included in the response. For new resource
82664// types added after this field, the flag has no effect as new resource
82665// types will always include every visible scope for each scope type in
82666// response. For resource types which predate this field, if this flag
82667// is omitted or false, only scopes of the scope types where the
82668// resource type is expected to be found will be included.
82669func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
82670	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
82671	return c
82672}
82673
82674// MaxResults sets the optional parameter "maxResults": The maximum
82675// number of results per page that should be returned. If the number of
82676// available results is larger than `maxResults`, Compute Engine returns
82677// a `nextPageToken` that can be used to get the next page of results in
82678// subsequent list requests. Acceptable values are `0` to `500`,
82679// inclusive. (Default: `500`)
82680func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
82681	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82682	return c
82683}
82684
82685// OrderBy sets the optional parameter "orderBy": Sorts list results by
82686// a certain order. By default, results are returned in alphanumerical
82687// order based on the resource name.
82688//
82689// You can also sort results in descending order based on the creation
82690// timestamp using `orderBy="creationTimestamp desc". This sorts
82691// results based on the `creationTimestamp` field in reverse
82692// chronological order (newest result first). Use this to sort resources
82693// like operations so that the newest operation is returned
82694// first.
82695//
82696// Currently, only sorting by `name` or `creationTimestamp desc` is
82697// supported.
82698func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
82699	c.urlParams_.Set("orderBy", orderBy)
82700	return c
82701}
82702
82703// PageToken sets the optional parameter "pageToken": Specifies a page
82704// token to use. Set `pageToken` to the `nextPageToken` returned by a
82705// previous list request to get the next page of results.
82706func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
82707	c.urlParams_.Set("pageToken", pageToken)
82708	return c
82709}
82710
82711// ReturnPartialSuccess sets the optional parameter
82712// "returnPartialSuccess": Opt-in for partial success behavior which
82713// provides partial results in case of failure. The default value is
82714// false and the logic is the same as today.
82715func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall {
82716	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82717	return c
82718}
82719
82720// Fields allows partial responses to be retrieved. See
82721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82722// for more information.
82723func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
82724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82725	return c
82726}
82727
82728// IfNoneMatch sets the optional parameter which makes the operation
82729// fail if the object's ETag matches the given value. This is useful for
82730// getting updates only after the object has changed since the last
82731// request. Use googleapi.IsNotModified to check whether the response
82732// error from Do is the result of In-None-Match.
82733func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
82734	c.ifNoneMatch_ = entityTag
82735	return c
82736}
82737
82738// Context sets the context to be used in this call's Do method. Any
82739// pending HTTP request will be aborted if the provided context is
82740// canceled.
82741func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
82742	c.ctx_ = ctx
82743	return c
82744}
82745
82746// Header returns an http.Header that can be modified by the caller to
82747// add HTTP headers to the request.
82748func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
82749	if c.header_ == nil {
82750		c.header_ = make(http.Header)
82751	}
82752	return c.header_
82753}
82754
82755func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
82756	reqHeaders := make(http.Header)
82757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
82758	for k, v := range c.header_ {
82759		reqHeaders[k] = v
82760	}
82761	reqHeaders.Set("User-Agent", c.s.userAgent())
82762	if c.ifNoneMatch_ != "" {
82763		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82764	}
82765	var body io.Reader = nil
82766	c.urlParams_.Set("alt", alt)
82767	c.urlParams_.Set("prettyPrint", "false")
82768	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
82769	urls += "?" + c.urlParams_.Encode()
82770	req, err := http.NewRequest("GET", urls, body)
82771	if err != nil {
82772		return nil, err
82773	}
82774	req.Header = reqHeaders
82775	googleapi.Expand(req.URL, map[string]string{
82776		"project": c.project,
82777	})
82778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82779}
82780
82781// Do executes the "compute.instanceGroups.aggregatedList" call.
82782// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
82783// Any non-2xx status code is an error. Response headers are in either
82784// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
82785// was returned at all) in error.(*googleapi.Error).Header. Use
82786// googleapi.IsNotModified to check whether the returned error was
82787// because http.StatusNotModified was returned.
82788func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
82789	gensupport.SetOptions(c.urlParams_, opts...)
82790	res, err := c.doRequest("json")
82791	if res != nil && res.StatusCode == http.StatusNotModified {
82792		if res.Body != nil {
82793			res.Body.Close()
82794		}
82795		return nil, &googleapi.Error{
82796			Code:   res.StatusCode,
82797			Header: res.Header,
82798		}
82799	}
82800	if err != nil {
82801		return nil, err
82802	}
82803	defer googleapi.CloseBody(res)
82804	if err := googleapi.CheckResponse(res); err != nil {
82805		return nil, err
82806	}
82807	ret := &InstanceGroupAggregatedList{
82808		ServerResponse: googleapi.ServerResponse{
82809			Header:         res.Header,
82810			HTTPStatusCode: res.StatusCode,
82811		},
82812	}
82813	target := &ret
82814	if err := gensupport.DecodeResponse(target, res); err != nil {
82815		return nil, err
82816	}
82817	return ret, nil
82818	// {
82819	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
82820	//   "httpMethod": "GET",
82821	//   "id": "compute.instanceGroups.aggregatedList",
82822	//   "parameterOrder": [
82823	//     "project"
82824	//   ],
82825	//   "parameters": {
82826	//     "filter": {
82827	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82828	//       "location": "query",
82829	//       "type": "string"
82830	//     },
82831	//     "includeAllScopes": {
82832	//       "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.",
82833	//       "location": "query",
82834	//       "type": "boolean"
82835	//     },
82836	//     "maxResults": {
82837	//       "default": "500",
82838	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82839	//       "format": "uint32",
82840	//       "location": "query",
82841	//       "minimum": "0",
82842	//       "type": "integer"
82843	//     },
82844	//     "orderBy": {
82845	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
82846	//       "location": "query",
82847	//       "type": "string"
82848	//     },
82849	//     "pageToken": {
82850	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82851	//       "location": "query",
82852	//       "type": "string"
82853	//     },
82854	//     "project": {
82855	//       "description": "Project ID for this request.",
82856	//       "location": "path",
82857	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82858	//       "required": true,
82859	//       "type": "string"
82860	//     },
82861	//     "returnPartialSuccess": {
82862	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
82863	//       "location": "query",
82864	//       "type": "boolean"
82865	//     }
82866	//   },
82867	//   "path": "{project}/aggregated/instanceGroups",
82868	//   "response": {
82869	//     "$ref": "InstanceGroupAggregatedList"
82870	//   },
82871	//   "scopes": [
82872	//     "https://www.googleapis.com/auth/cloud-platform",
82873	//     "https://www.googleapis.com/auth/compute",
82874	//     "https://www.googleapis.com/auth/compute.readonly"
82875	//   ]
82876	// }
82877
82878}
82879
82880// Pages invokes f for each page of results.
82881// A non-nil error returned from f will halt the iteration.
82882// The provided context supersedes any context provided to the Context method.
82883func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
82884	c.ctx_ = ctx
82885	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82886	for {
82887		x, err := c.Do()
82888		if err != nil {
82889			return err
82890		}
82891		if err := f(x); err != nil {
82892			return err
82893		}
82894		if x.NextPageToken == "" {
82895			return nil
82896		}
82897		c.PageToken(x.NextPageToken)
82898	}
82899}
82900
82901// method id "compute.instanceGroups.delete":
82902
82903type InstanceGroupsDeleteCall struct {
82904	s             *Service
82905	project       string
82906	zone          string
82907	instanceGroup string
82908	urlParams_    gensupport.URLParams
82909	ctx_          context.Context
82910	header_       http.Header
82911}
82912
82913// Delete: Deletes the specified instance group. The instances in the
82914// group are not deleted. Note that instance group must not belong to a
82915// backend service. Read  Deleting an instance group for more
82916// information.
82917func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
82918	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82919	c.project = project
82920	c.zone = zone
82921	c.instanceGroup = instanceGroup
82922	return c
82923}
82924
82925// RequestId sets the optional parameter "requestId": An optional
82926// request ID to identify requests. Specify a unique request ID so that
82927// if you must retry your request, the server will know to ignore the
82928// request if it has already been completed.
82929//
82930// For example, consider a situation where you make an initial request
82931// and the request times out. If you make the request again with the
82932// same request ID, the server can check if original operation with the
82933// same request ID was received, and if so, will ignore the second
82934// request. This prevents clients from accidentally creating duplicate
82935// commitments.
82936//
82937// The request ID must be a valid UUID with the exception that zero UUID
82938// is not supported (00000000-0000-0000-0000-000000000000).
82939func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
82940	c.urlParams_.Set("requestId", requestId)
82941	return c
82942}
82943
82944// Fields allows partial responses to be retrieved. See
82945// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82946// for more information.
82947func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
82948	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82949	return c
82950}
82951
82952// Context sets the context to be used in this call's Do method. Any
82953// pending HTTP request will be aborted if the provided context is
82954// canceled.
82955func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
82956	c.ctx_ = ctx
82957	return c
82958}
82959
82960// Header returns an http.Header that can be modified by the caller to
82961// add HTTP headers to the request.
82962func (c *InstanceGroupsDeleteCall) Header() http.Header {
82963	if c.header_ == nil {
82964		c.header_ = make(http.Header)
82965	}
82966	return c.header_
82967}
82968
82969func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
82970	reqHeaders := make(http.Header)
82971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
82972	for k, v := range c.header_ {
82973		reqHeaders[k] = v
82974	}
82975	reqHeaders.Set("User-Agent", c.s.userAgent())
82976	var body io.Reader = nil
82977	c.urlParams_.Set("alt", alt)
82978	c.urlParams_.Set("prettyPrint", "false")
82979	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
82980	urls += "?" + c.urlParams_.Encode()
82981	req, err := http.NewRequest("DELETE", urls, body)
82982	if err != nil {
82983		return nil, err
82984	}
82985	req.Header = reqHeaders
82986	googleapi.Expand(req.URL, map[string]string{
82987		"project":       c.project,
82988		"zone":          c.zone,
82989		"instanceGroup": c.instanceGroup,
82990	})
82991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82992}
82993
82994// Do executes the "compute.instanceGroups.delete" call.
82995// Exactly one of *Operation or error will be non-nil. Any non-2xx
82996// status code is an error. Response headers are in either
82997// *Operation.ServerResponse.Header or (if a response was returned at
82998// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82999// to check whether the returned error was because
83000// http.StatusNotModified was returned.
83001func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83002	gensupport.SetOptions(c.urlParams_, opts...)
83003	res, err := c.doRequest("json")
83004	if res != nil && res.StatusCode == http.StatusNotModified {
83005		if res.Body != nil {
83006			res.Body.Close()
83007		}
83008		return nil, &googleapi.Error{
83009			Code:   res.StatusCode,
83010			Header: res.Header,
83011		}
83012	}
83013	if err != nil {
83014		return nil, err
83015	}
83016	defer googleapi.CloseBody(res)
83017	if err := googleapi.CheckResponse(res); err != nil {
83018		return nil, err
83019	}
83020	ret := &Operation{
83021		ServerResponse: googleapi.ServerResponse{
83022			Header:         res.Header,
83023			HTTPStatusCode: res.StatusCode,
83024		},
83025	}
83026	target := &ret
83027	if err := gensupport.DecodeResponse(target, res); err != nil {
83028		return nil, err
83029	}
83030	return ret, nil
83031	// {
83032	//   "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.",
83033	//   "httpMethod": "DELETE",
83034	//   "id": "compute.instanceGroups.delete",
83035	//   "parameterOrder": [
83036	//     "project",
83037	//     "zone",
83038	//     "instanceGroup"
83039	//   ],
83040	//   "parameters": {
83041	//     "instanceGroup": {
83042	//       "description": "The name of the instance group to delete.",
83043	//       "location": "path",
83044	//       "required": true,
83045	//       "type": "string"
83046	//     },
83047	//     "project": {
83048	//       "description": "Project ID for this request.",
83049	//       "location": "path",
83050	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83051	//       "required": true,
83052	//       "type": "string"
83053	//     },
83054	//     "requestId": {
83055	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83056	//       "location": "query",
83057	//       "type": "string"
83058	//     },
83059	//     "zone": {
83060	//       "description": "The name of the zone where the instance group is located.",
83061	//       "location": "path",
83062	//       "required": true,
83063	//       "type": "string"
83064	//     }
83065	//   },
83066	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
83067	//   "response": {
83068	//     "$ref": "Operation"
83069	//   },
83070	//   "scopes": [
83071	//     "https://www.googleapis.com/auth/cloud-platform",
83072	//     "https://www.googleapis.com/auth/compute"
83073	//   ]
83074	// }
83075
83076}
83077
83078// method id "compute.instanceGroups.get":
83079
83080type InstanceGroupsGetCall struct {
83081	s             *Service
83082	project       string
83083	zone          string
83084	instanceGroup string
83085	urlParams_    gensupport.URLParams
83086	ifNoneMatch_  string
83087	ctx_          context.Context
83088	header_       http.Header
83089}
83090
83091// Get: Returns the specified instance group. Gets a list of available
83092// instance groups by making a list() request.
83093func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
83094	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83095	c.project = project
83096	c.zone = zone
83097	c.instanceGroup = instanceGroup
83098	return c
83099}
83100
83101// Fields allows partial responses to be retrieved. See
83102// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83103// for more information.
83104func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
83105	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83106	return c
83107}
83108
83109// IfNoneMatch sets the optional parameter which makes the operation
83110// fail if the object's ETag matches the given value. This is useful for
83111// getting updates only after the object has changed since the last
83112// request. Use googleapi.IsNotModified to check whether the response
83113// error from Do is the result of In-None-Match.
83114func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
83115	c.ifNoneMatch_ = entityTag
83116	return c
83117}
83118
83119// Context sets the context to be used in this call's Do method. Any
83120// pending HTTP request will be aborted if the provided context is
83121// canceled.
83122func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
83123	c.ctx_ = ctx
83124	return c
83125}
83126
83127// Header returns an http.Header that can be modified by the caller to
83128// add HTTP headers to the request.
83129func (c *InstanceGroupsGetCall) Header() http.Header {
83130	if c.header_ == nil {
83131		c.header_ = make(http.Header)
83132	}
83133	return c.header_
83134}
83135
83136func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
83137	reqHeaders := make(http.Header)
83138	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
83139	for k, v := range c.header_ {
83140		reqHeaders[k] = v
83141	}
83142	reqHeaders.Set("User-Agent", c.s.userAgent())
83143	if c.ifNoneMatch_ != "" {
83144		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83145	}
83146	var body io.Reader = nil
83147	c.urlParams_.Set("alt", alt)
83148	c.urlParams_.Set("prettyPrint", "false")
83149	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
83150	urls += "?" + c.urlParams_.Encode()
83151	req, err := http.NewRequest("GET", urls, body)
83152	if err != nil {
83153		return nil, err
83154	}
83155	req.Header = reqHeaders
83156	googleapi.Expand(req.URL, map[string]string{
83157		"project":       c.project,
83158		"zone":          c.zone,
83159		"instanceGroup": c.instanceGroup,
83160	})
83161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83162}
83163
83164// Do executes the "compute.instanceGroups.get" call.
83165// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
83166// status code is an error. Response headers are in either
83167// *InstanceGroup.ServerResponse.Header or (if a response was returned
83168// at all) in error.(*googleapi.Error).Header. Use
83169// googleapi.IsNotModified to check whether the returned error was
83170// because http.StatusNotModified was returned.
83171func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
83172	gensupport.SetOptions(c.urlParams_, opts...)
83173	res, err := c.doRequest("json")
83174	if res != nil && res.StatusCode == http.StatusNotModified {
83175		if res.Body != nil {
83176			res.Body.Close()
83177		}
83178		return nil, &googleapi.Error{
83179			Code:   res.StatusCode,
83180			Header: res.Header,
83181		}
83182	}
83183	if err != nil {
83184		return nil, err
83185	}
83186	defer googleapi.CloseBody(res)
83187	if err := googleapi.CheckResponse(res); err != nil {
83188		return nil, err
83189	}
83190	ret := &InstanceGroup{
83191		ServerResponse: googleapi.ServerResponse{
83192			Header:         res.Header,
83193			HTTPStatusCode: res.StatusCode,
83194		},
83195	}
83196	target := &ret
83197	if err := gensupport.DecodeResponse(target, res); err != nil {
83198		return nil, err
83199	}
83200	return ret, nil
83201	// {
83202	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
83203	//   "httpMethod": "GET",
83204	//   "id": "compute.instanceGroups.get",
83205	//   "parameterOrder": [
83206	//     "project",
83207	//     "zone",
83208	//     "instanceGroup"
83209	//   ],
83210	//   "parameters": {
83211	//     "instanceGroup": {
83212	//       "description": "The name of the instance group.",
83213	//       "location": "path",
83214	//       "required": true,
83215	//       "type": "string"
83216	//     },
83217	//     "project": {
83218	//       "description": "Project ID for this request.",
83219	//       "location": "path",
83220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83221	//       "required": true,
83222	//       "type": "string"
83223	//     },
83224	//     "zone": {
83225	//       "description": "The name of the zone where the instance group is located.",
83226	//       "location": "path",
83227	//       "required": true,
83228	//       "type": "string"
83229	//     }
83230	//   },
83231	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
83232	//   "response": {
83233	//     "$ref": "InstanceGroup"
83234	//   },
83235	//   "scopes": [
83236	//     "https://www.googleapis.com/auth/cloud-platform",
83237	//     "https://www.googleapis.com/auth/compute",
83238	//     "https://www.googleapis.com/auth/compute.readonly"
83239	//   ]
83240	// }
83241
83242}
83243
83244// method id "compute.instanceGroups.insert":
83245
83246type InstanceGroupsInsertCall struct {
83247	s             *Service
83248	project       string
83249	zone          string
83250	instancegroup *InstanceGroup
83251	urlParams_    gensupport.URLParams
83252	ctx_          context.Context
83253	header_       http.Header
83254}
83255
83256// Insert: Creates an instance group in the specified project using the
83257// parameters that are included in the request.
83258func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
83259	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83260	c.project = project
83261	c.zone = zone
83262	c.instancegroup = instancegroup
83263	return c
83264}
83265
83266// RequestId sets the optional parameter "requestId": An optional
83267// request ID to identify requests. Specify a unique request ID so that
83268// if you must retry your request, the server will know to ignore the
83269// request if it has already been completed.
83270//
83271// For example, consider a situation where you make an initial request
83272// and the request times out. If you make the request again with the
83273// same request ID, the server can check if original operation with the
83274// same request ID was received, and if so, will ignore the second
83275// request. This prevents clients from accidentally creating duplicate
83276// commitments.
83277//
83278// The request ID must be a valid UUID with the exception that zero UUID
83279// is not supported (00000000-0000-0000-0000-000000000000).
83280func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
83281	c.urlParams_.Set("requestId", requestId)
83282	return c
83283}
83284
83285// Fields allows partial responses to be retrieved. See
83286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83287// for more information.
83288func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
83289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83290	return c
83291}
83292
83293// Context sets the context to be used in this call's Do method. Any
83294// pending HTTP request will be aborted if the provided context is
83295// canceled.
83296func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
83297	c.ctx_ = ctx
83298	return c
83299}
83300
83301// Header returns an http.Header that can be modified by the caller to
83302// add HTTP headers to the request.
83303func (c *InstanceGroupsInsertCall) Header() http.Header {
83304	if c.header_ == nil {
83305		c.header_ = make(http.Header)
83306	}
83307	return c.header_
83308}
83309
83310func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
83311	reqHeaders := make(http.Header)
83312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
83313	for k, v := range c.header_ {
83314		reqHeaders[k] = v
83315	}
83316	reqHeaders.Set("User-Agent", c.s.userAgent())
83317	var body io.Reader = nil
83318	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
83319	if err != nil {
83320		return nil, err
83321	}
83322	reqHeaders.Set("Content-Type", "application/json")
83323	c.urlParams_.Set("alt", alt)
83324	c.urlParams_.Set("prettyPrint", "false")
83325	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
83326	urls += "?" + c.urlParams_.Encode()
83327	req, err := http.NewRequest("POST", urls, body)
83328	if err != nil {
83329		return nil, err
83330	}
83331	req.Header = reqHeaders
83332	googleapi.Expand(req.URL, map[string]string{
83333		"project": c.project,
83334		"zone":    c.zone,
83335	})
83336	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83337}
83338
83339// Do executes the "compute.instanceGroups.insert" call.
83340// Exactly one of *Operation or error will be non-nil. Any non-2xx
83341// status code is an error. Response headers are in either
83342// *Operation.ServerResponse.Header or (if a response was returned at
83343// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83344// to check whether the returned error was because
83345// http.StatusNotModified was returned.
83346func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83347	gensupport.SetOptions(c.urlParams_, opts...)
83348	res, err := c.doRequest("json")
83349	if res != nil && res.StatusCode == http.StatusNotModified {
83350		if res.Body != nil {
83351			res.Body.Close()
83352		}
83353		return nil, &googleapi.Error{
83354			Code:   res.StatusCode,
83355			Header: res.Header,
83356		}
83357	}
83358	if err != nil {
83359		return nil, err
83360	}
83361	defer googleapi.CloseBody(res)
83362	if err := googleapi.CheckResponse(res); err != nil {
83363		return nil, err
83364	}
83365	ret := &Operation{
83366		ServerResponse: googleapi.ServerResponse{
83367			Header:         res.Header,
83368			HTTPStatusCode: res.StatusCode,
83369		},
83370	}
83371	target := &ret
83372	if err := gensupport.DecodeResponse(target, res); err != nil {
83373		return nil, err
83374	}
83375	return ret, nil
83376	// {
83377	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
83378	//   "httpMethod": "POST",
83379	//   "id": "compute.instanceGroups.insert",
83380	//   "parameterOrder": [
83381	//     "project",
83382	//     "zone"
83383	//   ],
83384	//   "parameters": {
83385	//     "project": {
83386	//       "description": "Project ID for this request.",
83387	//       "location": "path",
83388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83389	//       "required": true,
83390	//       "type": "string"
83391	//     },
83392	//     "requestId": {
83393	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83394	//       "location": "query",
83395	//       "type": "string"
83396	//     },
83397	//     "zone": {
83398	//       "description": "The name of the zone where you want to create the instance group.",
83399	//       "location": "path",
83400	//       "required": true,
83401	//       "type": "string"
83402	//     }
83403	//   },
83404	//   "path": "{project}/zones/{zone}/instanceGroups",
83405	//   "request": {
83406	//     "$ref": "InstanceGroup"
83407	//   },
83408	//   "response": {
83409	//     "$ref": "Operation"
83410	//   },
83411	//   "scopes": [
83412	//     "https://www.googleapis.com/auth/cloud-platform",
83413	//     "https://www.googleapis.com/auth/compute"
83414	//   ]
83415	// }
83416
83417}
83418
83419// method id "compute.instanceGroups.list":
83420
83421type InstanceGroupsListCall struct {
83422	s            *Service
83423	project      string
83424	zone         string
83425	urlParams_   gensupport.URLParams
83426	ifNoneMatch_ string
83427	ctx_         context.Context
83428	header_      http.Header
83429}
83430
83431// List: Retrieves the list of instance groups that are located in the
83432// specified project and zone.
83433func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
83434	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83435	c.project = project
83436	c.zone = zone
83437	return c
83438}
83439
83440// Filter sets the optional parameter "filter": A filter expression that
83441// filters resources listed in the response. The expression must specify
83442// the field name, a comparison operator, and the value that you want to
83443// use for filtering. The value must be a string, a number, or a
83444// boolean. The comparison operator must be either `=`, `!=`, `>`, or
83445// `<`.
83446//
83447// For example, if you are filtering Compute Engine instances, you can
83448// exclude instances named `example-instance` by specifying `name !=
83449// example-instance`.
83450//
83451// You can also filter nested fields. For example, you could specify
83452// `scheduling.automaticRestart = false` to include instances only if
83453// they are not scheduled for automatic restarts. You can use filtering
83454// on nested fields to filter based on resource labels.
83455//
83456// To filter on multiple expressions, provide each separate expression
83457// within parentheses. For example: ``` (scheduling.automaticRestart =
83458// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
83459// is an `AND` expression. However, you can include `AND` and `OR`
83460// expressions explicitly. For example: ``` (cpuPlatform = "Intel
83461// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
83462// (scheduling.automaticRestart = true) ```
83463func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
83464	c.urlParams_.Set("filter", filter)
83465	return c
83466}
83467
83468// MaxResults sets the optional parameter "maxResults": The maximum
83469// number of results per page that should be returned. If the number of
83470// available results is larger than `maxResults`, Compute Engine returns
83471// a `nextPageToken` that can be used to get the next page of results in
83472// subsequent list requests. Acceptable values are `0` to `500`,
83473// inclusive. (Default: `500`)
83474func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
83475	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83476	return c
83477}
83478
83479// OrderBy sets the optional parameter "orderBy": Sorts list results by
83480// a certain order. By default, results are returned in alphanumerical
83481// order based on the resource name.
83482//
83483// You can also sort results in descending order based on the creation
83484// timestamp using `orderBy="creationTimestamp desc". This sorts
83485// results based on the `creationTimestamp` field in reverse
83486// chronological order (newest result first). Use this to sort resources
83487// like operations so that the newest operation is returned
83488// first.
83489//
83490// Currently, only sorting by `name` or `creationTimestamp desc` is
83491// supported.
83492func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
83493	c.urlParams_.Set("orderBy", orderBy)
83494	return c
83495}
83496
83497// PageToken sets the optional parameter "pageToken": Specifies a page
83498// token to use. Set `pageToken` to the `nextPageToken` returned by a
83499// previous list request to get the next page of results.
83500func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
83501	c.urlParams_.Set("pageToken", pageToken)
83502	return c
83503}
83504
83505// ReturnPartialSuccess sets the optional parameter
83506// "returnPartialSuccess": Opt-in for partial success behavior which
83507// provides partial results in case of failure. The default value is
83508// false and the logic is the same as today.
83509func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall {
83510	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
83511	return c
83512}
83513
83514// Fields allows partial responses to be retrieved. See
83515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83516// for more information.
83517func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
83518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83519	return c
83520}
83521
83522// IfNoneMatch sets the optional parameter which makes the operation
83523// fail if the object's ETag matches the given value. This is useful for
83524// getting updates only after the object has changed since the last
83525// request. Use googleapi.IsNotModified to check whether the response
83526// error from Do is the result of In-None-Match.
83527func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
83528	c.ifNoneMatch_ = entityTag
83529	return c
83530}
83531
83532// Context sets the context to be used in this call's Do method. Any
83533// pending HTTP request will be aborted if the provided context is
83534// canceled.
83535func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
83536	c.ctx_ = ctx
83537	return c
83538}
83539
83540// Header returns an http.Header that can be modified by the caller to
83541// add HTTP headers to the request.
83542func (c *InstanceGroupsListCall) Header() http.Header {
83543	if c.header_ == nil {
83544		c.header_ = make(http.Header)
83545	}
83546	return c.header_
83547}
83548
83549func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
83550	reqHeaders := make(http.Header)
83551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
83552	for k, v := range c.header_ {
83553		reqHeaders[k] = v
83554	}
83555	reqHeaders.Set("User-Agent", c.s.userAgent())
83556	if c.ifNoneMatch_ != "" {
83557		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83558	}
83559	var body io.Reader = nil
83560	c.urlParams_.Set("alt", alt)
83561	c.urlParams_.Set("prettyPrint", "false")
83562	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
83563	urls += "?" + c.urlParams_.Encode()
83564	req, err := http.NewRequest("GET", urls, body)
83565	if err != nil {
83566		return nil, err
83567	}
83568	req.Header = reqHeaders
83569	googleapi.Expand(req.URL, map[string]string{
83570		"project": c.project,
83571		"zone":    c.zone,
83572	})
83573	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83574}
83575
83576// Do executes the "compute.instanceGroups.list" call.
83577// Exactly one of *InstanceGroupList or error will be non-nil. Any
83578// non-2xx status code is an error. Response headers are in either
83579// *InstanceGroupList.ServerResponse.Header or (if a response was
83580// returned at all) in error.(*googleapi.Error).Header. Use
83581// googleapi.IsNotModified to check whether the returned error was
83582// because http.StatusNotModified was returned.
83583func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
83584	gensupport.SetOptions(c.urlParams_, opts...)
83585	res, err := c.doRequest("json")
83586	if res != nil && res.StatusCode == http.StatusNotModified {
83587		if res.Body != nil {
83588			res.Body.Close()
83589		}
83590		return nil, &googleapi.Error{
83591			Code:   res.StatusCode,
83592			Header: res.Header,
83593		}
83594	}
83595	if err != nil {
83596		return nil, err
83597	}
83598	defer googleapi.CloseBody(res)
83599	if err := googleapi.CheckResponse(res); err != nil {
83600		return nil, err
83601	}
83602	ret := &InstanceGroupList{
83603		ServerResponse: googleapi.ServerResponse{
83604			Header:         res.Header,
83605			HTTPStatusCode: res.StatusCode,
83606		},
83607	}
83608	target := &ret
83609	if err := gensupport.DecodeResponse(target, res); err != nil {
83610		return nil, err
83611	}
83612	return ret, nil
83613	// {
83614	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
83615	//   "httpMethod": "GET",
83616	//   "id": "compute.instanceGroups.list",
83617	//   "parameterOrder": [
83618	//     "project",
83619	//     "zone"
83620	//   ],
83621	//   "parameters": {
83622	//     "filter": {
83623	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83624	//       "location": "query",
83625	//       "type": "string"
83626	//     },
83627	//     "maxResults": {
83628	//       "default": "500",
83629	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83630	//       "format": "uint32",
83631	//       "location": "query",
83632	//       "minimum": "0",
83633	//       "type": "integer"
83634	//     },
83635	//     "orderBy": {
83636	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83637	//       "location": "query",
83638	//       "type": "string"
83639	//     },
83640	//     "pageToken": {
83641	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83642	//       "location": "query",
83643	//       "type": "string"
83644	//     },
83645	//     "project": {
83646	//       "description": "Project ID for this request.",
83647	//       "location": "path",
83648	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83649	//       "required": true,
83650	//       "type": "string"
83651	//     },
83652	//     "returnPartialSuccess": {
83653	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
83654	//       "location": "query",
83655	//       "type": "boolean"
83656	//     },
83657	//     "zone": {
83658	//       "description": "The name of the zone where the instance group is located.",
83659	//       "location": "path",
83660	//       "required": true,
83661	//       "type": "string"
83662	//     }
83663	//   },
83664	//   "path": "{project}/zones/{zone}/instanceGroups",
83665	//   "response": {
83666	//     "$ref": "InstanceGroupList"
83667	//   },
83668	//   "scopes": [
83669	//     "https://www.googleapis.com/auth/cloud-platform",
83670	//     "https://www.googleapis.com/auth/compute",
83671	//     "https://www.googleapis.com/auth/compute.readonly"
83672	//   ]
83673	// }
83674
83675}
83676
83677// Pages invokes f for each page of results.
83678// A non-nil error returned from f will halt the iteration.
83679// The provided context supersedes any context provided to the Context method.
83680func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
83681	c.ctx_ = ctx
83682	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83683	for {
83684		x, err := c.Do()
83685		if err != nil {
83686			return err
83687		}
83688		if err := f(x); err != nil {
83689			return err
83690		}
83691		if x.NextPageToken == "" {
83692			return nil
83693		}
83694		c.PageToken(x.NextPageToken)
83695	}
83696}
83697
83698// method id "compute.instanceGroups.listInstances":
83699
83700type InstanceGroupsListInstancesCall struct {
83701	s                                  *Service
83702	project                            string
83703	zone                               string
83704	instanceGroup                      string
83705	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
83706	urlParams_                         gensupport.URLParams
83707	ctx_                               context.Context
83708	header_                            http.Header
83709}
83710
83711// ListInstances: Lists the instances in the specified instance group.
83712func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
83713	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83714	c.project = project
83715	c.zone = zone
83716	c.instanceGroup = instanceGroup
83717	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
83718	return c
83719}
83720
83721// Filter sets the optional parameter "filter": A filter expression that
83722// filters resources listed in the response. The expression must specify
83723// the field name, a comparison operator, and the value that you want to
83724// use for filtering. The value must be a string, a number, or a
83725// boolean. The comparison operator must be either `=`, `!=`, `>`, or
83726// `<`.
83727//
83728// For example, if you are filtering Compute Engine instances, you can
83729// exclude instances named `example-instance` by specifying `name !=
83730// example-instance`.
83731//
83732// You can also filter nested fields. For example, you could specify
83733// `scheduling.automaticRestart = false` to include instances only if
83734// they are not scheduled for automatic restarts. You can use filtering
83735// on nested fields to filter based on resource labels.
83736//
83737// To filter on multiple expressions, provide each separate expression
83738// within parentheses. For example: ``` (scheduling.automaticRestart =
83739// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
83740// is an `AND` expression. However, you can include `AND` and `OR`
83741// expressions explicitly. For example: ``` (cpuPlatform = "Intel
83742// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
83743// (scheduling.automaticRestart = true) ```
83744func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
83745	c.urlParams_.Set("filter", filter)
83746	return c
83747}
83748
83749// MaxResults sets the optional parameter "maxResults": The maximum
83750// number of results per page that should be returned. If the number of
83751// available results is larger than `maxResults`, Compute Engine returns
83752// a `nextPageToken` that can be used to get the next page of results in
83753// subsequent list requests. Acceptable values are `0` to `500`,
83754// inclusive. (Default: `500`)
83755func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
83756	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83757	return c
83758}
83759
83760// OrderBy sets the optional parameter "orderBy": Sorts list results by
83761// a certain order. By default, results are returned in alphanumerical
83762// order based on the resource name.
83763//
83764// You can also sort results in descending order based on the creation
83765// timestamp using `orderBy="creationTimestamp desc". This sorts
83766// results based on the `creationTimestamp` field in reverse
83767// chronological order (newest result first). Use this to sort resources
83768// like operations so that the newest operation is returned
83769// first.
83770//
83771// Currently, only sorting by `name` or `creationTimestamp desc` is
83772// supported.
83773func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
83774	c.urlParams_.Set("orderBy", orderBy)
83775	return c
83776}
83777
83778// PageToken sets the optional parameter "pageToken": Specifies a page
83779// token to use. Set `pageToken` to the `nextPageToken` returned by a
83780// previous list request to get the next page of results.
83781func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
83782	c.urlParams_.Set("pageToken", pageToken)
83783	return c
83784}
83785
83786// ReturnPartialSuccess sets the optional parameter
83787// "returnPartialSuccess": Opt-in for partial success behavior which
83788// provides partial results in case of failure. The default value is
83789// false and the logic is the same as today.
83790func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall {
83791	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
83792	return c
83793}
83794
83795// Fields allows partial responses to be retrieved. See
83796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83797// for more information.
83798func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
83799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83800	return c
83801}
83802
83803// Context sets the context to be used in this call's Do method. Any
83804// pending HTTP request will be aborted if the provided context is
83805// canceled.
83806func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
83807	c.ctx_ = ctx
83808	return c
83809}
83810
83811// Header returns an http.Header that can be modified by the caller to
83812// add HTTP headers to the request.
83813func (c *InstanceGroupsListInstancesCall) Header() http.Header {
83814	if c.header_ == nil {
83815		c.header_ = make(http.Header)
83816	}
83817	return c.header_
83818}
83819
83820func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
83821	reqHeaders := make(http.Header)
83822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
83823	for k, v := range c.header_ {
83824		reqHeaders[k] = v
83825	}
83826	reqHeaders.Set("User-Agent", c.s.userAgent())
83827	var body io.Reader = nil
83828	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
83829	if err != nil {
83830		return nil, err
83831	}
83832	reqHeaders.Set("Content-Type", "application/json")
83833	c.urlParams_.Set("alt", alt)
83834	c.urlParams_.Set("prettyPrint", "false")
83835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
83836	urls += "?" + c.urlParams_.Encode()
83837	req, err := http.NewRequest("POST", urls, body)
83838	if err != nil {
83839		return nil, err
83840	}
83841	req.Header = reqHeaders
83842	googleapi.Expand(req.URL, map[string]string{
83843		"project":       c.project,
83844		"zone":          c.zone,
83845		"instanceGroup": c.instanceGroup,
83846	})
83847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83848}
83849
83850// Do executes the "compute.instanceGroups.listInstances" call.
83851// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
83852// Any non-2xx status code is an error. Response headers are in either
83853// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
83854// was returned at all) in error.(*googleapi.Error).Header. Use
83855// googleapi.IsNotModified to check whether the returned error was
83856// because http.StatusNotModified was returned.
83857func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
83858	gensupport.SetOptions(c.urlParams_, opts...)
83859	res, err := c.doRequest("json")
83860	if res != nil && res.StatusCode == http.StatusNotModified {
83861		if res.Body != nil {
83862			res.Body.Close()
83863		}
83864		return nil, &googleapi.Error{
83865			Code:   res.StatusCode,
83866			Header: res.Header,
83867		}
83868	}
83869	if err != nil {
83870		return nil, err
83871	}
83872	defer googleapi.CloseBody(res)
83873	if err := googleapi.CheckResponse(res); err != nil {
83874		return nil, err
83875	}
83876	ret := &InstanceGroupsListInstances{
83877		ServerResponse: googleapi.ServerResponse{
83878			Header:         res.Header,
83879			HTTPStatusCode: res.StatusCode,
83880		},
83881	}
83882	target := &ret
83883	if err := gensupport.DecodeResponse(target, res); err != nil {
83884		return nil, err
83885	}
83886	return ret, nil
83887	// {
83888	//   "description": "Lists the instances in the specified instance group.",
83889	//   "httpMethod": "POST",
83890	//   "id": "compute.instanceGroups.listInstances",
83891	//   "parameterOrder": [
83892	//     "project",
83893	//     "zone",
83894	//     "instanceGroup"
83895	//   ],
83896	//   "parameters": {
83897	//     "filter": {
83898	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83899	//       "location": "query",
83900	//       "type": "string"
83901	//     },
83902	//     "instanceGroup": {
83903	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
83904	//       "location": "path",
83905	//       "required": true,
83906	//       "type": "string"
83907	//     },
83908	//     "maxResults": {
83909	//       "default": "500",
83910	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83911	//       "format": "uint32",
83912	//       "location": "query",
83913	//       "minimum": "0",
83914	//       "type": "integer"
83915	//     },
83916	//     "orderBy": {
83917	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83918	//       "location": "query",
83919	//       "type": "string"
83920	//     },
83921	//     "pageToken": {
83922	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83923	//       "location": "query",
83924	//       "type": "string"
83925	//     },
83926	//     "project": {
83927	//       "description": "Project ID for this request.",
83928	//       "location": "path",
83929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83930	//       "required": true,
83931	//       "type": "string"
83932	//     },
83933	//     "returnPartialSuccess": {
83934	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
83935	//       "location": "query",
83936	//       "type": "boolean"
83937	//     },
83938	//     "zone": {
83939	//       "description": "The name of the zone where the instance group is located.",
83940	//       "location": "path",
83941	//       "required": true,
83942	//       "type": "string"
83943	//     }
83944	//   },
83945	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
83946	//   "request": {
83947	//     "$ref": "InstanceGroupsListInstancesRequest"
83948	//   },
83949	//   "response": {
83950	//     "$ref": "InstanceGroupsListInstances"
83951	//   },
83952	//   "scopes": [
83953	//     "https://www.googleapis.com/auth/cloud-platform",
83954	//     "https://www.googleapis.com/auth/compute",
83955	//     "https://www.googleapis.com/auth/compute.readonly"
83956	//   ]
83957	// }
83958
83959}
83960
83961// Pages invokes f for each page of results.
83962// A non-nil error returned from f will halt the iteration.
83963// The provided context supersedes any context provided to the Context method.
83964func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
83965	c.ctx_ = ctx
83966	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83967	for {
83968		x, err := c.Do()
83969		if err != nil {
83970			return err
83971		}
83972		if err := f(x); err != nil {
83973			return err
83974		}
83975		if x.NextPageToken == "" {
83976			return nil
83977		}
83978		c.PageToken(x.NextPageToken)
83979	}
83980}
83981
83982// method id "compute.instanceGroups.removeInstances":
83983
83984type InstanceGroupsRemoveInstancesCall struct {
83985	s                                    *Service
83986	project                              string
83987	zone                                 string
83988	instanceGroup                        string
83989	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
83990	urlParams_                           gensupport.URLParams
83991	ctx_                                 context.Context
83992	header_                              http.Header
83993}
83994
83995// RemoveInstances: Removes one or more instances from the specified
83996// instance group, but does not delete those instances.
83997//
83998// If the group is part of a backend service that has enabled connection
83999// draining, it can take up to 60 seconds after the connection draining
84000// duration before the VM instance is removed or deleted.
84001func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
84002	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84003	c.project = project
84004	c.zone = zone
84005	c.instanceGroup = instanceGroup
84006	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
84007	return c
84008}
84009
84010// RequestId sets the optional parameter "requestId": An optional
84011// request ID to identify requests. Specify a unique request ID so that
84012// if you must retry your request, the server will know to ignore the
84013// request if it has already been completed.
84014//
84015// For example, consider a situation where you make an initial request
84016// and the request times out. If you make the request again with the
84017// same request ID, the server can check if original operation with the
84018// same request ID was received, and if so, will ignore the second
84019// request. This prevents clients from accidentally creating duplicate
84020// commitments.
84021//
84022// The request ID must be a valid UUID with the exception that zero UUID
84023// is not supported (00000000-0000-0000-0000-000000000000).
84024func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
84025	c.urlParams_.Set("requestId", requestId)
84026	return c
84027}
84028
84029// Fields allows partial responses to be retrieved. See
84030// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84031// for more information.
84032func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
84033	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84034	return c
84035}
84036
84037// Context sets the context to be used in this call's Do method. Any
84038// pending HTTP request will be aborted if the provided context is
84039// canceled.
84040func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
84041	c.ctx_ = ctx
84042	return c
84043}
84044
84045// Header returns an http.Header that can be modified by the caller to
84046// add HTTP headers to the request.
84047func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
84048	if c.header_ == nil {
84049		c.header_ = make(http.Header)
84050	}
84051	return c.header_
84052}
84053
84054func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
84055	reqHeaders := make(http.Header)
84056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
84057	for k, v := range c.header_ {
84058		reqHeaders[k] = v
84059	}
84060	reqHeaders.Set("User-Agent", c.s.userAgent())
84061	var body io.Reader = nil
84062	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
84063	if err != nil {
84064		return nil, err
84065	}
84066	reqHeaders.Set("Content-Type", "application/json")
84067	c.urlParams_.Set("alt", alt)
84068	c.urlParams_.Set("prettyPrint", "false")
84069	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
84070	urls += "?" + c.urlParams_.Encode()
84071	req, err := http.NewRequest("POST", urls, body)
84072	if err != nil {
84073		return nil, err
84074	}
84075	req.Header = reqHeaders
84076	googleapi.Expand(req.URL, map[string]string{
84077		"project":       c.project,
84078		"zone":          c.zone,
84079		"instanceGroup": c.instanceGroup,
84080	})
84081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84082}
84083
84084// Do executes the "compute.instanceGroups.removeInstances" call.
84085// Exactly one of *Operation or error will be non-nil. Any non-2xx
84086// status code is an error. Response headers are in either
84087// *Operation.ServerResponse.Header or (if a response was returned at
84088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84089// to check whether the returned error was because
84090// http.StatusNotModified was returned.
84091func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84092	gensupport.SetOptions(c.urlParams_, opts...)
84093	res, err := c.doRequest("json")
84094	if res != nil && res.StatusCode == http.StatusNotModified {
84095		if res.Body != nil {
84096			res.Body.Close()
84097		}
84098		return nil, &googleapi.Error{
84099			Code:   res.StatusCode,
84100			Header: res.Header,
84101		}
84102	}
84103	if err != nil {
84104		return nil, err
84105	}
84106	defer googleapi.CloseBody(res)
84107	if err := googleapi.CheckResponse(res); err != nil {
84108		return nil, err
84109	}
84110	ret := &Operation{
84111		ServerResponse: googleapi.ServerResponse{
84112			Header:         res.Header,
84113			HTTPStatusCode: res.StatusCode,
84114		},
84115	}
84116	target := &ret
84117	if err := gensupport.DecodeResponse(target, res); err != nil {
84118		return nil, err
84119	}
84120	return ret, nil
84121	// {
84122	//   "description": "Removes one or more instances from the specified instance group, but does not delete those instances.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.",
84123	//   "httpMethod": "POST",
84124	//   "id": "compute.instanceGroups.removeInstances",
84125	//   "parameterOrder": [
84126	//     "project",
84127	//     "zone",
84128	//     "instanceGroup"
84129	//   ],
84130	//   "parameters": {
84131	//     "instanceGroup": {
84132	//       "description": "The name of the instance group where the specified instances will be removed.",
84133	//       "location": "path",
84134	//       "required": true,
84135	//       "type": "string"
84136	//     },
84137	//     "project": {
84138	//       "description": "Project ID for this request.",
84139	//       "location": "path",
84140	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84141	//       "required": true,
84142	//       "type": "string"
84143	//     },
84144	//     "requestId": {
84145	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84146	//       "location": "query",
84147	//       "type": "string"
84148	//     },
84149	//     "zone": {
84150	//       "description": "The name of the zone where the instance group is located.",
84151	//       "location": "path",
84152	//       "required": true,
84153	//       "type": "string"
84154	//     }
84155	//   },
84156	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
84157	//   "request": {
84158	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
84159	//   },
84160	//   "response": {
84161	//     "$ref": "Operation"
84162	//   },
84163	//   "scopes": [
84164	//     "https://www.googleapis.com/auth/cloud-platform",
84165	//     "https://www.googleapis.com/auth/compute"
84166	//   ]
84167	// }
84168
84169}
84170
84171// method id "compute.instanceGroups.setNamedPorts":
84172
84173type InstanceGroupsSetNamedPortsCall struct {
84174	s                                  *Service
84175	project                            string
84176	zone                               string
84177	instanceGroup                      string
84178	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
84179	urlParams_                         gensupport.URLParams
84180	ctx_                               context.Context
84181	header_                            http.Header
84182}
84183
84184// SetNamedPorts: Sets the named ports for the specified instance group.
84185func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
84186	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84187	c.project = project
84188	c.zone = zone
84189	c.instanceGroup = instanceGroup
84190	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
84191	return c
84192}
84193
84194// RequestId sets the optional parameter "requestId": An optional
84195// request ID to identify requests. Specify a unique request ID so that
84196// if you must retry your request, the server will know to ignore the
84197// request if it has already been completed.
84198//
84199// For example, consider a situation where you make an initial request
84200// and the request times out. If you make the request again with the
84201// same request ID, the server can check if original operation with the
84202// same request ID was received, and if so, will ignore the second
84203// request. This prevents clients from accidentally creating duplicate
84204// commitments.
84205//
84206// The request ID must be a valid UUID with the exception that zero UUID
84207// is not supported (00000000-0000-0000-0000-000000000000).
84208func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
84209	c.urlParams_.Set("requestId", requestId)
84210	return c
84211}
84212
84213// Fields allows partial responses to be retrieved. See
84214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84215// for more information.
84216func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
84217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84218	return c
84219}
84220
84221// Context sets the context to be used in this call's Do method. Any
84222// pending HTTP request will be aborted if the provided context is
84223// canceled.
84224func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
84225	c.ctx_ = ctx
84226	return c
84227}
84228
84229// Header returns an http.Header that can be modified by the caller to
84230// add HTTP headers to the request.
84231func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
84232	if c.header_ == nil {
84233		c.header_ = make(http.Header)
84234	}
84235	return c.header_
84236}
84237
84238func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
84239	reqHeaders := make(http.Header)
84240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
84241	for k, v := range c.header_ {
84242		reqHeaders[k] = v
84243	}
84244	reqHeaders.Set("User-Agent", c.s.userAgent())
84245	var body io.Reader = nil
84246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
84247	if err != nil {
84248		return nil, err
84249	}
84250	reqHeaders.Set("Content-Type", "application/json")
84251	c.urlParams_.Set("alt", alt)
84252	c.urlParams_.Set("prettyPrint", "false")
84253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
84254	urls += "?" + c.urlParams_.Encode()
84255	req, err := http.NewRequest("POST", urls, body)
84256	if err != nil {
84257		return nil, err
84258	}
84259	req.Header = reqHeaders
84260	googleapi.Expand(req.URL, map[string]string{
84261		"project":       c.project,
84262		"zone":          c.zone,
84263		"instanceGroup": c.instanceGroup,
84264	})
84265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84266}
84267
84268// Do executes the "compute.instanceGroups.setNamedPorts" call.
84269// Exactly one of *Operation or error will be non-nil. Any non-2xx
84270// status code is an error. Response headers are in either
84271// *Operation.ServerResponse.Header or (if a response was returned at
84272// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84273// to check whether the returned error was because
84274// http.StatusNotModified was returned.
84275func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84276	gensupport.SetOptions(c.urlParams_, opts...)
84277	res, err := c.doRequest("json")
84278	if res != nil && res.StatusCode == http.StatusNotModified {
84279		if res.Body != nil {
84280			res.Body.Close()
84281		}
84282		return nil, &googleapi.Error{
84283			Code:   res.StatusCode,
84284			Header: res.Header,
84285		}
84286	}
84287	if err != nil {
84288		return nil, err
84289	}
84290	defer googleapi.CloseBody(res)
84291	if err := googleapi.CheckResponse(res); err != nil {
84292		return nil, err
84293	}
84294	ret := &Operation{
84295		ServerResponse: googleapi.ServerResponse{
84296			Header:         res.Header,
84297			HTTPStatusCode: res.StatusCode,
84298		},
84299	}
84300	target := &ret
84301	if err := gensupport.DecodeResponse(target, res); err != nil {
84302		return nil, err
84303	}
84304	return ret, nil
84305	// {
84306	//   "description": "Sets the named ports for the specified instance group.",
84307	//   "httpMethod": "POST",
84308	//   "id": "compute.instanceGroups.setNamedPorts",
84309	//   "parameterOrder": [
84310	//     "project",
84311	//     "zone",
84312	//     "instanceGroup"
84313	//   ],
84314	//   "parameters": {
84315	//     "instanceGroup": {
84316	//       "description": "The name of the instance group where the named ports are updated.",
84317	//       "location": "path",
84318	//       "required": true,
84319	//       "type": "string"
84320	//     },
84321	//     "project": {
84322	//       "description": "Project ID for this request.",
84323	//       "location": "path",
84324	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84325	//       "required": true,
84326	//       "type": "string"
84327	//     },
84328	//     "requestId": {
84329	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84330	//       "location": "query",
84331	//       "type": "string"
84332	//     },
84333	//     "zone": {
84334	//       "description": "The name of the zone where the instance group is located.",
84335	//       "location": "path",
84336	//       "required": true,
84337	//       "type": "string"
84338	//     }
84339	//   },
84340	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
84341	//   "request": {
84342	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
84343	//   },
84344	//   "response": {
84345	//     "$ref": "Operation"
84346	//   },
84347	//   "scopes": [
84348	//     "https://www.googleapis.com/auth/cloud-platform",
84349	//     "https://www.googleapis.com/auth/compute"
84350	//   ]
84351	// }
84352
84353}
84354
84355// method id "compute.instanceGroups.testIamPermissions":
84356
84357type InstanceGroupsTestIamPermissionsCall struct {
84358	s                      *Service
84359	project                string
84360	zone                   string
84361	resource               string
84362	testpermissionsrequest *TestPermissionsRequest
84363	urlParams_             gensupport.URLParams
84364	ctx_                   context.Context
84365	header_                http.Header
84366}
84367
84368// TestIamPermissions: Returns permissions that a caller has on the
84369// specified resource.
84370func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall {
84371	c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84372	c.project = project
84373	c.zone = zone
84374	c.resource = resource
84375	c.testpermissionsrequest = testpermissionsrequest
84376	return c
84377}
84378
84379// Fields allows partial responses to be retrieved. See
84380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84381// for more information.
84382func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall {
84383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84384	return c
84385}
84386
84387// Context sets the context to be used in this call's Do method. Any
84388// pending HTTP request will be aborted if the provided context is
84389// canceled.
84390func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall {
84391	c.ctx_ = ctx
84392	return c
84393}
84394
84395// Header returns an http.Header that can be modified by the caller to
84396// add HTTP headers to the request.
84397func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header {
84398	if c.header_ == nil {
84399		c.header_ = make(http.Header)
84400	}
84401	return c.header_
84402}
84403
84404func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
84405	reqHeaders := make(http.Header)
84406	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
84407	for k, v := range c.header_ {
84408		reqHeaders[k] = v
84409	}
84410	reqHeaders.Set("User-Agent", c.s.userAgent())
84411	var body io.Reader = nil
84412	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
84413	if err != nil {
84414		return nil, err
84415	}
84416	reqHeaders.Set("Content-Type", "application/json")
84417	c.urlParams_.Set("alt", alt)
84418	c.urlParams_.Set("prettyPrint", "false")
84419	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions")
84420	urls += "?" + c.urlParams_.Encode()
84421	req, err := http.NewRequest("POST", urls, body)
84422	if err != nil {
84423		return nil, err
84424	}
84425	req.Header = reqHeaders
84426	googleapi.Expand(req.URL, map[string]string{
84427		"project":  c.project,
84428		"zone":     c.zone,
84429		"resource": c.resource,
84430	})
84431	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84432}
84433
84434// Do executes the "compute.instanceGroups.testIamPermissions" call.
84435// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
84436// non-2xx status code is an error. Response headers are in either
84437// *TestPermissionsResponse.ServerResponse.Header or (if a response was
84438// returned at all) in error.(*googleapi.Error).Header. Use
84439// googleapi.IsNotModified to check whether the returned error was
84440// because http.StatusNotModified was returned.
84441func (c *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
84442	gensupport.SetOptions(c.urlParams_, opts...)
84443	res, err := c.doRequest("json")
84444	if res != nil && res.StatusCode == http.StatusNotModified {
84445		if res.Body != nil {
84446			res.Body.Close()
84447		}
84448		return nil, &googleapi.Error{
84449			Code:   res.StatusCode,
84450			Header: res.Header,
84451		}
84452	}
84453	if err != nil {
84454		return nil, err
84455	}
84456	defer googleapi.CloseBody(res)
84457	if err := googleapi.CheckResponse(res); err != nil {
84458		return nil, err
84459	}
84460	ret := &TestPermissionsResponse{
84461		ServerResponse: googleapi.ServerResponse{
84462			Header:         res.Header,
84463			HTTPStatusCode: res.StatusCode,
84464		},
84465	}
84466	target := &ret
84467	if err := gensupport.DecodeResponse(target, res); err != nil {
84468		return nil, err
84469	}
84470	return ret, nil
84471	// {
84472	//   "description": "Returns permissions that a caller has on the specified resource.",
84473	//   "httpMethod": "POST",
84474	//   "id": "compute.instanceGroups.testIamPermissions",
84475	//   "parameterOrder": [
84476	//     "project",
84477	//     "zone",
84478	//     "resource"
84479	//   ],
84480	//   "parameters": {
84481	//     "project": {
84482	//       "description": "Project ID for this request.",
84483	//       "location": "path",
84484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84485	//       "required": true,
84486	//       "type": "string"
84487	//     },
84488	//     "resource": {
84489	//       "description": "Name or id of the resource for this request.",
84490	//       "location": "path",
84491	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84492	//       "required": true,
84493	//       "type": "string"
84494	//     },
84495	//     "zone": {
84496	//       "description": "The name of the zone for this request.",
84497	//       "location": "path",
84498	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84499	//       "required": true,
84500	//       "type": "string"
84501	//     }
84502	//   },
84503	//   "path": "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
84504	//   "request": {
84505	//     "$ref": "TestPermissionsRequest"
84506	//   },
84507	//   "response": {
84508	//     "$ref": "TestPermissionsResponse"
84509	//   },
84510	//   "scopes": [
84511	//     "https://www.googleapis.com/auth/cloud-platform",
84512	//     "https://www.googleapis.com/auth/compute",
84513	//     "https://www.googleapis.com/auth/compute.readonly"
84514	//   ]
84515	// }
84516
84517}
84518
84519// method id "compute.instanceTemplates.delete":
84520
84521type InstanceTemplatesDeleteCall struct {
84522	s                *Service
84523	project          string
84524	instanceTemplate string
84525	urlParams_       gensupport.URLParams
84526	ctx_             context.Context
84527	header_          http.Header
84528}
84529
84530// Delete: Deletes the specified instance template. Deleting an instance
84531// template is permanent and cannot be undone. It is not possible to
84532// delete templates that are already in use by a managed instance group.
84533// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
84534func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
84535	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84536	c.project = project
84537	c.instanceTemplate = instanceTemplate
84538	return c
84539}
84540
84541// RequestId sets the optional parameter "requestId": An optional
84542// request ID to identify requests. Specify a unique request ID so that
84543// if you must retry your request, the server will know to ignore the
84544// request if it has already been completed.
84545//
84546// For example, consider a situation where you make an initial request
84547// and the request times out. If you make the request again with the
84548// same request ID, the server can check if original operation with the
84549// same request ID was received, and if so, will ignore the second
84550// request. This prevents clients from accidentally creating duplicate
84551// commitments.
84552//
84553// The request ID must be a valid UUID with the exception that zero UUID
84554// is not supported (00000000-0000-0000-0000-000000000000).
84555func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
84556	c.urlParams_.Set("requestId", requestId)
84557	return c
84558}
84559
84560// Fields allows partial responses to be retrieved. See
84561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84562// for more information.
84563func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
84564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84565	return c
84566}
84567
84568// Context sets the context to be used in this call's Do method. Any
84569// pending HTTP request will be aborted if the provided context is
84570// canceled.
84571func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
84572	c.ctx_ = ctx
84573	return c
84574}
84575
84576// Header returns an http.Header that can be modified by the caller to
84577// add HTTP headers to the request.
84578func (c *InstanceTemplatesDeleteCall) Header() http.Header {
84579	if c.header_ == nil {
84580		c.header_ = make(http.Header)
84581	}
84582	return c.header_
84583}
84584
84585func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
84586	reqHeaders := make(http.Header)
84587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
84588	for k, v := range c.header_ {
84589		reqHeaders[k] = v
84590	}
84591	reqHeaders.Set("User-Agent", c.s.userAgent())
84592	var body io.Reader = nil
84593	c.urlParams_.Set("alt", alt)
84594	c.urlParams_.Set("prettyPrint", "false")
84595	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
84596	urls += "?" + c.urlParams_.Encode()
84597	req, err := http.NewRequest("DELETE", urls, body)
84598	if err != nil {
84599		return nil, err
84600	}
84601	req.Header = reqHeaders
84602	googleapi.Expand(req.URL, map[string]string{
84603		"project":          c.project,
84604		"instanceTemplate": c.instanceTemplate,
84605	})
84606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84607}
84608
84609// Do executes the "compute.instanceTemplates.delete" call.
84610// Exactly one of *Operation or error will be non-nil. Any non-2xx
84611// status code is an error. Response headers are in either
84612// *Operation.ServerResponse.Header or (if a response was returned at
84613// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84614// to check whether the returned error was because
84615// http.StatusNotModified was returned.
84616func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84617	gensupport.SetOptions(c.urlParams_, opts...)
84618	res, err := c.doRequest("json")
84619	if res != nil && res.StatusCode == http.StatusNotModified {
84620		if res.Body != nil {
84621			res.Body.Close()
84622		}
84623		return nil, &googleapi.Error{
84624			Code:   res.StatusCode,
84625			Header: res.Header,
84626		}
84627	}
84628	if err != nil {
84629		return nil, err
84630	}
84631	defer googleapi.CloseBody(res)
84632	if err := googleapi.CheckResponse(res); err != nil {
84633		return nil, err
84634	}
84635	ret := &Operation{
84636		ServerResponse: googleapi.ServerResponse{
84637			Header:         res.Header,
84638			HTTPStatusCode: res.StatusCode,
84639		},
84640	}
84641	target := &ret
84642	if err := gensupport.DecodeResponse(target, res); err != nil {
84643		return nil, err
84644	}
84645	return ret, nil
84646	// {
84647	//   "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.",
84648	//   "httpMethod": "DELETE",
84649	//   "id": "compute.instanceTemplates.delete",
84650	//   "parameterOrder": [
84651	//     "project",
84652	//     "instanceTemplate"
84653	//   ],
84654	//   "parameters": {
84655	//     "instanceTemplate": {
84656	//       "description": "The name of the instance template to delete.",
84657	//       "location": "path",
84658	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84659	//       "required": true,
84660	//       "type": "string"
84661	//     },
84662	//     "project": {
84663	//       "description": "Project ID for this request.",
84664	//       "location": "path",
84665	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84666	//       "required": true,
84667	//       "type": "string"
84668	//     },
84669	//     "requestId": {
84670	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84671	//       "location": "query",
84672	//       "type": "string"
84673	//     }
84674	//   },
84675	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
84676	//   "response": {
84677	//     "$ref": "Operation"
84678	//   },
84679	//   "scopes": [
84680	//     "https://www.googleapis.com/auth/cloud-platform",
84681	//     "https://www.googleapis.com/auth/compute"
84682	//   ]
84683	// }
84684
84685}
84686
84687// method id "compute.instanceTemplates.get":
84688
84689type InstanceTemplatesGetCall struct {
84690	s                *Service
84691	project          string
84692	instanceTemplate string
84693	urlParams_       gensupport.URLParams
84694	ifNoneMatch_     string
84695	ctx_             context.Context
84696	header_          http.Header
84697}
84698
84699// Get: Returns the specified instance template. Gets a list of
84700// available instance templates by making a list() request.
84701// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
84702func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
84703	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84704	c.project = project
84705	c.instanceTemplate = instanceTemplate
84706	return c
84707}
84708
84709// Fields allows partial responses to be retrieved. See
84710// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84711// for more information.
84712func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
84713	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84714	return c
84715}
84716
84717// IfNoneMatch sets the optional parameter which makes the operation
84718// fail if the object's ETag matches the given value. This is useful for
84719// getting updates only after the object has changed since the last
84720// request. Use googleapi.IsNotModified to check whether the response
84721// error from Do is the result of In-None-Match.
84722func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
84723	c.ifNoneMatch_ = entityTag
84724	return c
84725}
84726
84727// Context sets the context to be used in this call's Do method. Any
84728// pending HTTP request will be aborted if the provided context is
84729// canceled.
84730func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
84731	c.ctx_ = ctx
84732	return c
84733}
84734
84735// Header returns an http.Header that can be modified by the caller to
84736// add HTTP headers to the request.
84737func (c *InstanceTemplatesGetCall) Header() http.Header {
84738	if c.header_ == nil {
84739		c.header_ = make(http.Header)
84740	}
84741	return c.header_
84742}
84743
84744func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
84745	reqHeaders := make(http.Header)
84746	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
84747	for k, v := range c.header_ {
84748		reqHeaders[k] = v
84749	}
84750	reqHeaders.Set("User-Agent", c.s.userAgent())
84751	if c.ifNoneMatch_ != "" {
84752		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84753	}
84754	var body io.Reader = nil
84755	c.urlParams_.Set("alt", alt)
84756	c.urlParams_.Set("prettyPrint", "false")
84757	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
84758	urls += "?" + c.urlParams_.Encode()
84759	req, err := http.NewRequest("GET", urls, body)
84760	if err != nil {
84761		return nil, err
84762	}
84763	req.Header = reqHeaders
84764	googleapi.Expand(req.URL, map[string]string{
84765		"project":          c.project,
84766		"instanceTemplate": c.instanceTemplate,
84767	})
84768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84769}
84770
84771// Do executes the "compute.instanceTemplates.get" call.
84772// Exactly one of *InstanceTemplate or error will be non-nil. Any
84773// non-2xx status code is an error. Response headers are in either
84774// *InstanceTemplate.ServerResponse.Header or (if a response was
84775// returned at all) in error.(*googleapi.Error).Header. Use
84776// googleapi.IsNotModified to check whether the returned error was
84777// because http.StatusNotModified was returned.
84778func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
84779	gensupport.SetOptions(c.urlParams_, opts...)
84780	res, err := c.doRequest("json")
84781	if res != nil && res.StatusCode == http.StatusNotModified {
84782		if res.Body != nil {
84783			res.Body.Close()
84784		}
84785		return nil, &googleapi.Error{
84786			Code:   res.StatusCode,
84787			Header: res.Header,
84788		}
84789	}
84790	if err != nil {
84791		return nil, err
84792	}
84793	defer googleapi.CloseBody(res)
84794	if err := googleapi.CheckResponse(res); err != nil {
84795		return nil, err
84796	}
84797	ret := &InstanceTemplate{
84798		ServerResponse: googleapi.ServerResponse{
84799			Header:         res.Header,
84800			HTTPStatusCode: res.StatusCode,
84801		},
84802	}
84803	target := &ret
84804	if err := gensupport.DecodeResponse(target, res); err != nil {
84805		return nil, err
84806	}
84807	return ret, nil
84808	// {
84809	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
84810	//   "httpMethod": "GET",
84811	//   "id": "compute.instanceTemplates.get",
84812	//   "parameterOrder": [
84813	//     "project",
84814	//     "instanceTemplate"
84815	//   ],
84816	//   "parameters": {
84817	//     "instanceTemplate": {
84818	//       "description": "The name of the instance template.",
84819	//       "location": "path",
84820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84821	//       "required": true,
84822	//       "type": "string"
84823	//     },
84824	//     "project": {
84825	//       "description": "Project ID for this request.",
84826	//       "location": "path",
84827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84828	//       "required": true,
84829	//       "type": "string"
84830	//     }
84831	//   },
84832	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
84833	//   "response": {
84834	//     "$ref": "InstanceTemplate"
84835	//   },
84836	//   "scopes": [
84837	//     "https://www.googleapis.com/auth/cloud-platform",
84838	//     "https://www.googleapis.com/auth/compute",
84839	//     "https://www.googleapis.com/auth/compute.readonly"
84840	//   ]
84841	// }
84842
84843}
84844
84845// method id "compute.instanceTemplates.getIamPolicy":
84846
84847type InstanceTemplatesGetIamPolicyCall struct {
84848	s            *Service
84849	project      string
84850	resource     string
84851	urlParams_   gensupport.URLParams
84852	ifNoneMatch_ string
84853	ctx_         context.Context
84854	header_      http.Header
84855}
84856
84857// GetIamPolicy: Gets the access control policy for a resource. May be
84858// empty if no such policy or resource exists.
84859func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
84860	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84861	c.project = project
84862	c.resource = resource
84863	return c
84864}
84865
84866// OptionsRequestedPolicyVersion sets the optional parameter
84867// "optionsRequestedPolicyVersion": Requested IAM Policy version.
84868func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
84869	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
84870	return c
84871}
84872
84873// Fields allows partial responses to be retrieved. See
84874// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84875// for more information.
84876func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
84877	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84878	return c
84879}
84880
84881// IfNoneMatch sets the optional parameter which makes the operation
84882// fail if the object's ETag matches the given value. This is useful for
84883// getting updates only after the object has changed since the last
84884// request. Use googleapi.IsNotModified to check whether the response
84885// error from Do is the result of In-None-Match.
84886func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
84887	c.ifNoneMatch_ = entityTag
84888	return c
84889}
84890
84891// Context sets the context to be used in this call's Do method. Any
84892// pending HTTP request will be aborted if the provided context is
84893// canceled.
84894func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
84895	c.ctx_ = ctx
84896	return c
84897}
84898
84899// Header returns an http.Header that can be modified by the caller to
84900// add HTTP headers to the request.
84901func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
84902	if c.header_ == nil {
84903		c.header_ = make(http.Header)
84904	}
84905	return c.header_
84906}
84907
84908func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
84909	reqHeaders := make(http.Header)
84910	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
84911	for k, v := range c.header_ {
84912		reqHeaders[k] = v
84913	}
84914	reqHeaders.Set("User-Agent", c.s.userAgent())
84915	if c.ifNoneMatch_ != "" {
84916		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84917	}
84918	var body io.Reader = nil
84919	c.urlParams_.Set("alt", alt)
84920	c.urlParams_.Set("prettyPrint", "false")
84921	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/getIamPolicy")
84922	urls += "?" + c.urlParams_.Encode()
84923	req, err := http.NewRequest("GET", urls, body)
84924	if err != nil {
84925		return nil, err
84926	}
84927	req.Header = reqHeaders
84928	googleapi.Expand(req.URL, map[string]string{
84929		"project":  c.project,
84930		"resource": c.resource,
84931	})
84932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84933}
84934
84935// Do executes the "compute.instanceTemplates.getIamPolicy" call.
84936// Exactly one of *Policy or error will be non-nil. Any non-2xx status
84937// code is an error. Response headers are in either
84938// *Policy.ServerResponse.Header or (if a response was returned at all)
84939// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
84940// check whether the returned error was because http.StatusNotModified
84941// was returned.
84942func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
84943	gensupport.SetOptions(c.urlParams_, opts...)
84944	res, err := c.doRequest("json")
84945	if res != nil && res.StatusCode == http.StatusNotModified {
84946		if res.Body != nil {
84947			res.Body.Close()
84948		}
84949		return nil, &googleapi.Error{
84950			Code:   res.StatusCode,
84951			Header: res.Header,
84952		}
84953	}
84954	if err != nil {
84955		return nil, err
84956	}
84957	defer googleapi.CloseBody(res)
84958	if err := googleapi.CheckResponse(res); err != nil {
84959		return nil, err
84960	}
84961	ret := &Policy{
84962		ServerResponse: googleapi.ServerResponse{
84963			Header:         res.Header,
84964			HTTPStatusCode: res.StatusCode,
84965		},
84966	}
84967	target := &ret
84968	if err := gensupport.DecodeResponse(target, res); err != nil {
84969		return nil, err
84970	}
84971	return ret, nil
84972	// {
84973	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
84974	//   "httpMethod": "GET",
84975	//   "id": "compute.instanceTemplates.getIamPolicy",
84976	//   "parameterOrder": [
84977	//     "project",
84978	//     "resource"
84979	//   ],
84980	//   "parameters": {
84981	//     "optionsRequestedPolicyVersion": {
84982	//       "description": "Requested IAM Policy version.",
84983	//       "format": "int32",
84984	//       "location": "query",
84985	//       "type": "integer"
84986	//     },
84987	//     "project": {
84988	//       "description": "Project ID for this request.",
84989	//       "location": "path",
84990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84991	//       "required": true,
84992	//       "type": "string"
84993	//     },
84994	//     "resource": {
84995	//       "description": "Name or id of the resource for this request.",
84996	//       "location": "path",
84997	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84998	//       "required": true,
84999	//       "type": "string"
85000	//     }
85001	//   },
85002	//   "path": "{project}/global/instanceTemplates/{resource}/getIamPolicy",
85003	//   "response": {
85004	//     "$ref": "Policy"
85005	//   },
85006	//   "scopes": [
85007	//     "https://www.googleapis.com/auth/cloud-platform",
85008	//     "https://www.googleapis.com/auth/compute",
85009	//     "https://www.googleapis.com/auth/compute.readonly"
85010	//   ]
85011	// }
85012
85013}
85014
85015// method id "compute.instanceTemplates.insert":
85016
85017type InstanceTemplatesInsertCall struct {
85018	s                *Service
85019	project          string
85020	instancetemplate *InstanceTemplate
85021	urlParams_       gensupport.URLParams
85022	ctx_             context.Context
85023	header_          http.Header
85024}
85025
85026// Insert: Creates an instance template in the specified project using
85027// the data that is included in the request. If you are creating a new
85028// template to update an existing instance group, your new instance
85029// template must use the same network or, if applicable, the same
85030// subnetwork as the original template.
85031// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
85032func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
85033	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85034	c.project = project
85035	c.instancetemplate = instancetemplate
85036	return c
85037}
85038
85039// RequestId sets the optional parameter "requestId": An optional
85040// request ID to identify requests. Specify a unique request ID so that
85041// if you must retry your request, the server will know to ignore the
85042// request if it has already been completed.
85043//
85044// For example, consider a situation where you make an initial request
85045// and the request times out. If you make the request again with the
85046// same request ID, the server can check if original operation with the
85047// same request ID was received, and if so, will ignore the second
85048// request. This prevents clients from accidentally creating duplicate
85049// commitments.
85050//
85051// The request ID must be a valid UUID with the exception that zero UUID
85052// is not supported (00000000-0000-0000-0000-000000000000).
85053func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
85054	c.urlParams_.Set("requestId", requestId)
85055	return c
85056}
85057
85058// Fields allows partial responses to be retrieved. See
85059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85060// for more information.
85061func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
85062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85063	return c
85064}
85065
85066// Context sets the context to be used in this call's Do method. Any
85067// pending HTTP request will be aborted if the provided context is
85068// canceled.
85069func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
85070	c.ctx_ = ctx
85071	return c
85072}
85073
85074// Header returns an http.Header that can be modified by the caller to
85075// add HTTP headers to the request.
85076func (c *InstanceTemplatesInsertCall) Header() http.Header {
85077	if c.header_ == nil {
85078		c.header_ = make(http.Header)
85079	}
85080	return c.header_
85081}
85082
85083func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
85084	reqHeaders := make(http.Header)
85085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
85086	for k, v := range c.header_ {
85087		reqHeaders[k] = v
85088	}
85089	reqHeaders.Set("User-Agent", c.s.userAgent())
85090	var body io.Reader = nil
85091	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
85092	if err != nil {
85093		return nil, err
85094	}
85095	reqHeaders.Set("Content-Type", "application/json")
85096	c.urlParams_.Set("alt", alt)
85097	c.urlParams_.Set("prettyPrint", "false")
85098	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
85099	urls += "?" + c.urlParams_.Encode()
85100	req, err := http.NewRequest("POST", urls, body)
85101	if err != nil {
85102		return nil, err
85103	}
85104	req.Header = reqHeaders
85105	googleapi.Expand(req.URL, map[string]string{
85106		"project": c.project,
85107	})
85108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85109}
85110
85111// Do executes the "compute.instanceTemplates.insert" call.
85112// Exactly one of *Operation or error will be non-nil. Any non-2xx
85113// status code is an error. Response headers are in either
85114// *Operation.ServerResponse.Header or (if a response was returned at
85115// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85116// to check whether the returned error was because
85117// http.StatusNotModified was returned.
85118func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85119	gensupport.SetOptions(c.urlParams_, opts...)
85120	res, err := c.doRequest("json")
85121	if res != nil && res.StatusCode == http.StatusNotModified {
85122		if res.Body != nil {
85123			res.Body.Close()
85124		}
85125		return nil, &googleapi.Error{
85126			Code:   res.StatusCode,
85127			Header: res.Header,
85128		}
85129	}
85130	if err != nil {
85131		return nil, err
85132	}
85133	defer googleapi.CloseBody(res)
85134	if err := googleapi.CheckResponse(res); err != nil {
85135		return nil, err
85136	}
85137	ret := &Operation{
85138		ServerResponse: googleapi.ServerResponse{
85139			Header:         res.Header,
85140			HTTPStatusCode: res.StatusCode,
85141		},
85142	}
85143	target := &ret
85144	if err := gensupport.DecodeResponse(target, res); err != nil {
85145		return nil, err
85146	}
85147	return ret, nil
85148	// {
85149	//   "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.",
85150	//   "httpMethod": "POST",
85151	//   "id": "compute.instanceTemplates.insert",
85152	//   "parameterOrder": [
85153	//     "project"
85154	//   ],
85155	//   "parameters": {
85156	//     "project": {
85157	//       "description": "Project ID for this request.",
85158	//       "location": "path",
85159	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85160	//       "required": true,
85161	//       "type": "string"
85162	//     },
85163	//     "requestId": {
85164	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85165	//       "location": "query",
85166	//       "type": "string"
85167	//     }
85168	//   },
85169	//   "path": "{project}/global/instanceTemplates",
85170	//   "request": {
85171	//     "$ref": "InstanceTemplate"
85172	//   },
85173	//   "response": {
85174	//     "$ref": "Operation"
85175	//   },
85176	//   "scopes": [
85177	//     "https://www.googleapis.com/auth/cloud-platform",
85178	//     "https://www.googleapis.com/auth/compute"
85179	//   ]
85180	// }
85181
85182}
85183
85184// method id "compute.instanceTemplates.list":
85185
85186type InstanceTemplatesListCall struct {
85187	s            *Service
85188	project      string
85189	urlParams_   gensupport.URLParams
85190	ifNoneMatch_ string
85191	ctx_         context.Context
85192	header_      http.Header
85193}
85194
85195// List: Retrieves a list of instance templates that are contained
85196// within the specified project.
85197// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
85198func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
85199	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85200	c.project = project
85201	return c
85202}
85203
85204// Filter sets the optional parameter "filter": A filter expression that
85205// filters resources listed in the response. The expression must specify
85206// the field name, a comparison operator, and the value that you want to
85207// use for filtering. The value must be a string, a number, or a
85208// boolean. The comparison operator must be either `=`, `!=`, `>`, or
85209// `<`.
85210//
85211// For example, if you are filtering Compute Engine instances, you can
85212// exclude instances named `example-instance` by specifying `name !=
85213// example-instance`.
85214//
85215// You can also filter nested fields. For example, you could specify
85216// `scheduling.automaticRestart = false` to include instances only if
85217// they are not scheduled for automatic restarts. You can use filtering
85218// on nested fields to filter based on resource labels.
85219//
85220// To filter on multiple expressions, provide each separate expression
85221// within parentheses. For example: ``` (scheduling.automaticRestart =
85222// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
85223// is an `AND` expression. However, you can include `AND` and `OR`
85224// expressions explicitly. For example: ``` (cpuPlatform = "Intel
85225// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
85226// (scheduling.automaticRestart = true) ```
85227func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
85228	c.urlParams_.Set("filter", filter)
85229	return c
85230}
85231
85232// MaxResults sets the optional parameter "maxResults": The maximum
85233// number of results per page that should be returned. If the number of
85234// available results is larger than `maxResults`, Compute Engine returns
85235// a `nextPageToken` that can be used to get the next page of results in
85236// subsequent list requests. Acceptable values are `0` to `500`,
85237// inclusive. (Default: `500`)
85238func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
85239	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85240	return c
85241}
85242
85243// OrderBy sets the optional parameter "orderBy": Sorts list results by
85244// a certain order. By default, results are returned in alphanumerical
85245// order based on the resource name.
85246//
85247// You can also sort results in descending order based on the creation
85248// timestamp using `orderBy="creationTimestamp desc". This sorts
85249// results based on the `creationTimestamp` field in reverse
85250// chronological order (newest result first). Use this to sort resources
85251// like operations so that the newest operation is returned
85252// first.
85253//
85254// Currently, only sorting by `name` or `creationTimestamp desc` is
85255// supported.
85256func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
85257	c.urlParams_.Set("orderBy", orderBy)
85258	return c
85259}
85260
85261// PageToken sets the optional parameter "pageToken": Specifies a page
85262// token to use. Set `pageToken` to the `nextPageToken` returned by a
85263// previous list request to get the next page of results.
85264func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
85265	c.urlParams_.Set("pageToken", pageToken)
85266	return c
85267}
85268
85269// ReturnPartialSuccess sets the optional parameter
85270// "returnPartialSuccess": Opt-in for partial success behavior which
85271// provides partial results in case of failure. The default value is
85272// false and the logic is the same as today.
85273func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall {
85274	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
85275	return c
85276}
85277
85278// Fields allows partial responses to be retrieved. See
85279// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85280// for more information.
85281func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
85282	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85283	return c
85284}
85285
85286// IfNoneMatch sets the optional parameter which makes the operation
85287// fail if the object's ETag matches the given value. This is useful for
85288// getting updates only after the object has changed since the last
85289// request. Use googleapi.IsNotModified to check whether the response
85290// error from Do is the result of In-None-Match.
85291func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
85292	c.ifNoneMatch_ = entityTag
85293	return c
85294}
85295
85296// Context sets the context to be used in this call's Do method. Any
85297// pending HTTP request will be aborted if the provided context is
85298// canceled.
85299func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
85300	c.ctx_ = ctx
85301	return c
85302}
85303
85304// Header returns an http.Header that can be modified by the caller to
85305// add HTTP headers to the request.
85306func (c *InstanceTemplatesListCall) Header() http.Header {
85307	if c.header_ == nil {
85308		c.header_ = make(http.Header)
85309	}
85310	return c.header_
85311}
85312
85313func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
85314	reqHeaders := make(http.Header)
85315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
85316	for k, v := range c.header_ {
85317		reqHeaders[k] = v
85318	}
85319	reqHeaders.Set("User-Agent", c.s.userAgent())
85320	if c.ifNoneMatch_ != "" {
85321		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85322	}
85323	var body io.Reader = nil
85324	c.urlParams_.Set("alt", alt)
85325	c.urlParams_.Set("prettyPrint", "false")
85326	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
85327	urls += "?" + c.urlParams_.Encode()
85328	req, err := http.NewRequest("GET", urls, body)
85329	if err != nil {
85330		return nil, err
85331	}
85332	req.Header = reqHeaders
85333	googleapi.Expand(req.URL, map[string]string{
85334		"project": c.project,
85335	})
85336	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85337}
85338
85339// Do executes the "compute.instanceTemplates.list" call.
85340// Exactly one of *InstanceTemplateList or error will be non-nil. Any
85341// non-2xx status code is an error. Response headers are in either
85342// *InstanceTemplateList.ServerResponse.Header or (if a response was
85343// returned at all) in error.(*googleapi.Error).Header. Use
85344// googleapi.IsNotModified to check whether the returned error was
85345// because http.StatusNotModified was returned.
85346func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
85347	gensupport.SetOptions(c.urlParams_, opts...)
85348	res, err := c.doRequest("json")
85349	if res != nil && res.StatusCode == http.StatusNotModified {
85350		if res.Body != nil {
85351			res.Body.Close()
85352		}
85353		return nil, &googleapi.Error{
85354			Code:   res.StatusCode,
85355			Header: res.Header,
85356		}
85357	}
85358	if err != nil {
85359		return nil, err
85360	}
85361	defer googleapi.CloseBody(res)
85362	if err := googleapi.CheckResponse(res); err != nil {
85363		return nil, err
85364	}
85365	ret := &InstanceTemplateList{
85366		ServerResponse: googleapi.ServerResponse{
85367			Header:         res.Header,
85368			HTTPStatusCode: res.StatusCode,
85369		},
85370	}
85371	target := &ret
85372	if err := gensupport.DecodeResponse(target, res); err != nil {
85373		return nil, err
85374	}
85375	return ret, nil
85376	// {
85377	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
85378	//   "httpMethod": "GET",
85379	//   "id": "compute.instanceTemplates.list",
85380	//   "parameterOrder": [
85381	//     "project"
85382	//   ],
85383	//   "parameters": {
85384	//     "filter": {
85385	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
85386	//       "location": "query",
85387	//       "type": "string"
85388	//     },
85389	//     "maxResults": {
85390	//       "default": "500",
85391	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
85392	//       "format": "uint32",
85393	//       "location": "query",
85394	//       "minimum": "0",
85395	//       "type": "integer"
85396	//     },
85397	//     "orderBy": {
85398	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
85399	//       "location": "query",
85400	//       "type": "string"
85401	//     },
85402	//     "pageToken": {
85403	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
85404	//       "location": "query",
85405	//       "type": "string"
85406	//     },
85407	//     "project": {
85408	//       "description": "Project ID for this request.",
85409	//       "location": "path",
85410	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85411	//       "required": true,
85412	//       "type": "string"
85413	//     },
85414	//     "returnPartialSuccess": {
85415	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
85416	//       "location": "query",
85417	//       "type": "boolean"
85418	//     }
85419	//   },
85420	//   "path": "{project}/global/instanceTemplates",
85421	//   "response": {
85422	//     "$ref": "InstanceTemplateList"
85423	//   },
85424	//   "scopes": [
85425	//     "https://www.googleapis.com/auth/cloud-platform",
85426	//     "https://www.googleapis.com/auth/compute",
85427	//     "https://www.googleapis.com/auth/compute.readonly"
85428	//   ]
85429	// }
85430
85431}
85432
85433// Pages invokes f for each page of results.
85434// A non-nil error returned from f will halt the iteration.
85435// The provided context supersedes any context provided to the Context method.
85436func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
85437	c.ctx_ = ctx
85438	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85439	for {
85440		x, err := c.Do()
85441		if err != nil {
85442			return err
85443		}
85444		if err := f(x); err != nil {
85445			return err
85446		}
85447		if x.NextPageToken == "" {
85448			return nil
85449		}
85450		c.PageToken(x.NextPageToken)
85451	}
85452}
85453
85454// method id "compute.instanceTemplates.setIamPolicy":
85455
85456type InstanceTemplatesSetIamPolicyCall struct {
85457	s                      *Service
85458	project                string
85459	resource               string
85460	globalsetpolicyrequest *GlobalSetPolicyRequest
85461	urlParams_             gensupport.URLParams
85462	ctx_                   context.Context
85463	header_                http.Header
85464}
85465
85466// SetIamPolicy: Sets the access control policy on the specified
85467// resource. Replaces any existing policy.
85468func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
85469	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85470	c.project = project
85471	c.resource = resource
85472	c.globalsetpolicyrequest = globalsetpolicyrequest
85473	return c
85474}
85475
85476// Fields allows partial responses to be retrieved. See
85477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85478// for more information.
85479func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
85480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85481	return c
85482}
85483
85484// Context sets the context to be used in this call's Do method. Any
85485// pending HTTP request will be aborted if the provided context is
85486// canceled.
85487func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
85488	c.ctx_ = ctx
85489	return c
85490}
85491
85492// Header returns an http.Header that can be modified by the caller to
85493// add HTTP headers to the request.
85494func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
85495	if c.header_ == nil {
85496		c.header_ = make(http.Header)
85497	}
85498	return c.header_
85499}
85500
85501func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
85502	reqHeaders := make(http.Header)
85503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
85504	for k, v := range c.header_ {
85505		reqHeaders[k] = v
85506	}
85507	reqHeaders.Set("User-Agent", c.s.userAgent())
85508	var body io.Reader = nil
85509	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
85510	if err != nil {
85511		return nil, err
85512	}
85513	reqHeaders.Set("Content-Type", "application/json")
85514	c.urlParams_.Set("alt", alt)
85515	c.urlParams_.Set("prettyPrint", "false")
85516	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/setIamPolicy")
85517	urls += "?" + c.urlParams_.Encode()
85518	req, err := http.NewRequest("POST", urls, body)
85519	if err != nil {
85520		return nil, err
85521	}
85522	req.Header = reqHeaders
85523	googleapi.Expand(req.URL, map[string]string{
85524		"project":  c.project,
85525		"resource": c.resource,
85526	})
85527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85528}
85529
85530// Do executes the "compute.instanceTemplates.setIamPolicy" call.
85531// Exactly one of *Policy or error will be non-nil. Any non-2xx status
85532// code is an error. Response headers are in either
85533// *Policy.ServerResponse.Header or (if a response was returned at all)
85534// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
85535// check whether the returned error was because http.StatusNotModified
85536// was returned.
85537func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
85538	gensupport.SetOptions(c.urlParams_, opts...)
85539	res, err := c.doRequest("json")
85540	if res != nil && res.StatusCode == http.StatusNotModified {
85541		if res.Body != nil {
85542			res.Body.Close()
85543		}
85544		return nil, &googleapi.Error{
85545			Code:   res.StatusCode,
85546			Header: res.Header,
85547		}
85548	}
85549	if err != nil {
85550		return nil, err
85551	}
85552	defer googleapi.CloseBody(res)
85553	if err := googleapi.CheckResponse(res); err != nil {
85554		return nil, err
85555	}
85556	ret := &Policy{
85557		ServerResponse: googleapi.ServerResponse{
85558			Header:         res.Header,
85559			HTTPStatusCode: res.StatusCode,
85560		},
85561	}
85562	target := &ret
85563	if err := gensupport.DecodeResponse(target, res); err != nil {
85564		return nil, err
85565	}
85566	return ret, nil
85567	// {
85568	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
85569	//   "httpMethod": "POST",
85570	//   "id": "compute.instanceTemplates.setIamPolicy",
85571	//   "parameterOrder": [
85572	//     "project",
85573	//     "resource"
85574	//   ],
85575	//   "parameters": {
85576	//     "project": {
85577	//       "description": "Project ID for this request.",
85578	//       "location": "path",
85579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85580	//       "required": true,
85581	//       "type": "string"
85582	//     },
85583	//     "resource": {
85584	//       "description": "Name or id of the resource for this request.",
85585	//       "location": "path",
85586	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85587	//       "required": true,
85588	//       "type": "string"
85589	//     }
85590	//   },
85591	//   "path": "{project}/global/instanceTemplates/{resource}/setIamPolicy",
85592	//   "request": {
85593	//     "$ref": "GlobalSetPolicyRequest"
85594	//   },
85595	//   "response": {
85596	//     "$ref": "Policy"
85597	//   },
85598	//   "scopes": [
85599	//     "https://www.googleapis.com/auth/cloud-platform",
85600	//     "https://www.googleapis.com/auth/compute"
85601	//   ]
85602	// }
85603
85604}
85605
85606// method id "compute.instanceTemplates.testIamPermissions":
85607
85608type InstanceTemplatesTestIamPermissionsCall struct {
85609	s                      *Service
85610	project                string
85611	resource               string
85612	testpermissionsrequest *TestPermissionsRequest
85613	urlParams_             gensupport.URLParams
85614	ctx_                   context.Context
85615	header_                http.Header
85616}
85617
85618// TestIamPermissions: Returns permissions that a caller has on the
85619// specified resource.
85620func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
85621	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85622	c.project = project
85623	c.resource = resource
85624	c.testpermissionsrequest = testpermissionsrequest
85625	return c
85626}
85627
85628// Fields allows partial responses to be retrieved. See
85629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85630// for more information.
85631func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
85632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85633	return c
85634}
85635
85636// Context sets the context to be used in this call's Do method. Any
85637// pending HTTP request will be aborted if the provided context is
85638// canceled.
85639func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
85640	c.ctx_ = ctx
85641	return c
85642}
85643
85644// Header returns an http.Header that can be modified by the caller to
85645// add HTTP headers to the request.
85646func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
85647	if c.header_ == nil {
85648		c.header_ = make(http.Header)
85649	}
85650	return c.header_
85651}
85652
85653func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
85654	reqHeaders := make(http.Header)
85655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
85656	for k, v := range c.header_ {
85657		reqHeaders[k] = v
85658	}
85659	reqHeaders.Set("User-Agent", c.s.userAgent())
85660	var body io.Reader = nil
85661	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
85662	if err != nil {
85663		return nil, err
85664	}
85665	reqHeaders.Set("Content-Type", "application/json")
85666	c.urlParams_.Set("alt", alt)
85667	c.urlParams_.Set("prettyPrint", "false")
85668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/testIamPermissions")
85669	urls += "?" + c.urlParams_.Encode()
85670	req, err := http.NewRequest("POST", urls, body)
85671	if err != nil {
85672		return nil, err
85673	}
85674	req.Header = reqHeaders
85675	googleapi.Expand(req.URL, map[string]string{
85676		"project":  c.project,
85677		"resource": c.resource,
85678	})
85679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85680}
85681
85682// Do executes the "compute.instanceTemplates.testIamPermissions" call.
85683// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
85684// non-2xx status code is an error. Response headers are in either
85685// *TestPermissionsResponse.ServerResponse.Header or (if a response was
85686// returned at all) in error.(*googleapi.Error).Header. Use
85687// googleapi.IsNotModified to check whether the returned error was
85688// because http.StatusNotModified was returned.
85689func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
85690	gensupport.SetOptions(c.urlParams_, opts...)
85691	res, err := c.doRequest("json")
85692	if res != nil && res.StatusCode == http.StatusNotModified {
85693		if res.Body != nil {
85694			res.Body.Close()
85695		}
85696		return nil, &googleapi.Error{
85697			Code:   res.StatusCode,
85698			Header: res.Header,
85699		}
85700	}
85701	if err != nil {
85702		return nil, err
85703	}
85704	defer googleapi.CloseBody(res)
85705	if err := googleapi.CheckResponse(res); err != nil {
85706		return nil, err
85707	}
85708	ret := &TestPermissionsResponse{
85709		ServerResponse: googleapi.ServerResponse{
85710			Header:         res.Header,
85711			HTTPStatusCode: res.StatusCode,
85712		},
85713	}
85714	target := &ret
85715	if err := gensupport.DecodeResponse(target, res); err != nil {
85716		return nil, err
85717	}
85718	return ret, nil
85719	// {
85720	//   "description": "Returns permissions that a caller has on the specified resource.",
85721	//   "httpMethod": "POST",
85722	//   "id": "compute.instanceTemplates.testIamPermissions",
85723	//   "parameterOrder": [
85724	//     "project",
85725	//     "resource"
85726	//   ],
85727	//   "parameters": {
85728	//     "project": {
85729	//       "description": "Project ID for this request.",
85730	//       "location": "path",
85731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85732	//       "required": true,
85733	//       "type": "string"
85734	//     },
85735	//     "resource": {
85736	//       "description": "Name or id of the resource for this request.",
85737	//       "location": "path",
85738	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85739	//       "required": true,
85740	//       "type": "string"
85741	//     }
85742	//   },
85743	//   "path": "{project}/global/instanceTemplates/{resource}/testIamPermissions",
85744	//   "request": {
85745	//     "$ref": "TestPermissionsRequest"
85746	//   },
85747	//   "response": {
85748	//     "$ref": "TestPermissionsResponse"
85749	//   },
85750	//   "scopes": [
85751	//     "https://www.googleapis.com/auth/cloud-platform",
85752	//     "https://www.googleapis.com/auth/compute",
85753	//     "https://www.googleapis.com/auth/compute.readonly"
85754	//   ]
85755	// }
85756
85757}
85758
85759// method id "compute.instances.addAccessConfig":
85760
85761type InstancesAddAccessConfigCall struct {
85762	s            *Service
85763	project      string
85764	zone         string
85765	instance     string
85766	accessconfig *AccessConfig
85767	urlParams_   gensupport.URLParams
85768	ctx_         context.Context
85769	header_      http.Header
85770}
85771
85772// AddAccessConfig: Adds an access config to an instance's network
85773// interface.
85774// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
85775func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
85776	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85777	c.project = project
85778	c.zone = zone
85779	c.instance = instance
85780	c.urlParams_.Set("networkInterface", networkInterface)
85781	c.accessconfig = accessconfig
85782	return c
85783}
85784
85785// RequestId sets the optional parameter "requestId": An optional
85786// request ID to identify requests. Specify a unique request ID so that
85787// if you must retry your request, the server will know to ignore the
85788// request if it has already been completed.
85789//
85790// For example, consider a situation where you make an initial request
85791// and the request times out. If you make the request again with the
85792// same request ID, the server can check if original operation with the
85793// same request ID was received, and if so, will ignore the second
85794// request. This prevents clients from accidentally creating duplicate
85795// commitments.
85796//
85797// The request ID must be a valid UUID with the exception that zero UUID
85798// is not supported (00000000-0000-0000-0000-000000000000).
85799func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
85800	c.urlParams_.Set("requestId", requestId)
85801	return c
85802}
85803
85804// Fields allows partial responses to be retrieved. See
85805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85806// for more information.
85807func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
85808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85809	return c
85810}
85811
85812// Context sets the context to be used in this call's Do method. Any
85813// pending HTTP request will be aborted if the provided context is
85814// canceled.
85815func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
85816	c.ctx_ = ctx
85817	return c
85818}
85819
85820// Header returns an http.Header that can be modified by the caller to
85821// add HTTP headers to the request.
85822func (c *InstancesAddAccessConfigCall) Header() http.Header {
85823	if c.header_ == nil {
85824		c.header_ = make(http.Header)
85825	}
85826	return c.header_
85827}
85828
85829func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
85830	reqHeaders := make(http.Header)
85831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
85832	for k, v := range c.header_ {
85833		reqHeaders[k] = v
85834	}
85835	reqHeaders.Set("User-Agent", c.s.userAgent())
85836	var body io.Reader = nil
85837	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
85838	if err != nil {
85839		return nil, err
85840	}
85841	reqHeaders.Set("Content-Type", "application/json")
85842	c.urlParams_.Set("alt", alt)
85843	c.urlParams_.Set("prettyPrint", "false")
85844	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
85845	urls += "?" + c.urlParams_.Encode()
85846	req, err := http.NewRequest("POST", urls, body)
85847	if err != nil {
85848		return nil, err
85849	}
85850	req.Header = reqHeaders
85851	googleapi.Expand(req.URL, map[string]string{
85852		"project":  c.project,
85853		"zone":     c.zone,
85854		"instance": c.instance,
85855	})
85856	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85857}
85858
85859// Do executes the "compute.instances.addAccessConfig" call.
85860// Exactly one of *Operation or error will be non-nil. Any non-2xx
85861// status code is an error. Response headers are in either
85862// *Operation.ServerResponse.Header or (if a response was returned at
85863// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85864// to check whether the returned error was because
85865// http.StatusNotModified was returned.
85866func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85867	gensupport.SetOptions(c.urlParams_, opts...)
85868	res, err := c.doRequest("json")
85869	if res != nil && res.StatusCode == http.StatusNotModified {
85870		if res.Body != nil {
85871			res.Body.Close()
85872		}
85873		return nil, &googleapi.Error{
85874			Code:   res.StatusCode,
85875			Header: res.Header,
85876		}
85877	}
85878	if err != nil {
85879		return nil, err
85880	}
85881	defer googleapi.CloseBody(res)
85882	if err := googleapi.CheckResponse(res); err != nil {
85883		return nil, err
85884	}
85885	ret := &Operation{
85886		ServerResponse: googleapi.ServerResponse{
85887			Header:         res.Header,
85888			HTTPStatusCode: res.StatusCode,
85889		},
85890	}
85891	target := &ret
85892	if err := gensupport.DecodeResponse(target, res); err != nil {
85893		return nil, err
85894	}
85895	return ret, nil
85896	// {
85897	//   "description": "Adds an access config to an instance's network interface.",
85898	//   "httpMethod": "POST",
85899	//   "id": "compute.instances.addAccessConfig",
85900	//   "parameterOrder": [
85901	//     "project",
85902	//     "zone",
85903	//     "instance",
85904	//     "networkInterface"
85905	//   ],
85906	//   "parameters": {
85907	//     "instance": {
85908	//       "description": "The instance name for this request.",
85909	//       "location": "path",
85910	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85911	//       "required": true,
85912	//       "type": "string"
85913	//     },
85914	//     "networkInterface": {
85915	//       "description": "The name of the network interface to add to this instance.",
85916	//       "location": "query",
85917	//       "required": true,
85918	//       "type": "string"
85919	//     },
85920	//     "project": {
85921	//       "description": "Project ID for this request.",
85922	//       "location": "path",
85923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85924	//       "required": true,
85925	//       "type": "string"
85926	//     },
85927	//     "requestId": {
85928	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85929	//       "location": "query",
85930	//       "type": "string"
85931	//     },
85932	//     "zone": {
85933	//       "description": "The name of the zone for this request.",
85934	//       "location": "path",
85935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85936	//       "required": true,
85937	//       "type": "string"
85938	//     }
85939	//   },
85940	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
85941	//   "request": {
85942	//     "$ref": "AccessConfig"
85943	//   },
85944	//   "response": {
85945	//     "$ref": "Operation"
85946	//   },
85947	//   "scopes": [
85948	//     "https://www.googleapis.com/auth/cloud-platform",
85949	//     "https://www.googleapis.com/auth/compute"
85950	//   ]
85951	// }
85952
85953}
85954
85955// method id "compute.instances.addResourcePolicies":
85956
85957type InstancesAddResourcePoliciesCall struct {
85958	s                                   *Service
85959	project                             string
85960	zone                                string
85961	instance                            string
85962	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
85963	urlParams_                          gensupport.URLParams
85964	ctx_                                context.Context
85965	header_                             http.Header
85966}
85967
85968// AddResourcePolicies: Adds existing resource policies to an instance.
85969// You can only add one policy right now which will be applied to this
85970// instance for scheduling live migrations.
85971func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
85972	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85973	c.project = project
85974	c.zone = zone
85975	c.instance = instance
85976	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
85977	return c
85978}
85979
85980// RequestId sets the optional parameter "requestId": An optional
85981// request ID to identify requests. Specify a unique request ID so that
85982// if you must retry your request, the server will know to ignore the
85983// request if it has already been completed.
85984//
85985// For example, consider a situation where you make an initial request
85986// and the request times out. If you make the request again with the
85987// same request ID, the server can check if original operation with the
85988// same request ID was received, and if so, will ignore the second
85989// request. This prevents clients from accidentally creating duplicate
85990// commitments.
85991//
85992// The request ID must be a valid UUID with the exception that zero UUID
85993// is not supported (00000000-0000-0000-0000-000000000000).
85994func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
85995	c.urlParams_.Set("requestId", requestId)
85996	return c
85997}
85998
85999// Fields allows partial responses to be retrieved. See
86000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86001// for more information.
86002func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
86003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86004	return c
86005}
86006
86007// Context sets the context to be used in this call's Do method. Any
86008// pending HTTP request will be aborted if the provided context is
86009// canceled.
86010func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
86011	c.ctx_ = ctx
86012	return c
86013}
86014
86015// Header returns an http.Header that can be modified by the caller to
86016// add HTTP headers to the request.
86017func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
86018	if c.header_ == nil {
86019		c.header_ = make(http.Header)
86020	}
86021	return c.header_
86022}
86023
86024func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
86025	reqHeaders := make(http.Header)
86026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
86027	for k, v := range c.header_ {
86028		reqHeaders[k] = v
86029	}
86030	reqHeaders.Set("User-Agent", c.s.userAgent())
86031	var body io.Reader = nil
86032	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
86033	if err != nil {
86034		return nil, err
86035	}
86036	reqHeaders.Set("Content-Type", "application/json")
86037	c.urlParams_.Set("alt", alt)
86038	c.urlParams_.Set("prettyPrint", "false")
86039	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
86040	urls += "?" + c.urlParams_.Encode()
86041	req, err := http.NewRequest("POST", urls, body)
86042	if err != nil {
86043		return nil, err
86044	}
86045	req.Header = reqHeaders
86046	googleapi.Expand(req.URL, map[string]string{
86047		"project":  c.project,
86048		"zone":     c.zone,
86049		"instance": c.instance,
86050	})
86051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86052}
86053
86054// Do executes the "compute.instances.addResourcePolicies" call.
86055// Exactly one of *Operation or error will be non-nil. Any non-2xx
86056// status code is an error. Response headers are in either
86057// *Operation.ServerResponse.Header or (if a response was returned at
86058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86059// to check whether the returned error was because
86060// http.StatusNotModified was returned.
86061func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86062	gensupport.SetOptions(c.urlParams_, opts...)
86063	res, err := c.doRequest("json")
86064	if res != nil && res.StatusCode == http.StatusNotModified {
86065		if res.Body != nil {
86066			res.Body.Close()
86067		}
86068		return nil, &googleapi.Error{
86069			Code:   res.StatusCode,
86070			Header: res.Header,
86071		}
86072	}
86073	if err != nil {
86074		return nil, err
86075	}
86076	defer googleapi.CloseBody(res)
86077	if err := googleapi.CheckResponse(res); err != nil {
86078		return nil, err
86079	}
86080	ret := &Operation{
86081		ServerResponse: googleapi.ServerResponse{
86082			Header:         res.Header,
86083			HTTPStatusCode: res.StatusCode,
86084		},
86085	}
86086	target := &ret
86087	if err := gensupport.DecodeResponse(target, res); err != nil {
86088		return nil, err
86089	}
86090	return ret, nil
86091	// {
86092	//   "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.",
86093	//   "httpMethod": "POST",
86094	//   "id": "compute.instances.addResourcePolicies",
86095	//   "parameterOrder": [
86096	//     "project",
86097	//     "zone",
86098	//     "instance"
86099	//   ],
86100	//   "parameters": {
86101	//     "instance": {
86102	//       "description": "The instance name for this request.",
86103	//       "location": "path",
86104	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86105	//       "required": true,
86106	//       "type": "string"
86107	//     },
86108	//     "project": {
86109	//       "description": "Project ID for this request.",
86110	//       "location": "path",
86111	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86112	//       "required": true,
86113	//       "type": "string"
86114	//     },
86115	//     "requestId": {
86116	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86117	//       "location": "query",
86118	//       "type": "string"
86119	//     },
86120	//     "zone": {
86121	//       "description": "The name of the zone for this request.",
86122	//       "location": "path",
86123	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86124	//       "required": true,
86125	//       "type": "string"
86126	//     }
86127	//   },
86128	//   "path": "{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
86129	//   "request": {
86130	//     "$ref": "InstancesAddResourcePoliciesRequest"
86131	//   },
86132	//   "response": {
86133	//     "$ref": "Operation"
86134	//   },
86135	//   "scopes": [
86136	//     "https://www.googleapis.com/auth/cloud-platform",
86137	//     "https://www.googleapis.com/auth/compute"
86138	//   ]
86139	// }
86140
86141}
86142
86143// method id "compute.instances.aggregatedList":
86144
86145type InstancesAggregatedListCall struct {
86146	s            *Service
86147	project      string
86148	urlParams_   gensupport.URLParams
86149	ifNoneMatch_ string
86150	ctx_         context.Context
86151	header_      http.Header
86152}
86153
86154// AggregatedList: Retrieves aggregated list of all of the instances in
86155// your project across all regions and zones.
86156// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
86157func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
86158	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86159	c.project = project
86160	return c
86161}
86162
86163// Filter sets the optional parameter "filter": A filter expression that
86164// filters resources listed in the response. The expression must specify
86165// the field name, a comparison operator, and the value that you want to
86166// use for filtering. The value must be a string, a number, or a
86167// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86168// `<`.
86169//
86170// For example, if you are filtering Compute Engine instances, you can
86171// exclude instances named `example-instance` by specifying `name !=
86172// example-instance`.
86173//
86174// You can also filter nested fields. For example, you could specify
86175// `scheduling.automaticRestart = false` to include instances only if
86176// they are not scheduled for automatic restarts. You can use filtering
86177// on nested fields to filter based on resource labels.
86178//
86179// To filter on multiple expressions, provide each separate expression
86180// within parentheses. For example: ``` (scheduling.automaticRestart =
86181// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
86182// is an `AND` expression. However, you can include `AND` and `OR`
86183// expressions explicitly. For example: ``` (cpuPlatform = "Intel
86184// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
86185// (scheduling.automaticRestart = true) ```
86186func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
86187	c.urlParams_.Set("filter", filter)
86188	return c
86189}
86190
86191// IncludeAllScopes sets the optional parameter "includeAllScopes":
86192// Indicates whether every visible scope for each scope type (zone,
86193// region, global) should be included in the response. For new resource
86194// types added after this field, the flag has no effect as new resource
86195// types will always include every visible scope for each scope type in
86196// response. For resource types which predate this field, if this flag
86197// is omitted or false, only scopes of the scope types where the
86198// resource type is expected to be found will be included.
86199func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
86200	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
86201	return c
86202}
86203
86204// MaxResults sets the optional parameter "maxResults": The maximum
86205// number of results per page that should be returned. If the number of
86206// available results is larger than `maxResults`, Compute Engine returns
86207// a `nextPageToken` that can be used to get the next page of results in
86208// subsequent list requests. Acceptable values are `0` to `500`,
86209// inclusive. (Default: `500`)
86210func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
86211	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86212	return c
86213}
86214
86215// OrderBy sets the optional parameter "orderBy": Sorts list results by
86216// a certain order. By default, results are returned in alphanumerical
86217// order based on the resource name.
86218//
86219// You can also sort results in descending order based on the creation
86220// timestamp using `orderBy="creationTimestamp desc". This sorts
86221// results based on the `creationTimestamp` field in reverse
86222// chronological order (newest result first). Use this to sort resources
86223// like operations so that the newest operation is returned
86224// first.
86225//
86226// Currently, only sorting by `name` or `creationTimestamp desc` is
86227// supported.
86228func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
86229	c.urlParams_.Set("orderBy", orderBy)
86230	return c
86231}
86232
86233// PageToken sets the optional parameter "pageToken": Specifies a page
86234// token to use. Set `pageToken` to the `nextPageToken` returned by a
86235// previous list request to get the next page of results.
86236func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
86237	c.urlParams_.Set("pageToken", pageToken)
86238	return c
86239}
86240
86241// ReturnPartialSuccess sets the optional parameter
86242// "returnPartialSuccess": Opt-in for partial success behavior which
86243// provides partial results in case of failure. The default value is
86244// false and the logic is the same as today.
86245func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall {
86246	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
86247	return c
86248}
86249
86250// Fields allows partial responses to be retrieved. See
86251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86252// for more information.
86253func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
86254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86255	return c
86256}
86257
86258// IfNoneMatch sets the optional parameter which makes the operation
86259// fail if the object's ETag matches the given value. This is useful for
86260// getting updates only after the object has changed since the last
86261// request. Use googleapi.IsNotModified to check whether the response
86262// error from Do is the result of In-None-Match.
86263func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
86264	c.ifNoneMatch_ = entityTag
86265	return c
86266}
86267
86268// Context sets the context to be used in this call's Do method. Any
86269// pending HTTP request will be aborted if the provided context is
86270// canceled.
86271func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
86272	c.ctx_ = ctx
86273	return c
86274}
86275
86276// Header returns an http.Header that can be modified by the caller to
86277// add HTTP headers to the request.
86278func (c *InstancesAggregatedListCall) Header() http.Header {
86279	if c.header_ == nil {
86280		c.header_ = make(http.Header)
86281	}
86282	return c.header_
86283}
86284
86285func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
86286	reqHeaders := make(http.Header)
86287	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
86288	for k, v := range c.header_ {
86289		reqHeaders[k] = v
86290	}
86291	reqHeaders.Set("User-Agent", c.s.userAgent())
86292	if c.ifNoneMatch_ != "" {
86293		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86294	}
86295	var body io.Reader = nil
86296	c.urlParams_.Set("alt", alt)
86297	c.urlParams_.Set("prettyPrint", "false")
86298	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
86299	urls += "?" + c.urlParams_.Encode()
86300	req, err := http.NewRequest("GET", urls, body)
86301	if err != nil {
86302		return nil, err
86303	}
86304	req.Header = reqHeaders
86305	googleapi.Expand(req.URL, map[string]string{
86306		"project": c.project,
86307	})
86308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86309}
86310
86311// Do executes the "compute.instances.aggregatedList" call.
86312// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
86313// non-2xx status code is an error. Response headers are in either
86314// *InstanceAggregatedList.ServerResponse.Header or (if a response was
86315// returned at all) in error.(*googleapi.Error).Header. Use
86316// googleapi.IsNotModified to check whether the returned error was
86317// because http.StatusNotModified was returned.
86318func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
86319	gensupport.SetOptions(c.urlParams_, opts...)
86320	res, err := c.doRequest("json")
86321	if res != nil && res.StatusCode == http.StatusNotModified {
86322		if res.Body != nil {
86323			res.Body.Close()
86324		}
86325		return nil, &googleapi.Error{
86326			Code:   res.StatusCode,
86327			Header: res.Header,
86328		}
86329	}
86330	if err != nil {
86331		return nil, err
86332	}
86333	defer googleapi.CloseBody(res)
86334	if err := googleapi.CheckResponse(res); err != nil {
86335		return nil, err
86336	}
86337	ret := &InstanceAggregatedList{
86338		ServerResponse: googleapi.ServerResponse{
86339			Header:         res.Header,
86340			HTTPStatusCode: res.StatusCode,
86341		},
86342	}
86343	target := &ret
86344	if err := gensupport.DecodeResponse(target, res); err != nil {
86345		return nil, err
86346	}
86347	return ret, nil
86348	// {
86349	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
86350	//   "httpMethod": "GET",
86351	//   "id": "compute.instances.aggregatedList",
86352	//   "parameterOrder": [
86353	//     "project"
86354	//   ],
86355	//   "parameters": {
86356	//     "filter": {
86357	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
86358	//       "location": "query",
86359	//       "type": "string"
86360	//     },
86361	//     "includeAllScopes": {
86362	//       "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.",
86363	//       "location": "query",
86364	//       "type": "boolean"
86365	//     },
86366	//     "maxResults": {
86367	//       "default": "500",
86368	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
86369	//       "format": "uint32",
86370	//       "location": "query",
86371	//       "minimum": "0",
86372	//       "type": "integer"
86373	//     },
86374	//     "orderBy": {
86375	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
86376	//       "location": "query",
86377	//       "type": "string"
86378	//     },
86379	//     "pageToken": {
86380	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
86381	//       "location": "query",
86382	//       "type": "string"
86383	//     },
86384	//     "project": {
86385	//       "description": "Project ID for this request.",
86386	//       "location": "path",
86387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86388	//       "required": true,
86389	//       "type": "string"
86390	//     },
86391	//     "returnPartialSuccess": {
86392	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
86393	//       "location": "query",
86394	//       "type": "boolean"
86395	//     }
86396	//   },
86397	//   "path": "{project}/aggregated/instances",
86398	//   "response": {
86399	//     "$ref": "InstanceAggregatedList"
86400	//   },
86401	//   "scopes": [
86402	//     "https://www.googleapis.com/auth/cloud-platform",
86403	//     "https://www.googleapis.com/auth/compute",
86404	//     "https://www.googleapis.com/auth/compute.readonly"
86405	//   ]
86406	// }
86407
86408}
86409
86410// Pages invokes f for each page of results.
86411// A non-nil error returned from f will halt the iteration.
86412// The provided context supersedes any context provided to the Context method.
86413func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
86414	c.ctx_ = ctx
86415	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86416	for {
86417		x, err := c.Do()
86418		if err != nil {
86419			return err
86420		}
86421		if err := f(x); err != nil {
86422			return err
86423		}
86424		if x.NextPageToken == "" {
86425			return nil
86426		}
86427		c.PageToken(x.NextPageToken)
86428	}
86429}
86430
86431// method id "compute.instances.attachDisk":
86432
86433type InstancesAttachDiskCall struct {
86434	s            *Service
86435	project      string
86436	zone         string
86437	instance     string
86438	attacheddisk *AttachedDisk
86439	urlParams_   gensupport.URLParams
86440	ctx_         context.Context
86441	header_      http.Header
86442}
86443
86444// AttachDisk: Attaches an existing Disk resource to an instance. You
86445// must first create the disk before you can attach it. It is not
86446// possible to create and attach a disk at the same time. For more
86447// information, read Adding a persistent disk to your instance.
86448// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
86449func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
86450	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86451	c.project = project
86452	c.zone = zone
86453	c.instance = instance
86454	c.attacheddisk = attacheddisk
86455	return c
86456}
86457
86458// ForceAttach sets the optional parameter "forceAttach": Whether to
86459// force attach the disk even if it's currently attached to another
86460// instance.
86461func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
86462	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
86463	return c
86464}
86465
86466// RequestId sets the optional parameter "requestId": An optional
86467// request ID to identify requests. Specify a unique request ID so that
86468// if you must retry your request, the server will know to ignore the
86469// request if it has already been completed.
86470//
86471// For example, consider a situation where you make an initial request
86472// and the request times out. If you make the request again with the
86473// same request ID, the server can check if original operation with the
86474// same request ID was received, and if so, will ignore the second
86475// request. This prevents clients from accidentally creating duplicate
86476// commitments.
86477//
86478// The request ID must be a valid UUID with the exception that zero UUID
86479// is not supported (00000000-0000-0000-0000-000000000000).
86480func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
86481	c.urlParams_.Set("requestId", requestId)
86482	return c
86483}
86484
86485// Fields allows partial responses to be retrieved. See
86486// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86487// for more information.
86488func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
86489	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86490	return c
86491}
86492
86493// Context sets the context to be used in this call's Do method. Any
86494// pending HTTP request will be aborted if the provided context is
86495// canceled.
86496func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
86497	c.ctx_ = ctx
86498	return c
86499}
86500
86501// Header returns an http.Header that can be modified by the caller to
86502// add HTTP headers to the request.
86503func (c *InstancesAttachDiskCall) Header() http.Header {
86504	if c.header_ == nil {
86505		c.header_ = make(http.Header)
86506	}
86507	return c.header_
86508}
86509
86510func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
86511	reqHeaders := make(http.Header)
86512	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
86513	for k, v := range c.header_ {
86514		reqHeaders[k] = v
86515	}
86516	reqHeaders.Set("User-Agent", c.s.userAgent())
86517	var body io.Reader = nil
86518	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
86519	if err != nil {
86520		return nil, err
86521	}
86522	reqHeaders.Set("Content-Type", "application/json")
86523	c.urlParams_.Set("alt", alt)
86524	c.urlParams_.Set("prettyPrint", "false")
86525	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
86526	urls += "?" + c.urlParams_.Encode()
86527	req, err := http.NewRequest("POST", urls, body)
86528	if err != nil {
86529		return nil, err
86530	}
86531	req.Header = reqHeaders
86532	googleapi.Expand(req.URL, map[string]string{
86533		"project":  c.project,
86534		"zone":     c.zone,
86535		"instance": c.instance,
86536	})
86537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86538}
86539
86540// Do executes the "compute.instances.attachDisk" call.
86541// Exactly one of *Operation or error will be non-nil. Any non-2xx
86542// status code is an error. Response headers are in either
86543// *Operation.ServerResponse.Header or (if a response was returned at
86544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86545// to check whether the returned error was because
86546// http.StatusNotModified was returned.
86547func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86548	gensupport.SetOptions(c.urlParams_, opts...)
86549	res, err := c.doRequest("json")
86550	if res != nil && res.StatusCode == http.StatusNotModified {
86551		if res.Body != nil {
86552			res.Body.Close()
86553		}
86554		return nil, &googleapi.Error{
86555			Code:   res.StatusCode,
86556			Header: res.Header,
86557		}
86558	}
86559	if err != nil {
86560		return nil, err
86561	}
86562	defer googleapi.CloseBody(res)
86563	if err := googleapi.CheckResponse(res); err != nil {
86564		return nil, err
86565	}
86566	ret := &Operation{
86567		ServerResponse: googleapi.ServerResponse{
86568			Header:         res.Header,
86569			HTTPStatusCode: res.StatusCode,
86570		},
86571	}
86572	target := &ret
86573	if err := gensupport.DecodeResponse(target, res); err != nil {
86574		return nil, err
86575	}
86576	return ret, nil
86577	// {
86578	//   "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.",
86579	//   "httpMethod": "POST",
86580	//   "id": "compute.instances.attachDisk",
86581	//   "parameterOrder": [
86582	//     "project",
86583	//     "zone",
86584	//     "instance"
86585	//   ],
86586	//   "parameters": {
86587	//     "forceAttach": {
86588	//       "description": "Whether to force attach the disk even if it's currently attached to another instance.",
86589	//       "location": "query",
86590	//       "type": "boolean"
86591	//     },
86592	//     "instance": {
86593	//       "description": "The instance name for this request.",
86594	//       "location": "path",
86595	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86596	//       "required": true,
86597	//       "type": "string"
86598	//     },
86599	//     "project": {
86600	//       "description": "Project ID for this request.",
86601	//       "location": "path",
86602	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86603	//       "required": true,
86604	//       "type": "string"
86605	//     },
86606	//     "requestId": {
86607	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86608	//       "location": "query",
86609	//       "type": "string"
86610	//     },
86611	//     "zone": {
86612	//       "description": "The name of the zone for this request.",
86613	//       "location": "path",
86614	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86615	//       "required": true,
86616	//       "type": "string"
86617	//     }
86618	//   },
86619	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
86620	//   "request": {
86621	//     "$ref": "AttachedDisk"
86622	//   },
86623	//   "response": {
86624	//     "$ref": "Operation"
86625	//   },
86626	//   "scopes": [
86627	//     "https://www.googleapis.com/auth/cloud-platform",
86628	//     "https://www.googleapis.com/auth/compute"
86629	//   ]
86630	// }
86631
86632}
86633
86634// method id "compute.instances.bulkInsert":
86635
86636type InstancesBulkInsertCall struct {
86637	s                          *Service
86638	project                    string
86639	zone                       string
86640	bulkinsertinstanceresource *BulkInsertInstanceResource
86641	urlParams_                 gensupport.URLParams
86642	ctx_                       context.Context
86643	header_                    http.Header
86644}
86645
86646// BulkInsert: Creates multiple instances. Count specifies the number of
86647// instances to create.
86648func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall {
86649	c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86650	c.project = project
86651	c.zone = zone
86652	c.bulkinsertinstanceresource = bulkinsertinstanceresource
86653	return c
86654}
86655
86656// RequestId sets the optional parameter "requestId": An optional
86657// request ID to identify requests. Specify a unique request ID so that
86658// if you must retry your request, the server will know to ignore the
86659// request if it has already been completed.
86660//
86661// For example, consider a situation where you make an initial request
86662// and the request times out. If you make the request again with the
86663// same request ID, the server can check if original operation with the
86664// same request ID was received, and if so, will ignore the second
86665// request. This prevents clients from accidentally creating duplicate
86666// commitments.
86667//
86668// The request ID must be a valid UUID with the exception that zero UUID
86669// is not supported (00000000-0000-0000-0000-000000000000).
86670func (c *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall {
86671	c.urlParams_.Set("requestId", requestId)
86672	return c
86673}
86674
86675// Fields allows partial responses to be retrieved. See
86676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86677// for more information.
86678func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall {
86679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86680	return c
86681}
86682
86683// Context sets the context to be used in this call's Do method. Any
86684// pending HTTP request will be aborted if the provided context is
86685// canceled.
86686func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall {
86687	c.ctx_ = ctx
86688	return c
86689}
86690
86691// Header returns an http.Header that can be modified by the caller to
86692// add HTTP headers to the request.
86693func (c *InstancesBulkInsertCall) Header() http.Header {
86694	if c.header_ == nil {
86695		c.header_ = make(http.Header)
86696	}
86697	return c.header_
86698}
86699
86700func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
86701	reqHeaders := make(http.Header)
86702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
86703	for k, v := range c.header_ {
86704		reqHeaders[k] = v
86705	}
86706	reqHeaders.Set("User-Agent", c.s.userAgent())
86707	var body io.Reader = nil
86708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
86709	if err != nil {
86710		return nil, err
86711	}
86712	reqHeaders.Set("Content-Type", "application/json")
86713	c.urlParams_.Set("alt", alt)
86714	c.urlParams_.Set("prettyPrint", "false")
86715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/bulkInsert")
86716	urls += "?" + c.urlParams_.Encode()
86717	req, err := http.NewRequest("POST", urls, body)
86718	if err != nil {
86719		return nil, err
86720	}
86721	req.Header = reqHeaders
86722	googleapi.Expand(req.URL, map[string]string{
86723		"project": c.project,
86724		"zone":    c.zone,
86725	})
86726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86727}
86728
86729// Do executes the "compute.instances.bulkInsert" call.
86730// Exactly one of *Operation or error will be non-nil. Any non-2xx
86731// status code is an error. Response headers are in either
86732// *Operation.ServerResponse.Header or (if a response was returned at
86733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86734// to check whether the returned error was because
86735// http.StatusNotModified was returned.
86736func (c *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86737	gensupport.SetOptions(c.urlParams_, opts...)
86738	res, err := c.doRequest("json")
86739	if res != nil && res.StatusCode == http.StatusNotModified {
86740		if res.Body != nil {
86741			res.Body.Close()
86742		}
86743		return nil, &googleapi.Error{
86744			Code:   res.StatusCode,
86745			Header: res.Header,
86746		}
86747	}
86748	if err != nil {
86749		return nil, err
86750	}
86751	defer googleapi.CloseBody(res)
86752	if err := googleapi.CheckResponse(res); err != nil {
86753		return nil, err
86754	}
86755	ret := &Operation{
86756		ServerResponse: googleapi.ServerResponse{
86757			Header:         res.Header,
86758			HTTPStatusCode: res.StatusCode,
86759		},
86760	}
86761	target := &ret
86762	if err := gensupport.DecodeResponse(target, res); err != nil {
86763		return nil, err
86764	}
86765	return ret, nil
86766	// {
86767	//   "description": "Creates multiple instances. Count specifies the number of instances to create.",
86768	//   "httpMethod": "POST",
86769	//   "id": "compute.instances.bulkInsert",
86770	//   "parameterOrder": [
86771	//     "project",
86772	//     "zone"
86773	//   ],
86774	//   "parameters": {
86775	//     "project": {
86776	//       "description": "Project ID for this request.",
86777	//       "location": "path",
86778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86779	//       "required": true,
86780	//       "type": "string"
86781	//     },
86782	//     "requestId": {
86783	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86784	//       "location": "query",
86785	//       "type": "string"
86786	//     },
86787	//     "zone": {
86788	//       "description": "The name of the zone for this request.",
86789	//       "location": "path",
86790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86791	//       "required": true,
86792	//       "type": "string"
86793	//     }
86794	//   },
86795	//   "path": "{project}/zones/{zone}/instances/bulkInsert",
86796	//   "request": {
86797	//     "$ref": "BulkInsertInstanceResource"
86798	//   },
86799	//   "response": {
86800	//     "$ref": "Operation"
86801	//   },
86802	//   "scopes": [
86803	//     "https://www.googleapis.com/auth/cloud-platform",
86804	//     "https://www.googleapis.com/auth/compute"
86805	//   ]
86806	// }
86807
86808}
86809
86810// method id "compute.instances.delete":
86811
86812type InstancesDeleteCall struct {
86813	s          *Service
86814	project    string
86815	zone       string
86816	instance   string
86817	urlParams_ gensupport.URLParams
86818	ctx_       context.Context
86819	header_    http.Header
86820}
86821
86822// Delete: Deletes the specified Instance resource. For more
86823// information, see Stopping or Deleting an Instance.
86824// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
86825func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
86826	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86827	c.project = project
86828	c.zone = zone
86829	c.instance = instance
86830	return c
86831}
86832
86833// RequestId sets the optional parameter "requestId": An optional
86834// request ID to identify requests. Specify a unique request ID so that
86835// if you must retry your request, the server will know to ignore the
86836// request if it has already been completed.
86837//
86838// For example, consider a situation where you make an initial request
86839// and the request times out. If you make the request again with the
86840// same request ID, the server can check if original operation with the
86841// same request ID was received, and if so, will ignore the second
86842// request. This prevents clients from accidentally creating duplicate
86843// commitments.
86844//
86845// The request ID must be a valid UUID with the exception that zero UUID
86846// is not supported (00000000-0000-0000-0000-000000000000).
86847func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
86848	c.urlParams_.Set("requestId", requestId)
86849	return c
86850}
86851
86852// Fields allows partial responses to be retrieved. See
86853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86854// for more information.
86855func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
86856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86857	return c
86858}
86859
86860// Context sets the context to be used in this call's Do method. Any
86861// pending HTTP request will be aborted if the provided context is
86862// canceled.
86863func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
86864	c.ctx_ = ctx
86865	return c
86866}
86867
86868// Header returns an http.Header that can be modified by the caller to
86869// add HTTP headers to the request.
86870func (c *InstancesDeleteCall) Header() http.Header {
86871	if c.header_ == nil {
86872		c.header_ = make(http.Header)
86873	}
86874	return c.header_
86875}
86876
86877func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
86878	reqHeaders := make(http.Header)
86879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
86880	for k, v := range c.header_ {
86881		reqHeaders[k] = v
86882	}
86883	reqHeaders.Set("User-Agent", c.s.userAgent())
86884	var body io.Reader = nil
86885	c.urlParams_.Set("alt", alt)
86886	c.urlParams_.Set("prettyPrint", "false")
86887	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
86888	urls += "?" + c.urlParams_.Encode()
86889	req, err := http.NewRequest("DELETE", urls, body)
86890	if err != nil {
86891		return nil, err
86892	}
86893	req.Header = reqHeaders
86894	googleapi.Expand(req.URL, map[string]string{
86895		"project":  c.project,
86896		"zone":     c.zone,
86897		"instance": c.instance,
86898	})
86899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86900}
86901
86902// Do executes the "compute.instances.delete" call.
86903// Exactly one of *Operation or error will be non-nil. Any non-2xx
86904// status code is an error. Response headers are in either
86905// *Operation.ServerResponse.Header or (if a response was returned at
86906// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86907// to check whether the returned error was because
86908// http.StatusNotModified was returned.
86909func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86910	gensupport.SetOptions(c.urlParams_, opts...)
86911	res, err := c.doRequest("json")
86912	if res != nil && res.StatusCode == http.StatusNotModified {
86913		if res.Body != nil {
86914			res.Body.Close()
86915		}
86916		return nil, &googleapi.Error{
86917			Code:   res.StatusCode,
86918			Header: res.Header,
86919		}
86920	}
86921	if err != nil {
86922		return nil, err
86923	}
86924	defer googleapi.CloseBody(res)
86925	if err := googleapi.CheckResponse(res); err != nil {
86926		return nil, err
86927	}
86928	ret := &Operation{
86929		ServerResponse: googleapi.ServerResponse{
86930			Header:         res.Header,
86931			HTTPStatusCode: res.StatusCode,
86932		},
86933	}
86934	target := &ret
86935	if err := gensupport.DecodeResponse(target, res); err != nil {
86936		return nil, err
86937	}
86938	return ret, nil
86939	// {
86940	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
86941	//   "httpMethod": "DELETE",
86942	//   "id": "compute.instances.delete",
86943	//   "parameterOrder": [
86944	//     "project",
86945	//     "zone",
86946	//     "instance"
86947	//   ],
86948	//   "parameters": {
86949	//     "instance": {
86950	//       "description": "Name of the instance resource to delete.",
86951	//       "location": "path",
86952	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86953	//       "required": true,
86954	//       "type": "string"
86955	//     },
86956	//     "project": {
86957	//       "description": "Project ID for this request.",
86958	//       "location": "path",
86959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86960	//       "required": true,
86961	//       "type": "string"
86962	//     },
86963	//     "requestId": {
86964	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86965	//       "location": "query",
86966	//       "type": "string"
86967	//     },
86968	//     "zone": {
86969	//       "description": "The name of the zone for this request.",
86970	//       "location": "path",
86971	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86972	//       "required": true,
86973	//       "type": "string"
86974	//     }
86975	//   },
86976	//   "path": "{project}/zones/{zone}/instances/{instance}",
86977	//   "response": {
86978	//     "$ref": "Operation"
86979	//   },
86980	//   "scopes": [
86981	//     "https://www.googleapis.com/auth/cloud-platform",
86982	//     "https://www.googleapis.com/auth/compute"
86983	//   ]
86984	// }
86985
86986}
86987
86988// method id "compute.instances.deleteAccessConfig":
86989
86990type InstancesDeleteAccessConfigCall struct {
86991	s          *Service
86992	project    string
86993	zone       string
86994	instance   string
86995	urlParams_ gensupport.URLParams
86996	ctx_       context.Context
86997	header_    http.Header
86998}
86999
87000// DeleteAccessConfig: Deletes an access config from an instance's
87001// network interface.
87002// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
87003func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
87004	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87005	c.project = project
87006	c.zone = zone
87007	c.instance = instance
87008	c.urlParams_.Set("accessConfig", accessConfig)
87009	c.urlParams_.Set("networkInterface", networkInterface)
87010	return c
87011}
87012
87013// RequestId sets the optional parameter "requestId": An optional
87014// request ID to identify requests. Specify a unique request ID so that
87015// if you must retry your request, the server will know to ignore the
87016// request if it has already been completed.
87017//
87018// For example, consider a situation where you make an initial request
87019// and the request times out. If you make the request again with the
87020// same request ID, the server can check if original operation with the
87021// same request ID was received, and if so, will ignore the second
87022// request. This prevents clients from accidentally creating duplicate
87023// commitments.
87024//
87025// The request ID must be a valid UUID with the exception that zero UUID
87026// is not supported (00000000-0000-0000-0000-000000000000).
87027func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
87028	c.urlParams_.Set("requestId", requestId)
87029	return c
87030}
87031
87032// Fields allows partial responses to be retrieved. See
87033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87034// for more information.
87035func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
87036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87037	return c
87038}
87039
87040// Context sets the context to be used in this call's Do method. Any
87041// pending HTTP request will be aborted if the provided context is
87042// canceled.
87043func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
87044	c.ctx_ = ctx
87045	return c
87046}
87047
87048// Header returns an http.Header that can be modified by the caller to
87049// add HTTP headers to the request.
87050func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
87051	if c.header_ == nil {
87052		c.header_ = make(http.Header)
87053	}
87054	return c.header_
87055}
87056
87057func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
87058	reqHeaders := make(http.Header)
87059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
87060	for k, v := range c.header_ {
87061		reqHeaders[k] = v
87062	}
87063	reqHeaders.Set("User-Agent", c.s.userAgent())
87064	var body io.Reader = nil
87065	c.urlParams_.Set("alt", alt)
87066	c.urlParams_.Set("prettyPrint", "false")
87067	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
87068	urls += "?" + c.urlParams_.Encode()
87069	req, err := http.NewRequest("POST", urls, body)
87070	if err != nil {
87071		return nil, err
87072	}
87073	req.Header = reqHeaders
87074	googleapi.Expand(req.URL, map[string]string{
87075		"project":  c.project,
87076		"zone":     c.zone,
87077		"instance": c.instance,
87078	})
87079	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87080}
87081
87082// Do executes the "compute.instances.deleteAccessConfig" call.
87083// Exactly one of *Operation or error will be non-nil. Any non-2xx
87084// status code is an error. Response headers are in either
87085// *Operation.ServerResponse.Header or (if a response was returned at
87086// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87087// to check whether the returned error was because
87088// http.StatusNotModified was returned.
87089func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87090	gensupport.SetOptions(c.urlParams_, opts...)
87091	res, err := c.doRequest("json")
87092	if res != nil && res.StatusCode == http.StatusNotModified {
87093		if res.Body != nil {
87094			res.Body.Close()
87095		}
87096		return nil, &googleapi.Error{
87097			Code:   res.StatusCode,
87098			Header: res.Header,
87099		}
87100	}
87101	if err != nil {
87102		return nil, err
87103	}
87104	defer googleapi.CloseBody(res)
87105	if err := googleapi.CheckResponse(res); err != nil {
87106		return nil, err
87107	}
87108	ret := &Operation{
87109		ServerResponse: googleapi.ServerResponse{
87110			Header:         res.Header,
87111			HTTPStatusCode: res.StatusCode,
87112		},
87113	}
87114	target := &ret
87115	if err := gensupport.DecodeResponse(target, res); err != nil {
87116		return nil, err
87117	}
87118	return ret, nil
87119	// {
87120	//   "description": "Deletes an access config from an instance's network interface.",
87121	//   "httpMethod": "POST",
87122	//   "id": "compute.instances.deleteAccessConfig",
87123	//   "parameterOrder": [
87124	//     "project",
87125	//     "zone",
87126	//     "instance",
87127	//     "accessConfig",
87128	//     "networkInterface"
87129	//   ],
87130	//   "parameters": {
87131	//     "accessConfig": {
87132	//       "description": "The name of the access config to delete.",
87133	//       "location": "query",
87134	//       "required": true,
87135	//       "type": "string"
87136	//     },
87137	//     "instance": {
87138	//       "description": "The instance name for this request.",
87139	//       "location": "path",
87140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87141	//       "required": true,
87142	//       "type": "string"
87143	//     },
87144	//     "networkInterface": {
87145	//       "description": "The name of the network interface.",
87146	//       "location": "query",
87147	//       "required": true,
87148	//       "type": "string"
87149	//     },
87150	//     "project": {
87151	//       "description": "Project ID for this request.",
87152	//       "location": "path",
87153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87154	//       "required": true,
87155	//       "type": "string"
87156	//     },
87157	//     "requestId": {
87158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87159	//       "location": "query",
87160	//       "type": "string"
87161	//     },
87162	//     "zone": {
87163	//       "description": "The name of the zone for this request.",
87164	//       "location": "path",
87165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87166	//       "required": true,
87167	//       "type": "string"
87168	//     }
87169	//   },
87170	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
87171	//   "response": {
87172	//     "$ref": "Operation"
87173	//   },
87174	//   "scopes": [
87175	//     "https://www.googleapis.com/auth/cloud-platform",
87176	//     "https://www.googleapis.com/auth/compute"
87177	//   ]
87178	// }
87179
87180}
87181
87182// method id "compute.instances.detachDisk":
87183
87184type InstancesDetachDiskCall struct {
87185	s          *Service
87186	project    string
87187	zone       string
87188	instance   string
87189	urlParams_ gensupport.URLParams
87190	ctx_       context.Context
87191	header_    http.Header
87192}
87193
87194// DetachDisk: Detaches a disk from an instance.
87195// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
87196func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
87197	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87198	c.project = project
87199	c.zone = zone
87200	c.instance = instance
87201	c.urlParams_.Set("deviceName", deviceName)
87202	return c
87203}
87204
87205// RequestId sets the optional parameter "requestId": An optional
87206// request ID to identify requests. Specify a unique request ID so that
87207// if you must retry your request, the server will know to ignore the
87208// request if it has already been completed.
87209//
87210// For example, consider a situation where you make an initial request
87211// and the request times out. If you make the request again with the
87212// same request ID, the server can check if original operation with the
87213// same request ID was received, and if so, will ignore the second
87214// request. This prevents clients from accidentally creating duplicate
87215// commitments.
87216//
87217// The request ID must be a valid UUID with the exception that zero UUID
87218// is not supported (00000000-0000-0000-0000-000000000000).
87219func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
87220	c.urlParams_.Set("requestId", requestId)
87221	return c
87222}
87223
87224// Fields allows partial responses to be retrieved. See
87225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87226// for more information.
87227func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
87228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87229	return c
87230}
87231
87232// Context sets the context to be used in this call's Do method. Any
87233// pending HTTP request will be aborted if the provided context is
87234// canceled.
87235func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
87236	c.ctx_ = ctx
87237	return c
87238}
87239
87240// Header returns an http.Header that can be modified by the caller to
87241// add HTTP headers to the request.
87242func (c *InstancesDetachDiskCall) Header() http.Header {
87243	if c.header_ == nil {
87244		c.header_ = make(http.Header)
87245	}
87246	return c.header_
87247}
87248
87249func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
87250	reqHeaders := make(http.Header)
87251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
87252	for k, v := range c.header_ {
87253		reqHeaders[k] = v
87254	}
87255	reqHeaders.Set("User-Agent", c.s.userAgent())
87256	var body io.Reader = nil
87257	c.urlParams_.Set("alt", alt)
87258	c.urlParams_.Set("prettyPrint", "false")
87259	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
87260	urls += "?" + c.urlParams_.Encode()
87261	req, err := http.NewRequest("POST", urls, body)
87262	if err != nil {
87263		return nil, err
87264	}
87265	req.Header = reqHeaders
87266	googleapi.Expand(req.URL, map[string]string{
87267		"project":  c.project,
87268		"zone":     c.zone,
87269		"instance": c.instance,
87270	})
87271	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87272}
87273
87274// Do executes the "compute.instances.detachDisk" call.
87275// Exactly one of *Operation or error will be non-nil. Any non-2xx
87276// status code is an error. Response headers are in either
87277// *Operation.ServerResponse.Header or (if a response was returned at
87278// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87279// to check whether the returned error was because
87280// http.StatusNotModified was returned.
87281func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87282	gensupport.SetOptions(c.urlParams_, opts...)
87283	res, err := c.doRequest("json")
87284	if res != nil && res.StatusCode == http.StatusNotModified {
87285		if res.Body != nil {
87286			res.Body.Close()
87287		}
87288		return nil, &googleapi.Error{
87289			Code:   res.StatusCode,
87290			Header: res.Header,
87291		}
87292	}
87293	if err != nil {
87294		return nil, err
87295	}
87296	defer googleapi.CloseBody(res)
87297	if err := googleapi.CheckResponse(res); err != nil {
87298		return nil, err
87299	}
87300	ret := &Operation{
87301		ServerResponse: googleapi.ServerResponse{
87302			Header:         res.Header,
87303			HTTPStatusCode: res.StatusCode,
87304		},
87305	}
87306	target := &ret
87307	if err := gensupport.DecodeResponse(target, res); err != nil {
87308		return nil, err
87309	}
87310	return ret, nil
87311	// {
87312	//   "description": "Detaches a disk from an instance.",
87313	//   "httpMethod": "POST",
87314	//   "id": "compute.instances.detachDisk",
87315	//   "parameterOrder": [
87316	//     "project",
87317	//     "zone",
87318	//     "instance",
87319	//     "deviceName"
87320	//   ],
87321	//   "parameters": {
87322	//     "deviceName": {
87323	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
87324	//       "location": "query",
87325	//       "required": true,
87326	//       "type": "string"
87327	//     },
87328	//     "instance": {
87329	//       "description": "Instance name for this request.",
87330	//       "location": "path",
87331	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87332	//       "required": true,
87333	//       "type": "string"
87334	//     },
87335	//     "project": {
87336	//       "description": "Project ID for this request.",
87337	//       "location": "path",
87338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87339	//       "required": true,
87340	//       "type": "string"
87341	//     },
87342	//     "requestId": {
87343	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87344	//       "location": "query",
87345	//       "type": "string"
87346	//     },
87347	//     "zone": {
87348	//       "description": "The name of the zone for this request.",
87349	//       "location": "path",
87350	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87351	//       "required": true,
87352	//       "type": "string"
87353	//     }
87354	//   },
87355	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
87356	//   "response": {
87357	//     "$ref": "Operation"
87358	//   },
87359	//   "scopes": [
87360	//     "https://www.googleapis.com/auth/cloud-platform",
87361	//     "https://www.googleapis.com/auth/compute"
87362	//   ]
87363	// }
87364
87365}
87366
87367// method id "compute.instances.get":
87368
87369type InstancesGetCall struct {
87370	s            *Service
87371	project      string
87372	zone         string
87373	instance     string
87374	urlParams_   gensupport.URLParams
87375	ifNoneMatch_ string
87376	ctx_         context.Context
87377	header_      http.Header
87378}
87379
87380// Get: Returns the specified Instance resource. Gets a list of
87381// available instances by making a list() request.
87382// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
87383func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
87384	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87385	c.project = project
87386	c.zone = zone
87387	c.instance = instance
87388	return c
87389}
87390
87391// Fields allows partial responses to be retrieved. See
87392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87393// for more information.
87394func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
87395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87396	return c
87397}
87398
87399// IfNoneMatch sets the optional parameter which makes the operation
87400// fail if the object's ETag matches the given value. This is useful for
87401// getting updates only after the object has changed since the last
87402// request. Use googleapi.IsNotModified to check whether the response
87403// error from Do is the result of In-None-Match.
87404func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
87405	c.ifNoneMatch_ = entityTag
87406	return c
87407}
87408
87409// Context sets the context to be used in this call's Do method. Any
87410// pending HTTP request will be aborted if the provided context is
87411// canceled.
87412func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
87413	c.ctx_ = ctx
87414	return c
87415}
87416
87417// Header returns an http.Header that can be modified by the caller to
87418// add HTTP headers to the request.
87419func (c *InstancesGetCall) Header() http.Header {
87420	if c.header_ == nil {
87421		c.header_ = make(http.Header)
87422	}
87423	return c.header_
87424}
87425
87426func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
87427	reqHeaders := make(http.Header)
87428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
87429	for k, v := range c.header_ {
87430		reqHeaders[k] = v
87431	}
87432	reqHeaders.Set("User-Agent", c.s.userAgent())
87433	if c.ifNoneMatch_ != "" {
87434		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87435	}
87436	var body io.Reader = nil
87437	c.urlParams_.Set("alt", alt)
87438	c.urlParams_.Set("prettyPrint", "false")
87439	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
87440	urls += "?" + c.urlParams_.Encode()
87441	req, err := http.NewRequest("GET", urls, body)
87442	if err != nil {
87443		return nil, err
87444	}
87445	req.Header = reqHeaders
87446	googleapi.Expand(req.URL, map[string]string{
87447		"project":  c.project,
87448		"zone":     c.zone,
87449		"instance": c.instance,
87450	})
87451	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87452}
87453
87454// Do executes the "compute.instances.get" call.
87455// Exactly one of *Instance or error will be non-nil. Any non-2xx status
87456// code is an error. Response headers are in either
87457// *Instance.ServerResponse.Header or (if a response was returned at
87458// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87459// to check whether the returned error was because
87460// http.StatusNotModified was returned.
87461func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
87462	gensupport.SetOptions(c.urlParams_, opts...)
87463	res, err := c.doRequest("json")
87464	if res != nil && res.StatusCode == http.StatusNotModified {
87465		if res.Body != nil {
87466			res.Body.Close()
87467		}
87468		return nil, &googleapi.Error{
87469			Code:   res.StatusCode,
87470			Header: res.Header,
87471		}
87472	}
87473	if err != nil {
87474		return nil, err
87475	}
87476	defer googleapi.CloseBody(res)
87477	if err := googleapi.CheckResponse(res); err != nil {
87478		return nil, err
87479	}
87480	ret := &Instance{
87481		ServerResponse: googleapi.ServerResponse{
87482			Header:         res.Header,
87483			HTTPStatusCode: res.StatusCode,
87484		},
87485	}
87486	target := &ret
87487	if err := gensupport.DecodeResponse(target, res); err != nil {
87488		return nil, err
87489	}
87490	return ret, nil
87491	// {
87492	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
87493	//   "httpMethod": "GET",
87494	//   "id": "compute.instances.get",
87495	//   "parameterOrder": [
87496	//     "project",
87497	//     "zone",
87498	//     "instance"
87499	//   ],
87500	//   "parameters": {
87501	//     "instance": {
87502	//       "description": "Name of the instance resource to return.",
87503	//       "location": "path",
87504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87505	//       "required": true,
87506	//       "type": "string"
87507	//     },
87508	//     "project": {
87509	//       "description": "Project ID for this request.",
87510	//       "location": "path",
87511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87512	//       "required": true,
87513	//       "type": "string"
87514	//     },
87515	//     "zone": {
87516	//       "description": "The name of the zone for this request.",
87517	//       "location": "path",
87518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87519	//       "required": true,
87520	//       "type": "string"
87521	//     }
87522	//   },
87523	//   "path": "{project}/zones/{zone}/instances/{instance}",
87524	//   "response": {
87525	//     "$ref": "Instance"
87526	//   },
87527	//   "scopes": [
87528	//     "https://www.googleapis.com/auth/cloud-platform",
87529	//     "https://www.googleapis.com/auth/compute",
87530	//     "https://www.googleapis.com/auth/compute.readonly"
87531	//   ]
87532	// }
87533
87534}
87535
87536// method id "compute.instances.getEffectiveFirewalls":
87537
87538type InstancesGetEffectiveFirewallsCall struct {
87539	s            *Service
87540	project      string
87541	zone         string
87542	instance     string
87543	urlParams_   gensupport.URLParams
87544	ifNoneMatch_ string
87545	ctx_         context.Context
87546	header_      http.Header
87547}
87548
87549// GetEffectiveFirewalls: Returns effective firewalls applied to an
87550// interface of the instance.
87551func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
87552	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87553	c.project = project
87554	c.zone = zone
87555	c.instance = instance
87556	c.urlParams_.Set("networkInterface", networkInterface)
87557	return c
87558}
87559
87560// Fields allows partial responses to be retrieved. See
87561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87562// for more information.
87563func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
87564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87565	return c
87566}
87567
87568// IfNoneMatch sets the optional parameter which makes the operation
87569// fail if the object's ETag matches the given value. This is useful for
87570// getting updates only after the object has changed since the last
87571// request. Use googleapi.IsNotModified to check whether the response
87572// error from Do is the result of In-None-Match.
87573func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
87574	c.ifNoneMatch_ = entityTag
87575	return c
87576}
87577
87578// Context sets the context to be used in this call's Do method. Any
87579// pending HTTP request will be aborted if the provided context is
87580// canceled.
87581func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
87582	c.ctx_ = ctx
87583	return c
87584}
87585
87586// Header returns an http.Header that can be modified by the caller to
87587// add HTTP headers to the request.
87588func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
87589	if c.header_ == nil {
87590		c.header_ = make(http.Header)
87591	}
87592	return c.header_
87593}
87594
87595func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
87596	reqHeaders := make(http.Header)
87597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
87598	for k, v := range c.header_ {
87599		reqHeaders[k] = v
87600	}
87601	reqHeaders.Set("User-Agent", c.s.userAgent())
87602	if c.ifNoneMatch_ != "" {
87603		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87604	}
87605	var body io.Reader = nil
87606	c.urlParams_.Set("alt", alt)
87607	c.urlParams_.Set("prettyPrint", "false")
87608	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
87609	urls += "?" + c.urlParams_.Encode()
87610	req, err := http.NewRequest("GET", urls, body)
87611	if err != nil {
87612		return nil, err
87613	}
87614	req.Header = reqHeaders
87615	googleapi.Expand(req.URL, map[string]string{
87616		"project":  c.project,
87617		"zone":     c.zone,
87618		"instance": c.instance,
87619	})
87620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87621}
87622
87623// Do executes the "compute.instances.getEffectiveFirewalls" call.
87624// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
87625// be non-nil. Any non-2xx status code is an error. Response headers are
87626// in either
87627// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
87628// a response was returned at all) in error.(*googleapi.Error).Header.
87629// Use googleapi.IsNotModified to check whether the returned error was
87630// because http.StatusNotModified was returned.
87631func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
87632	gensupport.SetOptions(c.urlParams_, opts...)
87633	res, err := c.doRequest("json")
87634	if res != nil && res.StatusCode == http.StatusNotModified {
87635		if res.Body != nil {
87636			res.Body.Close()
87637		}
87638		return nil, &googleapi.Error{
87639			Code:   res.StatusCode,
87640			Header: res.Header,
87641		}
87642	}
87643	if err != nil {
87644		return nil, err
87645	}
87646	defer googleapi.CloseBody(res)
87647	if err := googleapi.CheckResponse(res); err != nil {
87648		return nil, err
87649	}
87650	ret := &InstancesGetEffectiveFirewallsResponse{
87651		ServerResponse: googleapi.ServerResponse{
87652			Header:         res.Header,
87653			HTTPStatusCode: res.StatusCode,
87654		},
87655	}
87656	target := &ret
87657	if err := gensupport.DecodeResponse(target, res); err != nil {
87658		return nil, err
87659	}
87660	return ret, nil
87661	// {
87662	//   "description": "Returns effective firewalls applied to an interface of the instance.",
87663	//   "httpMethod": "GET",
87664	//   "id": "compute.instances.getEffectiveFirewalls",
87665	//   "parameterOrder": [
87666	//     "project",
87667	//     "zone",
87668	//     "instance",
87669	//     "networkInterface"
87670	//   ],
87671	//   "parameters": {
87672	//     "instance": {
87673	//       "description": "Name of the instance scoping this request.",
87674	//       "location": "path",
87675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87676	//       "required": true,
87677	//       "type": "string"
87678	//     },
87679	//     "networkInterface": {
87680	//       "description": "The name of the network interface to get the effective firewalls.",
87681	//       "location": "query",
87682	//       "required": true,
87683	//       "type": "string"
87684	//     },
87685	//     "project": {
87686	//       "description": "Project ID for this request.",
87687	//       "location": "path",
87688	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87689	//       "required": true,
87690	//       "type": "string"
87691	//     },
87692	//     "zone": {
87693	//       "description": "The name of the zone for this request.",
87694	//       "location": "path",
87695	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87696	//       "required": true,
87697	//       "type": "string"
87698	//     }
87699	//   },
87700	//   "path": "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
87701	//   "response": {
87702	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
87703	//   },
87704	//   "scopes": [
87705	//     "https://www.googleapis.com/auth/cloud-platform",
87706	//     "https://www.googleapis.com/auth/compute",
87707	//     "https://www.googleapis.com/auth/compute.readonly"
87708	//   ]
87709	// }
87710
87711}
87712
87713// method id "compute.instances.getGuestAttributes":
87714
87715type InstancesGetGuestAttributesCall struct {
87716	s            *Service
87717	project      string
87718	zone         string
87719	instance     string
87720	urlParams_   gensupport.URLParams
87721	ifNoneMatch_ string
87722	ctx_         context.Context
87723	header_      http.Header
87724}
87725
87726// GetGuestAttributes: Returns the specified guest attributes entry.
87727func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
87728	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87729	c.project = project
87730	c.zone = zone
87731	c.instance = instance
87732	return c
87733}
87734
87735// QueryPath sets the optional parameter "queryPath": Specifies the
87736// guest attributes path to be queried.
87737func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
87738	c.urlParams_.Set("queryPath", queryPath)
87739	return c
87740}
87741
87742// VariableKey sets the optional parameter "variableKey": Specifies the
87743// key for the guest attributes entry.
87744func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
87745	c.urlParams_.Set("variableKey", variableKey)
87746	return c
87747}
87748
87749// Fields allows partial responses to be retrieved. See
87750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87751// for more information.
87752func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
87753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87754	return c
87755}
87756
87757// IfNoneMatch sets the optional parameter which makes the operation
87758// fail if the object's ETag matches the given value. This is useful for
87759// getting updates only after the object has changed since the last
87760// request. Use googleapi.IsNotModified to check whether the response
87761// error from Do is the result of In-None-Match.
87762func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
87763	c.ifNoneMatch_ = entityTag
87764	return c
87765}
87766
87767// Context sets the context to be used in this call's Do method. Any
87768// pending HTTP request will be aborted if the provided context is
87769// canceled.
87770func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
87771	c.ctx_ = ctx
87772	return c
87773}
87774
87775// Header returns an http.Header that can be modified by the caller to
87776// add HTTP headers to the request.
87777func (c *InstancesGetGuestAttributesCall) Header() http.Header {
87778	if c.header_ == nil {
87779		c.header_ = make(http.Header)
87780	}
87781	return c.header_
87782}
87783
87784func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
87785	reqHeaders := make(http.Header)
87786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
87787	for k, v := range c.header_ {
87788		reqHeaders[k] = v
87789	}
87790	reqHeaders.Set("User-Agent", c.s.userAgent())
87791	if c.ifNoneMatch_ != "" {
87792		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87793	}
87794	var body io.Reader = nil
87795	c.urlParams_.Set("alt", alt)
87796	c.urlParams_.Set("prettyPrint", "false")
87797	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
87798	urls += "?" + c.urlParams_.Encode()
87799	req, err := http.NewRequest("GET", urls, body)
87800	if err != nil {
87801		return nil, err
87802	}
87803	req.Header = reqHeaders
87804	googleapi.Expand(req.URL, map[string]string{
87805		"project":  c.project,
87806		"zone":     c.zone,
87807		"instance": c.instance,
87808	})
87809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87810}
87811
87812// Do executes the "compute.instances.getGuestAttributes" call.
87813// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
87814// status code is an error. Response headers are in either
87815// *GuestAttributes.ServerResponse.Header or (if a response was returned
87816// at all) in error.(*googleapi.Error).Header. Use
87817// googleapi.IsNotModified to check whether the returned error was
87818// because http.StatusNotModified was returned.
87819func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
87820	gensupport.SetOptions(c.urlParams_, opts...)
87821	res, err := c.doRequest("json")
87822	if res != nil && res.StatusCode == http.StatusNotModified {
87823		if res.Body != nil {
87824			res.Body.Close()
87825		}
87826		return nil, &googleapi.Error{
87827			Code:   res.StatusCode,
87828			Header: res.Header,
87829		}
87830	}
87831	if err != nil {
87832		return nil, err
87833	}
87834	defer googleapi.CloseBody(res)
87835	if err := googleapi.CheckResponse(res); err != nil {
87836		return nil, err
87837	}
87838	ret := &GuestAttributes{
87839		ServerResponse: googleapi.ServerResponse{
87840			Header:         res.Header,
87841			HTTPStatusCode: res.StatusCode,
87842		},
87843	}
87844	target := &ret
87845	if err := gensupport.DecodeResponse(target, res); err != nil {
87846		return nil, err
87847	}
87848	return ret, nil
87849	// {
87850	//   "description": "Returns the specified guest attributes entry.",
87851	//   "httpMethod": "GET",
87852	//   "id": "compute.instances.getGuestAttributes",
87853	//   "parameterOrder": [
87854	//     "project",
87855	//     "zone",
87856	//     "instance"
87857	//   ],
87858	//   "parameters": {
87859	//     "instance": {
87860	//       "description": "Name of the instance scoping this request.",
87861	//       "location": "path",
87862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87863	//       "required": true,
87864	//       "type": "string"
87865	//     },
87866	//     "project": {
87867	//       "description": "Project ID for this request.",
87868	//       "location": "path",
87869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87870	//       "required": true,
87871	//       "type": "string"
87872	//     },
87873	//     "queryPath": {
87874	//       "description": "Specifies the guest attributes path to be queried.",
87875	//       "location": "query",
87876	//       "type": "string"
87877	//     },
87878	//     "variableKey": {
87879	//       "description": "Specifies the key for the guest attributes entry.",
87880	//       "location": "query",
87881	//       "type": "string"
87882	//     },
87883	//     "zone": {
87884	//       "description": "The name of the zone for this request.",
87885	//       "location": "path",
87886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87887	//       "required": true,
87888	//       "type": "string"
87889	//     }
87890	//   },
87891	//   "path": "{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
87892	//   "response": {
87893	//     "$ref": "GuestAttributes"
87894	//   },
87895	//   "scopes": [
87896	//     "https://www.googleapis.com/auth/cloud-platform",
87897	//     "https://www.googleapis.com/auth/compute",
87898	//     "https://www.googleapis.com/auth/compute.readonly"
87899	//   ]
87900	// }
87901
87902}
87903
87904// method id "compute.instances.getIamPolicy":
87905
87906type InstancesGetIamPolicyCall struct {
87907	s            *Service
87908	project      string
87909	zone         string
87910	resource     string
87911	urlParams_   gensupport.URLParams
87912	ifNoneMatch_ string
87913	ctx_         context.Context
87914	header_      http.Header
87915}
87916
87917// GetIamPolicy: Gets the access control policy for a resource. May be
87918// empty if no such policy or resource exists.
87919func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
87920	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87921	c.project = project
87922	c.zone = zone
87923	c.resource = resource
87924	return c
87925}
87926
87927// OptionsRequestedPolicyVersion sets the optional parameter
87928// "optionsRequestedPolicyVersion": Requested IAM Policy version.
87929func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
87930	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
87931	return c
87932}
87933
87934// Fields allows partial responses to be retrieved. See
87935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87936// for more information.
87937func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
87938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87939	return c
87940}
87941
87942// IfNoneMatch sets the optional parameter which makes the operation
87943// fail if the object's ETag matches the given value. This is useful for
87944// getting updates only after the object has changed since the last
87945// request. Use googleapi.IsNotModified to check whether the response
87946// error from Do is the result of In-None-Match.
87947func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
87948	c.ifNoneMatch_ = entityTag
87949	return c
87950}
87951
87952// Context sets the context to be used in this call's Do method. Any
87953// pending HTTP request will be aborted if the provided context is
87954// canceled.
87955func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
87956	c.ctx_ = ctx
87957	return c
87958}
87959
87960// Header returns an http.Header that can be modified by the caller to
87961// add HTTP headers to the request.
87962func (c *InstancesGetIamPolicyCall) Header() http.Header {
87963	if c.header_ == nil {
87964		c.header_ = make(http.Header)
87965	}
87966	return c.header_
87967}
87968
87969func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
87970	reqHeaders := make(http.Header)
87971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
87972	for k, v := range c.header_ {
87973		reqHeaders[k] = v
87974	}
87975	reqHeaders.Set("User-Agent", c.s.userAgent())
87976	if c.ifNoneMatch_ != "" {
87977		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87978	}
87979	var body io.Reader = nil
87980	c.urlParams_.Set("alt", alt)
87981	c.urlParams_.Set("prettyPrint", "false")
87982	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/getIamPolicy")
87983	urls += "?" + c.urlParams_.Encode()
87984	req, err := http.NewRequest("GET", urls, body)
87985	if err != nil {
87986		return nil, err
87987	}
87988	req.Header = reqHeaders
87989	googleapi.Expand(req.URL, map[string]string{
87990		"project":  c.project,
87991		"zone":     c.zone,
87992		"resource": c.resource,
87993	})
87994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87995}
87996
87997// Do executes the "compute.instances.getIamPolicy" call.
87998// Exactly one of *Policy or error will be non-nil. Any non-2xx status
87999// code is an error. Response headers are in either
88000// *Policy.ServerResponse.Header or (if a response was returned at all)
88001// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
88002// check whether the returned error was because http.StatusNotModified
88003// was returned.
88004func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
88005	gensupport.SetOptions(c.urlParams_, opts...)
88006	res, err := c.doRequest("json")
88007	if res != nil && res.StatusCode == http.StatusNotModified {
88008		if res.Body != nil {
88009			res.Body.Close()
88010		}
88011		return nil, &googleapi.Error{
88012			Code:   res.StatusCode,
88013			Header: res.Header,
88014		}
88015	}
88016	if err != nil {
88017		return nil, err
88018	}
88019	defer googleapi.CloseBody(res)
88020	if err := googleapi.CheckResponse(res); err != nil {
88021		return nil, err
88022	}
88023	ret := &Policy{
88024		ServerResponse: googleapi.ServerResponse{
88025			Header:         res.Header,
88026			HTTPStatusCode: res.StatusCode,
88027		},
88028	}
88029	target := &ret
88030	if err := gensupport.DecodeResponse(target, res); err != nil {
88031		return nil, err
88032	}
88033	return ret, nil
88034	// {
88035	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
88036	//   "httpMethod": "GET",
88037	//   "id": "compute.instances.getIamPolicy",
88038	//   "parameterOrder": [
88039	//     "project",
88040	//     "zone",
88041	//     "resource"
88042	//   ],
88043	//   "parameters": {
88044	//     "optionsRequestedPolicyVersion": {
88045	//       "description": "Requested IAM Policy version.",
88046	//       "format": "int32",
88047	//       "location": "query",
88048	//       "type": "integer"
88049	//     },
88050	//     "project": {
88051	//       "description": "Project ID for this request.",
88052	//       "location": "path",
88053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88054	//       "required": true,
88055	//       "type": "string"
88056	//     },
88057	//     "resource": {
88058	//       "description": "Name or id of the resource for this request.",
88059	//       "location": "path",
88060	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88061	//       "required": true,
88062	//       "type": "string"
88063	//     },
88064	//     "zone": {
88065	//       "description": "The name of the zone for this request.",
88066	//       "location": "path",
88067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88068	//       "required": true,
88069	//       "type": "string"
88070	//     }
88071	//   },
88072	//   "path": "{project}/zones/{zone}/instances/{resource}/getIamPolicy",
88073	//   "response": {
88074	//     "$ref": "Policy"
88075	//   },
88076	//   "scopes": [
88077	//     "https://www.googleapis.com/auth/cloud-platform",
88078	//     "https://www.googleapis.com/auth/compute",
88079	//     "https://www.googleapis.com/auth/compute.readonly"
88080	//   ]
88081	// }
88082
88083}
88084
88085// method id "compute.instances.getScreenshot":
88086
88087type InstancesGetScreenshotCall struct {
88088	s            *Service
88089	project      string
88090	zone         string
88091	instance     string
88092	urlParams_   gensupport.URLParams
88093	ifNoneMatch_ string
88094	ctx_         context.Context
88095	header_      http.Header
88096}
88097
88098// GetScreenshot: Returns the screenshot from the specified instance.
88099func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
88100	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88101	c.project = project
88102	c.zone = zone
88103	c.instance = instance
88104	return c
88105}
88106
88107// Fields allows partial responses to be retrieved. See
88108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88109// for more information.
88110func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
88111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88112	return c
88113}
88114
88115// IfNoneMatch sets the optional parameter which makes the operation
88116// fail if the object's ETag matches the given value. This is useful for
88117// getting updates only after the object has changed since the last
88118// request. Use googleapi.IsNotModified to check whether the response
88119// error from Do is the result of In-None-Match.
88120func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
88121	c.ifNoneMatch_ = entityTag
88122	return c
88123}
88124
88125// Context sets the context to be used in this call's Do method. Any
88126// pending HTTP request will be aborted if the provided context is
88127// canceled.
88128func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
88129	c.ctx_ = ctx
88130	return c
88131}
88132
88133// Header returns an http.Header that can be modified by the caller to
88134// add HTTP headers to the request.
88135func (c *InstancesGetScreenshotCall) Header() http.Header {
88136	if c.header_ == nil {
88137		c.header_ = make(http.Header)
88138	}
88139	return c.header_
88140}
88141
88142func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
88143	reqHeaders := make(http.Header)
88144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
88145	for k, v := range c.header_ {
88146		reqHeaders[k] = v
88147	}
88148	reqHeaders.Set("User-Agent", c.s.userAgent())
88149	if c.ifNoneMatch_ != "" {
88150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88151	}
88152	var body io.Reader = nil
88153	c.urlParams_.Set("alt", alt)
88154	c.urlParams_.Set("prettyPrint", "false")
88155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/screenshot")
88156	urls += "?" + c.urlParams_.Encode()
88157	req, err := http.NewRequest("GET", urls, body)
88158	if err != nil {
88159		return nil, err
88160	}
88161	req.Header = reqHeaders
88162	googleapi.Expand(req.URL, map[string]string{
88163		"project":  c.project,
88164		"zone":     c.zone,
88165		"instance": c.instance,
88166	})
88167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88168}
88169
88170// Do executes the "compute.instances.getScreenshot" call.
88171// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
88172// status code is an error. Response headers are in either
88173// *Screenshot.ServerResponse.Header or (if a response was returned at
88174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88175// to check whether the returned error was because
88176// http.StatusNotModified was returned.
88177func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
88178	gensupport.SetOptions(c.urlParams_, opts...)
88179	res, err := c.doRequest("json")
88180	if res != nil && res.StatusCode == http.StatusNotModified {
88181		if res.Body != nil {
88182			res.Body.Close()
88183		}
88184		return nil, &googleapi.Error{
88185			Code:   res.StatusCode,
88186			Header: res.Header,
88187		}
88188	}
88189	if err != nil {
88190		return nil, err
88191	}
88192	defer googleapi.CloseBody(res)
88193	if err := googleapi.CheckResponse(res); err != nil {
88194		return nil, err
88195	}
88196	ret := &Screenshot{
88197		ServerResponse: googleapi.ServerResponse{
88198			Header:         res.Header,
88199			HTTPStatusCode: res.StatusCode,
88200		},
88201	}
88202	target := &ret
88203	if err := gensupport.DecodeResponse(target, res); err != nil {
88204		return nil, err
88205	}
88206	return ret, nil
88207	// {
88208	//   "description": "Returns the screenshot from the specified instance.",
88209	//   "httpMethod": "GET",
88210	//   "id": "compute.instances.getScreenshot",
88211	//   "parameterOrder": [
88212	//     "project",
88213	//     "zone",
88214	//     "instance"
88215	//   ],
88216	//   "parameters": {
88217	//     "instance": {
88218	//       "description": "Name of the instance scoping this request.",
88219	//       "location": "path",
88220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88221	//       "required": true,
88222	//       "type": "string"
88223	//     },
88224	//     "project": {
88225	//       "description": "Project ID for this request.",
88226	//       "location": "path",
88227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88228	//       "required": true,
88229	//       "type": "string"
88230	//     },
88231	//     "zone": {
88232	//       "description": "The name of the zone for this request.",
88233	//       "location": "path",
88234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88235	//       "required": true,
88236	//       "type": "string"
88237	//     }
88238	//   },
88239	//   "path": "{project}/zones/{zone}/instances/{instance}/screenshot",
88240	//   "response": {
88241	//     "$ref": "Screenshot"
88242	//   },
88243	//   "scopes": [
88244	//     "https://www.googleapis.com/auth/cloud-platform",
88245	//     "https://www.googleapis.com/auth/compute",
88246	//     "https://www.googleapis.com/auth/compute.readonly"
88247	//   ]
88248	// }
88249
88250}
88251
88252// method id "compute.instances.getSerialPortOutput":
88253
88254type InstancesGetSerialPortOutputCall struct {
88255	s            *Service
88256	project      string
88257	zone         string
88258	instance     string
88259	urlParams_   gensupport.URLParams
88260	ifNoneMatch_ string
88261	ctx_         context.Context
88262	header_      http.Header
88263}
88264
88265// GetSerialPortOutput: Returns the last 1 MB of serial port output from
88266// the specified instance.
88267// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
88268func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
88269	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88270	c.project = project
88271	c.zone = zone
88272	c.instance = instance
88273	return c
88274}
88275
88276// Port sets the optional parameter "port": Specifies which COM or
88277// serial port to retrieve data from.
88278func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
88279	c.urlParams_.Set("port", fmt.Sprint(port))
88280	return c
88281}
88282
88283// Start sets the optional parameter "start": Returns output starting
88284// from a specific byte position. Use this to page through output when
88285// the output is too large to return in a single request. For the
88286// initial request, leave this field unspecified. For subsequent calls,
88287// this field should be set to the next value returned in the previous
88288// call.
88289func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
88290	c.urlParams_.Set("start", fmt.Sprint(start))
88291	return c
88292}
88293
88294// Fields allows partial responses to be retrieved. See
88295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88296// for more information.
88297func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
88298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88299	return c
88300}
88301
88302// IfNoneMatch sets the optional parameter which makes the operation
88303// fail if the object's ETag matches the given value. This is useful for
88304// getting updates only after the object has changed since the last
88305// request. Use googleapi.IsNotModified to check whether the response
88306// error from Do is the result of In-None-Match.
88307func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
88308	c.ifNoneMatch_ = entityTag
88309	return c
88310}
88311
88312// Context sets the context to be used in this call's Do method. Any
88313// pending HTTP request will be aborted if the provided context is
88314// canceled.
88315func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
88316	c.ctx_ = ctx
88317	return c
88318}
88319
88320// Header returns an http.Header that can be modified by the caller to
88321// add HTTP headers to the request.
88322func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
88323	if c.header_ == nil {
88324		c.header_ = make(http.Header)
88325	}
88326	return c.header_
88327}
88328
88329func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
88330	reqHeaders := make(http.Header)
88331	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
88332	for k, v := range c.header_ {
88333		reqHeaders[k] = v
88334	}
88335	reqHeaders.Set("User-Agent", c.s.userAgent())
88336	if c.ifNoneMatch_ != "" {
88337		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88338	}
88339	var body io.Reader = nil
88340	c.urlParams_.Set("alt", alt)
88341	c.urlParams_.Set("prettyPrint", "false")
88342	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
88343	urls += "?" + c.urlParams_.Encode()
88344	req, err := http.NewRequest("GET", urls, body)
88345	if err != nil {
88346		return nil, err
88347	}
88348	req.Header = reqHeaders
88349	googleapi.Expand(req.URL, map[string]string{
88350		"project":  c.project,
88351		"zone":     c.zone,
88352		"instance": c.instance,
88353	})
88354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88355}
88356
88357// Do executes the "compute.instances.getSerialPortOutput" call.
88358// Exactly one of *SerialPortOutput or error will be non-nil. Any
88359// non-2xx status code is an error. Response headers are in either
88360// *SerialPortOutput.ServerResponse.Header or (if a response was
88361// returned at all) in error.(*googleapi.Error).Header. Use
88362// googleapi.IsNotModified to check whether the returned error was
88363// because http.StatusNotModified was returned.
88364func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
88365	gensupport.SetOptions(c.urlParams_, opts...)
88366	res, err := c.doRequest("json")
88367	if res != nil && res.StatusCode == http.StatusNotModified {
88368		if res.Body != nil {
88369			res.Body.Close()
88370		}
88371		return nil, &googleapi.Error{
88372			Code:   res.StatusCode,
88373			Header: res.Header,
88374		}
88375	}
88376	if err != nil {
88377		return nil, err
88378	}
88379	defer googleapi.CloseBody(res)
88380	if err := googleapi.CheckResponse(res); err != nil {
88381		return nil, err
88382	}
88383	ret := &SerialPortOutput{
88384		ServerResponse: googleapi.ServerResponse{
88385			Header:         res.Header,
88386			HTTPStatusCode: res.StatusCode,
88387		},
88388	}
88389	target := &ret
88390	if err := gensupport.DecodeResponse(target, res); err != nil {
88391		return nil, err
88392	}
88393	return ret, nil
88394	// {
88395	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
88396	//   "httpMethod": "GET",
88397	//   "id": "compute.instances.getSerialPortOutput",
88398	//   "parameterOrder": [
88399	//     "project",
88400	//     "zone",
88401	//     "instance"
88402	//   ],
88403	//   "parameters": {
88404	//     "instance": {
88405	//       "description": "Name of the instance scoping this request.",
88406	//       "location": "path",
88407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88408	//       "required": true,
88409	//       "type": "string"
88410	//     },
88411	//     "port": {
88412	//       "default": "1",
88413	//       "description": "Specifies which COM or serial port to retrieve data from.",
88414	//       "format": "int32",
88415	//       "location": "query",
88416	//       "maximum": "4",
88417	//       "minimum": "1",
88418	//       "type": "integer"
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	//     "start": {
88428	//       "description": "Returns output starting from a specific byte position. Use this to page through output when the output is too large to return in a single request. For the initial request, leave this field unspecified. For subsequent calls, this field should be set to the next value returned in the previous call.",
88429	//       "format": "int64",
88430	//       "location": "query",
88431	//       "type": "string"
88432	//     },
88433	//     "zone": {
88434	//       "description": "The name of the zone for this request.",
88435	//       "location": "path",
88436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88437	//       "required": true,
88438	//       "type": "string"
88439	//     }
88440	//   },
88441	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
88442	//   "response": {
88443	//     "$ref": "SerialPortOutput"
88444	//   },
88445	//   "scopes": [
88446	//     "https://www.googleapis.com/auth/cloud-platform",
88447	//     "https://www.googleapis.com/auth/compute",
88448	//     "https://www.googleapis.com/auth/compute.readonly"
88449	//   ]
88450	// }
88451
88452}
88453
88454// method id "compute.instances.getShieldedInstanceIdentity":
88455
88456type InstancesGetShieldedInstanceIdentityCall struct {
88457	s            *Service
88458	project      string
88459	zone         string
88460	instance     string
88461	urlParams_   gensupport.URLParams
88462	ifNoneMatch_ string
88463	ctx_         context.Context
88464	header_      http.Header
88465}
88466
88467// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
88468// of an instance
88469func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
88470	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88471	c.project = project
88472	c.zone = zone
88473	c.instance = instance
88474	return c
88475}
88476
88477// Fields allows partial responses to be retrieved. See
88478// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88479// for more information.
88480func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
88481	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88482	return c
88483}
88484
88485// IfNoneMatch sets the optional parameter which makes the operation
88486// fail if the object's ETag matches the given value. This is useful for
88487// getting updates only after the object has changed since the last
88488// request. Use googleapi.IsNotModified to check whether the response
88489// error from Do is the result of In-None-Match.
88490func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
88491	c.ifNoneMatch_ = entityTag
88492	return c
88493}
88494
88495// Context sets the context to be used in this call's Do method. Any
88496// pending HTTP request will be aborted if the provided context is
88497// canceled.
88498func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
88499	c.ctx_ = ctx
88500	return c
88501}
88502
88503// Header returns an http.Header that can be modified by the caller to
88504// add HTTP headers to the request.
88505func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
88506	if c.header_ == nil {
88507		c.header_ = make(http.Header)
88508	}
88509	return c.header_
88510}
88511
88512func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
88513	reqHeaders := make(http.Header)
88514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
88515	for k, v := range c.header_ {
88516		reqHeaders[k] = v
88517	}
88518	reqHeaders.Set("User-Agent", c.s.userAgent())
88519	if c.ifNoneMatch_ != "" {
88520		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88521	}
88522	var body io.Reader = nil
88523	c.urlParams_.Set("alt", alt)
88524	c.urlParams_.Set("prettyPrint", "false")
88525	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
88526	urls += "?" + c.urlParams_.Encode()
88527	req, err := http.NewRequest("GET", urls, body)
88528	if err != nil {
88529		return nil, err
88530	}
88531	req.Header = reqHeaders
88532	googleapi.Expand(req.URL, map[string]string{
88533		"project":  c.project,
88534		"zone":     c.zone,
88535		"instance": c.instance,
88536	})
88537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88538}
88539
88540// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
88541// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
88542// Any non-2xx status code is an error. Response headers are in either
88543// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
88544// returned at all) in error.(*googleapi.Error).Header. Use
88545// googleapi.IsNotModified to check whether the returned error was
88546// because http.StatusNotModified was returned.
88547func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
88548	gensupport.SetOptions(c.urlParams_, opts...)
88549	res, err := c.doRequest("json")
88550	if res != nil && res.StatusCode == http.StatusNotModified {
88551		if res.Body != nil {
88552			res.Body.Close()
88553		}
88554		return nil, &googleapi.Error{
88555			Code:   res.StatusCode,
88556			Header: res.Header,
88557		}
88558	}
88559	if err != nil {
88560		return nil, err
88561	}
88562	defer googleapi.CloseBody(res)
88563	if err := googleapi.CheckResponse(res); err != nil {
88564		return nil, err
88565	}
88566	ret := &ShieldedInstanceIdentity{
88567		ServerResponse: googleapi.ServerResponse{
88568			Header:         res.Header,
88569			HTTPStatusCode: res.StatusCode,
88570		},
88571	}
88572	target := &ret
88573	if err := gensupport.DecodeResponse(target, res); err != nil {
88574		return nil, err
88575	}
88576	return ret, nil
88577	// {
88578	//   "description": "Returns the Shielded Instance Identity of an instance",
88579	//   "httpMethod": "GET",
88580	//   "id": "compute.instances.getShieldedInstanceIdentity",
88581	//   "parameterOrder": [
88582	//     "project",
88583	//     "zone",
88584	//     "instance"
88585	//   ],
88586	//   "parameters": {
88587	//     "instance": {
88588	//       "description": "Name or id of the instance scoping this request.",
88589	//       "location": "path",
88590	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88591	//       "required": true,
88592	//       "type": "string"
88593	//     },
88594	//     "project": {
88595	//       "description": "Project ID for this request.",
88596	//       "location": "path",
88597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88598	//       "required": true,
88599	//       "type": "string"
88600	//     },
88601	//     "zone": {
88602	//       "description": "The name of the zone for this request.",
88603	//       "location": "path",
88604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88605	//       "required": true,
88606	//       "type": "string"
88607	//     }
88608	//   },
88609	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
88610	//   "response": {
88611	//     "$ref": "ShieldedInstanceIdentity"
88612	//   },
88613	//   "scopes": [
88614	//     "https://www.googleapis.com/auth/cloud-platform",
88615	//     "https://www.googleapis.com/auth/compute",
88616	//     "https://www.googleapis.com/auth/compute.readonly"
88617	//   ]
88618	// }
88619
88620}
88621
88622// method id "compute.instances.getShieldedVmIdentity":
88623
88624type InstancesGetShieldedVmIdentityCall struct {
88625	s            *Service
88626	project      string
88627	zone         string
88628	instance     string
88629	urlParams_   gensupport.URLParams
88630	ifNoneMatch_ string
88631	ctx_         context.Context
88632	header_      http.Header
88633}
88634
88635// GetShieldedVmIdentity: Returns the Shielded VM Identity of an
88636// instance
88637func (r *InstancesService) GetShieldedVmIdentity(project string, zone string, instance string) *InstancesGetShieldedVmIdentityCall {
88638	c := &InstancesGetShieldedVmIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88639	c.project = project
88640	c.zone = zone
88641	c.instance = instance
88642	return c
88643}
88644
88645// Fields allows partial responses to be retrieved. See
88646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88647// for more information.
88648func (c *InstancesGetShieldedVmIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedVmIdentityCall {
88649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88650	return c
88651}
88652
88653// IfNoneMatch sets the optional parameter which makes the operation
88654// fail if the object's ETag matches the given value. This is useful for
88655// getting updates only after the object has changed since the last
88656// request. Use googleapi.IsNotModified to check whether the response
88657// error from Do is the result of In-None-Match.
88658func (c *InstancesGetShieldedVmIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedVmIdentityCall {
88659	c.ifNoneMatch_ = entityTag
88660	return c
88661}
88662
88663// Context sets the context to be used in this call's Do method. Any
88664// pending HTTP request will be aborted if the provided context is
88665// canceled.
88666func (c *InstancesGetShieldedVmIdentityCall) Context(ctx context.Context) *InstancesGetShieldedVmIdentityCall {
88667	c.ctx_ = ctx
88668	return c
88669}
88670
88671// Header returns an http.Header that can be modified by the caller to
88672// add HTTP headers to the request.
88673func (c *InstancesGetShieldedVmIdentityCall) Header() http.Header {
88674	if c.header_ == nil {
88675		c.header_ = make(http.Header)
88676	}
88677	return c.header_
88678}
88679
88680func (c *InstancesGetShieldedVmIdentityCall) doRequest(alt string) (*http.Response, error) {
88681	reqHeaders := make(http.Header)
88682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
88683	for k, v := range c.header_ {
88684		reqHeaders[k] = v
88685	}
88686	reqHeaders.Set("User-Agent", c.s.userAgent())
88687	if c.ifNoneMatch_ != "" {
88688		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88689	}
88690	var body io.Reader = nil
88691	c.urlParams_.Set("alt", alt)
88692	c.urlParams_.Set("prettyPrint", "false")
88693	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity")
88694	urls += "?" + c.urlParams_.Encode()
88695	req, err := http.NewRequest("GET", urls, body)
88696	if err != nil {
88697		return nil, err
88698	}
88699	req.Header = reqHeaders
88700	googleapi.Expand(req.URL, map[string]string{
88701		"project":  c.project,
88702		"zone":     c.zone,
88703		"instance": c.instance,
88704	})
88705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88706}
88707
88708// Do executes the "compute.instances.getShieldedVmIdentity" call.
88709// Exactly one of *ShieldedVmIdentity or error will be non-nil. Any
88710// non-2xx status code is an error. Response headers are in either
88711// *ShieldedVmIdentity.ServerResponse.Header or (if a response was
88712// returned at all) in error.(*googleapi.Error).Header. Use
88713// googleapi.IsNotModified to check whether the returned error was
88714// because http.StatusNotModified was returned.
88715func (c *InstancesGetShieldedVmIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedVmIdentity, error) {
88716	gensupport.SetOptions(c.urlParams_, opts...)
88717	res, err := c.doRequest("json")
88718	if res != nil && res.StatusCode == http.StatusNotModified {
88719		if res.Body != nil {
88720			res.Body.Close()
88721		}
88722		return nil, &googleapi.Error{
88723			Code:   res.StatusCode,
88724			Header: res.Header,
88725		}
88726	}
88727	if err != nil {
88728		return nil, err
88729	}
88730	defer googleapi.CloseBody(res)
88731	if err := googleapi.CheckResponse(res); err != nil {
88732		return nil, err
88733	}
88734	ret := &ShieldedVmIdentity{
88735		ServerResponse: googleapi.ServerResponse{
88736			Header:         res.Header,
88737			HTTPStatusCode: res.StatusCode,
88738		},
88739	}
88740	target := &ret
88741	if err := gensupport.DecodeResponse(target, res); err != nil {
88742		return nil, err
88743	}
88744	return ret, nil
88745	// {
88746	//   "description": "Returns the Shielded VM Identity of an instance",
88747	//   "httpMethod": "GET",
88748	//   "id": "compute.instances.getShieldedVmIdentity",
88749	//   "parameterOrder": [
88750	//     "project",
88751	//     "zone",
88752	//     "instance"
88753	//   ],
88754	//   "parameters": {
88755	//     "instance": {
88756	//       "description": "Name of the instance scoping this request.",
88757	//       "location": "path",
88758	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88759	//       "required": true,
88760	//       "type": "string"
88761	//     },
88762	//     "project": {
88763	//       "description": "Project ID for this request.",
88764	//       "location": "path",
88765	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88766	//       "required": true,
88767	//       "type": "string"
88768	//     },
88769	//     "zone": {
88770	//       "description": "The name of the zone for this request.",
88771	//       "location": "path",
88772	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88773	//       "required": true,
88774	//       "type": "string"
88775	//     }
88776	//   },
88777	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity",
88778	//   "response": {
88779	//     "$ref": "ShieldedVmIdentity"
88780	//   },
88781	//   "scopes": [
88782	//     "https://www.googleapis.com/auth/cloud-platform",
88783	//     "https://www.googleapis.com/auth/compute",
88784	//     "https://www.googleapis.com/auth/compute.readonly"
88785	//   ]
88786	// }
88787
88788}
88789
88790// method id "compute.instances.insert":
88791
88792type InstancesInsertCall struct {
88793	s          *Service
88794	project    string
88795	zone       string
88796	instance   *Instance
88797	urlParams_ gensupport.URLParams
88798	ctx_       context.Context
88799	header_    http.Header
88800}
88801
88802// Insert: Creates an instance resource in the specified project using
88803// the data included in the request.
88804// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
88805func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
88806	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88807	c.project = project
88808	c.zone = zone
88809	c.instance = instance
88810	return c
88811}
88812
88813// RequestId sets the optional parameter "requestId": An optional
88814// request ID to identify requests. Specify a unique request ID so that
88815// if you must retry your request, the server will know to ignore the
88816// request if it has already been completed.
88817//
88818// For example, consider a situation where you make an initial request
88819// and the request times out. If you make the request again with the
88820// same request ID, the server can check if original operation with the
88821// same request ID was received, and if so, will ignore the second
88822// request. This prevents clients from accidentally creating duplicate
88823// commitments.
88824//
88825// The request ID must be a valid UUID with the exception that zero UUID
88826// is not supported (00000000-0000-0000-0000-000000000000).
88827func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
88828	c.urlParams_.Set("requestId", requestId)
88829	return c
88830}
88831
88832// SourceInstanceTemplate sets the optional parameter
88833// "sourceInstanceTemplate": Specifies instance template to create the
88834// instance.
88835//
88836// This field is optional. It can be a full or partial URL. For example,
88837// the following are all valid URLs to an instance template:
88838// -
88839// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
88840// - projects/project/global/instanceTemplates/instanceTemplate
88841// - global/instanceTemplates/instanceTemplate
88842func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
88843	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
88844	return c
88845}
88846
88847// SourceMachineImage sets the optional parameter "sourceMachineImage":
88848// Specifies instance machine to create the instance.
88849//
88850// This field is optional. It can be a full or partial URL. For example,
88851// the following are all valid URLs to an instance template:
88852// -
88853// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
88854// - projects/project/global/global/machineImages/machineImage
88855// - global/machineImages/machineImage
88856func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall {
88857	c.urlParams_.Set("sourceMachineImage", sourceMachineImage)
88858	return c
88859}
88860
88861// Fields allows partial responses to be retrieved. See
88862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88863// for more information.
88864func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
88865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88866	return c
88867}
88868
88869// Context sets the context to be used in this call's Do method. Any
88870// pending HTTP request will be aborted if the provided context is
88871// canceled.
88872func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
88873	c.ctx_ = ctx
88874	return c
88875}
88876
88877// Header returns an http.Header that can be modified by the caller to
88878// add HTTP headers to the request.
88879func (c *InstancesInsertCall) Header() http.Header {
88880	if c.header_ == nil {
88881		c.header_ = make(http.Header)
88882	}
88883	return c.header_
88884}
88885
88886func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
88887	reqHeaders := make(http.Header)
88888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
88889	for k, v := range c.header_ {
88890		reqHeaders[k] = v
88891	}
88892	reqHeaders.Set("User-Agent", c.s.userAgent())
88893	var body io.Reader = nil
88894	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
88895	if err != nil {
88896		return nil, err
88897	}
88898	reqHeaders.Set("Content-Type", "application/json")
88899	c.urlParams_.Set("alt", alt)
88900	c.urlParams_.Set("prettyPrint", "false")
88901	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
88902	urls += "?" + c.urlParams_.Encode()
88903	req, err := http.NewRequest("POST", urls, body)
88904	if err != nil {
88905		return nil, err
88906	}
88907	req.Header = reqHeaders
88908	googleapi.Expand(req.URL, map[string]string{
88909		"project": c.project,
88910		"zone":    c.zone,
88911	})
88912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88913}
88914
88915// Do executes the "compute.instances.insert" call.
88916// Exactly one of *Operation or error will be non-nil. Any non-2xx
88917// status code is an error. Response headers are in either
88918// *Operation.ServerResponse.Header or (if a response was returned at
88919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88920// to check whether the returned error was because
88921// http.StatusNotModified was returned.
88922func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88923	gensupport.SetOptions(c.urlParams_, opts...)
88924	res, err := c.doRequest("json")
88925	if res != nil && res.StatusCode == http.StatusNotModified {
88926		if res.Body != nil {
88927			res.Body.Close()
88928		}
88929		return nil, &googleapi.Error{
88930			Code:   res.StatusCode,
88931			Header: res.Header,
88932		}
88933	}
88934	if err != nil {
88935		return nil, err
88936	}
88937	defer googleapi.CloseBody(res)
88938	if err := googleapi.CheckResponse(res); err != nil {
88939		return nil, err
88940	}
88941	ret := &Operation{
88942		ServerResponse: googleapi.ServerResponse{
88943			Header:         res.Header,
88944			HTTPStatusCode: res.StatusCode,
88945		},
88946	}
88947	target := &ret
88948	if err := gensupport.DecodeResponse(target, res); err != nil {
88949		return nil, err
88950	}
88951	return ret, nil
88952	// {
88953	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
88954	//   "httpMethod": "POST",
88955	//   "id": "compute.instances.insert",
88956	//   "parameterOrder": [
88957	//     "project",
88958	//     "zone"
88959	//   ],
88960	//   "parameters": {
88961	//     "project": {
88962	//       "description": "Project ID for this request.",
88963	//       "location": "path",
88964	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88965	//       "required": true,
88966	//       "type": "string"
88967	//     },
88968	//     "requestId": {
88969	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88970	//       "location": "query",
88971	//       "type": "string"
88972	//     },
88973	//     "sourceInstanceTemplate": {
88974	//       "description": "Specifies instance template to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template:  \n- https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate \n- projects/project/global/instanceTemplates/instanceTemplate \n- global/instanceTemplates/instanceTemplate",
88975	//       "location": "query",
88976	//       "type": "string"
88977	//     },
88978	//     "sourceMachineImage": {
88979	//       "description": "Specifies instance machine to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template:  \n- https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage \n- projects/project/global/global/machineImages/machineImage \n- global/machineImages/machineImage",
88980	//       "location": "query",
88981	//       "type": "string"
88982	//     },
88983	//     "zone": {
88984	//       "description": "The name of the zone for this request.",
88985	//       "location": "path",
88986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88987	//       "required": true,
88988	//       "type": "string"
88989	//     }
88990	//   },
88991	//   "path": "{project}/zones/{zone}/instances",
88992	//   "request": {
88993	//     "$ref": "Instance"
88994	//   },
88995	//   "response": {
88996	//     "$ref": "Operation"
88997	//   },
88998	//   "scopes": [
88999	//     "https://www.googleapis.com/auth/cloud-platform",
89000	//     "https://www.googleapis.com/auth/compute"
89001	//   ]
89002	// }
89003
89004}
89005
89006// method id "compute.instances.list":
89007
89008type InstancesListCall struct {
89009	s            *Service
89010	project      string
89011	zone         string
89012	urlParams_   gensupport.URLParams
89013	ifNoneMatch_ string
89014	ctx_         context.Context
89015	header_      http.Header
89016}
89017
89018// List: Retrieves the list of instances contained within the specified
89019// zone.
89020// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
89021func (r *InstancesService) List(project string, zone string) *InstancesListCall {
89022	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89023	c.project = project
89024	c.zone = zone
89025	return c
89026}
89027
89028// Filter sets the optional parameter "filter": A filter expression that
89029// filters resources listed in the response. The expression must specify
89030// the field name, a comparison operator, and the value that you want to
89031// use for filtering. The value must be a string, a number, or a
89032// boolean. The comparison operator must be either `=`, `!=`, `>`, or
89033// `<`.
89034//
89035// For example, if you are filtering Compute Engine instances, you can
89036// exclude instances named `example-instance` by specifying `name !=
89037// example-instance`.
89038//
89039// You can also filter nested fields. For example, you could specify
89040// `scheduling.automaticRestart = false` to include instances only if
89041// they are not scheduled for automatic restarts. You can use filtering
89042// on nested fields to filter based on resource labels.
89043//
89044// To filter on multiple expressions, provide each separate expression
89045// within parentheses. For example: ``` (scheduling.automaticRestart =
89046// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
89047// is an `AND` expression. However, you can include `AND` and `OR`
89048// expressions explicitly. For example: ``` (cpuPlatform = "Intel
89049// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
89050// (scheduling.automaticRestart = true) ```
89051func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
89052	c.urlParams_.Set("filter", filter)
89053	return c
89054}
89055
89056// MaxResults sets the optional parameter "maxResults": The maximum
89057// number of results per page that should be returned. If the number of
89058// available results is larger than `maxResults`, Compute Engine returns
89059// a `nextPageToken` that can be used to get the next page of results in
89060// subsequent list requests. Acceptable values are `0` to `500`,
89061// inclusive. (Default: `500`)
89062func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
89063	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
89064	return c
89065}
89066
89067// OrderBy sets the optional parameter "orderBy": Sorts list results by
89068// a certain order. By default, results are returned in alphanumerical
89069// order based on the resource name.
89070//
89071// You can also sort results in descending order based on the creation
89072// timestamp using `orderBy="creationTimestamp desc". This sorts
89073// results based on the `creationTimestamp` field in reverse
89074// chronological order (newest result first). Use this to sort resources
89075// like operations so that the newest operation is returned
89076// first.
89077//
89078// Currently, only sorting by `name` or `creationTimestamp desc` is
89079// supported.
89080func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
89081	c.urlParams_.Set("orderBy", orderBy)
89082	return c
89083}
89084
89085// PageToken sets the optional parameter "pageToken": Specifies a page
89086// token to use. Set `pageToken` to the `nextPageToken` returned by a
89087// previous list request to get the next page of results.
89088func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
89089	c.urlParams_.Set("pageToken", pageToken)
89090	return c
89091}
89092
89093// ReturnPartialSuccess sets the optional parameter
89094// "returnPartialSuccess": Opt-in for partial success behavior which
89095// provides partial results in case of failure. The default value is
89096// false and the logic is the same as today.
89097func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall {
89098	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
89099	return c
89100}
89101
89102// Fields allows partial responses to be retrieved. See
89103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89104// for more information.
89105func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
89106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89107	return c
89108}
89109
89110// IfNoneMatch sets the optional parameter which makes the operation
89111// fail if the object's ETag matches the given value. This is useful for
89112// getting updates only after the object has changed since the last
89113// request. Use googleapi.IsNotModified to check whether the response
89114// error from Do is the result of In-None-Match.
89115func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
89116	c.ifNoneMatch_ = entityTag
89117	return c
89118}
89119
89120// Context sets the context to be used in this call's Do method. Any
89121// pending HTTP request will be aborted if the provided context is
89122// canceled.
89123func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
89124	c.ctx_ = ctx
89125	return c
89126}
89127
89128// Header returns an http.Header that can be modified by the caller to
89129// add HTTP headers to the request.
89130func (c *InstancesListCall) Header() http.Header {
89131	if c.header_ == nil {
89132		c.header_ = make(http.Header)
89133	}
89134	return c.header_
89135}
89136
89137func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
89138	reqHeaders := make(http.Header)
89139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
89140	for k, v := range c.header_ {
89141		reqHeaders[k] = v
89142	}
89143	reqHeaders.Set("User-Agent", c.s.userAgent())
89144	if c.ifNoneMatch_ != "" {
89145		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89146	}
89147	var body io.Reader = nil
89148	c.urlParams_.Set("alt", alt)
89149	c.urlParams_.Set("prettyPrint", "false")
89150	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
89151	urls += "?" + c.urlParams_.Encode()
89152	req, err := http.NewRequest("GET", urls, body)
89153	if err != nil {
89154		return nil, err
89155	}
89156	req.Header = reqHeaders
89157	googleapi.Expand(req.URL, map[string]string{
89158		"project": c.project,
89159		"zone":    c.zone,
89160	})
89161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89162}
89163
89164// Do executes the "compute.instances.list" call.
89165// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
89166// status code is an error. Response headers are in either
89167// *InstanceList.ServerResponse.Header or (if a response was returned at
89168// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89169// to check whether the returned error was because
89170// http.StatusNotModified was returned.
89171func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
89172	gensupport.SetOptions(c.urlParams_, opts...)
89173	res, err := c.doRequest("json")
89174	if res != nil && res.StatusCode == http.StatusNotModified {
89175		if res.Body != nil {
89176			res.Body.Close()
89177		}
89178		return nil, &googleapi.Error{
89179			Code:   res.StatusCode,
89180			Header: res.Header,
89181		}
89182	}
89183	if err != nil {
89184		return nil, err
89185	}
89186	defer googleapi.CloseBody(res)
89187	if err := googleapi.CheckResponse(res); err != nil {
89188		return nil, err
89189	}
89190	ret := &InstanceList{
89191		ServerResponse: googleapi.ServerResponse{
89192			Header:         res.Header,
89193			HTTPStatusCode: res.StatusCode,
89194		},
89195	}
89196	target := &ret
89197	if err := gensupport.DecodeResponse(target, res); err != nil {
89198		return nil, err
89199	}
89200	return ret, nil
89201	// {
89202	//   "description": "Retrieves the list of instances contained within the specified zone.",
89203	//   "httpMethod": "GET",
89204	//   "id": "compute.instances.list",
89205	//   "parameterOrder": [
89206	//     "project",
89207	//     "zone"
89208	//   ],
89209	//   "parameters": {
89210	//     "filter": {
89211	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
89212	//       "location": "query",
89213	//       "type": "string"
89214	//     },
89215	//     "maxResults": {
89216	//       "default": "500",
89217	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
89218	//       "format": "uint32",
89219	//       "location": "query",
89220	//       "minimum": "0",
89221	//       "type": "integer"
89222	//     },
89223	//     "orderBy": {
89224	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
89225	//       "location": "query",
89226	//       "type": "string"
89227	//     },
89228	//     "pageToken": {
89229	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
89230	//       "location": "query",
89231	//       "type": "string"
89232	//     },
89233	//     "project": {
89234	//       "description": "Project ID for this request.",
89235	//       "location": "path",
89236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89237	//       "required": true,
89238	//       "type": "string"
89239	//     },
89240	//     "returnPartialSuccess": {
89241	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
89242	//       "location": "query",
89243	//       "type": "boolean"
89244	//     },
89245	//     "zone": {
89246	//       "description": "The name of the zone for this request.",
89247	//       "location": "path",
89248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89249	//       "required": true,
89250	//       "type": "string"
89251	//     }
89252	//   },
89253	//   "path": "{project}/zones/{zone}/instances",
89254	//   "response": {
89255	//     "$ref": "InstanceList"
89256	//   },
89257	//   "scopes": [
89258	//     "https://www.googleapis.com/auth/cloud-platform",
89259	//     "https://www.googleapis.com/auth/compute",
89260	//     "https://www.googleapis.com/auth/compute.readonly"
89261	//   ]
89262	// }
89263
89264}
89265
89266// Pages invokes f for each page of results.
89267// A non-nil error returned from f will halt the iteration.
89268// The provided context supersedes any context provided to the Context method.
89269func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
89270	c.ctx_ = ctx
89271	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89272	for {
89273		x, err := c.Do()
89274		if err != nil {
89275			return err
89276		}
89277		if err := f(x); err != nil {
89278			return err
89279		}
89280		if x.NextPageToken == "" {
89281			return nil
89282		}
89283		c.PageToken(x.NextPageToken)
89284	}
89285}
89286
89287// method id "compute.instances.listReferrers":
89288
89289type InstancesListReferrersCall struct {
89290	s            *Service
89291	project      string
89292	zone         string
89293	instance     string
89294	urlParams_   gensupport.URLParams
89295	ifNoneMatch_ string
89296	ctx_         context.Context
89297	header_      http.Header
89298}
89299
89300// ListReferrers: Retrieves the list of referrers to instances contained
89301// within the specified zone. For more information, read Viewing
89302// Referrers to VM Instances.
89303func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
89304	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89305	c.project = project
89306	c.zone = zone
89307	c.instance = instance
89308	return c
89309}
89310
89311// Filter sets the optional parameter "filter": A filter expression that
89312// filters resources listed in the response. The expression must specify
89313// the field name, a comparison operator, and the value that you want to
89314// use for filtering. The value must be a string, a number, or a
89315// boolean. The comparison operator must be either `=`, `!=`, `>`, or
89316// `<`.
89317//
89318// For example, if you are filtering Compute Engine instances, you can
89319// exclude instances named `example-instance` by specifying `name !=
89320// example-instance`.
89321//
89322// You can also filter nested fields. For example, you could specify
89323// `scheduling.automaticRestart = false` to include instances only if
89324// they are not scheduled for automatic restarts. You can use filtering
89325// on nested fields to filter based on resource labels.
89326//
89327// To filter on multiple expressions, provide each separate expression
89328// within parentheses. For example: ``` (scheduling.automaticRestart =
89329// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
89330// is an `AND` expression. However, you can include `AND` and `OR`
89331// expressions explicitly. For example: ``` (cpuPlatform = "Intel
89332// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
89333// (scheduling.automaticRestart = true) ```
89334func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
89335	c.urlParams_.Set("filter", filter)
89336	return c
89337}
89338
89339// MaxResults sets the optional parameter "maxResults": The maximum
89340// number of results per page that should be returned. If the number of
89341// available results is larger than `maxResults`, Compute Engine returns
89342// a `nextPageToken` that can be used to get the next page of results in
89343// subsequent list requests. Acceptable values are `0` to `500`,
89344// inclusive. (Default: `500`)
89345func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
89346	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
89347	return c
89348}
89349
89350// OrderBy sets the optional parameter "orderBy": Sorts list results by
89351// a certain order. By default, results are returned in alphanumerical
89352// order based on the resource name.
89353//
89354// You can also sort results in descending order based on the creation
89355// timestamp using `orderBy="creationTimestamp desc". This sorts
89356// results based on the `creationTimestamp` field in reverse
89357// chronological order (newest result first). Use this to sort resources
89358// like operations so that the newest operation is returned
89359// first.
89360//
89361// Currently, only sorting by `name` or `creationTimestamp desc` is
89362// supported.
89363func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
89364	c.urlParams_.Set("orderBy", orderBy)
89365	return c
89366}
89367
89368// PageToken sets the optional parameter "pageToken": Specifies a page
89369// token to use. Set `pageToken` to the `nextPageToken` returned by a
89370// previous list request to get the next page of results.
89371func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
89372	c.urlParams_.Set("pageToken", pageToken)
89373	return c
89374}
89375
89376// ReturnPartialSuccess sets the optional parameter
89377// "returnPartialSuccess": Opt-in for partial success behavior which
89378// provides partial results in case of failure. The default value is
89379// false and the logic is the same as today.
89380func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall {
89381	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
89382	return c
89383}
89384
89385// Fields allows partial responses to be retrieved. See
89386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89387// for more information.
89388func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
89389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89390	return c
89391}
89392
89393// IfNoneMatch sets the optional parameter which makes the operation
89394// fail if the object's ETag matches the given value. This is useful for
89395// getting updates only after the object has changed since the last
89396// request. Use googleapi.IsNotModified to check whether the response
89397// error from Do is the result of In-None-Match.
89398func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
89399	c.ifNoneMatch_ = entityTag
89400	return c
89401}
89402
89403// Context sets the context to be used in this call's Do method. Any
89404// pending HTTP request will be aborted if the provided context is
89405// canceled.
89406func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
89407	c.ctx_ = ctx
89408	return c
89409}
89410
89411// Header returns an http.Header that can be modified by the caller to
89412// add HTTP headers to the request.
89413func (c *InstancesListReferrersCall) Header() http.Header {
89414	if c.header_ == nil {
89415		c.header_ = make(http.Header)
89416	}
89417	return c.header_
89418}
89419
89420func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
89421	reqHeaders := make(http.Header)
89422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
89423	for k, v := range c.header_ {
89424		reqHeaders[k] = v
89425	}
89426	reqHeaders.Set("User-Agent", c.s.userAgent())
89427	if c.ifNoneMatch_ != "" {
89428		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89429	}
89430	var body io.Reader = nil
89431	c.urlParams_.Set("alt", alt)
89432	c.urlParams_.Set("prettyPrint", "false")
89433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
89434	urls += "?" + c.urlParams_.Encode()
89435	req, err := http.NewRequest("GET", urls, body)
89436	if err != nil {
89437		return nil, err
89438	}
89439	req.Header = reqHeaders
89440	googleapi.Expand(req.URL, map[string]string{
89441		"project":  c.project,
89442		"zone":     c.zone,
89443		"instance": c.instance,
89444	})
89445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89446}
89447
89448// Do executes the "compute.instances.listReferrers" call.
89449// Exactly one of *InstanceListReferrers or error will be non-nil. Any
89450// non-2xx status code is an error. Response headers are in either
89451// *InstanceListReferrers.ServerResponse.Header or (if a response was
89452// returned at all) in error.(*googleapi.Error).Header. Use
89453// googleapi.IsNotModified to check whether the returned error was
89454// because http.StatusNotModified was returned.
89455func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
89456	gensupport.SetOptions(c.urlParams_, opts...)
89457	res, err := c.doRequest("json")
89458	if res != nil && res.StatusCode == http.StatusNotModified {
89459		if res.Body != nil {
89460			res.Body.Close()
89461		}
89462		return nil, &googleapi.Error{
89463			Code:   res.StatusCode,
89464			Header: res.Header,
89465		}
89466	}
89467	if err != nil {
89468		return nil, err
89469	}
89470	defer googleapi.CloseBody(res)
89471	if err := googleapi.CheckResponse(res); err != nil {
89472		return nil, err
89473	}
89474	ret := &InstanceListReferrers{
89475		ServerResponse: googleapi.ServerResponse{
89476			Header:         res.Header,
89477			HTTPStatusCode: res.StatusCode,
89478		},
89479	}
89480	target := &ret
89481	if err := gensupport.DecodeResponse(target, res); err != nil {
89482		return nil, err
89483	}
89484	return ret, nil
89485	// {
89486	//   "description": "Retrieves the list of referrers to instances contained within the specified zone. For more information, read Viewing Referrers to VM Instances.",
89487	//   "httpMethod": "GET",
89488	//   "id": "compute.instances.listReferrers",
89489	//   "parameterOrder": [
89490	//     "project",
89491	//     "zone",
89492	//     "instance"
89493	//   ],
89494	//   "parameters": {
89495	//     "filter": {
89496	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
89497	//       "location": "query",
89498	//       "type": "string"
89499	//     },
89500	//     "instance": {
89501	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
89502	//       "location": "path",
89503	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89504	//       "required": true,
89505	//       "type": "string"
89506	//     },
89507	//     "maxResults": {
89508	//       "default": "500",
89509	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
89510	//       "format": "uint32",
89511	//       "location": "query",
89512	//       "minimum": "0",
89513	//       "type": "integer"
89514	//     },
89515	//     "orderBy": {
89516	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
89517	//       "location": "query",
89518	//       "type": "string"
89519	//     },
89520	//     "pageToken": {
89521	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
89522	//       "location": "query",
89523	//       "type": "string"
89524	//     },
89525	//     "project": {
89526	//       "description": "Project ID for this request.",
89527	//       "location": "path",
89528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89529	//       "required": true,
89530	//       "type": "string"
89531	//     },
89532	//     "returnPartialSuccess": {
89533	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
89534	//       "location": "query",
89535	//       "type": "boolean"
89536	//     },
89537	//     "zone": {
89538	//       "description": "The name of the zone for this request.",
89539	//       "location": "path",
89540	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89541	//       "required": true,
89542	//       "type": "string"
89543	//     }
89544	//   },
89545	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
89546	//   "response": {
89547	//     "$ref": "InstanceListReferrers"
89548	//   },
89549	//   "scopes": [
89550	//     "https://www.googleapis.com/auth/cloud-platform",
89551	//     "https://www.googleapis.com/auth/compute",
89552	//     "https://www.googleapis.com/auth/compute.readonly"
89553	//   ]
89554	// }
89555
89556}
89557
89558// Pages invokes f for each page of results.
89559// A non-nil error returned from f will halt the iteration.
89560// The provided context supersedes any context provided to the Context method.
89561func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
89562	c.ctx_ = ctx
89563	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89564	for {
89565		x, err := c.Do()
89566		if err != nil {
89567			return err
89568		}
89569		if err := f(x); err != nil {
89570			return err
89571		}
89572		if x.NextPageToken == "" {
89573			return nil
89574		}
89575		c.PageToken(x.NextPageToken)
89576	}
89577}
89578
89579// method id "compute.instances.removeResourcePolicies":
89580
89581type InstancesRemoveResourcePoliciesCall struct {
89582	s                                      *Service
89583	project                                string
89584	zone                                   string
89585	instance                               string
89586	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
89587	urlParams_                             gensupport.URLParams
89588	ctx_                                   context.Context
89589	header_                                http.Header
89590}
89591
89592// RemoveResourcePolicies: Removes resource policies from an instance.
89593func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
89594	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89595	c.project = project
89596	c.zone = zone
89597	c.instance = instance
89598	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
89599	return c
89600}
89601
89602// RequestId sets the optional parameter "requestId": An optional
89603// request ID to identify requests. Specify a unique request ID so that
89604// if you must retry your request, the server will know to ignore the
89605// request if it has already been completed.
89606//
89607// For example, consider a situation where you make an initial request
89608// and the request times out. If you make the request again with the
89609// same request ID, the server can check if original operation with the
89610// same request ID was received, and if so, will ignore the second
89611// request. This prevents clients from accidentally creating duplicate
89612// commitments.
89613//
89614// The request ID must be a valid UUID with the exception that zero UUID
89615// is not supported (00000000-0000-0000-0000-000000000000).
89616func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
89617	c.urlParams_.Set("requestId", requestId)
89618	return c
89619}
89620
89621// Fields allows partial responses to be retrieved. See
89622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89623// for more information.
89624func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
89625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89626	return c
89627}
89628
89629// Context sets the context to be used in this call's Do method. Any
89630// pending HTTP request will be aborted if the provided context is
89631// canceled.
89632func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
89633	c.ctx_ = ctx
89634	return c
89635}
89636
89637// Header returns an http.Header that can be modified by the caller to
89638// add HTTP headers to the request.
89639func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
89640	if c.header_ == nil {
89641		c.header_ = make(http.Header)
89642	}
89643	return c.header_
89644}
89645
89646func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
89647	reqHeaders := make(http.Header)
89648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
89649	for k, v := range c.header_ {
89650		reqHeaders[k] = v
89651	}
89652	reqHeaders.Set("User-Agent", c.s.userAgent())
89653	var body io.Reader = nil
89654	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
89655	if err != nil {
89656		return nil, err
89657	}
89658	reqHeaders.Set("Content-Type", "application/json")
89659	c.urlParams_.Set("alt", alt)
89660	c.urlParams_.Set("prettyPrint", "false")
89661	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
89662	urls += "?" + c.urlParams_.Encode()
89663	req, err := http.NewRequest("POST", urls, body)
89664	if err != nil {
89665		return nil, err
89666	}
89667	req.Header = reqHeaders
89668	googleapi.Expand(req.URL, map[string]string{
89669		"project":  c.project,
89670		"zone":     c.zone,
89671		"instance": c.instance,
89672	})
89673	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89674}
89675
89676// Do executes the "compute.instances.removeResourcePolicies" call.
89677// Exactly one of *Operation or error will be non-nil. Any non-2xx
89678// status code is an error. Response headers are in either
89679// *Operation.ServerResponse.Header or (if a response was returned at
89680// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89681// to check whether the returned error was because
89682// http.StatusNotModified was returned.
89683func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89684	gensupport.SetOptions(c.urlParams_, opts...)
89685	res, err := c.doRequest("json")
89686	if res != nil && res.StatusCode == http.StatusNotModified {
89687		if res.Body != nil {
89688			res.Body.Close()
89689		}
89690		return nil, &googleapi.Error{
89691			Code:   res.StatusCode,
89692			Header: res.Header,
89693		}
89694	}
89695	if err != nil {
89696		return nil, err
89697	}
89698	defer googleapi.CloseBody(res)
89699	if err := googleapi.CheckResponse(res); err != nil {
89700		return nil, err
89701	}
89702	ret := &Operation{
89703		ServerResponse: googleapi.ServerResponse{
89704			Header:         res.Header,
89705			HTTPStatusCode: res.StatusCode,
89706		},
89707	}
89708	target := &ret
89709	if err := gensupport.DecodeResponse(target, res); err != nil {
89710		return nil, err
89711	}
89712	return ret, nil
89713	// {
89714	//   "description": "Removes resource policies from an instance.",
89715	//   "httpMethod": "POST",
89716	//   "id": "compute.instances.removeResourcePolicies",
89717	//   "parameterOrder": [
89718	//     "project",
89719	//     "zone",
89720	//     "instance"
89721	//   ],
89722	//   "parameters": {
89723	//     "instance": {
89724	//       "description": "The instance name for this request.",
89725	//       "location": "path",
89726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89727	//       "required": true,
89728	//       "type": "string"
89729	//     },
89730	//     "project": {
89731	//       "description": "Project ID for this request.",
89732	//       "location": "path",
89733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89734	//       "required": true,
89735	//       "type": "string"
89736	//     },
89737	//     "requestId": {
89738	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89739	//       "location": "query",
89740	//       "type": "string"
89741	//     },
89742	//     "zone": {
89743	//       "description": "The name of the zone for this request.",
89744	//       "location": "path",
89745	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89746	//       "required": true,
89747	//       "type": "string"
89748	//     }
89749	//   },
89750	//   "path": "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
89751	//   "request": {
89752	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
89753	//   },
89754	//   "response": {
89755	//     "$ref": "Operation"
89756	//   },
89757	//   "scopes": [
89758	//     "https://www.googleapis.com/auth/cloud-platform",
89759	//     "https://www.googleapis.com/auth/compute"
89760	//   ]
89761	// }
89762
89763}
89764
89765// method id "compute.instances.reset":
89766
89767type InstancesResetCall struct {
89768	s          *Service
89769	project    string
89770	zone       string
89771	instance   string
89772	urlParams_ gensupport.URLParams
89773	ctx_       context.Context
89774	header_    http.Header
89775}
89776
89777// Reset: Performs a reset on the instance. This is a hard reset the VM
89778// does not do a graceful shutdown. For more information, see Resetting
89779// an instance.
89780// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
89781func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
89782	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89783	c.project = project
89784	c.zone = zone
89785	c.instance = instance
89786	return c
89787}
89788
89789// RequestId sets the optional parameter "requestId": An optional
89790// request ID to identify requests. Specify a unique request ID so that
89791// if you must retry your request, the server will know to ignore the
89792// request if it has already been completed.
89793//
89794// For example, consider a situation where you make an initial request
89795// and the request times out. If you make the request again with the
89796// same request ID, the server can check if original operation with the
89797// same request ID was received, and if so, will ignore the second
89798// request. This prevents clients from accidentally creating duplicate
89799// commitments.
89800//
89801// The request ID must be a valid UUID with the exception that zero UUID
89802// is not supported (00000000-0000-0000-0000-000000000000).
89803func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
89804	c.urlParams_.Set("requestId", requestId)
89805	return c
89806}
89807
89808// Fields allows partial responses to be retrieved. See
89809// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89810// for more information.
89811func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
89812	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89813	return c
89814}
89815
89816// Context sets the context to be used in this call's Do method. Any
89817// pending HTTP request will be aborted if the provided context is
89818// canceled.
89819func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
89820	c.ctx_ = ctx
89821	return c
89822}
89823
89824// Header returns an http.Header that can be modified by the caller to
89825// add HTTP headers to the request.
89826func (c *InstancesResetCall) Header() http.Header {
89827	if c.header_ == nil {
89828		c.header_ = make(http.Header)
89829	}
89830	return c.header_
89831}
89832
89833func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
89834	reqHeaders := make(http.Header)
89835	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
89836	for k, v := range c.header_ {
89837		reqHeaders[k] = v
89838	}
89839	reqHeaders.Set("User-Agent", c.s.userAgent())
89840	var body io.Reader = nil
89841	c.urlParams_.Set("alt", alt)
89842	c.urlParams_.Set("prettyPrint", "false")
89843	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
89844	urls += "?" + c.urlParams_.Encode()
89845	req, err := http.NewRequest("POST", urls, body)
89846	if err != nil {
89847		return nil, err
89848	}
89849	req.Header = reqHeaders
89850	googleapi.Expand(req.URL, map[string]string{
89851		"project":  c.project,
89852		"zone":     c.zone,
89853		"instance": c.instance,
89854	})
89855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89856}
89857
89858// Do executes the "compute.instances.reset" call.
89859// Exactly one of *Operation or error will be non-nil. Any non-2xx
89860// status code is an error. Response headers are in either
89861// *Operation.ServerResponse.Header or (if a response was returned at
89862// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89863// to check whether the returned error was because
89864// http.StatusNotModified was returned.
89865func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89866	gensupport.SetOptions(c.urlParams_, opts...)
89867	res, err := c.doRequest("json")
89868	if res != nil && res.StatusCode == http.StatusNotModified {
89869		if res.Body != nil {
89870			res.Body.Close()
89871		}
89872		return nil, &googleapi.Error{
89873			Code:   res.StatusCode,
89874			Header: res.Header,
89875		}
89876	}
89877	if err != nil {
89878		return nil, err
89879	}
89880	defer googleapi.CloseBody(res)
89881	if err := googleapi.CheckResponse(res); err != nil {
89882		return nil, err
89883	}
89884	ret := &Operation{
89885		ServerResponse: googleapi.ServerResponse{
89886			Header:         res.Header,
89887			HTTPStatusCode: res.StatusCode,
89888		},
89889	}
89890	target := &ret
89891	if err := gensupport.DecodeResponse(target, res); err != nil {
89892		return nil, err
89893	}
89894	return ret, nil
89895	// {
89896	//   "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.",
89897	//   "httpMethod": "POST",
89898	//   "id": "compute.instances.reset",
89899	//   "parameterOrder": [
89900	//     "project",
89901	//     "zone",
89902	//     "instance"
89903	//   ],
89904	//   "parameters": {
89905	//     "instance": {
89906	//       "description": "Name of the instance scoping this request.",
89907	//       "location": "path",
89908	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89909	//       "required": true,
89910	//       "type": "string"
89911	//     },
89912	//     "project": {
89913	//       "description": "Project ID for this request.",
89914	//       "location": "path",
89915	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89916	//       "required": true,
89917	//       "type": "string"
89918	//     },
89919	//     "requestId": {
89920	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89921	//       "location": "query",
89922	//       "type": "string"
89923	//     },
89924	//     "zone": {
89925	//       "description": "The name of the zone for this request.",
89926	//       "location": "path",
89927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89928	//       "required": true,
89929	//       "type": "string"
89930	//     }
89931	//   },
89932	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
89933	//   "response": {
89934	//     "$ref": "Operation"
89935	//   },
89936	//   "scopes": [
89937	//     "https://www.googleapis.com/auth/cloud-platform",
89938	//     "https://www.googleapis.com/auth/compute"
89939	//   ]
89940	// }
89941
89942}
89943
89944// method id "compute.instances.resume":
89945
89946type InstancesResumeCall struct {
89947	s                      *Service
89948	project                string
89949	zone                   string
89950	instance               string
89951	instancesresumerequest *InstancesResumeRequest
89952	urlParams_             gensupport.URLParams
89953	ctx_                   context.Context
89954	header_                http.Header
89955}
89956
89957// Resume: Resumes an instance that was suspended using the
89958// instances().suspend method.
89959func (r *InstancesService) Resume(project string, zone string, instance string, instancesresumerequest *InstancesResumeRequest) *InstancesResumeCall {
89960	c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89961	c.project = project
89962	c.zone = zone
89963	c.instance = instance
89964	c.instancesresumerequest = instancesresumerequest
89965	return c
89966}
89967
89968// RequestId sets the optional parameter "requestId": An optional
89969// request ID to identify requests. Specify a unique request ID so that
89970// if you must retry your request, the server will know to ignore the
89971// request if it has already been completed.
89972//
89973// For example, consider a situation where you make an initial request
89974// and the request times out. If you make the request again with the
89975// same request ID, the server can check if original operation with the
89976// same request ID was received, and if so, will ignore the second
89977// request. This prevents clients from accidentally creating duplicate
89978// commitments.
89979//
89980// The request ID must be a valid UUID with the exception that zero UUID
89981// is not supported (00000000-0000-0000-0000-000000000000).
89982func (c *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall {
89983	c.urlParams_.Set("requestId", requestId)
89984	return c
89985}
89986
89987// Fields allows partial responses to be retrieved. See
89988// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89989// for more information.
89990func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall {
89991	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89992	return c
89993}
89994
89995// Context sets the context to be used in this call's Do method. Any
89996// pending HTTP request will be aborted if the provided context is
89997// canceled.
89998func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall {
89999	c.ctx_ = ctx
90000	return c
90001}
90002
90003// Header returns an http.Header that can be modified by the caller to
90004// add HTTP headers to the request.
90005func (c *InstancesResumeCall) Header() http.Header {
90006	if c.header_ == nil {
90007		c.header_ = make(http.Header)
90008	}
90009	return c.header_
90010}
90011
90012func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) {
90013	reqHeaders := make(http.Header)
90014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
90015	for k, v := range c.header_ {
90016		reqHeaders[k] = v
90017	}
90018	reqHeaders.Set("User-Agent", c.s.userAgent())
90019	var body io.Reader = nil
90020	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesresumerequest)
90021	if err != nil {
90022		return nil, err
90023	}
90024	reqHeaders.Set("Content-Type", "application/json")
90025	c.urlParams_.Set("alt", alt)
90026	c.urlParams_.Set("prettyPrint", "false")
90027	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/resume")
90028	urls += "?" + c.urlParams_.Encode()
90029	req, err := http.NewRequest("POST", urls, body)
90030	if err != nil {
90031		return nil, err
90032	}
90033	req.Header = reqHeaders
90034	googleapi.Expand(req.URL, map[string]string{
90035		"project":  c.project,
90036		"zone":     c.zone,
90037		"instance": c.instance,
90038	})
90039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90040}
90041
90042// Do executes the "compute.instances.resume" call.
90043// Exactly one of *Operation or error will be non-nil. Any non-2xx
90044// status code is an error. Response headers are in either
90045// *Operation.ServerResponse.Header or (if a response was returned at
90046// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90047// to check whether the returned error was because
90048// http.StatusNotModified was returned.
90049func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90050	gensupport.SetOptions(c.urlParams_, opts...)
90051	res, err := c.doRequest("json")
90052	if res != nil && res.StatusCode == http.StatusNotModified {
90053		if res.Body != nil {
90054			res.Body.Close()
90055		}
90056		return nil, &googleapi.Error{
90057			Code:   res.StatusCode,
90058			Header: res.Header,
90059		}
90060	}
90061	if err != nil {
90062		return nil, err
90063	}
90064	defer googleapi.CloseBody(res)
90065	if err := googleapi.CheckResponse(res); err != nil {
90066		return nil, err
90067	}
90068	ret := &Operation{
90069		ServerResponse: googleapi.ServerResponse{
90070			Header:         res.Header,
90071			HTTPStatusCode: res.StatusCode,
90072		},
90073	}
90074	target := &ret
90075	if err := gensupport.DecodeResponse(target, res); err != nil {
90076		return nil, err
90077	}
90078	return ret, nil
90079	// {
90080	//   "description": "Resumes an instance that was suspended using the instances().suspend method.",
90081	//   "httpMethod": "POST",
90082	//   "id": "compute.instances.resume",
90083	//   "parameterOrder": [
90084	//     "project",
90085	//     "zone",
90086	//     "instance"
90087	//   ],
90088	//   "parameters": {
90089	//     "instance": {
90090	//       "description": "Name of the instance resource to resume.",
90091	//       "location": "path",
90092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90093	//       "required": true,
90094	//       "type": "string"
90095	//     },
90096	//     "project": {
90097	//       "description": "Project ID for this request.",
90098	//       "location": "path",
90099	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90100	//       "required": true,
90101	//       "type": "string"
90102	//     },
90103	//     "requestId": {
90104	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90105	//       "location": "query",
90106	//       "type": "string"
90107	//     },
90108	//     "zone": {
90109	//       "description": "The name of the zone for this request.",
90110	//       "location": "path",
90111	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90112	//       "required": true,
90113	//       "type": "string"
90114	//     }
90115	//   },
90116	//   "path": "{project}/zones/{zone}/instances/{instance}/resume",
90117	//   "request": {
90118	//     "$ref": "InstancesResumeRequest"
90119	//   },
90120	//   "response": {
90121	//     "$ref": "Operation"
90122	//   },
90123	//   "scopes": [
90124	//     "https://www.googleapis.com/auth/cloud-platform",
90125	//     "https://www.googleapis.com/auth/compute"
90126	//   ]
90127	// }
90128
90129}
90130
90131// method id "compute.instances.setDeletionProtection":
90132
90133type InstancesSetDeletionProtectionCall struct {
90134	s          *Service
90135	project    string
90136	zone       string
90137	resource   string
90138	urlParams_ gensupport.URLParams
90139	ctx_       context.Context
90140	header_    http.Header
90141}
90142
90143// SetDeletionProtection: Sets deletion protection on the instance.
90144func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
90145	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90146	c.project = project
90147	c.zone = zone
90148	c.resource = resource
90149	return c
90150}
90151
90152// DeletionProtection sets the optional parameter "deletionProtection":
90153// Whether the resource should be protected against deletion.
90154func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
90155	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
90156	return c
90157}
90158
90159// RequestId sets the optional parameter "requestId": An optional
90160// request ID to identify requests. Specify a unique request ID so that
90161// if you must retry your request, the server will know to ignore the
90162// request if it has already been completed.
90163//
90164// For example, consider a situation where you make an initial request
90165// and the request times out. If you make the request again with the
90166// same request ID, the server can check if original operation with the
90167// same request ID was received, and if so, will ignore the second
90168// request. This prevents clients from accidentally creating duplicate
90169// commitments.
90170//
90171// The request ID must be a valid UUID with the exception that zero UUID
90172// is not supported (00000000-0000-0000-0000-000000000000).
90173func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
90174	c.urlParams_.Set("requestId", requestId)
90175	return c
90176}
90177
90178// Fields allows partial responses to be retrieved. See
90179// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90180// for more information.
90181func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
90182	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90183	return c
90184}
90185
90186// Context sets the context to be used in this call's Do method. Any
90187// pending HTTP request will be aborted if the provided context is
90188// canceled.
90189func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
90190	c.ctx_ = ctx
90191	return c
90192}
90193
90194// Header returns an http.Header that can be modified by the caller to
90195// add HTTP headers to the request.
90196func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
90197	if c.header_ == nil {
90198		c.header_ = make(http.Header)
90199	}
90200	return c.header_
90201}
90202
90203func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
90204	reqHeaders := make(http.Header)
90205	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
90206	for k, v := range c.header_ {
90207		reqHeaders[k] = v
90208	}
90209	reqHeaders.Set("User-Agent", c.s.userAgent())
90210	var body io.Reader = nil
90211	c.urlParams_.Set("alt", alt)
90212	c.urlParams_.Set("prettyPrint", "false")
90213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
90214	urls += "?" + c.urlParams_.Encode()
90215	req, err := http.NewRequest("POST", urls, body)
90216	if err != nil {
90217		return nil, err
90218	}
90219	req.Header = reqHeaders
90220	googleapi.Expand(req.URL, map[string]string{
90221		"project":  c.project,
90222		"zone":     c.zone,
90223		"resource": c.resource,
90224	})
90225	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90226}
90227
90228// Do executes the "compute.instances.setDeletionProtection" call.
90229// Exactly one of *Operation or error will be non-nil. Any non-2xx
90230// status code is an error. Response headers are in either
90231// *Operation.ServerResponse.Header or (if a response was returned at
90232// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90233// to check whether the returned error was because
90234// http.StatusNotModified was returned.
90235func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90236	gensupport.SetOptions(c.urlParams_, opts...)
90237	res, err := c.doRequest("json")
90238	if res != nil && res.StatusCode == http.StatusNotModified {
90239		if res.Body != nil {
90240			res.Body.Close()
90241		}
90242		return nil, &googleapi.Error{
90243			Code:   res.StatusCode,
90244			Header: res.Header,
90245		}
90246	}
90247	if err != nil {
90248		return nil, err
90249	}
90250	defer googleapi.CloseBody(res)
90251	if err := googleapi.CheckResponse(res); err != nil {
90252		return nil, err
90253	}
90254	ret := &Operation{
90255		ServerResponse: googleapi.ServerResponse{
90256			Header:         res.Header,
90257			HTTPStatusCode: res.StatusCode,
90258		},
90259	}
90260	target := &ret
90261	if err := gensupport.DecodeResponse(target, res); err != nil {
90262		return nil, err
90263	}
90264	return ret, nil
90265	// {
90266	//   "description": "Sets deletion protection on the instance.",
90267	//   "httpMethod": "POST",
90268	//   "id": "compute.instances.setDeletionProtection",
90269	//   "parameterOrder": [
90270	//     "project",
90271	//     "zone",
90272	//     "resource"
90273	//   ],
90274	//   "parameters": {
90275	//     "deletionProtection": {
90276	//       "default": "true",
90277	//       "description": "Whether the resource should be protected against deletion.",
90278	//       "location": "query",
90279	//       "type": "boolean"
90280	//     },
90281	//     "project": {
90282	//       "description": "Project ID for this request.",
90283	//       "location": "path",
90284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90285	//       "required": true,
90286	//       "type": "string"
90287	//     },
90288	//     "requestId": {
90289	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90290	//       "location": "query",
90291	//       "type": "string"
90292	//     },
90293	//     "resource": {
90294	//       "description": "Name or id of the resource for this request.",
90295	//       "location": "path",
90296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90297	//       "required": true,
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": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
90309	//   "response": {
90310	//     "$ref": "Operation"
90311	//   },
90312	//   "scopes": [
90313	//     "https://www.googleapis.com/auth/cloud-platform",
90314	//     "https://www.googleapis.com/auth/compute"
90315	//   ]
90316	// }
90317
90318}
90319
90320// method id "compute.instances.setDiskAutoDelete":
90321
90322type InstancesSetDiskAutoDeleteCall struct {
90323	s          *Service
90324	project    string
90325	zone       string
90326	instance   string
90327	urlParams_ gensupport.URLParams
90328	ctx_       context.Context
90329	header_    http.Header
90330}
90331
90332// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
90333// an instance.
90334// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
90335func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
90336	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90337	c.project = project
90338	c.zone = zone
90339	c.instance = instance
90340	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
90341	c.urlParams_.Set("deviceName", deviceName)
90342	return c
90343}
90344
90345// RequestId sets the optional parameter "requestId": An optional
90346// request ID to identify requests. Specify a unique request ID so that
90347// if you must retry your request, the server will know to ignore the
90348// request if it has already been completed.
90349//
90350// For example, consider a situation where you make an initial request
90351// and the request times out. If you make the request again with the
90352// same request ID, the server can check if original operation with the
90353// same request ID was received, and if so, will ignore the second
90354// request. This prevents clients from accidentally creating duplicate
90355// commitments.
90356//
90357// The request ID must be a valid UUID with the exception that zero UUID
90358// is not supported (00000000-0000-0000-0000-000000000000).
90359func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
90360	c.urlParams_.Set("requestId", requestId)
90361	return c
90362}
90363
90364// Fields allows partial responses to be retrieved. See
90365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90366// for more information.
90367func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
90368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90369	return c
90370}
90371
90372// Context sets the context to be used in this call's Do method. Any
90373// pending HTTP request will be aborted if the provided context is
90374// canceled.
90375func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
90376	c.ctx_ = ctx
90377	return c
90378}
90379
90380// Header returns an http.Header that can be modified by the caller to
90381// add HTTP headers to the request.
90382func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
90383	if c.header_ == nil {
90384		c.header_ = make(http.Header)
90385	}
90386	return c.header_
90387}
90388
90389func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
90390	reqHeaders := make(http.Header)
90391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
90392	for k, v := range c.header_ {
90393		reqHeaders[k] = v
90394	}
90395	reqHeaders.Set("User-Agent", c.s.userAgent())
90396	var body io.Reader = nil
90397	c.urlParams_.Set("alt", alt)
90398	c.urlParams_.Set("prettyPrint", "false")
90399	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
90400	urls += "?" + c.urlParams_.Encode()
90401	req, err := http.NewRequest("POST", urls, body)
90402	if err != nil {
90403		return nil, err
90404	}
90405	req.Header = reqHeaders
90406	googleapi.Expand(req.URL, map[string]string{
90407		"project":  c.project,
90408		"zone":     c.zone,
90409		"instance": c.instance,
90410	})
90411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90412}
90413
90414// Do executes the "compute.instances.setDiskAutoDelete" call.
90415// Exactly one of *Operation or error will be non-nil. Any non-2xx
90416// status code is an error. Response headers are in either
90417// *Operation.ServerResponse.Header or (if a response was returned at
90418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90419// to check whether the returned error was because
90420// http.StatusNotModified was returned.
90421func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90422	gensupport.SetOptions(c.urlParams_, opts...)
90423	res, err := c.doRequest("json")
90424	if res != nil && res.StatusCode == http.StatusNotModified {
90425		if res.Body != nil {
90426			res.Body.Close()
90427		}
90428		return nil, &googleapi.Error{
90429			Code:   res.StatusCode,
90430			Header: res.Header,
90431		}
90432	}
90433	if err != nil {
90434		return nil, err
90435	}
90436	defer googleapi.CloseBody(res)
90437	if err := googleapi.CheckResponse(res); err != nil {
90438		return nil, err
90439	}
90440	ret := &Operation{
90441		ServerResponse: googleapi.ServerResponse{
90442			Header:         res.Header,
90443			HTTPStatusCode: res.StatusCode,
90444		},
90445	}
90446	target := &ret
90447	if err := gensupport.DecodeResponse(target, res); err != nil {
90448		return nil, err
90449	}
90450	return ret, nil
90451	// {
90452	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
90453	//   "httpMethod": "POST",
90454	//   "id": "compute.instances.setDiskAutoDelete",
90455	//   "parameterOrder": [
90456	//     "project",
90457	//     "zone",
90458	//     "instance",
90459	//     "autoDelete",
90460	//     "deviceName"
90461	//   ],
90462	//   "parameters": {
90463	//     "autoDelete": {
90464	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
90465	//       "location": "query",
90466	//       "required": true,
90467	//       "type": "boolean"
90468	//     },
90469	//     "deviceName": {
90470	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
90471	//       "location": "query",
90472	//       "pattern": "\\w[\\w.-]{0,254}",
90473	//       "required": true,
90474	//       "type": "string"
90475	//     },
90476	//     "instance": {
90477	//       "description": "The instance name for this request.",
90478	//       "location": "path",
90479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90480	//       "required": true,
90481	//       "type": "string"
90482	//     },
90483	//     "project": {
90484	//       "description": "Project ID for this request.",
90485	//       "location": "path",
90486	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90487	//       "required": true,
90488	//       "type": "string"
90489	//     },
90490	//     "requestId": {
90491	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90492	//       "location": "query",
90493	//       "type": "string"
90494	//     },
90495	//     "zone": {
90496	//       "description": "The name of the zone for this request.",
90497	//       "location": "path",
90498	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90499	//       "required": true,
90500	//       "type": "string"
90501	//     }
90502	//   },
90503	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
90504	//   "response": {
90505	//     "$ref": "Operation"
90506	//   },
90507	//   "scopes": [
90508	//     "https://www.googleapis.com/auth/cloud-platform",
90509	//     "https://www.googleapis.com/auth/compute"
90510	//   ]
90511	// }
90512
90513}
90514
90515// method id "compute.instances.setIamPolicy":
90516
90517type InstancesSetIamPolicyCall struct {
90518	s                    *Service
90519	project              string
90520	zone                 string
90521	resource             string
90522	zonesetpolicyrequest *ZoneSetPolicyRequest
90523	urlParams_           gensupport.URLParams
90524	ctx_                 context.Context
90525	header_              http.Header
90526}
90527
90528// SetIamPolicy: Sets the access control policy on the specified
90529// resource. Replaces any existing policy.
90530func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
90531	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90532	c.project = project
90533	c.zone = zone
90534	c.resource = resource
90535	c.zonesetpolicyrequest = zonesetpolicyrequest
90536	return c
90537}
90538
90539// Fields allows partial responses to be retrieved. See
90540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90541// for more information.
90542func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
90543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90544	return c
90545}
90546
90547// Context sets the context to be used in this call's Do method. Any
90548// pending HTTP request will be aborted if the provided context is
90549// canceled.
90550func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
90551	c.ctx_ = ctx
90552	return c
90553}
90554
90555// Header returns an http.Header that can be modified by the caller to
90556// add HTTP headers to the request.
90557func (c *InstancesSetIamPolicyCall) Header() http.Header {
90558	if c.header_ == nil {
90559		c.header_ = make(http.Header)
90560	}
90561	return c.header_
90562}
90563
90564func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
90565	reqHeaders := make(http.Header)
90566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
90567	for k, v := range c.header_ {
90568		reqHeaders[k] = v
90569	}
90570	reqHeaders.Set("User-Agent", c.s.userAgent())
90571	var body io.Reader = nil
90572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
90573	if err != nil {
90574		return nil, err
90575	}
90576	reqHeaders.Set("Content-Type", "application/json")
90577	c.urlParams_.Set("alt", alt)
90578	c.urlParams_.Set("prettyPrint", "false")
90579	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setIamPolicy")
90580	urls += "?" + c.urlParams_.Encode()
90581	req, err := http.NewRequest("POST", urls, body)
90582	if err != nil {
90583		return nil, err
90584	}
90585	req.Header = reqHeaders
90586	googleapi.Expand(req.URL, map[string]string{
90587		"project":  c.project,
90588		"zone":     c.zone,
90589		"resource": c.resource,
90590	})
90591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90592}
90593
90594// Do executes the "compute.instances.setIamPolicy" call.
90595// Exactly one of *Policy or error will be non-nil. Any non-2xx status
90596// code is an error. Response headers are in either
90597// *Policy.ServerResponse.Header or (if a response was returned at all)
90598// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
90599// check whether the returned error was because http.StatusNotModified
90600// was returned.
90601func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
90602	gensupport.SetOptions(c.urlParams_, opts...)
90603	res, err := c.doRequest("json")
90604	if res != nil && res.StatusCode == http.StatusNotModified {
90605		if res.Body != nil {
90606			res.Body.Close()
90607		}
90608		return nil, &googleapi.Error{
90609			Code:   res.StatusCode,
90610			Header: res.Header,
90611		}
90612	}
90613	if err != nil {
90614		return nil, err
90615	}
90616	defer googleapi.CloseBody(res)
90617	if err := googleapi.CheckResponse(res); err != nil {
90618		return nil, err
90619	}
90620	ret := &Policy{
90621		ServerResponse: googleapi.ServerResponse{
90622			Header:         res.Header,
90623			HTTPStatusCode: res.StatusCode,
90624		},
90625	}
90626	target := &ret
90627	if err := gensupport.DecodeResponse(target, res); err != nil {
90628		return nil, err
90629	}
90630	return ret, nil
90631	// {
90632	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
90633	//   "httpMethod": "POST",
90634	//   "id": "compute.instances.setIamPolicy",
90635	//   "parameterOrder": [
90636	//     "project",
90637	//     "zone",
90638	//     "resource"
90639	//   ],
90640	//   "parameters": {
90641	//     "project": {
90642	//       "description": "Project ID for this request.",
90643	//       "location": "path",
90644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90645	//       "required": true,
90646	//       "type": "string"
90647	//     },
90648	//     "resource": {
90649	//       "description": "Name or id of the resource for this request.",
90650	//       "location": "path",
90651	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90652	//       "required": true,
90653	//       "type": "string"
90654	//     },
90655	//     "zone": {
90656	//       "description": "The name of the zone for this request.",
90657	//       "location": "path",
90658	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90659	//       "required": true,
90660	//       "type": "string"
90661	//     }
90662	//   },
90663	//   "path": "{project}/zones/{zone}/instances/{resource}/setIamPolicy",
90664	//   "request": {
90665	//     "$ref": "ZoneSetPolicyRequest"
90666	//   },
90667	//   "response": {
90668	//     "$ref": "Policy"
90669	//   },
90670	//   "scopes": [
90671	//     "https://www.googleapis.com/auth/cloud-platform",
90672	//     "https://www.googleapis.com/auth/compute"
90673	//   ]
90674	// }
90675
90676}
90677
90678// method id "compute.instances.setLabels":
90679
90680type InstancesSetLabelsCall struct {
90681	s                         *Service
90682	project                   string
90683	zone                      string
90684	instance                  string
90685	instancessetlabelsrequest *InstancesSetLabelsRequest
90686	urlParams_                gensupport.URLParams
90687	ctx_                      context.Context
90688	header_                   http.Header
90689}
90690
90691// SetLabels: Sets labels on an instance. To learn more about labels,
90692// read the Labeling Resources documentation.
90693func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
90694	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90695	c.project = project
90696	c.zone = zone
90697	c.instance = instance
90698	c.instancessetlabelsrequest = instancessetlabelsrequest
90699	return c
90700}
90701
90702// RequestId sets the optional parameter "requestId": An optional
90703// request ID to identify requests. Specify a unique request ID so that
90704// if you must retry your request, the server will know to ignore the
90705// request if it has already been completed.
90706//
90707// For example, consider a situation where you make an initial request
90708// and the request times out. If you make the request again with the
90709// same request ID, the server can check if original operation with the
90710// same request ID was received, and if so, will ignore the second
90711// request. This prevents clients from accidentally creating duplicate
90712// commitments.
90713//
90714// The request ID must be a valid UUID with the exception that zero UUID
90715// is not supported (00000000-0000-0000-0000-000000000000).
90716func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
90717	c.urlParams_.Set("requestId", requestId)
90718	return c
90719}
90720
90721// Fields allows partial responses to be retrieved. See
90722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90723// for more information.
90724func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
90725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90726	return c
90727}
90728
90729// Context sets the context to be used in this call's Do method. Any
90730// pending HTTP request will be aborted if the provided context is
90731// canceled.
90732func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
90733	c.ctx_ = ctx
90734	return c
90735}
90736
90737// Header returns an http.Header that can be modified by the caller to
90738// add HTTP headers to the request.
90739func (c *InstancesSetLabelsCall) Header() http.Header {
90740	if c.header_ == nil {
90741		c.header_ = make(http.Header)
90742	}
90743	return c.header_
90744}
90745
90746func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
90747	reqHeaders := make(http.Header)
90748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
90749	for k, v := range c.header_ {
90750		reqHeaders[k] = v
90751	}
90752	reqHeaders.Set("User-Agent", c.s.userAgent())
90753	var body io.Reader = nil
90754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
90755	if err != nil {
90756		return nil, err
90757	}
90758	reqHeaders.Set("Content-Type", "application/json")
90759	c.urlParams_.Set("alt", alt)
90760	c.urlParams_.Set("prettyPrint", "false")
90761	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
90762	urls += "?" + c.urlParams_.Encode()
90763	req, err := http.NewRequest("POST", urls, body)
90764	if err != nil {
90765		return nil, err
90766	}
90767	req.Header = reqHeaders
90768	googleapi.Expand(req.URL, map[string]string{
90769		"project":  c.project,
90770		"zone":     c.zone,
90771		"instance": c.instance,
90772	})
90773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90774}
90775
90776// Do executes the "compute.instances.setLabels" call.
90777// Exactly one of *Operation or error will be non-nil. Any non-2xx
90778// status code is an error. Response headers are in either
90779// *Operation.ServerResponse.Header or (if a response was returned at
90780// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90781// to check whether the returned error was because
90782// http.StatusNotModified was returned.
90783func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90784	gensupport.SetOptions(c.urlParams_, opts...)
90785	res, err := c.doRequest("json")
90786	if res != nil && res.StatusCode == http.StatusNotModified {
90787		if res.Body != nil {
90788			res.Body.Close()
90789		}
90790		return nil, &googleapi.Error{
90791			Code:   res.StatusCode,
90792			Header: res.Header,
90793		}
90794	}
90795	if err != nil {
90796		return nil, err
90797	}
90798	defer googleapi.CloseBody(res)
90799	if err := googleapi.CheckResponse(res); err != nil {
90800		return nil, err
90801	}
90802	ret := &Operation{
90803		ServerResponse: googleapi.ServerResponse{
90804			Header:         res.Header,
90805			HTTPStatusCode: res.StatusCode,
90806		},
90807	}
90808	target := &ret
90809	if err := gensupport.DecodeResponse(target, res); err != nil {
90810		return nil, err
90811	}
90812	return ret, nil
90813	// {
90814	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
90815	//   "httpMethod": "POST",
90816	//   "id": "compute.instances.setLabels",
90817	//   "parameterOrder": [
90818	//     "project",
90819	//     "zone",
90820	//     "instance"
90821	//   ],
90822	//   "parameters": {
90823	//     "instance": {
90824	//       "description": "Name of the instance scoping this request.",
90825	//       "location": "path",
90826	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90827	//       "required": true,
90828	//       "type": "string"
90829	//     },
90830	//     "project": {
90831	//       "description": "Project ID for this request.",
90832	//       "location": "path",
90833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90834	//       "required": true,
90835	//       "type": "string"
90836	//     },
90837	//     "requestId": {
90838	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90839	//       "location": "query",
90840	//       "type": "string"
90841	//     },
90842	//     "zone": {
90843	//       "description": "The name of the zone for this request.",
90844	//       "location": "path",
90845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90846	//       "required": true,
90847	//       "type": "string"
90848	//     }
90849	//   },
90850	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
90851	//   "request": {
90852	//     "$ref": "InstancesSetLabelsRequest"
90853	//   },
90854	//   "response": {
90855	//     "$ref": "Operation"
90856	//   },
90857	//   "scopes": [
90858	//     "https://www.googleapis.com/auth/cloud-platform",
90859	//     "https://www.googleapis.com/auth/compute"
90860	//   ]
90861	// }
90862
90863}
90864
90865// method id "compute.instances.setMachineResources":
90866
90867type InstancesSetMachineResourcesCall struct {
90868	s                                   *Service
90869	project                             string
90870	zone                                string
90871	instance                            string
90872	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
90873	urlParams_                          gensupport.URLParams
90874	ctx_                                context.Context
90875	header_                             http.Header
90876}
90877
90878// SetMachineResources: Changes the number and/or type of accelerator
90879// for a stopped instance to the values specified in the request.
90880func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
90881	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90882	c.project = project
90883	c.zone = zone
90884	c.instance = instance
90885	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
90886	return c
90887}
90888
90889// RequestId sets the optional parameter "requestId": An optional
90890// request ID to identify requests. Specify a unique request ID so that
90891// if you must retry your request, the server will know to ignore the
90892// request if it has already been completed.
90893//
90894// For example, consider a situation where you make an initial request
90895// and the request times out. If you make the request again with the
90896// same request ID, the server can check if original operation with the
90897// same request ID was received, and if so, will ignore the second
90898// request. This prevents clients from accidentally creating duplicate
90899// commitments.
90900//
90901// The request ID must be a valid UUID with the exception that zero UUID
90902// is not supported (00000000-0000-0000-0000-000000000000).
90903func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
90904	c.urlParams_.Set("requestId", requestId)
90905	return c
90906}
90907
90908// Fields allows partial responses to be retrieved. See
90909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90910// for more information.
90911func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
90912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90913	return c
90914}
90915
90916// Context sets the context to be used in this call's Do method. Any
90917// pending HTTP request will be aborted if the provided context is
90918// canceled.
90919func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
90920	c.ctx_ = ctx
90921	return c
90922}
90923
90924// Header returns an http.Header that can be modified by the caller to
90925// add HTTP headers to the request.
90926func (c *InstancesSetMachineResourcesCall) Header() http.Header {
90927	if c.header_ == nil {
90928		c.header_ = make(http.Header)
90929	}
90930	return c.header_
90931}
90932
90933func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
90934	reqHeaders := make(http.Header)
90935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
90936	for k, v := range c.header_ {
90937		reqHeaders[k] = v
90938	}
90939	reqHeaders.Set("User-Agent", c.s.userAgent())
90940	var body io.Reader = nil
90941	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
90942	if err != nil {
90943		return nil, err
90944	}
90945	reqHeaders.Set("Content-Type", "application/json")
90946	c.urlParams_.Set("alt", alt)
90947	c.urlParams_.Set("prettyPrint", "false")
90948	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
90949	urls += "?" + c.urlParams_.Encode()
90950	req, err := http.NewRequest("POST", urls, body)
90951	if err != nil {
90952		return nil, err
90953	}
90954	req.Header = reqHeaders
90955	googleapi.Expand(req.URL, map[string]string{
90956		"project":  c.project,
90957		"zone":     c.zone,
90958		"instance": c.instance,
90959	})
90960	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90961}
90962
90963// Do executes the "compute.instances.setMachineResources" call.
90964// Exactly one of *Operation or error will be non-nil. Any non-2xx
90965// status code is an error. Response headers are in either
90966// *Operation.ServerResponse.Header or (if a response was returned at
90967// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90968// to check whether the returned error was because
90969// http.StatusNotModified was returned.
90970func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90971	gensupport.SetOptions(c.urlParams_, opts...)
90972	res, err := c.doRequest("json")
90973	if res != nil && res.StatusCode == http.StatusNotModified {
90974		if res.Body != nil {
90975			res.Body.Close()
90976		}
90977		return nil, &googleapi.Error{
90978			Code:   res.StatusCode,
90979			Header: res.Header,
90980		}
90981	}
90982	if err != nil {
90983		return nil, err
90984	}
90985	defer googleapi.CloseBody(res)
90986	if err := googleapi.CheckResponse(res); err != nil {
90987		return nil, err
90988	}
90989	ret := &Operation{
90990		ServerResponse: googleapi.ServerResponse{
90991			Header:         res.Header,
90992			HTTPStatusCode: res.StatusCode,
90993		},
90994	}
90995	target := &ret
90996	if err := gensupport.DecodeResponse(target, res); err != nil {
90997		return nil, err
90998	}
90999	return ret, nil
91000	// {
91001	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
91002	//   "httpMethod": "POST",
91003	//   "id": "compute.instances.setMachineResources",
91004	//   "parameterOrder": [
91005	//     "project",
91006	//     "zone",
91007	//     "instance"
91008	//   ],
91009	//   "parameters": {
91010	//     "instance": {
91011	//       "description": "Name of the instance scoping this request.",
91012	//       "location": "path",
91013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91014	//       "required": true,
91015	//       "type": "string"
91016	//     },
91017	//     "project": {
91018	//       "description": "Project ID for this request.",
91019	//       "location": "path",
91020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91021	//       "required": true,
91022	//       "type": "string"
91023	//     },
91024	//     "requestId": {
91025	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91026	//       "location": "query",
91027	//       "type": "string"
91028	//     },
91029	//     "zone": {
91030	//       "description": "The name of the zone for this request.",
91031	//       "location": "path",
91032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91033	//       "required": true,
91034	//       "type": "string"
91035	//     }
91036	//   },
91037	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
91038	//   "request": {
91039	//     "$ref": "InstancesSetMachineResourcesRequest"
91040	//   },
91041	//   "response": {
91042	//     "$ref": "Operation"
91043	//   },
91044	//   "scopes": [
91045	//     "https://www.googleapis.com/auth/cloud-platform",
91046	//     "https://www.googleapis.com/auth/compute"
91047	//   ]
91048	// }
91049
91050}
91051
91052// method id "compute.instances.setMachineType":
91053
91054type InstancesSetMachineTypeCall struct {
91055	s                              *Service
91056	project                        string
91057	zone                           string
91058	instance                       string
91059	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
91060	urlParams_                     gensupport.URLParams
91061	ctx_                           context.Context
91062	header_                        http.Header
91063}
91064
91065// SetMachineType: Changes the machine type for a stopped instance to
91066// the machine type specified in the request.
91067func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
91068	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91069	c.project = project
91070	c.zone = zone
91071	c.instance = instance
91072	c.instancessetmachinetyperequest = instancessetmachinetyperequest
91073	return c
91074}
91075
91076// RequestId sets the optional parameter "requestId": An optional
91077// request ID to identify requests. Specify a unique request ID so that
91078// if you must retry your request, the server will know to ignore the
91079// request if it has already been completed.
91080//
91081// For example, consider a situation where you make an initial request
91082// and the request times out. If you make the request again with the
91083// same request ID, the server can check if original operation with the
91084// same request ID was received, and if so, will ignore the second
91085// request. This prevents clients from accidentally creating duplicate
91086// commitments.
91087//
91088// The request ID must be a valid UUID with the exception that zero UUID
91089// is not supported (00000000-0000-0000-0000-000000000000).
91090func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
91091	c.urlParams_.Set("requestId", requestId)
91092	return c
91093}
91094
91095// Fields allows partial responses to be retrieved. See
91096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91097// for more information.
91098func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
91099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91100	return c
91101}
91102
91103// Context sets the context to be used in this call's Do method. Any
91104// pending HTTP request will be aborted if the provided context is
91105// canceled.
91106func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
91107	c.ctx_ = ctx
91108	return c
91109}
91110
91111// Header returns an http.Header that can be modified by the caller to
91112// add HTTP headers to the request.
91113func (c *InstancesSetMachineTypeCall) Header() http.Header {
91114	if c.header_ == nil {
91115		c.header_ = make(http.Header)
91116	}
91117	return c.header_
91118}
91119
91120func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
91121	reqHeaders := make(http.Header)
91122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
91123	for k, v := range c.header_ {
91124		reqHeaders[k] = v
91125	}
91126	reqHeaders.Set("User-Agent", c.s.userAgent())
91127	var body io.Reader = nil
91128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
91129	if err != nil {
91130		return nil, err
91131	}
91132	reqHeaders.Set("Content-Type", "application/json")
91133	c.urlParams_.Set("alt", alt)
91134	c.urlParams_.Set("prettyPrint", "false")
91135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
91136	urls += "?" + c.urlParams_.Encode()
91137	req, err := http.NewRequest("POST", urls, body)
91138	if err != nil {
91139		return nil, err
91140	}
91141	req.Header = reqHeaders
91142	googleapi.Expand(req.URL, map[string]string{
91143		"project":  c.project,
91144		"zone":     c.zone,
91145		"instance": c.instance,
91146	})
91147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91148}
91149
91150// Do executes the "compute.instances.setMachineType" call.
91151// Exactly one of *Operation or error will be non-nil. Any non-2xx
91152// status code is an error. Response headers are in either
91153// *Operation.ServerResponse.Header or (if a response was returned at
91154// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91155// to check whether the returned error was because
91156// http.StatusNotModified was returned.
91157func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91158	gensupport.SetOptions(c.urlParams_, opts...)
91159	res, err := c.doRequest("json")
91160	if res != nil && res.StatusCode == http.StatusNotModified {
91161		if res.Body != nil {
91162			res.Body.Close()
91163		}
91164		return nil, &googleapi.Error{
91165			Code:   res.StatusCode,
91166			Header: res.Header,
91167		}
91168	}
91169	if err != nil {
91170		return nil, err
91171	}
91172	defer googleapi.CloseBody(res)
91173	if err := googleapi.CheckResponse(res); err != nil {
91174		return nil, err
91175	}
91176	ret := &Operation{
91177		ServerResponse: googleapi.ServerResponse{
91178			Header:         res.Header,
91179			HTTPStatusCode: res.StatusCode,
91180		},
91181	}
91182	target := &ret
91183	if err := gensupport.DecodeResponse(target, res); err != nil {
91184		return nil, err
91185	}
91186	return ret, nil
91187	// {
91188	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
91189	//   "httpMethod": "POST",
91190	//   "id": "compute.instances.setMachineType",
91191	//   "parameterOrder": [
91192	//     "project",
91193	//     "zone",
91194	//     "instance"
91195	//   ],
91196	//   "parameters": {
91197	//     "instance": {
91198	//       "description": "Name of the instance scoping this request.",
91199	//       "location": "path",
91200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91201	//       "required": true,
91202	//       "type": "string"
91203	//     },
91204	//     "project": {
91205	//       "description": "Project ID for this request.",
91206	//       "location": "path",
91207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91208	//       "required": true,
91209	//       "type": "string"
91210	//     },
91211	//     "requestId": {
91212	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91213	//       "location": "query",
91214	//       "type": "string"
91215	//     },
91216	//     "zone": {
91217	//       "description": "The name of the zone for this request.",
91218	//       "location": "path",
91219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91220	//       "required": true,
91221	//       "type": "string"
91222	//     }
91223	//   },
91224	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
91225	//   "request": {
91226	//     "$ref": "InstancesSetMachineTypeRequest"
91227	//   },
91228	//   "response": {
91229	//     "$ref": "Operation"
91230	//   },
91231	//   "scopes": [
91232	//     "https://www.googleapis.com/auth/cloud-platform",
91233	//     "https://www.googleapis.com/auth/compute"
91234	//   ]
91235	// }
91236
91237}
91238
91239// method id "compute.instances.setMetadata":
91240
91241type InstancesSetMetadataCall struct {
91242	s          *Service
91243	project    string
91244	zone       string
91245	instance   string
91246	metadata   *Metadata
91247	urlParams_ gensupport.URLParams
91248	ctx_       context.Context
91249	header_    http.Header
91250}
91251
91252// SetMetadata: Sets metadata for the specified instance to the data
91253// included in the request.
91254// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
91255func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
91256	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91257	c.project = project
91258	c.zone = zone
91259	c.instance = instance
91260	c.metadata = metadata
91261	return c
91262}
91263
91264// RequestId sets the optional parameter "requestId": An optional
91265// request ID to identify requests. Specify a unique request ID so that
91266// if you must retry your request, the server will know to ignore the
91267// request if it has already been completed.
91268//
91269// For example, consider a situation where you make an initial request
91270// and the request times out. If you make the request again with the
91271// same request ID, the server can check if original operation with the
91272// same request ID was received, and if so, will ignore the second
91273// request. This prevents clients from accidentally creating duplicate
91274// commitments.
91275//
91276// The request ID must be a valid UUID with the exception that zero UUID
91277// is not supported (00000000-0000-0000-0000-000000000000).
91278func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
91279	c.urlParams_.Set("requestId", requestId)
91280	return c
91281}
91282
91283// Fields allows partial responses to be retrieved. See
91284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91285// for more information.
91286func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
91287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91288	return c
91289}
91290
91291// Context sets the context to be used in this call's Do method. Any
91292// pending HTTP request will be aborted if the provided context is
91293// canceled.
91294func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
91295	c.ctx_ = ctx
91296	return c
91297}
91298
91299// Header returns an http.Header that can be modified by the caller to
91300// add HTTP headers to the request.
91301func (c *InstancesSetMetadataCall) Header() http.Header {
91302	if c.header_ == nil {
91303		c.header_ = make(http.Header)
91304	}
91305	return c.header_
91306}
91307
91308func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
91309	reqHeaders := make(http.Header)
91310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
91311	for k, v := range c.header_ {
91312		reqHeaders[k] = v
91313	}
91314	reqHeaders.Set("User-Agent", c.s.userAgent())
91315	var body io.Reader = nil
91316	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
91317	if err != nil {
91318		return nil, err
91319	}
91320	reqHeaders.Set("Content-Type", "application/json")
91321	c.urlParams_.Set("alt", alt)
91322	c.urlParams_.Set("prettyPrint", "false")
91323	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
91324	urls += "?" + c.urlParams_.Encode()
91325	req, err := http.NewRequest("POST", urls, body)
91326	if err != nil {
91327		return nil, err
91328	}
91329	req.Header = reqHeaders
91330	googleapi.Expand(req.URL, map[string]string{
91331		"project":  c.project,
91332		"zone":     c.zone,
91333		"instance": c.instance,
91334	})
91335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91336}
91337
91338// Do executes the "compute.instances.setMetadata" call.
91339// Exactly one of *Operation or error will be non-nil. Any non-2xx
91340// status code is an error. Response headers are in either
91341// *Operation.ServerResponse.Header or (if a response was returned at
91342// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91343// to check whether the returned error was because
91344// http.StatusNotModified was returned.
91345func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91346	gensupport.SetOptions(c.urlParams_, opts...)
91347	res, err := c.doRequest("json")
91348	if res != nil && res.StatusCode == http.StatusNotModified {
91349		if res.Body != nil {
91350			res.Body.Close()
91351		}
91352		return nil, &googleapi.Error{
91353			Code:   res.StatusCode,
91354			Header: res.Header,
91355		}
91356	}
91357	if err != nil {
91358		return nil, err
91359	}
91360	defer googleapi.CloseBody(res)
91361	if err := googleapi.CheckResponse(res); err != nil {
91362		return nil, err
91363	}
91364	ret := &Operation{
91365		ServerResponse: googleapi.ServerResponse{
91366			Header:         res.Header,
91367			HTTPStatusCode: res.StatusCode,
91368		},
91369	}
91370	target := &ret
91371	if err := gensupport.DecodeResponse(target, res); err != nil {
91372		return nil, err
91373	}
91374	return ret, nil
91375	// {
91376	//   "description": "Sets metadata for the specified instance to the data included in the request.",
91377	//   "httpMethod": "POST",
91378	//   "id": "compute.instances.setMetadata",
91379	//   "parameterOrder": [
91380	//     "project",
91381	//     "zone",
91382	//     "instance"
91383	//   ],
91384	//   "parameters": {
91385	//     "instance": {
91386	//       "description": "Name of the instance scoping this request.",
91387	//       "location": "path",
91388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91389	//       "required": true,
91390	//       "type": "string"
91391	//     },
91392	//     "project": {
91393	//       "description": "Project ID for this request.",
91394	//       "location": "path",
91395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91396	//       "required": true,
91397	//       "type": "string"
91398	//     },
91399	//     "requestId": {
91400	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91401	//       "location": "query",
91402	//       "type": "string"
91403	//     },
91404	//     "zone": {
91405	//       "description": "The name of the zone for this request.",
91406	//       "location": "path",
91407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91408	//       "required": true,
91409	//       "type": "string"
91410	//     }
91411	//   },
91412	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
91413	//   "request": {
91414	//     "$ref": "Metadata"
91415	//   },
91416	//   "response": {
91417	//     "$ref": "Operation"
91418	//   },
91419	//   "scopes": [
91420	//     "https://www.googleapis.com/auth/cloud-platform",
91421	//     "https://www.googleapis.com/auth/compute"
91422	//   ]
91423	// }
91424
91425}
91426
91427// method id "compute.instances.setMinCpuPlatform":
91428
91429type InstancesSetMinCpuPlatformCall struct {
91430	s                                 *Service
91431	project                           string
91432	zone                              string
91433	instance                          string
91434	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
91435	urlParams_                        gensupport.URLParams
91436	ctx_                              context.Context
91437	header_                           http.Header
91438}
91439
91440// SetMinCpuPlatform: Changes the minimum CPU platform that this
91441// instance should use. This method can only be called on a stopped
91442// instance. For more information, read Specifying a Minimum CPU
91443// Platform.
91444func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
91445	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91446	c.project = project
91447	c.zone = zone
91448	c.instance = instance
91449	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
91450	return c
91451}
91452
91453// RequestId sets the optional parameter "requestId": An optional
91454// request ID to identify requests. Specify a unique request ID so that
91455// if you must retry your request, the server will know to ignore the
91456// request if it has already been completed.
91457//
91458// For example, consider a situation where you make an initial request
91459// and the request times out. If you make the request again with the
91460// same request ID, the server can check if original operation with the
91461// same request ID was received, and if so, will ignore the second
91462// request. This prevents clients from accidentally creating duplicate
91463// commitments.
91464//
91465// The request ID must be a valid UUID with the exception that zero UUID
91466// is not supported (00000000-0000-0000-0000-000000000000).
91467func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
91468	c.urlParams_.Set("requestId", requestId)
91469	return c
91470}
91471
91472// Fields allows partial responses to be retrieved. See
91473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91474// for more information.
91475func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
91476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91477	return c
91478}
91479
91480// Context sets the context to be used in this call's Do method. Any
91481// pending HTTP request will be aborted if the provided context is
91482// canceled.
91483func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
91484	c.ctx_ = ctx
91485	return c
91486}
91487
91488// Header returns an http.Header that can be modified by the caller to
91489// add HTTP headers to the request.
91490func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
91491	if c.header_ == nil {
91492		c.header_ = make(http.Header)
91493	}
91494	return c.header_
91495}
91496
91497func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
91498	reqHeaders := make(http.Header)
91499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
91500	for k, v := range c.header_ {
91501		reqHeaders[k] = v
91502	}
91503	reqHeaders.Set("User-Agent", c.s.userAgent())
91504	var body io.Reader = nil
91505	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
91506	if err != nil {
91507		return nil, err
91508	}
91509	reqHeaders.Set("Content-Type", "application/json")
91510	c.urlParams_.Set("alt", alt)
91511	c.urlParams_.Set("prettyPrint", "false")
91512	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
91513	urls += "?" + c.urlParams_.Encode()
91514	req, err := http.NewRequest("POST", urls, body)
91515	if err != nil {
91516		return nil, err
91517	}
91518	req.Header = reqHeaders
91519	googleapi.Expand(req.URL, map[string]string{
91520		"project":  c.project,
91521		"zone":     c.zone,
91522		"instance": c.instance,
91523	})
91524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91525}
91526
91527// Do executes the "compute.instances.setMinCpuPlatform" call.
91528// Exactly one of *Operation or error will be non-nil. Any non-2xx
91529// status code is an error. Response headers are in either
91530// *Operation.ServerResponse.Header or (if a response was returned at
91531// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91532// to check whether the returned error was because
91533// http.StatusNotModified was returned.
91534func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91535	gensupport.SetOptions(c.urlParams_, opts...)
91536	res, err := c.doRequest("json")
91537	if res != nil && res.StatusCode == http.StatusNotModified {
91538		if res.Body != nil {
91539			res.Body.Close()
91540		}
91541		return nil, &googleapi.Error{
91542			Code:   res.StatusCode,
91543			Header: res.Header,
91544		}
91545	}
91546	if err != nil {
91547		return nil, err
91548	}
91549	defer googleapi.CloseBody(res)
91550	if err := googleapi.CheckResponse(res); err != nil {
91551		return nil, err
91552	}
91553	ret := &Operation{
91554		ServerResponse: googleapi.ServerResponse{
91555			Header:         res.Header,
91556			HTTPStatusCode: res.StatusCode,
91557		},
91558	}
91559	target := &ret
91560	if err := gensupport.DecodeResponse(target, res); err != nil {
91561		return nil, err
91562	}
91563	return ret, nil
91564	// {
91565	//   "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.",
91566	//   "httpMethod": "POST",
91567	//   "id": "compute.instances.setMinCpuPlatform",
91568	//   "parameterOrder": [
91569	//     "project",
91570	//     "zone",
91571	//     "instance"
91572	//   ],
91573	//   "parameters": {
91574	//     "instance": {
91575	//       "description": "Name of the instance scoping this request.",
91576	//       "location": "path",
91577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91578	//       "required": true,
91579	//       "type": "string"
91580	//     },
91581	//     "project": {
91582	//       "description": "Project ID for this request.",
91583	//       "location": "path",
91584	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91585	//       "required": true,
91586	//       "type": "string"
91587	//     },
91588	//     "requestId": {
91589	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91590	//       "location": "query",
91591	//       "type": "string"
91592	//     },
91593	//     "zone": {
91594	//       "description": "The name of the zone for this request.",
91595	//       "location": "path",
91596	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91597	//       "required": true,
91598	//       "type": "string"
91599	//     }
91600	//   },
91601	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
91602	//   "request": {
91603	//     "$ref": "InstancesSetMinCpuPlatformRequest"
91604	//   },
91605	//   "response": {
91606	//     "$ref": "Operation"
91607	//   },
91608	//   "scopes": [
91609	//     "https://www.googleapis.com/auth/cloud-platform",
91610	//     "https://www.googleapis.com/auth/compute"
91611	//   ]
91612	// }
91613
91614}
91615
91616// method id "compute.instances.setName":
91617
91618type InstancesSetNameCall struct {
91619	s                       *Service
91620	project                 string
91621	zone                    string
91622	instance                string
91623	instancessetnamerequest *InstancesSetNameRequest
91624	urlParams_              gensupport.URLParams
91625	ctx_                    context.Context
91626	header_                 http.Header
91627}
91628
91629// SetName: Sets name of an instance.
91630func (r *InstancesService) SetName(project string, zone string, instance string, instancessetnamerequest *InstancesSetNameRequest) *InstancesSetNameCall {
91631	c := &InstancesSetNameCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91632	c.project = project
91633	c.zone = zone
91634	c.instance = instance
91635	c.instancessetnamerequest = instancessetnamerequest
91636	return c
91637}
91638
91639// RequestId sets the optional parameter "requestId": An optional
91640// request ID to identify requests. Specify a unique request ID so that
91641// if you must retry your request, the server will know to ignore the
91642// request if it has already been completed.
91643//
91644// For example, consider a situation where you make an initial request
91645// and the request times out. If you make the request again with the
91646// same request ID, the server can check if original operation with the
91647// same request ID was received, and if so, will ignore the second
91648// request. This prevents clients from accidentally creating duplicate
91649// commitments.
91650//
91651// The request ID must be a valid UUID with the exception that zero UUID
91652// is not supported (00000000-0000-0000-0000-000000000000).
91653func (c *InstancesSetNameCall) RequestId(requestId string) *InstancesSetNameCall {
91654	c.urlParams_.Set("requestId", requestId)
91655	return c
91656}
91657
91658// Fields allows partial responses to be retrieved. See
91659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91660// for more information.
91661func (c *InstancesSetNameCall) Fields(s ...googleapi.Field) *InstancesSetNameCall {
91662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91663	return c
91664}
91665
91666// Context sets the context to be used in this call's Do method. Any
91667// pending HTTP request will be aborted if the provided context is
91668// canceled.
91669func (c *InstancesSetNameCall) Context(ctx context.Context) *InstancesSetNameCall {
91670	c.ctx_ = ctx
91671	return c
91672}
91673
91674// Header returns an http.Header that can be modified by the caller to
91675// add HTTP headers to the request.
91676func (c *InstancesSetNameCall) Header() http.Header {
91677	if c.header_ == nil {
91678		c.header_ = make(http.Header)
91679	}
91680	return c.header_
91681}
91682
91683func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) {
91684	reqHeaders := make(http.Header)
91685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
91686	for k, v := range c.header_ {
91687		reqHeaders[k] = v
91688	}
91689	reqHeaders.Set("User-Agent", c.s.userAgent())
91690	var body io.Reader = nil
91691	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetnamerequest)
91692	if err != nil {
91693		return nil, err
91694	}
91695	reqHeaders.Set("Content-Type", "application/json")
91696	c.urlParams_.Set("alt", alt)
91697	c.urlParams_.Set("prettyPrint", "false")
91698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setName")
91699	urls += "?" + c.urlParams_.Encode()
91700	req, err := http.NewRequest("POST", urls, body)
91701	if err != nil {
91702		return nil, err
91703	}
91704	req.Header = reqHeaders
91705	googleapi.Expand(req.URL, map[string]string{
91706		"project":  c.project,
91707		"zone":     c.zone,
91708		"instance": c.instance,
91709	})
91710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91711}
91712
91713// Do executes the "compute.instances.setName" call.
91714// Exactly one of *Operation or error will be non-nil. Any non-2xx
91715// status code is an error. Response headers are in either
91716// *Operation.ServerResponse.Header or (if a response was returned at
91717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91718// to check whether the returned error was because
91719// http.StatusNotModified was returned.
91720func (c *InstancesSetNameCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91721	gensupport.SetOptions(c.urlParams_, opts...)
91722	res, err := c.doRequest("json")
91723	if res != nil && res.StatusCode == http.StatusNotModified {
91724		if res.Body != nil {
91725			res.Body.Close()
91726		}
91727		return nil, &googleapi.Error{
91728			Code:   res.StatusCode,
91729			Header: res.Header,
91730		}
91731	}
91732	if err != nil {
91733		return nil, err
91734	}
91735	defer googleapi.CloseBody(res)
91736	if err := googleapi.CheckResponse(res); err != nil {
91737		return nil, err
91738	}
91739	ret := &Operation{
91740		ServerResponse: googleapi.ServerResponse{
91741			Header:         res.Header,
91742			HTTPStatusCode: res.StatusCode,
91743		},
91744	}
91745	target := &ret
91746	if err := gensupport.DecodeResponse(target, res); err != nil {
91747		return nil, err
91748	}
91749	return ret, nil
91750	// {
91751	//   "description": "Sets name of an instance.",
91752	//   "httpMethod": "POST",
91753	//   "id": "compute.instances.setName",
91754	//   "parameterOrder": [
91755	//     "project",
91756	//     "zone",
91757	//     "instance"
91758	//   ],
91759	//   "parameters": {
91760	//     "instance": {
91761	//       "description": "The instance name for this request.",
91762	//       "location": "path",
91763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91764	//       "required": true,
91765	//       "type": "string"
91766	//     },
91767	//     "project": {
91768	//       "description": "Project ID for this request.",
91769	//       "location": "path",
91770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91771	//       "required": true,
91772	//       "type": "string"
91773	//     },
91774	//     "requestId": {
91775	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91776	//       "location": "query",
91777	//       "type": "string"
91778	//     },
91779	//     "zone": {
91780	//       "description": "The name of the zone for this request.",
91781	//       "location": "path",
91782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91783	//       "required": true,
91784	//       "type": "string"
91785	//     }
91786	//   },
91787	//   "path": "{project}/zones/{zone}/instances/{instance}/setName",
91788	//   "request": {
91789	//     "$ref": "InstancesSetNameRequest"
91790	//   },
91791	//   "response": {
91792	//     "$ref": "Operation"
91793	//   },
91794	//   "scopes": [
91795	//     "https://www.googleapis.com/auth/cloud-platform",
91796	//     "https://www.googleapis.com/auth/compute"
91797	//   ]
91798	// }
91799
91800}
91801
91802// method id "compute.instances.setScheduling":
91803
91804type InstancesSetSchedulingCall struct {
91805	s          *Service
91806	project    string
91807	zone       string
91808	instance   string
91809	scheduling *Scheduling
91810	urlParams_ gensupport.URLParams
91811	ctx_       context.Context
91812	header_    http.Header
91813}
91814
91815// SetScheduling: Sets an instance's scheduling options.
91816// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
91817func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
91818	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91819	c.project = project
91820	c.zone = zone
91821	c.instance = instance
91822	c.scheduling = scheduling
91823	return c
91824}
91825
91826// RequestId sets the optional parameter "requestId": An optional
91827// request ID to identify requests. Specify a unique request ID so that
91828// if you must retry your request, the server will know to ignore the
91829// request if it has already been completed.
91830//
91831// For example, consider a situation where you make an initial request
91832// and the request times out. If you make the request again with the
91833// same request ID, the server can check if original operation with the
91834// same request ID was received, and if so, will ignore the second
91835// request. This prevents clients from accidentally creating duplicate
91836// commitments.
91837//
91838// The request ID must be a valid UUID with the exception that zero UUID
91839// is not supported (00000000-0000-0000-0000-000000000000).
91840func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
91841	c.urlParams_.Set("requestId", requestId)
91842	return c
91843}
91844
91845// Fields allows partial responses to be retrieved. See
91846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91847// for more information.
91848func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
91849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91850	return c
91851}
91852
91853// Context sets the context to be used in this call's Do method. Any
91854// pending HTTP request will be aborted if the provided context is
91855// canceled.
91856func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
91857	c.ctx_ = ctx
91858	return c
91859}
91860
91861// Header returns an http.Header that can be modified by the caller to
91862// add HTTP headers to the request.
91863func (c *InstancesSetSchedulingCall) Header() http.Header {
91864	if c.header_ == nil {
91865		c.header_ = make(http.Header)
91866	}
91867	return c.header_
91868}
91869
91870func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
91871	reqHeaders := make(http.Header)
91872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
91873	for k, v := range c.header_ {
91874		reqHeaders[k] = v
91875	}
91876	reqHeaders.Set("User-Agent", c.s.userAgent())
91877	var body io.Reader = nil
91878	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
91879	if err != nil {
91880		return nil, err
91881	}
91882	reqHeaders.Set("Content-Type", "application/json")
91883	c.urlParams_.Set("alt", alt)
91884	c.urlParams_.Set("prettyPrint", "false")
91885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
91886	urls += "?" + c.urlParams_.Encode()
91887	req, err := http.NewRequest("POST", urls, body)
91888	if err != nil {
91889		return nil, err
91890	}
91891	req.Header = reqHeaders
91892	googleapi.Expand(req.URL, map[string]string{
91893		"project":  c.project,
91894		"zone":     c.zone,
91895		"instance": c.instance,
91896	})
91897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91898}
91899
91900// Do executes the "compute.instances.setScheduling" call.
91901// Exactly one of *Operation or error will be non-nil. Any non-2xx
91902// status code is an error. Response headers are in either
91903// *Operation.ServerResponse.Header or (if a response was returned at
91904// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91905// to check whether the returned error was because
91906// http.StatusNotModified was returned.
91907func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91908	gensupport.SetOptions(c.urlParams_, opts...)
91909	res, err := c.doRequest("json")
91910	if res != nil && res.StatusCode == http.StatusNotModified {
91911		if res.Body != nil {
91912			res.Body.Close()
91913		}
91914		return nil, &googleapi.Error{
91915			Code:   res.StatusCode,
91916			Header: res.Header,
91917		}
91918	}
91919	if err != nil {
91920		return nil, err
91921	}
91922	defer googleapi.CloseBody(res)
91923	if err := googleapi.CheckResponse(res); err != nil {
91924		return nil, err
91925	}
91926	ret := &Operation{
91927		ServerResponse: googleapi.ServerResponse{
91928			Header:         res.Header,
91929			HTTPStatusCode: res.StatusCode,
91930		},
91931	}
91932	target := &ret
91933	if err := gensupport.DecodeResponse(target, res); err != nil {
91934		return nil, err
91935	}
91936	return ret, nil
91937	// {
91938	//   "description": "Sets an instance's scheduling options.",
91939	//   "httpMethod": "POST",
91940	//   "id": "compute.instances.setScheduling",
91941	//   "parameterOrder": [
91942	//     "project",
91943	//     "zone",
91944	//     "instance"
91945	//   ],
91946	//   "parameters": {
91947	//     "instance": {
91948	//       "description": "Instance name for this request.",
91949	//       "location": "path",
91950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91951	//       "required": true,
91952	//       "type": "string"
91953	//     },
91954	//     "project": {
91955	//       "description": "Project ID for this request.",
91956	//       "location": "path",
91957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91958	//       "required": true,
91959	//       "type": "string"
91960	//     },
91961	//     "requestId": {
91962	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91963	//       "location": "query",
91964	//       "type": "string"
91965	//     },
91966	//     "zone": {
91967	//       "description": "The name of the zone for this request.",
91968	//       "location": "path",
91969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91970	//       "required": true,
91971	//       "type": "string"
91972	//     }
91973	//   },
91974	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
91975	//   "request": {
91976	//     "$ref": "Scheduling"
91977	//   },
91978	//   "response": {
91979	//     "$ref": "Operation"
91980	//   },
91981	//   "scopes": [
91982	//     "https://www.googleapis.com/auth/cloud-platform",
91983	//     "https://www.googleapis.com/auth/compute"
91984	//   ]
91985	// }
91986
91987}
91988
91989// method id "compute.instances.setServiceAccount":
91990
91991type InstancesSetServiceAccountCall struct {
91992	s                                 *Service
91993	project                           string
91994	zone                              string
91995	instance                          string
91996	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
91997	urlParams_                        gensupport.URLParams
91998	ctx_                              context.Context
91999	header_                           http.Header
92000}
92001
92002// SetServiceAccount: Sets the service account on the instance. For more
92003// information, read Changing the service account and access scopes for
92004// an instance.
92005func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
92006	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92007	c.project = project
92008	c.zone = zone
92009	c.instance = instance
92010	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
92011	return c
92012}
92013
92014// RequestId sets the optional parameter "requestId": An optional
92015// request ID to identify requests. Specify a unique request ID so that
92016// if you must retry your request, the server will know to ignore the
92017// request if it has already been completed.
92018//
92019// For example, consider a situation where you make an initial request
92020// and the request times out. If you make the request again with the
92021// same request ID, the server can check if original operation with the
92022// same request ID was received, and if so, will ignore the second
92023// request. This prevents clients from accidentally creating duplicate
92024// commitments.
92025//
92026// The request ID must be a valid UUID with the exception that zero UUID
92027// is not supported (00000000-0000-0000-0000-000000000000).
92028func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
92029	c.urlParams_.Set("requestId", requestId)
92030	return c
92031}
92032
92033// Fields allows partial responses to be retrieved. See
92034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92035// for more information.
92036func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
92037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92038	return c
92039}
92040
92041// Context sets the context to be used in this call's Do method. Any
92042// pending HTTP request will be aborted if the provided context is
92043// canceled.
92044func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
92045	c.ctx_ = ctx
92046	return c
92047}
92048
92049// Header returns an http.Header that can be modified by the caller to
92050// add HTTP headers to the request.
92051func (c *InstancesSetServiceAccountCall) Header() http.Header {
92052	if c.header_ == nil {
92053		c.header_ = make(http.Header)
92054	}
92055	return c.header_
92056}
92057
92058func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
92059	reqHeaders := make(http.Header)
92060	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
92061	for k, v := range c.header_ {
92062		reqHeaders[k] = v
92063	}
92064	reqHeaders.Set("User-Agent", c.s.userAgent())
92065	var body io.Reader = nil
92066	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
92067	if err != nil {
92068		return nil, err
92069	}
92070	reqHeaders.Set("Content-Type", "application/json")
92071	c.urlParams_.Set("alt", alt)
92072	c.urlParams_.Set("prettyPrint", "false")
92073	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
92074	urls += "?" + c.urlParams_.Encode()
92075	req, err := http.NewRequest("POST", urls, body)
92076	if err != nil {
92077		return nil, err
92078	}
92079	req.Header = reqHeaders
92080	googleapi.Expand(req.URL, map[string]string{
92081		"project":  c.project,
92082		"zone":     c.zone,
92083		"instance": c.instance,
92084	})
92085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92086}
92087
92088// Do executes the "compute.instances.setServiceAccount" call.
92089// Exactly one of *Operation or error will be non-nil. Any non-2xx
92090// status code is an error. Response headers are in either
92091// *Operation.ServerResponse.Header or (if a response was returned at
92092// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92093// to check whether the returned error was because
92094// http.StatusNotModified was returned.
92095func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92096	gensupport.SetOptions(c.urlParams_, opts...)
92097	res, err := c.doRequest("json")
92098	if res != nil && res.StatusCode == http.StatusNotModified {
92099		if res.Body != nil {
92100			res.Body.Close()
92101		}
92102		return nil, &googleapi.Error{
92103			Code:   res.StatusCode,
92104			Header: res.Header,
92105		}
92106	}
92107	if err != nil {
92108		return nil, err
92109	}
92110	defer googleapi.CloseBody(res)
92111	if err := googleapi.CheckResponse(res); err != nil {
92112		return nil, err
92113	}
92114	ret := &Operation{
92115		ServerResponse: googleapi.ServerResponse{
92116			Header:         res.Header,
92117			HTTPStatusCode: res.StatusCode,
92118		},
92119	}
92120	target := &ret
92121	if err := gensupport.DecodeResponse(target, res); err != nil {
92122		return nil, err
92123	}
92124	return ret, nil
92125	// {
92126	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
92127	//   "httpMethod": "POST",
92128	//   "id": "compute.instances.setServiceAccount",
92129	//   "parameterOrder": [
92130	//     "project",
92131	//     "zone",
92132	//     "instance"
92133	//   ],
92134	//   "parameters": {
92135	//     "instance": {
92136	//       "description": "Name of the instance resource to start.",
92137	//       "location": "path",
92138	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92139	//       "required": true,
92140	//       "type": "string"
92141	//     },
92142	//     "project": {
92143	//       "description": "Project ID for this request.",
92144	//       "location": "path",
92145	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92146	//       "required": true,
92147	//       "type": "string"
92148	//     },
92149	//     "requestId": {
92150	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92151	//       "location": "query",
92152	//       "type": "string"
92153	//     },
92154	//     "zone": {
92155	//       "description": "The name of the zone for this request.",
92156	//       "location": "path",
92157	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92158	//       "required": true,
92159	//       "type": "string"
92160	//     }
92161	//   },
92162	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
92163	//   "request": {
92164	//     "$ref": "InstancesSetServiceAccountRequest"
92165	//   },
92166	//   "response": {
92167	//     "$ref": "Operation"
92168	//   },
92169	//   "scopes": [
92170	//     "https://www.googleapis.com/auth/cloud-platform",
92171	//     "https://www.googleapis.com/auth/compute"
92172	//   ]
92173	// }
92174
92175}
92176
92177// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
92178
92179type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
92180	s                               *Service
92181	project                         string
92182	zone                            string
92183	instance                        string
92184	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
92185	urlParams_                      gensupport.URLParams
92186	ctx_                            context.Context
92187	header_                         http.Header
92188}
92189
92190// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
92191// integrity policy for an instance. You can only use this method on a
92192// running instance. This method supports PATCH semantics and uses the
92193// JSON merge patch format and processing rules.
92194func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
92195	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92196	c.project = project
92197	c.zone = zone
92198	c.instance = instance
92199	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
92200	return c
92201}
92202
92203// RequestId sets the optional parameter "requestId": An optional
92204// request ID to identify requests. Specify a unique request ID so that
92205// if you must retry your request, the server will know to ignore the
92206// request if it has already been completed.
92207//
92208// For example, consider a situation where you make an initial request
92209// and the request times out. If you make the request again with the
92210// same request ID, the server can check if original operation with the
92211// same request ID was received, and if so, will ignore the second
92212// request. This prevents clients from accidentally creating duplicate
92213// commitments.
92214//
92215// The request ID must be a valid UUID with the exception that zero UUID
92216// is not supported (00000000-0000-0000-0000-000000000000).
92217func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
92218	c.urlParams_.Set("requestId", requestId)
92219	return c
92220}
92221
92222// Fields allows partial responses to be retrieved. See
92223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92224// for more information.
92225func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
92226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92227	return c
92228}
92229
92230// Context sets the context to be used in this call's Do method. Any
92231// pending HTTP request will be aborted if the provided context is
92232// canceled.
92233func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
92234	c.ctx_ = ctx
92235	return c
92236}
92237
92238// Header returns an http.Header that can be modified by the caller to
92239// add HTTP headers to the request.
92240func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
92241	if c.header_ == nil {
92242		c.header_ = make(http.Header)
92243	}
92244	return c.header_
92245}
92246
92247func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
92248	reqHeaders := make(http.Header)
92249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
92250	for k, v := range c.header_ {
92251		reqHeaders[k] = v
92252	}
92253	reqHeaders.Set("User-Agent", c.s.userAgent())
92254	var body io.Reader = nil
92255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
92256	if err != nil {
92257		return nil, err
92258	}
92259	reqHeaders.Set("Content-Type", "application/json")
92260	c.urlParams_.Set("alt", alt)
92261	c.urlParams_.Set("prettyPrint", "false")
92262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
92263	urls += "?" + c.urlParams_.Encode()
92264	req, err := http.NewRequest("PATCH", urls, body)
92265	if err != nil {
92266		return nil, err
92267	}
92268	req.Header = reqHeaders
92269	googleapi.Expand(req.URL, map[string]string{
92270		"project":  c.project,
92271		"zone":     c.zone,
92272		"instance": c.instance,
92273	})
92274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92275}
92276
92277// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
92278// Exactly one of *Operation or error will be non-nil. Any non-2xx
92279// status code is an error. Response headers are in either
92280// *Operation.ServerResponse.Header or (if a response was returned at
92281// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92282// to check whether the returned error was because
92283// http.StatusNotModified was returned.
92284func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92285	gensupport.SetOptions(c.urlParams_, opts...)
92286	res, err := c.doRequest("json")
92287	if res != nil && res.StatusCode == http.StatusNotModified {
92288		if res.Body != nil {
92289			res.Body.Close()
92290		}
92291		return nil, &googleapi.Error{
92292			Code:   res.StatusCode,
92293			Header: res.Header,
92294		}
92295	}
92296	if err != nil {
92297		return nil, err
92298	}
92299	defer googleapi.CloseBody(res)
92300	if err := googleapi.CheckResponse(res); err != nil {
92301		return nil, err
92302	}
92303	ret := &Operation{
92304		ServerResponse: googleapi.ServerResponse{
92305			Header:         res.Header,
92306			HTTPStatusCode: res.StatusCode,
92307		},
92308	}
92309	target := &ret
92310	if err := gensupport.DecodeResponse(target, res); err != nil {
92311		return nil, err
92312	}
92313	return ret, nil
92314	// {
92315	//   "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.",
92316	//   "httpMethod": "PATCH",
92317	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
92318	//   "parameterOrder": [
92319	//     "project",
92320	//     "zone",
92321	//     "instance"
92322	//   ],
92323	//   "parameters": {
92324	//     "instance": {
92325	//       "description": "Name or id of the instance scoping this request.",
92326	//       "location": "path",
92327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92328	//       "required": true,
92329	//       "type": "string"
92330	//     },
92331	//     "project": {
92332	//       "description": "Project ID for this request.",
92333	//       "location": "path",
92334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92335	//       "required": true,
92336	//       "type": "string"
92337	//     },
92338	//     "requestId": {
92339	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92340	//       "location": "query",
92341	//       "type": "string"
92342	//     },
92343	//     "zone": {
92344	//       "description": "The name of the zone for this request.",
92345	//       "location": "path",
92346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92347	//       "required": true,
92348	//       "type": "string"
92349	//     }
92350	//   },
92351	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
92352	//   "request": {
92353	//     "$ref": "ShieldedInstanceIntegrityPolicy"
92354	//   },
92355	//   "response": {
92356	//     "$ref": "Operation"
92357	//   },
92358	//   "scopes": [
92359	//     "https://www.googleapis.com/auth/cloud-platform",
92360	//     "https://www.googleapis.com/auth/compute"
92361	//   ]
92362	// }
92363
92364}
92365
92366// method id "compute.instances.setShieldedVmIntegrityPolicy":
92367
92368type InstancesSetShieldedVmIntegrityPolicyCall struct {
92369	s                         *Service
92370	project                   string
92371	zone                      string
92372	instance                  string
92373	shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy
92374	urlParams_                gensupport.URLParams
92375	ctx_                      context.Context
92376	header_                   http.Header
92377}
92378
92379// SetShieldedVmIntegrityPolicy: Sets the Shielded VM integrity policy
92380// for a VM instance. You can only use this method on a running VM
92381// instance. This method supports PATCH semantics and uses the JSON
92382// merge patch format and processing rules.
92383func (r *InstancesService) SetShieldedVmIntegrityPolicy(project string, zone string, instance string, shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy) *InstancesSetShieldedVmIntegrityPolicyCall {
92384	c := &InstancesSetShieldedVmIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92385	c.project = project
92386	c.zone = zone
92387	c.instance = instance
92388	c.shieldedvmintegritypolicy = shieldedvmintegritypolicy
92389	return c
92390}
92391
92392// RequestId sets the optional parameter "requestId": An optional
92393// request ID to identify requests. Specify a unique request ID so that
92394// if you must retry your request, the server will know to ignore the
92395// request if it has already been completed.
92396//
92397// For example, consider a situation where you make an initial request
92398// and the request times out. If you make the request again with the
92399// same request ID, the server can check if original operation with the
92400// same request ID was received, and if so, will ignore the second
92401// request. This prevents clients from accidentally creating duplicate
92402// commitments.
92403//
92404// The request ID must be a valid UUID with the exception that zero UUID
92405// is not supported (00000000-0000-0000-0000-000000000000).
92406func (c *InstancesSetShieldedVmIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedVmIntegrityPolicyCall {
92407	c.urlParams_.Set("requestId", requestId)
92408	return c
92409}
92410
92411// Fields allows partial responses to be retrieved. See
92412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92413// for more information.
92414func (c *InstancesSetShieldedVmIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedVmIntegrityPolicyCall {
92415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92416	return c
92417}
92418
92419// Context sets the context to be used in this call's Do method. Any
92420// pending HTTP request will be aborted if the provided context is
92421// canceled.
92422func (c *InstancesSetShieldedVmIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedVmIntegrityPolicyCall {
92423	c.ctx_ = ctx
92424	return c
92425}
92426
92427// Header returns an http.Header that can be modified by the caller to
92428// add HTTP headers to the request.
92429func (c *InstancesSetShieldedVmIntegrityPolicyCall) Header() http.Header {
92430	if c.header_ == nil {
92431		c.header_ = make(http.Header)
92432	}
92433	return c.header_
92434}
92435
92436func (c *InstancesSetShieldedVmIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
92437	reqHeaders := make(http.Header)
92438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
92439	for k, v := range c.header_ {
92440		reqHeaders[k] = v
92441	}
92442	reqHeaders.Set("User-Agent", c.s.userAgent())
92443	var body io.Reader = nil
92444	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmintegritypolicy)
92445	if err != nil {
92446		return nil, err
92447	}
92448	reqHeaders.Set("Content-Type", "application/json")
92449	c.urlParams_.Set("alt", alt)
92450	c.urlParams_.Set("prettyPrint", "false")
92451	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy")
92452	urls += "?" + c.urlParams_.Encode()
92453	req, err := http.NewRequest("PATCH", urls, body)
92454	if err != nil {
92455		return nil, err
92456	}
92457	req.Header = reqHeaders
92458	googleapi.Expand(req.URL, map[string]string{
92459		"project":  c.project,
92460		"zone":     c.zone,
92461		"instance": c.instance,
92462	})
92463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92464}
92465
92466// Do executes the "compute.instances.setShieldedVmIntegrityPolicy" call.
92467// Exactly one of *Operation or error will be non-nil. Any non-2xx
92468// status code is an error. Response headers are in either
92469// *Operation.ServerResponse.Header or (if a response was returned at
92470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92471// to check whether the returned error was because
92472// http.StatusNotModified was returned.
92473func (c *InstancesSetShieldedVmIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92474	gensupport.SetOptions(c.urlParams_, opts...)
92475	res, err := c.doRequest("json")
92476	if res != nil && res.StatusCode == http.StatusNotModified {
92477		if res.Body != nil {
92478			res.Body.Close()
92479		}
92480		return nil, &googleapi.Error{
92481			Code:   res.StatusCode,
92482			Header: res.Header,
92483		}
92484	}
92485	if err != nil {
92486		return nil, err
92487	}
92488	defer googleapi.CloseBody(res)
92489	if err := googleapi.CheckResponse(res); err != nil {
92490		return nil, err
92491	}
92492	ret := &Operation{
92493		ServerResponse: googleapi.ServerResponse{
92494			Header:         res.Header,
92495			HTTPStatusCode: res.StatusCode,
92496		},
92497	}
92498	target := &ret
92499	if err := gensupport.DecodeResponse(target, res); err != nil {
92500		return nil, err
92501	}
92502	return ret, nil
92503	// {
92504	//   "description": "Sets the Shielded VM integrity policy for a VM instance. You can only use this method on a running VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
92505	//   "httpMethod": "PATCH",
92506	//   "id": "compute.instances.setShieldedVmIntegrityPolicy",
92507	//   "parameterOrder": [
92508	//     "project",
92509	//     "zone",
92510	//     "instance"
92511	//   ],
92512	//   "parameters": {
92513	//     "instance": {
92514	//       "description": "Name of the instance scoping this request.",
92515	//       "location": "path",
92516	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92517	//       "required": true,
92518	//       "type": "string"
92519	//     },
92520	//     "project": {
92521	//       "description": "Project ID for this request.",
92522	//       "location": "path",
92523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92524	//       "required": true,
92525	//       "type": "string"
92526	//     },
92527	//     "requestId": {
92528	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92529	//       "location": "query",
92530	//       "type": "string"
92531	//     },
92532	//     "zone": {
92533	//       "description": "The name of the zone for this request.",
92534	//       "location": "path",
92535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92536	//       "required": true,
92537	//       "type": "string"
92538	//     }
92539	//   },
92540	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy",
92541	//   "request": {
92542	//     "$ref": "ShieldedVmIntegrityPolicy"
92543	//   },
92544	//   "response": {
92545	//     "$ref": "Operation"
92546	//   },
92547	//   "scopes": [
92548	//     "https://www.googleapis.com/auth/cloud-platform",
92549	//     "https://www.googleapis.com/auth/compute"
92550	//   ]
92551	// }
92552
92553}
92554
92555// method id "compute.instances.setTags":
92556
92557type InstancesSetTagsCall struct {
92558	s          *Service
92559	project    string
92560	zone       string
92561	instance   string
92562	tags       *Tags
92563	urlParams_ gensupport.URLParams
92564	ctx_       context.Context
92565	header_    http.Header
92566}
92567
92568// SetTags: Sets network tags for the specified instance to the data
92569// included in the request.
92570// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
92571func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
92572	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92573	c.project = project
92574	c.zone = zone
92575	c.instance = instance
92576	c.tags = tags
92577	return c
92578}
92579
92580// RequestId sets the optional parameter "requestId": An optional
92581// request ID to identify requests. Specify a unique request ID so that
92582// if you must retry your request, the server will know to ignore the
92583// request if it has already been completed.
92584//
92585// For example, consider a situation where you make an initial request
92586// and the request times out. If you make the request again with the
92587// same request ID, the server can check if original operation with the
92588// same request ID was received, and if so, will ignore the second
92589// request. This prevents clients from accidentally creating duplicate
92590// commitments.
92591//
92592// The request ID must be a valid UUID with the exception that zero UUID
92593// is not supported (00000000-0000-0000-0000-000000000000).
92594func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
92595	c.urlParams_.Set("requestId", requestId)
92596	return c
92597}
92598
92599// Fields allows partial responses to be retrieved. See
92600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92601// for more information.
92602func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
92603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92604	return c
92605}
92606
92607// Context sets the context to be used in this call's Do method. Any
92608// pending HTTP request will be aborted if the provided context is
92609// canceled.
92610func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
92611	c.ctx_ = ctx
92612	return c
92613}
92614
92615// Header returns an http.Header that can be modified by the caller to
92616// add HTTP headers to the request.
92617func (c *InstancesSetTagsCall) Header() http.Header {
92618	if c.header_ == nil {
92619		c.header_ = make(http.Header)
92620	}
92621	return c.header_
92622}
92623
92624func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
92625	reqHeaders := make(http.Header)
92626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
92627	for k, v := range c.header_ {
92628		reqHeaders[k] = v
92629	}
92630	reqHeaders.Set("User-Agent", c.s.userAgent())
92631	var body io.Reader = nil
92632	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
92633	if err != nil {
92634		return nil, err
92635	}
92636	reqHeaders.Set("Content-Type", "application/json")
92637	c.urlParams_.Set("alt", alt)
92638	c.urlParams_.Set("prettyPrint", "false")
92639	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
92640	urls += "?" + c.urlParams_.Encode()
92641	req, err := http.NewRequest("POST", urls, body)
92642	if err != nil {
92643		return nil, err
92644	}
92645	req.Header = reqHeaders
92646	googleapi.Expand(req.URL, map[string]string{
92647		"project":  c.project,
92648		"zone":     c.zone,
92649		"instance": c.instance,
92650	})
92651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92652}
92653
92654// Do executes the "compute.instances.setTags" call.
92655// Exactly one of *Operation or error will be non-nil. Any non-2xx
92656// status code is an error. Response headers are in either
92657// *Operation.ServerResponse.Header or (if a response was returned at
92658// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92659// to check whether the returned error was because
92660// http.StatusNotModified was returned.
92661func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92662	gensupport.SetOptions(c.urlParams_, opts...)
92663	res, err := c.doRequest("json")
92664	if res != nil && res.StatusCode == http.StatusNotModified {
92665		if res.Body != nil {
92666			res.Body.Close()
92667		}
92668		return nil, &googleapi.Error{
92669			Code:   res.StatusCode,
92670			Header: res.Header,
92671		}
92672	}
92673	if err != nil {
92674		return nil, err
92675	}
92676	defer googleapi.CloseBody(res)
92677	if err := googleapi.CheckResponse(res); err != nil {
92678		return nil, err
92679	}
92680	ret := &Operation{
92681		ServerResponse: googleapi.ServerResponse{
92682			Header:         res.Header,
92683			HTTPStatusCode: res.StatusCode,
92684		},
92685	}
92686	target := &ret
92687	if err := gensupport.DecodeResponse(target, res); err != nil {
92688		return nil, err
92689	}
92690	return ret, nil
92691	// {
92692	//   "description": "Sets network tags for the specified instance to the data included in the request.",
92693	//   "httpMethod": "POST",
92694	//   "id": "compute.instances.setTags",
92695	//   "parameterOrder": [
92696	//     "project",
92697	//     "zone",
92698	//     "instance"
92699	//   ],
92700	//   "parameters": {
92701	//     "instance": {
92702	//       "description": "Name of the instance scoping this request.",
92703	//       "location": "path",
92704	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92705	//       "required": true,
92706	//       "type": "string"
92707	//     },
92708	//     "project": {
92709	//       "description": "Project ID for this request.",
92710	//       "location": "path",
92711	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92712	//       "required": true,
92713	//       "type": "string"
92714	//     },
92715	//     "requestId": {
92716	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92717	//       "location": "query",
92718	//       "type": "string"
92719	//     },
92720	//     "zone": {
92721	//       "description": "The name of the zone for this request.",
92722	//       "location": "path",
92723	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92724	//       "required": true,
92725	//       "type": "string"
92726	//     }
92727	//   },
92728	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
92729	//   "request": {
92730	//     "$ref": "Tags"
92731	//   },
92732	//   "response": {
92733	//     "$ref": "Operation"
92734	//   },
92735	//   "scopes": [
92736	//     "https://www.googleapis.com/auth/cloud-platform",
92737	//     "https://www.googleapis.com/auth/compute"
92738	//   ]
92739	// }
92740
92741}
92742
92743// method id "compute.instances.simulateMaintenanceEvent":
92744
92745type InstancesSimulateMaintenanceEventCall struct {
92746	s          *Service
92747	project    string
92748	zone       string
92749	instance   string
92750	urlParams_ gensupport.URLParams
92751	ctx_       context.Context
92752	header_    http.Header
92753}
92754
92755// SimulateMaintenanceEvent: Simulates a maintenance event on the
92756// instance.
92757func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
92758	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92759	c.project = project
92760	c.zone = zone
92761	c.instance = instance
92762	return c
92763}
92764
92765// Fields allows partial responses to be retrieved. See
92766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92767// for more information.
92768func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
92769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92770	return c
92771}
92772
92773// Context sets the context to be used in this call's Do method. Any
92774// pending HTTP request will be aborted if the provided context is
92775// canceled.
92776func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
92777	c.ctx_ = ctx
92778	return c
92779}
92780
92781// Header returns an http.Header that can be modified by the caller to
92782// add HTTP headers to the request.
92783func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
92784	if c.header_ == nil {
92785		c.header_ = make(http.Header)
92786	}
92787	return c.header_
92788}
92789
92790func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
92791	reqHeaders := make(http.Header)
92792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
92793	for k, v := range c.header_ {
92794		reqHeaders[k] = v
92795	}
92796	reqHeaders.Set("User-Agent", c.s.userAgent())
92797	var body io.Reader = nil
92798	c.urlParams_.Set("alt", alt)
92799	c.urlParams_.Set("prettyPrint", "false")
92800	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
92801	urls += "?" + c.urlParams_.Encode()
92802	req, err := http.NewRequest("POST", urls, body)
92803	if err != nil {
92804		return nil, err
92805	}
92806	req.Header = reqHeaders
92807	googleapi.Expand(req.URL, map[string]string{
92808		"project":  c.project,
92809		"zone":     c.zone,
92810		"instance": c.instance,
92811	})
92812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92813}
92814
92815// Do executes the "compute.instances.simulateMaintenanceEvent" call.
92816// Exactly one of *Operation or error will be non-nil. Any non-2xx
92817// status code is an error. Response headers are in either
92818// *Operation.ServerResponse.Header or (if a response was returned at
92819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92820// to check whether the returned error was because
92821// http.StatusNotModified was returned.
92822func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92823	gensupport.SetOptions(c.urlParams_, opts...)
92824	res, err := c.doRequest("json")
92825	if res != nil && res.StatusCode == http.StatusNotModified {
92826		if res.Body != nil {
92827			res.Body.Close()
92828		}
92829		return nil, &googleapi.Error{
92830			Code:   res.StatusCode,
92831			Header: res.Header,
92832		}
92833	}
92834	if err != nil {
92835		return nil, err
92836	}
92837	defer googleapi.CloseBody(res)
92838	if err := googleapi.CheckResponse(res); err != nil {
92839		return nil, err
92840	}
92841	ret := &Operation{
92842		ServerResponse: googleapi.ServerResponse{
92843			Header:         res.Header,
92844			HTTPStatusCode: res.StatusCode,
92845		},
92846	}
92847	target := &ret
92848	if err := gensupport.DecodeResponse(target, res); err != nil {
92849		return nil, err
92850	}
92851	return ret, nil
92852	// {
92853	//   "description": "Simulates a maintenance event on the instance.",
92854	//   "httpMethod": "POST",
92855	//   "id": "compute.instances.simulateMaintenanceEvent",
92856	//   "parameterOrder": [
92857	//     "project",
92858	//     "zone",
92859	//     "instance"
92860	//   ],
92861	//   "parameters": {
92862	//     "instance": {
92863	//       "description": "Name of the instance scoping this request.",
92864	//       "location": "path",
92865	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92866	//       "required": true,
92867	//       "type": "string"
92868	//     },
92869	//     "project": {
92870	//       "description": "Project ID for this request.",
92871	//       "location": "path",
92872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92873	//       "required": true,
92874	//       "type": "string"
92875	//     },
92876	//     "zone": {
92877	//       "description": "The name of the zone for this request.",
92878	//       "location": "path",
92879	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92880	//       "required": true,
92881	//       "type": "string"
92882	//     }
92883	//   },
92884	//   "path": "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
92885	//   "response": {
92886	//     "$ref": "Operation"
92887	//   },
92888	//   "scopes": [
92889	//     "https://www.googleapis.com/auth/cloud-platform",
92890	//     "https://www.googleapis.com/auth/compute"
92891	//   ]
92892	// }
92893
92894}
92895
92896// method id "compute.instances.start":
92897
92898type InstancesStartCall struct {
92899	s          *Service
92900	project    string
92901	zone       string
92902	instance   string
92903	urlParams_ gensupport.URLParams
92904	ctx_       context.Context
92905	header_    http.Header
92906}
92907
92908// Start: Starts an instance that was stopped using the instances().stop
92909// method. For more information, see Restart an instance.
92910// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
92911func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
92912	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92913	c.project = project
92914	c.zone = zone
92915	c.instance = instance
92916	return c
92917}
92918
92919// RequestId sets the optional parameter "requestId": An optional
92920// request ID to identify requests. Specify a unique request ID so that
92921// if you must retry your request, the server will know to ignore the
92922// request if it has already been completed.
92923//
92924// For example, consider a situation where you make an initial request
92925// and the request times out. If you make the request again with the
92926// same request ID, the server can check if original operation with the
92927// same request ID was received, and if so, will ignore the second
92928// request. This prevents clients from accidentally creating duplicate
92929// commitments.
92930//
92931// The request ID must be a valid UUID with the exception that zero UUID
92932// is not supported (00000000-0000-0000-0000-000000000000).
92933func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
92934	c.urlParams_.Set("requestId", requestId)
92935	return c
92936}
92937
92938// Fields allows partial responses to be retrieved. See
92939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92940// for more information.
92941func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
92942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92943	return c
92944}
92945
92946// Context sets the context to be used in this call's Do method. Any
92947// pending HTTP request will be aborted if the provided context is
92948// canceled.
92949func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
92950	c.ctx_ = ctx
92951	return c
92952}
92953
92954// Header returns an http.Header that can be modified by the caller to
92955// add HTTP headers to the request.
92956func (c *InstancesStartCall) Header() http.Header {
92957	if c.header_ == nil {
92958		c.header_ = make(http.Header)
92959	}
92960	return c.header_
92961}
92962
92963func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
92964	reqHeaders := make(http.Header)
92965	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
92966	for k, v := range c.header_ {
92967		reqHeaders[k] = v
92968	}
92969	reqHeaders.Set("User-Agent", c.s.userAgent())
92970	var body io.Reader = nil
92971	c.urlParams_.Set("alt", alt)
92972	c.urlParams_.Set("prettyPrint", "false")
92973	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
92974	urls += "?" + c.urlParams_.Encode()
92975	req, err := http.NewRequest("POST", urls, body)
92976	if err != nil {
92977		return nil, err
92978	}
92979	req.Header = reqHeaders
92980	googleapi.Expand(req.URL, map[string]string{
92981		"project":  c.project,
92982		"zone":     c.zone,
92983		"instance": c.instance,
92984	})
92985	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92986}
92987
92988// Do executes the "compute.instances.start" call.
92989// Exactly one of *Operation or error will be non-nil. Any non-2xx
92990// status code is an error. Response headers are in either
92991// *Operation.ServerResponse.Header or (if a response was returned at
92992// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92993// to check whether the returned error was because
92994// http.StatusNotModified was returned.
92995func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92996	gensupport.SetOptions(c.urlParams_, opts...)
92997	res, err := c.doRequest("json")
92998	if res != nil && res.StatusCode == http.StatusNotModified {
92999		if res.Body != nil {
93000			res.Body.Close()
93001		}
93002		return nil, &googleapi.Error{
93003			Code:   res.StatusCode,
93004			Header: res.Header,
93005		}
93006	}
93007	if err != nil {
93008		return nil, err
93009	}
93010	defer googleapi.CloseBody(res)
93011	if err := googleapi.CheckResponse(res); err != nil {
93012		return nil, err
93013	}
93014	ret := &Operation{
93015		ServerResponse: googleapi.ServerResponse{
93016			Header:         res.Header,
93017			HTTPStatusCode: res.StatusCode,
93018		},
93019	}
93020	target := &ret
93021	if err := gensupport.DecodeResponse(target, res); err != nil {
93022		return nil, err
93023	}
93024	return ret, nil
93025	// {
93026	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
93027	//   "httpMethod": "POST",
93028	//   "id": "compute.instances.start",
93029	//   "parameterOrder": [
93030	//     "project",
93031	//     "zone",
93032	//     "instance"
93033	//   ],
93034	//   "parameters": {
93035	//     "instance": {
93036	//       "description": "Name of the instance resource to start.",
93037	//       "location": "path",
93038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93039	//       "required": true,
93040	//       "type": "string"
93041	//     },
93042	//     "project": {
93043	//       "description": "Project ID for this request.",
93044	//       "location": "path",
93045	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93046	//       "required": true,
93047	//       "type": "string"
93048	//     },
93049	//     "requestId": {
93050	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93051	//       "location": "query",
93052	//       "type": "string"
93053	//     },
93054	//     "zone": {
93055	//       "description": "The name of the zone for this request.",
93056	//       "location": "path",
93057	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93058	//       "required": true,
93059	//       "type": "string"
93060	//     }
93061	//   },
93062	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
93063	//   "response": {
93064	//     "$ref": "Operation"
93065	//   },
93066	//   "scopes": [
93067	//     "https://www.googleapis.com/auth/cloud-platform",
93068	//     "https://www.googleapis.com/auth/compute"
93069	//   ]
93070	// }
93071
93072}
93073
93074// method id "compute.instances.startWithEncryptionKey":
93075
93076type InstancesStartWithEncryptionKeyCall struct {
93077	s                                      *Service
93078	project                                string
93079	zone                                   string
93080	instance                               string
93081	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
93082	urlParams_                             gensupport.URLParams
93083	ctx_                                   context.Context
93084	header_                                http.Header
93085}
93086
93087// StartWithEncryptionKey: Starts an instance that was stopped using the
93088// instances().stop method. For more information, see Restart an
93089// instance.
93090func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
93091	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93092	c.project = project
93093	c.zone = zone
93094	c.instance = instance
93095	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
93096	return c
93097}
93098
93099// RequestId sets the optional parameter "requestId": An optional
93100// request ID to identify requests. Specify a unique request ID so that
93101// if you must retry your request, the server will know to ignore the
93102// request if it has already been completed.
93103//
93104// For example, consider a situation where you make an initial request
93105// and the request times out. If you make the request again with the
93106// same request ID, the server can check if original operation with the
93107// same request ID was received, and if so, will ignore the second
93108// request. This prevents clients from accidentally creating duplicate
93109// commitments.
93110//
93111// The request ID must be a valid UUID with the exception that zero UUID
93112// is not supported (00000000-0000-0000-0000-000000000000).
93113func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
93114	c.urlParams_.Set("requestId", requestId)
93115	return c
93116}
93117
93118// Fields allows partial responses to be retrieved. See
93119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93120// for more information.
93121func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
93122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93123	return c
93124}
93125
93126// Context sets the context to be used in this call's Do method. Any
93127// pending HTTP request will be aborted if the provided context is
93128// canceled.
93129func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
93130	c.ctx_ = ctx
93131	return c
93132}
93133
93134// Header returns an http.Header that can be modified by the caller to
93135// add HTTP headers to the request.
93136func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
93137	if c.header_ == nil {
93138		c.header_ = make(http.Header)
93139	}
93140	return c.header_
93141}
93142
93143func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
93144	reqHeaders := make(http.Header)
93145	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
93146	for k, v := range c.header_ {
93147		reqHeaders[k] = v
93148	}
93149	reqHeaders.Set("User-Agent", c.s.userAgent())
93150	var body io.Reader = nil
93151	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
93152	if err != nil {
93153		return nil, err
93154	}
93155	reqHeaders.Set("Content-Type", "application/json")
93156	c.urlParams_.Set("alt", alt)
93157	c.urlParams_.Set("prettyPrint", "false")
93158	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
93159	urls += "?" + c.urlParams_.Encode()
93160	req, err := http.NewRequest("POST", urls, body)
93161	if err != nil {
93162		return nil, err
93163	}
93164	req.Header = reqHeaders
93165	googleapi.Expand(req.URL, map[string]string{
93166		"project":  c.project,
93167		"zone":     c.zone,
93168		"instance": c.instance,
93169	})
93170	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93171}
93172
93173// Do executes the "compute.instances.startWithEncryptionKey" call.
93174// Exactly one of *Operation or error will be non-nil. Any non-2xx
93175// status code is an error. Response headers are in either
93176// *Operation.ServerResponse.Header or (if a response was returned at
93177// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93178// to check whether the returned error was because
93179// http.StatusNotModified was returned.
93180func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93181	gensupport.SetOptions(c.urlParams_, opts...)
93182	res, err := c.doRequest("json")
93183	if res != nil && res.StatusCode == http.StatusNotModified {
93184		if res.Body != nil {
93185			res.Body.Close()
93186		}
93187		return nil, &googleapi.Error{
93188			Code:   res.StatusCode,
93189			Header: res.Header,
93190		}
93191	}
93192	if err != nil {
93193		return nil, err
93194	}
93195	defer googleapi.CloseBody(res)
93196	if err := googleapi.CheckResponse(res); err != nil {
93197		return nil, err
93198	}
93199	ret := &Operation{
93200		ServerResponse: googleapi.ServerResponse{
93201			Header:         res.Header,
93202			HTTPStatusCode: res.StatusCode,
93203		},
93204	}
93205	target := &ret
93206	if err := gensupport.DecodeResponse(target, res); err != nil {
93207		return nil, err
93208	}
93209	return ret, nil
93210	// {
93211	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
93212	//   "httpMethod": "POST",
93213	//   "id": "compute.instances.startWithEncryptionKey",
93214	//   "parameterOrder": [
93215	//     "project",
93216	//     "zone",
93217	//     "instance"
93218	//   ],
93219	//   "parameters": {
93220	//     "instance": {
93221	//       "description": "Name of the instance resource to start.",
93222	//       "location": "path",
93223	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93224	//       "required": true,
93225	//       "type": "string"
93226	//     },
93227	//     "project": {
93228	//       "description": "Project ID for this request.",
93229	//       "location": "path",
93230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93231	//       "required": true,
93232	//       "type": "string"
93233	//     },
93234	//     "requestId": {
93235	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93236	//       "location": "query",
93237	//       "type": "string"
93238	//     },
93239	//     "zone": {
93240	//       "description": "The name of the zone for this request.",
93241	//       "location": "path",
93242	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93243	//       "required": true,
93244	//       "type": "string"
93245	//     }
93246	//   },
93247	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
93248	//   "request": {
93249	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
93250	//   },
93251	//   "response": {
93252	//     "$ref": "Operation"
93253	//   },
93254	//   "scopes": [
93255	//     "https://www.googleapis.com/auth/cloud-platform",
93256	//     "https://www.googleapis.com/auth/compute"
93257	//   ]
93258	// }
93259
93260}
93261
93262// method id "compute.instances.stop":
93263
93264type InstancesStopCall struct {
93265	s          *Service
93266	project    string
93267	zone       string
93268	instance   string
93269	urlParams_ gensupport.URLParams
93270	ctx_       context.Context
93271	header_    http.Header
93272}
93273
93274// Stop: Stops a running instance, shutting it down cleanly, and allows
93275// you to restart the instance at a later time. Stopped instances do not
93276// incur VM usage charges while they are stopped. However, resources
93277// that the VM is using, such as persistent disks and static IP
93278// addresses, will continue to be charged until they are deleted. For
93279// more information, see Stopping an instance.
93280// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
93281func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
93282	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93283	c.project = project
93284	c.zone = zone
93285	c.instance = instance
93286	return c
93287}
93288
93289// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
93290// true, discard the contents of any attached localSSD partitions.
93291// Default value is false (== preserve localSSD data).
93292func (c *InstancesStopCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesStopCall {
93293	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
93294	return c
93295}
93296
93297// RequestId sets the optional parameter "requestId": An optional
93298// request ID to identify requests. Specify a unique request ID so that
93299// if you must retry your request, the server will know to ignore the
93300// request if it has already been completed.
93301//
93302// For example, consider a situation where you make an initial request
93303// and the request times out. If you make the request again with the
93304// same request ID, the server can check if original operation with the
93305// same request ID was received, and if so, will ignore the second
93306// request. This prevents clients from accidentally creating duplicate
93307// commitments.
93308//
93309// The request ID must be a valid UUID with the exception that zero UUID
93310// is not supported (00000000-0000-0000-0000-000000000000).
93311func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
93312	c.urlParams_.Set("requestId", requestId)
93313	return c
93314}
93315
93316// Fields allows partial responses to be retrieved. See
93317// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93318// for more information.
93319func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
93320	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93321	return c
93322}
93323
93324// Context sets the context to be used in this call's Do method. Any
93325// pending HTTP request will be aborted if the provided context is
93326// canceled.
93327func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
93328	c.ctx_ = ctx
93329	return c
93330}
93331
93332// Header returns an http.Header that can be modified by the caller to
93333// add HTTP headers to the request.
93334func (c *InstancesStopCall) Header() http.Header {
93335	if c.header_ == nil {
93336		c.header_ = make(http.Header)
93337	}
93338	return c.header_
93339}
93340
93341func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
93342	reqHeaders := make(http.Header)
93343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
93344	for k, v := range c.header_ {
93345		reqHeaders[k] = v
93346	}
93347	reqHeaders.Set("User-Agent", c.s.userAgent())
93348	var body io.Reader = nil
93349	c.urlParams_.Set("alt", alt)
93350	c.urlParams_.Set("prettyPrint", "false")
93351	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
93352	urls += "?" + c.urlParams_.Encode()
93353	req, err := http.NewRequest("POST", urls, body)
93354	if err != nil {
93355		return nil, err
93356	}
93357	req.Header = reqHeaders
93358	googleapi.Expand(req.URL, map[string]string{
93359		"project":  c.project,
93360		"zone":     c.zone,
93361		"instance": c.instance,
93362	})
93363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93364}
93365
93366// Do executes the "compute.instances.stop" call.
93367// Exactly one of *Operation or error will be non-nil. Any non-2xx
93368// status code is an error. Response headers are in either
93369// *Operation.ServerResponse.Header or (if a response was returned at
93370// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93371// to check whether the returned error was because
93372// http.StatusNotModified was returned.
93373func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93374	gensupport.SetOptions(c.urlParams_, opts...)
93375	res, err := c.doRequest("json")
93376	if res != nil && res.StatusCode == http.StatusNotModified {
93377		if res.Body != nil {
93378			res.Body.Close()
93379		}
93380		return nil, &googleapi.Error{
93381			Code:   res.StatusCode,
93382			Header: res.Header,
93383		}
93384	}
93385	if err != nil {
93386		return nil, err
93387	}
93388	defer googleapi.CloseBody(res)
93389	if err := googleapi.CheckResponse(res); err != nil {
93390		return nil, err
93391	}
93392	ret := &Operation{
93393		ServerResponse: googleapi.ServerResponse{
93394			Header:         res.Header,
93395			HTTPStatusCode: res.StatusCode,
93396		},
93397	}
93398	target := &ret
93399	if err := gensupport.DecodeResponse(target, res); err != nil {
93400		return nil, err
93401	}
93402	return ret, nil
93403	// {
93404	//   "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.",
93405	//   "httpMethod": "POST",
93406	//   "id": "compute.instances.stop",
93407	//   "parameterOrder": [
93408	//     "project",
93409	//     "zone",
93410	//     "instance"
93411	//   ],
93412	//   "parameters": {
93413	//     "discardLocalSsd": {
93414	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
93415	//       "location": "query",
93416	//       "type": "boolean"
93417	//     },
93418	//     "instance": {
93419	//       "description": "Name of the instance resource to stop.",
93420	//       "location": "path",
93421	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93422	//       "required": true,
93423	//       "type": "string"
93424	//     },
93425	//     "project": {
93426	//       "description": "Project ID for this request.",
93427	//       "location": "path",
93428	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93429	//       "required": true,
93430	//       "type": "string"
93431	//     },
93432	//     "requestId": {
93433	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93434	//       "location": "query",
93435	//       "type": "string"
93436	//     },
93437	//     "zone": {
93438	//       "description": "The name of the zone for this request.",
93439	//       "location": "path",
93440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93441	//       "required": true,
93442	//       "type": "string"
93443	//     }
93444	//   },
93445	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
93446	//   "response": {
93447	//     "$ref": "Operation"
93448	//   },
93449	//   "scopes": [
93450	//     "https://www.googleapis.com/auth/cloud-platform",
93451	//     "https://www.googleapis.com/auth/compute"
93452	//   ]
93453	// }
93454
93455}
93456
93457// method id "compute.instances.suspend":
93458
93459type InstancesSuspendCall struct {
93460	s          *Service
93461	project    string
93462	zone       string
93463	instance   string
93464	urlParams_ gensupport.URLParams
93465	ctx_       context.Context
93466	header_    http.Header
93467}
93468
93469// Suspend: This method suspends a running instance, saving its state to
93470// persistent storage, and allows you to resume the instance at a later
93471// time. Suspended instances incur reduced per-minute, virtual machine
93472// usage charges while they are suspended. Any resources the virtual
93473// machine is using, such as persistent disks and static IP addresses,
93474// will continue to be charged until they are deleted.
93475func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall {
93476	c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93477	c.project = project
93478	c.zone = zone
93479	c.instance = instance
93480	return c
93481}
93482
93483// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
93484// true, discard the contents of any attached localSSD partitions.
93485// Default value is false (== preserve localSSD data).
93486func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall {
93487	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
93488	return c
93489}
93490
93491// RequestId sets the optional parameter "requestId": An optional
93492// request ID to identify requests. Specify a unique request ID so that
93493// if you must retry your request, the server will know to ignore the
93494// request if it has already been completed.
93495//
93496// For example, consider a situation where you make an initial request
93497// and the request times out. If you make the request again with the
93498// same request ID, the server can check if original operation with the
93499// same request ID was received, and if so, will ignore the second
93500// request. This prevents clients from accidentally creating duplicate
93501// commitments.
93502//
93503// The request ID must be a valid UUID with the exception that zero UUID
93504// is not supported (00000000-0000-0000-0000-000000000000).
93505func (c *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall {
93506	c.urlParams_.Set("requestId", requestId)
93507	return c
93508}
93509
93510// Fields allows partial responses to be retrieved. See
93511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93512// for more information.
93513func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall {
93514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93515	return c
93516}
93517
93518// Context sets the context to be used in this call's Do method. Any
93519// pending HTTP request will be aborted if the provided context is
93520// canceled.
93521func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall {
93522	c.ctx_ = ctx
93523	return c
93524}
93525
93526// Header returns an http.Header that can be modified by the caller to
93527// add HTTP headers to the request.
93528func (c *InstancesSuspendCall) Header() http.Header {
93529	if c.header_ == nil {
93530		c.header_ = make(http.Header)
93531	}
93532	return c.header_
93533}
93534
93535func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) {
93536	reqHeaders := make(http.Header)
93537	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
93538	for k, v := range c.header_ {
93539		reqHeaders[k] = v
93540	}
93541	reqHeaders.Set("User-Agent", c.s.userAgent())
93542	var body io.Reader = nil
93543	c.urlParams_.Set("alt", alt)
93544	c.urlParams_.Set("prettyPrint", "false")
93545	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/suspend")
93546	urls += "?" + c.urlParams_.Encode()
93547	req, err := http.NewRequest("POST", urls, body)
93548	if err != nil {
93549		return nil, err
93550	}
93551	req.Header = reqHeaders
93552	googleapi.Expand(req.URL, map[string]string{
93553		"project":  c.project,
93554		"zone":     c.zone,
93555		"instance": c.instance,
93556	})
93557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93558}
93559
93560// Do executes the "compute.instances.suspend" call.
93561// Exactly one of *Operation or error will be non-nil. Any non-2xx
93562// status code is an error. Response headers are in either
93563// *Operation.ServerResponse.Header or (if a response was returned at
93564// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93565// to check whether the returned error was because
93566// http.StatusNotModified was returned.
93567func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93568	gensupport.SetOptions(c.urlParams_, opts...)
93569	res, err := c.doRequest("json")
93570	if res != nil && res.StatusCode == http.StatusNotModified {
93571		if res.Body != nil {
93572			res.Body.Close()
93573		}
93574		return nil, &googleapi.Error{
93575			Code:   res.StatusCode,
93576			Header: res.Header,
93577		}
93578	}
93579	if err != nil {
93580		return nil, err
93581	}
93582	defer googleapi.CloseBody(res)
93583	if err := googleapi.CheckResponse(res); err != nil {
93584		return nil, err
93585	}
93586	ret := &Operation{
93587		ServerResponse: googleapi.ServerResponse{
93588			Header:         res.Header,
93589			HTTPStatusCode: res.StatusCode,
93590		},
93591	}
93592	target := &ret
93593	if err := gensupport.DecodeResponse(target, res); err != nil {
93594		return nil, err
93595	}
93596	return ret, nil
93597	// {
93598	//   "description": "This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances incur reduced per-minute, virtual machine usage charges while they are suspended. Any resources the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted.",
93599	//   "httpMethod": "POST",
93600	//   "id": "compute.instances.suspend",
93601	//   "parameterOrder": [
93602	//     "project",
93603	//     "zone",
93604	//     "instance"
93605	//   ],
93606	//   "parameters": {
93607	//     "discardLocalSsd": {
93608	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
93609	//       "location": "query",
93610	//       "type": "boolean"
93611	//     },
93612	//     "instance": {
93613	//       "description": "Name of the instance resource to suspend.",
93614	//       "location": "path",
93615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93616	//       "required": true,
93617	//       "type": "string"
93618	//     },
93619	//     "project": {
93620	//       "description": "Project ID for this request.",
93621	//       "location": "path",
93622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93623	//       "required": true,
93624	//       "type": "string"
93625	//     },
93626	//     "requestId": {
93627	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93628	//       "location": "query",
93629	//       "type": "string"
93630	//     },
93631	//     "zone": {
93632	//       "description": "The name of the zone for this request.",
93633	//       "location": "path",
93634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93635	//       "required": true,
93636	//       "type": "string"
93637	//     }
93638	//   },
93639	//   "path": "{project}/zones/{zone}/instances/{instance}/suspend",
93640	//   "response": {
93641	//     "$ref": "Operation"
93642	//   },
93643	//   "scopes": [
93644	//     "https://www.googleapis.com/auth/cloud-platform",
93645	//     "https://www.googleapis.com/auth/compute"
93646	//   ]
93647	// }
93648
93649}
93650
93651// method id "compute.instances.testIamPermissions":
93652
93653type InstancesTestIamPermissionsCall struct {
93654	s                      *Service
93655	project                string
93656	zone                   string
93657	resource               string
93658	testpermissionsrequest *TestPermissionsRequest
93659	urlParams_             gensupport.URLParams
93660	ctx_                   context.Context
93661	header_                http.Header
93662}
93663
93664// TestIamPermissions: Returns permissions that a caller has on the
93665// specified resource.
93666func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
93667	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93668	c.project = project
93669	c.zone = zone
93670	c.resource = resource
93671	c.testpermissionsrequest = testpermissionsrequest
93672	return c
93673}
93674
93675// Fields allows partial responses to be retrieved. See
93676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93677// for more information.
93678func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
93679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93680	return c
93681}
93682
93683// Context sets the context to be used in this call's Do method. Any
93684// pending HTTP request will be aborted if the provided context is
93685// canceled.
93686func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
93687	c.ctx_ = ctx
93688	return c
93689}
93690
93691// Header returns an http.Header that can be modified by the caller to
93692// add HTTP headers to the request.
93693func (c *InstancesTestIamPermissionsCall) Header() http.Header {
93694	if c.header_ == nil {
93695		c.header_ = make(http.Header)
93696	}
93697	return c.header_
93698}
93699
93700func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
93701	reqHeaders := make(http.Header)
93702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
93703	for k, v := range c.header_ {
93704		reqHeaders[k] = v
93705	}
93706	reqHeaders.Set("User-Agent", c.s.userAgent())
93707	var body io.Reader = nil
93708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
93709	if err != nil {
93710		return nil, err
93711	}
93712	reqHeaders.Set("Content-Type", "application/json")
93713	c.urlParams_.Set("alt", alt)
93714	c.urlParams_.Set("prettyPrint", "false")
93715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/testIamPermissions")
93716	urls += "?" + c.urlParams_.Encode()
93717	req, err := http.NewRequest("POST", urls, body)
93718	if err != nil {
93719		return nil, err
93720	}
93721	req.Header = reqHeaders
93722	googleapi.Expand(req.URL, map[string]string{
93723		"project":  c.project,
93724		"zone":     c.zone,
93725		"resource": c.resource,
93726	})
93727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93728}
93729
93730// Do executes the "compute.instances.testIamPermissions" call.
93731// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
93732// non-2xx status code is an error. Response headers are in either
93733// *TestPermissionsResponse.ServerResponse.Header or (if a response was
93734// returned at all) in error.(*googleapi.Error).Header. Use
93735// googleapi.IsNotModified to check whether the returned error was
93736// because http.StatusNotModified was returned.
93737func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
93738	gensupport.SetOptions(c.urlParams_, opts...)
93739	res, err := c.doRequest("json")
93740	if res != nil && res.StatusCode == http.StatusNotModified {
93741		if res.Body != nil {
93742			res.Body.Close()
93743		}
93744		return nil, &googleapi.Error{
93745			Code:   res.StatusCode,
93746			Header: res.Header,
93747		}
93748	}
93749	if err != nil {
93750		return nil, err
93751	}
93752	defer googleapi.CloseBody(res)
93753	if err := googleapi.CheckResponse(res); err != nil {
93754		return nil, err
93755	}
93756	ret := &TestPermissionsResponse{
93757		ServerResponse: googleapi.ServerResponse{
93758			Header:         res.Header,
93759			HTTPStatusCode: res.StatusCode,
93760		},
93761	}
93762	target := &ret
93763	if err := gensupport.DecodeResponse(target, res); err != nil {
93764		return nil, err
93765	}
93766	return ret, nil
93767	// {
93768	//   "description": "Returns permissions that a caller has on the specified resource.",
93769	//   "httpMethod": "POST",
93770	//   "id": "compute.instances.testIamPermissions",
93771	//   "parameterOrder": [
93772	//     "project",
93773	//     "zone",
93774	//     "resource"
93775	//   ],
93776	//   "parameters": {
93777	//     "project": {
93778	//       "description": "Project ID for this request.",
93779	//       "location": "path",
93780	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93781	//       "required": true,
93782	//       "type": "string"
93783	//     },
93784	//     "resource": {
93785	//       "description": "Name or id of the resource for this request.",
93786	//       "location": "path",
93787	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93788	//       "required": true,
93789	//       "type": "string"
93790	//     },
93791	//     "zone": {
93792	//       "description": "The name of the zone for this request.",
93793	//       "location": "path",
93794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93795	//       "required": true,
93796	//       "type": "string"
93797	//     }
93798	//   },
93799	//   "path": "{project}/zones/{zone}/instances/{resource}/testIamPermissions",
93800	//   "request": {
93801	//     "$ref": "TestPermissionsRequest"
93802	//   },
93803	//   "response": {
93804	//     "$ref": "TestPermissionsResponse"
93805	//   },
93806	//   "scopes": [
93807	//     "https://www.googleapis.com/auth/cloud-platform",
93808	//     "https://www.googleapis.com/auth/compute",
93809	//     "https://www.googleapis.com/auth/compute.readonly"
93810	//   ]
93811	// }
93812
93813}
93814
93815// method id "compute.instances.update":
93816
93817type InstancesUpdateCall struct {
93818	s          *Service
93819	project    string
93820	zone       string
93821	instance   string
93822	instance2  *Instance
93823	urlParams_ gensupport.URLParams
93824	ctx_       context.Context
93825	header_    http.Header
93826}
93827
93828// Update: Updates an instance only if the necessary resources are
93829// available. This method can update only a specific set of instance
93830// properties. See  Updating a running instance for a list of updatable
93831// instance properties.
93832func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
93833	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93834	c.project = project
93835	c.zone = zone
93836	c.instance = instance
93837	c.instance2 = instance2
93838	return c
93839}
93840
93841// MinimalAction sets the optional parameter "minimalAction": Specifies
93842// the action to take when updating an instance even if the updated
93843// properties do not require it. If not specified, then Compute Engine
93844// acts based on the minimum action that the updated properties require.
93845//
93846// Possible values:
93847//   "INVALID"
93848//   "NO_EFFECT"
93849//   "REFRESH"
93850//   "RESTART"
93851func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
93852	c.urlParams_.Set("minimalAction", minimalAction)
93853	return c
93854}
93855
93856// MostDisruptiveAllowedAction sets the optional parameter
93857// "mostDisruptiveAllowedAction": Specifies the most disruptive action
93858// that can be taken on the instance as part of the update. Compute
93859// Engine returns an error if the instance properties require a more
93860// disruptive action as part of the instance update. Valid options from
93861// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
93862//
93863// Possible values:
93864//   "INVALID"
93865//   "NO_EFFECT"
93866//   "REFRESH"
93867//   "RESTART"
93868func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
93869	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
93870	return c
93871}
93872
93873// RequestId sets the optional parameter "requestId": An optional
93874// request ID to identify requests. Specify a unique request ID so that
93875// if you must retry your request, the server will know to ignore the
93876// request if it has already been completed.
93877//
93878// For example, consider a situation where you make an initial request
93879// and the request times out. If you make the request again with the
93880// same request ID, the server can check if original operation with the
93881// same request ID was received, and if so, will ignore the second
93882// request. This prevents clients from accidentally creating duplicate
93883// commitments.
93884//
93885// The request ID must be a valid UUID with the exception that zero UUID
93886// is not supported (00000000-0000-0000-0000-000000000000).
93887func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
93888	c.urlParams_.Set("requestId", requestId)
93889	return c
93890}
93891
93892// Fields allows partial responses to be retrieved. See
93893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93894// for more information.
93895func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
93896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93897	return c
93898}
93899
93900// Context sets the context to be used in this call's Do method. Any
93901// pending HTTP request will be aborted if the provided context is
93902// canceled.
93903func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
93904	c.ctx_ = ctx
93905	return c
93906}
93907
93908// Header returns an http.Header that can be modified by the caller to
93909// add HTTP headers to the request.
93910func (c *InstancesUpdateCall) Header() http.Header {
93911	if c.header_ == nil {
93912		c.header_ = make(http.Header)
93913	}
93914	return c.header_
93915}
93916
93917func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
93918	reqHeaders := make(http.Header)
93919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
93920	for k, v := range c.header_ {
93921		reqHeaders[k] = v
93922	}
93923	reqHeaders.Set("User-Agent", c.s.userAgent())
93924	var body io.Reader = nil
93925	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
93926	if err != nil {
93927		return nil, err
93928	}
93929	reqHeaders.Set("Content-Type", "application/json")
93930	c.urlParams_.Set("alt", alt)
93931	c.urlParams_.Set("prettyPrint", "false")
93932	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
93933	urls += "?" + c.urlParams_.Encode()
93934	req, err := http.NewRequest("PUT", urls, body)
93935	if err != nil {
93936		return nil, err
93937	}
93938	req.Header = reqHeaders
93939	googleapi.Expand(req.URL, map[string]string{
93940		"project":  c.project,
93941		"zone":     c.zone,
93942		"instance": c.instance,
93943	})
93944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93945}
93946
93947// Do executes the "compute.instances.update" call.
93948// Exactly one of *Operation or error will be non-nil. Any non-2xx
93949// status code is an error. Response headers are in either
93950// *Operation.ServerResponse.Header or (if a response was returned at
93951// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93952// to check whether the returned error was because
93953// http.StatusNotModified was returned.
93954func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93955	gensupport.SetOptions(c.urlParams_, opts...)
93956	res, err := c.doRequest("json")
93957	if res != nil && res.StatusCode == http.StatusNotModified {
93958		if res.Body != nil {
93959			res.Body.Close()
93960		}
93961		return nil, &googleapi.Error{
93962			Code:   res.StatusCode,
93963			Header: res.Header,
93964		}
93965	}
93966	if err != nil {
93967		return nil, err
93968	}
93969	defer googleapi.CloseBody(res)
93970	if err := googleapi.CheckResponse(res); err != nil {
93971		return nil, err
93972	}
93973	ret := &Operation{
93974		ServerResponse: googleapi.ServerResponse{
93975			Header:         res.Header,
93976			HTTPStatusCode: res.StatusCode,
93977		},
93978	}
93979	target := &ret
93980	if err := gensupport.DecodeResponse(target, res); err != nil {
93981		return nil, err
93982	}
93983	return ret, nil
93984	// {
93985	//   "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.",
93986	//   "httpMethod": "PUT",
93987	//   "id": "compute.instances.update",
93988	//   "parameterOrder": [
93989	//     "project",
93990	//     "zone",
93991	//     "instance"
93992	//   ],
93993	//   "parameters": {
93994	//     "instance": {
93995	//       "description": "Name of the instance resource to update.",
93996	//       "location": "path",
93997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93998	//       "required": true,
93999	//       "type": "string"
94000	//     },
94001	//     "minimalAction": {
94002	//       "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.",
94003	//       "enum": [
94004	//         "INVALID",
94005	//         "NO_EFFECT",
94006	//         "REFRESH",
94007	//         "RESTART"
94008	//       ],
94009	//       "enumDescriptions": [
94010	//         "",
94011	//         "",
94012	//         "",
94013	//         ""
94014	//       ],
94015	//       "location": "query",
94016	//       "type": "string"
94017	//     },
94018	//     "mostDisruptiveAllowedAction": {
94019	//       "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.",
94020	//       "enum": [
94021	//         "INVALID",
94022	//         "NO_EFFECT",
94023	//         "REFRESH",
94024	//         "RESTART"
94025	//       ],
94026	//       "enumDescriptions": [
94027	//         "",
94028	//         "",
94029	//         "",
94030	//         ""
94031	//       ],
94032	//       "location": "query",
94033	//       "type": "string"
94034	//     },
94035	//     "project": {
94036	//       "description": "Project ID for this request.",
94037	//       "location": "path",
94038	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94039	//       "required": true,
94040	//       "type": "string"
94041	//     },
94042	//     "requestId": {
94043	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94044	//       "location": "query",
94045	//       "type": "string"
94046	//     },
94047	//     "zone": {
94048	//       "description": "The name of the zone for this request.",
94049	//       "location": "path",
94050	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94051	//       "required": true,
94052	//       "type": "string"
94053	//     }
94054	//   },
94055	//   "path": "{project}/zones/{zone}/instances/{instance}",
94056	//   "request": {
94057	//     "$ref": "Instance"
94058	//   },
94059	//   "response": {
94060	//     "$ref": "Operation"
94061	//   },
94062	//   "scopes": [
94063	//     "https://www.googleapis.com/auth/cloud-platform",
94064	//     "https://www.googleapis.com/auth/compute"
94065	//   ]
94066	// }
94067
94068}
94069
94070// method id "compute.instances.updateAccessConfig":
94071
94072type InstancesUpdateAccessConfigCall struct {
94073	s            *Service
94074	project      string
94075	zone         string
94076	instance     string
94077	accessconfig *AccessConfig
94078	urlParams_   gensupport.URLParams
94079	ctx_         context.Context
94080	header_      http.Header
94081}
94082
94083// UpdateAccessConfig: Updates the specified access config from an
94084// instance's network interface with the data included in the request.
94085// This method supports PATCH semantics and uses the JSON merge patch
94086// format and processing rules.
94087func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
94088	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94089	c.project = project
94090	c.zone = zone
94091	c.instance = instance
94092	c.urlParams_.Set("networkInterface", networkInterface)
94093	c.accessconfig = accessconfig
94094	return c
94095}
94096
94097// RequestId sets the optional parameter "requestId": An optional
94098// request ID to identify requests. Specify a unique request ID so that
94099// if you must retry your request, the server will know to ignore the
94100// request if it has already been completed.
94101//
94102// For example, consider a situation where you make an initial request
94103// and the request times out. If you make the request again with the
94104// same request ID, the server can check if original operation with the
94105// same request ID was received, and if so, will ignore the second
94106// request. This prevents clients from accidentally creating duplicate
94107// commitments.
94108//
94109// The request ID must be a valid UUID with the exception that zero UUID
94110// is not supported (00000000-0000-0000-0000-000000000000).
94111func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
94112	c.urlParams_.Set("requestId", requestId)
94113	return c
94114}
94115
94116// Fields allows partial responses to be retrieved. See
94117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94118// for more information.
94119func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
94120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94121	return c
94122}
94123
94124// Context sets the context to be used in this call's Do method. Any
94125// pending HTTP request will be aborted if the provided context is
94126// canceled.
94127func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
94128	c.ctx_ = ctx
94129	return c
94130}
94131
94132// Header returns an http.Header that can be modified by the caller to
94133// add HTTP headers to the request.
94134func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
94135	if c.header_ == nil {
94136		c.header_ = make(http.Header)
94137	}
94138	return c.header_
94139}
94140
94141func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
94142	reqHeaders := make(http.Header)
94143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
94144	for k, v := range c.header_ {
94145		reqHeaders[k] = v
94146	}
94147	reqHeaders.Set("User-Agent", c.s.userAgent())
94148	var body io.Reader = nil
94149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
94150	if err != nil {
94151		return nil, err
94152	}
94153	reqHeaders.Set("Content-Type", "application/json")
94154	c.urlParams_.Set("alt", alt)
94155	c.urlParams_.Set("prettyPrint", "false")
94156	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
94157	urls += "?" + c.urlParams_.Encode()
94158	req, err := http.NewRequest("POST", urls, body)
94159	if err != nil {
94160		return nil, err
94161	}
94162	req.Header = reqHeaders
94163	googleapi.Expand(req.URL, map[string]string{
94164		"project":  c.project,
94165		"zone":     c.zone,
94166		"instance": c.instance,
94167	})
94168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94169}
94170
94171// Do executes the "compute.instances.updateAccessConfig" call.
94172// Exactly one of *Operation or error will be non-nil. Any non-2xx
94173// status code is an error. Response headers are in either
94174// *Operation.ServerResponse.Header or (if a response was returned at
94175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94176// to check whether the returned error was because
94177// http.StatusNotModified was returned.
94178func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94179	gensupport.SetOptions(c.urlParams_, opts...)
94180	res, err := c.doRequest("json")
94181	if res != nil && res.StatusCode == http.StatusNotModified {
94182		if res.Body != nil {
94183			res.Body.Close()
94184		}
94185		return nil, &googleapi.Error{
94186			Code:   res.StatusCode,
94187			Header: res.Header,
94188		}
94189	}
94190	if err != nil {
94191		return nil, err
94192	}
94193	defer googleapi.CloseBody(res)
94194	if err := googleapi.CheckResponse(res); err != nil {
94195		return nil, err
94196	}
94197	ret := &Operation{
94198		ServerResponse: googleapi.ServerResponse{
94199			Header:         res.Header,
94200			HTTPStatusCode: res.StatusCode,
94201		},
94202	}
94203	target := &ret
94204	if err := gensupport.DecodeResponse(target, res); err != nil {
94205		return nil, err
94206	}
94207	return ret, nil
94208	// {
94209	//   "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.",
94210	//   "httpMethod": "POST",
94211	//   "id": "compute.instances.updateAccessConfig",
94212	//   "parameterOrder": [
94213	//     "project",
94214	//     "zone",
94215	//     "instance",
94216	//     "networkInterface"
94217	//   ],
94218	//   "parameters": {
94219	//     "instance": {
94220	//       "description": "The instance name for this request.",
94221	//       "location": "path",
94222	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94223	//       "required": true,
94224	//       "type": "string"
94225	//     },
94226	//     "networkInterface": {
94227	//       "description": "The name of the network interface where the access config is attached.",
94228	//       "location": "query",
94229	//       "required": true,
94230	//       "type": "string"
94231	//     },
94232	//     "project": {
94233	//       "description": "Project ID for this request.",
94234	//       "location": "path",
94235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94236	//       "required": true,
94237	//       "type": "string"
94238	//     },
94239	//     "requestId": {
94240	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94241	//       "location": "query",
94242	//       "type": "string"
94243	//     },
94244	//     "zone": {
94245	//       "description": "The name of the zone for this request.",
94246	//       "location": "path",
94247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94248	//       "required": true,
94249	//       "type": "string"
94250	//     }
94251	//   },
94252	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
94253	//   "request": {
94254	//     "$ref": "AccessConfig"
94255	//   },
94256	//   "response": {
94257	//     "$ref": "Operation"
94258	//   },
94259	//   "scopes": [
94260	//     "https://www.googleapis.com/auth/cloud-platform",
94261	//     "https://www.googleapis.com/auth/compute"
94262	//   ]
94263	// }
94264
94265}
94266
94267// method id "compute.instances.updateDisplayDevice":
94268
94269type InstancesUpdateDisplayDeviceCall struct {
94270	s             *Service
94271	project       string
94272	zone          string
94273	instance      string
94274	displaydevice *DisplayDevice
94275	urlParams_    gensupport.URLParams
94276	ctx_          context.Context
94277	header_       http.Header
94278}
94279
94280// UpdateDisplayDevice: Updates the Display config for a VM instance.
94281// You can only use this method on a stopped VM instance. This method
94282// supports PATCH semantics and uses the JSON merge patch format and
94283// processing rules.
94284func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
94285	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94286	c.project = project
94287	c.zone = zone
94288	c.instance = instance
94289	c.displaydevice = displaydevice
94290	return c
94291}
94292
94293// RequestId sets the optional parameter "requestId": An optional
94294// request ID to identify requests. Specify a unique request ID so that
94295// if you must retry your request, the server will know to ignore the
94296// request if it has already been completed.
94297//
94298// For example, consider a situation where you make an initial request
94299// and the request times out. If you make the request again with the
94300// same request ID, the server can check if original operation with the
94301// same request ID was received, and if so, will ignore the second
94302// request. This prevents clients from accidentally creating duplicate
94303// commitments.
94304//
94305// The request ID must be a valid UUID with the exception that zero UUID
94306// is not supported (00000000-0000-0000-0000-000000000000).
94307func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
94308	c.urlParams_.Set("requestId", requestId)
94309	return c
94310}
94311
94312// Fields allows partial responses to be retrieved. See
94313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94314// for more information.
94315func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
94316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94317	return c
94318}
94319
94320// Context sets the context to be used in this call's Do method. Any
94321// pending HTTP request will be aborted if the provided context is
94322// canceled.
94323func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
94324	c.ctx_ = ctx
94325	return c
94326}
94327
94328// Header returns an http.Header that can be modified by the caller to
94329// add HTTP headers to the request.
94330func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
94331	if c.header_ == nil {
94332		c.header_ = make(http.Header)
94333	}
94334	return c.header_
94335}
94336
94337func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
94338	reqHeaders := make(http.Header)
94339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
94340	for k, v := range c.header_ {
94341		reqHeaders[k] = v
94342	}
94343	reqHeaders.Set("User-Agent", c.s.userAgent())
94344	var body io.Reader = nil
94345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
94346	if err != nil {
94347		return nil, err
94348	}
94349	reqHeaders.Set("Content-Type", "application/json")
94350	c.urlParams_.Set("alt", alt)
94351	c.urlParams_.Set("prettyPrint", "false")
94352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
94353	urls += "?" + c.urlParams_.Encode()
94354	req, err := http.NewRequest("PATCH", urls, body)
94355	if err != nil {
94356		return nil, err
94357	}
94358	req.Header = reqHeaders
94359	googleapi.Expand(req.URL, map[string]string{
94360		"project":  c.project,
94361		"zone":     c.zone,
94362		"instance": c.instance,
94363	})
94364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94365}
94366
94367// Do executes the "compute.instances.updateDisplayDevice" call.
94368// Exactly one of *Operation or error will be non-nil. Any non-2xx
94369// status code is an error. Response headers are in either
94370// *Operation.ServerResponse.Header or (if a response was returned at
94371// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94372// to check whether the returned error was because
94373// http.StatusNotModified was returned.
94374func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94375	gensupport.SetOptions(c.urlParams_, opts...)
94376	res, err := c.doRequest("json")
94377	if res != nil && res.StatusCode == http.StatusNotModified {
94378		if res.Body != nil {
94379			res.Body.Close()
94380		}
94381		return nil, &googleapi.Error{
94382			Code:   res.StatusCode,
94383			Header: res.Header,
94384		}
94385	}
94386	if err != nil {
94387		return nil, err
94388	}
94389	defer googleapi.CloseBody(res)
94390	if err := googleapi.CheckResponse(res); err != nil {
94391		return nil, err
94392	}
94393	ret := &Operation{
94394		ServerResponse: googleapi.ServerResponse{
94395			Header:         res.Header,
94396			HTTPStatusCode: res.StatusCode,
94397		},
94398	}
94399	target := &ret
94400	if err := gensupport.DecodeResponse(target, res); err != nil {
94401		return nil, err
94402	}
94403	return ret, nil
94404	// {
94405	//   "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.",
94406	//   "httpMethod": "PATCH",
94407	//   "id": "compute.instances.updateDisplayDevice",
94408	//   "parameterOrder": [
94409	//     "project",
94410	//     "zone",
94411	//     "instance"
94412	//   ],
94413	//   "parameters": {
94414	//     "instance": {
94415	//       "description": "Name of the instance scoping this request.",
94416	//       "location": "path",
94417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94418	//       "required": true,
94419	//       "type": "string"
94420	//     },
94421	//     "project": {
94422	//       "description": "Project ID for this request.",
94423	//       "location": "path",
94424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94425	//       "required": true,
94426	//       "type": "string"
94427	//     },
94428	//     "requestId": {
94429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94430	//       "location": "query",
94431	//       "type": "string"
94432	//     },
94433	//     "zone": {
94434	//       "description": "The name of the zone for this request.",
94435	//       "location": "path",
94436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94437	//       "required": true,
94438	//       "type": "string"
94439	//     }
94440	//   },
94441	//   "path": "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
94442	//   "request": {
94443	//     "$ref": "DisplayDevice"
94444	//   },
94445	//   "response": {
94446	//     "$ref": "Operation"
94447	//   },
94448	//   "scopes": [
94449	//     "https://www.googleapis.com/auth/cloud-platform",
94450	//     "https://www.googleapis.com/auth/compute"
94451	//   ]
94452	// }
94453
94454}
94455
94456// method id "compute.instances.updateNetworkInterface":
94457
94458type InstancesUpdateNetworkInterfaceCall struct {
94459	s                *Service
94460	project          string
94461	zone             string
94462	instance         string
94463	networkinterface *NetworkInterface
94464	urlParams_       gensupport.URLParams
94465	ctx_             context.Context
94466	header_          http.Header
94467}
94468
94469// UpdateNetworkInterface: Updates an instance's network interface. This
94470// method follows PATCH semantics.
94471func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
94472	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94473	c.project = project
94474	c.zone = zone
94475	c.instance = instance
94476	c.urlParams_.Set("networkInterface", networkInterface)
94477	c.networkinterface = networkinterface
94478	return c
94479}
94480
94481// RequestId sets the optional parameter "requestId": An optional
94482// request ID to identify requests. Specify a unique request ID so that
94483// if you must retry your request, the server will know to ignore the
94484// request if it has already been completed.
94485//
94486// For example, consider a situation where you make an initial request
94487// and the request times out. If you make the request again with the
94488// same request ID, the server can check if original operation with the
94489// same request ID was received, and if so, will ignore the second
94490// request. This prevents clients from accidentally creating duplicate
94491// commitments.
94492//
94493// The request ID must be a valid UUID with the exception that zero UUID
94494// is not supported (00000000-0000-0000-0000-000000000000).
94495func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
94496	c.urlParams_.Set("requestId", requestId)
94497	return c
94498}
94499
94500// Fields allows partial responses to be retrieved. See
94501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94502// for more information.
94503func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
94504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94505	return c
94506}
94507
94508// Context sets the context to be used in this call's Do method. Any
94509// pending HTTP request will be aborted if the provided context is
94510// canceled.
94511func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
94512	c.ctx_ = ctx
94513	return c
94514}
94515
94516// Header returns an http.Header that can be modified by the caller to
94517// add HTTP headers to the request.
94518func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
94519	if c.header_ == nil {
94520		c.header_ = make(http.Header)
94521	}
94522	return c.header_
94523}
94524
94525func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
94526	reqHeaders := make(http.Header)
94527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
94528	for k, v := range c.header_ {
94529		reqHeaders[k] = v
94530	}
94531	reqHeaders.Set("User-Agent", c.s.userAgent())
94532	var body io.Reader = nil
94533	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
94534	if err != nil {
94535		return nil, err
94536	}
94537	reqHeaders.Set("Content-Type", "application/json")
94538	c.urlParams_.Set("alt", alt)
94539	c.urlParams_.Set("prettyPrint", "false")
94540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
94541	urls += "?" + c.urlParams_.Encode()
94542	req, err := http.NewRequest("PATCH", urls, body)
94543	if err != nil {
94544		return nil, err
94545	}
94546	req.Header = reqHeaders
94547	googleapi.Expand(req.URL, map[string]string{
94548		"project":  c.project,
94549		"zone":     c.zone,
94550		"instance": c.instance,
94551	})
94552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94553}
94554
94555// Do executes the "compute.instances.updateNetworkInterface" call.
94556// Exactly one of *Operation or error will be non-nil. Any non-2xx
94557// status code is an error. Response headers are in either
94558// *Operation.ServerResponse.Header or (if a response was returned at
94559// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94560// to check whether the returned error was because
94561// http.StatusNotModified was returned.
94562func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94563	gensupport.SetOptions(c.urlParams_, opts...)
94564	res, err := c.doRequest("json")
94565	if res != nil && res.StatusCode == http.StatusNotModified {
94566		if res.Body != nil {
94567			res.Body.Close()
94568		}
94569		return nil, &googleapi.Error{
94570			Code:   res.StatusCode,
94571			Header: res.Header,
94572		}
94573	}
94574	if err != nil {
94575		return nil, err
94576	}
94577	defer googleapi.CloseBody(res)
94578	if err := googleapi.CheckResponse(res); err != nil {
94579		return nil, err
94580	}
94581	ret := &Operation{
94582		ServerResponse: googleapi.ServerResponse{
94583			Header:         res.Header,
94584			HTTPStatusCode: res.StatusCode,
94585		},
94586	}
94587	target := &ret
94588	if err := gensupport.DecodeResponse(target, res); err != nil {
94589		return nil, err
94590	}
94591	return ret, nil
94592	// {
94593	//   "description": "Updates an instance's network interface. This method follows PATCH semantics.",
94594	//   "httpMethod": "PATCH",
94595	//   "id": "compute.instances.updateNetworkInterface",
94596	//   "parameterOrder": [
94597	//     "project",
94598	//     "zone",
94599	//     "instance",
94600	//     "networkInterface"
94601	//   ],
94602	//   "parameters": {
94603	//     "instance": {
94604	//       "description": "The instance name for this request.",
94605	//       "location": "path",
94606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94607	//       "required": true,
94608	//       "type": "string"
94609	//     },
94610	//     "networkInterface": {
94611	//       "description": "The name of the network interface to update.",
94612	//       "location": "query",
94613	//       "required": true,
94614	//       "type": "string"
94615	//     },
94616	//     "project": {
94617	//       "description": "Project ID for this request.",
94618	//       "location": "path",
94619	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94620	//       "required": true,
94621	//       "type": "string"
94622	//     },
94623	//     "requestId": {
94624	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94625	//       "location": "query",
94626	//       "type": "string"
94627	//     },
94628	//     "zone": {
94629	//       "description": "The name of the zone for this request.",
94630	//       "location": "path",
94631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94632	//       "required": true,
94633	//       "type": "string"
94634	//     }
94635	//   },
94636	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
94637	//   "request": {
94638	//     "$ref": "NetworkInterface"
94639	//   },
94640	//   "response": {
94641	//     "$ref": "Operation"
94642	//   },
94643	//   "scopes": [
94644	//     "https://www.googleapis.com/auth/cloud-platform",
94645	//     "https://www.googleapis.com/auth/compute"
94646	//   ]
94647	// }
94648
94649}
94650
94651// method id "compute.instances.updateShieldedInstanceConfig":
94652
94653type InstancesUpdateShieldedInstanceConfigCall struct {
94654	s                      *Service
94655	project                string
94656	zone                   string
94657	instance               string
94658	shieldedinstanceconfig *ShieldedInstanceConfig
94659	urlParams_             gensupport.URLParams
94660	ctx_                   context.Context
94661	header_                http.Header
94662}
94663
94664// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
94665// for an instance. You can only use this method on a stopped instance.
94666// This method supports PATCH semantics and uses the JSON merge patch
94667// format and processing rules.
94668func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
94669	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94670	c.project = project
94671	c.zone = zone
94672	c.instance = instance
94673	c.shieldedinstanceconfig = shieldedinstanceconfig
94674	return c
94675}
94676
94677// RequestId sets the optional parameter "requestId": An optional
94678// request ID to identify requests. Specify a unique request ID so that
94679// if you must retry your request, the server will know to ignore the
94680// request if it has already been completed.
94681//
94682// For example, consider a situation where you make an initial request
94683// and the request times out. If you make the request again with the
94684// same request ID, the server can check if original operation with the
94685// same request ID was received, and if so, will ignore the second
94686// request. This prevents clients from accidentally creating duplicate
94687// commitments.
94688//
94689// The request ID must be a valid UUID with the exception that zero UUID
94690// is not supported (00000000-0000-0000-0000-000000000000).
94691func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
94692	c.urlParams_.Set("requestId", requestId)
94693	return c
94694}
94695
94696// Fields allows partial responses to be retrieved. See
94697// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94698// for more information.
94699func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
94700	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94701	return c
94702}
94703
94704// Context sets the context to be used in this call's Do method. Any
94705// pending HTTP request will be aborted if the provided context is
94706// canceled.
94707func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
94708	c.ctx_ = ctx
94709	return c
94710}
94711
94712// Header returns an http.Header that can be modified by the caller to
94713// add HTTP headers to the request.
94714func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
94715	if c.header_ == nil {
94716		c.header_ = make(http.Header)
94717	}
94718	return c.header_
94719}
94720
94721func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
94722	reqHeaders := make(http.Header)
94723	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
94724	for k, v := range c.header_ {
94725		reqHeaders[k] = v
94726	}
94727	reqHeaders.Set("User-Agent", c.s.userAgent())
94728	var body io.Reader = nil
94729	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
94730	if err != nil {
94731		return nil, err
94732	}
94733	reqHeaders.Set("Content-Type", "application/json")
94734	c.urlParams_.Set("alt", alt)
94735	c.urlParams_.Set("prettyPrint", "false")
94736	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
94737	urls += "?" + c.urlParams_.Encode()
94738	req, err := http.NewRequest("PATCH", urls, body)
94739	if err != nil {
94740		return nil, err
94741	}
94742	req.Header = reqHeaders
94743	googleapi.Expand(req.URL, map[string]string{
94744		"project":  c.project,
94745		"zone":     c.zone,
94746		"instance": c.instance,
94747	})
94748	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94749}
94750
94751// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
94752// Exactly one of *Operation or error will be non-nil. Any non-2xx
94753// status code is an error. Response headers are in either
94754// *Operation.ServerResponse.Header or (if a response was returned at
94755// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94756// to check whether the returned error was because
94757// http.StatusNotModified was returned.
94758func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94759	gensupport.SetOptions(c.urlParams_, opts...)
94760	res, err := c.doRequest("json")
94761	if res != nil && res.StatusCode == http.StatusNotModified {
94762		if res.Body != nil {
94763			res.Body.Close()
94764		}
94765		return nil, &googleapi.Error{
94766			Code:   res.StatusCode,
94767			Header: res.Header,
94768		}
94769	}
94770	if err != nil {
94771		return nil, err
94772	}
94773	defer googleapi.CloseBody(res)
94774	if err := googleapi.CheckResponse(res); err != nil {
94775		return nil, err
94776	}
94777	ret := &Operation{
94778		ServerResponse: googleapi.ServerResponse{
94779			Header:         res.Header,
94780			HTTPStatusCode: res.StatusCode,
94781		},
94782	}
94783	target := &ret
94784	if err := gensupport.DecodeResponse(target, res); err != nil {
94785		return nil, err
94786	}
94787	return ret, nil
94788	// {
94789	//   "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.",
94790	//   "httpMethod": "PATCH",
94791	//   "id": "compute.instances.updateShieldedInstanceConfig",
94792	//   "parameterOrder": [
94793	//     "project",
94794	//     "zone",
94795	//     "instance"
94796	//   ],
94797	//   "parameters": {
94798	//     "instance": {
94799	//       "description": "Name or id of the instance scoping this request.",
94800	//       "location": "path",
94801	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94802	//       "required": true,
94803	//       "type": "string"
94804	//     },
94805	//     "project": {
94806	//       "description": "Project ID for this request.",
94807	//       "location": "path",
94808	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94809	//       "required": true,
94810	//       "type": "string"
94811	//     },
94812	//     "requestId": {
94813	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94814	//       "location": "query",
94815	//       "type": "string"
94816	//     },
94817	//     "zone": {
94818	//       "description": "The name of the zone for this request.",
94819	//       "location": "path",
94820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94821	//       "required": true,
94822	//       "type": "string"
94823	//     }
94824	//   },
94825	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
94826	//   "request": {
94827	//     "$ref": "ShieldedInstanceConfig"
94828	//   },
94829	//   "response": {
94830	//     "$ref": "Operation"
94831	//   },
94832	//   "scopes": [
94833	//     "https://www.googleapis.com/auth/cloud-platform",
94834	//     "https://www.googleapis.com/auth/compute"
94835	//   ]
94836	// }
94837
94838}
94839
94840// method id "compute.instances.updateShieldedVmConfig":
94841
94842type InstancesUpdateShieldedVmConfigCall struct {
94843	s                *Service
94844	project          string
94845	zone             string
94846	instance         string
94847	shieldedvmconfig *ShieldedVmConfig
94848	urlParams_       gensupport.URLParams
94849	ctx_             context.Context
94850	header_          http.Header
94851}
94852
94853// UpdateShieldedVmConfig: Updates the Shielded VM config for a VM
94854// instance. You can only use this method on a stopped VM instance. This
94855// method supports PATCH semantics and uses the JSON merge patch format
94856// and processing rules.
94857func (r *InstancesService) UpdateShieldedVmConfig(project string, zone string, instance string, shieldedvmconfig *ShieldedVmConfig) *InstancesUpdateShieldedVmConfigCall {
94858	c := &InstancesUpdateShieldedVmConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94859	c.project = project
94860	c.zone = zone
94861	c.instance = instance
94862	c.shieldedvmconfig = shieldedvmconfig
94863	return c
94864}
94865
94866// RequestId sets the optional parameter "requestId": An optional
94867// request ID to identify requests. Specify a unique request ID so that
94868// if you must retry your request, the server will know to ignore the
94869// request if it has already been completed.
94870//
94871// For example, consider a situation where you make an initial request
94872// and the request times out. If you make the request again with the
94873// same request ID, the server can check if original operation with the
94874// same request ID was received, and if so, will ignore the second
94875// request. This prevents clients from accidentally creating duplicate
94876// commitments.
94877//
94878// The request ID must be a valid UUID with the exception that zero UUID
94879// is not supported (00000000-0000-0000-0000-000000000000).
94880func (c *InstancesUpdateShieldedVmConfigCall) RequestId(requestId string) *InstancesUpdateShieldedVmConfigCall {
94881	c.urlParams_.Set("requestId", requestId)
94882	return c
94883}
94884
94885// Fields allows partial responses to be retrieved. See
94886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94887// for more information.
94888func (c *InstancesUpdateShieldedVmConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedVmConfigCall {
94889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94890	return c
94891}
94892
94893// Context sets the context to be used in this call's Do method. Any
94894// pending HTTP request will be aborted if the provided context is
94895// canceled.
94896func (c *InstancesUpdateShieldedVmConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedVmConfigCall {
94897	c.ctx_ = ctx
94898	return c
94899}
94900
94901// Header returns an http.Header that can be modified by the caller to
94902// add HTTP headers to the request.
94903func (c *InstancesUpdateShieldedVmConfigCall) Header() http.Header {
94904	if c.header_ == nil {
94905		c.header_ = make(http.Header)
94906	}
94907	return c.header_
94908}
94909
94910func (c *InstancesUpdateShieldedVmConfigCall) doRequest(alt string) (*http.Response, error) {
94911	reqHeaders := make(http.Header)
94912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
94913	for k, v := range c.header_ {
94914		reqHeaders[k] = v
94915	}
94916	reqHeaders.Set("User-Agent", c.s.userAgent())
94917	var body io.Reader = nil
94918	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmconfig)
94919	if err != nil {
94920		return nil, err
94921	}
94922	reqHeaders.Set("Content-Type", "application/json")
94923	c.urlParams_.Set("alt", alt)
94924	c.urlParams_.Set("prettyPrint", "false")
94925	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig")
94926	urls += "?" + c.urlParams_.Encode()
94927	req, err := http.NewRequest("PATCH", urls, body)
94928	if err != nil {
94929		return nil, err
94930	}
94931	req.Header = reqHeaders
94932	googleapi.Expand(req.URL, map[string]string{
94933		"project":  c.project,
94934		"zone":     c.zone,
94935		"instance": c.instance,
94936	})
94937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94938}
94939
94940// Do executes the "compute.instances.updateShieldedVmConfig" call.
94941// Exactly one of *Operation or error will be non-nil. Any non-2xx
94942// status code is an error. Response headers are in either
94943// *Operation.ServerResponse.Header or (if a response was returned at
94944// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94945// to check whether the returned error was because
94946// http.StatusNotModified was returned.
94947func (c *InstancesUpdateShieldedVmConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94948	gensupport.SetOptions(c.urlParams_, opts...)
94949	res, err := c.doRequest("json")
94950	if res != nil && res.StatusCode == http.StatusNotModified {
94951		if res.Body != nil {
94952			res.Body.Close()
94953		}
94954		return nil, &googleapi.Error{
94955			Code:   res.StatusCode,
94956			Header: res.Header,
94957		}
94958	}
94959	if err != nil {
94960		return nil, err
94961	}
94962	defer googleapi.CloseBody(res)
94963	if err := googleapi.CheckResponse(res); err != nil {
94964		return nil, err
94965	}
94966	ret := &Operation{
94967		ServerResponse: googleapi.ServerResponse{
94968			Header:         res.Header,
94969			HTTPStatusCode: res.StatusCode,
94970		},
94971	}
94972	target := &ret
94973	if err := gensupport.DecodeResponse(target, res); err != nil {
94974		return nil, err
94975	}
94976	return ret, nil
94977	// {
94978	//   "description": "Updates the Shielded VM config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
94979	//   "httpMethod": "PATCH",
94980	//   "id": "compute.instances.updateShieldedVmConfig",
94981	//   "parameterOrder": [
94982	//     "project",
94983	//     "zone",
94984	//     "instance"
94985	//   ],
94986	//   "parameters": {
94987	//     "instance": {
94988	//       "description": "Name of the instance scoping this request.",
94989	//       "location": "path",
94990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94991	//       "required": true,
94992	//       "type": "string"
94993	//     },
94994	//     "project": {
94995	//       "description": "Project ID for this request.",
94996	//       "location": "path",
94997	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94998	//       "required": true,
94999	//       "type": "string"
95000	//     },
95001	//     "requestId": {
95002	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95003	//       "location": "query",
95004	//       "type": "string"
95005	//     },
95006	//     "zone": {
95007	//       "description": "The name of the zone for this request.",
95008	//       "location": "path",
95009	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95010	//       "required": true,
95011	//       "type": "string"
95012	//     }
95013	//   },
95014	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig",
95015	//   "request": {
95016	//     "$ref": "ShieldedVmConfig"
95017	//   },
95018	//   "response": {
95019	//     "$ref": "Operation"
95020	//   },
95021	//   "scopes": [
95022	//     "https://www.googleapis.com/auth/cloud-platform",
95023	//     "https://www.googleapis.com/auth/compute"
95024	//   ]
95025	// }
95026
95027}
95028
95029// method id "compute.interconnectAttachments.aggregatedList":
95030
95031type InterconnectAttachmentsAggregatedListCall struct {
95032	s            *Service
95033	project      string
95034	urlParams_   gensupport.URLParams
95035	ifNoneMatch_ string
95036	ctx_         context.Context
95037	header_      http.Header
95038}
95039
95040// AggregatedList: Retrieves an aggregated list of interconnect
95041// attachments.
95042func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
95043	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95044	c.project = project
95045	return c
95046}
95047
95048// Filter sets the optional parameter "filter": A filter expression that
95049// filters resources listed in the response. The expression must specify
95050// the field name, a comparison operator, and the value that you want to
95051// use for filtering. The value must be a string, a number, or a
95052// boolean. The comparison operator must be either `=`, `!=`, `>`, or
95053// `<`.
95054//
95055// For example, if you are filtering Compute Engine instances, you can
95056// exclude instances named `example-instance` by specifying `name !=
95057// example-instance`.
95058//
95059// You can also filter nested fields. For example, you could specify
95060// `scheduling.automaticRestart = false` to include instances only if
95061// they are not scheduled for automatic restarts. You can use filtering
95062// on nested fields to filter based on resource labels.
95063//
95064// To filter on multiple expressions, provide each separate expression
95065// within parentheses. For example: ``` (scheduling.automaticRestart =
95066// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
95067// is an `AND` expression. However, you can include `AND` and `OR`
95068// expressions explicitly. For example: ``` (cpuPlatform = "Intel
95069// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
95070// (scheduling.automaticRestart = true) ```
95071func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
95072	c.urlParams_.Set("filter", filter)
95073	return c
95074}
95075
95076// IncludeAllScopes sets the optional parameter "includeAllScopes":
95077// Indicates whether every visible scope for each scope type (zone,
95078// region, global) should be included in the response. For new resource
95079// types added after this field, the flag has no effect as new resource
95080// types will always include every visible scope for each scope type in
95081// response. For resource types which predate this field, if this flag
95082// is omitted or false, only scopes of the scope types where the
95083// resource type is expected to be found will be included.
95084func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
95085	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
95086	return c
95087}
95088
95089// MaxResults sets the optional parameter "maxResults": The maximum
95090// number of results per page that should be returned. If the number of
95091// available results is larger than `maxResults`, Compute Engine returns
95092// a `nextPageToken` that can be used to get the next page of results in
95093// subsequent list requests. Acceptable values are `0` to `500`,
95094// inclusive. (Default: `500`)
95095func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
95096	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95097	return c
95098}
95099
95100// OrderBy sets the optional parameter "orderBy": Sorts list results by
95101// a certain order. By default, results are returned in alphanumerical
95102// order based on the resource name.
95103//
95104// You can also sort results in descending order based on the creation
95105// timestamp using `orderBy="creationTimestamp desc". This sorts
95106// results based on the `creationTimestamp` field in reverse
95107// chronological order (newest result first). Use this to sort resources
95108// like operations so that the newest operation is returned
95109// first.
95110//
95111// Currently, only sorting by `name` or `creationTimestamp desc` is
95112// supported.
95113func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
95114	c.urlParams_.Set("orderBy", orderBy)
95115	return c
95116}
95117
95118// PageToken sets the optional parameter "pageToken": Specifies a page
95119// token to use. Set `pageToken` to the `nextPageToken` returned by a
95120// previous list request to get the next page of results.
95121func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
95122	c.urlParams_.Set("pageToken", pageToken)
95123	return c
95124}
95125
95126// ReturnPartialSuccess sets the optional parameter
95127// "returnPartialSuccess": Opt-in for partial success behavior which
95128// provides partial results in case of failure. The default value is
95129// false and the logic is the same as today.
95130func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall {
95131	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
95132	return c
95133}
95134
95135// Fields allows partial responses to be retrieved. See
95136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95137// for more information.
95138func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
95139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95140	return c
95141}
95142
95143// IfNoneMatch sets the optional parameter which makes the operation
95144// fail if the object's ETag matches the given value. This is useful for
95145// getting updates only after the object has changed since the last
95146// request. Use googleapi.IsNotModified to check whether the response
95147// error from Do is the result of In-None-Match.
95148func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
95149	c.ifNoneMatch_ = entityTag
95150	return c
95151}
95152
95153// Context sets the context to be used in this call's Do method. Any
95154// pending HTTP request will be aborted if the provided context is
95155// canceled.
95156func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
95157	c.ctx_ = ctx
95158	return c
95159}
95160
95161// Header returns an http.Header that can be modified by the caller to
95162// add HTTP headers to the request.
95163func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
95164	if c.header_ == nil {
95165		c.header_ = make(http.Header)
95166	}
95167	return c.header_
95168}
95169
95170func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
95171	reqHeaders := make(http.Header)
95172	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
95173	for k, v := range c.header_ {
95174		reqHeaders[k] = v
95175	}
95176	reqHeaders.Set("User-Agent", c.s.userAgent())
95177	if c.ifNoneMatch_ != "" {
95178		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95179	}
95180	var body io.Reader = nil
95181	c.urlParams_.Set("alt", alt)
95182	c.urlParams_.Set("prettyPrint", "false")
95183	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
95184	urls += "?" + c.urlParams_.Encode()
95185	req, err := http.NewRequest("GET", urls, body)
95186	if err != nil {
95187		return nil, err
95188	}
95189	req.Header = reqHeaders
95190	googleapi.Expand(req.URL, map[string]string{
95191		"project": c.project,
95192	})
95193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95194}
95195
95196// Do executes the "compute.interconnectAttachments.aggregatedList" call.
95197// Exactly one of *InterconnectAttachmentAggregatedList or error will be
95198// non-nil. Any non-2xx status code is an error. Response headers are in
95199// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
95200// (if a response was returned at all) in
95201// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
95202// whether the returned error was because http.StatusNotModified was
95203// returned.
95204func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
95205	gensupport.SetOptions(c.urlParams_, opts...)
95206	res, err := c.doRequest("json")
95207	if res != nil && res.StatusCode == http.StatusNotModified {
95208		if res.Body != nil {
95209			res.Body.Close()
95210		}
95211		return nil, &googleapi.Error{
95212			Code:   res.StatusCode,
95213			Header: res.Header,
95214		}
95215	}
95216	if err != nil {
95217		return nil, err
95218	}
95219	defer googleapi.CloseBody(res)
95220	if err := googleapi.CheckResponse(res); err != nil {
95221		return nil, err
95222	}
95223	ret := &InterconnectAttachmentAggregatedList{
95224		ServerResponse: googleapi.ServerResponse{
95225			Header:         res.Header,
95226			HTTPStatusCode: res.StatusCode,
95227		},
95228	}
95229	target := &ret
95230	if err := gensupport.DecodeResponse(target, res); err != nil {
95231		return nil, err
95232	}
95233	return ret, nil
95234	// {
95235	//   "description": "Retrieves an aggregated list of interconnect attachments.",
95236	//   "httpMethod": "GET",
95237	//   "id": "compute.interconnectAttachments.aggregatedList",
95238	//   "parameterOrder": [
95239	//     "project"
95240	//   ],
95241	//   "parameters": {
95242	//     "filter": {
95243	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
95244	//       "location": "query",
95245	//       "type": "string"
95246	//     },
95247	//     "includeAllScopes": {
95248	//       "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.",
95249	//       "location": "query",
95250	//       "type": "boolean"
95251	//     },
95252	//     "maxResults": {
95253	//       "default": "500",
95254	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
95255	//       "format": "uint32",
95256	//       "location": "query",
95257	//       "minimum": "0",
95258	//       "type": "integer"
95259	//     },
95260	//     "orderBy": {
95261	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
95262	//       "location": "query",
95263	//       "type": "string"
95264	//     },
95265	//     "pageToken": {
95266	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
95267	//       "location": "query",
95268	//       "type": "string"
95269	//     },
95270	//     "project": {
95271	//       "description": "Project ID for this request.",
95272	//       "location": "path",
95273	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95274	//       "required": true,
95275	//       "type": "string"
95276	//     },
95277	//     "returnPartialSuccess": {
95278	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
95279	//       "location": "query",
95280	//       "type": "boolean"
95281	//     }
95282	//   },
95283	//   "path": "{project}/aggregated/interconnectAttachments",
95284	//   "response": {
95285	//     "$ref": "InterconnectAttachmentAggregatedList"
95286	//   },
95287	//   "scopes": [
95288	//     "https://www.googleapis.com/auth/cloud-platform",
95289	//     "https://www.googleapis.com/auth/compute",
95290	//     "https://www.googleapis.com/auth/compute.readonly"
95291	//   ]
95292	// }
95293
95294}
95295
95296// Pages invokes f for each page of results.
95297// A non-nil error returned from f will halt the iteration.
95298// The provided context supersedes any context provided to the Context method.
95299func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
95300	c.ctx_ = ctx
95301	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
95302	for {
95303		x, err := c.Do()
95304		if err != nil {
95305			return err
95306		}
95307		if err := f(x); err != nil {
95308			return err
95309		}
95310		if x.NextPageToken == "" {
95311			return nil
95312		}
95313		c.PageToken(x.NextPageToken)
95314	}
95315}
95316
95317// method id "compute.interconnectAttachments.delete":
95318
95319type InterconnectAttachmentsDeleteCall struct {
95320	s                      *Service
95321	project                string
95322	region                 string
95323	interconnectAttachment string
95324	urlParams_             gensupport.URLParams
95325	ctx_                   context.Context
95326	header_                http.Header
95327}
95328
95329// Delete: Deletes the specified interconnect attachment.
95330func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
95331	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95332	c.project = project
95333	c.region = region
95334	c.interconnectAttachment = interconnectAttachment
95335	return c
95336}
95337
95338// RequestId sets the optional parameter "requestId": An optional
95339// request ID to identify requests. Specify a unique request ID so that
95340// if you must retry your request, the server will know to ignore the
95341// request if it has already been completed.
95342//
95343// For example, consider a situation where you make an initial request
95344// and the request times out. If you make the request again with the
95345// same request ID, the server can check if original operation with the
95346// same request ID was received, and if so, will ignore the second
95347// request. This prevents clients from accidentally creating duplicate
95348// commitments.
95349//
95350// The request ID must be a valid UUID with the exception that zero UUID
95351// is not supported (00000000-0000-0000-0000-000000000000).
95352func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
95353	c.urlParams_.Set("requestId", requestId)
95354	return c
95355}
95356
95357// Fields allows partial responses to be retrieved. See
95358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95359// for more information.
95360func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
95361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95362	return c
95363}
95364
95365// Context sets the context to be used in this call's Do method. Any
95366// pending HTTP request will be aborted if the provided context is
95367// canceled.
95368func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
95369	c.ctx_ = ctx
95370	return c
95371}
95372
95373// Header returns an http.Header that can be modified by the caller to
95374// add HTTP headers to the request.
95375func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
95376	if c.header_ == nil {
95377		c.header_ = make(http.Header)
95378	}
95379	return c.header_
95380}
95381
95382func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
95383	reqHeaders := make(http.Header)
95384	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
95385	for k, v := range c.header_ {
95386		reqHeaders[k] = v
95387	}
95388	reqHeaders.Set("User-Agent", c.s.userAgent())
95389	var body io.Reader = nil
95390	c.urlParams_.Set("alt", alt)
95391	c.urlParams_.Set("prettyPrint", "false")
95392	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
95393	urls += "?" + c.urlParams_.Encode()
95394	req, err := http.NewRequest("DELETE", urls, body)
95395	if err != nil {
95396		return nil, err
95397	}
95398	req.Header = reqHeaders
95399	googleapi.Expand(req.URL, map[string]string{
95400		"project":                c.project,
95401		"region":                 c.region,
95402		"interconnectAttachment": c.interconnectAttachment,
95403	})
95404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95405}
95406
95407// Do executes the "compute.interconnectAttachments.delete" call.
95408// Exactly one of *Operation or error will be non-nil. Any non-2xx
95409// status code is an error. Response headers are in either
95410// *Operation.ServerResponse.Header or (if a response was returned at
95411// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95412// to check whether the returned error was because
95413// http.StatusNotModified was returned.
95414func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95415	gensupport.SetOptions(c.urlParams_, opts...)
95416	res, err := c.doRequest("json")
95417	if res != nil && res.StatusCode == http.StatusNotModified {
95418		if res.Body != nil {
95419			res.Body.Close()
95420		}
95421		return nil, &googleapi.Error{
95422			Code:   res.StatusCode,
95423			Header: res.Header,
95424		}
95425	}
95426	if err != nil {
95427		return nil, err
95428	}
95429	defer googleapi.CloseBody(res)
95430	if err := googleapi.CheckResponse(res); err != nil {
95431		return nil, err
95432	}
95433	ret := &Operation{
95434		ServerResponse: googleapi.ServerResponse{
95435			Header:         res.Header,
95436			HTTPStatusCode: res.StatusCode,
95437		},
95438	}
95439	target := &ret
95440	if err := gensupport.DecodeResponse(target, res); err != nil {
95441		return nil, err
95442	}
95443	return ret, nil
95444	// {
95445	//   "description": "Deletes the specified interconnect attachment.",
95446	//   "httpMethod": "DELETE",
95447	//   "id": "compute.interconnectAttachments.delete",
95448	//   "parameterOrder": [
95449	//     "project",
95450	//     "region",
95451	//     "interconnectAttachment"
95452	//   ],
95453	//   "parameters": {
95454	//     "interconnectAttachment": {
95455	//       "description": "Name of the interconnect attachment to delete.",
95456	//       "location": "path",
95457	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95458	//       "required": true,
95459	//       "type": "string"
95460	//     },
95461	//     "project": {
95462	//       "description": "Project ID for this request.",
95463	//       "location": "path",
95464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95465	//       "required": true,
95466	//       "type": "string"
95467	//     },
95468	//     "region": {
95469	//       "description": "Name of the region for this request.",
95470	//       "location": "path",
95471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95472	//       "required": true,
95473	//       "type": "string"
95474	//     },
95475	//     "requestId": {
95476	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95477	//       "location": "query",
95478	//       "type": "string"
95479	//     }
95480	//   },
95481	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
95482	//   "response": {
95483	//     "$ref": "Operation"
95484	//   },
95485	//   "scopes": [
95486	//     "https://www.googleapis.com/auth/cloud-platform",
95487	//     "https://www.googleapis.com/auth/compute"
95488	//   ]
95489	// }
95490
95491}
95492
95493// method id "compute.interconnectAttachments.get":
95494
95495type InterconnectAttachmentsGetCall struct {
95496	s                      *Service
95497	project                string
95498	region                 string
95499	interconnectAttachment string
95500	urlParams_             gensupport.URLParams
95501	ifNoneMatch_           string
95502	ctx_                   context.Context
95503	header_                http.Header
95504}
95505
95506// Get: Returns the specified interconnect attachment.
95507func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
95508	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95509	c.project = project
95510	c.region = region
95511	c.interconnectAttachment = interconnectAttachment
95512	return c
95513}
95514
95515// Fields allows partial responses to be retrieved. See
95516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95517// for more information.
95518func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
95519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95520	return c
95521}
95522
95523// IfNoneMatch sets the optional parameter which makes the operation
95524// fail if the object's ETag matches the given value. This is useful for
95525// getting updates only after the object has changed since the last
95526// request. Use googleapi.IsNotModified to check whether the response
95527// error from Do is the result of In-None-Match.
95528func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
95529	c.ifNoneMatch_ = entityTag
95530	return c
95531}
95532
95533// Context sets the context to be used in this call's Do method. Any
95534// pending HTTP request will be aborted if the provided context is
95535// canceled.
95536func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
95537	c.ctx_ = ctx
95538	return c
95539}
95540
95541// Header returns an http.Header that can be modified by the caller to
95542// add HTTP headers to the request.
95543func (c *InterconnectAttachmentsGetCall) Header() http.Header {
95544	if c.header_ == nil {
95545		c.header_ = make(http.Header)
95546	}
95547	return c.header_
95548}
95549
95550func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
95551	reqHeaders := make(http.Header)
95552	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
95553	for k, v := range c.header_ {
95554		reqHeaders[k] = v
95555	}
95556	reqHeaders.Set("User-Agent", c.s.userAgent())
95557	if c.ifNoneMatch_ != "" {
95558		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95559	}
95560	var body io.Reader = nil
95561	c.urlParams_.Set("alt", alt)
95562	c.urlParams_.Set("prettyPrint", "false")
95563	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
95564	urls += "?" + c.urlParams_.Encode()
95565	req, err := http.NewRequest("GET", urls, body)
95566	if err != nil {
95567		return nil, err
95568	}
95569	req.Header = reqHeaders
95570	googleapi.Expand(req.URL, map[string]string{
95571		"project":                c.project,
95572		"region":                 c.region,
95573		"interconnectAttachment": c.interconnectAttachment,
95574	})
95575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95576}
95577
95578// Do executes the "compute.interconnectAttachments.get" call.
95579// Exactly one of *InterconnectAttachment or error will be non-nil. Any
95580// non-2xx status code is an error. Response headers are in either
95581// *InterconnectAttachment.ServerResponse.Header or (if a response was
95582// returned at all) in error.(*googleapi.Error).Header. Use
95583// googleapi.IsNotModified to check whether the returned error was
95584// because http.StatusNotModified was returned.
95585func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
95586	gensupport.SetOptions(c.urlParams_, opts...)
95587	res, err := c.doRequest("json")
95588	if res != nil && res.StatusCode == http.StatusNotModified {
95589		if res.Body != nil {
95590			res.Body.Close()
95591		}
95592		return nil, &googleapi.Error{
95593			Code:   res.StatusCode,
95594			Header: res.Header,
95595		}
95596	}
95597	if err != nil {
95598		return nil, err
95599	}
95600	defer googleapi.CloseBody(res)
95601	if err := googleapi.CheckResponse(res); err != nil {
95602		return nil, err
95603	}
95604	ret := &InterconnectAttachment{
95605		ServerResponse: googleapi.ServerResponse{
95606			Header:         res.Header,
95607			HTTPStatusCode: res.StatusCode,
95608		},
95609	}
95610	target := &ret
95611	if err := gensupport.DecodeResponse(target, res); err != nil {
95612		return nil, err
95613	}
95614	return ret, nil
95615	// {
95616	//   "description": "Returns the specified interconnect attachment.",
95617	//   "httpMethod": "GET",
95618	//   "id": "compute.interconnectAttachments.get",
95619	//   "parameterOrder": [
95620	//     "project",
95621	//     "region",
95622	//     "interconnectAttachment"
95623	//   ],
95624	//   "parameters": {
95625	//     "interconnectAttachment": {
95626	//       "description": "Name of the interconnect attachment to return.",
95627	//       "location": "path",
95628	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95629	//       "required": true,
95630	//       "type": "string"
95631	//     },
95632	//     "project": {
95633	//       "description": "Project ID for this request.",
95634	//       "location": "path",
95635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95636	//       "required": true,
95637	//       "type": "string"
95638	//     },
95639	//     "region": {
95640	//       "description": "Name of the region for this request.",
95641	//       "location": "path",
95642	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95643	//       "required": true,
95644	//       "type": "string"
95645	//     }
95646	//   },
95647	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
95648	//   "response": {
95649	//     "$ref": "InterconnectAttachment"
95650	//   },
95651	//   "scopes": [
95652	//     "https://www.googleapis.com/auth/cloud-platform",
95653	//     "https://www.googleapis.com/auth/compute",
95654	//     "https://www.googleapis.com/auth/compute.readonly"
95655	//   ]
95656	// }
95657
95658}
95659
95660// method id "compute.interconnectAttachments.getIamPolicy":
95661
95662type InterconnectAttachmentsGetIamPolicyCall struct {
95663	s            *Service
95664	project      string
95665	region       string
95666	resource     string
95667	urlParams_   gensupport.URLParams
95668	ifNoneMatch_ string
95669	ctx_         context.Context
95670	header_      http.Header
95671}
95672
95673// GetIamPolicy: Gets the access control policy for a resource. May be
95674// empty if no such policy or resource exists.
95675func (r *InterconnectAttachmentsService) GetIamPolicy(project string, region string, resource string) *InterconnectAttachmentsGetIamPolicyCall {
95676	c := &InterconnectAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95677	c.project = project
95678	c.region = region
95679	c.resource = resource
95680	return c
95681}
95682
95683// OptionsRequestedPolicyVersion sets the optional parameter
95684// "optionsRequestedPolicyVersion": Requested IAM Policy version.
95685func (c *InterconnectAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectAttachmentsGetIamPolicyCall {
95686	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
95687	return c
95688}
95689
95690// Fields allows partial responses to be retrieved. See
95691// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95692// for more information.
95693func (c *InterconnectAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetIamPolicyCall {
95694	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95695	return c
95696}
95697
95698// IfNoneMatch sets the optional parameter which makes the operation
95699// fail if the object's ETag matches the given value. This is useful for
95700// getting updates only after the object has changed since the last
95701// request. Use googleapi.IsNotModified to check whether the response
95702// error from Do is the result of In-None-Match.
95703func (c *InterconnectAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetIamPolicyCall {
95704	c.ifNoneMatch_ = entityTag
95705	return c
95706}
95707
95708// Context sets the context to be used in this call's Do method. Any
95709// pending HTTP request will be aborted if the provided context is
95710// canceled.
95711func (c *InterconnectAttachmentsGetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentsGetIamPolicyCall {
95712	c.ctx_ = ctx
95713	return c
95714}
95715
95716// Header returns an http.Header that can be modified by the caller to
95717// add HTTP headers to the request.
95718func (c *InterconnectAttachmentsGetIamPolicyCall) Header() http.Header {
95719	if c.header_ == nil {
95720		c.header_ = make(http.Header)
95721	}
95722	return c.header_
95723}
95724
95725func (c *InterconnectAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
95726	reqHeaders := make(http.Header)
95727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
95728	for k, v := range c.header_ {
95729		reqHeaders[k] = v
95730	}
95731	reqHeaders.Set("User-Agent", c.s.userAgent())
95732	if c.ifNoneMatch_ != "" {
95733		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95734	}
95735	var body io.Reader = nil
95736	c.urlParams_.Set("alt", alt)
95737	c.urlParams_.Set("prettyPrint", "false")
95738	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/getIamPolicy")
95739	urls += "?" + c.urlParams_.Encode()
95740	req, err := http.NewRequest("GET", urls, body)
95741	if err != nil {
95742		return nil, err
95743	}
95744	req.Header = reqHeaders
95745	googleapi.Expand(req.URL, map[string]string{
95746		"project":  c.project,
95747		"region":   c.region,
95748		"resource": c.resource,
95749	})
95750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95751}
95752
95753// Do executes the "compute.interconnectAttachments.getIamPolicy" call.
95754// Exactly one of *Policy or error will be non-nil. Any non-2xx status
95755// code is an error. Response headers are in either
95756// *Policy.ServerResponse.Header or (if a response was returned at all)
95757// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95758// check whether the returned error was because http.StatusNotModified
95759// was returned.
95760func (c *InterconnectAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
95761	gensupport.SetOptions(c.urlParams_, opts...)
95762	res, err := c.doRequest("json")
95763	if res != nil && res.StatusCode == http.StatusNotModified {
95764		if res.Body != nil {
95765			res.Body.Close()
95766		}
95767		return nil, &googleapi.Error{
95768			Code:   res.StatusCode,
95769			Header: res.Header,
95770		}
95771	}
95772	if err != nil {
95773		return nil, err
95774	}
95775	defer googleapi.CloseBody(res)
95776	if err := googleapi.CheckResponse(res); err != nil {
95777		return nil, err
95778	}
95779	ret := &Policy{
95780		ServerResponse: googleapi.ServerResponse{
95781			Header:         res.Header,
95782			HTTPStatusCode: res.StatusCode,
95783		},
95784	}
95785	target := &ret
95786	if err := gensupport.DecodeResponse(target, res); err != nil {
95787		return nil, err
95788	}
95789	return ret, nil
95790	// {
95791	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
95792	//   "httpMethod": "GET",
95793	//   "id": "compute.interconnectAttachments.getIamPolicy",
95794	//   "parameterOrder": [
95795	//     "project",
95796	//     "region",
95797	//     "resource"
95798	//   ],
95799	//   "parameters": {
95800	//     "optionsRequestedPolicyVersion": {
95801	//       "description": "Requested IAM Policy version.",
95802	//       "format": "int32",
95803	//       "location": "query",
95804	//       "type": "integer"
95805	//     },
95806	//     "project": {
95807	//       "description": "Project ID for this request.",
95808	//       "location": "path",
95809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95810	//       "required": true,
95811	//       "type": "string"
95812	//     },
95813	//     "region": {
95814	//       "description": "The name of the region for this request.",
95815	//       "location": "path",
95816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95817	//       "required": true,
95818	//       "type": "string"
95819	//     },
95820	//     "resource": {
95821	//       "description": "Name or id of the resource for this request.",
95822	//       "location": "path",
95823	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95824	//       "required": true,
95825	//       "type": "string"
95826	//     }
95827	//   },
95828	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/getIamPolicy",
95829	//   "response": {
95830	//     "$ref": "Policy"
95831	//   },
95832	//   "scopes": [
95833	//     "https://www.googleapis.com/auth/cloud-platform",
95834	//     "https://www.googleapis.com/auth/compute",
95835	//     "https://www.googleapis.com/auth/compute.readonly"
95836	//   ]
95837	// }
95838
95839}
95840
95841// method id "compute.interconnectAttachments.insert":
95842
95843type InterconnectAttachmentsInsertCall struct {
95844	s                      *Service
95845	project                string
95846	region                 string
95847	interconnectattachment *InterconnectAttachment
95848	urlParams_             gensupport.URLParams
95849	ctx_                   context.Context
95850	header_                http.Header
95851}
95852
95853// Insert: Creates an InterconnectAttachment in the specified project
95854// using the data included in the request.
95855func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
95856	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95857	c.project = project
95858	c.region = region
95859	c.interconnectattachment = interconnectattachment
95860	return c
95861}
95862
95863// RequestId sets the optional parameter "requestId": An optional
95864// request ID to identify requests. Specify a unique request ID so that
95865// if you must retry your request, the server will know to ignore the
95866// request if it has already been completed.
95867//
95868// For example, consider a situation where you make an initial request
95869// and the request times out. If you make the request again with the
95870// same request ID, the server can check if original operation with the
95871// same request ID was received, and if so, will ignore the second
95872// request. This prevents clients from accidentally creating duplicate
95873// commitments.
95874//
95875// The request ID must be a valid UUID with the exception that zero UUID
95876// is not supported (00000000-0000-0000-0000-000000000000).
95877func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
95878	c.urlParams_.Set("requestId", requestId)
95879	return c
95880}
95881
95882// ValidateOnly sets the optional parameter "validateOnly": If true, the
95883// request will not be committed.
95884func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
95885	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
95886	return c
95887}
95888
95889// Fields allows partial responses to be retrieved. See
95890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95891// for more information.
95892func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
95893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95894	return c
95895}
95896
95897// Context sets the context to be used in this call's Do method. Any
95898// pending HTTP request will be aborted if the provided context is
95899// canceled.
95900func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
95901	c.ctx_ = ctx
95902	return c
95903}
95904
95905// Header returns an http.Header that can be modified by the caller to
95906// add HTTP headers to the request.
95907func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
95908	if c.header_ == nil {
95909		c.header_ = make(http.Header)
95910	}
95911	return c.header_
95912}
95913
95914func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
95915	reqHeaders := make(http.Header)
95916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
95917	for k, v := range c.header_ {
95918		reqHeaders[k] = v
95919	}
95920	reqHeaders.Set("User-Agent", c.s.userAgent())
95921	var body io.Reader = nil
95922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
95923	if err != nil {
95924		return nil, err
95925	}
95926	reqHeaders.Set("Content-Type", "application/json")
95927	c.urlParams_.Set("alt", alt)
95928	c.urlParams_.Set("prettyPrint", "false")
95929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
95930	urls += "?" + c.urlParams_.Encode()
95931	req, err := http.NewRequest("POST", urls, body)
95932	if err != nil {
95933		return nil, err
95934	}
95935	req.Header = reqHeaders
95936	googleapi.Expand(req.URL, map[string]string{
95937		"project": c.project,
95938		"region":  c.region,
95939	})
95940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95941}
95942
95943// Do executes the "compute.interconnectAttachments.insert" call.
95944// Exactly one of *Operation or error will be non-nil. Any non-2xx
95945// status code is an error. Response headers are in either
95946// *Operation.ServerResponse.Header or (if a response was returned at
95947// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95948// to check whether the returned error was because
95949// http.StatusNotModified was returned.
95950func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95951	gensupport.SetOptions(c.urlParams_, opts...)
95952	res, err := c.doRequest("json")
95953	if res != nil && res.StatusCode == http.StatusNotModified {
95954		if res.Body != nil {
95955			res.Body.Close()
95956		}
95957		return nil, &googleapi.Error{
95958			Code:   res.StatusCode,
95959			Header: res.Header,
95960		}
95961	}
95962	if err != nil {
95963		return nil, err
95964	}
95965	defer googleapi.CloseBody(res)
95966	if err := googleapi.CheckResponse(res); err != nil {
95967		return nil, err
95968	}
95969	ret := &Operation{
95970		ServerResponse: googleapi.ServerResponse{
95971			Header:         res.Header,
95972			HTTPStatusCode: res.StatusCode,
95973		},
95974	}
95975	target := &ret
95976	if err := gensupport.DecodeResponse(target, res); err != nil {
95977		return nil, err
95978	}
95979	return ret, nil
95980	// {
95981	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
95982	//   "httpMethod": "POST",
95983	//   "id": "compute.interconnectAttachments.insert",
95984	//   "parameterOrder": [
95985	//     "project",
95986	//     "region"
95987	//   ],
95988	//   "parameters": {
95989	//     "project": {
95990	//       "description": "Project ID for this request.",
95991	//       "location": "path",
95992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95993	//       "required": true,
95994	//       "type": "string"
95995	//     },
95996	//     "region": {
95997	//       "description": "Name of the region for this request.",
95998	//       "location": "path",
95999	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96000	//       "required": true,
96001	//       "type": "string"
96002	//     },
96003	//     "requestId": {
96004	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96005	//       "location": "query",
96006	//       "type": "string"
96007	//     },
96008	//     "validateOnly": {
96009	//       "description": "If true, the request will not be committed.",
96010	//       "location": "query",
96011	//       "type": "boolean"
96012	//     }
96013	//   },
96014	//   "path": "{project}/regions/{region}/interconnectAttachments",
96015	//   "request": {
96016	//     "$ref": "InterconnectAttachment"
96017	//   },
96018	//   "response": {
96019	//     "$ref": "Operation"
96020	//   },
96021	//   "scopes": [
96022	//     "https://www.googleapis.com/auth/cloud-platform",
96023	//     "https://www.googleapis.com/auth/compute"
96024	//   ]
96025	// }
96026
96027}
96028
96029// method id "compute.interconnectAttachments.list":
96030
96031type InterconnectAttachmentsListCall struct {
96032	s            *Service
96033	project      string
96034	region       string
96035	urlParams_   gensupport.URLParams
96036	ifNoneMatch_ string
96037	ctx_         context.Context
96038	header_      http.Header
96039}
96040
96041// List: Retrieves the list of interconnect attachments contained within
96042// the specified region.
96043func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
96044	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96045	c.project = project
96046	c.region = region
96047	return c
96048}
96049
96050// Filter sets the optional parameter "filter": A filter expression that
96051// filters resources listed in the response. The expression must specify
96052// the field name, a comparison operator, and the value that you want to
96053// use for filtering. The value must be a string, a number, or a
96054// boolean. The comparison operator must be either `=`, `!=`, `>`, or
96055// `<`.
96056//
96057// For example, if you are filtering Compute Engine instances, you can
96058// exclude instances named `example-instance` by specifying `name !=
96059// example-instance`.
96060//
96061// You can also filter nested fields. For example, you could specify
96062// `scheduling.automaticRestart = false` to include instances only if
96063// they are not scheduled for automatic restarts. You can use filtering
96064// on nested fields to filter based on resource labels.
96065//
96066// To filter on multiple expressions, provide each separate expression
96067// within parentheses. For example: ``` (scheduling.automaticRestart =
96068// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
96069// is an `AND` expression. However, you can include `AND` and `OR`
96070// expressions explicitly. For example: ``` (cpuPlatform = "Intel
96071// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
96072// (scheduling.automaticRestart = true) ```
96073func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
96074	c.urlParams_.Set("filter", filter)
96075	return c
96076}
96077
96078// MaxResults sets the optional parameter "maxResults": The maximum
96079// number of results per page that should be returned. If the number of
96080// available results is larger than `maxResults`, Compute Engine returns
96081// a `nextPageToken` that can be used to get the next page of results in
96082// subsequent list requests. Acceptable values are `0` to `500`,
96083// inclusive. (Default: `500`)
96084func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
96085	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96086	return c
96087}
96088
96089// OrderBy sets the optional parameter "orderBy": Sorts list results by
96090// a certain order. By default, results are returned in alphanumerical
96091// order based on the resource name.
96092//
96093// You can also sort results in descending order based on the creation
96094// timestamp using `orderBy="creationTimestamp desc". This sorts
96095// results based on the `creationTimestamp` field in reverse
96096// chronological order (newest result first). Use this to sort resources
96097// like operations so that the newest operation is returned
96098// first.
96099//
96100// Currently, only sorting by `name` or `creationTimestamp desc` is
96101// supported.
96102func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
96103	c.urlParams_.Set("orderBy", orderBy)
96104	return c
96105}
96106
96107// PageToken sets the optional parameter "pageToken": Specifies a page
96108// token to use. Set `pageToken` to the `nextPageToken` returned by a
96109// previous list request to get the next page of results.
96110func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
96111	c.urlParams_.Set("pageToken", pageToken)
96112	return c
96113}
96114
96115// ReturnPartialSuccess sets the optional parameter
96116// "returnPartialSuccess": Opt-in for partial success behavior which
96117// provides partial results in case of failure. The default value is
96118// false and the logic is the same as today.
96119func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall {
96120	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
96121	return c
96122}
96123
96124// Fields allows partial responses to be retrieved. See
96125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96126// for more information.
96127func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
96128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96129	return c
96130}
96131
96132// IfNoneMatch sets the optional parameter which makes the operation
96133// fail if the object's ETag matches the given value. This is useful for
96134// getting updates only after the object has changed since the last
96135// request. Use googleapi.IsNotModified to check whether the response
96136// error from Do is the result of In-None-Match.
96137func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
96138	c.ifNoneMatch_ = entityTag
96139	return c
96140}
96141
96142// Context sets the context to be used in this call's Do method. Any
96143// pending HTTP request will be aborted if the provided context is
96144// canceled.
96145func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
96146	c.ctx_ = ctx
96147	return c
96148}
96149
96150// Header returns an http.Header that can be modified by the caller to
96151// add HTTP headers to the request.
96152func (c *InterconnectAttachmentsListCall) Header() http.Header {
96153	if c.header_ == nil {
96154		c.header_ = make(http.Header)
96155	}
96156	return c.header_
96157}
96158
96159func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
96160	reqHeaders := make(http.Header)
96161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
96162	for k, v := range c.header_ {
96163		reqHeaders[k] = v
96164	}
96165	reqHeaders.Set("User-Agent", c.s.userAgent())
96166	if c.ifNoneMatch_ != "" {
96167		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96168	}
96169	var body io.Reader = nil
96170	c.urlParams_.Set("alt", alt)
96171	c.urlParams_.Set("prettyPrint", "false")
96172	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
96173	urls += "?" + c.urlParams_.Encode()
96174	req, err := http.NewRequest("GET", urls, body)
96175	if err != nil {
96176		return nil, err
96177	}
96178	req.Header = reqHeaders
96179	googleapi.Expand(req.URL, map[string]string{
96180		"project": c.project,
96181		"region":  c.region,
96182	})
96183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96184}
96185
96186// Do executes the "compute.interconnectAttachments.list" call.
96187// Exactly one of *InterconnectAttachmentList or error will be non-nil.
96188// Any non-2xx status code is an error. Response headers are in either
96189// *InterconnectAttachmentList.ServerResponse.Header or (if a response
96190// was returned at all) in error.(*googleapi.Error).Header. Use
96191// googleapi.IsNotModified to check whether the returned error was
96192// because http.StatusNotModified was returned.
96193func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
96194	gensupport.SetOptions(c.urlParams_, opts...)
96195	res, err := c.doRequest("json")
96196	if res != nil && res.StatusCode == http.StatusNotModified {
96197		if res.Body != nil {
96198			res.Body.Close()
96199		}
96200		return nil, &googleapi.Error{
96201			Code:   res.StatusCode,
96202			Header: res.Header,
96203		}
96204	}
96205	if err != nil {
96206		return nil, err
96207	}
96208	defer googleapi.CloseBody(res)
96209	if err := googleapi.CheckResponse(res); err != nil {
96210		return nil, err
96211	}
96212	ret := &InterconnectAttachmentList{
96213		ServerResponse: googleapi.ServerResponse{
96214			Header:         res.Header,
96215			HTTPStatusCode: res.StatusCode,
96216		},
96217	}
96218	target := &ret
96219	if err := gensupport.DecodeResponse(target, res); err != nil {
96220		return nil, err
96221	}
96222	return ret, nil
96223	// {
96224	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
96225	//   "httpMethod": "GET",
96226	//   "id": "compute.interconnectAttachments.list",
96227	//   "parameterOrder": [
96228	//     "project",
96229	//     "region"
96230	//   ],
96231	//   "parameters": {
96232	//     "filter": {
96233	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
96234	//       "location": "query",
96235	//       "type": "string"
96236	//     },
96237	//     "maxResults": {
96238	//       "default": "500",
96239	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96240	//       "format": "uint32",
96241	//       "location": "query",
96242	//       "minimum": "0",
96243	//       "type": "integer"
96244	//     },
96245	//     "orderBy": {
96246	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
96247	//       "location": "query",
96248	//       "type": "string"
96249	//     },
96250	//     "pageToken": {
96251	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96252	//       "location": "query",
96253	//       "type": "string"
96254	//     },
96255	//     "project": {
96256	//       "description": "Project ID for this request.",
96257	//       "location": "path",
96258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96259	//       "required": true,
96260	//       "type": "string"
96261	//     },
96262	//     "region": {
96263	//       "description": "Name of the region for this request.",
96264	//       "location": "path",
96265	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96266	//       "required": true,
96267	//       "type": "string"
96268	//     },
96269	//     "returnPartialSuccess": {
96270	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
96271	//       "location": "query",
96272	//       "type": "boolean"
96273	//     }
96274	//   },
96275	//   "path": "{project}/regions/{region}/interconnectAttachments",
96276	//   "response": {
96277	//     "$ref": "InterconnectAttachmentList"
96278	//   },
96279	//   "scopes": [
96280	//     "https://www.googleapis.com/auth/cloud-platform",
96281	//     "https://www.googleapis.com/auth/compute",
96282	//     "https://www.googleapis.com/auth/compute.readonly"
96283	//   ]
96284	// }
96285
96286}
96287
96288// Pages invokes f for each page of results.
96289// A non-nil error returned from f will halt the iteration.
96290// The provided context supersedes any context provided to the Context method.
96291func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
96292	c.ctx_ = ctx
96293	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96294	for {
96295		x, err := c.Do()
96296		if err != nil {
96297			return err
96298		}
96299		if err := f(x); err != nil {
96300			return err
96301		}
96302		if x.NextPageToken == "" {
96303			return nil
96304		}
96305		c.PageToken(x.NextPageToken)
96306	}
96307}
96308
96309// method id "compute.interconnectAttachments.patch":
96310
96311type InterconnectAttachmentsPatchCall struct {
96312	s                      *Service
96313	project                string
96314	region                 string
96315	interconnectAttachment string
96316	interconnectattachment *InterconnectAttachment
96317	urlParams_             gensupport.URLParams
96318	ctx_                   context.Context
96319	header_                http.Header
96320}
96321
96322// Patch: Updates the specified interconnect attachment with the data
96323// included in the request. This method supports PATCH semantics and
96324// uses the JSON merge patch format and processing rules.
96325func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
96326	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96327	c.project = project
96328	c.region = region
96329	c.interconnectAttachment = interconnectAttachment
96330	c.interconnectattachment = interconnectattachment
96331	return c
96332}
96333
96334// RequestId sets the optional parameter "requestId": An optional
96335// request ID to identify requests. Specify a unique request ID so that
96336// if you must retry your request, the server will know to ignore the
96337// request if it has already been completed.
96338//
96339// For example, consider a situation where you make an initial request
96340// and the request times out. If you make the request again with the
96341// same request ID, the server can check if original operation with the
96342// same request ID was received, and if so, will ignore the second
96343// request. This prevents clients from accidentally creating duplicate
96344// commitments.
96345//
96346// The request ID must be a valid UUID with the exception that zero UUID
96347// is not supported (00000000-0000-0000-0000-000000000000).
96348func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
96349	c.urlParams_.Set("requestId", requestId)
96350	return c
96351}
96352
96353// Fields allows partial responses to be retrieved. See
96354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96355// for more information.
96356func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
96357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96358	return c
96359}
96360
96361// Context sets the context to be used in this call's Do method. Any
96362// pending HTTP request will be aborted if the provided context is
96363// canceled.
96364func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
96365	c.ctx_ = ctx
96366	return c
96367}
96368
96369// Header returns an http.Header that can be modified by the caller to
96370// add HTTP headers to the request.
96371func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
96372	if c.header_ == nil {
96373		c.header_ = make(http.Header)
96374	}
96375	return c.header_
96376}
96377
96378func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
96379	reqHeaders := make(http.Header)
96380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
96381	for k, v := range c.header_ {
96382		reqHeaders[k] = v
96383	}
96384	reqHeaders.Set("User-Agent", c.s.userAgent())
96385	var body io.Reader = nil
96386	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
96387	if err != nil {
96388		return nil, err
96389	}
96390	reqHeaders.Set("Content-Type", "application/json")
96391	c.urlParams_.Set("alt", alt)
96392	c.urlParams_.Set("prettyPrint", "false")
96393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
96394	urls += "?" + c.urlParams_.Encode()
96395	req, err := http.NewRequest("PATCH", urls, body)
96396	if err != nil {
96397		return nil, err
96398	}
96399	req.Header = reqHeaders
96400	googleapi.Expand(req.URL, map[string]string{
96401		"project":                c.project,
96402		"region":                 c.region,
96403		"interconnectAttachment": c.interconnectAttachment,
96404	})
96405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96406}
96407
96408// Do executes the "compute.interconnectAttachments.patch" call.
96409// Exactly one of *Operation or error will be non-nil. Any non-2xx
96410// status code is an error. Response headers are in either
96411// *Operation.ServerResponse.Header or (if a response was returned at
96412// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96413// to check whether the returned error was because
96414// http.StatusNotModified was returned.
96415func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96416	gensupport.SetOptions(c.urlParams_, opts...)
96417	res, err := c.doRequest("json")
96418	if res != nil && res.StatusCode == http.StatusNotModified {
96419		if res.Body != nil {
96420			res.Body.Close()
96421		}
96422		return nil, &googleapi.Error{
96423			Code:   res.StatusCode,
96424			Header: res.Header,
96425		}
96426	}
96427	if err != nil {
96428		return nil, err
96429	}
96430	defer googleapi.CloseBody(res)
96431	if err := googleapi.CheckResponse(res); err != nil {
96432		return nil, err
96433	}
96434	ret := &Operation{
96435		ServerResponse: googleapi.ServerResponse{
96436			Header:         res.Header,
96437			HTTPStatusCode: res.StatusCode,
96438		},
96439	}
96440	target := &ret
96441	if err := gensupport.DecodeResponse(target, res); err != nil {
96442		return nil, err
96443	}
96444	return ret, nil
96445	// {
96446	//   "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.",
96447	//   "httpMethod": "PATCH",
96448	//   "id": "compute.interconnectAttachments.patch",
96449	//   "parameterOrder": [
96450	//     "project",
96451	//     "region",
96452	//     "interconnectAttachment"
96453	//   ],
96454	//   "parameters": {
96455	//     "interconnectAttachment": {
96456	//       "description": "Name of the interconnect attachment to patch.",
96457	//       "location": "path",
96458	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96459	//       "required": true,
96460	//       "type": "string"
96461	//     },
96462	//     "project": {
96463	//       "description": "Project ID for this request.",
96464	//       "location": "path",
96465	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96466	//       "required": true,
96467	//       "type": "string"
96468	//     },
96469	//     "region": {
96470	//       "description": "Name of the region scoping this request.",
96471	//       "location": "path",
96472	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96473	//       "required": true,
96474	//       "type": "string"
96475	//     },
96476	//     "requestId": {
96477	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96478	//       "location": "query",
96479	//       "type": "string"
96480	//     }
96481	//   },
96482	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96483	//   "request": {
96484	//     "$ref": "InterconnectAttachment"
96485	//   },
96486	//   "response": {
96487	//     "$ref": "Operation"
96488	//   },
96489	//   "scopes": [
96490	//     "https://www.googleapis.com/auth/cloud-platform",
96491	//     "https://www.googleapis.com/auth/compute"
96492	//   ]
96493	// }
96494
96495}
96496
96497// method id "compute.interconnectAttachments.setIamPolicy":
96498
96499type InterconnectAttachmentsSetIamPolicyCall struct {
96500	s                      *Service
96501	project                string
96502	region                 string
96503	resource               string
96504	regionsetpolicyrequest *RegionSetPolicyRequest
96505	urlParams_             gensupport.URLParams
96506	ctx_                   context.Context
96507	header_                http.Header
96508}
96509
96510// SetIamPolicy: Sets the access control policy on the specified
96511// resource. Replaces any existing policy.
96512func (r *InterconnectAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *InterconnectAttachmentsSetIamPolicyCall {
96513	c := &InterconnectAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96514	c.project = project
96515	c.region = region
96516	c.resource = resource
96517	c.regionsetpolicyrequest = regionsetpolicyrequest
96518	return c
96519}
96520
96521// Fields allows partial responses to be retrieved. See
96522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96523// for more information.
96524func (c *InterconnectAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetIamPolicyCall {
96525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96526	return c
96527}
96528
96529// Context sets the context to be used in this call's Do method. Any
96530// pending HTTP request will be aborted if the provided context is
96531// canceled.
96532func (c *InterconnectAttachmentsSetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentsSetIamPolicyCall {
96533	c.ctx_ = ctx
96534	return c
96535}
96536
96537// Header returns an http.Header that can be modified by the caller to
96538// add HTTP headers to the request.
96539func (c *InterconnectAttachmentsSetIamPolicyCall) Header() http.Header {
96540	if c.header_ == nil {
96541		c.header_ = make(http.Header)
96542	}
96543	return c.header_
96544}
96545
96546func (c *InterconnectAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96547	reqHeaders := make(http.Header)
96548	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
96549	for k, v := range c.header_ {
96550		reqHeaders[k] = v
96551	}
96552	reqHeaders.Set("User-Agent", c.s.userAgent())
96553	var body io.Reader = nil
96554	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
96555	if err != nil {
96556		return nil, err
96557	}
96558	reqHeaders.Set("Content-Type", "application/json")
96559	c.urlParams_.Set("alt", alt)
96560	c.urlParams_.Set("prettyPrint", "false")
96561	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setIamPolicy")
96562	urls += "?" + c.urlParams_.Encode()
96563	req, err := http.NewRequest("POST", urls, body)
96564	if err != nil {
96565		return nil, err
96566	}
96567	req.Header = reqHeaders
96568	googleapi.Expand(req.URL, map[string]string{
96569		"project":  c.project,
96570		"region":   c.region,
96571		"resource": c.resource,
96572	})
96573	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96574}
96575
96576// Do executes the "compute.interconnectAttachments.setIamPolicy" call.
96577// Exactly one of *Policy or error will be non-nil. Any non-2xx status
96578// code is an error. Response headers are in either
96579// *Policy.ServerResponse.Header or (if a response was returned at all)
96580// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96581// check whether the returned error was because http.StatusNotModified
96582// was returned.
96583func (c *InterconnectAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
96584	gensupport.SetOptions(c.urlParams_, opts...)
96585	res, err := c.doRequest("json")
96586	if res != nil && res.StatusCode == http.StatusNotModified {
96587		if res.Body != nil {
96588			res.Body.Close()
96589		}
96590		return nil, &googleapi.Error{
96591			Code:   res.StatusCode,
96592			Header: res.Header,
96593		}
96594	}
96595	if err != nil {
96596		return nil, err
96597	}
96598	defer googleapi.CloseBody(res)
96599	if err := googleapi.CheckResponse(res); err != nil {
96600		return nil, err
96601	}
96602	ret := &Policy{
96603		ServerResponse: googleapi.ServerResponse{
96604			Header:         res.Header,
96605			HTTPStatusCode: res.StatusCode,
96606		},
96607	}
96608	target := &ret
96609	if err := gensupport.DecodeResponse(target, res); err != nil {
96610		return nil, err
96611	}
96612	return ret, nil
96613	// {
96614	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
96615	//   "httpMethod": "POST",
96616	//   "id": "compute.interconnectAttachments.setIamPolicy",
96617	//   "parameterOrder": [
96618	//     "project",
96619	//     "region",
96620	//     "resource"
96621	//   ],
96622	//   "parameters": {
96623	//     "project": {
96624	//       "description": "Project ID for this request.",
96625	//       "location": "path",
96626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96627	//       "required": true,
96628	//       "type": "string"
96629	//     },
96630	//     "region": {
96631	//       "description": "The name of the region for this request.",
96632	//       "location": "path",
96633	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96634	//       "required": true,
96635	//       "type": "string"
96636	//     },
96637	//     "resource": {
96638	//       "description": "Name or id of the resource for this request.",
96639	//       "location": "path",
96640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96641	//       "required": true,
96642	//       "type": "string"
96643	//     }
96644	//   },
96645	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setIamPolicy",
96646	//   "request": {
96647	//     "$ref": "RegionSetPolicyRequest"
96648	//   },
96649	//   "response": {
96650	//     "$ref": "Policy"
96651	//   },
96652	//   "scopes": [
96653	//     "https://www.googleapis.com/auth/cloud-platform",
96654	//     "https://www.googleapis.com/auth/compute"
96655	//   ]
96656	// }
96657
96658}
96659
96660// method id "compute.interconnectAttachments.setLabels":
96661
96662type InterconnectAttachmentsSetLabelsCall struct {
96663	s                      *Service
96664	project                string
96665	region                 string
96666	resource               string
96667	regionsetlabelsrequest *RegionSetLabelsRequest
96668	urlParams_             gensupport.URLParams
96669	ctx_                   context.Context
96670	header_                http.Header
96671}
96672
96673// SetLabels: Sets the labels on an InterconnectAttachment. To learn
96674// more about labels, read the Labeling Resources documentation.
96675func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall {
96676	c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96677	c.project = project
96678	c.region = region
96679	c.resource = resource
96680	c.regionsetlabelsrequest = regionsetlabelsrequest
96681	return c
96682}
96683
96684// RequestId sets the optional parameter "requestId": An optional
96685// request ID to identify requests. Specify a unique request ID so that
96686// if you must retry your request, the server will know to ignore the
96687// request if it has already been completed.
96688//
96689// For example, consider a situation where you make an initial request
96690// and the request times out. If you make the request again with the
96691// same request ID, the server can check if original operation with the
96692// same request ID was received, and if so, will ignore the second
96693// request. This prevents clients from accidentally creating duplicate
96694// commitments.
96695//
96696// The request ID must be a valid UUID with the exception that zero UUID
96697// is not supported (00000000-0000-0000-0000-000000000000).
96698func (c *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall {
96699	c.urlParams_.Set("requestId", requestId)
96700	return c
96701}
96702
96703// Fields allows partial responses to be retrieved. See
96704// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96705// for more information.
96706func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall {
96707	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96708	return c
96709}
96710
96711// Context sets the context to be used in this call's Do method. Any
96712// pending HTTP request will be aborted if the provided context is
96713// canceled.
96714func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall {
96715	c.ctx_ = ctx
96716	return c
96717}
96718
96719// Header returns an http.Header that can be modified by the caller to
96720// add HTTP headers to the request.
96721func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header {
96722	if c.header_ == nil {
96723		c.header_ = make(http.Header)
96724	}
96725	return c.header_
96726}
96727
96728func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
96729	reqHeaders := make(http.Header)
96730	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
96731	for k, v := range c.header_ {
96732		reqHeaders[k] = v
96733	}
96734	reqHeaders.Set("User-Agent", c.s.userAgent())
96735	var body io.Reader = nil
96736	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
96737	if err != nil {
96738		return nil, err
96739	}
96740	reqHeaders.Set("Content-Type", "application/json")
96741	c.urlParams_.Set("alt", alt)
96742	c.urlParams_.Set("prettyPrint", "false")
96743	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels")
96744	urls += "?" + c.urlParams_.Encode()
96745	req, err := http.NewRequest("POST", urls, body)
96746	if err != nil {
96747		return nil, err
96748	}
96749	req.Header = reqHeaders
96750	googleapi.Expand(req.URL, map[string]string{
96751		"project":  c.project,
96752		"region":   c.region,
96753		"resource": c.resource,
96754	})
96755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96756}
96757
96758// Do executes the "compute.interconnectAttachments.setLabels" call.
96759// Exactly one of *Operation or error will be non-nil. Any non-2xx
96760// status code is an error. Response headers are in either
96761// *Operation.ServerResponse.Header or (if a response was returned at
96762// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96763// to check whether the returned error was because
96764// http.StatusNotModified was returned.
96765func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96766	gensupport.SetOptions(c.urlParams_, opts...)
96767	res, err := c.doRequest("json")
96768	if res != nil && res.StatusCode == http.StatusNotModified {
96769		if res.Body != nil {
96770			res.Body.Close()
96771		}
96772		return nil, &googleapi.Error{
96773			Code:   res.StatusCode,
96774			Header: res.Header,
96775		}
96776	}
96777	if err != nil {
96778		return nil, err
96779	}
96780	defer googleapi.CloseBody(res)
96781	if err := googleapi.CheckResponse(res); err != nil {
96782		return nil, err
96783	}
96784	ret := &Operation{
96785		ServerResponse: googleapi.ServerResponse{
96786			Header:         res.Header,
96787			HTTPStatusCode: res.StatusCode,
96788		},
96789	}
96790	target := &ret
96791	if err := gensupport.DecodeResponse(target, res); err != nil {
96792		return nil, err
96793	}
96794	return ret, nil
96795	// {
96796	//   "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.",
96797	//   "httpMethod": "POST",
96798	//   "id": "compute.interconnectAttachments.setLabels",
96799	//   "parameterOrder": [
96800	//     "project",
96801	//     "region",
96802	//     "resource"
96803	//   ],
96804	//   "parameters": {
96805	//     "project": {
96806	//       "description": "Project ID for this request.",
96807	//       "location": "path",
96808	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96809	//       "required": true,
96810	//       "type": "string"
96811	//     },
96812	//     "region": {
96813	//       "description": "The region for this request.",
96814	//       "location": "path",
96815	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96816	//       "required": true,
96817	//       "type": "string"
96818	//     },
96819	//     "requestId": {
96820	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96821	//       "location": "query",
96822	//       "type": "string"
96823	//     },
96824	//     "resource": {
96825	//       "description": "Name or id of the resource for this request.",
96826	//       "location": "path",
96827	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96828	//       "required": true,
96829	//       "type": "string"
96830	//     }
96831	//   },
96832	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
96833	//   "request": {
96834	//     "$ref": "RegionSetLabelsRequest"
96835	//   },
96836	//   "response": {
96837	//     "$ref": "Operation"
96838	//   },
96839	//   "scopes": [
96840	//     "https://www.googleapis.com/auth/cloud-platform",
96841	//     "https://www.googleapis.com/auth/compute"
96842	//   ]
96843	// }
96844
96845}
96846
96847// method id "compute.interconnectAttachments.testIamPermissions":
96848
96849type InterconnectAttachmentsTestIamPermissionsCall struct {
96850	s                      *Service
96851	project                string
96852	region                 string
96853	resource               string
96854	testpermissionsrequest *TestPermissionsRequest
96855	urlParams_             gensupport.URLParams
96856	ctx_                   context.Context
96857	header_                http.Header
96858}
96859
96860// TestIamPermissions: Returns permissions that a caller has on the
96861// specified resource.
96862func (r *InterconnectAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentsTestIamPermissionsCall {
96863	c := &InterconnectAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96864	c.project = project
96865	c.region = region
96866	c.resource = resource
96867	c.testpermissionsrequest = testpermissionsrequest
96868	return c
96869}
96870
96871// Fields allows partial responses to be retrieved. See
96872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96873// for more information.
96874func (c *InterconnectAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsTestIamPermissionsCall {
96875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96876	return c
96877}
96878
96879// Context sets the context to be used in this call's Do method. Any
96880// pending HTTP request will be aborted if the provided context is
96881// canceled.
96882func (c *InterconnectAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentsTestIamPermissionsCall {
96883	c.ctx_ = ctx
96884	return c
96885}
96886
96887// Header returns an http.Header that can be modified by the caller to
96888// add HTTP headers to the request.
96889func (c *InterconnectAttachmentsTestIamPermissionsCall) Header() http.Header {
96890	if c.header_ == nil {
96891		c.header_ = make(http.Header)
96892	}
96893	return c.header_
96894}
96895
96896func (c *InterconnectAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
96897	reqHeaders := make(http.Header)
96898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
96899	for k, v := range c.header_ {
96900		reqHeaders[k] = v
96901	}
96902	reqHeaders.Set("User-Agent", c.s.userAgent())
96903	var body io.Reader = nil
96904	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
96905	if err != nil {
96906		return nil, err
96907	}
96908	reqHeaders.Set("Content-Type", "application/json")
96909	c.urlParams_.Set("alt", alt)
96910	c.urlParams_.Set("prettyPrint", "false")
96911	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions")
96912	urls += "?" + c.urlParams_.Encode()
96913	req, err := http.NewRequest("POST", urls, body)
96914	if err != nil {
96915		return nil, err
96916	}
96917	req.Header = reqHeaders
96918	googleapi.Expand(req.URL, map[string]string{
96919		"project":  c.project,
96920		"region":   c.region,
96921		"resource": c.resource,
96922	})
96923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96924}
96925
96926// Do executes the "compute.interconnectAttachments.testIamPermissions" call.
96927// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
96928// non-2xx status code is an error. Response headers are in either
96929// *TestPermissionsResponse.ServerResponse.Header or (if a response was
96930// returned at all) in error.(*googleapi.Error).Header. Use
96931// googleapi.IsNotModified to check whether the returned error was
96932// because http.StatusNotModified was returned.
96933func (c *InterconnectAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
96934	gensupport.SetOptions(c.urlParams_, opts...)
96935	res, err := c.doRequest("json")
96936	if res != nil && res.StatusCode == http.StatusNotModified {
96937		if res.Body != nil {
96938			res.Body.Close()
96939		}
96940		return nil, &googleapi.Error{
96941			Code:   res.StatusCode,
96942			Header: res.Header,
96943		}
96944	}
96945	if err != nil {
96946		return nil, err
96947	}
96948	defer googleapi.CloseBody(res)
96949	if err := googleapi.CheckResponse(res); err != nil {
96950		return nil, err
96951	}
96952	ret := &TestPermissionsResponse{
96953		ServerResponse: googleapi.ServerResponse{
96954			Header:         res.Header,
96955			HTTPStatusCode: res.StatusCode,
96956		},
96957	}
96958	target := &ret
96959	if err := gensupport.DecodeResponse(target, res); err != nil {
96960		return nil, err
96961	}
96962	return ret, nil
96963	// {
96964	//   "description": "Returns permissions that a caller has on the specified resource.",
96965	//   "httpMethod": "POST",
96966	//   "id": "compute.interconnectAttachments.testIamPermissions",
96967	//   "parameterOrder": [
96968	//     "project",
96969	//     "region",
96970	//     "resource"
96971	//   ],
96972	//   "parameters": {
96973	//     "project": {
96974	//       "description": "Project ID for this request.",
96975	//       "location": "path",
96976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96977	//       "required": true,
96978	//       "type": "string"
96979	//     },
96980	//     "region": {
96981	//       "description": "The name of the region for this request.",
96982	//       "location": "path",
96983	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96984	//       "required": true,
96985	//       "type": "string"
96986	//     },
96987	//     "resource": {
96988	//       "description": "Name or id of the resource for this request.",
96989	//       "location": "path",
96990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96991	//       "required": true,
96992	//       "type": "string"
96993	//     }
96994	//   },
96995	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions",
96996	//   "request": {
96997	//     "$ref": "TestPermissionsRequest"
96998	//   },
96999	//   "response": {
97000	//     "$ref": "TestPermissionsResponse"
97001	//   },
97002	//   "scopes": [
97003	//     "https://www.googleapis.com/auth/cloud-platform",
97004	//     "https://www.googleapis.com/auth/compute",
97005	//     "https://www.googleapis.com/auth/compute.readonly"
97006	//   ]
97007	// }
97008
97009}
97010
97011// method id "compute.interconnectLocations.get":
97012
97013type InterconnectLocationsGetCall struct {
97014	s                    *Service
97015	project              string
97016	interconnectLocation string
97017	urlParams_           gensupport.URLParams
97018	ifNoneMatch_         string
97019	ctx_                 context.Context
97020	header_              http.Header
97021}
97022
97023// Get: Returns the details for the specified interconnect location.
97024// Gets a list of available interconnect locations by making a list()
97025// request.
97026func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
97027	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97028	c.project = project
97029	c.interconnectLocation = interconnectLocation
97030	return c
97031}
97032
97033// Fields allows partial responses to be retrieved. See
97034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97035// for more information.
97036func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
97037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97038	return c
97039}
97040
97041// IfNoneMatch sets the optional parameter which makes the operation
97042// fail if the object's ETag matches the given value. This is useful for
97043// getting updates only after the object has changed since the last
97044// request. Use googleapi.IsNotModified to check whether the response
97045// error from Do is the result of In-None-Match.
97046func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
97047	c.ifNoneMatch_ = entityTag
97048	return c
97049}
97050
97051// Context sets the context to be used in this call's Do method. Any
97052// pending HTTP request will be aborted if the provided context is
97053// canceled.
97054func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
97055	c.ctx_ = ctx
97056	return c
97057}
97058
97059// Header returns an http.Header that can be modified by the caller to
97060// add HTTP headers to the request.
97061func (c *InterconnectLocationsGetCall) Header() http.Header {
97062	if c.header_ == nil {
97063		c.header_ = make(http.Header)
97064	}
97065	return c.header_
97066}
97067
97068func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
97069	reqHeaders := make(http.Header)
97070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
97071	for k, v := range c.header_ {
97072		reqHeaders[k] = v
97073	}
97074	reqHeaders.Set("User-Agent", c.s.userAgent())
97075	if c.ifNoneMatch_ != "" {
97076		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97077	}
97078	var body io.Reader = nil
97079	c.urlParams_.Set("alt", alt)
97080	c.urlParams_.Set("prettyPrint", "false")
97081	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
97082	urls += "?" + c.urlParams_.Encode()
97083	req, err := http.NewRequest("GET", urls, body)
97084	if err != nil {
97085		return nil, err
97086	}
97087	req.Header = reqHeaders
97088	googleapi.Expand(req.URL, map[string]string{
97089		"project":              c.project,
97090		"interconnectLocation": c.interconnectLocation,
97091	})
97092	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97093}
97094
97095// Do executes the "compute.interconnectLocations.get" call.
97096// Exactly one of *InterconnectLocation or error will be non-nil. Any
97097// non-2xx status code is an error. Response headers are in either
97098// *InterconnectLocation.ServerResponse.Header or (if a response was
97099// returned at all) in error.(*googleapi.Error).Header. Use
97100// googleapi.IsNotModified to check whether the returned error was
97101// because http.StatusNotModified was returned.
97102func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
97103	gensupport.SetOptions(c.urlParams_, opts...)
97104	res, err := c.doRequest("json")
97105	if res != nil && res.StatusCode == http.StatusNotModified {
97106		if res.Body != nil {
97107			res.Body.Close()
97108		}
97109		return nil, &googleapi.Error{
97110			Code:   res.StatusCode,
97111			Header: res.Header,
97112		}
97113	}
97114	if err != nil {
97115		return nil, err
97116	}
97117	defer googleapi.CloseBody(res)
97118	if err := googleapi.CheckResponse(res); err != nil {
97119		return nil, err
97120	}
97121	ret := &InterconnectLocation{
97122		ServerResponse: googleapi.ServerResponse{
97123			Header:         res.Header,
97124			HTTPStatusCode: res.StatusCode,
97125		},
97126	}
97127	target := &ret
97128	if err := gensupport.DecodeResponse(target, res); err != nil {
97129		return nil, err
97130	}
97131	return ret, nil
97132	// {
97133	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
97134	//   "httpMethod": "GET",
97135	//   "id": "compute.interconnectLocations.get",
97136	//   "parameterOrder": [
97137	//     "project",
97138	//     "interconnectLocation"
97139	//   ],
97140	//   "parameters": {
97141	//     "interconnectLocation": {
97142	//       "description": "Name of the interconnect location to return.",
97143	//       "location": "path",
97144	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97145	//       "required": true,
97146	//       "type": "string"
97147	//     },
97148	//     "project": {
97149	//       "description": "Project ID for this request.",
97150	//       "location": "path",
97151	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97152	//       "required": true,
97153	//       "type": "string"
97154	//     }
97155	//   },
97156	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
97157	//   "response": {
97158	//     "$ref": "InterconnectLocation"
97159	//   },
97160	//   "scopes": [
97161	//     "https://www.googleapis.com/auth/cloud-platform",
97162	//     "https://www.googleapis.com/auth/compute",
97163	//     "https://www.googleapis.com/auth/compute.readonly"
97164	//   ]
97165	// }
97166
97167}
97168
97169// method id "compute.interconnectLocations.list":
97170
97171type InterconnectLocationsListCall struct {
97172	s            *Service
97173	project      string
97174	urlParams_   gensupport.URLParams
97175	ifNoneMatch_ string
97176	ctx_         context.Context
97177	header_      http.Header
97178}
97179
97180// List: Retrieves the list of interconnect locations available to the
97181// specified project.
97182func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
97183	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97184	c.project = project
97185	return c
97186}
97187
97188// Filter sets the optional parameter "filter": A filter expression that
97189// filters resources listed in the response. The expression must specify
97190// the field name, a comparison operator, and the value that you want to
97191// use for filtering. The value must be a string, a number, or a
97192// boolean. The comparison operator must be either `=`, `!=`, `>`, or
97193// `<`.
97194//
97195// For example, if you are filtering Compute Engine instances, you can
97196// exclude instances named `example-instance` by specifying `name !=
97197// example-instance`.
97198//
97199// You can also filter nested fields. For example, you could specify
97200// `scheduling.automaticRestart = false` to include instances only if
97201// they are not scheduled for automatic restarts. You can use filtering
97202// on nested fields to filter based on resource labels.
97203//
97204// To filter on multiple expressions, provide each separate expression
97205// within parentheses. For example: ``` (scheduling.automaticRestart =
97206// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
97207// is an `AND` expression. However, you can include `AND` and `OR`
97208// expressions explicitly. For example: ``` (cpuPlatform = "Intel
97209// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
97210// (scheduling.automaticRestart = true) ```
97211func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
97212	c.urlParams_.Set("filter", filter)
97213	return c
97214}
97215
97216// MaxResults sets the optional parameter "maxResults": The maximum
97217// number of results per page that should be returned. If the number of
97218// available results is larger than `maxResults`, Compute Engine returns
97219// a `nextPageToken` that can be used to get the next page of results in
97220// subsequent list requests. Acceptable values are `0` to `500`,
97221// inclusive. (Default: `500`)
97222func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
97223	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97224	return c
97225}
97226
97227// OrderBy sets the optional parameter "orderBy": Sorts list results by
97228// a certain order. By default, results are returned in alphanumerical
97229// order based on the resource name.
97230//
97231// You can also sort results in descending order based on the creation
97232// timestamp using `orderBy="creationTimestamp desc". This sorts
97233// results based on the `creationTimestamp` field in reverse
97234// chronological order (newest result first). Use this to sort resources
97235// like operations so that the newest operation is returned
97236// first.
97237//
97238// Currently, only sorting by `name` or `creationTimestamp desc` is
97239// supported.
97240func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
97241	c.urlParams_.Set("orderBy", orderBy)
97242	return c
97243}
97244
97245// PageToken sets the optional parameter "pageToken": Specifies a page
97246// token to use. Set `pageToken` to the `nextPageToken` returned by a
97247// previous list request to get the next page of results.
97248func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
97249	c.urlParams_.Set("pageToken", pageToken)
97250	return c
97251}
97252
97253// ReturnPartialSuccess sets the optional parameter
97254// "returnPartialSuccess": Opt-in for partial success behavior which
97255// provides partial results in case of failure. The default value is
97256// false and the logic is the same as today.
97257func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall {
97258	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
97259	return c
97260}
97261
97262// Fields allows partial responses to be retrieved. See
97263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97264// for more information.
97265func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
97266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97267	return c
97268}
97269
97270// IfNoneMatch sets the optional parameter which makes the operation
97271// fail if the object's ETag matches the given value. This is useful for
97272// getting updates only after the object has changed since the last
97273// request. Use googleapi.IsNotModified to check whether the response
97274// error from Do is the result of In-None-Match.
97275func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
97276	c.ifNoneMatch_ = entityTag
97277	return c
97278}
97279
97280// Context sets the context to be used in this call's Do method. Any
97281// pending HTTP request will be aborted if the provided context is
97282// canceled.
97283func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
97284	c.ctx_ = ctx
97285	return c
97286}
97287
97288// Header returns an http.Header that can be modified by the caller to
97289// add HTTP headers to the request.
97290func (c *InterconnectLocationsListCall) Header() http.Header {
97291	if c.header_ == nil {
97292		c.header_ = make(http.Header)
97293	}
97294	return c.header_
97295}
97296
97297func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
97298	reqHeaders := make(http.Header)
97299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
97300	for k, v := range c.header_ {
97301		reqHeaders[k] = v
97302	}
97303	reqHeaders.Set("User-Agent", c.s.userAgent())
97304	if c.ifNoneMatch_ != "" {
97305		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97306	}
97307	var body io.Reader = nil
97308	c.urlParams_.Set("alt", alt)
97309	c.urlParams_.Set("prettyPrint", "false")
97310	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
97311	urls += "?" + c.urlParams_.Encode()
97312	req, err := http.NewRequest("GET", urls, body)
97313	if err != nil {
97314		return nil, err
97315	}
97316	req.Header = reqHeaders
97317	googleapi.Expand(req.URL, map[string]string{
97318		"project": c.project,
97319	})
97320	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97321}
97322
97323// Do executes the "compute.interconnectLocations.list" call.
97324// Exactly one of *InterconnectLocationList or error will be non-nil.
97325// Any non-2xx status code is an error. Response headers are in either
97326// *InterconnectLocationList.ServerResponse.Header or (if a response was
97327// returned at all) in error.(*googleapi.Error).Header. Use
97328// googleapi.IsNotModified to check whether the returned error was
97329// because http.StatusNotModified was returned.
97330func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
97331	gensupport.SetOptions(c.urlParams_, opts...)
97332	res, err := c.doRequest("json")
97333	if res != nil && res.StatusCode == http.StatusNotModified {
97334		if res.Body != nil {
97335			res.Body.Close()
97336		}
97337		return nil, &googleapi.Error{
97338			Code:   res.StatusCode,
97339			Header: res.Header,
97340		}
97341	}
97342	if err != nil {
97343		return nil, err
97344	}
97345	defer googleapi.CloseBody(res)
97346	if err := googleapi.CheckResponse(res); err != nil {
97347		return nil, err
97348	}
97349	ret := &InterconnectLocationList{
97350		ServerResponse: googleapi.ServerResponse{
97351			Header:         res.Header,
97352			HTTPStatusCode: res.StatusCode,
97353		},
97354	}
97355	target := &ret
97356	if err := gensupport.DecodeResponse(target, res); err != nil {
97357		return nil, err
97358	}
97359	return ret, nil
97360	// {
97361	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
97362	//   "httpMethod": "GET",
97363	//   "id": "compute.interconnectLocations.list",
97364	//   "parameterOrder": [
97365	//     "project"
97366	//   ],
97367	//   "parameters": {
97368	//     "filter": {
97369	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
97370	//       "location": "query",
97371	//       "type": "string"
97372	//     },
97373	//     "maxResults": {
97374	//       "default": "500",
97375	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
97376	//       "format": "uint32",
97377	//       "location": "query",
97378	//       "minimum": "0",
97379	//       "type": "integer"
97380	//     },
97381	//     "orderBy": {
97382	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
97383	//       "location": "query",
97384	//       "type": "string"
97385	//     },
97386	//     "pageToken": {
97387	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
97388	//       "location": "query",
97389	//       "type": "string"
97390	//     },
97391	//     "project": {
97392	//       "description": "Project ID for this request.",
97393	//       "location": "path",
97394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97395	//       "required": true,
97396	//       "type": "string"
97397	//     },
97398	//     "returnPartialSuccess": {
97399	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
97400	//       "location": "query",
97401	//       "type": "boolean"
97402	//     }
97403	//   },
97404	//   "path": "{project}/global/interconnectLocations",
97405	//   "response": {
97406	//     "$ref": "InterconnectLocationList"
97407	//   },
97408	//   "scopes": [
97409	//     "https://www.googleapis.com/auth/cloud-platform",
97410	//     "https://www.googleapis.com/auth/compute",
97411	//     "https://www.googleapis.com/auth/compute.readonly"
97412	//   ]
97413	// }
97414
97415}
97416
97417// Pages invokes f for each page of results.
97418// A non-nil error returned from f will halt the iteration.
97419// The provided context supersedes any context provided to the Context method.
97420func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
97421	c.ctx_ = ctx
97422	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97423	for {
97424		x, err := c.Do()
97425		if err != nil {
97426			return err
97427		}
97428		if err := f(x); err != nil {
97429			return err
97430		}
97431		if x.NextPageToken == "" {
97432			return nil
97433		}
97434		c.PageToken(x.NextPageToken)
97435	}
97436}
97437
97438// method id "compute.interconnectLocations.testIamPermissions":
97439
97440type InterconnectLocationsTestIamPermissionsCall struct {
97441	s                      *Service
97442	project                string
97443	resource               string
97444	testpermissionsrequest *TestPermissionsRequest
97445	urlParams_             gensupport.URLParams
97446	ctx_                   context.Context
97447	header_                http.Header
97448}
97449
97450// TestIamPermissions: Returns permissions that a caller has on the
97451// specified resource.
97452func (r *InterconnectLocationsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectLocationsTestIamPermissionsCall {
97453	c := &InterconnectLocationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97454	c.project = project
97455	c.resource = resource
97456	c.testpermissionsrequest = testpermissionsrequest
97457	return c
97458}
97459
97460// Fields allows partial responses to be retrieved. See
97461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97462// for more information.
97463func (c *InterconnectLocationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectLocationsTestIamPermissionsCall {
97464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97465	return c
97466}
97467
97468// Context sets the context to be used in this call's Do method. Any
97469// pending HTTP request will be aborted if the provided context is
97470// canceled.
97471func (c *InterconnectLocationsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectLocationsTestIamPermissionsCall {
97472	c.ctx_ = ctx
97473	return c
97474}
97475
97476// Header returns an http.Header that can be modified by the caller to
97477// add HTTP headers to the request.
97478func (c *InterconnectLocationsTestIamPermissionsCall) Header() http.Header {
97479	if c.header_ == nil {
97480		c.header_ = make(http.Header)
97481	}
97482	return c.header_
97483}
97484
97485func (c *InterconnectLocationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
97486	reqHeaders := make(http.Header)
97487	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
97488	for k, v := range c.header_ {
97489		reqHeaders[k] = v
97490	}
97491	reqHeaders.Set("User-Agent", c.s.userAgent())
97492	var body io.Reader = nil
97493	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
97494	if err != nil {
97495		return nil, err
97496	}
97497	reqHeaders.Set("Content-Type", "application/json")
97498	c.urlParams_.Set("alt", alt)
97499	c.urlParams_.Set("prettyPrint", "false")
97500	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{resource}/testIamPermissions")
97501	urls += "?" + c.urlParams_.Encode()
97502	req, err := http.NewRequest("POST", urls, body)
97503	if err != nil {
97504		return nil, err
97505	}
97506	req.Header = reqHeaders
97507	googleapi.Expand(req.URL, map[string]string{
97508		"project":  c.project,
97509		"resource": c.resource,
97510	})
97511	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97512}
97513
97514// Do executes the "compute.interconnectLocations.testIamPermissions" call.
97515// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
97516// non-2xx status code is an error. Response headers are in either
97517// *TestPermissionsResponse.ServerResponse.Header or (if a response was
97518// returned at all) in error.(*googleapi.Error).Header. Use
97519// googleapi.IsNotModified to check whether the returned error was
97520// because http.StatusNotModified was returned.
97521func (c *InterconnectLocationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
97522	gensupport.SetOptions(c.urlParams_, opts...)
97523	res, err := c.doRequest("json")
97524	if res != nil && res.StatusCode == http.StatusNotModified {
97525		if res.Body != nil {
97526			res.Body.Close()
97527		}
97528		return nil, &googleapi.Error{
97529			Code:   res.StatusCode,
97530			Header: res.Header,
97531		}
97532	}
97533	if err != nil {
97534		return nil, err
97535	}
97536	defer googleapi.CloseBody(res)
97537	if err := googleapi.CheckResponse(res); err != nil {
97538		return nil, err
97539	}
97540	ret := &TestPermissionsResponse{
97541		ServerResponse: googleapi.ServerResponse{
97542			Header:         res.Header,
97543			HTTPStatusCode: res.StatusCode,
97544		},
97545	}
97546	target := &ret
97547	if err := gensupport.DecodeResponse(target, res); err != nil {
97548		return nil, err
97549	}
97550	return ret, nil
97551	// {
97552	//   "description": "Returns permissions that a caller has on the specified resource.",
97553	//   "httpMethod": "POST",
97554	//   "id": "compute.interconnectLocations.testIamPermissions",
97555	//   "parameterOrder": [
97556	//     "project",
97557	//     "resource"
97558	//   ],
97559	//   "parameters": {
97560	//     "project": {
97561	//       "description": "Project ID for this request.",
97562	//       "location": "path",
97563	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97564	//       "required": true,
97565	//       "type": "string"
97566	//     },
97567	//     "resource": {
97568	//       "description": "Name or id of the resource for this request.",
97569	//       "location": "path",
97570	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97571	//       "required": true,
97572	//       "type": "string"
97573	//     }
97574	//   },
97575	//   "path": "{project}/global/interconnectLocations/{resource}/testIamPermissions",
97576	//   "request": {
97577	//     "$ref": "TestPermissionsRequest"
97578	//   },
97579	//   "response": {
97580	//     "$ref": "TestPermissionsResponse"
97581	//   },
97582	//   "scopes": [
97583	//     "https://www.googleapis.com/auth/cloud-platform",
97584	//     "https://www.googleapis.com/auth/compute",
97585	//     "https://www.googleapis.com/auth/compute.readonly"
97586	//   ]
97587	// }
97588
97589}
97590
97591// method id "compute.interconnects.delete":
97592
97593type InterconnectsDeleteCall struct {
97594	s            *Service
97595	project      string
97596	interconnect string
97597	urlParams_   gensupport.URLParams
97598	ctx_         context.Context
97599	header_      http.Header
97600}
97601
97602// Delete: Deletes the specified interconnect.
97603func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
97604	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97605	c.project = project
97606	c.interconnect = interconnect
97607	return c
97608}
97609
97610// RequestId sets the optional parameter "requestId": An optional
97611// request ID to identify requests. Specify a unique request ID so that
97612// if you must retry your request, the server will know to ignore the
97613// request if it has already been completed.
97614//
97615// For example, consider a situation where you make an initial request
97616// and the request times out. If you make the request again with the
97617// same request ID, the server can check if original operation with the
97618// same request ID was received, and if so, will ignore the second
97619// request. This prevents clients from accidentally creating duplicate
97620// commitments.
97621//
97622// The request ID must be a valid UUID with the exception that zero UUID
97623// is not supported (00000000-0000-0000-0000-000000000000).
97624func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
97625	c.urlParams_.Set("requestId", requestId)
97626	return c
97627}
97628
97629// Fields allows partial responses to be retrieved. See
97630// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97631// for more information.
97632func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
97633	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97634	return c
97635}
97636
97637// Context sets the context to be used in this call's Do method. Any
97638// pending HTTP request will be aborted if the provided context is
97639// canceled.
97640func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
97641	c.ctx_ = ctx
97642	return c
97643}
97644
97645// Header returns an http.Header that can be modified by the caller to
97646// add HTTP headers to the request.
97647func (c *InterconnectsDeleteCall) Header() http.Header {
97648	if c.header_ == nil {
97649		c.header_ = make(http.Header)
97650	}
97651	return c.header_
97652}
97653
97654func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
97655	reqHeaders := make(http.Header)
97656	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
97657	for k, v := range c.header_ {
97658		reqHeaders[k] = v
97659	}
97660	reqHeaders.Set("User-Agent", c.s.userAgent())
97661	var body io.Reader = nil
97662	c.urlParams_.Set("alt", alt)
97663	c.urlParams_.Set("prettyPrint", "false")
97664	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
97665	urls += "?" + c.urlParams_.Encode()
97666	req, err := http.NewRequest("DELETE", urls, body)
97667	if err != nil {
97668		return nil, err
97669	}
97670	req.Header = reqHeaders
97671	googleapi.Expand(req.URL, map[string]string{
97672		"project":      c.project,
97673		"interconnect": c.interconnect,
97674	})
97675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97676}
97677
97678// Do executes the "compute.interconnects.delete" call.
97679// Exactly one of *Operation or error will be non-nil. Any non-2xx
97680// status code is an error. Response headers are in either
97681// *Operation.ServerResponse.Header or (if a response was returned at
97682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97683// to check whether the returned error was because
97684// http.StatusNotModified was returned.
97685func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97686	gensupport.SetOptions(c.urlParams_, opts...)
97687	res, err := c.doRequest("json")
97688	if res != nil && res.StatusCode == http.StatusNotModified {
97689		if res.Body != nil {
97690			res.Body.Close()
97691		}
97692		return nil, &googleapi.Error{
97693			Code:   res.StatusCode,
97694			Header: res.Header,
97695		}
97696	}
97697	if err != nil {
97698		return nil, err
97699	}
97700	defer googleapi.CloseBody(res)
97701	if err := googleapi.CheckResponse(res); err != nil {
97702		return nil, err
97703	}
97704	ret := &Operation{
97705		ServerResponse: googleapi.ServerResponse{
97706			Header:         res.Header,
97707			HTTPStatusCode: res.StatusCode,
97708		},
97709	}
97710	target := &ret
97711	if err := gensupport.DecodeResponse(target, res); err != nil {
97712		return nil, err
97713	}
97714	return ret, nil
97715	// {
97716	//   "description": "Deletes the specified interconnect.",
97717	//   "httpMethod": "DELETE",
97718	//   "id": "compute.interconnects.delete",
97719	//   "parameterOrder": [
97720	//     "project",
97721	//     "interconnect"
97722	//   ],
97723	//   "parameters": {
97724	//     "interconnect": {
97725	//       "description": "Name of the interconnect to delete.",
97726	//       "location": "path",
97727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97728	//       "required": true,
97729	//       "type": "string"
97730	//     },
97731	//     "project": {
97732	//       "description": "Project ID for this request.",
97733	//       "location": "path",
97734	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97735	//       "required": true,
97736	//       "type": "string"
97737	//     },
97738	//     "requestId": {
97739	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97740	//       "location": "query",
97741	//       "type": "string"
97742	//     }
97743	//   },
97744	//   "path": "{project}/global/interconnects/{interconnect}",
97745	//   "response": {
97746	//     "$ref": "Operation"
97747	//   },
97748	//   "scopes": [
97749	//     "https://www.googleapis.com/auth/cloud-platform",
97750	//     "https://www.googleapis.com/auth/compute"
97751	//   ]
97752	// }
97753
97754}
97755
97756// method id "compute.interconnects.get":
97757
97758type InterconnectsGetCall struct {
97759	s            *Service
97760	project      string
97761	interconnect string
97762	urlParams_   gensupport.URLParams
97763	ifNoneMatch_ string
97764	ctx_         context.Context
97765	header_      http.Header
97766}
97767
97768// Get: Returns the specified interconnect. Get a list of available
97769// interconnects by making a list() request.
97770func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
97771	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97772	c.project = project
97773	c.interconnect = interconnect
97774	return c
97775}
97776
97777// Fields allows partial responses to be retrieved. See
97778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97779// for more information.
97780func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
97781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97782	return c
97783}
97784
97785// IfNoneMatch sets the optional parameter which makes the operation
97786// fail if the object's ETag matches the given value. This is useful for
97787// getting updates only after the object has changed since the last
97788// request. Use googleapi.IsNotModified to check whether the response
97789// error from Do is the result of In-None-Match.
97790func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
97791	c.ifNoneMatch_ = entityTag
97792	return c
97793}
97794
97795// Context sets the context to be used in this call's Do method. Any
97796// pending HTTP request will be aborted if the provided context is
97797// canceled.
97798func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
97799	c.ctx_ = ctx
97800	return c
97801}
97802
97803// Header returns an http.Header that can be modified by the caller to
97804// add HTTP headers to the request.
97805func (c *InterconnectsGetCall) Header() http.Header {
97806	if c.header_ == nil {
97807		c.header_ = make(http.Header)
97808	}
97809	return c.header_
97810}
97811
97812func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
97813	reqHeaders := make(http.Header)
97814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
97815	for k, v := range c.header_ {
97816		reqHeaders[k] = v
97817	}
97818	reqHeaders.Set("User-Agent", c.s.userAgent())
97819	if c.ifNoneMatch_ != "" {
97820		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97821	}
97822	var body io.Reader = nil
97823	c.urlParams_.Set("alt", alt)
97824	c.urlParams_.Set("prettyPrint", "false")
97825	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
97826	urls += "?" + c.urlParams_.Encode()
97827	req, err := http.NewRequest("GET", urls, body)
97828	if err != nil {
97829		return nil, err
97830	}
97831	req.Header = reqHeaders
97832	googleapi.Expand(req.URL, map[string]string{
97833		"project":      c.project,
97834		"interconnect": c.interconnect,
97835	})
97836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97837}
97838
97839// Do executes the "compute.interconnects.get" call.
97840// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
97841// status code is an error. Response headers are in either
97842// *Interconnect.ServerResponse.Header or (if a response was returned at
97843// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97844// to check whether the returned error was because
97845// http.StatusNotModified was returned.
97846func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
97847	gensupport.SetOptions(c.urlParams_, opts...)
97848	res, err := c.doRequest("json")
97849	if res != nil && res.StatusCode == http.StatusNotModified {
97850		if res.Body != nil {
97851			res.Body.Close()
97852		}
97853		return nil, &googleapi.Error{
97854			Code:   res.StatusCode,
97855			Header: res.Header,
97856		}
97857	}
97858	if err != nil {
97859		return nil, err
97860	}
97861	defer googleapi.CloseBody(res)
97862	if err := googleapi.CheckResponse(res); err != nil {
97863		return nil, err
97864	}
97865	ret := &Interconnect{
97866		ServerResponse: googleapi.ServerResponse{
97867			Header:         res.Header,
97868			HTTPStatusCode: res.StatusCode,
97869		},
97870	}
97871	target := &ret
97872	if err := gensupport.DecodeResponse(target, res); err != nil {
97873		return nil, err
97874	}
97875	return ret, nil
97876	// {
97877	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
97878	//   "httpMethod": "GET",
97879	//   "id": "compute.interconnects.get",
97880	//   "parameterOrder": [
97881	//     "project",
97882	//     "interconnect"
97883	//   ],
97884	//   "parameters": {
97885	//     "interconnect": {
97886	//       "description": "Name of the interconnect to return.",
97887	//       "location": "path",
97888	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97889	//       "required": true,
97890	//       "type": "string"
97891	//     },
97892	//     "project": {
97893	//       "description": "Project ID for this request.",
97894	//       "location": "path",
97895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97896	//       "required": true,
97897	//       "type": "string"
97898	//     }
97899	//   },
97900	//   "path": "{project}/global/interconnects/{interconnect}",
97901	//   "response": {
97902	//     "$ref": "Interconnect"
97903	//   },
97904	//   "scopes": [
97905	//     "https://www.googleapis.com/auth/cloud-platform",
97906	//     "https://www.googleapis.com/auth/compute",
97907	//     "https://www.googleapis.com/auth/compute.readonly"
97908	//   ]
97909	// }
97910
97911}
97912
97913// method id "compute.interconnects.getDiagnostics":
97914
97915type InterconnectsGetDiagnosticsCall struct {
97916	s            *Service
97917	project      string
97918	interconnect string
97919	urlParams_   gensupport.URLParams
97920	ifNoneMatch_ string
97921	ctx_         context.Context
97922	header_      http.Header
97923}
97924
97925// GetDiagnostics: Returns the interconnectDiagnostics for the specified
97926// interconnect.
97927func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
97928	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97929	c.project = project
97930	c.interconnect = interconnect
97931	return c
97932}
97933
97934// Fields allows partial responses to be retrieved. See
97935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97936// for more information.
97937func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
97938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97939	return c
97940}
97941
97942// IfNoneMatch sets the optional parameter which makes the operation
97943// fail if the object's ETag matches the given value. This is useful for
97944// getting updates only after the object has changed since the last
97945// request. Use googleapi.IsNotModified to check whether the response
97946// error from Do is the result of In-None-Match.
97947func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
97948	c.ifNoneMatch_ = entityTag
97949	return c
97950}
97951
97952// Context sets the context to be used in this call's Do method. Any
97953// pending HTTP request will be aborted if the provided context is
97954// canceled.
97955func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
97956	c.ctx_ = ctx
97957	return c
97958}
97959
97960// Header returns an http.Header that can be modified by the caller to
97961// add HTTP headers to the request.
97962func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
97963	if c.header_ == nil {
97964		c.header_ = make(http.Header)
97965	}
97966	return c.header_
97967}
97968
97969func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
97970	reqHeaders := make(http.Header)
97971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
97972	for k, v := range c.header_ {
97973		reqHeaders[k] = v
97974	}
97975	reqHeaders.Set("User-Agent", c.s.userAgent())
97976	if c.ifNoneMatch_ != "" {
97977		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97978	}
97979	var body io.Reader = nil
97980	c.urlParams_.Set("alt", alt)
97981	c.urlParams_.Set("prettyPrint", "false")
97982	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}/getDiagnostics")
97983	urls += "?" + c.urlParams_.Encode()
97984	req, err := http.NewRequest("GET", urls, body)
97985	if err != nil {
97986		return nil, err
97987	}
97988	req.Header = reqHeaders
97989	googleapi.Expand(req.URL, map[string]string{
97990		"project":      c.project,
97991		"interconnect": c.interconnect,
97992	})
97993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97994}
97995
97996// Do executes the "compute.interconnects.getDiagnostics" call.
97997// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
97998// non-nil. Any non-2xx status code is an error. Response headers are in
97999// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
98000// (if a response was returned at all) in
98001// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
98002// whether the returned error was because http.StatusNotModified was
98003// returned.
98004func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
98005	gensupport.SetOptions(c.urlParams_, opts...)
98006	res, err := c.doRequest("json")
98007	if res != nil && res.StatusCode == http.StatusNotModified {
98008		if res.Body != nil {
98009			res.Body.Close()
98010		}
98011		return nil, &googleapi.Error{
98012			Code:   res.StatusCode,
98013			Header: res.Header,
98014		}
98015	}
98016	if err != nil {
98017		return nil, err
98018	}
98019	defer googleapi.CloseBody(res)
98020	if err := googleapi.CheckResponse(res); err != nil {
98021		return nil, err
98022	}
98023	ret := &InterconnectsGetDiagnosticsResponse{
98024		ServerResponse: googleapi.ServerResponse{
98025			Header:         res.Header,
98026			HTTPStatusCode: res.StatusCode,
98027		},
98028	}
98029	target := &ret
98030	if err := gensupport.DecodeResponse(target, res); err != nil {
98031		return nil, err
98032	}
98033	return ret, nil
98034	// {
98035	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
98036	//   "httpMethod": "GET",
98037	//   "id": "compute.interconnects.getDiagnostics",
98038	//   "parameterOrder": [
98039	//     "project",
98040	//     "interconnect"
98041	//   ],
98042	//   "parameters": {
98043	//     "interconnect": {
98044	//       "description": "Name of the interconnect resource to query.",
98045	//       "location": "path",
98046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98047	//       "required": true,
98048	//       "type": "string"
98049	//     },
98050	//     "project": {
98051	//       "description": "Project ID for this request.",
98052	//       "location": "path",
98053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98054	//       "required": true,
98055	//       "type": "string"
98056	//     }
98057	//   },
98058	//   "path": "{project}/global/interconnects/{interconnect}/getDiagnostics",
98059	//   "response": {
98060	//     "$ref": "InterconnectsGetDiagnosticsResponse"
98061	//   },
98062	//   "scopes": [
98063	//     "https://www.googleapis.com/auth/cloud-platform",
98064	//     "https://www.googleapis.com/auth/compute",
98065	//     "https://www.googleapis.com/auth/compute.readonly"
98066	//   ]
98067	// }
98068
98069}
98070
98071// method id "compute.interconnects.getIamPolicy":
98072
98073type InterconnectsGetIamPolicyCall struct {
98074	s            *Service
98075	project      string
98076	resource     string
98077	urlParams_   gensupport.URLParams
98078	ifNoneMatch_ string
98079	ctx_         context.Context
98080	header_      http.Header
98081}
98082
98083// GetIamPolicy: Gets the access control policy for a resource. May be
98084// empty if no such policy or resource exists.
98085func (r *InterconnectsService) GetIamPolicy(project string, resource string) *InterconnectsGetIamPolicyCall {
98086	c := &InterconnectsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98087	c.project = project
98088	c.resource = resource
98089	return c
98090}
98091
98092// OptionsRequestedPolicyVersion sets the optional parameter
98093// "optionsRequestedPolicyVersion": Requested IAM Policy version.
98094func (c *InterconnectsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectsGetIamPolicyCall {
98095	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
98096	return c
98097}
98098
98099// Fields allows partial responses to be retrieved. See
98100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98101// for more information.
98102func (c *InterconnectsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectsGetIamPolicyCall {
98103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98104	return c
98105}
98106
98107// IfNoneMatch sets the optional parameter which makes the operation
98108// fail if the object's ETag matches the given value. This is useful for
98109// getting updates only after the object has changed since the last
98110// request. Use googleapi.IsNotModified to check whether the response
98111// error from Do is the result of In-None-Match.
98112func (c *InterconnectsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectsGetIamPolicyCall {
98113	c.ifNoneMatch_ = entityTag
98114	return c
98115}
98116
98117// Context sets the context to be used in this call's Do method. Any
98118// pending HTTP request will be aborted if the provided context is
98119// canceled.
98120func (c *InterconnectsGetIamPolicyCall) Context(ctx context.Context) *InterconnectsGetIamPolicyCall {
98121	c.ctx_ = ctx
98122	return c
98123}
98124
98125// Header returns an http.Header that can be modified by the caller to
98126// add HTTP headers to the request.
98127func (c *InterconnectsGetIamPolicyCall) Header() http.Header {
98128	if c.header_ == nil {
98129		c.header_ = make(http.Header)
98130	}
98131	return c.header_
98132}
98133
98134func (c *InterconnectsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
98135	reqHeaders := make(http.Header)
98136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
98137	for k, v := range c.header_ {
98138		reqHeaders[k] = v
98139	}
98140	reqHeaders.Set("User-Agent", c.s.userAgent())
98141	if c.ifNoneMatch_ != "" {
98142		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98143	}
98144	var body io.Reader = nil
98145	c.urlParams_.Set("alt", alt)
98146	c.urlParams_.Set("prettyPrint", "false")
98147	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/getIamPolicy")
98148	urls += "?" + c.urlParams_.Encode()
98149	req, err := http.NewRequest("GET", urls, body)
98150	if err != nil {
98151		return nil, err
98152	}
98153	req.Header = reqHeaders
98154	googleapi.Expand(req.URL, map[string]string{
98155		"project":  c.project,
98156		"resource": c.resource,
98157	})
98158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98159}
98160
98161// Do executes the "compute.interconnects.getIamPolicy" call.
98162// Exactly one of *Policy or error will be non-nil. Any non-2xx status
98163// code is an error. Response headers are in either
98164// *Policy.ServerResponse.Header or (if a response was returned at all)
98165// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
98166// check whether the returned error was because http.StatusNotModified
98167// was returned.
98168func (c *InterconnectsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
98169	gensupport.SetOptions(c.urlParams_, opts...)
98170	res, err := c.doRequest("json")
98171	if res != nil && res.StatusCode == http.StatusNotModified {
98172		if res.Body != nil {
98173			res.Body.Close()
98174		}
98175		return nil, &googleapi.Error{
98176			Code:   res.StatusCode,
98177			Header: res.Header,
98178		}
98179	}
98180	if err != nil {
98181		return nil, err
98182	}
98183	defer googleapi.CloseBody(res)
98184	if err := googleapi.CheckResponse(res); err != nil {
98185		return nil, err
98186	}
98187	ret := &Policy{
98188		ServerResponse: googleapi.ServerResponse{
98189			Header:         res.Header,
98190			HTTPStatusCode: res.StatusCode,
98191		},
98192	}
98193	target := &ret
98194	if err := gensupport.DecodeResponse(target, res); err != nil {
98195		return nil, err
98196	}
98197	return ret, nil
98198	// {
98199	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
98200	//   "httpMethod": "GET",
98201	//   "id": "compute.interconnects.getIamPolicy",
98202	//   "parameterOrder": [
98203	//     "project",
98204	//     "resource"
98205	//   ],
98206	//   "parameters": {
98207	//     "optionsRequestedPolicyVersion": {
98208	//       "description": "Requested IAM Policy version.",
98209	//       "format": "int32",
98210	//       "location": "query",
98211	//       "type": "integer"
98212	//     },
98213	//     "project": {
98214	//       "description": "Project ID for this request.",
98215	//       "location": "path",
98216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98217	//       "required": true,
98218	//       "type": "string"
98219	//     },
98220	//     "resource": {
98221	//       "description": "Name or id of the resource for this request.",
98222	//       "location": "path",
98223	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98224	//       "required": true,
98225	//       "type": "string"
98226	//     }
98227	//   },
98228	//   "path": "{project}/global/interconnects/{resource}/getIamPolicy",
98229	//   "response": {
98230	//     "$ref": "Policy"
98231	//   },
98232	//   "scopes": [
98233	//     "https://www.googleapis.com/auth/cloud-platform",
98234	//     "https://www.googleapis.com/auth/compute",
98235	//     "https://www.googleapis.com/auth/compute.readonly"
98236	//   ]
98237	// }
98238
98239}
98240
98241// method id "compute.interconnects.insert":
98242
98243type InterconnectsInsertCall struct {
98244	s            *Service
98245	project      string
98246	interconnect *Interconnect
98247	urlParams_   gensupport.URLParams
98248	ctx_         context.Context
98249	header_      http.Header
98250}
98251
98252// Insert: Creates a Interconnect in the specified project using the
98253// data included in the request.
98254func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
98255	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98256	c.project = project
98257	c.interconnect = interconnect
98258	return c
98259}
98260
98261// RequestId sets the optional parameter "requestId": An optional
98262// request ID to identify requests. Specify a unique request ID so that
98263// if you must retry your request, the server will know to ignore the
98264// request if it has already been completed.
98265//
98266// For example, consider a situation where you make an initial request
98267// and the request times out. If you make the request again with the
98268// same request ID, the server can check if original operation with the
98269// same request ID was received, and if so, will ignore the second
98270// request. This prevents clients from accidentally creating duplicate
98271// commitments.
98272//
98273// The request ID must be a valid UUID with the exception that zero UUID
98274// is not supported (00000000-0000-0000-0000-000000000000).
98275func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
98276	c.urlParams_.Set("requestId", requestId)
98277	return c
98278}
98279
98280// Fields allows partial responses to be retrieved. See
98281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98282// for more information.
98283func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
98284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98285	return c
98286}
98287
98288// Context sets the context to be used in this call's Do method. Any
98289// pending HTTP request will be aborted if the provided context is
98290// canceled.
98291func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
98292	c.ctx_ = ctx
98293	return c
98294}
98295
98296// Header returns an http.Header that can be modified by the caller to
98297// add HTTP headers to the request.
98298func (c *InterconnectsInsertCall) Header() http.Header {
98299	if c.header_ == nil {
98300		c.header_ = make(http.Header)
98301	}
98302	return c.header_
98303}
98304
98305func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
98306	reqHeaders := make(http.Header)
98307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
98308	for k, v := range c.header_ {
98309		reqHeaders[k] = v
98310	}
98311	reqHeaders.Set("User-Agent", c.s.userAgent())
98312	var body io.Reader = nil
98313	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
98314	if err != nil {
98315		return nil, err
98316	}
98317	reqHeaders.Set("Content-Type", "application/json")
98318	c.urlParams_.Set("alt", alt)
98319	c.urlParams_.Set("prettyPrint", "false")
98320	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
98321	urls += "?" + c.urlParams_.Encode()
98322	req, err := http.NewRequest("POST", urls, body)
98323	if err != nil {
98324		return nil, err
98325	}
98326	req.Header = reqHeaders
98327	googleapi.Expand(req.URL, map[string]string{
98328		"project": c.project,
98329	})
98330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98331}
98332
98333// Do executes the "compute.interconnects.insert" call.
98334// Exactly one of *Operation or error will be non-nil. Any non-2xx
98335// status code is an error. Response headers are in either
98336// *Operation.ServerResponse.Header or (if a response was returned at
98337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98338// to check whether the returned error was because
98339// http.StatusNotModified was returned.
98340func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98341	gensupport.SetOptions(c.urlParams_, opts...)
98342	res, err := c.doRequest("json")
98343	if res != nil && res.StatusCode == http.StatusNotModified {
98344		if res.Body != nil {
98345			res.Body.Close()
98346		}
98347		return nil, &googleapi.Error{
98348			Code:   res.StatusCode,
98349			Header: res.Header,
98350		}
98351	}
98352	if err != nil {
98353		return nil, err
98354	}
98355	defer googleapi.CloseBody(res)
98356	if err := googleapi.CheckResponse(res); err != nil {
98357		return nil, err
98358	}
98359	ret := &Operation{
98360		ServerResponse: googleapi.ServerResponse{
98361			Header:         res.Header,
98362			HTTPStatusCode: res.StatusCode,
98363		},
98364	}
98365	target := &ret
98366	if err := gensupport.DecodeResponse(target, res); err != nil {
98367		return nil, err
98368	}
98369	return ret, nil
98370	// {
98371	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
98372	//   "httpMethod": "POST",
98373	//   "id": "compute.interconnects.insert",
98374	//   "parameterOrder": [
98375	//     "project"
98376	//   ],
98377	//   "parameters": {
98378	//     "project": {
98379	//       "description": "Project ID for this request.",
98380	//       "location": "path",
98381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98382	//       "required": true,
98383	//       "type": "string"
98384	//     },
98385	//     "requestId": {
98386	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98387	//       "location": "query",
98388	//       "type": "string"
98389	//     }
98390	//   },
98391	//   "path": "{project}/global/interconnects",
98392	//   "request": {
98393	//     "$ref": "Interconnect"
98394	//   },
98395	//   "response": {
98396	//     "$ref": "Operation"
98397	//   },
98398	//   "scopes": [
98399	//     "https://www.googleapis.com/auth/cloud-platform",
98400	//     "https://www.googleapis.com/auth/compute"
98401	//   ]
98402	// }
98403
98404}
98405
98406// method id "compute.interconnects.list":
98407
98408type InterconnectsListCall struct {
98409	s            *Service
98410	project      string
98411	urlParams_   gensupport.URLParams
98412	ifNoneMatch_ string
98413	ctx_         context.Context
98414	header_      http.Header
98415}
98416
98417// List: Retrieves the list of interconnect available to the specified
98418// project.
98419func (r *InterconnectsService) List(project string) *InterconnectsListCall {
98420	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98421	c.project = project
98422	return c
98423}
98424
98425// Filter sets the optional parameter "filter": A filter expression that
98426// filters resources listed in the response. The expression must specify
98427// the field name, a comparison operator, and the value that you want to
98428// use for filtering. The value must be a string, a number, or a
98429// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98430// `<`.
98431//
98432// For example, if you are filtering Compute Engine instances, you can
98433// exclude instances named `example-instance` by specifying `name !=
98434// example-instance`.
98435//
98436// You can also filter nested fields. For example, you could specify
98437// `scheduling.automaticRestart = false` to include instances only if
98438// they are not scheduled for automatic restarts. You can use filtering
98439// on nested fields to filter based on resource labels.
98440//
98441// To filter on multiple expressions, provide each separate expression
98442// within parentheses. For example: ``` (scheduling.automaticRestart =
98443// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
98444// is an `AND` expression. However, you can include `AND` and `OR`
98445// expressions explicitly. For example: ``` (cpuPlatform = "Intel
98446// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
98447// (scheduling.automaticRestart = true) ```
98448func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
98449	c.urlParams_.Set("filter", filter)
98450	return c
98451}
98452
98453// MaxResults sets the optional parameter "maxResults": The maximum
98454// number of results per page that should be returned. If the number of
98455// available results is larger than `maxResults`, Compute Engine returns
98456// a `nextPageToken` that can be used to get the next page of results in
98457// subsequent list requests. Acceptable values are `0` to `500`,
98458// inclusive. (Default: `500`)
98459func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
98460	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98461	return c
98462}
98463
98464// OrderBy sets the optional parameter "orderBy": Sorts list results by
98465// a certain order. By default, results are returned in alphanumerical
98466// order based on the resource name.
98467//
98468// You can also sort results in descending order based on the creation
98469// timestamp using `orderBy="creationTimestamp desc". This sorts
98470// results based on the `creationTimestamp` field in reverse
98471// chronological order (newest result first). Use this to sort resources
98472// like operations so that the newest operation is returned
98473// first.
98474//
98475// Currently, only sorting by `name` or `creationTimestamp desc` is
98476// supported.
98477func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
98478	c.urlParams_.Set("orderBy", orderBy)
98479	return c
98480}
98481
98482// PageToken sets the optional parameter "pageToken": Specifies a page
98483// token to use. Set `pageToken` to the `nextPageToken` returned by a
98484// previous list request to get the next page of results.
98485func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
98486	c.urlParams_.Set("pageToken", pageToken)
98487	return c
98488}
98489
98490// ReturnPartialSuccess sets the optional parameter
98491// "returnPartialSuccess": Opt-in for partial success behavior which
98492// provides partial results in case of failure. The default value is
98493// false and the logic is the same as today.
98494func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall {
98495	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
98496	return c
98497}
98498
98499// Fields allows partial responses to be retrieved. See
98500// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98501// for more information.
98502func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
98503	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98504	return c
98505}
98506
98507// IfNoneMatch sets the optional parameter which makes the operation
98508// fail if the object's ETag matches the given value. This is useful for
98509// getting updates only after the object has changed since the last
98510// request. Use googleapi.IsNotModified to check whether the response
98511// error from Do is the result of In-None-Match.
98512func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
98513	c.ifNoneMatch_ = entityTag
98514	return c
98515}
98516
98517// Context sets the context to be used in this call's Do method. Any
98518// pending HTTP request will be aborted if the provided context is
98519// canceled.
98520func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
98521	c.ctx_ = ctx
98522	return c
98523}
98524
98525// Header returns an http.Header that can be modified by the caller to
98526// add HTTP headers to the request.
98527func (c *InterconnectsListCall) Header() http.Header {
98528	if c.header_ == nil {
98529		c.header_ = make(http.Header)
98530	}
98531	return c.header_
98532}
98533
98534func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
98535	reqHeaders := make(http.Header)
98536	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
98537	for k, v := range c.header_ {
98538		reqHeaders[k] = v
98539	}
98540	reqHeaders.Set("User-Agent", c.s.userAgent())
98541	if c.ifNoneMatch_ != "" {
98542		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98543	}
98544	var body io.Reader = nil
98545	c.urlParams_.Set("alt", alt)
98546	c.urlParams_.Set("prettyPrint", "false")
98547	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
98548	urls += "?" + c.urlParams_.Encode()
98549	req, err := http.NewRequest("GET", urls, body)
98550	if err != nil {
98551		return nil, err
98552	}
98553	req.Header = reqHeaders
98554	googleapi.Expand(req.URL, map[string]string{
98555		"project": c.project,
98556	})
98557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98558}
98559
98560// Do executes the "compute.interconnects.list" call.
98561// Exactly one of *InterconnectList or error will be non-nil. Any
98562// non-2xx status code is an error. Response headers are in either
98563// *InterconnectList.ServerResponse.Header or (if a response was
98564// returned at all) in error.(*googleapi.Error).Header. Use
98565// googleapi.IsNotModified to check whether the returned error was
98566// because http.StatusNotModified was returned.
98567func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
98568	gensupport.SetOptions(c.urlParams_, opts...)
98569	res, err := c.doRequest("json")
98570	if res != nil && res.StatusCode == http.StatusNotModified {
98571		if res.Body != nil {
98572			res.Body.Close()
98573		}
98574		return nil, &googleapi.Error{
98575			Code:   res.StatusCode,
98576			Header: res.Header,
98577		}
98578	}
98579	if err != nil {
98580		return nil, err
98581	}
98582	defer googleapi.CloseBody(res)
98583	if err := googleapi.CheckResponse(res); err != nil {
98584		return nil, err
98585	}
98586	ret := &InterconnectList{
98587		ServerResponse: googleapi.ServerResponse{
98588			Header:         res.Header,
98589			HTTPStatusCode: res.StatusCode,
98590		},
98591	}
98592	target := &ret
98593	if err := gensupport.DecodeResponse(target, res); err != nil {
98594		return nil, err
98595	}
98596	return ret, nil
98597	// {
98598	//   "description": "Retrieves the list of interconnect available to the specified project.",
98599	//   "httpMethod": "GET",
98600	//   "id": "compute.interconnects.list",
98601	//   "parameterOrder": [
98602	//     "project"
98603	//   ],
98604	//   "parameters": {
98605	//     "filter": {
98606	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
98607	//       "location": "query",
98608	//       "type": "string"
98609	//     },
98610	//     "maxResults": {
98611	//       "default": "500",
98612	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
98613	//       "format": "uint32",
98614	//       "location": "query",
98615	//       "minimum": "0",
98616	//       "type": "integer"
98617	//     },
98618	//     "orderBy": {
98619	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
98620	//       "location": "query",
98621	//       "type": "string"
98622	//     },
98623	//     "pageToken": {
98624	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
98625	//       "location": "query",
98626	//       "type": "string"
98627	//     },
98628	//     "project": {
98629	//       "description": "Project ID for this request.",
98630	//       "location": "path",
98631	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98632	//       "required": true,
98633	//       "type": "string"
98634	//     },
98635	//     "returnPartialSuccess": {
98636	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
98637	//       "location": "query",
98638	//       "type": "boolean"
98639	//     }
98640	//   },
98641	//   "path": "{project}/global/interconnects",
98642	//   "response": {
98643	//     "$ref": "InterconnectList"
98644	//   },
98645	//   "scopes": [
98646	//     "https://www.googleapis.com/auth/cloud-platform",
98647	//     "https://www.googleapis.com/auth/compute",
98648	//     "https://www.googleapis.com/auth/compute.readonly"
98649	//   ]
98650	// }
98651
98652}
98653
98654// Pages invokes f for each page of results.
98655// A non-nil error returned from f will halt the iteration.
98656// The provided context supersedes any context provided to the Context method.
98657func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
98658	c.ctx_ = ctx
98659	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98660	for {
98661		x, err := c.Do()
98662		if err != nil {
98663			return err
98664		}
98665		if err := f(x); err != nil {
98666			return err
98667		}
98668		if x.NextPageToken == "" {
98669			return nil
98670		}
98671		c.PageToken(x.NextPageToken)
98672	}
98673}
98674
98675// method id "compute.interconnects.patch":
98676
98677type InterconnectsPatchCall struct {
98678	s             *Service
98679	project       string
98680	interconnect  string
98681	interconnect2 *Interconnect
98682	urlParams_    gensupport.URLParams
98683	ctx_          context.Context
98684	header_       http.Header
98685}
98686
98687// Patch: Updates the specified interconnect with the data included in
98688// the request. This method supports PATCH semantics and uses the JSON
98689// merge patch format and processing rules.
98690func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
98691	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98692	c.project = project
98693	c.interconnect = interconnect
98694	c.interconnect2 = interconnect2
98695	return c
98696}
98697
98698// RequestId sets the optional parameter "requestId": An optional
98699// request ID to identify requests. Specify a unique request ID so that
98700// if you must retry your request, the server will know to ignore the
98701// request if it has already been completed.
98702//
98703// For example, consider a situation where you make an initial request
98704// and the request times out. If you make the request again with the
98705// same request ID, the server can check if original operation with the
98706// same request ID was received, and if so, will ignore the second
98707// request. This prevents clients from accidentally creating duplicate
98708// commitments.
98709//
98710// The request ID must be a valid UUID with the exception that zero UUID
98711// is not supported (00000000-0000-0000-0000-000000000000).
98712func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
98713	c.urlParams_.Set("requestId", requestId)
98714	return c
98715}
98716
98717// Fields allows partial responses to be retrieved. See
98718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98719// for more information.
98720func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
98721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98722	return c
98723}
98724
98725// Context sets the context to be used in this call's Do method. Any
98726// pending HTTP request will be aborted if the provided context is
98727// canceled.
98728func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
98729	c.ctx_ = ctx
98730	return c
98731}
98732
98733// Header returns an http.Header that can be modified by the caller to
98734// add HTTP headers to the request.
98735func (c *InterconnectsPatchCall) Header() http.Header {
98736	if c.header_ == nil {
98737		c.header_ = make(http.Header)
98738	}
98739	return c.header_
98740}
98741
98742func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
98743	reqHeaders := make(http.Header)
98744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
98745	for k, v := range c.header_ {
98746		reqHeaders[k] = v
98747	}
98748	reqHeaders.Set("User-Agent", c.s.userAgent())
98749	var body io.Reader = nil
98750	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
98751	if err != nil {
98752		return nil, err
98753	}
98754	reqHeaders.Set("Content-Type", "application/json")
98755	c.urlParams_.Set("alt", alt)
98756	c.urlParams_.Set("prettyPrint", "false")
98757	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
98758	urls += "?" + c.urlParams_.Encode()
98759	req, err := http.NewRequest("PATCH", urls, body)
98760	if err != nil {
98761		return nil, err
98762	}
98763	req.Header = reqHeaders
98764	googleapi.Expand(req.URL, map[string]string{
98765		"project":      c.project,
98766		"interconnect": c.interconnect,
98767	})
98768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98769}
98770
98771// Do executes the "compute.interconnects.patch" call.
98772// Exactly one of *Operation or error will be non-nil. Any non-2xx
98773// status code is an error. Response headers are in either
98774// *Operation.ServerResponse.Header or (if a response was returned at
98775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98776// to check whether the returned error was because
98777// http.StatusNotModified was returned.
98778func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98779	gensupport.SetOptions(c.urlParams_, opts...)
98780	res, err := c.doRequest("json")
98781	if res != nil && res.StatusCode == http.StatusNotModified {
98782		if res.Body != nil {
98783			res.Body.Close()
98784		}
98785		return nil, &googleapi.Error{
98786			Code:   res.StatusCode,
98787			Header: res.Header,
98788		}
98789	}
98790	if err != nil {
98791		return nil, err
98792	}
98793	defer googleapi.CloseBody(res)
98794	if err := googleapi.CheckResponse(res); err != nil {
98795		return nil, err
98796	}
98797	ret := &Operation{
98798		ServerResponse: googleapi.ServerResponse{
98799			Header:         res.Header,
98800			HTTPStatusCode: res.StatusCode,
98801		},
98802	}
98803	target := &ret
98804	if err := gensupport.DecodeResponse(target, res); err != nil {
98805		return nil, err
98806	}
98807	return ret, nil
98808	// {
98809	//   "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.",
98810	//   "httpMethod": "PATCH",
98811	//   "id": "compute.interconnects.patch",
98812	//   "parameterOrder": [
98813	//     "project",
98814	//     "interconnect"
98815	//   ],
98816	//   "parameters": {
98817	//     "interconnect": {
98818	//       "description": "Name of the interconnect to update.",
98819	//       "location": "path",
98820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98821	//       "required": true,
98822	//       "type": "string"
98823	//     },
98824	//     "project": {
98825	//       "description": "Project ID for this request.",
98826	//       "location": "path",
98827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98828	//       "required": true,
98829	//       "type": "string"
98830	//     },
98831	//     "requestId": {
98832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98833	//       "location": "query",
98834	//       "type": "string"
98835	//     }
98836	//   },
98837	//   "path": "{project}/global/interconnects/{interconnect}",
98838	//   "request": {
98839	//     "$ref": "Interconnect"
98840	//   },
98841	//   "response": {
98842	//     "$ref": "Operation"
98843	//   },
98844	//   "scopes": [
98845	//     "https://www.googleapis.com/auth/cloud-platform",
98846	//     "https://www.googleapis.com/auth/compute"
98847	//   ]
98848	// }
98849
98850}
98851
98852// method id "compute.interconnects.setIamPolicy":
98853
98854type InterconnectsSetIamPolicyCall struct {
98855	s                      *Service
98856	project                string
98857	resource               string
98858	globalsetpolicyrequest *GlobalSetPolicyRequest
98859	urlParams_             gensupport.URLParams
98860	ctx_                   context.Context
98861	header_                http.Header
98862}
98863
98864// SetIamPolicy: Sets the access control policy on the specified
98865// resource. Replaces any existing policy.
98866func (r *InterconnectsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InterconnectsSetIamPolicyCall {
98867	c := &InterconnectsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98868	c.project = project
98869	c.resource = resource
98870	c.globalsetpolicyrequest = globalsetpolicyrequest
98871	return c
98872}
98873
98874// Fields allows partial responses to be retrieved. See
98875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98876// for more information.
98877func (c *InterconnectsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectsSetIamPolicyCall {
98878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98879	return c
98880}
98881
98882// Context sets the context to be used in this call's Do method. Any
98883// pending HTTP request will be aborted if the provided context is
98884// canceled.
98885func (c *InterconnectsSetIamPolicyCall) Context(ctx context.Context) *InterconnectsSetIamPolicyCall {
98886	c.ctx_ = ctx
98887	return c
98888}
98889
98890// Header returns an http.Header that can be modified by the caller to
98891// add HTTP headers to the request.
98892func (c *InterconnectsSetIamPolicyCall) Header() http.Header {
98893	if c.header_ == nil {
98894		c.header_ = make(http.Header)
98895	}
98896	return c.header_
98897}
98898
98899func (c *InterconnectsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
98900	reqHeaders := make(http.Header)
98901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
98902	for k, v := range c.header_ {
98903		reqHeaders[k] = v
98904	}
98905	reqHeaders.Set("User-Agent", c.s.userAgent())
98906	var body io.Reader = nil
98907	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
98908	if err != nil {
98909		return nil, err
98910	}
98911	reqHeaders.Set("Content-Type", "application/json")
98912	c.urlParams_.Set("alt", alt)
98913	c.urlParams_.Set("prettyPrint", "false")
98914	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setIamPolicy")
98915	urls += "?" + c.urlParams_.Encode()
98916	req, err := http.NewRequest("POST", urls, body)
98917	if err != nil {
98918		return nil, err
98919	}
98920	req.Header = reqHeaders
98921	googleapi.Expand(req.URL, map[string]string{
98922		"project":  c.project,
98923		"resource": c.resource,
98924	})
98925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98926}
98927
98928// Do executes the "compute.interconnects.setIamPolicy" call.
98929// Exactly one of *Policy or error will be non-nil. Any non-2xx status
98930// code is an error. Response headers are in either
98931// *Policy.ServerResponse.Header or (if a response was returned at all)
98932// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
98933// check whether the returned error was because http.StatusNotModified
98934// was returned.
98935func (c *InterconnectsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
98936	gensupport.SetOptions(c.urlParams_, opts...)
98937	res, err := c.doRequest("json")
98938	if res != nil && res.StatusCode == http.StatusNotModified {
98939		if res.Body != nil {
98940			res.Body.Close()
98941		}
98942		return nil, &googleapi.Error{
98943			Code:   res.StatusCode,
98944			Header: res.Header,
98945		}
98946	}
98947	if err != nil {
98948		return nil, err
98949	}
98950	defer googleapi.CloseBody(res)
98951	if err := googleapi.CheckResponse(res); err != nil {
98952		return nil, err
98953	}
98954	ret := &Policy{
98955		ServerResponse: googleapi.ServerResponse{
98956			Header:         res.Header,
98957			HTTPStatusCode: res.StatusCode,
98958		},
98959	}
98960	target := &ret
98961	if err := gensupport.DecodeResponse(target, res); err != nil {
98962		return nil, err
98963	}
98964	return ret, nil
98965	// {
98966	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
98967	//   "httpMethod": "POST",
98968	//   "id": "compute.interconnects.setIamPolicy",
98969	//   "parameterOrder": [
98970	//     "project",
98971	//     "resource"
98972	//   ],
98973	//   "parameters": {
98974	//     "project": {
98975	//       "description": "Project ID for this request.",
98976	//       "location": "path",
98977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98978	//       "required": true,
98979	//       "type": "string"
98980	//     },
98981	//     "resource": {
98982	//       "description": "Name or id of the resource for this request.",
98983	//       "location": "path",
98984	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98985	//       "required": true,
98986	//       "type": "string"
98987	//     }
98988	//   },
98989	//   "path": "{project}/global/interconnects/{resource}/setIamPolicy",
98990	//   "request": {
98991	//     "$ref": "GlobalSetPolicyRequest"
98992	//   },
98993	//   "response": {
98994	//     "$ref": "Policy"
98995	//   },
98996	//   "scopes": [
98997	//     "https://www.googleapis.com/auth/cloud-platform",
98998	//     "https://www.googleapis.com/auth/compute"
98999	//   ]
99000	// }
99001
99002}
99003
99004// method id "compute.interconnects.setLabels":
99005
99006type InterconnectsSetLabelsCall struct {
99007	s                      *Service
99008	project                string
99009	resource               string
99010	globalsetlabelsrequest *GlobalSetLabelsRequest
99011	urlParams_             gensupport.URLParams
99012	ctx_                   context.Context
99013	header_                http.Header
99014}
99015
99016// SetLabels: Sets the labels on an Interconnect. To learn more about
99017// labels, read the Labeling Resources documentation.
99018func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall {
99019	c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99020	c.project = project
99021	c.resource = resource
99022	c.globalsetlabelsrequest = globalsetlabelsrequest
99023	return c
99024}
99025
99026// Fields allows partial responses to be retrieved. See
99027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99028// for more information.
99029func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall {
99030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99031	return c
99032}
99033
99034// Context sets the context to be used in this call's Do method. Any
99035// pending HTTP request will be aborted if the provided context is
99036// canceled.
99037func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall {
99038	c.ctx_ = ctx
99039	return c
99040}
99041
99042// Header returns an http.Header that can be modified by the caller to
99043// add HTTP headers to the request.
99044func (c *InterconnectsSetLabelsCall) Header() http.Header {
99045	if c.header_ == nil {
99046		c.header_ = make(http.Header)
99047	}
99048	return c.header_
99049}
99050
99051func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
99052	reqHeaders := make(http.Header)
99053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
99054	for k, v := range c.header_ {
99055		reqHeaders[k] = v
99056	}
99057	reqHeaders.Set("User-Agent", c.s.userAgent())
99058	var body io.Reader = nil
99059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
99060	if err != nil {
99061		return nil, err
99062	}
99063	reqHeaders.Set("Content-Type", "application/json")
99064	c.urlParams_.Set("alt", alt)
99065	c.urlParams_.Set("prettyPrint", "false")
99066	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setLabels")
99067	urls += "?" + c.urlParams_.Encode()
99068	req, err := http.NewRequest("POST", urls, body)
99069	if err != nil {
99070		return nil, err
99071	}
99072	req.Header = reqHeaders
99073	googleapi.Expand(req.URL, map[string]string{
99074		"project":  c.project,
99075		"resource": c.resource,
99076	})
99077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99078}
99079
99080// Do executes the "compute.interconnects.setLabels" call.
99081// Exactly one of *Operation or error will be non-nil. Any non-2xx
99082// status code is an error. Response headers are in either
99083// *Operation.ServerResponse.Header or (if a response was returned at
99084// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99085// to check whether the returned error was because
99086// http.StatusNotModified was returned.
99087func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99088	gensupport.SetOptions(c.urlParams_, opts...)
99089	res, err := c.doRequest("json")
99090	if res != nil && res.StatusCode == http.StatusNotModified {
99091		if res.Body != nil {
99092			res.Body.Close()
99093		}
99094		return nil, &googleapi.Error{
99095			Code:   res.StatusCode,
99096			Header: res.Header,
99097		}
99098	}
99099	if err != nil {
99100		return nil, err
99101	}
99102	defer googleapi.CloseBody(res)
99103	if err := googleapi.CheckResponse(res); err != nil {
99104		return nil, err
99105	}
99106	ret := &Operation{
99107		ServerResponse: googleapi.ServerResponse{
99108			Header:         res.Header,
99109			HTTPStatusCode: res.StatusCode,
99110		},
99111	}
99112	target := &ret
99113	if err := gensupport.DecodeResponse(target, res); err != nil {
99114		return nil, err
99115	}
99116	return ret, nil
99117	// {
99118	//   "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.",
99119	//   "httpMethod": "POST",
99120	//   "id": "compute.interconnects.setLabels",
99121	//   "parameterOrder": [
99122	//     "project",
99123	//     "resource"
99124	//   ],
99125	//   "parameters": {
99126	//     "project": {
99127	//       "description": "Project ID for this request.",
99128	//       "location": "path",
99129	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99130	//       "required": true,
99131	//       "type": "string"
99132	//     },
99133	//     "resource": {
99134	//       "description": "Name or id of the resource for this request.",
99135	//       "location": "path",
99136	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99137	//       "required": true,
99138	//       "type": "string"
99139	//     }
99140	//   },
99141	//   "path": "{project}/global/interconnects/{resource}/setLabels",
99142	//   "request": {
99143	//     "$ref": "GlobalSetLabelsRequest"
99144	//   },
99145	//   "response": {
99146	//     "$ref": "Operation"
99147	//   },
99148	//   "scopes": [
99149	//     "https://www.googleapis.com/auth/cloud-platform",
99150	//     "https://www.googleapis.com/auth/compute"
99151	//   ]
99152	// }
99153
99154}
99155
99156// method id "compute.interconnects.testIamPermissions":
99157
99158type InterconnectsTestIamPermissionsCall struct {
99159	s                      *Service
99160	project                string
99161	resource               string
99162	testpermissionsrequest *TestPermissionsRequest
99163	urlParams_             gensupport.URLParams
99164	ctx_                   context.Context
99165	header_                http.Header
99166}
99167
99168// TestIamPermissions: Returns permissions that a caller has on the
99169// specified resource.
99170func (r *InterconnectsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectsTestIamPermissionsCall {
99171	c := &InterconnectsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99172	c.project = project
99173	c.resource = resource
99174	c.testpermissionsrequest = testpermissionsrequest
99175	return c
99176}
99177
99178// Fields allows partial responses to be retrieved. See
99179// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99180// for more information.
99181func (c *InterconnectsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectsTestIamPermissionsCall {
99182	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99183	return c
99184}
99185
99186// Context sets the context to be used in this call's Do method. Any
99187// pending HTTP request will be aborted if the provided context is
99188// canceled.
99189func (c *InterconnectsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectsTestIamPermissionsCall {
99190	c.ctx_ = ctx
99191	return c
99192}
99193
99194// Header returns an http.Header that can be modified by the caller to
99195// add HTTP headers to the request.
99196func (c *InterconnectsTestIamPermissionsCall) Header() http.Header {
99197	if c.header_ == nil {
99198		c.header_ = make(http.Header)
99199	}
99200	return c.header_
99201}
99202
99203func (c *InterconnectsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
99204	reqHeaders := make(http.Header)
99205	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
99206	for k, v := range c.header_ {
99207		reqHeaders[k] = v
99208	}
99209	reqHeaders.Set("User-Agent", c.s.userAgent())
99210	var body io.Reader = nil
99211	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
99212	if err != nil {
99213		return nil, err
99214	}
99215	reqHeaders.Set("Content-Type", "application/json")
99216	c.urlParams_.Set("alt", alt)
99217	c.urlParams_.Set("prettyPrint", "false")
99218	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/testIamPermissions")
99219	urls += "?" + c.urlParams_.Encode()
99220	req, err := http.NewRequest("POST", urls, body)
99221	if err != nil {
99222		return nil, err
99223	}
99224	req.Header = reqHeaders
99225	googleapi.Expand(req.URL, map[string]string{
99226		"project":  c.project,
99227		"resource": c.resource,
99228	})
99229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99230}
99231
99232// Do executes the "compute.interconnects.testIamPermissions" call.
99233// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
99234// non-2xx status code is an error. Response headers are in either
99235// *TestPermissionsResponse.ServerResponse.Header or (if a response was
99236// returned at all) in error.(*googleapi.Error).Header. Use
99237// googleapi.IsNotModified to check whether the returned error was
99238// because http.StatusNotModified was returned.
99239func (c *InterconnectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99240	gensupport.SetOptions(c.urlParams_, opts...)
99241	res, err := c.doRequest("json")
99242	if res != nil && res.StatusCode == http.StatusNotModified {
99243		if res.Body != nil {
99244			res.Body.Close()
99245		}
99246		return nil, &googleapi.Error{
99247			Code:   res.StatusCode,
99248			Header: res.Header,
99249		}
99250	}
99251	if err != nil {
99252		return nil, err
99253	}
99254	defer googleapi.CloseBody(res)
99255	if err := googleapi.CheckResponse(res); err != nil {
99256		return nil, err
99257	}
99258	ret := &TestPermissionsResponse{
99259		ServerResponse: googleapi.ServerResponse{
99260			Header:         res.Header,
99261			HTTPStatusCode: res.StatusCode,
99262		},
99263	}
99264	target := &ret
99265	if err := gensupport.DecodeResponse(target, res); err != nil {
99266		return nil, err
99267	}
99268	return ret, nil
99269	// {
99270	//   "description": "Returns permissions that a caller has on the specified resource.",
99271	//   "httpMethod": "POST",
99272	//   "id": "compute.interconnects.testIamPermissions",
99273	//   "parameterOrder": [
99274	//     "project",
99275	//     "resource"
99276	//   ],
99277	//   "parameters": {
99278	//     "project": {
99279	//       "description": "Project ID for this request.",
99280	//       "location": "path",
99281	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99282	//       "required": true,
99283	//       "type": "string"
99284	//     },
99285	//     "resource": {
99286	//       "description": "Name or id of the resource for this request.",
99287	//       "location": "path",
99288	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99289	//       "required": true,
99290	//       "type": "string"
99291	//     }
99292	//   },
99293	//   "path": "{project}/global/interconnects/{resource}/testIamPermissions",
99294	//   "request": {
99295	//     "$ref": "TestPermissionsRequest"
99296	//   },
99297	//   "response": {
99298	//     "$ref": "TestPermissionsResponse"
99299	//   },
99300	//   "scopes": [
99301	//     "https://www.googleapis.com/auth/cloud-platform",
99302	//     "https://www.googleapis.com/auth/compute",
99303	//     "https://www.googleapis.com/auth/compute.readonly"
99304	//   ]
99305	// }
99306
99307}
99308
99309// method id "compute.licenseCodes.get":
99310
99311type LicenseCodesGetCall struct {
99312	s            *Service
99313	project      string
99314	licenseCode  string
99315	urlParams_   gensupport.URLParams
99316	ifNoneMatch_ string
99317	ctx_         context.Context
99318	header_      http.Header
99319}
99320
99321// Get: Return a specified license code. License codes are mirrored
99322// across all projects that have permissions to read the License Code.
99323// Caution This resource is intended for use only by third-party
99324// partners who are creating Cloud Marketplace images.
99325func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
99326	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99327	c.project = project
99328	c.licenseCode = licenseCode
99329	return c
99330}
99331
99332// Fields allows partial responses to be retrieved. See
99333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99334// for more information.
99335func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
99336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99337	return c
99338}
99339
99340// IfNoneMatch sets the optional parameter which makes the operation
99341// fail if the object's ETag matches the given value. This is useful for
99342// getting updates only after the object has changed since the last
99343// request. Use googleapi.IsNotModified to check whether the response
99344// error from Do is the result of In-None-Match.
99345func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
99346	c.ifNoneMatch_ = entityTag
99347	return c
99348}
99349
99350// Context sets the context to be used in this call's Do method. Any
99351// pending HTTP request will be aborted if the provided context is
99352// canceled.
99353func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
99354	c.ctx_ = ctx
99355	return c
99356}
99357
99358// Header returns an http.Header that can be modified by the caller to
99359// add HTTP headers to the request.
99360func (c *LicenseCodesGetCall) Header() http.Header {
99361	if c.header_ == nil {
99362		c.header_ = make(http.Header)
99363	}
99364	return c.header_
99365}
99366
99367func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
99368	reqHeaders := make(http.Header)
99369	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
99370	for k, v := range c.header_ {
99371		reqHeaders[k] = v
99372	}
99373	reqHeaders.Set("User-Agent", c.s.userAgent())
99374	if c.ifNoneMatch_ != "" {
99375		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99376	}
99377	var body io.Reader = nil
99378	c.urlParams_.Set("alt", alt)
99379	c.urlParams_.Set("prettyPrint", "false")
99380	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
99381	urls += "?" + c.urlParams_.Encode()
99382	req, err := http.NewRequest("GET", urls, body)
99383	if err != nil {
99384		return nil, err
99385	}
99386	req.Header = reqHeaders
99387	googleapi.Expand(req.URL, map[string]string{
99388		"project":     c.project,
99389		"licenseCode": c.licenseCode,
99390	})
99391	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99392}
99393
99394// Do executes the "compute.licenseCodes.get" call.
99395// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
99396// status code is an error. Response headers are in either
99397// *LicenseCode.ServerResponse.Header or (if a response was returned at
99398// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99399// to check whether the returned error was because
99400// http.StatusNotModified was returned.
99401func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
99402	gensupport.SetOptions(c.urlParams_, opts...)
99403	res, err := c.doRequest("json")
99404	if res != nil && res.StatusCode == http.StatusNotModified {
99405		if res.Body != nil {
99406			res.Body.Close()
99407		}
99408		return nil, &googleapi.Error{
99409			Code:   res.StatusCode,
99410			Header: res.Header,
99411		}
99412	}
99413	if err != nil {
99414		return nil, err
99415	}
99416	defer googleapi.CloseBody(res)
99417	if err := googleapi.CheckResponse(res); err != nil {
99418		return nil, err
99419	}
99420	ret := &LicenseCode{
99421		ServerResponse: googleapi.ServerResponse{
99422			Header:         res.Header,
99423			HTTPStatusCode: res.StatusCode,
99424		},
99425	}
99426	target := &ret
99427	if err := gensupport.DecodeResponse(target, res); err != nil {
99428		return nil, err
99429	}
99430	return ret, nil
99431	// {
99432	//   "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.",
99433	//   "httpMethod": "GET",
99434	//   "id": "compute.licenseCodes.get",
99435	//   "parameterOrder": [
99436	//     "project",
99437	//     "licenseCode"
99438	//   ],
99439	//   "parameters": {
99440	//     "licenseCode": {
99441	//       "description": "Number corresponding to the License code resource to return.",
99442	//       "location": "path",
99443	//       "pattern": "[0-9]{0,61}?",
99444	//       "required": true,
99445	//       "type": "string"
99446	//     },
99447	//     "project": {
99448	//       "description": "Project ID for this request.",
99449	//       "location": "path",
99450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99451	//       "required": true,
99452	//       "type": "string"
99453	//     }
99454	//   },
99455	//   "path": "{project}/global/licenseCodes/{licenseCode}",
99456	//   "response": {
99457	//     "$ref": "LicenseCode"
99458	//   },
99459	//   "scopes": [
99460	//     "https://www.googleapis.com/auth/cloud-platform",
99461	//     "https://www.googleapis.com/auth/compute",
99462	//     "https://www.googleapis.com/auth/compute.readonly"
99463	//   ]
99464	// }
99465
99466}
99467
99468// method id "compute.licenseCodes.getIamPolicy":
99469
99470type LicenseCodesGetIamPolicyCall struct {
99471	s            *Service
99472	project      string
99473	resource     string
99474	urlParams_   gensupport.URLParams
99475	ifNoneMatch_ string
99476	ctx_         context.Context
99477	header_      http.Header
99478}
99479
99480// GetIamPolicy: Gets the access control policy for a resource. May be
99481// empty if no such policy or resource exists.  Caution This resource is
99482// intended for use only by third-party partners who are creating Cloud
99483// Marketplace images.
99484func (r *LicenseCodesService) GetIamPolicy(project string, resource string) *LicenseCodesGetIamPolicyCall {
99485	c := &LicenseCodesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99486	c.project = project
99487	c.resource = resource
99488	return c
99489}
99490
99491// OptionsRequestedPolicyVersion sets the optional parameter
99492// "optionsRequestedPolicyVersion": Requested IAM Policy version.
99493func (c *LicenseCodesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicenseCodesGetIamPolicyCall {
99494	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
99495	return c
99496}
99497
99498// Fields allows partial responses to be retrieved. See
99499// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99500// for more information.
99501func (c *LicenseCodesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesGetIamPolicyCall {
99502	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99503	return c
99504}
99505
99506// IfNoneMatch sets the optional parameter which makes the operation
99507// fail if the object's ETag matches the given value. This is useful for
99508// getting updates only after the object has changed since the last
99509// request. Use googleapi.IsNotModified to check whether the response
99510// error from Do is the result of In-None-Match.
99511func (c *LicenseCodesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicenseCodesGetIamPolicyCall {
99512	c.ifNoneMatch_ = entityTag
99513	return c
99514}
99515
99516// Context sets the context to be used in this call's Do method. Any
99517// pending HTTP request will be aborted if the provided context is
99518// canceled.
99519func (c *LicenseCodesGetIamPolicyCall) Context(ctx context.Context) *LicenseCodesGetIamPolicyCall {
99520	c.ctx_ = ctx
99521	return c
99522}
99523
99524// Header returns an http.Header that can be modified by the caller to
99525// add HTTP headers to the request.
99526func (c *LicenseCodesGetIamPolicyCall) Header() http.Header {
99527	if c.header_ == nil {
99528		c.header_ = make(http.Header)
99529	}
99530	return c.header_
99531}
99532
99533func (c *LicenseCodesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99534	reqHeaders := make(http.Header)
99535	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
99536	for k, v := range c.header_ {
99537		reqHeaders[k] = v
99538	}
99539	reqHeaders.Set("User-Agent", c.s.userAgent())
99540	if c.ifNoneMatch_ != "" {
99541		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99542	}
99543	var body io.Reader = nil
99544	c.urlParams_.Set("alt", alt)
99545	c.urlParams_.Set("prettyPrint", "false")
99546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/getIamPolicy")
99547	urls += "?" + c.urlParams_.Encode()
99548	req, err := http.NewRequest("GET", urls, body)
99549	if err != nil {
99550		return nil, err
99551	}
99552	req.Header = reqHeaders
99553	googleapi.Expand(req.URL, map[string]string{
99554		"project":  c.project,
99555		"resource": c.resource,
99556	})
99557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99558}
99559
99560// Do executes the "compute.licenseCodes.getIamPolicy" call.
99561// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99562// code is an error. Response headers are in either
99563// *Policy.ServerResponse.Header or (if a response was returned at all)
99564// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99565// check whether the returned error was because http.StatusNotModified
99566// was returned.
99567func (c *LicenseCodesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99568	gensupport.SetOptions(c.urlParams_, opts...)
99569	res, err := c.doRequest("json")
99570	if res != nil && res.StatusCode == http.StatusNotModified {
99571		if res.Body != nil {
99572			res.Body.Close()
99573		}
99574		return nil, &googleapi.Error{
99575			Code:   res.StatusCode,
99576			Header: res.Header,
99577		}
99578	}
99579	if err != nil {
99580		return nil, err
99581	}
99582	defer googleapi.CloseBody(res)
99583	if err := googleapi.CheckResponse(res); err != nil {
99584		return nil, err
99585	}
99586	ret := &Policy{
99587		ServerResponse: googleapi.ServerResponse{
99588			Header:         res.Header,
99589			HTTPStatusCode: res.StatusCode,
99590		},
99591	}
99592	target := &ret
99593	if err := gensupport.DecodeResponse(target, res); err != nil {
99594		return nil, err
99595	}
99596	return ret, nil
99597	// {
99598	//   "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.",
99599	//   "httpMethod": "GET",
99600	//   "id": "compute.licenseCodes.getIamPolicy",
99601	//   "parameterOrder": [
99602	//     "project",
99603	//     "resource"
99604	//   ],
99605	//   "parameters": {
99606	//     "optionsRequestedPolicyVersion": {
99607	//       "description": "Requested IAM Policy version.",
99608	//       "format": "int32",
99609	//       "location": "query",
99610	//       "type": "integer"
99611	//     },
99612	//     "project": {
99613	//       "description": "Project ID for this request.",
99614	//       "location": "path",
99615	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99616	//       "required": true,
99617	//       "type": "string"
99618	//     },
99619	//     "resource": {
99620	//       "description": "Name or id of the resource for this request.",
99621	//       "location": "path",
99622	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99623	//       "required": true,
99624	//       "type": "string"
99625	//     }
99626	//   },
99627	//   "path": "{project}/global/licenseCodes/{resource}/getIamPolicy",
99628	//   "response": {
99629	//     "$ref": "Policy"
99630	//   },
99631	//   "scopes": [
99632	//     "https://www.googleapis.com/auth/cloud-platform",
99633	//     "https://www.googleapis.com/auth/compute",
99634	//     "https://www.googleapis.com/auth/compute.readonly"
99635	//   ]
99636	// }
99637
99638}
99639
99640// method id "compute.licenseCodes.setIamPolicy":
99641
99642type LicenseCodesSetIamPolicyCall struct {
99643	s                      *Service
99644	project                string
99645	resource               string
99646	globalsetpolicyrequest *GlobalSetPolicyRequest
99647	urlParams_             gensupport.URLParams
99648	ctx_                   context.Context
99649	header_                http.Header
99650}
99651
99652// SetIamPolicy: Sets the access control policy on the specified
99653// resource. Replaces any existing policy.  Caution This resource is
99654// intended for use only by third-party partners who are creating Cloud
99655// Marketplace images.
99656func (r *LicenseCodesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicenseCodesSetIamPolicyCall {
99657	c := &LicenseCodesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99658	c.project = project
99659	c.resource = resource
99660	c.globalsetpolicyrequest = globalsetpolicyrequest
99661	return c
99662}
99663
99664// Fields allows partial responses to be retrieved. See
99665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99666// for more information.
99667func (c *LicenseCodesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesSetIamPolicyCall {
99668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99669	return c
99670}
99671
99672// Context sets the context to be used in this call's Do method. Any
99673// pending HTTP request will be aborted if the provided context is
99674// canceled.
99675func (c *LicenseCodesSetIamPolicyCall) Context(ctx context.Context) *LicenseCodesSetIamPolicyCall {
99676	c.ctx_ = ctx
99677	return c
99678}
99679
99680// Header returns an http.Header that can be modified by the caller to
99681// add HTTP headers to the request.
99682func (c *LicenseCodesSetIamPolicyCall) Header() http.Header {
99683	if c.header_ == nil {
99684		c.header_ = make(http.Header)
99685	}
99686	return c.header_
99687}
99688
99689func (c *LicenseCodesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99690	reqHeaders := make(http.Header)
99691	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
99692	for k, v := range c.header_ {
99693		reqHeaders[k] = v
99694	}
99695	reqHeaders.Set("User-Agent", c.s.userAgent())
99696	var body io.Reader = nil
99697	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
99698	if err != nil {
99699		return nil, err
99700	}
99701	reqHeaders.Set("Content-Type", "application/json")
99702	c.urlParams_.Set("alt", alt)
99703	c.urlParams_.Set("prettyPrint", "false")
99704	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/setIamPolicy")
99705	urls += "?" + c.urlParams_.Encode()
99706	req, err := http.NewRequest("POST", urls, body)
99707	if err != nil {
99708		return nil, err
99709	}
99710	req.Header = reqHeaders
99711	googleapi.Expand(req.URL, map[string]string{
99712		"project":  c.project,
99713		"resource": c.resource,
99714	})
99715	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99716}
99717
99718// Do executes the "compute.licenseCodes.setIamPolicy" call.
99719// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99720// code is an error. Response headers are in either
99721// *Policy.ServerResponse.Header or (if a response was returned at all)
99722// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99723// check whether the returned error was because http.StatusNotModified
99724// was returned.
99725func (c *LicenseCodesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99726	gensupport.SetOptions(c.urlParams_, opts...)
99727	res, err := c.doRequest("json")
99728	if res != nil && res.StatusCode == http.StatusNotModified {
99729		if res.Body != nil {
99730			res.Body.Close()
99731		}
99732		return nil, &googleapi.Error{
99733			Code:   res.StatusCode,
99734			Header: res.Header,
99735		}
99736	}
99737	if err != nil {
99738		return nil, err
99739	}
99740	defer googleapi.CloseBody(res)
99741	if err := googleapi.CheckResponse(res); err != nil {
99742		return nil, err
99743	}
99744	ret := &Policy{
99745		ServerResponse: googleapi.ServerResponse{
99746			Header:         res.Header,
99747			HTTPStatusCode: res.StatusCode,
99748		},
99749	}
99750	target := &ret
99751	if err := gensupport.DecodeResponse(target, res); err != nil {
99752		return nil, err
99753	}
99754	return ret, nil
99755	// {
99756	//   "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.",
99757	//   "httpMethod": "POST",
99758	//   "id": "compute.licenseCodes.setIamPolicy",
99759	//   "parameterOrder": [
99760	//     "project",
99761	//     "resource"
99762	//   ],
99763	//   "parameters": {
99764	//     "project": {
99765	//       "description": "Project ID for this request.",
99766	//       "location": "path",
99767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99768	//       "required": true,
99769	//       "type": "string"
99770	//     },
99771	//     "resource": {
99772	//       "description": "Name or id of the resource for this request.",
99773	//       "location": "path",
99774	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99775	//       "required": true,
99776	//       "type": "string"
99777	//     }
99778	//   },
99779	//   "path": "{project}/global/licenseCodes/{resource}/setIamPolicy",
99780	//   "request": {
99781	//     "$ref": "GlobalSetPolicyRequest"
99782	//   },
99783	//   "response": {
99784	//     "$ref": "Policy"
99785	//   },
99786	//   "scopes": [
99787	//     "https://www.googleapis.com/auth/cloud-platform",
99788	//     "https://www.googleapis.com/auth/compute"
99789	//   ]
99790	// }
99791
99792}
99793
99794// method id "compute.licenseCodes.testIamPermissions":
99795
99796type LicenseCodesTestIamPermissionsCall struct {
99797	s                      *Service
99798	project                string
99799	resource               string
99800	testpermissionsrequest *TestPermissionsRequest
99801	urlParams_             gensupport.URLParams
99802	ctx_                   context.Context
99803	header_                http.Header
99804}
99805
99806// TestIamPermissions: Returns permissions that a caller has on the
99807// specified resource.  Caution This resource is intended for use only
99808// by third-party partners who are creating Cloud Marketplace images.
99809func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
99810	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99811	c.project = project
99812	c.resource = resource
99813	c.testpermissionsrequest = testpermissionsrequest
99814	return c
99815}
99816
99817// Fields allows partial responses to be retrieved. See
99818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99819// for more information.
99820func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
99821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99822	return c
99823}
99824
99825// Context sets the context to be used in this call's Do method. Any
99826// pending HTTP request will be aborted if the provided context is
99827// canceled.
99828func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
99829	c.ctx_ = ctx
99830	return c
99831}
99832
99833// Header returns an http.Header that can be modified by the caller to
99834// add HTTP headers to the request.
99835func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
99836	if c.header_ == nil {
99837		c.header_ = make(http.Header)
99838	}
99839	return c.header_
99840}
99841
99842func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
99843	reqHeaders := make(http.Header)
99844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
99845	for k, v := range c.header_ {
99846		reqHeaders[k] = v
99847	}
99848	reqHeaders.Set("User-Agent", c.s.userAgent())
99849	var body io.Reader = nil
99850	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
99851	if err != nil {
99852		return nil, err
99853	}
99854	reqHeaders.Set("Content-Type", "application/json")
99855	c.urlParams_.Set("alt", alt)
99856	c.urlParams_.Set("prettyPrint", "false")
99857	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/testIamPermissions")
99858	urls += "?" + c.urlParams_.Encode()
99859	req, err := http.NewRequest("POST", urls, body)
99860	if err != nil {
99861		return nil, err
99862	}
99863	req.Header = reqHeaders
99864	googleapi.Expand(req.URL, map[string]string{
99865		"project":  c.project,
99866		"resource": c.resource,
99867	})
99868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99869}
99870
99871// Do executes the "compute.licenseCodes.testIamPermissions" call.
99872// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
99873// non-2xx status code is an error. Response headers are in either
99874// *TestPermissionsResponse.ServerResponse.Header or (if a response was
99875// returned at all) in error.(*googleapi.Error).Header. Use
99876// googleapi.IsNotModified to check whether the returned error was
99877// because http.StatusNotModified was returned.
99878func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99879	gensupport.SetOptions(c.urlParams_, opts...)
99880	res, err := c.doRequest("json")
99881	if res != nil && res.StatusCode == http.StatusNotModified {
99882		if res.Body != nil {
99883			res.Body.Close()
99884		}
99885		return nil, &googleapi.Error{
99886			Code:   res.StatusCode,
99887			Header: res.Header,
99888		}
99889	}
99890	if err != nil {
99891		return nil, err
99892	}
99893	defer googleapi.CloseBody(res)
99894	if err := googleapi.CheckResponse(res); err != nil {
99895		return nil, err
99896	}
99897	ret := &TestPermissionsResponse{
99898		ServerResponse: googleapi.ServerResponse{
99899			Header:         res.Header,
99900			HTTPStatusCode: res.StatusCode,
99901		},
99902	}
99903	target := &ret
99904	if err := gensupport.DecodeResponse(target, res); err != nil {
99905		return nil, err
99906	}
99907	return ret, nil
99908	// {
99909	//   "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.",
99910	//   "httpMethod": "POST",
99911	//   "id": "compute.licenseCodes.testIamPermissions",
99912	//   "parameterOrder": [
99913	//     "project",
99914	//     "resource"
99915	//   ],
99916	//   "parameters": {
99917	//     "project": {
99918	//       "description": "Project ID for this request.",
99919	//       "location": "path",
99920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99921	//       "required": true,
99922	//       "type": "string"
99923	//     },
99924	//     "resource": {
99925	//       "description": "Name or id of the resource for this request.",
99926	//       "location": "path",
99927	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99928	//       "required": true,
99929	//       "type": "string"
99930	//     }
99931	//   },
99932	//   "path": "{project}/global/licenseCodes/{resource}/testIamPermissions",
99933	//   "request": {
99934	//     "$ref": "TestPermissionsRequest"
99935	//   },
99936	//   "response": {
99937	//     "$ref": "TestPermissionsResponse"
99938	//   },
99939	//   "scopes": [
99940	//     "https://www.googleapis.com/auth/cloud-platform",
99941	//     "https://www.googleapis.com/auth/compute",
99942	//     "https://www.googleapis.com/auth/compute.readonly"
99943	//   ]
99944	// }
99945
99946}
99947
99948// method id "compute.licenses.delete":
99949
99950type LicensesDeleteCall struct {
99951	s          *Service
99952	project    string
99953	license    string
99954	urlParams_ gensupport.URLParams
99955	ctx_       context.Context
99956	header_    http.Header
99957}
99958
99959// Delete: Deletes the specified license.  Caution This resource is
99960// intended for use only by third-party partners who are creating Cloud
99961// Marketplace images.
99962func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
99963	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99964	c.project = project
99965	c.license = license
99966	return c
99967}
99968
99969// RequestId sets the optional parameter "requestId": An optional
99970// request ID to identify requests. Specify a unique request ID so that
99971// if you must retry your request, the server will know to ignore the
99972// request if it has already been completed.
99973//
99974// For example, consider a situation where you make an initial request
99975// and the request times out. If you make the request again with the
99976// same request ID, the server can check if original operation with the
99977// same request ID was received, and if so, will ignore the second
99978// request. This prevents clients from accidentally creating duplicate
99979// commitments.
99980//
99981// The request ID must be a valid UUID with the exception that zero UUID
99982// is not supported (00000000-0000-0000-0000-000000000000).
99983func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
99984	c.urlParams_.Set("requestId", requestId)
99985	return c
99986}
99987
99988// Fields allows partial responses to be retrieved. See
99989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99990// for more information.
99991func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
99992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99993	return c
99994}
99995
99996// Context sets the context to be used in this call's Do method. Any
99997// pending HTTP request will be aborted if the provided context is
99998// canceled.
99999func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
100000	c.ctx_ = ctx
100001	return c
100002}
100003
100004// Header returns an http.Header that can be modified by the caller to
100005// add HTTP headers to the request.
100006func (c *LicensesDeleteCall) Header() http.Header {
100007	if c.header_ == nil {
100008		c.header_ = make(http.Header)
100009	}
100010	return c.header_
100011}
100012
100013func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
100014	reqHeaders := make(http.Header)
100015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
100016	for k, v := range c.header_ {
100017		reqHeaders[k] = v
100018	}
100019	reqHeaders.Set("User-Agent", c.s.userAgent())
100020	var body io.Reader = nil
100021	c.urlParams_.Set("alt", alt)
100022	c.urlParams_.Set("prettyPrint", "false")
100023	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
100024	urls += "?" + c.urlParams_.Encode()
100025	req, err := http.NewRequest("DELETE", urls, body)
100026	if err != nil {
100027		return nil, err
100028	}
100029	req.Header = reqHeaders
100030	googleapi.Expand(req.URL, map[string]string{
100031		"project": c.project,
100032		"license": c.license,
100033	})
100034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100035}
100036
100037// Do executes the "compute.licenses.delete" call.
100038// Exactly one of *Operation or error will be non-nil. Any non-2xx
100039// status code is an error. Response headers are in either
100040// *Operation.ServerResponse.Header or (if a response was returned at
100041// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100042// to check whether the returned error was because
100043// http.StatusNotModified was returned.
100044func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100045	gensupport.SetOptions(c.urlParams_, opts...)
100046	res, err := c.doRequest("json")
100047	if res != nil && res.StatusCode == http.StatusNotModified {
100048		if res.Body != nil {
100049			res.Body.Close()
100050		}
100051		return nil, &googleapi.Error{
100052			Code:   res.StatusCode,
100053			Header: res.Header,
100054		}
100055	}
100056	if err != nil {
100057		return nil, err
100058	}
100059	defer googleapi.CloseBody(res)
100060	if err := googleapi.CheckResponse(res); err != nil {
100061		return nil, err
100062	}
100063	ret := &Operation{
100064		ServerResponse: googleapi.ServerResponse{
100065			Header:         res.Header,
100066			HTTPStatusCode: res.StatusCode,
100067		},
100068	}
100069	target := &ret
100070	if err := gensupport.DecodeResponse(target, res); err != nil {
100071		return nil, err
100072	}
100073	return ret, nil
100074	// {
100075	//   "description": "Deletes the specified license.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
100076	//   "httpMethod": "DELETE",
100077	//   "id": "compute.licenses.delete",
100078	//   "parameterOrder": [
100079	//     "project",
100080	//     "license"
100081	//   ],
100082	//   "parameters": {
100083	//     "license": {
100084	//       "description": "Name of the license resource to delete.",
100085	//       "location": "path",
100086	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100087	//       "required": true,
100088	//       "type": "string"
100089	//     },
100090	//     "project": {
100091	//       "description": "Project ID for this request.",
100092	//       "location": "path",
100093	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100094	//       "required": true,
100095	//       "type": "string"
100096	//     },
100097	//     "requestId": {
100098	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100099	//       "location": "query",
100100	//       "type": "string"
100101	//     }
100102	//   },
100103	//   "path": "{project}/global/licenses/{license}",
100104	//   "response": {
100105	//     "$ref": "Operation"
100106	//   },
100107	//   "scopes": [
100108	//     "https://www.googleapis.com/auth/cloud-platform",
100109	//     "https://www.googleapis.com/auth/compute"
100110	//   ]
100111	// }
100112
100113}
100114
100115// method id "compute.licenses.get":
100116
100117type LicensesGetCall struct {
100118	s            *Service
100119	project      string
100120	license      string
100121	urlParams_   gensupport.URLParams
100122	ifNoneMatch_ string
100123	ctx_         context.Context
100124	header_      http.Header
100125}
100126
100127// Get: Returns the specified License resource.  Caution This resource
100128// is intended for use only by third-party partners who are creating
100129// Cloud Marketplace images.
100130// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
100131func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
100132	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100133	c.project = project
100134	c.license = license
100135	return c
100136}
100137
100138// Fields allows partial responses to be retrieved. See
100139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100140// for more information.
100141func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
100142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100143	return c
100144}
100145
100146// IfNoneMatch sets the optional parameter which makes the operation
100147// fail if the object's ETag matches the given value. This is useful for
100148// getting updates only after the object has changed since the last
100149// request. Use googleapi.IsNotModified to check whether the response
100150// error from Do is the result of In-None-Match.
100151func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
100152	c.ifNoneMatch_ = entityTag
100153	return c
100154}
100155
100156// Context sets the context to be used in this call's Do method. Any
100157// pending HTTP request will be aborted if the provided context is
100158// canceled.
100159func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
100160	c.ctx_ = ctx
100161	return c
100162}
100163
100164// Header returns an http.Header that can be modified by the caller to
100165// add HTTP headers to the request.
100166func (c *LicensesGetCall) Header() http.Header {
100167	if c.header_ == nil {
100168		c.header_ = make(http.Header)
100169	}
100170	return c.header_
100171}
100172
100173func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
100174	reqHeaders := make(http.Header)
100175	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
100176	for k, v := range c.header_ {
100177		reqHeaders[k] = v
100178	}
100179	reqHeaders.Set("User-Agent", c.s.userAgent())
100180	if c.ifNoneMatch_ != "" {
100181		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100182	}
100183	var body io.Reader = nil
100184	c.urlParams_.Set("alt", alt)
100185	c.urlParams_.Set("prettyPrint", "false")
100186	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
100187	urls += "?" + c.urlParams_.Encode()
100188	req, err := http.NewRequest("GET", urls, body)
100189	if err != nil {
100190		return nil, err
100191	}
100192	req.Header = reqHeaders
100193	googleapi.Expand(req.URL, map[string]string{
100194		"project": c.project,
100195		"license": c.license,
100196	})
100197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100198}
100199
100200// Do executes the "compute.licenses.get" call.
100201// Exactly one of *License or error will be non-nil. Any non-2xx status
100202// code is an error. Response headers are in either
100203// *License.ServerResponse.Header or (if a response was returned at all)
100204// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
100205// check whether the returned error was because http.StatusNotModified
100206// was returned.
100207func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
100208	gensupport.SetOptions(c.urlParams_, opts...)
100209	res, err := c.doRequest("json")
100210	if res != nil && res.StatusCode == http.StatusNotModified {
100211		if res.Body != nil {
100212			res.Body.Close()
100213		}
100214		return nil, &googleapi.Error{
100215			Code:   res.StatusCode,
100216			Header: res.Header,
100217		}
100218	}
100219	if err != nil {
100220		return nil, err
100221	}
100222	defer googleapi.CloseBody(res)
100223	if err := googleapi.CheckResponse(res); err != nil {
100224		return nil, err
100225	}
100226	ret := &License{
100227		ServerResponse: googleapi.ServerResponse{
100228			Header:         res.Header,
100229			HTTPStatusCode: res.StatusCode,
100230		},
100231	}
100232	target := &ret
100233	if err := gensupport.DecodeResponse(target, res); err != nil {
100234		return nil, err
100235	}
100236	return ret, nil
100237	// {
100238	//   "description": "Returns the specified License resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
100239	//   "httpMethod": "GET",
100240	//   "id": "compute.licenses.get",
100241	//   "parameterOrder": [
100242	//     "project",
100243	//     "license"
100244	//   ],
100245	//   "parameters": {
100246	//     "license": {
100247	//       "description": "Name of the License resource to return.",
100248	//       "location": "path",
100249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100250	//       "required": true,
100251	//       "type": "string"
100252	//     },
100253	//     "project": {
100254	//       "description": "Project ID for this request.",
100255	//       "location": "path",
100256	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100257	//       "required": true,
100258	//       "type": "string"
100259	//     }
100260	//   },
100261	//   "path": "{project}/global/licenses/{license}",
100262	//   "response": {
100263	//     "$ref": "License"
100264	//   },
100265	//   "scopes": [
100266	//     "https://www.googleapis.com/auth/cloud-platform",
100267	//     "https://www.googleapis.com/auth/compute",
100268	//     "https://www.googleapis.com/auth/compute.readonly"
100269	//   ]
100270	// }
100271
100272}
100273
100274// method id "compute.licenses.getIamPolicy":
100275
100276type LicensesGetIamPolicyCall struct {
100277	s            *Service
100278	project      string
100279	resource     string
100280	urlParams_   gensupport.URLParams
100281	ifNoneMatch_ string
100282	ctx_         context.Context
100283	header_      http.Header
100284}
100285
100286// GetIamPolicy: Gets the access control policy for a resource. May be
100287// empty if no such policy or resource exists.  Caution This resource is
100288// intended for use only by third-party partners who are creating Cloud
100289// Marketplace images.
100290func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
100291	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100292	c.project = project
100293	c.resource = resource
100294	return c
100295}
100296
100297// OptionsRequestedPolicyVersion sets the optional parameter
100298// "optionsRequestedPolicyVersion": Requested IAM Policy version.
100299func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
100300	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
100301	return c
100302}
100303
100304// Fields allows partial responses to be retrieved. See
100305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100306// for more information.
100307func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
100308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100309	return c
100310}
100311
100312// IfNoneMatch sets the optional parameter which makes the operation
100313// fail if the object's ETag matches the given value. This is useful for
100314// getting updates only after the object has changed since the last
100315// request. Use googleapi.IsNotModified to check whether the response
100316// error from Do is the result of In-None-Match.
100317func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
100318	c.ifNoneMatch_ = entityTag
100319	return c
100320}
100321
100322// Context sets the context to be used in this call's Do method. Any
100323// pending HTTP request will be aborted if the provided context is
100324// canceled.
100325func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
100326	c.ctx_ = ctx
100327	return c
100328}
100329
100330// Header returns an http.Header that can be modified by the caller to
100331// add HTTP headers to the request.
100332func (c *LicensesGetIamPolicyCall) Header() http.Header {
100333	if c.header_ == nil {
100334		c.header_ = make(http.Header)
100335	}
100336	return c.header_
100337}
100338
100339func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
100340	reqHeaders := make(http.Header)
100341	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
100342	for k, v := range c.header_ {
100343		reqHeaders[k] = v
100344	}
100345	reqHeaders.Set("User-Agent", c.s.userAgent())
100346	if c.ifNoneMatch_ != "" {
100347		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100348	}
100349	var body io.Reader = nil
100350	c.urlParams_.Set("alt", alt)
100351	c.urlParams_.Set("prettyPrint", "false")
100352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/getIamPolicy")
100353	urls += "?" + c.urlParams_.Encode()
100354	req, err := http.NewRequest("GET", urls, body)
100355	if err != nil {
100356		return nil, err
100357	}
100358	req.Header = reqHeaders
100359	googleapi.Expand(req.URL, map[string]string{
100360		"project":  c.project,
100361		"resource": c.resource,
100362	})
100363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100364}
100365
100366// Do executes the "compute.licenses.getIamPolicy" call.
100367// Exactly one of *Policy or error will be non-nil. Any non-2xx status
100368// code is an error. Response headers are in either
100369// *Policy.ServerResponse.Header or (if a response was returned at all)
100370// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
100371// check whether the returned error was because http.StatusNotModified
100372// was returned.
100373func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
100374	gensupport.SetOptions(c.urlParams_, opts...)
100375	res, err := c.doRequest("json")
100376	if res != nil && res.StatusCode == http.StatusNotModified {
100377		if res.Body != nil {
100378			res.Body.Close()
100379		}
100380		return nil, &googleapi.Error{
100381			Code:   res.StatusCode,
100382			Header: res.Header,
100383		}
100384	}
100385	if err != nil {
100386		return nil, err
100387	}
100388	defer googleapi.CloseBody(res)
100389	if err := googleapi.CheckResponse(res); err != nil {
100390		return nil, err
100391	}
100392	ret := &Policy{
100393		ServerResponse: googleapi.ServerResponse{
100394			Header:         res.Header,
100395			HTTPStatusCode: res.StatusCode,
100396		},
100397	}
100398	target := &ret
100399	if err := gensupport.DecodeResponse(target, res); err != nil {
100400		return nil, err
100401	}
100402	return ret, nil
100403	// {
100404	//   "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.",
100405	//   "httpMethod": "GET",
100406	//   "id": "compute.licenses.getIamPolicy",
100407	//   "parameterOrder": [
100408	//     "project",
100409	//     "resource"
100410	//   ],
100411	//   "parameters": {
100412	//     "optionsRequestedPolicyVersion": {
100413	//       "description": "Requested IAM Policy version.",
100414	//       "format": "int32",
100415	//       "location": "query",
100416	//       "type": "integer"
100417	//     },
100418	//     "project": {
100419	//       "description": "Project ID for this request.",
100420	//       "location": "path",
100421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100422	//       "required": true,
100423	//       "type": "string"
100424	//     },
100425	//     "resource": {
100426	//       "description": "Name or id of the resource for this request.",
100427	//       "location": "path",
100428	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100429	//       "required": true,
100430	//       "type": "string"
100431	//     }
100432	//   },
100433	//   "path": "{project}/global/licenses/{resource}/getIamPolicy",
100434	//   "response": {
100435	//     "$ref": "Policy"
100436	//   },
100437	//   "scopes": [
100438	//     "https://www.googleapis.com/auth/cloud-platform",
100439	//     "https://www.googleapis.com/auth/compute",
100440	//     "https://www.googleapis.com/auth/compute.readonly"
100441	//   ]
100442	// }
100443
100444}
100445
100446// method id "compute.licenses.insert":
100447
100448type LicensesInsertCall struct {
100449	s          *Service
100450	project    string
100451	license    *License
100452	urlParams_ gensupport.URLParams
100453	ctx_       context.Context
100454	header_    http.Header
100455}
100456
100457// Insert: Create a License resource in the specified project.  Caution
100458// This resource is intended for use only by third-party partners who
100459// are creating Cloud Marketplace images.
100460func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
100461	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100462	c.project = project
100463	c.license = license
100464	return c
100465}
100466
100467// RequestId sets the optional parameter "requestId": An optional
100468// request ID to identify requests. Specify a unique request ID so that
100469// if you must retry your request, the server will know to ignore the
100470// request if it has already been completed.
100471//
100472// For example, consider a situation where you make an initial request
100473// and the request times out. If you make the request again with the
100474// same request ID, the server can check if original operation with the
100475// same request ID was received, and if so, will ignore the second
100476// request. This prevents clients from accidentally creating duplicate
100477// commitments.
100478//
100479// The request ID must be a valid UUID with the exception that zero UUID
100480// is not supported (00000000-0000-0000-0000-000000000000).
100481func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
100482	c.urlParams_.Set("requestId", requestId)
100483	return c
100484}
100485
100486// Fields allows partial responses to be retrieved. See
100487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100488// for more information.
100489func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
100490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100491	return c
100492}
100493
100494// Context sets the context to be used in this call's Do method. Any
100495// pending HTTP request will be aborted if the provided context is
100496// canceled.
100497func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
100498	c.ctx_ = ctx
100499	return c
100500}
100501
100502// Header returns an http.Header that can be modified by the caller to
100503// add HTTP headers to the request.
100504func (c *LicensesInsertCall) Header() http.Header {
100505	if c.header_ == nil {
100506		c.header_ = make(http.Header)
100507	}
100508	return c.header_
100509}
100510
100511func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
100512	reqHeaders := make(http.Header)
100513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
100514	for k, v := range c.header_ {
100515		reqHeaders[k] = v
100516	}
100517	reqHeaders.Set("User-Agent", c.s.userAgent())
100518	var body io.Reader = nil
100519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
100520	if err != nil {
100521		return nil, err
100522	}
100523	reqHeaders.Set("Content-Type", "application/json")
100524	c.urlParams_.Set("alt", alt)
100525	c.urlParams_.Set("prettyPrint", "false")
100526	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
100527	urls += "?" + c.urlParams_.Encode()
100528	req, err := http.NewRequest("POST", urls, body)
100529	if err != nil {
100530		return nil, err
100531	}
100532	req.Header = reqHeaders
100533	googleapi.Expand(req.URL, map[string]string{
100534		"project": c.project,
100535	})
100536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100537}
100538
100539// Do executes the "compute.licenses.insert" call.
100540// Exactly one of *Operation or error will be non-nil. Any non-2xx
100541// status code is an error. Response headers are in either
100542// *Operation.ServerResponse.Header or (if a response was returned at
100543// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100544// to check whether the returned error was because
100545// http.StatusNotModified was returned.
100546func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100547	gensupport.SetOptions(c.urlParams_, opts...)
100548	res, err := c.doRequest("json")
100549	if res != nil && res.StatusCode == http.StatusNotModified {
100550		if res.Body != nil {
100551			res.Body.Close()
100552		}
100553		return nil, &googleapi.Error{
100554			Code:   res.StatusCode,
100555			Header: res.Header,
100556		}
100557	}
100558	if err != nil {
100559		return nil, err
100560	}
100561	defer googleapi.CloseBody(res)
100562	if err := googleapi.CheckResponse(res); err != nil {
100563		return nil, err
100564	}
100565	ret := &Operation{
100566		ServerResponse: googleapi.ServerResponse{
100567			Header:         res.Header,
100568			HTTPStatusCode: res.StatusCode,
100569		},
100570	}
100571	target := &ret
100572	if err := gensupport.DecodeResponse(target, res); err != nil {
100573		return nil, err
100574	}
100575	return ret, nil
100576	// {
100577	//   "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.",
100578	//   "httpMethod": "POST",
100579	//   "id": "compute.licenses.insert",
100580	//   "parameterOrder": [
100581	//     "project"
100582	//   ],
100583	//   "parameters": {
100584	//     "project": {
100585	//       "description": "Project ID for this request.",
100586	//       "location": "path",
100587	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100588	//       "required": true,
100589	//       "type": "string"
100590	//     },
100591	//     "requestId": {
100592	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100593	//       "location": "query",
100594	//       "type": "string"
100595	//     }
100596	//   },
100597	//   "path": "{project}/global/licenses",
100598	//   "request": {
100599	//     "$ref": "License"
100600	//   },
100601	//   "response": {
100602	//     "$ref": "Operation"
100603	//   },
100604	//   "scopes": [
100605	//     "https://www.googleapis.com/auth/cloud-platform",
100606	//     "https://www.googleapis.com/auth/compute",
100607	//     "https://www.googleapis.com/auth/devstorage.full_control",
100608	//     "https://www.googleapis.com/auth/devstorage.read_only",
100609	//     "https://www.googleapis.com/auth/devstorage.read_write"
100610	//   ]
100611	// }
100612
100613}
100614
100615// method id "compute.licenses.list":
100616
100617type LicensesListCall struct {
100618	s            *Service
100619	project      string
100620	urlParams_   gensupport.URLParams
100621	ifNoneMatch_ string
100622	ctx_         context.Context
100623	header_      http.Header
100624}
100625
100626// List: Retrieves the list of licenses available in the specified
100627// project. This method does not get any licenses that belong to other
100628// projects, including licenses attached to publicly-available images,
100629// like Debian 9. If you want to get a list of publicly-available
100630// licenses, use this method to make a request to the respective image
100631// project, such as debian-cloud or windows-cloud.  Caution This
100632// resource is intended for use only by third-party partners who are
100633// creating Cloud Marketplace images.
100634func (r *LicensesService) List(project string) *LicensesListCall {
100635	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100636	c.project = project
100637	return c
100638}
100639
100640// Filter sets the optional parameter "filter": A filter expression that
100641// filters resources listed in the response. The expression must specify
100642// the field name, a comparison operator, and the value that you want to
100643// use for filtering. The value must be a string, a number, or a
100644// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100645// `<`.
100646//
100647// For example, if you are filtering Compute Engine instances, you can
100648// exclude instances named `example-instance` by specifying `name !=
100649// example-instance`.
100650//
100651// You can also filter nested fields. For example, you could specify
100652// `scheduling.automaticRestart = false` to include instances only if
100653// they are not scheduled for automatic restarts. You can use filtering
100654// on nested fields to filter based on resource labels.
100655//
100656// To filter on multiple expressions, provide each separate expression
100657// within parentheses. For example: ``` (scheduling.automaticRestart =
100658// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
100659// is an `AND` expression. However, you can include `AND` and `OR`
100660// expressions explicitly. For example: ``` (cpuPlatform = "Intel
100661// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
100662// (scheduling.automaticRestart = true) ```
100663func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
100664	c.urlParams_.Set("filter", filter)
100665	return c
100666}
100667
100668// MaxResults sets the optional parameter "maxResults": The maximum
100669// number of results per page that should be returned. If the number of
100670// available results is larger than `maxResults`, Compute Engine returns
100671// a `nextPageToken` that can be used to get the next page of results in
100672// subsequent list requests. Acceptable values are `0` to `500`,
100673// inclusive. (Default: `500`)
100674func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
100675	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100676	return c
100677}
100678
100679// OrderBy sets the optional parameter "orderBy": Sorts list results by
100680// a certain order. By default, results are returned in alphanumerical
100681// order based on the resource name.
100682//
100683// You can also sort results in descending order based on the creation
100684// timestamp using `orderBy="creationTimestamp desc". This sorts
100685// results based on the `creationTimestamp` field in reverse
100686// chronological order (newest result first). Use this to sort resources
100687// like operations so that the newest operation is returned
100688// first.
100689//
100690// Currently, only sorting by `name` or `creationTimestamp desc` is
100691// supported.
100692func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
100693	c.urlParams_.Set("orderBy", orderBy)
100694	return c
100695}
100696
100697// PageToken sets the optional parameter "pageToken": Specifies a page
100698// token to use. Set `pageToken` to the `nextPageToken` returned by a
100699// previous list request to get the next page of results.
100700func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
100701	c.urlParams_.Set("pageToken", pageToken)
100702	return c
100703}
100704
100705// ReturnPartialSuccess sets the optional parameter
100706// "returnPartialSuccess": Opt-in for partial success behavior which
100707// provides partial results in case of failure. The default value is
100708// false and the logic is the same as today.
100709func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall {
100710	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100711	return c
100712}
100713
100714// Fields allows partial responses to be retrieved. See
100715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100716// for more information.
100717func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
100718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100719	return c
100720}
100721
100722// IfNoneMatch sets the optional parameter which makes the operation
100723// fail if the object's ETag matches the given value. This is useful for
100724// getting updates only after the object has changed since the last
100725// request. Use googleapi.IsNotModified to check whether the response
100726// error from Do is the result of In-None-Match.
100727func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
100728	c.ifNoneMatch_ = entityTag
100729	return c
100730}
100731
100732// Context sets the context to be used in this call's Do method. Any
100733// pending HTTP request will be aborted if the provided context is
100734// canceled.
100735func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
100736	c.ctx_ = ctx
100737	return c
100738}
100739
100740// Header returns an http.Header that can be modified by the caller to
100741// add HTTP headers to the request.
100742func (c *LicensesListCall) Header() http.Header {
100743	if c.header_ == nil {
100744		c.header_ = make(http.Header)
100745	}
100746	return c.header_
100747}
100748
100749func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
100750	reqHeaders := make(http.Header)
100751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
100752	for k, v := range c.header_ {
100753		reqHeaders[k] = v
100754	}
100755	reqHeaders.Set("User-Agent", c.s.userAgent())
100756	if c.ifNoneMatch_ != "" {
100757		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100758	}
100759	var body io.Reader = nil
100760	c.urlParams_.Set("alt", alt)
100761	c.urlParams_.Set("prettyPrint", "false")
100762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
100763	urls += "?" + c.urlParams_.Encode()
100764	req, err := http.NewRequest("GET", urls, body)
100765	if err != nil {
100766		return nil, err
100767	}
100768	req.Header = reqHeaders
100769	googleapi.Expand(req.URL, map[string]string{
100770		"project": c.project,
100771	})
100772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100773}
100774
100775// Do executes the "compute.licenses.list" call.
100776// Exactly one of *LicensesListResponse or error will be non-nil. Any
100777// non-2xx status code is an error. Response headers are in either
100778// *LicensesListResponse.ServerResponse.Header or (if a response was
100779// returned at all) in error.(*googleapi.Error).Header. Use
100780// googleapi.IsNotModified to check whether the returned error was
100781// because http.StatusNotModified was returned.
100782func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
100783	gensupport.SetOptions(c.urlParams_, opts...)
100784	res, err := c.doRequest("json")
100785	if res != nil && res.StatusCode == http.StatusNotModified {
100786		if res.Body != nil {
100787			res.Body.Close()
100788		}
100789		return nil, &googleapi.Error{
100790			Code:   res.StatusCode,
100791			Header: res.Header,
100792		}
100793	}
100794	if err != nil {
100795		return nil, err
100796	}
100797	defer googleapi.CloseBody(res)
100798	if err := googleapi.CheckResponse(res); err != nil {
100799		return nil, err
100800	}
100801	ret := &LicensesListResponse{
100802		ServerResponse: googleapi.ServerResponse{
100803			Header:         res.Header,
100804			HTTPStatusCode: res.StatusCode,
100805		},
100806	}
100807	target := &ret
100808	if err := gensupport.DecodeResponse(target, res); err != nil {
100809		return nil, err
100810	}
100811	return ret, nil
100812	// {
100813	//   "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.",
100814	//   "httpMethod": "GET",
100815	//   "id": "compute.licenses.list",
100816	//   "parameterOrder": [
100817	//     "project"
100818	//   ],
100819	//   "parameters": {
100820	//     "filter": {
100821	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100822	//       "location": "query",
100823	//       "type": "string"
100824	//     },
100825	//     "maxResults": {
100826	//       "default": "500",
100827	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100828	//       "format": "uint32",
100829	//       "location": "query",
100830	//       "minimum": "0",
100831	//       "type": "integer"
100832	//     },
100833	//     "orderBy": {
100834	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
100835	//       "location": "query",
100836	//       "type": "string"
100837	//     },
100838	//     "pageToken": {
100839	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100840	//       "location": "query",
100841	//       "type": "string"
100842	//     },
100843	//     "project": {
100844	//       "description": "Project ID for this request.",
100845	//       "location": "path",
100846	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100847	//       "required": true,
100848	//       "type": "string"
100849	//     },
100850	//     "returnPartialSuccess": {
100851	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
100852	//       "location": "query",
100853	//       "type": "boolean"
100854	//     }
100855	//   },
100856	//   "path": "{project}/global/licenses",
100857	//   "response": {
100858	//     "$ref": "LicensesListResponse"
100859	//   },
100860	//   "scopes": [
100861	//     "https://www.googleapis.com/auth/cloud-platform",
100862	//     "https://www.googleapis.com/auth/compute",
100863	//     "https://www.googleapis.com/auth/compute.readonly"
100864	//   ]
100865	// }
100866
100867}
100868
100869// Pages invokes f for each page of results.
100870// A non-nil error returned from f will halt the iteration.
100871// The provided context supersedes any context provided to the Context method.
100872func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
100873	c.ctx_ = ctx
100874	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100875	for {
100876		x, err := c.Do()
100877		if err != nil {
100878			return err
100879		}
100880		if err := f(x); err != nil {
100881			return err
100882		}
100883		if x.NextPageToken == "" {
100884			return nil
100885		}
100886		c.PageToken(x.NextPageToken)
100887	}
100888}
100889
100890// method id "compute.licenses.setIamPolicy":
100891
100892type LicensesSetIamPolicyCall struct {
100893	s                      *Service
100894	project                string
100895	resource               string
100896	globalsetpolicyrequest *GlobalSetPolicyRequest
100897	urlParams_             gensupport.URLParams
100898	ctx_                   context.Context
100899	header_                http.Header
100900}
100901
100902// SetIamPolicy: Sets the access control policy on the specified
100903// resource. Replaces any existing policy.  Caution This resource is
100904// intended for use only by third-party partners who are creating Cloud
100905// Marketplace images.
100906func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
100907	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100908	c.project = project
100909	c.resource = resource
100910	c.globalsetpolicyrequest = globalsetpolicyrequest
100911	return c
100912}
100913
100914// Fields allows partial responses to be retrieved. See
100915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100916// for more information.
100917func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
100918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100919	return c
100920}
100921
100922// Context sets the context to be used in this call's Do method. Any
100923// pending HTTP request will be aborted if the provided context is
100924// canceled.
100925func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
100926	c.ctx_ = ctx
100927	return c
100928}
100929
100930// Header returns an http.Header that can be modified by the caller to
100931// add HTTP headers to the request.
100932func (c *LicensesSetIamPolicyCall) Header() http.Header {
100933	if c.header_ == nil {
100934		c.header_ = make(http.Header)
100935	}
100936	return c.header_
100937}
100938
100939func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
100940	reqHeaders := make(http.Header)
100941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
100942	for k, v := range c.header_ {
100943		reqHeaders[k] = v
100944	}
100945	reqHeaders.Set("User-Agent", c.s.userAgent())
100946	var body io.Reader = nil
100947	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
100948	if err != nil {
100949		return nil, err
100950	}
100951	reqHeaders.Set("Content-Type", "application/json")
100952	c.urlParams_.Set("alt", alt)
100953	c.urlParams_.Set("prettyPrint", "false")
100954	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/setIamPolicy")
100955	urls += "?" + c.urlParams_.Encode()
100956	req, err := http.NewRequest("POST", urls, body)
100957	if err != nil {
100958		return nil, err
100959	}
100960	req.Header = reqHeaders
100961	googleapi.Expand(req.URL, map[string]string{
100962		"project":  c.project,
100963		"resource": c.resource,
100964	})
100965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100966}
100967
100968// Do executes the "compute.licenses.setIamPolicy" call.
100969// Exactly one of *Policy or error will be non-nil. Any non-2xx status
100970// code is an error. Response headers are in either
100971// *Policy.ServerResponse.Header or (if a response was returned at all)
100972// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
100973// check whether the returned error was because http.StatusNotModified
100974// was returned.
100975func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
100976	gensupport.SetOptions(c.urlParams_, opts...)
100977	res, err := c.doRequest("json")
100978	if res != nil && res.StatusCode == http.StatusNotModified {
100979		if res.Body != nil {
100980			res.Body.Close()
100981		}
100982		return nil, &googleapi.Error{
100983			Code:   res.StatusCode,
100984			Header: res.Header,
100985		}
100986	}
100987	if err != nil {
100988		return nil, err
100989	}
100990	defer googleapi.CloseBody(res)
100991	if err := googleapi.CheckResponse(res); err != nil {
100992		return nil, err
100993	}
100994	ret := &Policy{
100995		ServerResponse: googleapi.ServerResponse{
100996			Header:         res.Header,
100997			HTTPStatusCode: res.StatusCode,
100998		},
100999	}
101000	target := &ret
101001	if err := gensupport.DecodeResponse(target, res); err != nil {
101002		return nil, err
101003	}
101004	return ret, nil
101005	// {
101006	//   "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.",
101007	//   "httpMethod": "POST",
101008	//   "id": "compute.licenses.setIamPolicy",
101009	//   "parameterOrder": [
101010	//     "project",
101011	//     "resource"
101012	//   ],
101013	//   "parameters": {
101014	//     "project": {
101015	//       "description": "Project ID for this request.",
101016	//       "location": "path",
101017	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101018	//       "required": true,
101019	//       "type": "string"
101020	//     },
101021	//     "resource": {
101022	//       "description": "Name or id of the resource for this request.",
101023	//       "location": "path",
101024	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101025	//       "required": true,
101026	//       "type": "string"
101027	//     }
101028	//   },
101029	//   "path": "{project}/global/licenses/{resource}/setIamPolicy",
101030	//   "request": {
101031	//     "$ref": "GlobalSetPolicyRequest"
101032	//   },
101033	//   "response": {
101034	//     "$ref": "Policy"
101035	//   },
101036	//   "scopes": [
101037	//     "https://www.googleapis.com/auth/cloud-platform",
101038	//     "https://www.googleapis.com/auth/compute"
101039	//   ]
101040	// }
101041
101042}
101043
101044// method id "compute.licenses.testIamPermissions":
101045
101046type LicensesTestIamPermissionsCall struct {
101047	s                      *Service
101048	project                string
101049	resource               string
101050	testpermissionsrequest *TestPermissionsRequest
101051	urlParams_             gensupport.URLParams
101052	ctx_                   context.Context
101053	header_                http.Header
101054}
101055
101056// TestIamPermissions: Returns permissions that a caller has on the
101057// specified resource.  Caution This resource is intended for use only
101058// by third-party partners who are creating Cloud Marketplace images.
101059func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
101060	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101061	c.project = project
101062	c.resource = resource
101063	c.testpermissionsrequest = testpermissionsrequest
101064	return c
101065}
101066
101067// Fields allows partial responses to be retrieved. See
101068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101069// for more information.
101070func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
101071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101072	return c
101073}
101074
101075// Context sets the context to be used in this call's Do method. Any
101076// pending HTTP request will be aborted if the provided context is
101077// canceled.
101078func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
101079	c.ctx_ = ctx
101080	return c
101081}
101082
101083// Header returns an http.Header that can be modified by the caller to
101084// add HTTP headers to the request.
101085func (c *LicensesTestIamPermissionsCall) Header() http.Header {
101086	if c.header_ == nil {
101087		c.header_ = make(http.Header)
101088	}
101089	return c.header_
101090}
101091
101092func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101093	reqHeaders := make(http.Header)
101094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
101095	for k, v := range c.header_ {
101096		reqHeaders[k] = v
101097	}
101098	reqHeaders.Set("User-Agent", c.s.userAgent())
101099	var body io.Reader = nil
101100	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101101	if err != nil {
101102		return nil, err
101103	}
101104	reqHeaders.Set("Content-Type", "application/json")
101105	c.urlParams_.Set("alt", alt)
101106	c.urlParams_.Set("prettyPrint", "false")
101107	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/testIamPermissions")
101108	urls += "?" + c.urlParams_.Encode()
101109	req, err := http.NewRequest("POST", urls, body)
101110	if err != nil {
101111		return nil, err
101112	}
101113	req.Header = reqHeaders
101114	googleapi.Expand(req.URL, map[string]string{
101115		"project":  c.project,
101116		"resource": c.resource,
101117	})
101118	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101119}
101120
101121// Do executes the "compute.licenses.testIamPermissions" call.
101122// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101123// non-2xx status code is an error. Response headers are in either
101124// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101125// returned at all) in error.(*googleapi.Error).Header. Use
101126// googleapi.IsNotModified to check whether the returned error was
101127// because http.StatusNotModified was returned.
101128func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101129	gensupport.SetOptions(c.urlParams_, opts...)
101130	res, err := c.doRequest("json")
101131	if res != nil && res.StatusCode == http.StatusNotModified {
101132		if res.Body != nil {
101133			res.Body.Close()
101134		}
101135		return nil, &googleapi.Error{
101136			Code:   res.StatusCode,
101137			Header: res.Header,
101138		}
101139	}
101140	if err != nil {
101141		return nil, err
101142	}
101143	defer googleapi.CloseBody(res)
101144	if err := googleapi.CheckResponse(res); err != nil {
101145		return nil, err
101146	}
101147	ret := &TestPermissionsResponse{
101148		ServerResponse: googleapi.ServerResponse{
101149			Header:         res.Header,
101150			HTTPStatusCode: res.StatusCode,
101151		},
101152	}
101153	target := &ret
101154	if err := gensupport.DecodeResponse(target, res); err != nil {
101155		return nil, err
101156	}
101157	return ret, nil
101158	// {
101159	//   "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.",
101160	//   "httpMethod": "POST",
101161	//   "id": "compute.licenses.testIamPermissions",
101162	//   "parameterOrder": [
101163	//     "project",
101164	//     "resource"
101165	//   ],
101166	//   "parameters": {
101167	//     "project": {
101168	//       "description": "Project ID for this request.",
101169	//       "location": "path",
101170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101171	//       "required": true,
101172	//       "type": "string"
101173	//     },
101174	//     "resource": {
101175	//       "description": "Name or id of the resource for this request.",
101176	//       "location": "path",
101177	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101178	//       "required": true,
101179	//       "type": "string"
101180	//     }
101181	//   },
101182	//   "path": "{project}/global/licenses/{resource}/testIamPermissions",
101183	//   "request": {
101184	//     "$ref": "TestPermissionsRequest"
101185	//   },
101186	//   "response": {
101187	//     "$ref": "TestPermissionsResponse"
101188	//   },
101189	//   "scopes": [
101190	//     "https://www.googleapis.com/auth/cloud-platform",
101191	//     "https://www.googleapis.com/auth/compute",
101192	//     "https://www.googleapis.com/auth/compute.readonly"
101193	//   ]
101194	// }
101195
101196}
101197
101198// method id "compute.machineImages.delete":
101199
101200type MachineImagesDeleteCall struct {
101201	s            *Service
101202	project      string
101203	machineImage string
101204	urlParams_   gensupport.URLParams
101205	ctx_         context.Context
101206	header_      http.Header
101207}
101208
101209// Delete: Deletes the specified machine image. Deleting a machine image
101210// is permanent and cannot be undone.
101211func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall {
101212	c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101213	c.project = project
101214	c.machineImage = machineImage
101215	return c
101216}
101217
101218// RequestId sets the optional parameter "requestId": An optional
101219// request ID to identify requests. Specify a unique request ID so that
101220// if you must retry your request, the server will know to ignore the
101221// request if it has already been completed.
101222//
101223// For example, consider a situation where you make an initial request
101224// and the request times out. If you make the request again with the
101225// same request ID, the server can check if original operation with the
101226// same request ID was received, and if so, will ignore the second
101227// request. This prevents clients from accidentally creating duplicate
101228// commitments.
101229//
101230// The request ID must be a valid UUID with the exception that zero UUID
101231// is not supported (00000000-0000-0000-0000-000000000000).
101232func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall {
101233	c.urlParams_.Set("requestId", requestId)
101234	return c
101235}
101236
101237// Fields allows partial responses to be retrieved. See
101238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101239// for more information.
101240func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall {
101241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101242	return c
101243}
101244
101245// Context sets the context to be used in this call's Do method. Any
101246// pending HTTP request will be aborted if the provided context is
101247// canceled.
101248func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall {
101249	c.ctx_ = ctx
101250	return c
101251}
101252
101253// Header returns an http.Header that can be modified by the caller to
101254// add HTTP headers to the request.
101255func (c *MachineImagesDeleteCall) Header() http.Header {
101256	if c.header_ == nil {
101257		c.header_ = make(http.Header)
101258	}
101259	return c.header_
101260}
101261
101262func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
101263	reqHeaders := make(http.Header)
101264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
101265	for k, v := range c.header_ {
101266		reqHeaders[k] = v
101267	}
101268	reqHeaders.Set("User-Agent", c.s.userAgent())
101269	var body io.Reader = nil
101270	c.urlParams_.Set("alt", alt)
101271	c.urlParams_.Set("prettyPrint", "false")
101272	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
101273	urls += "?" + c.urlParams_.Encode()
101274	req, err := http.NewRequest("DELETE", urls, body)
101275	if err != nil {
101276		return nil, err
101277	}
101278	req.Header = reqHeaders
101279	googleapi.Expand(req.URL, map[string]string{
101280		"project":      c.project,
101281		"machineImage": c.machineImage,
101282	})
101283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101284}
101285
101286// Do executes the "compute.machineImages.delete" call.
101287// Exactly one of *Operation or error will be non-nil. Any non-2xx
101288// status code is an error. Response headers are in either
101289// *Operation.ServerResponse.Header or (if a response was returned at
101290// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101291// to check whether the returned error was because
101292// http.StatusNotModified was returned.
101293func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101294	gensupport.SetOptions(c.urlParams_, opts...)
101295	res, err := c.doRequest("json")
101296	if res != nil && res.StatusCode == http.StatusNotModified {
101297		if res.Body != nil {
101298			res.Body.Close()
101299		}
101300		return nil, &googleapi.Error{
101301			Code:   res.StatusCode,
101302			Header: res.Header,
101303		}
101304	}
101305	if err != nil {
101306		return nil, err
101307	}
101308	defer googleapi.CloseBody(res)
101309	if err := googleapi.CheckResponse(res); err != nil {
101310		return nil, err
101311	}
101312	ret := &Operation{
101313		ServerResponse: googleapi.ServerResponse{
101314			Header:         res.Header,
101315			HTTPStatusCode: res.StatusCode,
101316		},
101317	}
101318	target := &ret
101319	if err := gensupport.DecodeResponse(target, res); err != nil {
101320		return nil, err
101321	}
101322	return ret, nil
101323	// {
101324	//   "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.",
101325	//   "httpMethod": "DELETE",
101326	//   "id": "compute.machineImages.delete",
101327	//   "parameterOrder": [
101328	//     "project",
101329	//     "machineImage"
101330	//   ],
101331	//   "parameters": {
101332	//     "machineImage": {
101333	//       "description": "The name of the machine image to delete.",
101334	//       "location": "path",
101335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101336	//       "required": true,
101337	//       "type": "string"
101338	//     },
101339	//     "project": {
101340	//       "description": "Project ID for this request.",
101341	//       "location": "path",
101342	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101343	//       "required": true,
101344	//       "type": "string"
101345	//     },
101346	//     "requestId": {
101347	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101348	//       "location": "query",
101349	//       "type": "string"
101350	//     }
101351	//   },
101352	//   "path": "{project}/global/machineImages/{machineImage}",
101353	//   "response": {
101354	//     "$ref": "Operation"
101355	//   },
101356	//   "scopes": [
101357	//     "https://www.googleapis.com/auth/cloud-platform",
101358	//     "https://www.googleapis.com/auth/compute"
101359	//   ]
101360	// }
101361
101362}
101363
101364// method id "compute.machineImages.get":
101365
101366type MachineImagesGetCall struct {
101367	s            *Service
101368	project      string
101369	machineImage string
101370	urlParams_   gensupport.URLParams
101371	ifNoneMatch_ string
101372	ctx_         context.Context
101373	header_      http.Header
101374}
101375
101376// Get: Returns the specified machine image. Gets a list of available
101377// machine images by making a list() request.
101378func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall {
101379	c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101380	c.project = project
101381	c.machineImage = machineImage
101382	return c
101383}
101384
101385// Fields allows partial responses to be retrieved. See
101386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101387// for more information.
101388func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall {
101389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101390	return c
101391}
101392
101393// IfNoneMatch sets the optional parameter which makes the operation
101394// fail if the object's ETag matches the given value. This is useful for
101395// getting updates only after the object has changed since the last
101396// request. Use googleapi.IsNotModified to check whether the response
101397// error from Do is the result of In-None-Match.
101398func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall {
101399	c.ifNoneMatch_ = entityTag
101400	return c
101401}
101402
101403// Context sets the context to be used in this call's Do method. Any
101404// pending HTTP request will be aborted if the provided context is
101405// canceled.
101406func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall {
101407	c.ctx_ = ctx
101408	return c
101409}
101410
101411// Header returns an http.Header that can be modified by the caller to
101412// add HTTP headers to the request.
101413func (c *MachineImagesGetCall) Header() http.Header {
101414	if c.header_ == nil {
101415		c.header_ = make(http.Header)
101416	}
101417	return c.header_
101418}
101419
101420func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) {
101421	reqHeaders := make(http.Header)
101422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
101423	for k, v := range c.header_ {
101424		reqHeaders[k] = v
101425	}
101426	reqHeaders.Set("User-Agent", c.s.userAgent())
101427	if c.ifNoneMatch_ != "" {
101428		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101429	}
101430	var body io.Reader = nil
101431	c.urlParams_.Set("alt", alt)
101432	c.urlParams_.Set("prettyPrint", "false")
101433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
101434	urls += "?" + c.urlParams_.Encode()
101435	req, err := http.NewRequest("GET", urls, body)
101436	if err != nil {
101437		return nil, err
101438	}
101439	req.Header = reqHeaders
101440	googleapi.Expand(req.URL, map[string]string{
101441		"project":      c.project,
101442		"machineImage": c.machineImage,
101443	})
101444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101445}
101446
101447// Do executes the "compute.machineImages.get" call.
101448// Exactly one of *MachineImage or error will be non-nil. Any non-2xx
101449// status code is an error. Response headers are in either
101450// *MachineImage.ServerResponse.Header or (if a response was returned at
101451// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101452// to check whether the returned error was because
101453// http.StatusNotModified was returned.
101454func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) {
101455	gensupport.SetOptions(c.urlParams_, opts...)
101456	res, err := c.doRequest("json")
101457	if res != nil && res.StatusCode == http.StatusNotModified {
101458		if res.Body != nil {
101459			res.Body.Close()
101460		}
101461		return nil, &googleapi.Error{
101462			Code:   res.StatusCode,
101463			Header: res.Header,
101464		}
101465	}
101466	if err != nil {
101467		return nil, err
101468	}
101469	defer googleapi.CloseBody(res)
101470	if err := googleapi.CheckResponse(res); err != nil {
101471		return nil, err
101472	}
101473	ret := &MachineImage{
101474		ServerResponse: googleapi.ServerResponse{
101475			Header:         res.Header,
101476			HTTPStatusCode: res.StatusCode,
101477		},
101478	}
101479	target := &ret
101480	if err := gensupport.DecodeResponse(target, res); err != nil {
101481		return nil, err
101482	}
101483	return ret, nil
101484	// {
101485	//   "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.",
101486	//   "httpMethod": "GET",
101487	//   "id": "compute.machineImages.get",
101488	//   "parameterOrder": [
101489	//     "project",
101490	//     "machineImage"
101491	//   ],
101492	//   "parameters": {
101493	//     "machineImage": {
101494	//       "description": "The name of the machine image.",
101495	//       "location": "path",
101496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101497	//       "required": true,
101498	//       "type": "string"
101499	//     },
101500	//     "project": {
101501	//       "description": "Project ID for this request.",
101502	//       "location": "path",
101503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101504	//       "required": true,
101505	//       "type": "string"
101506	//     }
101507	//   },
101508	//   "path": "{project}/global/machineImages/{machineImage}",
101509	//   "response": {
101510	//     "$ref": "MachineImage"
101511	//   },
101512	//   "scopes": [
101513	//     "https://www.googleapis.com/auth/cloud-platform",
101514	//     "https://www.googleapis.com/auth/compute",
101515	//     "https://www.googleapis.com/auth/compute.readonly"
101516	//   ]
101517	// }
101518
101519}
101520
101521// method id "compute.machineImages.getIamPolicy":
101522
101523type MachineImagesGetIamPolicyCall struct {
101524	s            *Service
101525	project      string
101526	resource     string
101527	urlParams_   gensupport.URLParams
101528	ifNoneMatch_ string
101529	ctx_         context.Context
101530	header_      http.Header
101531}
101532
101533// GetIamPolicy: Gets the access control policy for a resource. May be
101534// empty if no such policy or resource exists.
101535func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall {
101536	c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101537	c.project = project
101538	c.resource = resource
101539	return c
101540}
101541
101542// OptionsRequestedPolicyVersion sets the optional parameter
101543// "optionsRequestedPolicyVersion": Requested IAM Policy version.
101544func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall {
101545	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
101546	return c
101547}
101548
101549// Fields allows partial responses to be retrieved. See
101550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101551// for more information.
101552func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall {
101553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101554	return c
101555}
101556
101557// IfNoneMatch sets the optional parameter which makes the operation
101558// fail if the object's ETag matches the given value. This is useful for
101559// getting updates only after the object has changed since the last
101560// request. Use googleapi.IsNotModified to check whether the response
101561// error from Do is the result of In-None-Match.
101562func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall {
101563	c.ifNoneMatch_ = entityTag
101564	return c
101565}
101566
101567// Context sets the context to be used in this call's Do method. Any
101568// pending HTTP request will be aborted if the provided context is
101569// canceled.
101570func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall {
101571	c.ctx_ = ctx
101572	return c
101573}
101574
101575// Header returns an http.Header that can be modified by the caller to
101576// add HTTP headers to the request.
101577func (c *MachineImagesGetIamPolicyCall) Header() http.Header {
101578	if c.header_ == nil {
101579		c.header_ = make(http.Header)
101580	}
101581	return c.header_
101582}
101583
101584func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
101585	reqHeaders := make(http.Header)
101586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
101587	for k, v := range c.header_ {
101588		reqHeaders[k] = v
101589	}
101590	reqHeaders.Set("User-Agent", c.s.userAgent())
101591	if c.ifNoneMatch_ != "" {
101592		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101593	}
101594	var body io.Reader = nil
101595	c.urlParams_.Set("alt", alt)
101596	c.urlParams_.Set("prettyPrint", "false")
101597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/getIamPolicy")
101598	urls += "?" + c.urlParams_.Encode()
101599	req, err := http.NewRequest("GET", urls, body)
101600	if err != nil {
101601		return nil, err
101602	}
101603	req.Header = reqHeaders
101604	googleapi.Expand(req.URL, map[string]string{
101605		"project":  c.project,
101606		"resource": c.resource,
101607	})
101608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101609}
101610
101611// Do executes the "compute.machineImages.getIamPolicy" call.
101612// Exactly one of *Policy or error will be non-nil. Any non-2xx status
101613// code is an error. Response headers are in either
101614// *Policy.ServerResponse.Header or (if a response was returned at all)
101615// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
101616// check whether the returned error was because http.StatusNotModified
101617// was returned.
101618func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
101619	gensupport.SetOptions(c.urlParams_, opts...)
101620	res, err := c.doRequest("json")
101621	if res != nil && res.StatusCode == http.StatusNotModified {
101622		if res.Body != nil {
101623			res.Body.Close()
101624		}
101625		return nil, &googleapi.Error{
101626			Code:   res.StatusCode,
101627			Header: res.Header,
101628		}
101629	}
101630	if err != nil {
101631		return nil, err
101632	}
101633	defer googleapi.CloseBody(res)
101634	if err := googleapi.CheckResponse(res); err != nil {
101635		return nil, err
101636	}
101637	ret := &Policy{
101638		ServerResponse: googleapi.ServerResponse{
101639			Header:         res.Header,
101640			HTTPStatusCode: res.StatusCode,
101641		},
101642	}
101643	target := &ret
101644	if err := gensupport.DecodeResponse(target, res); err != nil {
101645		return nil, err
101646	}
101647	return ret, nil
101648	// {
101649	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
101650	//   "httpMethod": "GET",
101651	//   "id": "compute.machineImages.getIamPolicy",
101652	//   "parameterOrder": [
101653	//     "project",
101654	//     "resource"
101655	//   ],
101656	//   "parameters": {
101657	//     "optionsRequestedPolicyVersion": {
101658	//       "description": "Requested IAM Policy version.",
101659	//       "format": "int32",
101660	//       "location": "query",
101661	//       "type": "integer"
101662	//     },
101663	//     "project": {
101664	//       "description": "Project ID for this request.",
101665	//       "location": "path",
101666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101667	//       "required": true,
101668	//       "type": "string"
101669	//     },
101670	//     "resource": {
101671	//       "description": "Name or id of the resource for this request.",
101672	//       "location": "path",
101673	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101674	//       "required": true,
101675	//       "type": "string"
101676	//     }
101677	//   },
101678	//   "path": "{project}/global/machineImages/{resource}/getIamPolicy",
101679	//   "response": {
101680	//     "$ref": "Policy"
101681	//   },
101682	//   "scopes": [
101683	//     "https://www.googleapis.com/auth/cloud-platform",
101684	//     "https://www.googleapis.com/auth/compute",
101685	//     "https://www.googleapis.com/auth/compute.readonly"
101686	//   ]
101687	// }
101688
101689}
101690
101691// method id "compute.machineImages.insert":
101692
101693type MachineImagesInsertCall struct {
101694	s            *Service
101695	project      string
101696	machineimage *MachineImage
101697	urlParams_   gensupport.URLParams
101698	ctx_         context.Context
101699	header_      http.Header
101700}
101701
101702// Insert: Creates a machine image in the specified project using the
101703// data that is included in the request. If you are creating a new
101704// machine image to update an existing instance, your new machine image
101705// should use the same network or, if applicable, the same subnetwork as
101706// the original instance.
101707func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall {
101708	c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101709	c.project = project
101710	c.machineimage = machineimage
101711	return c
101712}
101713
101714// RequestId sets the optional parameter "requestId": An optional
101715// request ID to identify requests. Specify a unique request ID so that
101716// if you must retry your request, the server will know to ignore the
101717// request if it has already been completed.
101718//
101719// For example, consider a situation where you make an initial request
101720// and the request times out. If you make the request again with the
101721// same request ID, the server can check if original operation with the
101722// same request ID was received, and if so, will ignore the second
101723// request. This prevents clients from accidentally creating duplicate
101724// commitments.
101725//
101726// The request ID must be a valid UUID with the exception that zero UUID
101727// is not supported (00000000-0000-0000-0000-000000000000).
101728func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall {
101729	c.urlParams_.Set("requestId", requestId)
101730	return c
101731}
101732
101733// SourceInstance sets the optional parameter "sourceInstance":
101734// Required. Source instance that is used to create the machine image
101735// from.
101736func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall {
101737	c.urlParams_.Set("sourceInstance", sourceInstance)
101738	return c
101739}
101740
101741// Fields allows partial responses to be retrieved. See
101742// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101743// for more information.
101744func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall {
101745	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101746	return c
101747}
101748
101749// Context sets the context to be used in this call's Do method. Any
101750// pending HTTP request will be aborted if the provided context is
101751// canceled.
101752func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall {
101753	c.ctx_ = ctx
101754	return c
101755}
101756
101757// Header returns an http.Header that can be modified by the caller to
101758// add HTTP headers to the request.
101759func (c *MachineImagesInsertCall) Header() http.Header {
101760	if c.header_ == nil {
101761		c.header_ = make(http.Header)
101762	}
101763	return c.header_
101764}
101765
101766func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) {
101767	reqHeaders := make(http.Header)
101768	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
101769	for k, v := range c.header_ {
101770		reqHeaders[k] = v
101771	}
101772	reqHeaders.Set("User-Agent", c.s.userAgent())
101773	var body io.Reader = nil
101774	body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage)
101775	if err != nil {
101776		return nil, err
101777	}
101778	reqHeaders.Set("Content-Type", "application/json")
101779	c.urlParams_.Set("alt", alt)
101780	c.urlParams_.Set("prettyPrint", "false")
101781	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
101782	urls += "?" + c.urlParams_.Encode()
101783	req, err := http.NewRequest("POST", urls, body)
101784	if err != nil {
101785		return nil, err
101786	}
101787	req.Header = reqHeaders
101788	googleapi.Expand(req.URL, map[string]string{
101789		"project": c.project,
101790	})
101791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101792}
101793
101794// Do executes the "compute.machineImages.insert" call.
101795// Exactly one of *Operation or error will be non-nil. Any non-2xx
101796// status code is an error. Response headers are in either
101797// *Operation.ServerResponse.Header or (if a response was returned at
101798// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101799// to check whether the returned error was because
101800// http.StatusNotModified was returned.
101801func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101802	gensupport.SetOptions(c.urlParams_, opts...)
101803	res, err := c.doRequest("json")
101804	if res != nil && res.StatusCode == http.StatusNotModified {
101805		if res.Body != nil {
101806			res.Body.Close()
101807		}
101808		return nil, &googleapi.Error{
101809			Code:   res.StatusCode,
101810			Header: res.Header,
101811		}
101812	}
101813	if err != nil {
101814		return nil, err
101815	}
101816	defer googleapi.CloseBody(res)
101817	if err := googleapi.CheckResponse(res); err != nil {
101818		return nil, err
101819	}
101820	ret := &Operation{
101821		ServerResponse: googleapi.ServerResponse{
101822			Header:         res.Header,
101823			HTTPStatusCode: res.StatusCode,
101824		},
101825	}
101826	target := &ret
101827	if err := gensupport.DecodeResponse(target, res); err != nil {
101828		return nil, err
101829	}
101830	return ret, nil
101831	// {
101832	//   "description": "Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance.",
101833	//   "httpMethod": "POST",
101834	//   "id": "compute.machineImages.insert",
101835	//   "parameterOrder": [
101836	//     "project"
101837	//   ],
101838	//   "parameters": {
101839	//     "project": {
101840	//       "description": "Project ID for this request.",
101841	//       "location": "path",
101842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101843	//       "required": true,
101844	//       "type": "string"
101845	//     },
101846	//     "requestId": {
101847	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101848	//       "location": "query",
101849	//       "type": "string"
101850	//     },
101851	//     "sourceInstance": {
101852	//       "description": "Required. Source instance that is used to create the machine image from.",
101853	//       "location": "query",
101854	//       "type": "string"
101855	//     }
101856	//   },
101857	//   "path": "{project}/global/machineImages",
101858	//   "request": {
101859	//     "$ref": "MachineImage"
101860	//   },
101861	//   "response": {
101862	//     "$ref": "Operation"
101863	//   },
101864	//   "scopes": [
101865	//     "https://www.googleapis.com/auth/cloud-platform",
101866	//     "https://www.googleapis.com/auth/compute"
101867	//   ]
101868	// }
101869
101870}
101871
101872// method id "compute.machineImages.list":
101873
101874type MachineImagesListCall struct {
101875	s            *Service
101876	project      string
101877	urlParams_   gensupport.URLParams
101878	ifNoneMatch_ string
101879	ctx_         context.Context
101880	header_      http.Header
101881}
101882
101883// List: Retrieves a list of machine images that are contained within
101884// the specified project.
101885func (r *MachineImagesService) List(project string) *MachineImagesListCall {
101886	c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101887	c.project = project
101888	return c
101889}
101890
101891// Filter sets the optional parameter "filter": A filter expression that
101892// filters resources listed in the response. The expression must specify
101893// the field name, a comparison operator, and the value that you want to
101894// use for filtering. The value must be a string, a number, or a
101895// boolean. The comparison operator must be either `=`, `!=`, `>`, or
101896// `<`.
101897//
101898// For example, if you are filtering Compute Engine instances, you can
101899// exclude instances named `example-instance` by specifying `name !=
101900// example-instance`.
101901//
101902// You can also filter nested fields. For example, you could specify
101903// `scheduling.automaticRestart = false` to include instances only if
101904// they are not scheduled for automatic restarts. You can use filtering
101905// on nested fields to filter based on resource labels.
101906//
101907// To filter on multiple expressions, provide each separate expression
101908// within parentheses. For example: ``` (scheduling.automaticRestart =
101909// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
101910// is an `AND` expression. However, you can include `AND` and `OR`
101911// expressions explicitly. For example: ``` (cpuPlatform = "Intel
101912// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
101913// (scheduling.automaticRestart = true) ```
101914func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall {
101915	c.urlParams_.Set("filter", filter)
101916	return c
101917}
101918
101919// MaxResults sets the optional parameter "maxResults": The maximum
101920// number of results per page that should be returned. If the number of
101921// available results is larger than `maxResults`, Compute Engine returns
101922// a `nextPageToken` that can be used to get the next page of results in
101923// subsequent list requests. Acceptable values are `0` to `500`,
101924// inclusive. (Default: `500`)
101925func (c *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall {
101926	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101927	return c
101928}
101929
101930// OrderBy sets the optional parameter "orderBy": Sorts list results by
101931// a certain order. By default, results are returned in alphanumerical
101932// order based on the resource name.
101933//
101934// You can also sort results in descending order based on the creation
101935// timestamp using `orderBy="creationTimestamp desc". This sorts
101936// results based on the `creationTimestamp` field in reverse
101937// chronological order (newest result first). Use this to sort resources
101938// like operations so that the newest operation is returned
101939// first.
101940//
101941// Currently, only sorting by `name` or `creationTimestamp desc` is
101942// supported.
101943func (c *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall {
101944	c.urlParams_.Set("orderBy", orderBy)
101945	return c
101946}
101947
101948// PageToken sets the optional parameter "pageToken": Specifies a page
101949// token to use. Set `pageToken` to the `nextPageToken` returned by a
101950// previous list request to get the next page of results.
101951func (c *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall {
101952	c.urlParams_.Set("pageToken", pageToken)
101953	return c
101954}
101955
101956// ReturnPartialSuccess sets the optional parameter
101957// "returnPartialSuccess": Opt-in for partial success behavior which
101958// provides partial results in case of failure. The default value is
101959// false and the logic is the same as today.
101960func (c *MachineImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineImagesListCall {
101961	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
101962	return c
101963}
101964
101965// Fields allows partial responses to be retrieved. See
101966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101967// for more information.
101968func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall {
101969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101970	return c
101971}
101972
101973// IfNoneMatch sets the optional parameter which makes the operation
101974// fail if the object's ETag matches the given value. This is useful for
101975// getting updates only after the object has changed since the last
101976// request. Use googleapi.IsNotModified to check whether the response
101977// error from Do is the result of In-None-Match.
101978func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall {
101979	c.ifNoneMatch_ = entityTag
101980	return c
101981}
101982
101983// Context sets the context to be used in this call's Do method. Any
101984// pending HTTP request will be aborted if the provided context is
101985// canceled.
101986func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall {
101987	c.ctx_ = ctx
101988	return c
101989}
101990
101991// Header returns an http.Header that can be modified by the caller to
101992// add HTTP headers to the request.
101993func (c *MachineImagesListCall) Header() http.Header {
101994	if c.header_ == nil {
101995		c.header_ = make(http.Header)
101996	}
101997	return c.header_
101998}
101999
102000func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) {
102001	reqHeaders := make(http.Header)
102002	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
102003	for k, v := range c.header_ {
102004		reqHeaders[k] = v
102005	}
102006	reqHeaders.Set("User-Agent", c.s.userAgent())
102007	if c.ifNoneMatch_ != "" {
102008		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102009	}
102010	var body io.Reader = nil
102011	c.urlParams_.Set("alt", alt)
102012	c.urlParams_.Set("prettyPrint", "false")
102013	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
102014	urls += "?" + c.urlParams_.Encode()
102015	req, err := http.NewRequest("GET", urls, body)
102016	if err != nil {
102017		return nil, err
102018	}
102019	req.Header = reqHeaders
102020	googleapi.Expand(req.URL, map[string]string{
102021		"project": c.project,
102022	})
102023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102024}
102025
102026// Do executes the "compute.machineImages.list" call.
102027// Exactly one of *MachineImageList or error will be non-nil. Any
102028// non-2xx status code is an error. Response headers are in either
102029// *MachineImageList.ServerResponse.Header or (if a response was
102030// returned at all) in error.(*googleapi.Error).Header. Use
102031// googleapi.IsNotModified to check whether the returned error was
102032// because http.StatusNotModified was returned.
102033func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) {
102034	gensupport.SetOptions(c.urlParams_, opts...)
102035	res, err := c.doRequest("json")
102036	if res != nil && res.StatusCode == http.StatusNotModified {
102037		if res.Body != nil {
102038			res.Body.Close()
102039		}
102040		return nil, &googleapi.Error{
102041			Code:   res.StatusCode,
102042			Header: res.Header,
102043		}
102044	}
102045	if err != nil {
102046		return nil, err
102047	}
102048	defer googleapi.CloseBody(res)
102049	if err := googleapi.CheckResponse(res); err != nil {
102050		return nil, err
102051	}
102052	ret := &MachineImageList{
102053		ServerResponse: googleapi.ServerResponse{
102054			Header:         res.Header,
102055			HTTPStatusCode: res.StatusCode,
102056		},
102057	}
102058	target := &ret
102059	if err := gensupport.DecodeResponse(target, res); err != nil {
102060		return nil, err
102061	}
102062	return ret, nil
102063	// {
102064	//   "description": "Retrieves a list of machine images that are contained within the specified project.",
102065	//   "httpMethod": "GET",
102066	//   "id": "compute.machineImages.list",
102067	//   "parameterOrder": [
102068	//     "project"
102069	//   ],
102070	//   "parameters": {
102071	//     "filter": {
102072	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102073	//       "location": "query",
102074	//       "type": "string"
102075	//     },
102076	//     "maxResults": {
102077	//       "default": "500",
102078	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102079	//       "format": "uint32",
102080	//       "location": "query",
102081	//       "minimum": "0",
102082	//       "type": "integer"
102083	//     },
102084	//     "orderBy": {
102085	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102086	//       "location": "query",
102087	//       "type": "string"
102088	//     },
102089	//     "pageToken": {
102090	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102091	//       "location": "query",
102092	//       "type": "string"
102093	//     },
102094	//     "project": {
102095	//       "description": "Project ID for this request.",
102096	//       "location": "path",
102097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102098	//       "required": true,
102099	//       "type": "string"
102100	//     },
102101	//     "returnPartialSuccess": {
102102	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
102103	//       "location": "query",
102104	//       "type": "boolean"
102105	//     }
102106	//   },
102107	//   "path": "{project}/global/machineImages",
102108	//   "response": {
102109	//     "$ref": "MachineImageList"
102110	//   },
102111	//   "scopes": [
102112	//     "https://www.googleapis.com/auth/cloud-platform",
102113	//     "https://www.googleapis.com/auth/compute",
102114	//     "https://www.googleapis.com/auth/compute.readonly"
102115	//   ]
102116	// }
102117
102118}
102119
102120// Pages invokes f for each page of results.
102121// A non-nil error returned from f will halt the iteration.
102122// The provided context supersedes any context provided to the Context method.
102123func (c *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error {
102124	c.ctx_ = ctx
102125	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102126	for {
102127		x, err := c.Do()
102128		if err != nil {
102129			return err
102130		}
102131		if err := f(x); err != nil {
102132			return err
102133		}
102134		if x.NextPageToken == "" {
102135			return nil
102136		}
102137		c.PageToken(x.NextPageToken)
102138	}
102139}
102140
102141// method id "compute.machineImages.setIamPolicy":
102142
102143type MachineImagesSetIamPolicyCall struct {
102144	s                      *Service
102145	project                string
102146	resource               string
102147	globalsetpolicyrequest *GlobalSetPolicyRequest
102148	urlParams_             gensupport.URLParams
102149	ctx_                   context.Context
102150	header_                http.Header
102151}
102152
102153// SetIamPolicy: Sets the access control policy on the specified
102154// resource. Replaces any existing policy.
102155func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall {
102156	c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102157	c.project = project
102158	c.resource = resource
102159	c.globalsetpolicyrequest = globalsetpolicyrequest
102160	return c
102161}
102162
102163// Fields allows partial responses to be retrieved. See
102164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102165// for more information.
102166func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall {
102167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102168	return c
102169}
102170
102171// Context sets the context to be used in this call's Do method. Any
102172// pending HTTP request will be aborted if the provided context is
102173// canceled.
102174func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall {
102175	c.ctx_ = ctx
102176	return c
102177}
102178
102179// Header returns an http.Header that can be modified by the caller to
102180// add HTTP headers to the request.
102181func (c *MachineImagesSetIamPolicyCall) Header() http.Header {
102182	if c.header_ == nil {
102183		c.header_ = make(http.Header)
102184	}
102185	return c.header_
102186}
102187
102188func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
102189	reqHeaders := make(http.Header)
102190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
102191	for k, v := range c.header_ {
102192		reqHeaders[k] = v
102193	}
102194	reqHeaders.Set("User-Agent", c.s.userAgent())
102195	var body io.Reader = nil
102196	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
102197	if err != nil {
102198		return nil, err
102199	}
102200	reqHeaders.Set("Content-Type", "application/json")
102201	c.urlParams_.Set("alt", alt)
102202	c.urlParams_.Set("prettyPrint", "false")
102203	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/setIamPolicy")
102204	urls += "?" + c.urlParams_.Encode()
102205	req, err := http.NewRequest("POST", urls, body)
102206	if err != nil {
102207		return nil, err
102208	}
102209	req.Header = reqHeaders
102210	googleapi.Expand(req.URL, map[string]string{
102211		"project":  c.project,
102212		"resource": c.resource,
102213	})
102214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102215}
102216
102217// Do executes the "compute.machineImages.setIamPolicy" call.
102218// Exactly one of *Policy or error will be non-nil. Any non-2xx status
102219// code is an error. Response headers are in either
102220// *Policy.ServerResponse.Header or (if a response was returned at all)
102221// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102222// check whether the returned error was because http.StatusNotModified
102223// was returned.
102224func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
102225	gensupport.SetOptions(c.urlParams_, opts...)
102226	res, err := c.doRequest("json")
102227	if res != nil && res.StatusCode == http.StatusNotModified {
102228		if res.Body != nil {
102229			res.Body.Close()
102230		}
102231		return nil, &googleapi.Error{
102232			Code:   res.StatusCode,
102233			Header: res.Header,
102234		}
102235	}
102236	if err != nil {
102237		return nil, err
102238	}
102239	defer googleapi.CloseBody(res)
102240	if err := googleapi.CheckResponse(res); err != nil {
102241		return nil, err
102242	}
102243	ret := &Policy{
102244		ServerResponse: googleapi.ServerResponse{
102245			Header:         res.Header,
102246			HTTPStatusCode: res.StatusCode,
102247		},
102248	}
102249	target := &ret
102250	if err := gensupport.DecodeResponse(target, res); err != nil {
102251		return nil, err
102252	}
102253	return ret, nil
102254	// {
102255	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
102256	//   "httpMethod": "POST",
102257	//   "id": "compute.machineImages.setIamPolicy",
102258	//   "parameterOrder": [
102259	//     "project",
102260	//     "resource"
102261	//   ],
102262	//   "parameters": {
102263	//     "project": {
102264	//       "description": "Project ID for this request.",
102265	//       "location": "path",
102266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102267	//       "required": true,
102268	//       "type": "string"
102269	//     },
102270	//     "resource": {
102271	//       "description": "Name or id of the resource for this request.",
102272	//       "location": "path",
102273	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102274	//       "required": true,
102275	//       "type": "string"
102276	//     }
102277	//   },
102278	//   "path": "{project}/global/machineImages/{resource}/setIamPolicy",
102279	//   "request": {
102280	//     "$ref": "GlobalSetPolicyRequest"
102281	//   },
102282	//   "response": {
102283	//     "$ref": "Policy"
102284	//   },
102285	//   "scopes": [
102286	//     "https://www.googleapis.com/auth/cloud-platform",
102287	//     "https://www.googleapis.com/auth/compute"
102288	//   ]
102289	// }
102290
102291}
102292
102293// method id "compute.machineImages.testIamPermissions":
102294
102295type MachineImagesTestIamPermissionsCall struct {
102296	s                      *Service
102297	project                string
102298	resource               string
102299	testpermissionsrequest *TestPermissionsRequest
102300	urlParams_             gensupport.URLParams
102301	ctx_                   context.Context
102302	header_                http.Header
102303}
102304
102305// TestIamPermissions: Returns permissions that a caller has on the
102306// specified resource.
102307func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall {
102308	c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102309	c.project = project
102310	c.resource = resource
102311	c.testpermissionsrequest = testpermissionsrequest
102312	return c
102313}
102314
102315// Fields allows partial responses to be retrieved. See
102316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102317// for more information.
102318func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall {
102319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102320	return c
102321}
102322
102323// Context sets the context to be used in this call's Do method. Any
102324// pending HTTP request will be aborted if the provided context is
102325// canceled.
102326func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall {
102327	c.ctx_ = ctx
102328	return c
102329}
102330
102331// Header returns an http.Header that can be modified by the caller to
102332// add HTTP headers to the request.
102333func (c *MachineImagesTestIamPermissionsCall) Header() http.Header {
102334	if c.header_ == nil {
102335		c.header_ = make(http.Header)
102336	}
102337	return c.header_
102338}
102339
102340func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
102341	reqHeaders := make(http.Header)
102342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
102343	for k, v := range c.header_ {
102344		reqHeaders[k] = v
102345	}
102346	reqHeaders.Set("User-Agent", c.s.userAgent())
102347	var body io.Reader = nil
102348	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
102349	if err != nil {
102350		return nil, err
102351	}
102352	reqHeaders.Set("Content-Type", "application/json")
102353	c.urlParams_.Set("alt", alt)
102354	c.urlParams_.Set("prettyPrint", "false")
102355	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/testIamPermissions")
102356	urls += "?" + c.urlParams_.Encode()
102357	req, err := http.NewRequest("POST", urls, body)
102358	if err != nil {
102359		return nil, err
102360	}
102361	req.Header = reqHeaders
102362	googleapi.Expand(req.URL, map[string]string{
102363		"project":  c.project,
102364		"resource": c.resource,
102365	})
102366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102367}
102368
102369// Do executes the "compute.machineImages.testIamPermissions" call.
102370// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
102371// non-2xx status code is an error. Response headers are in either
102372// *TestPermissionsResponse.ServerResponse.Header or (if a response was
102373// returned at all) in error.(*googleapi.Error).Header. Use
102374// googleapi.IsNotModified to check whether the returned error was
102375// because http.StatusNotModified was returned.
102376func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
102377	gensupport.SetOptions(c.urlParams_, opts...)
102378	res, err := c.doRequest("json")
102379	if res != nil && res.StatusCode == http.StatusNotModified {
102380		if res.Body != nil {
102381			res.Body.Close()
102382		}
102383		return nil, &googleapi.Error{
102384			Code:   res.StatusCode,
102385			Header: res.Header,
102386		}
102387	}
102388	if err != nil {
102389		return nil, err
102390	}
102391	defer googleapi.CloseBody(res)
102392	if err := googleapi.CheckResponse(res); err != nil {
102393		return nil, err
102394	}
102395	ret := &TestPermissionsResponse{
102396		ServerResponse: googleapi.ServerResponse{
102397			Header:         res.Header,
102398			HTTPStatusCode: res.StatusCode,
102399		},
102400	}
102401	target := &ret
102402	if err := gensupport.DecodeResponse(target, res); err != nil {
102403		return nil, err
102404	}
102405	return ret, nil
102406	// {
102407	//   "description": "Returns permissions that a caller has on the specified resource.",
102408	//   "httpMethod": "POST",
102409	//   "id": "compute.machineImages.testIamPermissions",
102410	//   "parameterOrder": [
102411	//     "project",
102412	//     "resource"
102413	//   ],
102414	//   "parameters": {
102415	//     "project": {
102416	//       "description": "Project ID for this request.",
102417	//       "location": "path",
102418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102419	//       "required": true,
102420	//       "type": "string"
102421	//     },
102422	//     "resource": {
102423	//       "description": "Name or id of the resource for this request.",
102424	//       "location": "path",
102425	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102426	//       "required": true,
102427	//       "type": "string"
102428	//     }
102429	//   },
102430	//   "path": "{project}/global/machineImages/{resource}/testIamPermissions",
102431	//   "request": {
102432	//     "$ref": "TestPermissionsRequest"
102433	//   },
102434	//   "response": {
102435	//     "$ref": "TestPermissionsResponse"
102436	//   },
102437	//   "scopes": [
102438	//     "https://www.googleapis.com/auth/cloud-platform",
102439	//     "https://www.googleapis.com/auth/compute",
102440	//     "https://www.googleapis.com/auth/compute.readonly"
102441	//   ]
102442	// }
102443
102444}
102445
102446// method id "compute.machineTypes.aggregatedList":
102447
102448type MachineTypesAggregatedListCall struct {
102449	s            *Service
102450	project      string
102451	urlParams_   gensupport.URLParams
102452	ifNoneMatch_ string
102453	ctx_         context.Context
102454	header_      http.Header
102455}
102456
102457// AggregatedList: Retrieves an aggregated list of machine types.
102458// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
102459func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
102460	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102461	c.project = project
102462	return c
102463}
102464
102465// Filter sets the optional parameter "filter": A filter expression that
102466// filters resources listed in the response. The expression must specify
102467// the field name, a comparison operator, and the value that you want to
102468// use for filtering. The value must be a string, a number, or a
102469// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102470// `<`.
102471//
102472// For example, if you are filtering Compute Engine instances, you can
102473// exclude instances named `example-instance` by specifying `name !=
102474// example-instance`.
102475//
102476// You can also filter nested fields. For example, you could specify
102477// `scheduling.automaticRestart = false` to include instances only if
102478// they are not scheduled for automatic restarts. You can use filtering
102479// on nested fields to filter based on resource labels.
102480//
102481// To filter on multiple expressions, provide each separate expression
102482// within parentheses. For example: ``` (scheduling.automaticRestart =
102483// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102484// is an `AND` expression. However, you can include `AND` and `OR`
102485// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102486// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102487// (scheduling.automaticRestart = true) ```
102488func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
102489	c.urlParams_.Set("filter", filter)
102490	return c
102491}
102492
102493// IncludeAllScopes sets the optional parameter "includeAllScopes":
102494// Indicates whether every visible scope for each scope type (zone,
102495// region, global) should be included in the response. For new resource
102496// types added after this field, the flag has no effect as new resource
102497// types will always include every visible scope for each scope type in
102498// response. For resource types which predate this field, if this flag
102499// is omitted or false, only scopes of the scope types where the
102500// resource type is expected to be found will be included.
102501func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
102502	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
102503	return c
102504}
102505
102506// MaxResults sets the optional parameter "maxResults": The maximum
102507// number of results per page that should be returned. If the number of
102508// available results is larger than `maxResults`, Compute Engine returns
102509// a `nextPageToken` that can be used to get the next page of results in
102510// subsequent list requests. Acceptable values are `0` to `500`,
102511// inclusive. (Default: `500`)
102512func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
102513	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102514	return c
102515}
102516
102517// OrderBy sets the optional parameter "orderBy": Sorts list results by
102518// a certain order. By default, results are returned in alphanumerical
102519// order based on the resource name.
102520//
102521// You can also sort results in descending order based on the creation
102522// timestamp using `orderBy="creationTimestamp desc". This sorts
102523// results based on the `creationTimestamp` field in reverse
102524// chronological order (newest result first). Use this to sort resources
102525// like operations so that the newest operation is returned
102526// first.
102527//
102528// Currently, only sorting by `name` or `creationTimestamp desc` is
102529// supported.
102530func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
102531	c.urlParams_.Set("orderBy", orderBy)
102532	return c
102533}
102534
102535// PageToken sets the optional parameter "pageToken": Specifies a page
102536// token to use. Set `pageToken` to the `nextPageToken` returned by a
102537// previous list request to get the next page of results.
102538func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
102539	c.urlParams_.Set("pageToken", pageToken)
102540	return c
102541}
102542
102543// ReturnPartialSuccess sets the optional parameter
102544// "returnPartialSuccess": Opt-in for partial success behavior which
102545// provides partial results in case of failure. The default value is
102546// false and the logic is the same as today.
102547func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall {
102548	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102549	return c
102550}
102551
102552// Fields allows partial responses to be retrieved. See
102553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102554// for more information.
102555func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
102556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102557	return c
102558}
102559
102560// IfNoneMatch sets the optional parameter which makes the operation
102561// fail if the object's ETag matches the given value. This is useful for
102562// getting updates only after the object has changed since the last
102563// request. Use googleapi.IsNotModified to check whether the response
102564// error from Do is the result of In-None-Match.
102565func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
102566	c.ifNoneMatch_ = entityTag
102567	return c
102568}
102569
102570// Context sets the context to be used in this call's Do method. Any
102571// pending HTTP request will be aborted if the provided context is
102572// canceled.
102573func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
102574	c.ctx_ = ctx
102575	return c
102576}
102577
102578// Header returns an http.Header that can be modified by the caller to
102579// add HTTP headers to the request.
102580func (c *MachineTypesAggregatedListCall) Header() http.Header {
102581	if c.header_ == nil {
102582		c.header_ = make(http.Header)
102583	}
102584	return c.header_
102585}
102586
102587func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
102588	reqHeaders := make(http.Header)
102589	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
102590	for k, v := range c.header_ {
102591		reqHeaders[k] = v
102592	}
102593	reqHeaders.Set("User-Agent", c.s.userAgent())
102594	if c.ifNoneMatch_ != "" {
102595		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102596	}
102597	var body io.Reader = nil
102598	c.urlParams_.Set("alt", alt)
102599	c.urlParams_.Set("prettyPrint", "false")
102600	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
102601	urls += "?" + c.urlParams_.Encode()
102602	req, err := http.NewRequest("GET", urls, body)
102603	if err != nil {
102604		return nil, err
102605	}
102606	req.Header = reqHeaders
102607	googleapi.Expand(req.URL, map[string]string{
102608		"project": c.project,
102609	})
102610	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102611}
102612
102613// Do executes the "compute.machineTypes.aggregatedList" call.
102614// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
102615// Any non-2xx status code is an error. Response headers are in either
102616// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
102617// was returned at all) in error.(*googleapi.Error).Header. Use
102618// googleapi.IsNotModified to check whether the returned error was
102619// because http.StatusNotModified was returned.
102620func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
102621	gensupport.SetOptions(c.urlParams_, opts...)
102622	res, err := c.doRequest("json")
102623	if res != nil && res.StatusCode == http.StatusNotModified {
102624		if res.Body != nil {
102625			res.Body.Close()
102626		}
102627		return nil, &googleapi.Error{
102628			Code:   res.StatusCode,
102629			Header: res.Header,
102630		}
102631	}
102632	if err != nil {
102633		return nil, err
102634	}
102635	defer googleapi.CloseBody(res)
102636	if err := googleapi.CheckResponse(res); err != nil {
102637		return nil, err
102638	}
102639	ret := &MachineTypeAggregatedList{
102640		ServerResponse: googleapi.ServerResponse{
102641			Header:         res.Header,
102642			HTTPStatusCode: res.StatusCode,
102643		},
102644	}
102645	target := &ret
102646	if err := gensupport.DecodeResponse(target, res); err != nil {
102647		return nil, err
102648	}
102649	return ret, nil
102650	// {
102651	//   "description": "Retrieves an aggregated list of machine types.",
102652	//   "httpMethod": "GET",
102653	//   "id": "compute.machineTypes.aggregatedList",
102654	//   "parameterOrder": [
102655	//     "project"
102656	//   ],
102657	//   "parameters": {
102658	//     "filter": {
102659	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102660	//       "location": "query",
102661	//       "type": "string"
102662	//     },
102663	//     "includeAllScopes": {
102664	//       "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.",
102665	//       "location": "query",
102666	//       "type": "boolean"
102667	//     },
102668	//     "maxResults": {
102669	//       "default": "500",
102670	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102671	//       "format": "uint32",
102672	//       "location": "query",
102673	//       "minimum": "0",
102674	//       "type": "integer"
102675	//     },
102676	//     "orderBy": {
102677	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102678	//       "location": "query",
102679	//       "type": "string"
102680	//     },
102681	//     "pageToken": {
102682	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102683	//       "location": "query",
102684	//       "type": "string"
102685	//     },
102686	//     "project": {
102687	//       "description": "Project ID for this request.",
102688	//       "location": "path",
102689	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102690	//       "required": true,
102691	//       "type": "string"
102692	//     },
102693	//     "returnPartialSuccess": {
102694	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
102695	//       "location": "query",
102696	//       "type": "boolean"
102697	//     }
102698	//   },
102699	//   "path": "{project}/aggregated/machineTypes",
102700	//   "response": {
102701	//     "$ref": "MachineTypeAggregatedList"
102702	//   },
102703	//   "scopes": [
102704	//     "https://www.googleapis.com/auth/cloud-platform",
102705	//     "https://www.googleapis.com/auth/compute",
102706	//     "https://www.googleapis.com/auth/compute.readonly"
102707	//   ]
102708	// }
102709
102710}
102711
102712// Pages invokes f for each page of results.
102713// A non-nil error returned from f will halt the iteration.
102714// The provided context supersedes any context provided to the Context method.
102715func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
102716	c.ctx_ = ctx
102717	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102718	for {
102719		x, err := c.Do()
102720		if err != nil {
102721			return err
102722		}
102723		if err := f(x); err != nil {
102724			return err
102725		}
102726		if x.NextPageToken == "" {
102727			return nil
102728		}
102729		c.PageToken(x.NextPageToken)
102730	}
102731}
102732
102733// method id "compute.machineTypes.get":
102734
102735type MachineTypesGetCall struct {
102736	s            *Service
102737	project      string
102738	zone         string
102739	machineType  string
102740	urlParams_   gensupport.URLParams
102741	ifNoneMatch_ string
102742	ctx_         context.Context
102743	header_      http.Header
102744}
102745
102746// Get: Returns the specified machine type. Gets a list of available
102747// machine types by making a list() request.
102748// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
102749func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
102750	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102751	c.project = project
102752	c.zone = zone
102753	c.machineType = machineType
102754	return c
102755}
102756
102757// Fields allows partial responses to be retrieved. See
102758// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102759// for more information.
102760func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
102761	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102762	return c
102763}
102764
102765// IfNoneMatch sets the optional parameter which makes the operation
102766// fail if the object's ETag matches the given value. This is useful for
102767// getting updates only after the object has changed since the last
102768// request. Use googleapi.IsNotModified to check whether the response
102769// error from Do is the result of In-None-Match.
102770func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
102771	c.ifNoneMatch_ = entityTag
102772	return c
102773}
102774
102775// Context sets the context to be used in this call's Do method. Any
102776// pending HTTP request will be aborted if the provided context is
102777// canceled.
102778func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
102779	c.ctx_ = ctx
102780	return c
102781}
102782
102783// Header returns an http.Header that can be modified by the caller to
102784// add HTTP headers to the request.
102785func (c *MachineTypesGetCall) Header() http.Header {
102786	if c.header_ == nil {
102787		c.header_ = make(http.Header)
102788	}
102789	return c.header_
102790}
102791
102792func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
102793	reqHeaders := make(http.Header)
102794	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
102795	for k, v := range c.header_ {
102796		reqHeaders[k] = v
102797	}
102798	reqHeaders.Set("User-Agent", c.s.userAgent())
102799	if c.ifNoneMatch_ != "" {
102800		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102801	}
102802	var body io.Reader = nil
102803	c.urlParams_.Set("alt", alt)
102804	c.urlParams_.Set("prettyPrint", "false")
102805	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
102806	urls += "?" + c.urlParams_.Encode()
102807	req, err := http.NewRequest("GET", urls, body)
102808	if err != nil {
102809		return nil, err
102810	}
102811	req.Header = reqHeaders
102812	googleapi.Expand(req.URL, map[string]string{
102813		"project":     c.project,
102814		"zone":        c.zone,
102815		"machineType": c.machineType,
102816	})
102817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102818}
102819
102820// Do executes the "compute.machineTypes.get" call.
102821// Exactly one of *MachineType or error will be non-nil. Any non-2xx
102822// status code is an error. Response headers are in either
102823// *MachineType.ServerResponse.Header or (if a response was returned at
102824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102825// to check whether the returned error was because
102826// http.StatusNotModified was returned.
102827func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
102828	gensupport.SetOptions(c.urlParams_, opts...)
102829	res, err := c.doRequest("json")
102830	if res != nil && res.StatusCode == http.StatusNotModified {
102831		if res.Body != nil {
102832			res.Body.Close()
102833		}
102834		return nil, &googleapi.Error{
102835			Code:   res.StatusCode,
102836			Header: res.Header,
102837		}
102838	}
102839	if err != nil {
102840		return nil, err
102841	}
102842	defer googleapi.CloseBody(res)
102843	if err := googleapi.CheckResponse(res); err != nil {
102844		return nil, err
102845	}
102846	ret := &MachineType{
102847		ServerResponse: googleapi.ServerResponse{
102848			Header:         res.Header,
102849			HTTPStatusCode: res.StatusCode,
102850		},
102851	}
102852	target := &ret
102853	if err := gensupport.DecodeResponse(target, res); err != nil {
102854		return nil, err
102855	}
102856	return ret, nil
102857	// {
102858	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
102859	//   "httpMethod": "GET",
102860	//   "id": "compute.machineTypes.get",
102861	//   "parameterOrder": [
102862	//     "project",
102863	//     "zone",
102864	//     "machineType"
102865	//   ],
102866	//   "parameters": {
102867	//     "machineType": {
102868	//       "description": "Name of the machine type to return.",
102869	//       "location": "path",
102870	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102871	//       "required": true,
102872	//       "type": "string"
102873	//     },
102874	//     "project": {
102875	//       "description": "Project ID for this request.",
102876	//       "location": "path",
102877	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102878	//       "required": true,
102879	//       "type": "string"
102880	//     },
102881	//     "zone": {
102882	//       "description": "The name of the zone for this request.",
102883	//       "location": "path",
102884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102885	//       "required": true,
102886	//       "type": "string"
102887	//     }
102888	//   },
102889	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
102890	//   "response": {
102891	//     "$ref": "MachineType"
102892	//   },
102893	//   "scopes": [
102894	//     "https://www.googleapis.com/auth/cloud-platform",
102895	//     "https://www.googleapis.com/auth/compute",
102896	//     "https://www.googleapis.com/auth/compute.readonly"
102897	//   ]
102898	// }
102899
102900}
102901
102902// method id "compute.machineTypes.list":
102903
102904type MachineTypesListCall struct {
102905	s            *Service
102906	project      string
102907	zone         string
102908	urlParams_   gensupport.URLParams
102909	ifNoneMatch_ string
102910	ctx_         context.Context
102911	header_      http.Header
102912}
102913
102914// List: Retrieves a list of machine types available to the specified
102915// project.
102916// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
102917func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
102918	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102919	c.project = project
102920	c.zone = zone
102921	return c
102922}
102923
102924// Filter sets the optional parameter "filter": A filter expression that
102925// filters resources listed in the response. The expression must specify
102926// the field name, a comparison operator, and the value that you want to
102927// use for filtering. The value must be a string, a number, or a
102928// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102929// `<`.
102930//
102931// For example, if you are filtering Compute Engine instances, you can
102932// exclude instances named `example-instance` by specifying `name !=
102933// example-instance`.
102934//
102935// You can also filter nested fields. For example, you could specify
102936// `scheduling.automaticRestart = false` to include instances only if
102937// they are not scheduled for automatic restarts. You can use filtering
102938// on nested fields to filter based on resource labels.
102939//
102940// To filter on multiple expressions, provide each separate expression
102941// within parentheses. For example: ``` (scheduling.automaticRestart =
102942// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102943// is an `AND` expression. However, you can include `AND` and `OR`
102944// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102945// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102946// (scheduling.automaticRestart = true) ```
102947func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
102948	c.urlParams_.Set("filter", filter)
102949	return c
102950}
102951
102952// MaxResults sets the optional parameter "maxResults": The maximum
102953// number of results per page that should be returned. If the number of
102954// available results is larger than `maxResults`, Compute Engine returns
102955// a `nextPageToken` that can be used to get the next page of results in
102956// subsequent list requests. Acceptable values are `0` to `500`,
102957// inclusive. (Default: `500`)
102958func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
102959	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102960	return c
102961}
102962
102963// OrderBy sets the optional parameter "orderBy": Sorts list results by
102964// a certain order. By default, results are returned in alphanumerical
102965// order based on the resource name.
102966//
102967// You can also sort results in descending order based on the creation
102968// timestamp using `orderBy="creationTimestamp desc". This sorts
102969// results based on the `creationTimestamp` field in reverse
102970// chronological order (newest result first). Use this to sort resources
102971// like operations so that the newest operation is returned
102972// first.
102973//
102974// Currently, only sorting by `name` or `creationTimestamp desc` is
102975// supported.
102976func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
102977	c.urlParams_.Set("orderBy", orderBy)
102978	return c
102979}
102980
102981// PageToken sets the optional parameter "pageToken": Specifies a page
102982// token to use. Set `pageToken` to the `nextPageToken` returned by a
102983// previous list request to get the next page of results.
102984func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
102985	c.urlParams_.Set("pageToken", pageToken)
102986	return c
102987}
102988
102989// ReturnPartialSuccess sets the optional parameter
102990// "returnPartialSuccess": Opt-in for partial success behavior which
102991// provides partial results in case of failure. The default value is
102992// false and the logic is the same as today.
102993func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall {
102994	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102995	return c
102996}
102997
102998// Fields allows partial responses to be retrieved. See
102999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103000// for more information.
103001func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
103002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103003	return c
103004}
103005
103006// IfNoneMatch sets the optional parameter which makes the operation
103007// fail if the object's ETag matches the given value. This is useful for
103008// getting updates only after the object has changed since the last
103009// request. Use googleapi.IsNotModified to check whether the response
103010// error from Do is the result of In-None-Match.
103011func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
103012	c.ifNoneMatch_ = entityTag
103013	return c
103014}
103015
103016// Context sets the context to be used in this call's Do method. Any
103017// pending HTTP request will be aborted if the provided context is
103018// canceled.
103019func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
103020	c.ctx_ = ctx
103021	return c
103022}
103023
103024// Header returns an http.Header that can be modified by the caller to
103025// add HTTP headers to the request.
103026func (c *MachineTypesListCall) Header() http.Header {
103027	if c.header_ == nil {
103028		c.header_ = make(http.Header)
103029	}
103030	return c.header_
103031}
103032
103033func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
103034	reqHeaders := make(http.Header)
103035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
103036	for k, v := range c.header_ {
103037		reqHeaders[k] = v
103038	}
103039	reqHeaders.Set("User-Agent", c.s.userAgent())
103040	if c.ifNoneMatch_ != "" {
103041		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103042	}
103043	var body io.Reader = nil
103044	c.urlParams_.Set("alt", alt)
103045	c.urlParams_.Set("prettyPrint", "false")
103046	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
103047	urls += "?" + c.urlParams_.Encode()
103048	req, err := http.NewRequest("GET", urls, body)
103049	if err != nil {
103050		return nil, err
103051	}
103052	req.Header = reqHeaders
103053	googleapi.Expand(req.URL, map[string]string{
103054		"project": c.project,
103055		"zone":    c.zone,
103056	})
103057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103058}
103059
103060// Do executes the "compute.machineTypes.list" call.
103061// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
103062// status code is an error. Response headers are in either
103063// *MachineTypeList.ServerResponse.Header or (if a response was returned
103064// at all) in error.(*googleapi.Error).Header. Use
103065// googleapi.IsNotModified to check whether the returned error was
103066// because http.StatusNotModified was returned.
103067func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
103068	gensupport.SetOptions(c.urlParams_, opts...)
103069	res, err := c.doRequest("json")
103070	if res != nil && res.StatusCode == http.StatusNotModified {
103071		if res.Body != nil {
103072			res.Body.Close()
103073		}
103074		return nil, &googleapi.Error{
103075			Code:   res.StatusCode,
103076			Header: res.Header,
103077		}
103078	}
103079	if err != nil {
103080		return nil, err
103081	}
103082	defer googleapi.CloseBody(res)
103083	if err := googleapi.CheckResponse(res); err != nil {
103084		return nil, err
103085	}
103086	ret := &MachineTypeList{
103087		ServerResponse: googleapi.ServerResponse{
103088			Header:         res.Header,
103089			HTTPStatusCode: res.StatusCode,
103090		},
103091	}
103092	target := &ret
103093	if err := gensupport.DecodeResponse(target, res); err != nil {
103094		return nil, err
103095	}
103096	return ret, nil
103097	// {
103098	//   "description": "Retrieves a list of machine types available to the specified project.",
103099	//   "httpMethod": "GET",
103100	//   "id": "compute.machineTypes.list",
103101	//   "parameterOrder": [
103102	//     "project",
103103	//     "zone"
103104	//   ],
103105	//   "parameters": {
103106	//     "filter": {
103107	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
103108	//       "location": "query",
103109	//       "type": "string"
103110	//     },
103111	//     "maxResults": {
103112	//       "default": "500",
103113	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
103114	//       "format": "uint32",
103115	//       "location": "query",
103116	//       "minimum": "0",
103117	//       "type": "integer"
103118	//     },
103119	//     "orderBy": {
103120	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
103121	//       "location": "query",
103122	//       "type": "string"
103123	//     },
103124	//     "pageToken": {
103125	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
103126	//       "location": "query",
103127	//       "type": "string"
103128	//     },
103129	//     "project": {
103130	//       "description": "Project ID for this request.",
103131	//       "location": "path",
103132	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103133	//       "required": true,
103134	//       "type": "string"
103135	//     },
103136	//     "returnPartialSuccess": {
103137	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
103138	//       "location": "query",
103139	//       "type": "boolean"
103140	//     },
103141	//     "zone": {
103142	//       "description": "The name of the zone for this request.",
103143	//       "location": "path",
103144	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103145	//       "required": true,
103146	//       "type": "string"
103147	//     }
103148	//   },
103149	//   "path": "{project}/zones/{zone}/machineTypes",
103150	//   "response": {
103151	//     "$ref": "MachineTypeList"
103152	//   },
103153	//   "scopes": [
103154	//     "https://www.googleapis.com/auth/cloud-platform",
103155	//     "https://www.googleapis.com/auth/compute",
103156	//     "https://www.googleapis.com/auth/compute.readonly"
103157	//   ]
103158	// }
103159
103160}
103161
103162// Pages invokes f for each page of results.
103163// A non-nil error returned from f will halt the iteration.
103164// The provided context supersedes any context provided to the Context method.
103165func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
103166	c.ctx_ = ctx
103167	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103168	for {
103169		x, err := c.Do()
103170		if err != nil {
103171			return err
103172		}
103173		if err := f(x); err != nil {
103174			return err
103175		}
103176		if x.NextPageToken == "" {
103177			return nil
103178		}
103179		c.PageToken(x.NextPageToken)
103180	}
103181}
103182
103183// method id "compute.networkEndpointGroups.aggregatedList":
103184
103185type NetworkEndpointGroupsAggregatedListCall struct {
103186	s            *Service
103187	project      string
103188	urlParams_   gensupport.URLParams
103189	ifNoneMatch_ string
103190	ctx_         context.Context
103191	header_      http.Header
103192}
103193
103194// AggregatedList: Retrieves the list of network endpoint groups and
103195// sorts them by zone.
103196func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
103197	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103198	c.project = project
103199	return c
103200}
103201
103202// Filter sets the optional parameter "filter": A filter expression that
103203// filters resources listed in the response. The expression must specify
103204// the field name, a comparison operator, and the value that you want to
103205// use for filtering. The value must be a string, a number, or a
103206// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103207// `<`.
103208//
103209// For example, if you are filtering Compute Engine instances, you can
103210// exclude instances named `example-instance` by specifying `name !=
103211// example-instance`.
103212//
103213// You can also filter nested fields. For example, you could specify
103214// `scheduling.automaticRestart = false` to include instances only if
103215// they are not scheduled for automatic restarts. You can use filtering
103216// on nested fields to filter based on resource labels.
103217//
103218// To filter on multiple expressions, provide each separate expression
103219// within parentheses. For example: ``` (scheduling.automaticRestart =
103220// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
103221// is an `AND` expression. However, you can include `AND` and `OR`
103222// expressions explicitly. For example: ``` (cpuPlatform = "Intel
103223// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
103224// (scheduling.automaticRestart = true) ```
103225func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
103226	c.urlParams_.Set("filter", filter)
103227	return c
103228}
103229
103230// IncludeAllScopes sets the optional parameter "includeAllScopes":
103231// Indicates whether every visible scope for each scope type (zone,
103232// region, global) should be included in the response. For new resource
103233// types added after this field, the flag has no effect as new resource
103234// types will always include every visible scope for each scope type in
103235// response. For resource types which predate this field, if this flag
103236// is omitted or false, only scopes of the scope types where the
103237// resource type is expected to be found will be included.
103238func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
103239	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
103240	return c
103241}
103242
103243// MaxResults sets the optional parameter "maxResults": The maximum
103244// number of results per page that should be returned. If the number of
103245// available results is larger than `maxResults`, Compute Engine returns
103246// a `nextPageToken` that can be used to get the next page of results in
103247// subsequent list requests. Acceptable values are `0` to `500`,
103248// inclusive. (Default: `500`)
103249func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
103250	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103251	return c
103252}
103253
103254// OrderBy sets the optional parameter "orderBy": Sorts list results by
103255// a certain order. By default, results are returned in alphanumerical
103256// order based on the resource name.
103257//
103258// You can also sort results in descending order based on the creation
103259// timestamp using `orderBy="creationTimestamp desc". This sorts
103260// results based on the `creationTimestamp` field in reverse
103261// chronological order (newest result first). Use this to sort resources
103262// like operations so that the newest operation is returned
103263// first.
103264//
103265// Currently, only sorting by `name` or `creationTimestamp desc` is
103266// supported.
103267func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
103268	c.urlParams_.Set("orderBy", orderBy)
103269	return c
103270}
103271
103272// PageToken sets the optional parameter "pageToken": Specifies a page
103273// token to use. Set `pageToken` to the `nextPageToken` returned by a
103274// previous list request to get the next page of results.
103275func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
103276	c.urlParams_.Set("pageToken", pageToken)
103277	return c
103278}
103279
103280// ReturnPartialSuccess sets the optional parameter
103281// "returnPartialSuccess": Opt-in for partial success behavior which
103282// provides partial results in case of failure. The default value is
103283// false and the logic is the same as today.
103284func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall {
103285	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
103286	return c
103287}
103288
103289// Fields allows partial responses to be retrieved. See
103290// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103291// for more information.
103292func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
103293	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103294	return c
103295}
103296
103297// IfNoneMatch sets the optional parameter which makes the operation
103298// fail if the object's ETag matches the given value. This is useful for
103299// getting updates only after the object has changed since the last
103300// request. Use googleapi.IsNotModified to check whether the response
103301// error from Do is the result of In-None-Match.
103302func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
103303	c.ifNoneMatch_ = entityTag
103304	return c
103305}
103306
103307// Context sets the context to be used in this call's Do method. Any
103308// pending HTTP request will be aborted if the provided context is
103309// canceled.
103310func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
103311	c.ctx_ = ctx
103312	return c
103313}
103314
103315// Header returns an http.Header that can be modified by the caller to
103316// add HTTP headers to the request.
103317func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
103318	if c.header_ == nil {
103319		c.header_ = make(http.Header)
103320	}
103321	return c.header_
103322}
103323
103324func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
103325	reqHeaders := make(http.Header)
103326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
103327	for k, v := range c.header_ {
103328		reqHeaders[k] = v
103329	}
103330	reqHeaders.Set("User-Agent", c.s.userAgent())
103331	if c.ifNoneMatch_ != "" {
103332		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103333	}
103334	var body io.Reader = nil
103335	c.urlParams_.Set("alt", alt)
103336	c.urlParams_.Set("prettyPrint", "false")
103337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/networkEndpointGroups")
103338	urls += "?" + c.urlParams_.Encode()
103339	req, err := http.NewRequest("GET", urls, body)
103340	if err != nil {
103341		return nil, err
103342	}
103343	req.Header = reqHeaders
103344	googleapi.Expand(req.URL, map[string]string{
103345		"project": c.project,
103346	})
103347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103348}
103349
103350// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
103351// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
103352// non-nil. Any non-2xx status code is an error. Response headers are in
103353// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
103354// (if a response was returned at all) in
103355// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
103356// whether the returned error was because http.StatusNotModified was
103357// returned.
103358func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
103359	gensupport.SetOptions(c.urlParams_, opts...)
103360	res, err := c.doRequest("json")
103361	if res != nil && res.StatusCode == http.StatusNotModified {
103362		if res.Body != nil {
103363			res.Body.Close()
103364		}
103365		return nil, &googleapi.Error{
103366			Code:   res.StatusCode,
103367			Header: res.Header,
103368		}
103369	}
103370	if err != nil {
103371		return nil, err
103372	}
103373	defer googleapi.CloseBody(res)
103374	if err := googleapi.CheckResponse(res); err != nil {
103375		return nil, err
103376	}
103377	ret := &NetworkEndpointGroupAggregatedList{
103378		ServerResponse: googleapi.ServerResponse{
103379			Header:         res.Header,
103380			HTTPStatusCode: res.StatusCode,
103381		},
103382	}
103383	target := &ret
103384	if err := gensupport.DecodeResponse(target, res); err != nil {
103385		return nil, err
103386	}
103387	return ret, nil
103388	// {
103389	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
103390	//   "httpMethod": "GET",
103391	//   "id": "compute.networkEndpointGroups.aggregatedList",
103392	//   "parameterOrder": [
103393	//     "project"
103394	//   ],
103395	//   "parameters": {
103396	//     "filter": {
103397	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
103398	//       "location": "query",
103399	//       "type": "string"
103400	//     },
103401	//     "includeAllScopes": {
103402	//       "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.",
103403	//       "location": "query",
103404	//       "type": "boolean"
103405	//     },
103406	//     "maxResults": {
103407	//       "default": "500",
103408	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
103409	//       "format": "uint32",
103410	//       "location": "query",
103411	//       "minimum": "0",
103412	//       "type": "integer"
103413	//     },
103414	//     "orderBy": {
103415	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
103416	//       "location": "query",
103417	//       "type": "string"
103418	//     },
103419	//     "pageToken": {
103420	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
103421	//       "location": "query",
103422	//       "type": "string"
103423	//     },
103424	//     "project": {
103425	//       "description": "Project ID for this request.",
103426	//       "location": "path",
103427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103428	//       "required": true,
103429	//       "type": "string"
103430	//     },
103431	//     "returnPartialSuccess": {
103432	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
103433	//       "location": "query",
103434	//       "type": "boolean"
103435	//     }
103436	//   },
103437	//   "path": "{project}/aggregated/networkEndpointGroups",
103438	//   "response": {
103439	//     "$ref": "NetworkEndpointGroupAggregatedList"
103440	//   },
103441	//   "scopes": [
103442	//     "https://www.googleapis.com/auth/cloud-platform",
103443	//     "https://www.googleapis.com/auth/compute",
103444	//     "https://www.googleapis.com/auth/compute.readonly"
103445	//   ]
103446	// }
103447
103448}
103449
103450// Pages invokes f for each page of results.
103451// A non-nil error returned from f will halt the iteration.
103452// The provided context supersedes any context provided to the Context method.
103453func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
103454	c.ctx_ = ctx
103455	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103456	for {
103457		x, err := c.Do()
103458		if err != nil {
103459			return err
103460		}
103461		if err := f(x); err != nil {
103462			return err
103463		}
103464		if x.NextPageToken == "" {
103465			return nil
103466		}
103467		c.PageToken(x.NextPageToken)
103468	}
103469}
103470
103471// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
103472
103473type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
103474	s                                           *Service
103475	project                                     string
103476	zone                                        string
103477	networkEndpointGroup                        string
103478	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
103479	urlParams_                                  gensupport.URLParams
103480	ctx_                                        context.Context
103481	header_                                     http.Header
103482}
103483
103484// AttachNetworkEndpoints: Attach a list of network endpoints to the
103485// specified network endpoint group.
103486func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
103487	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103488	c.project = project
103489	c.zone = zone
103490	c.networkEndpointGroup = networkEndpointGroup
103491	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
103492	return c
103493}
103494
103495// RequestId sets the optional parameter "requestId": An optional
103496// request ID to identify requests. Specify a unique request ID so that
103497// if you must retry your request, the server will know to ignore the
103498// request if it has already been completed.
103499//
103500// For example, consider a situation where you make an initial request
103501// and the request times out. If you make the request again with the
103502// same request ID, the server can check if original operation with the
103503// same request ID was received, and if so, will ignore the second
103504// request. This prevents clients from accidentally creating duplicate
103505// commitments.
103506//
103507// The request ID must be a valid UUID with the exception that zero UUID
103508// is not supported (00000000-0000-0000-0000-000000000000).
103509func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
103510	c.urlParams_.Set("requestId", requestId)
103511	return c
103512}
103513
103514// Fields allows partial responses to be retrieved. See
103515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103516// for more information.
103517func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
103518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103519	return c
103520}
103521
103522// Context sets the context to be used in this call's Do method. Any
103523// pending HTTP request will be aborted if the provided context is
103524// canceled.
103525func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
103526	c.ctx_ = ctx
103527	return c
103528}
103529
103530// Header returns an http.Header that can be modified by the caller to
103531// add HTTP headers to the request.
103532func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
103533	if c.header_ == nil {
103534		c.header_ = make(http.Header)
103535	}
103536	return c.header_
103537}
103538
103539func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
103540	reqHeaders := make(http.Header)
103541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
103542	for k, v := range c.header_ {
103543		reqHeaders[k] = v
103544	}
103545	reqHeaders.Set("User-Agent", c.s.userAgent())
103546	var body io.Reader = nil
103547	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
103548	if err != nil {
103549		return nil, err
103550	}
103551	reqHeaders.Set("Content-Type", "application/json")
103552	c.urlParams_.Set("alt", alt)
103553	c.urlParams_.Set("prettyPrint", "false")
103554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
103555	urls += "?" + c.urlParams_.Encode()
103556	req, err := http.NewRequest("POST", urls, body)
103557	if err != nil {
103558		return nil, err
103559	}
103560	req.Header = reqHeaders
103561	googleapi.Expand(req.URL, map[string]string{
103562		"project":              c.project,
103563		"zone":                 c.zone,
103564		"networkEndpointGroup": c.networkEndpointGroup,
103565	})
103566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103567}
103568
103569// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
103570// Exactly one of *Operation or error will be non-nil. Any non-2xx
103571// status code is an error. Response headers are in either
103572// *Operation.ServerResponse.Header or (if a response was returned at
103573// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103574// to check whether the returned error was because
103575// http.StatusNotModified was returned.
103576func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103577	gensupport.SetOptions(c.urlParams_, opts...)
103578	res, err := c.doRequest("json")
103579	if res != nil && res.StatusCode == http.StatusNotModified {
103580		if res.Body != nil {
103581			res.Body.Close()
103582		}
103583		return nil, &googleapi.Error{
103584			Code:   res.StatusCode,
103585			Header: res.Header,
103586		}
103587	}
103588	if err != nil {
103589		return nil, err
103590	}
103591	defer googleapi.CloseBody(res)
103592	if err := googleapi.CheckResponse(res); err != nil {
103593		return nil, err
103594	}
103595	ret := &Operation{
103596		ServerResponse: googleapi.ServerResponse{
103597			Header:         res.Header,
103598			HTTPStatusCode: res.StatusCode,
103599		},
103600	}
103601	target := &ret
103602	if err := gensupport.DecodeResponse(target, res); err != nil {
103603		return nil, err
103604	}
103605	return ret, nil
103606	// {
103607	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
103608	//   "httpMethod": "POST",
103609	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
103610	//   "parameterOrder": [
103611	//     "project",
103612	//     "zone",
103613	//     "networkEndpointGroup"
103614	//   ],
103615	//   "parameters": {
103616	//     "networkEndpointGroup": {
103617	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
103618	//       "location": "path",
103619	//       "required": true,
103620	//       "type": "string"
103621	//     },
103622	//     "project": {
103623	//       "description": "Project ID for this request.",
103624	//       "location": "path",
103625	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103626	//       "required": true,
103627	//       "type": "string"
103628	//     },
103629	//     "requestId": {
103630	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103631	//       "location": "query",
103632	//       "type": "string"
103633	//     },
103634	//     "zone": {
103635	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
103636	//       "location": "path",
103637	//       "required": true,
103638	//       "type": "string"
103639	//     }
103640	//   },
103641	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
103642	//   "request": {
103643	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
103644	//   },
103645	//   "response": {
103646	//     "$ref": "Operation"
103647	//   },
103648	//   "scopes": [
103649	//     "https://www.googleapis.com/auth/cloud-platform",
103650	//     "https://www.googleapis.com/auth/compute"
103651	//   ]
103652	// }
103653
103654}
103655
103656// method id "compute.networkEndpointGroups.delete":
103657
103658type NetworkEndpointGroupsDeleteCall struct {
103659	s                    *Service
103660	project              string
103661	zone                 string
103662	networkEndpointGroup string
103663	urlParams_           gensupport.URLParams
103664	ctx_                 context.Context
103665	header_              http.Header
103666}
103667
103668// Delete: Deletes the specified network endpoint group. The network
103669// endpoints in the NEG and the VM instances they belong to are not
103670// terminated when the NEG is deleted. Note that the NEG cannot be
103671// deleted if there are backend services referencing it.
103672func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
103673	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103674	c.project = project
103675	c.zone = zone
103676	c.networkEndpointGroup = networkEndpointGroup
103677	return c
103678}
103679
103680// RequestId sets the optional parameter "requestId": An optional
103681// request ID to identify requests. Specify a unique request ID so that
103682// if you must retry your request, the server will know to ignore the
103683// request if it has already been completed.
103684//
103685// For example, consider a situation where you make an initial request
103686// and the request times out. If you make the request again with the
103687// same request ID, the server can check if original operation with the
103688// same request ID was received, and if so, will ignore the second
103689// request. This prevents clients from accidentally creating duplicate
103690// commitments.
103691//
103692// The request ID must be a valid UUID with the exception that zero UUID
103693// is not supported (00000000-0000-0000-0000-000000000000).
103694func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
103695	c.urlParams_.Set("requestId", requestId)
103696	return c
103697}
103698
103699// Fields allows partial responses to be retrieved. See
103700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103701// for more information.
103702func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
103703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103704	return c
103705}
103706
103707// Context sets the context to be used in this call's Do method. Any
103708// pending HTTP request will be aborted if the provided context is
103709// canceled.
103710func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
103711	c.ctx_ = ctx
103712	return c
103713}
103714
103715// Header returns an http.Header that can be modified by the caller to
103716// add HTTP headers to the request.
103717func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
103718	if c.header_ == nil {
103719		c.header_ = make(http.Header)
103720	}
103721	return c.header_
103722}
103723
103724func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
103725	reqHeaders := make(http.Header)
103726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
103727	for k, v := range c.header_ {
103728		reqHeaders[k] = v
103729	}
103730	reqHeaders.Set("User-Agent", c.s.userAgent())
103731	var body io.Reader = nil
103732	c.urlParams_.Set("alt", alt)
103733	c.urlParams_.Set("prettyPrint", "false")
103734	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
103735	urls += "?" + c.urlParams_.Encode()
103736	req, err := http.NewRequest("DELETE", urls, body)
103737	if err != nil {
103738		return nil, err
103739	}
103740	req.Header = reqHeaders
103741	googleapi.Expand(req.URL, map[string]string{
103742		"project":              c.project,
103743		"zone":                 c.zone,
103744		"networkEndpointGroup": c.networkEndpointGroup,
103745	})
103746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103747}
103748
103749// Do executes the "compute.networkEndpointGroups.delete" call.
103750// Exactly one of *Operation or error will be non-nil. Any non-2xx
103751// status code is an error. Response headers are in either
103752// *Operation.ServerResponse.Header or (if a response was returned at
103753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103754// to check whether the returned error was because
103755// http.StatusNotModified was returned.
103756func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103757	gensupport.SetOptions(c.urlParams_, opts...)
103758	res, err := c.doRequest("json")
103759	if res != nil && res.StatusCode == http.StatusNotModified {
103760		if res.Body != nil {
103761			res.Body.Close()
103762		}
103763		return nil, &googleapi.Error{
103764			Code:   res.StatusCode,
103765			Header: res.Header,
103766		}
103767	}
103768	if err != nil {
103769		return nil, err
103770	}
103771	defer googleapi.CloseBody(res)
103772	if err := googleapi.CheckResponse(res); err != nil {
103773		return nil, err
103774	}
103775	ret := &Operation{
103776		ServerResponse: googleapi.ServerResponse{
103777			Header:         res.Header,
103778			HTTPStatusCode: res.StatusCode,
103779		},
103780	}
103781	target := &ret
103782	if err := gensupport.DecodeResponse(target, res); err != nil {
103783		return nil, err
103784	}
103785	return ret, nil
103786	// {
103787	//   "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.",
103788	//   "httpMethod": "DELETE",
103789	//   "id": "compute.networkEndpointGroups.delete",
103790	//   "parameterOrder": [
103791	//     "project",
103792	//     "zone",
103793	//     "networkEndpointGroup"
103794	//   ],
103795	//   "parameters": {
103796	//     "networkEndpointGroup": {
103797	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
103798	//       "location": "path",
103799	//       "required": true,
103800	//       "type": "string"
103801	//     },
103802	//     "project": {
103803	//       "description": "Project ID for this request.",
103804	//       "location": "path",
103805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103806	//       "required": true,
103807	//       "type": "string"
103808	//     },
103809	//     "requestId": {
103810	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103811	//       "location": "query",
103812	//       "type": "string"
103813	//     },
103814	//     "zone": {
103815	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
103816	//       "location": "path",
103817	//       "required": true,
103818	//       "type": "string"
103819	//     }
103820	//   },
103821	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
103822	//   "response": {
103823	//     "$ref": "Operation"
103824	//   },
103825	//   "scopes": [
103826	//     "https://www.googleapis.com/auth/cloud-platform",
103827	//     "https://www.googleapis.com/auth/compute"
103828	//   ]
103829	// }
103830
103831}
103832
103833// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
103834
103835type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
103836	s                                           *Service
103837	project                                     string
103838	zone                                        string
103839	networkEndpointGroup                        string
103840	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
103841	urlParams_                                  gensupport.URLParams
103842	ctx_                                        context.Context
103843	header_                                     http.Header
103844}
103845
103846// DetachNetworkEndpoints: Detach a list of network endpoints from the
103847// specified network endpoint group.
103848func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
103849	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103850	c.project = project
103851	c.zone = zone
103852	c.networkEndpointGroup = networkEndpointGroup
103853	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
103854	return c
103855}
103856
103857// RequestId sets the optional parameter "requestId": An optional
103858// request ID to identify requests. Specify a unique request ID so that
103859// if you must retry your request, the server will know to ignore the
103860// request if it has already been completed.
103861//
103862// For example, consider a situation where you make an initial request
103863// and the request times out. If you make the request again with the
103864// same request ID, the server can check if original operation with the
103865// same request ID was received, and if so, will ignore the second
103866// request. This prevents clients from accidentally creating duplicate
103867// commitments.
103868//
103869// The request ID must be a valid UUID with the exception that zero UUID
103870// is not supported (00000000-0000-0000-0000-000000000000).
103871func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
103872	c.urlParams_.Set("requestId", requestId)
103873	return c
103874}
103875
103876// Fields allows partial responses to be retrieved. See
103877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103878// for more information.
103879func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
103880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103881	return c
103882}
103883
103884// Context sets the context to be used in this call's Do method. Any
103885// pending HTTP request will be aborted if the provided context is
103886// canceled.
103887func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
103888	c.ctx_ = ctx
103889	return c
103890}
103891
103892// Header returns an http.Header that can be modified by the caller to
103893// add HTTP headers to the request.
103894func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
103895	if c.header_ == nil {
103896		c.header_ = make(http.Header)
103897	}
103898	return c.header_
103899}
103900
103901func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
103902	reqHeaders := make(http.Header)
103903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
103904	for k, v := range c.header_ {
103905		reqHeaders[k] = v
103906	}
103907	reqHeaders.Set("User-Agent", c.s.userAgent())
103908	var body io.Reader = nil
103909	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
103910	if err != nil {
103911		return nil, err
103912	}
103913	reqHeaders.Set("Content-Type", "application/json")
103914	c.urlParams_.Set("alt", alt)
103915	c.urlParams_.Set("prettyPrint", "false")
103916	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
103917	urls += "?" + c.urlParams_.Encode()
103918	req, err := http.NewRequest("POST", urls, body)
103919	if err != nil {
103920		return nil, err
103921	}
103922	req.Header = reqHeaders
103923	googleapi.Expand(req.URL, map[string]string{
103924		"project":              c.project,
103925		"zone":                 c.zone,
103926		"networkEndpointGroup": c.networkEndpointGroup,
103927	})
103928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103929}
103930
103931// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
103932// Exactly one of *Operation or error will be non-nil. Any non-2xx
103933// status code is an error. Response headers are in either
103934// *Operation.ServerResponse.Header or (if a response was returned at
103935// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103936// to check whether the returned error was because
103937// http.StatusNotModified was returned.
103938func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103939	gensupport.SetOptions(c.urlParams_, opts...)
103940	res, err := c.doRequest("json")
103941	if res != nil && res.StatusCode == http.StatusNotModified {
103942		if res.Body != nil {
103943			res.Body.Close()
103944		}
103945		return nil, &googleapi.Error{
103946			Code:   res.StatusCode,
103947			Header: res.Header,
103948		}
103949	}
103950	if err != nil {
103951		return nil, err
103952	}
103953	defer googleapi.CloseBody(res)
103954	if err := googleapi.CheckResponse(res); err != nil {
103955		return nil, err
103956	}
103957	ret := &Operation{
103958		ServerResponse: googleapi.ServerResponse{
103959			Header:         res.Header,
103960			HTTPStatusCode: res.StatusCode,
103961		},
103962	}
103963	target := &ret
103964	if err := gensupport.DecodeResponse(target, res); err != nil {
103965		return nil, err
103966	}
103967	return ret, nil
103968	// {
103969	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
103970	//   "httpMethod": "POST",
103971	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
103972	//   "parameterOrder": [
103973	//     "project",
103974	//     "zone",
103975	//     "networkEndpointGroup"
103976	//   ],
103977	//   "parameters": {
103978	//     "networkEndpointGroup": {
103979	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
103980	//       "location": "path",
103981	//       "required": true,
103982	//       "type": "string"
103983	//     },
103984	//     "project": {
103985	//       "description": "Project ID for this request.",
103986	//       "location": "path",
103987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103988	//       "required": true,
103989	//       "type": "string"
103990	//     },
103991	//     "requestId": {
103992	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103993	//       "location": "query",
103994	//       "type": "string"
103995	//     },
103996	//     "zone": {
103997	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
103998	//       "location": "path",
103999	//       "required": true,
104000	//       "type": "string"
104001	//     }
104002	//   },
104003	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
104004	//   "request": {
104005	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
104006	//   },
104007	//   "response": {
104008	//     "$ref": "Operation"
104009	//   },
104010	//   "scopes": [
104011	//     "https://www.googleapis.com/auth/cloud-platform",
104012	//     "https://www.googleapis.com/auth/compute"
104013	//   ]
104014	// }
104015
104016}
104017
104018// method id "compute.networkEndpointGroups.get":
104019
104020type NetworkEndpointGroupsGetCall struct {
104021	s                    *Service
104022	project              string
104023	zone                 string
104024	networkEndpointGroup string
104025	urlParams_           gensupport.URLParams
104026	ifNoneMatch_         string
104027	ctx_                 context.Context
104028	header_              http.Header
104029}
104030
104031// Get: Returns the specified network endpoint group. Gets a list of
104032// available network endpoint groups by making a list() request.
104033func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
104034	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104035	c.project = project
104036	c.zone = zone
104037	c.networkEndpointGroup = networkEndpointGroup
104038	return c
104039}
104040
104041// Fields allows partial responses to be retrieved. See
104042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104043// for more information.
104044func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
104045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104046	return c
104047}
104048
104049// IfNoneMatch sets the optional parameter which makes the operation
104050// fail if the object's ETag matches the given value. This is useful for
104051// getting updates only after the object has changed since the last
104052// request. Use googleapi.IsNotModified to check whether the response
104053// error from Do is the result of In-None-Match.
104054func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
104055	c.ifNoneMatch_ = entityTag
104056	return c
104057}
104058
104059// Context sets the context to be used in this call's Do method. Any
104060// pending HTTP request will be aborted if the provided context is
104061// canceled.
104062func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
104063	c.ctx_ = ctx
104064	return c
104065}
104066
104067// Header returns an http.Header that can be modified by the caller to
104068// add HTTP headers to the request.
104069func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
104070	if c.header_ == nil {
104071		c.header_ = make(http.Header)
104072	}
104073	return c.header_
104074}
104075
104076func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
104077	reqHeaders := make(http.Header)
104078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
104079	for k, v := range c.header_ {
104080		reqHeaders[k] = v
104081	}
104082	reqHeaders.Set("User-Agent", c.s.userAgent())
104083	if c.ifNoneMatch_ != "" {
104084		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104085	}
104086	var body io.Reader = nil
104087	c.urlParams_.Set("alt", alt)
104088	c.urlParams_.Set("prettyPrint", "false")
104089	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
104090	urls += "?" + c.urlParams_.Encode()
104091	req, err := http.NewRequest("GET", urls, body)
104092	if err != nil {
104093		return nil, err
104094	}
104095	req.Header = reqHeaders
104096	googleapi.Expand(req.URL, map[string]string{
104097		"project":              c.project,
104098		"zone":                 c.zone,
104099		"networkEndpointGroup": c.networkEndpointGroup,
104100	})
104101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104102}
104103
104104// Do executes the "compute.networkEndpointGroups.get" call.
104105// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
104106// non-2xx status code is an error. Response headers are in either
104107// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
104108// returned at all) in error.(*googleapi.Error).Header. Use
104109// googleapi.IsNotModified to check whether the returned error was
104110// because http.StatusNotModified was returned.
104111func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
104112	gensupport.SetOptions(c.urlParams_, opts...)
104113	res, err := c.doRequest("json")
104114	if res != nil && res.StatusCode == http.StatusNotModified {
104115		if res.Body != nil {
104116			res.Body.Close()
104117		}
104118		return nil, &googleapi.Error{
104119			Code:   res.StatusCode,
104120			Header: res.Header,
104121		}
104122	}
104123	if err != nil {
104124		return nil, err
104125	}
104126	defer googleapi.CloseBody(res)
104127	if err := googleapi.CheckResponse(res); err != nil {
104128		return nil, err
104129	}
104130	ret := &NetworkEndpointGroup{
104131		ServerResponse: googleapi.ServerResponse{
104132			Header:         res.Header,
104133			HTTPStatusCode: res.StatusCode,
104134		},
104135	}
104136	target := &ret
104137	if err := gensupport.DecodeResponse(target, res); err != nil {
104138		return nil, err
104139	}
104140	return ret, nil
104141	// {
104142	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
104143	//   "httpMethod": "GET",
104144	//   "id": "compute.networkEndpointGroups.get",
104145	//   "parameterOrder": [
104146	//     "project",
104147	//     "zone",
104148	//     "networkEndpointGroup"
104149	//   ],
104150	//   "parameters": {
104151	//     "networkEndpointGroup": {
104152	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
104153	//       "location": "path",
104154	//       "required": true,
104155	//       "type": "string"
104156	//     },
104157	//     "project": {
104158	//       "description": "Project ID for this request.",
104159	//       "location": "path",
104160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104161	//       "required": true,
104162	//       "type": "string"
104163	//     },
104164	//     "zone": {
104165	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
104166	//       "location": "path",
104167	//       "required": true,
104168	//       "type": "string"
104169	//     }
104170	//   },
104171	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
104172	//   "response": {
104173	//     "$ref": "NetworkEndpointGroup"
104174	//   },
104175	//   "scopes": [
104176	//     "https://www.googleapis.com/auth/cloud-platform",
104177	//     "https://www.googleapis.com/auth/compute",
104178	//     "https://www.googleapis.com/auth/compute.readonly"
104179	//   ]
104180	// }
104181
104182}
104183
104184// method id "compute.networkEndpointGroups.insert":
104185
104186type NetworkEndpointGroupsInsertCall struct {
104187	s                    *Service
104188	project              string
104189	zone                 string
104190	networkendpointgroup *NetworkEndpointGroup
104191	urlParams_           gensupport.URLParams
104192	ctx_                 context.Context
104193	header_              http.Header
104194}
104195
104196// Insert: Creates a network endpoint group in the specified project
104197// using the parameters that are included in the request.
104198func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
104199	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104200	c.project = project
104201	c.zone = zone
104202	c.networkendpointgroup = networkendpointgroup
104203	return c
104204}
104205
104206// RequestId sets the optional parameter "requestId": An optional
104207// request ID to identify requests. Specify a unique request ID so that
104208// if you must retry your request, the server will know to ignore the
104209// request if it has already been completed.
104210//
104211// For example, consider a situation where you make an initial request
104212// and the request times out. If you make the request again with the
104213// same request ID, the server can check if original operation with the
104214// same request ID was received, and if so, will ignore the second
104215// request. This prevents clients from accidentally creating duplicate
104216// commitments.
104217//
104218// The request ID must be a valid UUID with the exception that zero UUID
104219// is not supported (00000000-0000-0000-0000-000000000000).
104220func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
104221	c.urlParams_.Set("requestId", requestId)
104222	return c
104223}
104224
104225// Fields allows partial responses to be retrieved. See
104226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104227// for more information.
104228func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
104229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104230	return c
104231}
104232
104233// Context sets the context to be used in this call's Do method. Any
104234// pending HTTP request will be aborted if the provided context is
104235// canceled.
104236func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
104237	c.ctx_ = ctx
104238	return c
104239}
104240
104241// Header returns an http.Header that can be modified by the caller to
104242// add HTTP headers to the request.
104243func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
104244	if c.header_ == nil {
104245		c.header_ = make(http.Header)
104246	}
104247	return c.header_
104248}
104249
104250func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
104251	reqHeaders := make(http.Header)
104252	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
104253	for k, v := range c.header_ {
104254		reqHeaders[k] = v
104255	}
104256	reqHeaders.Set("User-Agent", c.s.userAgent())
104257	var body io.Reader = nil
104258	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
104259	if err != nil {
104260		return nil, err
104261	}
104262	reqHeaders.Set("Content-Type", "application/json")
104263	c.urlParams_.Set("alt", alt)
104264	c.urlParams_.Set("prettyPrint", "false")
104265	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
104266	urls += "?" + c.urlParams_.Encode()
104267	req, err := http.NewRequest("POST", urls, body)
104268	if err != nil {
104269		return nil, err
104270	}
104271	req.Header = reqHeaders
104272	googleapi.Expand(req.URL, map[string]string{
104273		"project": c.project,
104274		"zone":    c.zone,
104275	})
104276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104277}
104278
104279// Do executes the "compute.networkEndpointGroups.insert" call.
104280// Exactly one of *Operation or error will be non-nil. Any non-2xx
104281// status code is an error. Response headers are in either
104282// *Operation.ServerResponse.Header or (if a response was returned at
104283// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104284// to check whether the returned error was because
104285// http.StatusNotModified was returned.
104286func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104287	gensupport.SetOptions(c.urlParams_, opts...)
104288	res, err := c.doRequest("json")
104289	if res != nil && res.StatusCode == http.StatusNotModified {
104290		if res.Body != nil {
104291			res.Body.Close()
104292		}
104293		return nil, &googleapi.Error{
104294			Code:   res.StatusCode,
104295			Header: res.Header,
104296		}
104297	}
104298	if err != nil {
104299		return nil, err
104300	}
104301	defer googleapi.CloseBody(res)
104302	if err := googleapi.CheckResponse(res); err != nil {
104303		return nil, err
104304	}
104305	ret := &Operation{
104306		ServerResponse: googleapi.ServerResponse{
104307			Header:         res.Header,
104308			HTTPStatusCode: res.StatusCode,
104309		},
104310	}
104311	target := &ret
104312	if err := gensupport.DecodeResponse(target, res); err != nil {
104313		return nil, err
104314	}
104315	return ret, nil
104316	// {
104317	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
104318	//   "httpMethod": "POST",
104319	//   "id": "compute.networkEndpointGroups.insert",
104320	//   "parameterOrder": [
104321	//     "project",
104322	//     "zone"
104323	//   ],
104324	//   "parameters": {
104325	//     "project": {
104326	//       "description": "Project ID for this request.",
104327	//       "location": "path",
104328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104329	//       "required": true,
104330	//       "type": "string"
104331	//     },
104332	//     "requestId": {
104333	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104334	//       "location": "query",
104335	//       "type": "string"
104336	//     },
104337	//     "zone": {
104338	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
104339	//       "location": "path",
104340	//       "required": true,
104341	//       "type": "string"
104342	//     }
104343	//   },
104344	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
104345	//   "request": {
104346	//     "$ref": "NetworkEndpointGroup"
104347	//   },
104348	//   "response": {
104349	//     "$ref": "Operation"
104350	//   },
104351	//   "scopes": [
104352	//     "https://www.googleapis.com/auth/cloud-platform",
104353	//     "https://www.googleapis.com/auth/compute"
104354	//   ]
104355	// }
104356
104357}
104358
104359// method id "compute.networkEndpointGroups.list":
104360
104361type NetworkEndpointGroupsListCall struct {
104362	s            *Service
104363	project      string
104364	zone         string
104365	urlParams_   gensupport.URLParams
104366	ifNoneMatch_ string
104367	ctx_         context.Context
104368	header_      http.Header
104369}
104370
104371// List: Retrieves the list of network endpoint groups that are located
104372// in the specified project and zone.
104373func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
104374	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104375	c.project = project
104376	c.zone = zone
104377	return c
104378}
104379
104380// Filter sets the optional parameter "filter": A filter expression that
104381// filters resources listed in the response. The expression must specify
104382// the field name, a comparison operator, and the value that you want to
104383// use for filtering. The value must be a string, a number, or a
104384// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104385// `<`.
104386//
104387// For example, if you are filtering Compute Engine instances, you can
104388// exclude instances named `example-instance` by specifying `name !=
104389// example-instance`.
104390//
104391// You can also filter nested fields. For example, you could specify
104392// `scheduling.automaticRestart = false` to include instances only if
104393// they are not scheduled for automatic restarts. You can use filtering
104394// on nested fields to filter based on resource labels.
104395//
104396// To filter on multiple expressions, provide each separate expression
104397// within parentheses. For example: ``` (scheduling.automaticRestart =
104398// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
104399// is an `AND` expression. However, you can include `AND` and `OR`
104400// expressions explicitly. For example: ``` (cpuPlatform = "Intel
104401// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
104402// (scheduling.automaticRestart = true) ```
104403func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
104404	c.urlParams_.Set("filter", filter)
104405	return c
104406}
104407
104408// MaxResults sets the optional parameter "maxResults": The maximum
104409// number of results per page that should be returned. If the number of
104410// available results is larger than `maxResults`, Compute Engine returns
104411// a `nextPageToken` that can be used to get the next page of results in
104412// subsequent list requests. Acceptable values are `0` to `500`,
104413// inclusive. (Default: `500`)
104414func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
104415	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104416	return c
104417}
104418
104419// OrderBy sets the optional parameter "orderBy": Sorts list results by
104420// a certain order. By default, results are returned in alphanumerical
104421// order based on the resource name.
104422//
104423// You can also sort results in descending order based on the creation
104424// timestamp using `orderBy="creationTimestamp desc". This sorts
104425// results based on the `creationTimestamp` field in reverse
104426// chronological order (newest result first). Use this to sort resources
104427// like operations so that the newest operation is returned
104428// first.
104429//
104430// Currently, only sorting by `name` or `creationTimestamp desc` is
104431// supported.
104432func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
104433	c.urlParams_.Set("orderBy", orderBy)
104434	return c
104435}
104436
104437// PageToken sets the optional parameter "pageToken": Specifies a page
104438// token to use. Set `pageToken` to the `nextPageToken` returned by a
104439// previous list request to get the next page of results.
104440func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
104441	c.urlParams_.Set("pageToken", pageToken)
104442	return c
104443}
104444
104445// ReturnPartialSuccess sets the optional parameter
104446// "returnPartialSuccess": Opt-in for partial success behavior which
104447// provides partial results in case of failure. The default value is
104448// false and the logic is the same as today.
104449func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall {
104450	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104451	return c
104452}
104453
104454// Fields allows partial responses to be retrieved. See
104455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104456// for more information.
104457func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
104458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104459	return c
104460}
104461
104462// IfNoneMatch sets the optional parameter which makes the operation
104463// fail if the object's ETag matches the given value. This is useful for
104464// getting updates only after the object has changed since the last
104465// request. Use googleapi.IsNotModified to check whether the response
104466// error from Do is the result of In-None-Match.
104467func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
104468	c.ifNoneMatch_ = entityTag
104469	return c
104470}
104471
104472// Context sets the context to be used in this call's Do method. Any
104473// pending HTTP request will be aborted if the provided context is
104474// canceled.
104475func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
104476	c.ctx_ = ctx
104477	return c
104478}
104479
104480// Header returns an http.Header that can be modified by the caller to
104481// add HTTP headers to the request.
104482func (c *NetworkEndpointGroupsListCall) Header() http.Header {
104483	if c.header_ == nil {
104484		c.header_ = make(http.Header)
104485	}
104486	return c.header_
104487}
104488
104489func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
104490	reqHeaders := make(http.Header)
104491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
104492	for k, v := range c.header_ {
104493		reqHeaders[k] = v
104494	}
104495	reqHeaders.Set("User-Agent", c.s.userAgent())
104496	if c.ifNoneMatch_ != "" {
104497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104498	}
104499	var body io.Reader = nil
104500	c.urlParams_.Set("alt", alt)
104501	c.urlParams_.Set("prettyPrint", "false")
104502	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
104503	urls += "?" + c.urlParams_.Encode()
104504	req, err := http.NewRequest("GET", urls, body)
104505	if err != nil {
104506		return nil, err
104507	}
104508	req.Header = reqHeaders
104509	googleapi.Expand(req.URL, map[string]string{
104510		"project": c.project,
104511		"zone":    c.zone,
104512	})
104513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104514}
104515
104516// Do executes the "compute.networkEndpointGroups.list" call.
104517// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
104518// Any non-2xx status code is an error. Response headers are in either
104519// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
104520// returned at all) in error.(*googleapi.Error).Header. Use
104521// googleapi.IsNotModified to check whether the returned error was
104522// because http.StatusNotModified was returned.
104523func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
104524	gensupport.SetOptions(c.urlParams_, opts...)
104525	res, err := c.doRequest("json")
104526	if res != nil && res.StatusCode == http.StatusNotModified {
104527		if res.Body != nil {
104528			res.Body.Close()
104529		}
104530		return nil, &googleapi.Error{
104531			Code:   res.StatusCode,
104532			Header: res.Header,
104533		}
104534	}
104535	if err != nil {
104536		return nil, err
104537	}
104538	defer googleapi.CloseBody(res)
104539	if err := googleapi.CheckResponse(res); err != nil {
104540		return nil, err
104541	}
104542	ret := &NetworkEndpointGroupList{
104543		ServerResponse: googleapi.ServerResponse{
104544			Header:         res.Header,
104545			HTTPStatusCode: res.StatusCode,
104546		},
104547	}
104548	target := &ret
104549	if err := gensupport.DecodeResponse(target, res); err != nil {
104550		return nil, err
104551	}
104552	return ret, nil
104553	// {
104554	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
104555	//   "httpMethod": "GET",
104556	//   "id": "compute.networkEndpointGroups.list",
104557	//   "parameterOrder": [
104558	//     "project",
104559	//     "zone"
104560	//   ],
104561	//   "parameters": {
104562	//     "filter": {
104563	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
104564	//       "location": "query",
104565	//       "type": "string"
104566	//     },
104567	//     "maxResults": {
104568	//       "default": "500",
104569	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104570	//       "format": "uint32",
104571	//       "location": "query",
104572	//       "minimum": "0",
104573	//       "type": "integer"
104574	//     },
104575	//     "orderBy": {
104576	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
104577	//       "location": "query",
104578	//       "type": "string"
104579	//     },
104580	//     "pageToken": {
104581	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104582	//       "location": "query",
104583	//       "type": "string"
104584	//     },
104585	//     "project": {
104586	//       "description": "Project ID for this request.",
104587	//       "location": "path",
104588	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104589	//       "required": true,
104590	//       "type": "string"
104591	//     },
104592	//     "returnPartialSuccess": {
104593	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
104594	//       "location": "query",
104595	//       "type": "boolean"
104596	//     },
104597	//     "zone": {
104598	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
104599	//       "location": "path",
104600	//       "required": true,
104601	//       "type": "string"
104602	//     }
104603	//   },
104604	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
104605	//   "response": {
104606	//     "$ref": "NetworkEndpointGroupList"
104607	//   },
104608	//   "scopes": [
104609	//     "https://www.googleapis.com/auth/cloud-platform",
104610	//     "https://www.googleapis.com/auth/compute",
104611	//     "https://www.googleapis.com/auth/compute.readonly"
104612	//   ]
104613	// }
104614
104615}
104616
104617// Pages invokes f for each page of results.
104618// A non-nil error returned from f will halt the iteration.
104619// The provided context supersedes any context provided to the Context method.
104620func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
104621	c.ctx_ = ctx
104622	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104623	for {
104624		x, err := c.Do()
104625		if err != nil {
104626			return err
104627		}
104628		if err := f(x); err != nil {
104629			return err
104630		}
104631		if x.NextPageToken == "" {
104632			return nil
104633		}
104634		c.PageToken(x.NextPageToken)
104635	}
104636}
104637
104638// method id "compute.networkEndpointGroups.listNetworkEndpoints":
104639
104640type NetworkEndpointGroupsListNetworkEndpointsCall struct {
104641	s                                         *Service
104642	project                                   string
104643	zone                                      string
104644	networkEndpointGroup                      string
104645	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
104646	urlParams_                                gensupport.URLParams
104647	ctx_                                      context.Context
104648	header_                                   http.Header
104649}
104650
104651// ListNetworkEndpoints: Lists the network endpoints in the specified
104652// network endpoint group.
104653func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
104654	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104655	c.project = project
104656	c.zone = zone
104657	c.networkEndpointGroup = networkEndpointGroup
104658	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
104659	return c
104660}
104661
104662// Filter sets the optional parameter "filter": A filter expression that
104663// filters resources listed in the response. The expression must specify
104664// the field name, a comparison operator, and the value that you want to
104665// use for filtering. The value must be a string, a number, or a
104666// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104667// `<`.
104668//
104669// For example, if you are filtering Compute Engine instances, you can
104670// exclude instances named `example-instance` by specifying `name !=
104671// example-instance`.
104672//
104673// You can also filter nested fields. For example, you could specify
104674// `scheduling.automaticRestart = false` to include instances only if
104675// they are not scheduled for automatic restarts. You can use filtering
104676// on nested fields to filter based on resource labels.
104677//
104678// To filter on multiple expressions, provide each separate expression
104679// within parentheses. For example: ``` (scheduling.automaticRestart =
104680// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
104681// is an `AND` expression. However, you can include `AND` and `OR`
104682// expressions explicitly. For example: ``` (cpuPlatform = "Intel
104683// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
104684// (scheduling.automaticRestart = true) ```
104685func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
104686	c.urlParams_.Set("filter", filter)
104687	return c
104688}
104689
104690// MaxResults sets the optional parameter "maxResults": The maximum
104691// number of results per page that should be returned. If the number of
104692// available results is larger than `maxResults`, Compute Engine returns
104693// a `nextPageToken` that can be used to get the next page of results in
104694// subsequent list requests. Acceptable values are `0` to `500`,
104695// inclusive. (Default: `500`)
104696func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
104697	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104698	return c
104699}
104700
104701// OrderBy sets the optional parameter "orderBy": Sorts list results by
104702// a certain order. By default, results are returned in alphanumerical
104703// order based on the resource name.
104704//
104705// You can also sort results in descending order based on the creation
104706// timestamp using `orderBy="creationTimestamp desc". This sorts
104707// results based on the `creationTimestamp` field in reverse
104708// chronological order (newest result first). Use this to sort resources
104709// like operations so that the newest operation is returned
104710// first.
104711//
104712// Currently, only sorting by `name` or `creationTimestamp desc` is
104713// supported.
104714func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
104715	c.urlParams_.Set("orderBy", orderBy)
104716	return c
104717}
104718
104719// PageToken sets the optional parameter "pageToken": Specifies a page
104720// token to use. Set `pageToken` to the `nextPageToken` returned by a
104721// previous list request to get the next page of results.
104722func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
104723	c.urlParams_.Set("pageToken", pageToken)
104724	return c
104725}
104726
104727// ReturnPartialSuccess sets the optional parameter
104728// "returnPartialSuccess": Opt-in for partial success behavior which
104729// provides partial results in case of failure. The default value is
104730// false and the logic is the same as today.
104731func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall {
104732	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104733	return c
104734}
104735
104736// Fields allows partial responses to be retrieved. See
104737// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104738// for more information.
104739func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
104740	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104741	return c
104742}
104743
104744// Context sets the context to be used in this call's Do method. Any
104745// pending HTTP request will be aborted if the provided context is
104746// canceled.
104747func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
104748	c.ctx_ = ctx
104749	return c
104750}
104751
104752// Header returns an http.Header that can be modified by the caller to
104753// add HTTP headers to the request.
104754func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
104755	if c.header_ == nil {
104756		c.header_ = make(http.Header)
104757	}
104758	return c.header_
104759}
104760
104761func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
104762	reqHeaders := make(http.Header)
104763	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
104764	for k, v := range c.header_ {
104765		reqHeaders[k] = v
104766	}
104767	reqHeaders.Set("User-Agent", c.s.userAgent())
104768	var body io.Reader = nil
104769	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
104770	if err != nil {
104771		return nil, err
104772	}
104773	reqHeaders.Set("Content-Type", "application/json")
104774	c.urlParams_.Set("alt", alt)
104775	c.urlParams_.Set("prettyPrint", "false")
104776	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
104777	urls += "?" + c.urlParams_.Encode()
104778	req, err := http.NewRequest("POST", urls, body)
104779	if err != nil {
104780		return nil, err
104781	}
104782	req.Header = reqHeaders
104783	googleapi.Expand(req.URL, map[string]string{
104784		"project":              c.project,
104785		"zone":                 c.zone,
104786		"networkEndpointGroup": c.networkEndpointGroup,
104787	})
104788	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104789}
104790
104791// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
104792// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
104793// will be non-nil. Any non-2xx status code is an error. Response
104794// headers are in either
104795// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
104796// (if a response was returned at all) in
104797// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
104798// whether the returned error was because http.StatusNotModified was
104799// returned.
104800func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
104801	gensupport.SetOptions(c.urlParams_, opts...)
104802	res, err := c.doRequest("json")
104803	if res != nil && res.StatusCode == http.StatusNotModified {
104804		if res.Body != nil {
104805			res.Body.Close()
104806		}
104807		return nil, &googleapi.Error{
104808			Code:   res.StatusCode,
104809			Header: res.Header,
104810		}
104811	}
104812	if err != nil {
104813		return nil, err
104814	}
104815	defer googleapi.CloseBody(res)
104816	if err := googleapi.CheckResponse(res); err != nil {
104817		return nil, err
104818	}
104819	ret := &NetworkEndpointGroupsListNetworkEndpoints{
104820		ServerResponse: googleapi.ServerResponse{
104821			Header:         res.Header,
104822			HTTPStatusCode: res.StatusCode,
104823		},
104824	}
104825	target := &ret
104826	if err := gensupport.DecodeResponse(target, res); err != nil {
104827		return nil, err
104828	}
104829	return ret, nil
104830	// {
104831	//   "description": "Lists the network endpoints in the specified network endpoint group.",
104832	//   "httpMethod": "POST",
104833	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
104834	//   "parameterOrder": [
104835	//     "project",
104836	//     "zone",
104837	//     "networkEndpointGroup"
104838	//   ],
104839	//   "parameters": {
104840	//     "filter": {
104841	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
104842	//       "location": "query",
104843	//       "type": "string"
104844	//     },
104845	//     "maxResults": {
104846	//       "default": "500",
104847	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104848	//       "format": "uint32",
104849	//       "location": "query",
104850	//       "minimum": "0",
104851	//       "type": "integer"
104852	//     },
104853	//     "networkEndpointGroup": {
104854	//       "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.",
104855	//       "location": "path",
104856	//       "required": true,
104857	//       "type": "string"
104858	//     },
104859	//     "orderBy": {
104860	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
104861	//       "location": "query",
104862	//       "type": "string"
104863	//     },
104864	//     "pageToken": {
104865	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104866	//       "location": "query",
104867	//       "type": "string"
104868	//     },
104869	//     "project": {
104870	//       "description": "Project ID for this request.",
104871	//       "location": "path",
104872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104873	//       "required": true,
104874	//       "type": "string"
104875	//     },
104876	//     "returnPartialSuccess": {
104877	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
104878	//       "location": "query",
104879	//       "type": "boolean"
104880	//     },
104881	//     "zone": {
104882	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
104883	//       "location": "path",
104884	//       "required": true,
104885	//       "type": "string"
104886	//     }
104887	//   },
104888	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
104889	//   "request": {
104890	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
104891	//   },
104892	//   "response": {
104893	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
104894	//   },
104895	//   "scopes": [
104896	//     "https://www.googleapis.com/auth/cloud-platform",
104897	//     "https://www.googleapis.com/auth/compute",
104898	//     "https://www.googleapis.com/auth/compute.readonly"
104899	//   ]
104900	// }
104901
104902}
104903
104904// Pages invokes f for each page of results.
104905// A non-nil error returned from f will halt the iteration.
104906// The provided context supersedes any context provided to the Context method.
104907func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
104908	c.ctx_ = ctx
104909	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104910	for {
104911		x, err := c.Do()
104912		if err != nil {
104913			return err
104914		}
104915		if err := f(x); err != nil {
104916			return err
104917		}
104918		if x.NextPageToken == "" {
104919			return nil
104920		}
104921		c.PageToken(x.NextPageToken)
104922	}
104923}
104924
104925// method id "compute.networkEndpointGroups.testIamPermissions":
104926
104927type NetworkEndpointGroupsTestIamPermissionsCall struct {
104928	s                      *Service
104929	project                string
104930	zone                   string
104931	resource               string
104932	testpermissionsrequest *TestPermissionsRequest
104933	urlParams_             gensupport.URLParams
104934	ctx_                   context.Context
104935	header_                http.Header
104936}
104937
104938// TestIamPermissions: Returns permissions that a caller has on the
104939// specified resource.
104940func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
104941	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104942	c.project = project
104943	c.zone = zone
104944	c.resource = resource
104945	c.testpermissionsrequest = testpermissionsrequest
104946	return c
104947}
104948
104949// Fields allows partial responses to be retrieved. See
104950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104951// for more information.
104952func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
104953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104954	return c
104955}
104956
104957// Context sets the context to be used in this call's Do method. Any
104958// pending HTTP request will be aborted if the provided context is
104959// canceled.
104960func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
104961	c.ctx_ = ctx
104962	return c
104963}
104964
104965// Header returns an http.Header that can be modified by the caller to
104966// add HTTP headers to the request.
104967func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
104968	if c.header_ == nil {
104969		c.header_ = make(http.Header)
104970	}
104971	return c.header_
104972}
104973
104974func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
104975	reqHeaders := make(http.Header)
104976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
104977	for k, v := range c.header_ {
104978		reqHeaders[k] = v
104979	}
104980	reqHeaders.Set("User-Agent", c.s.userAgent())
104981	var body io.Reader = nil
104982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
104983	if err != nil {
104984		return nil, err
104985	}
104986	reqHeaders.Set("Content-Type", "application/json")
104987	c.urlParams_.Set("alt", alt)
104988	c.urlParams_.Set("prettyPrint", "false")
104989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
104990	urls += "?" + c.urlParams_.Encode()
104991	req, err := http.NewRequest("POST", urls, body)
104992	if err != nil {
104993		return nil, err
104994	}
104995	req.Header = reqHeaders
104996	googleapi.Expand(req.URL, map[string]string{
104997		"project":  c.project,
104998		"zone":     c.zone,
104999		"resource": c.resource,
105000	})
105001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105002}
105003
105004// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
105005// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
105006// non-2xx status code is an error. Response headers are in either
105007// *TestPermissionsResponse.ServerResponse.Header or (if a response was
105008// returned at all) in error.(*googleapi.Error).Header. Use
105009// googleapi.IsNotModified to check whether the returned error was
105010// because http.StatusNotModified was returned.
105011func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
105012	gensupport.SetOptions(c.urlParams_, opts...)
105013	res, err := c.doRequest("json")
105014	if res != nil && res.StatusCode == http.StatusNotModified {
105015		if res.Body != nil {
105016			res.Body.Close()
105017		}
105018		return nil, &googleapi.Error{
105019			Code:   res.StatusCode,
105020			Header: res.Header,
105021		}
105022	}
105023	if err != nil {
105024		return nil, err
105025	}
105026	defer googleapi.CloseBody(res)
105027	if err := googleapi.CheckResponse(res); err != nil {
105028		return nil, err
105029	}
105030	ret := &TestPermissionsResponse{
105031		ServerResponse: googleapi.ServerResponse{
105032			Header:         res.Header,
105033			HTTPStatusCode: res.StatusCode,
105034		},
105035	}
105036	target := &ret
105037	if err := gensupport.DecodeResponse(target, res); err != nil {
105038		return nil, err
105039	}
105040	return ret, nil
105041	// {
105042	//   "description": "Returns permissions that a caller has on the specified resource.",
105043	//   "httpMethod": "POST",
105044	//   "id": "compute.networkEndpointGroups.testIamPermissions",
105045	//   "parameterOrder": [
105046	//     "project",
105047	//     "zone",
105048	//     "resource"
105049	//   ],
105050	//   "parameters": {
105051	//     "project": {
105052	//       "description": "Project ID for this request.",
105053	//       "location": "path",
105054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105055	//       "required": true,
105056	//       "type": "string"
105057	//     },
105058	//     "resource": {
105059	//       "description": "Name or id of the resource for this request.",
105060	//       "location": "path",
105061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105062	//       "required": true,
105063	//       "type": "string"
105064	//     },
105065	//     "zone": {
105066	//       "description": "The name of the zone for this request.",
105067	//       "location": "path",
105068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105069	//       "required": true,
105070	//       "type": "string"
105071	//     }
105072	//   },
105073	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
105074	//   "request": {
105075	//     "$ref": "TestPermissionsRequest"
105076	//   },
105077	//   "response": {
105078	//     "$ref": "TestPermissionsResponse"
105079	//   },
105080	//   "scopes": [
105081	//     "https://www.googleapis.com/auth/cloud-platform",
105082	//     "https://www.googleapis.com/auth/compute",
105083	//     "https://www.googleapis.com/auth/compute.readonly"
105084	//   ]
105085	// }
105086
105087}
105088
105089// method id "compute.networks.addPeering":
105090
105091type NetworksAddPeeringCall struct {
105092	s                         *Service
105093	project                   string
105094	network                   string
105095	networksaddpeeringrequest *NetworksAddPeeringRequest
105096	urlParams_                gensupport.URLParams
105097	ctx_                      context.Context
105098	header_                   http.Header
105099}
105100
105101// AddPeering: Adds a peering to the specified network.
105102func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
105103	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105104	c.project = project
105105	c.network = network
105106	c.networksaddpeeringrequest = networksaddpeeringrequest
105107	return c
105108}
105109
105110// RequestId sets the optional parameter "requestId": An optional
105111// request ID to identify requests. Specify a unique request ID so that
105112// if you must retry your request, the server will know to ignore the
105113// request if it has already been completed.
105114//
105115// For example, consider a situation where you make an initial request
105116// and the request times out. If you make the request again with the
105117// same request ID, the server can check if original operation with the
105118// same request ID was received, and if so, will ignore the second
105119// request. This prevents clients from accidentally creating duplicate
105120// commitments.
105121//
105122// The request ID must be a valid UUID with the exception that zero UUID
105123// is not supported (00000000-0000-0000-0000-000000000000).
105124func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
105125	c.urlParams_.Set("requestId", requestId)
105126	return c
105127}
105128
105129// Fields allows partial responses to be retrieved. See
105130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105131// for more information.
105132func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
105133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105134	return c
105135}
105136
105137// Context sets the context to be used in this call's Do method. Any
105138// pending HTTP request will be aborted if the provided context is
105139// canceled.
105140func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
105141	c.ctx_ = ctx
105142	return c
105143}
105144
105145// Header returns an http.Header that can be modified by the caller to
105146// add HTTP headers to the request.
105147func (c *NetworksAddPeeringCall) Header() http.Header {
105148	if c.header_ == nil {
105149		c.header_ = make(http.Header)
105150	}
105151	return c.header_
105152}
105153
105154func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
105155	reqHeaders := make(http.Header)
105156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
105157	for k, v := range c.header_ {
105158		reqHeaders[k] = v
105159	}
105160	reqHeaders.Set("User-Agent", c.s.userAgent())
105161	var body io.Reader = nil
105162	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
105163	if err != nil {
105164		return nil, err
105165	}
105166	reqHeaders.Set("Content-Type", "application/json")
105167	c.urlParams_.Set("alt", alt)
105168	c.urlParams_.Set("prettyPrint", "false")
105169	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
105170	urls += "?" + c.urlParams_.Encode()
105171	req, err := http.NewRequest("POST", urls, body)
105172	if err != nil {
105173		return nil, err
105174	}
105175	req.Header = reqHeaders
105176	googleapi.Expand(req.URL, map[string]string{
105177		"project": c.project,
105178		"network": c.network,
105179	})
105180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105181}
105182
105183// Do executes the "compute.networks.addPeering" call.
105184// Exactly one of *Operation or error will be non-nil. Any non-2xx
105185// status code is an error. Response headers are in either
105186// *Operation.ServerResponse.Header or (if a response was returned at
105187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105188// to check whether the returned error was because
105189// http.StatusNotModified was returned.
105190func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105191	gensupport.SetOptions(c.urlParams_, opts...)
105192	res, err := c.doRequest("json")
105193	if res != nil && res.StatusCode == http.StatusNotModified {
105194		if res.Body != nil {
105195			res.Body.Close()
105196		}
105197		return nil, &googleapi.Error{
105198			Code:   res.StatusCode,
105199			Header: res.Header,
105200		}
105201	}
105202	if err != nil {
105203		return nil, err
105204	}
105205	defer googleapi.CloseBody(res)
105206	if err := googleapi.CheckResponse(res); err != nil {
105207		return nil, err
105208	}
105209	ret := &Operation{
105210		ServerResponse: googleapi.ServerResponse{
105211			Header:         res.Header,
105212			HTTPStatusCode: res.StatusCode,
105213		},
105214	}
105215	target := &ret
105216	if err := gensupport.DecodeResponse(target, res); err != nil {
105217		return nil, err
105218	}
105219	return ret, nil
105220	// {
105221	//   "description": "Adds a peering to the specified network.",
105222	//   "httpMethod": "POST",
105223	//   "id": "compute.networks.addPeering",
105224	//   "parameterOrder": [
105225	//     "project",
105226	//     "network"
105227	//   ],
105228	//   "parameters": {
105229	//     "network": {
105230	//       "description": "Name of the network resource to add peering to.",
105231	//       "location": "path",
105232	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105233	//       "required": true,
105234	//       "type": "string"
105235	//     },
105236	//     "project": {
105237	//       "description": "Project ID for this request.",
105238	//       "location": "path",
105239	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105240	//       "required": true,
105241	//       "type": "string"
105242	//     },
105243	//     "requestId": {
105244	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105245	//       "location": "query",
105246	//       "type": "string"
105247	//     }
105248	//   },
105249	//   "path": "{project}/global/networks/{network}/addPeering",
105250	//   "request": {
105251	//     "$ref": "NetworksAddPeeringRequest"
105252	//   },
105253	//   "response": {
105254	//     "$ref": "Operation"
105255	//   },
105256	//   "scopes": [
105257	//     "https://www.googleapis.com/auth/cloud-platform",
105258	//     "https://www.googleapis.com/auth/compute"
105259	//   ]
105260	// }
105261
105262}
105263
105264// method id "compute.networks.delete":
105265
105266type NetworksDeleteCall struct {
105267	s          *Service
105268	project    string
105269	network    string
105270	urlParams_ gensupport.URLParams
105271	ctx_       context.Context
105272	header_    http.Header
105273}
105274
105275// Delete: Deletes the specified network.
105276// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
105277func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
105278	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105279	c.project = project
105280	c.network = network
105281	return c
105282}
105283
105284// RequestId sets the optional parameter "requestId": An optional
105285// request ID to identify requests. Specify a unique request ID so that
105286// if you must retry your request, the server will know to ignore the
105287// request if it has already been completed.
105288//
105289// For example, consider a situation where you make an initial request
105290// and the request times out. If you make the request again with the
105291// same request ID, the server can check if original operation with the
105292// same request ID was received, and if so, will ignore the second
105293// request. This prevents clients from accidentally creating duplicate
105294// commitments.
105295//
105296// The request ID must be a valid UUID with the exception that zero UUID
105297// is not supported (00000000-0000-0000-0000-000000000000).
105298func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
105299	c.urlParams_.Set("requestId", requestId)
105300	return c
105301}
105302
105303// Fields allows partial responses to be retrieved. See
105304// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105305// for more information.
105306func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
105307	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105308	return c
105309}
105310
105311// Context sets the context to be used in this call's Do method. Any
105312// pending HTTP request will be aborted if the provided context is
105313// canceled.
105314func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
105315	c.ctx_ = ctx
105316	return c
105317}
105318
105319// Header returns an http.Header that can be modified by the caller to
105320// add HTTP headers to the request.
105321func (c *NetworksDeleteCall) Header() http.Header {
105322	if c.header_ == nil {
105323		c.header_ = make(http.Header)
105324	}
105325	return c.header_
105326}
105327
105328func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
105329	reqHeaders := make(http.Header)
105330	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
105331	for k, v := range c.header_ {
105332		reqHeaders[k] = v
105333	}
105334	reqHeaders.Set("User-Agent", c.s.userAgent())
105335	var body io.Reader = nil
105336	c.urlParams_.Set("alt", alt)
105337	c.urlParams_.Set("prettyPrint", "false")
105338	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
105339	urls += "?" + c.urlParams_.Encode()
105340	req, err := http.NewRequest("DELETE", urls, body)
105341	if err != nil {
105342		return nil, err
105343	}
105344	req.Header = reqHeaders
105345	googleapi.Expand(req.URL, map[string]string{
105346		"project": c.project,
105347		"network": c.network,
105348	})
105349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105350}
105351
105352// Do executes the "compute.networks.delete" call.
105353// Exactly one of *Operation or error will be non-nil. Any non-2xx
105354// status code is an error. Response headers are in either
105355// *Operation.ServerResponse.Header or (if a response was returned at
105356// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105357// to check whether the returned error was because
105358// http.StatusNotModified was returned.
105359func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105360	gensupport.SetOptions(c.urlParams_, opts...)
105361	res, err := c.doRequest("json")
105362	if res != nil && res.StatusCode == http.StatusNotModified {
105363		if res.Body != nil {
105364			res.Body.Close()
105365		}
105366		return nil, &googleapi.Error{
105367			Code:   res.StatusCode,
105368			Header: res.Header,
105369		}
105370	}
105371	if err != nil {
105372		return nil, err
105373	}
105374	defer googleapi.CloseBody(res)
105375	if err := googleapi.CheckResponse(res); err != nil {
105376		return nil, err
105377	}
105378	ret := &Operation{
105379		ServerResponse: googleapi.ServerResponse{
105380			Header:         res.Header,
105381			HTTPStatusCode: res.StatusCode,
105382		},
105383	}
105384	target := &ret
105385	if err := gensupport.DecodeResponse(target, res); err != nil {
105386		return nil, err
105387	}
105388	return ret, nil
105389	// {
105390	//   "description": "Deletes the specified network.",
105391	//   "httpMethod": "DELETE",
105392	//   "id": "compute.networks.delete",
105393	//   "parameterOrder": [
105394	//     "project",
105395	//     "network"
105396	//   ],
105397	//   "parameters": {
105398	//     "network": {
105399	//       "description": "Name of the network to delete.",
105400	//       "location": "path",
105401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105402	//       "required": true,
105403	//       "type": "string"
105404	//     },
105405	//     "project": {
105406	//       "description": "Project ID for this request.",
105407	//       "location": "path",
105408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105409	//       "required": true,
105410	//       "type": "string"
105411	//     },
105412	//     "requestId": {
105413	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105414	//       "location": "query",
105415	//       "type": "string"
105416	//     }
105417	//   },
105418	//   "path": "{project}/global/networks/{network}",
105419	//   "response": {
105420	//     "$ref": "Operation"
105421	//   },
105422	//   "scopes": [
105423	//     "https://www.googleapis.com/auth/cloud-platform",
105424	//     "https://www.googleapis.com/auth/compute"
105425	//   ]
105426	// }
105427
105428}
105429
105430// method id "compute.networks.get":
105431
105432type NetworksGetCall struct {
105433	s            *Service
105434	project      string
105435	network      string
105436	urlParams_   gensupport.URLParams
105437	ifNoneMatch_ string
105438	ctx_         context.Context
105439	header_      http.Header
105440}
105441
105442// Get: Returns the specified network. Gets a list of available networks
105443// by making a list() request.
105444// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
105445func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
105446	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105447	c.project = project
105448	c.network = network
105449	return c
105450}
105451
105452// Fields allows partial responses to be retrieved. See
105453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105454// for more information.
105455func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
105456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105457	return c
105458}
105459
105460// IfNoneMatch sets the optional parameter which makes the operation
105461// fail if the object's ETag matches the given value. This is useful for
105462// getting updates only after the object has changed since the last
105463// request. Use googleapi.IsNotModified to check whether the response
105464// error from Do is the result of In-None-Match.
105465func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
105466	c.ifNoneMatch_ = entityTag
105467	return c
105468}
105469
105470// Context sets the context to be used in this call's Do method. Any
105471// pending HTTP request will be aborted if the provided context is
105472// canceled.
105473func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
105474	c.ctx_ = ctx
105475	return c
105476}
105477
105478// Header returns an http.Header that can be modified by the caller to
105479// add HTTP headers to the request.
105480func (c *NetworksGetCall) Header() http.Header {
105481	if c.header_ == nil {
105482		c.header_ = make(http.Header)
105483	}
105484	return c.header_
105485}
105486
105487func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
105488	reqHeaders := make(http.Header)
105489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
105490	for k, v := range c.header_ {
105491		reqHeaders[k] = v
105492	}
105493	reqHeaders.Set("User-Agent", c.s.userAgent())
105494	if c.ifNoneMatch_ != "" {
105495		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105496	}
105497	var body io.Reader = nil
105498	c.urlParams_.Set("alt", alt)
105499	c.urlParams_.Set("prettyPrint", "false")
105500	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
105501	urls += "?" + c.urlParams_.Encode()
105502	req, err := http.NewRequest("GET", urls, body)
105503	if err != nil {
105504		return nil, err
105505	}
105506	req.Header = reqHeaders
105507	googleapi.Expand(req.URL, map[string]string{
105508		"project": c.project,
105509		"network": c.network,
105510	})
105511	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105512}
105513
105514// Do executes the "compute.networks.get" call.
105515// Exactly one of *Network or error will be non-nil. Any non-2xx status
105516// code is an error. Response headers are in either
105517// *Network.ServerResponse.Header or (if a response was returned at all)
105518// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
105519// check whether the returned error was because http.StatusNotModified
105520// was returned.
105521func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
105522	gensupport.SetOptions(c.urlParams_, opts...)
105523	res, err := c.doRequest("json")
105524	if res != nil && res.StatusCode == http.StatusNotModified {
105525		if res.Body != nil {
105526			res.Body.Close()
105527		}
105528		return nil, &googleapi.Error{
105529			Code:   res.StatusCode,
105530			Header: res.Header,
105531		}
105532	}
105533	if err != nil {
105534		return nil, err
105535	}
105536	defer googleapi.CloseBody(res)
105537	if err := googleapi.CheckResponse(res); err != nil {
105538		return nil, err
105539	}
105540	ret := &Network{
105541		ServerResponse: googleapi.ServerResponse{
105542			Header:         res.Header,
105543			HTTPStatusCode: res.StatusCode,
105544		},
105545	}
105546	target := &ret
105547	if err := gensupport.DecodeResponse(target, res); err != nil {
105548		return nil, err
105549	}
105550	return ret, nil
105551	// {
105552	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
105553	//   "httpMethod": "GET",
105554	//   "id": "compute.networks.get",
105555	//   "parameterOrder": [
105556	//     "project",
105557	//     "network"
105558	//   ],
105559	//   "parameters": {
105560	//     "network": {
105561	//       "description": "Name of the network to return.",
105562	//       "location": "path",
105563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105564	//       "required": true,
105565	//       "type": "string"
105566	//     },
105567	//     "project": {
105568	//       "description": "Project ID for this request.",
105569	//       "location": "path",
105570	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105571	//       "required": true,
105572	//       "type": "string"
105573	//     }
105574	//   },
105575	//   "path": "{project}/global/networks/{network}",
105576	//   "response": {
105577	//     "$ref": "Network"
105578	//   },
105579	//   "scopes": [
105580	//     "https://www.googleapis.com/auth/cloud-platform",
105581	//     "https://www.googleapis.com/auth/compute",
105582	//     "https://www.googleapis.com/auth/compute.readonly"
105583	//   ]
105584	// }
105585
105586}
105587
105588// method id "compute.networks.getEffectiveFirewalls":
105589
105590type NetworksGetEffectiveFirewallsCall struct {
105591	s            *Service
105592	project      string
105593	network      string
105594	urlParams_   gensupport.URLParams
105595	ifNoneMatch_ string
105596	ctx_         context.Context
105597	header_      http.Header
105598}
105599
105600// GetEffectiveFirewalls: Returns the effective firewalls on a given
105601// network.
105602func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
105603	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105604	c.project = project
105605	c.network = network
105606	return c
105607}
105608
105609// Fields allows partial responses to be retrieved. See
105610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105611// for more information.
105612func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
105613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105614	return c
105615}
105616
105617// IfNoneMatch sets the optional parameter which makes the operation
105618// fail if the object's ETag matches the given value. This is useful for
105619// getting updates only after the object has changed since the last
105620// request. Use googleapi.IsNotModified to check whether the response
105621// error from Do is the result of In-None-Match.
105622func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
105623	c.ifNoneMatch_ = entityTag
105624	return c
105625}
105626
105627// Context sets the context to be used in this call's Do method. Any
105628// pending HTTP request will be aborted if the provided context is
105629// canceled.
105630func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
105631	c.ctx_ = ctx
105632	return c
105633}
105634
105635// Header returns an http.Header that can be modified by the caller to
105636// add HTTP headers to the request.
105637func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
105638	if c.header_ == nil {
105639		c.header_ = make(http.Header)
105640	}
105641	return c.header_
105642}
105643
105644func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
105645	reqHeaders := make(http.Header)
105646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
105647	for k, v := range c.header_ {
105648		reqHeaders[k] = v
105649	}
105650	reqHeaders.Set("User-Agent", c.s.userAgent())
105651	if c.ifNoneMatch_ != "" {
105652		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105653	}
105654	var body io.Reader = nil
105655	c.urlParams_.Set("alt", alt)
105656	c.urlParams_.Set("prettyPrint", "false")
105657	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/getEffectiveFirewalls")
105658	urls += "?" + c.urlParams_.Encode()
105659	req, err := http.NewRequest("GET", urls, body)
105660	if err != nil {
105661		return nil, err
105662	}
105663	req.Header = reqHeaders
105664	googleapi.Expand(req.URL, map[string]string{
105665		"project": c.project,
105666		"network": c.network,
105667	})
105668	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105669}
105670
105671// Do executes the "compute.networks.getEffectiveFirewalls" call.
105672// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
105673// be non-nil. Any non-2xx status code is an error. Response headers are
105674// in either
105675// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
105676// response was returned at all) in error.(*googleapi.Error).Header. Use
105677// googleapi.IsNotModified to check whether the returned error was
105678// because http.StatusNotModified was returned.
105679func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
105680	gensupport.SetOptions(c.urlParams_, opts...)
105681	res, err := c.doRequest("json")
105682	if res != nil && res.StatusCode == http.StatusNotModified {
105683		if res.Body != nil {
105684			res.Body.Close()
105685		}
105686		return nil, &googleapi.Error{
105687			Code:   res.StatusCode,
105688			Header: res.Header,
105689		}
105690	}
105691	if err != nil {
105692		return nil, err
105693	}
105694	defer googleapi.CloseBody(res)
105695	if err := googleapi.CheckResponse(res); err != nil {
105696		return nil, err
105697	}
105698	ret := &NetworksGetEffectiveFirewallsResponse{
105699		ServerResponse: googleapi.ServerResponse{
105700			Header:         res.Header,
105701			HTTPStatusCode: res.StatusCode,
105702		},
105703	}
105704	target := &ret
105705	if err := gensupport.DecodeResponse(target, res); err != nil {
105706		return nil, err
105707	}
105708	return ret, nil
105709	// {
105710	//   "description": "Returns the effective firewalls on a given network.",
105711	//   "httpMethod": "GET",
105712	//   "id": "compute.networks.getEffectiveFirewalls",
105713	//   "parameterOrder": [
105714	//     "project",
105715	//     "network"
105716	//   ],
105717	//   "parameters": {
105718	//     "network": {
105719	//       "description": "Name of the network for this request.",
105720	//       "location": "path",
105721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105722	//       "required": true,
105723	//       "type": "string"
105724	//     },
105725	//     "project": {
105726	//       "description": "Project ID for this request.",
105727	//       "location": "path",
105728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105729	//       "required": true,
105730	//       "type": "string"
105731	//     }
105732	//   },
105733	//   "path": "{project}/global/networks/{network}/getEffectiveFirewalls",
105734	//   "response": {
105735	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
105736	//   },
105737	//   "scopes": [
105738	//     "https://www.googleapis.com/auth/cloud-platform",
105739	//     "https://www.googleapis.com/auth/compute",
105740	//     "https://www.googleapis.com/auth/compute.readonly"
105741	//   ]
105742	// }
105743
105744}
105745
105746// method id "compute.networks.insert":
105747
105748type NetworksInsertCall struct {
105749	s          *Service
105750	project    string
105751	network    *Network
105752	urlParams_ gensupport.URLParams
105753	ctx_       context.Context
105754	header_    http.Header
105755}
105756
105757// Insert: Creates a network in the specified project using the data
105758// included in the request.
105759// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
105760func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
105761	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105762	c.project = project
105763	c.network = network
105764	return c
105765}
105766
105767// RequestId sets the optional parameter "requestId": An optional
105768// request ID to identify requests. Specify a unique request ID so that
105769// if you must retry your request, the server will know to ignore the
105770// request if it has already been completed.
105771//
105772// For example, consider a situation where you make an initial request
105773// and the request times out. If you make the request again with the
105774// same request ID, the server can check if original operation with the
105775// same request ID was received, and if so, will ignore the second
105776// request. This prevents clients from accidentally creating duplicate
105777// commitments.
105778//
105779// The request ID must be a valid UUID with the exception that zero UUID
105780// is not supported (00000000-0000-0000-0000-000000000000).
105781func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
105782	c.urlParams_.Set("requestId", requestId)
105783	return c
105784}
105785
105786// Fields allows partial responses to be retrieved. See
105787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105788// for more information.
105789func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
105790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105791	return c
105792}
105793
105794// Context sets the context to be used in this call's Do method. Any
105795// pending HTTP request will be aborted if the provided context is
105796// canceled.
105797func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
105798	c.ctx_ = ctx
105799	return c
105800}
105801
105802// Header returns an http.Header that can be modified by the caller to
105803// add HTTP headers to the request.
105804func (c *NetworksInsertCall) Header() http.Header {
105805	if c.header_ == nil {
105806		c.header_ = make(http.Header)
105807	}
105808	return c.header_
105809}
105810
105811func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
105812	reqHeaders := make(http.Header)
105813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
105814	for k, v := range c.header_ {
105815		reqHeaders[k] = v
105816	}
105817	reqHeaders.Set("User-Agent", c.s.userAgent())
105818	var body io.Reader = nil
105819	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
105820	if err != nil {
105821		return nil, err
105822	}
105823	reqHeaders.Set("Content-Type", "application/json")
105824	c.urlParams_.Set("alt", alt)
105825	c.urlParams_.Set("prettyPrint", "false")
105826	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
105827	urls += "?" + c.urlParams_.Encode()
105828	req, err := http.NewRequest("POST", urls, body)
105829	if err != nil {
105830		return nil, err
105831	}
105832	req.Header = reqHeaders
105833	googleapi.Expand(req.URL, map[string]string{
105834		"project": c.project,
105835	})
105836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105837}
105838
105839// Do executes the "compute.networks.insert" call.
105840// Exactly one of *Operation or error will be non-nil. Any non-2xx
105841// status code is an error. Response headers are in either
105842// *Operation.ServerResponse.Header or (if a response was returned at
105843// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105844// to check whether the returned error was because
105845// http.StatusNotModified was returned.
105846func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105847	gensupport.SetOptions(c.urlParams_, opts...)
105848	res, err := c.doRequest("json")
105849	if res != nil && res.StatusCode == http.StatusNotModified {
105850		if res.Body != nil {
105851			res.Body.Close()
105852		}
105853		return nil, &googleapi.Error{
105854			Code:   res.StatusCode,
105855			Header: res.Header,
105856		}
105857	}
105858	if err != nil {
105859		return nil, err
105860	}
105861	defer googleapi.CloseBody(res)
105862	if err := googleapi.CheckResponse(res); err != nil {
105863		return nil, err
105864	}
105865	ret := &Operation{
105866		ServerResponse: googleapi.ServerResponse{
105867			Header:         res.Header,
105868			HTTPStatusCode: res.StatusCode,
105869		},
105870	}
105871	target := &ret
105872	if err := gensupport.DecodeResponse(target, res); err != nil {
105873		return nil, err
105874	}
105875	return ret, nil
105876	// {
105877	//   "description": "Creates a network in the specified project using the data included in the request.",
105878	//   "httpMethod": "POST",
105879	//   "id": "compute.networks.insert",
105880	//   "parameterOrder": [
105881	//     "project"
105882	//   ],
105883	//   "parameters": {
105884	//     "project": {
105885	//       "description": "Project ID for this request.",
105886	//       "location": "path",
105887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105888	//       "required": true,
105889	//       "type": "string"
105890	//     },
105891	//     "requestId": {
105892	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105893	//       "location": "query",
105894	//       "type": "string"
105895	//     }
105896	//   },
105897	//   "path": "{project}/global/networks",
105898	//   "request": {
105899	//     "$ref": "Network"
105900	//   },
105901	//   "response": {
105902	//     "$ref": "Operation"
105903	//   },
105904	//   "scopes": [
105905	//     "https://www.googleapis.com/auth/cloud-platform",
105906	//     "https://www.googleapis.com/auth/compute"
105907	//   ]
105908	// }
105909
105910}
105911
105912// method id "compute.networks.list":
105913
105914type NetworksListCall struct {
105915	s            *Service
105916	project      string
105917	urlParams_   gensupport.URLParams
105918	ifNoneMatch_ string
105919	ctx_         context.Context
105920	header_      http.Header
105921}
105922
105923// List: Retrieves the list of networks available to the specified
105924// project.
105925// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
105926func (r *NetworksService) List(project string) *NetworksListCall {
105927	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105928	c.project = project
105929	return c
105930}
105931
105932// Filter sets the optional parameter "filter": A filter expression that
105933// filters resources listed in the response. The expression must specify
105934// the field name, a comparison operator, and the value that you want to
105935// use for filtering. The value must be a string, a number, or a
105936// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105937// `<`.
105938//
105939// For example, if you are filtering Compute Engine instances, you can
105940// exclude instances named `example-instance` by specifying `name !=
105941// example-instance`.
105942//
105943// You can also filter nested fields. For example, you could specify
105944// `scheduling.automaticRestart = false` to include instances only if
105945// they are not scheduled for automatic restarts. You can use filtering
105946// on nested fields to filter based on resource labels.
105947//
105948// To filter on multiple expressions, provide each separate expression
105949// within parentheses. For example: ``` (scheduling.automaticRestart =
105950// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105951// is an `AND` expression. However, you can include `AND` and `OR`
105952// expressions explicitly. For example: ``` (cpuPlatform = "Intel
105953// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
105954// (scheduling.automaticRestart = true) ```
105955func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
105956	c.urlParams_.Set("filter", filter)
105957	return c
105958}
105959
105960// MaxResults sets the optional parameter "maxResults": The maximum
105961// number of results per page that should be returned. If the number of
105962// available results is larger than `maxResults`, Compute Engine returns
105963// a `nextPageToken` that can be used to get the next page of results in
105964// subsequent list requests. Acceptable values are `0` to `500`,
105965// inclusive. (Default: `500`)
105966func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
105967	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105968	return c
105969}
105970
105971// OrderBy sets the optional parameter "orderBy": Sorts list results by
105972// a certain order. By default, results are returned in alphanumerical
105973// order based on the resource name.
105974//
105975// You can also sort results in descending order based on the creation
105976// timestamp using `orderBy="creationTimestamp desc". This sorts
105977// results based on the `creationTimestamp` field in reverse
105978// chronological order (newest result first). Use this to sort resources
105979// like operations so that the newest operation is returned
105980// first.
105981//
105982// Currently, only sorting by `name` or `creationTimestamp desc` is
105983// supported.
105984func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
105985	c.urlParams_.Set("orderBy", orderBy)
105986	return c
105987}
105988
105989// PageToken sets the optional parameter "pageToken": Specifies a page
105990// token to use. Set `pageToken` to the `nextPageToken` returned by a
105991// previous list request to get the next page of results.
105992func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
105993	c.urlParams_.Set("pageToken", pageToken)
105994	return c
105995}
105996
105997// ReturnPartialSuccess sets the optional parameter
105998// "returnPartialSuccess": Opt-in for partial success behavior which
105999// provides partial results in case of failure. The default value is
106000// false and the logic is the same as today.
106001func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall {
106002	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106003	return c
106004}
106005
106006// Fields allows partial responses to be retrieved. See
106007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106008// for more information.
106009func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
106010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106011	return c
106012}
106013
106014// IfNoneMatch sets the optional parameter which makes the operation
106015// fail if the object's ETag matches the given value. This is useful for
106016// getting updates only after the object has changed since the last
106017// request. Use googleapi.IsNotModified to check whether the response
106018// error from Do is the result of In-None-Match.
106019func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
106020	c.ifNoneMatch_ = entityTag
106021	return c
106022}
106023
106024// Context sets the context to be used in this call's Do method. Any
106025// pending HTTP request will be aborted if the provided context is
106026// canceled.
106027func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
106028	c.ctx_ = ctx
106029	return c
106030}
106031
106032// Header returns an http.Header that can be modified by the caller to
106033// add HTTP headers to the request.
106034func (c *NetworksListCall) Header() http.Header {
106035	if c.header_ == nil {
106036		c.header_ = make(http.Header)
106037	}
106038	return c.header_
106039}
106040
106041func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
106042	reqHeaders := make(http.Header)
106043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
106044	for k, v := range c.header_ {
106045		reqHeaders[k] = v
106046	}
106047	reqHeaders.Set("User-Agent", c.s.userAgent())
106048	if c.ifNoneMatch_ != "" {
106049		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106050	}
106051	var body io.Reader = nil
106052	c.urlParams_.Set("alt", alt)
106053	c.urlParams_.Set("prettyPrint", "false")
106054	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
106055	urls += "?" + c.urlParams_.Encode()
106056	req, err := http.NewRequest("GET", urls, body)
106057	if err != nil {
106058		return nil, err
106059	}
106060	req.Header = reqHeaders
106061	googleapi.Expand(req.URL, map[string]string{
106062		"project": c.project,
106063	})
106064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106065}
106066
106067// Do executes the "compute.networks.list" call.
106068// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
106069// status code is an error. Response headers are in either
106070// *NetworkList.ServerResponse.Header or (if a response was returned at
106071// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106072// to check whether the returned error was because
106073// http.StatusNotModified was returned.
106074func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
106075	gensupport.SetOptions(c.urlParams_, opts...)
106076	res, err := c.doRequest("json")
106077	if res != nil && res.StatusCode == http.StatusNotModified {
106078		if res.Body != nil {
106079			res.Body.Close()
106080		}
106081		return nil, &googleapi.Error{
106082			Code:   res.StatusCode,
106083			Header: res.Header,
106084		}
106085	}
106086	if err != nil {
106087		return nil, err
106088	}
106089	defer googleapi.CloseBody(res)
106090	if err := googleapi.CheckResponse(res); err != nil {
106091		return nil, err
106092	}
106093	ret := &NetworkList{
106094		ServerResponse: googleapi.ServerResponse{
106095			Header:         res.Header,
106096			HTTPStatusCode: res.StatusCode,
106097		},
106098	}
106099	target := &ret
106100	if err := gensupport.DecodeResponse(target, res); err != nil {
106101		return nil, err
106102	}
106103	return ret, nil
106104	// {
106105	//   "description": "Retrieves the list of networks available to the specified project.",
106106	//   "httpMethod": "GET",
106107	//   "id": "compute.networks.list",
106108	//   "parameterOrder": [
106109	//     "project"
106110	//   ],
106111	//   "parameters": {
106112	//     "filter": {
106113	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106114	//       "location": "query",
106115	//       "type": "string"
106116	//     },
106117	//     "maxResults": {
106118	//       "default": "500",
106119	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106120	//       "format": "uint32",
106121	//       "location": "query",
106122	//       "minimum": "0",
106123	//       "type": "integer"
106124	//     },
106125	//     "orderBy": {
106126	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106127	//       "location": "query",
106128	//       "type": "string"
106129	//     },
106130	//     "pageToken": {
106131	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106132	//       "location": "query",
106133	//       "type": "string"
106134	//     },
106135	//     "project": {
106136	//       "description": "Project ID for this request.",
106137	//       "location": "path",
106138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106139	//       "required": true,
106140	//       "type": "string"
106141	//     },
106142	//     "returnPartialSuccess": {
106143	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
106144	//       "location": "query",
106145	//       "type": "boolean"
106146	//     }
106147	//   },
106148	//   "path": "{project}/global/networks",
106149	//   "response": {
106150	//     "$ref": "NetworkList"
106151	//   },
106152	//   "scopes": [
106153	//     "https://www.googleapis.com/auth/cloud-platform",
106154	//     "https://www.googleapis.com/auth/compute",
106155	//     "https://www.googleapis.com/auth/compute.readonly"
106156	//   ]
106157	// }
106158
106159}
106160
106161// Pages invokes f for each page of results.
106162// A non-nil error returned from f will halt the iteration.
106163// The provided context supersedes any context provided to the Context method.
106164func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
106165	c.ctx_ = ctx
106166	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106167	for {
106168		x, err := c.Do()
106169		if err != nil {
106170			return err
106171		}
106172		if err := f(x); err != nil {
106173			return err
106174		}
106175		if x.NextPageToken == "" {
106176			return nil
106177		}
106178		c.PageToken(x.NextPageToken)
106179	}
106180}
106181
106182// method id "compute.networks.listIpAddresses":
106183
106184type NetworksListIpAddressesCall struct {
106185	s            *Service
106186	project      string
106187	network      string
106188	urlParams_   gensupport.URLParams
106189	ifNoneMatch_ string
106190	ctx_         context.Context
106191	header_      http.Header
106192}
106193
106194// ListIpAddresses: Lists the internal IP addresses in the specified
106195// network.
106196func (r *NetworksService) ListIpAddresses(project string, network string) *NetworksListIpAddressesCall {
106197	c := &NetworksListIpAddressesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106198	c.project = project
106199	c.network = network
106200	return c
106201}
106202
106203// Filter sets the optional parameter "filter": A filter expression that
106204// filters resources listed in the response. The expression must specify
106205// the field name, a comparison operator, and the value that you want to
106206// use for filtering. The value must be a string, a number, or a
106207// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106208// `<`.
106209//
106210// For example, if you are filtering Compute Engine instances, you can
106211// exclude instances named `example-instance` by specifying `name !=
106212// example-instance`.
106213//
106214// You can also filter nested fields. For example, you could specify
106215// `scheduling.automaticRestart = false` to include instances only if
106216// they are not scheduled for automatic restarts. You can use filtering
106217// on nested fields to filter based on resource labels.
106218//
106219// To filter on multiple expressions, provide each separate expression
106220// within parentheses. For example: ``` (scheduling.automaticRestart =
106221// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106222// is an `AND` expression. However, you can include `AND` and `OR`
106223// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106224// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106225// (scheduling.automaticRestart = true) ```
106226func (c *NetworksListIpAddressesCall) Filter(filter string) *NetworksListIpAddressesCall {
106227	c.urlParams_.Set("filter", filter)
106228	return c
106229}
106230
106231// MaxResults sets the optional parameter "maxResults": The maximum
106232// number of results per page that should be returned. If the number of
106233// available results is larger than `maxResults`, Compute Engine returns
106234// a `nextPageToken` that can be used to get the next page of results in
106235// subsequent list requests. Acceptable values are `0` to `500`,
106236// inclusive. (Default: `500`)
106237func (c *NetworksListIpAddressesCall) MaxResults(maxResults int64) *NetworksListIpAddressesCall {
106238	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106239	return c
106240}
106241
106242// OrderBy sets the optional parameter "orderBy": Sorts list results by
106243// a certain order. By default, results are returned in alphanumerical
106244// order based on the resource name.
106245//
106246// You can also sort results in descending order based on the creation
106247// timestamp using `orderBy="creationTimestamp desc". This sorts
106248// results based on the `creationTimestamp` field in reverse
106249// chronological order (newest result first). Use this to sort resources
106250// like operations so that the newest operation is returned
106251// first.
106252//
106253// Currently, only sorting by `name` or `creationTimestamp desc` is
106254// supported.
106255func (c *NetworksListIpAddressesCall) OrderBy(orderBy string) *NetworksListIpAddressesCall {
106256	c.urlParams_.Set("orderBy", orderBy)
106257	return c
106258}
106259
106260// PageToken sets the optional parameter "pageToken": Specifies a page
106261// token to use. Set `pageToken` to the `nextPageToken` returned by a
106262// previous list request to get the next page of results.
106263func (c *NetworksListIpAddressesCall) PageToken(pageToken string) *NetworksListIpAddressesCall {
106264	c.urlParams_.Set("pageToken", pageToken)
106265	return c
106266}
106267
106268// ReturnPartialSuccess sets the optional parameter
106269// "returnPartialSuccess": Opt-in for partial success behavior which
106270// provides partial results in case of failure. The default value is
106271// false and the logic is the same as today.
106272func (c *NetworksListIpAddressesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListIpAddressesCall {
106273	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106274	return c
106275}
106276
106277// Types sets the optional parameter "types": (Optional) types filter
106278// separate by comma, valid values are: SUBNETWORK, RESERVED, PEER_USED,
106279// PEER_RESERVED, REMOTE_USED, REMOTE_RESERVED.
106280func (c *NetworksListIpAddressesCall) Types(types string) *NetworksListIpAddressesCall {
106281	c.urlParams_.Set("types", types)
106282	return c
106283}
106284
106285// Fields allows partial responses to be retrieved. See
106286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106287// for more information.
106288func (c *NetworksListIpAddressesCall) Fields(s ...googleapi.Field) *NetworksListIpAddressesCall {
106289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106290	return c
106291}
106292
106293// IfNoneMatch sets the optional parameter which makes the operation
106294// fail if the object's ETag matches the given value. This is useful for
106295// getting updates only after the object has changed since the last
106296// request. Use googleapi.IsNotModified to check whether the response
106297// error from Do is the result of In-None-Match.
106298func (c *NetworksListIpAddressesCall) IfNoneMatch(entityTag string) *NetworksListIpAddressesCall {
106299	c.ifNoneMatch_ = entityTag
106300	return c
106301}
106302
106303// Context sets the context to be used in this call's Do method. Any
106304// pending HTTP request will be aborted if the provided context is
106305// canceled.
106306func (c *NetworksListIpAddressesCall) Context(ctx context.Context) *NetworksListIpAddressesCall {
106307	c.ctx_ = ctx
106308	return c
106309}
106310
106311// Header returns an http.Header that can be modified by the caller to
106312// add HTTP headers to the request.
106313func (c *NetworksListIpAddressesCall) Header() http.Header {
106314	if c.header_ == nil {
106315		c.header_ = make(http.Header)
106316	}
106317	return c.header_
106318}
106319
106320func (c *NetworksListIpAddressesCall) doRequest(alt string) (*http.Response, error) {
106321	reqHeaders := make(http.Header)
106322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
106323	for k, v := range c.header_ {
106324		reqHeaders[k] = v
106325	}
106326	reqHeaders.Set("User-Agent", c.s.userAgent())
106327	if c.ifNoneMatch_ != "" {
106328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106329	}
106330	var body io.Reader = nil
106331	c.urlParams_.Set("alt", alt)
106332	c.urlParams_.Set("prettyPrint", "false")
106333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listIpAddresses")
106334	urls += "?" + c.urlParams_.Encode()
106335	req, err := http.NewRequest("GET", urls, body)
106336	if err != nil {
106337		return nil, err
106338	}
106339	req.Header = reqHeaders
106340	googleapi.Expand(req.URL, map[string]string{
106341		"project": c.project,
106342		"network": c.network,
106343	})
106344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106345}
106346
106347// Do executes the "compute.networks.listIpAddresses" call.
106348// Exactly one of *IpAddressesList or error will be non-nil. Any non-2xx
106349// status code is an error. Response headers are in either
106350// *IpAddressesList.ServerResponse.Header or (if a response was returned
106351// at all) in error.(*googleapi.Error).Header. Use
106352// googleapi.IsNotModified to check whether the returned error was
106353// because http.StatusNotModified was returned.
106354func (c *NetworksListIpAddressesCall) Do(opts ...googleapi.CallOption) (*IpAddressesList, error) {
106355	gensupport.SetOptions(c.urlParams_, opts...)
106356	res, err := c.doRequest("json")
106357	if res != nil && res.StatusCode == http.StatusNotModified {
106358		if res.Body != nil {
106359			res.Body.Close()
106360		}
106361		return nil, &googleapi.Error{
106362			Code:   res.StatusCode,
106363			Header: res.Header,
106364		}
106365	}
106366	if err != nil {
106367		return nil, err
106368	}
106369	defer googleapi.CloseBody(res)
106370	if err := googleapi.CheckResponse(res); err != nil {
106371		return nil, err
106372	}
106373	ret := &IpAddressesList{
106374		ServerResponse: googleapi.ServerResponse{
106375			Header:         res.Header,
106376			HTTPStatusCode: res.StatusCode,
106377		},
106378	}
106379	target := &ret
106380	if err := gensupport.DecodeResponse(target, res); err != nil {
106381		return nil, err
106382	}
106383	return ret, nil
106384	// {
106385	//   "description": "Lists the internal IP addresses in the specified network.",
106386	//   "httpMethod": "GET",
106387	//   "id": "compute.networks.listIpAddresses",
106388	//   "parameterOrder": [
106389	//     "project",
106390	//     "network"
106391	//   ],
106392	//   "parameters": {
106393	//     "filter": {
106394	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106395	//       "location": "query",
106396	//       "type": "string"
106397	//     },
106398	//     "maxResults": {
106399	//       "default": "500",
106400	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106401	//       "format": "uint32",
106402	//       "location": "query",
106403	//       "minimum": "0",
106404	//       "type": "integer"
106405	//     },
106406	//     "network": {
106407	//       "description": "Name of the network for this request.",
106408	//       "location": "path",
106409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106410	//       "required": true,
106411	//       "type": "string"
106412	//     },
106413	//     "orderBy": {
106414	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106415	//       "location": "query",
106416	//       "type": "string"
106417	//     },
106418	//     "pageToken": {
106419	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106420	//       "location": "query",
106421	//       "type": "string"
106422	//     },
106423	//     "project": {
106424	//       "description": "Project ID for this request.",
106425	//       "location": "path",
106426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106427	//       "required": true,
106428	//       "type": "string"
106429	//     },
106430	//     "returnPartialSuccess": {
106431	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
106432	//       "location": "query",
106433	//       "type": "boolean"
106434	//     },
106435	//     "types": {
106436	//       "description": "(Optional) types filter separate by comma, valid values are: SUBNETWORK, RESERVED, PEER_USED, PEER_RESERVED, REMOTE_USED, REMOTE_RESERVED.",
106437	//       "location": "query",
106438	//       "type": "string"
106439	//     }
106440	//   },
106441	//   "path": "{project}/global/networks/{network}/listIpAddresses",
106442	//   "response": {
106443	//     "$ref": "IpAddressesList"
106444	//   },
106445	//   "scopes": [
106446	//     "https://www.googleapis.com/auth/cloud-platform",
106447	//     "https://www.googleapis.com/auth/compute",
106448	//     "https://www.googleapis.com/auth/compute.readonly"
106449	//   ]
106450	// }
106451
106452}
106453
106454// Pages invokes f for each page of results.
106455// A non-nil error returned from f will halt the iteration.
106456// The provided context supersedes any context provided to the Context method.
106457func (c *NetworksListIpAddressesCall) Pages(ctx context.Context, f func(*IpAddressesList) error) error {
106458	c.ctx_ = ctx
106459	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106460	for {
106461		x, err := c.Do()
106462		if err != nil {
106463			return err
106464		}
106465		if err := f(x); err != nil {
106466			return err
106467		}
106468		if x.NextPageToken == "" {
106469			return nil
106470		}
106471		c.PageToken(x.NextPageToken)
106472	}
106473}
106474
106475// method id "compute.networks.listIpOwners":
106476
106477type NetworksListIpOwnersCall struct {
106478	s            *Service
106479	project      string
106480	network      string
106481	urlParams_   gensupport.URLParams
106482	ifNoneMatch_ string
106483	ctx_         context.Context
106484	header_      http.Header
106485}
106486
106487// ListIpOwners: Lists the internal IP owners in the specified network.
106488func (r *NetworksService) ListIpOwners(project string, network string) *NetworksListIpOwnersCall {
106489	c := &NetworksListIpOwnersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106490	c.project = project
106491	c.network = network
106492	return c
106493}
106494
106495// Filter sets the optional parameter "filter": A filter expression that
106496// filters resources listed in the response. The expression must specify
106497// the field name, a comparison operator, and the value that you want to
106498// use for filtering. The value must be a string, a number, or a
106499// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106500// `<`.
106501//
106502// For example, if you are filtering Compute Engine instances, you can
106503// exclude instances named `example-instance` by specifying `name !=
106504// example-instance`.
106505//
106506// You can also filter nested fields. For example, you could specify
106507// `scheduling.automaticRestart = false` to include instances only if
106508// they are not scheduled for automatic restarts. You can use filtering
106509// on nested fields to filter based on resource labels.
106510//
106511// To filter on multiple expressions, provide each separate expression
106512// within parentheses. For example: ``` (scheduling.automaticRestart =
106513// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106514// is an `AND` expression. However, you can include `AND` and `OR`
106515// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106516// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106517// (scheduling.automaticRestart = true) ```
106518func (c *NetworksListIpOwnersCall) Filter(filter string) *NetworksListIpOwnersCall {
106519	c.urlParams_.Set("filter", filter)
106520	return c
106521}
106522
106523// IpCidrRange sets the optional parameter "ipCidrRange": (Optional) IP
106524// CIDR range filter, example: "10.128.10.0/30".
106525func (c *NetworksListIpOwnersCall) IpCidrRange(ipCidrRange string) *NetworksListIpOwnersCall {
106526	c.urlParams_.Set("ipCidrRange", ipCidrRange)
106527	return c
106528}
106529
106530// MaxResults sets the optional parameter "maxResults": The maximum
106531// number of results per page that should be returned. If the number of
106532// available results is larger than `maxResults`, Compute Engine returns
106533// a `nextPageToken` that can be used to get the next page of results in
106534// subsequent list requests. Acceptable values are `0` to `500`,
106535// inclusive. (Default: `500`)
106536func (c *NetworksListIpOwnersCall) MaxResults(maxResults int64) *NetworksListIpOwnersCall {
106537	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106538	return c
106539}
106540
106541// OrderBy sets the optional parameter "orderBy": Sorts list results by
106542// a certain order. By default, results are returned in alphanumerical
106543// order based on the resource name.
106544//
106545// You can also sort results in descending order based on the creation
106546// timestamp using `orderBy="creationTimestamp desc". This sorts
106547// results based on the `creationTimestamp` field in reverse
106548// chronological order (newest result first). Use this to sort resources
106549// like operations so that the newest operation is returned
106550// first.
106551//
106552// Currently, only sorting by `name` or `creationTimestamp desc` is
106553// supported.
106554func (c *NetworksListIpOwnersCall) OrderBy(orderBy string) *NetworksListIpOwnersCall {
106555	c.urlParams_.Set("orderBy", orderBy)
106556	return c
106557}
106558
106559// OwnerProjects sets the optional parameter "ownerProjects": (Optional)
106560// Project IDs filter, example: "project-1,project-2".
106561func (c *NetworksListIpOwnersCall) OwnerProjects(ownerProjects string) *NetworksListIpOwnersCall {
106562	c.urlParams_.Set("ownerProjects", ownerProjects)
106563	return c
106564}
106565
106566// OwnerTypes sets the optional parameter "ownerTypes": (Optional) Owner
106567// types filter, example: "instance,forwardingRule".
106568func (c *NetworksListIpOwnersCall) OwnerTypes(ownerTypes string) *NetworksListIpOwnersCall {
106569	c.urlParams_.Set("ownerTypes", ownerTypes)
106570	return c
106571}
106572
106573// PageToken sets the optional parameter "pageToken": Specifies a page
106574// token to use. Set `pageToken` to the `nextPageToken` returned by a
106575// previous list request to get the next page of results.
106576func (c *NetworksListIpOwnersCall) PageToken(pageToken string) *NetworksListIpOwnersCall {
106577	c.urlParams_.Set("pageToken", pageToken)
106578	return c
106579}
106580
106581// ReturnPartialSuccess sets the optional parameter
106582// "returnPartialSuccess": Opt-in for partial success behavior which
106583// provides partial results in case of failure. The default value is
106584// false and the logic is the same as today.
106585func (c *NetworksListIpOwnersCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListIpOwnersCall {
106586	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106587	return c
106588}
106589
106590// SubnetName sets the optional parameter "subnetName": (Optional)
106591// Subnetwork name filter.
106592func (c *NetworksListIpOwnersCall) SubnetName(subnetName string) *NetworksListIpOwnersCall {
106593	c.urlParams_.Set("subnetName", subnetName)
106594	return c
106595}
106596
106597// SubnetRegion sets the optional parameter "subnetRegion": (Optional)
106598// Subnetwork region filter.
106599func (c *NetworksListIpOwnersCall) SubnetRegion(subnetRegion string) *NetworksListIpOwnersCall {
106600	c.urlParams_.Set("subnetRegion", subnetRegion)
106601	return c
106602}
106603
106604// Fields allows partial responses to be retrieved. See
106605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106606// for more information.
106607func (c *NetworksListIpOwnersCall) Fields(s ...googleapi.Field) *NetworksListIpOwnersCall {
106608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106609	return c
106610}
106611
106612// IfNoneMatch sets the optional parameter which makes the operation
106613// fail if the object's ETag matches the given value. This is useful for
106614// getting updates only after the object has changed since the last
106615// request. Use googleapi.IsNotModified to check whether the response
106616// error from Do is the result of In-None-Match.
106617func (c *NetworksListIpOwnersCall) IfNoneMatch(entityTag string) *NetworksListIpOwnersCall {
106618	c.ifNoneMatch_ = entityTag
106619	return c
106620}
106621
106622// Context sets the context to be used in this call's Do method. Any
106623// pending HTTP request will be aborted if the provided context is
106624// canceled.
106625func (c *NetworksListIpOwnersCall) Context(ctx context.Context) *NetworksListIpOwnersCall {
106626	c.ctx_ = ctx
106627	return c
106628}
106629
106630// Header returns an http.Header that can be modified by the caller to
106631// add HTTP headers to the request.
106632func (c *NetworksListIpOwnersCall) Header() http.Header {
106633	if c.header_ == nil {
106634		c.header_ = make(http.Header)
106635	}
106636	return c.header_
106637}
106638
106639func (c *NetworksListIpOwnersCall) doRequest(alt string) (*http.Response, error) {
106640	reqHeaders := make(http.Header)
106641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
106642	for k, v := range c.header_ {
106643		reqHeaders[k] = v
106644	}
106645	reqHeaders.Set("User-Agent", c.s.userAgent())
106646	if c.ifNoneMatch_ != "" {
106647		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106648	}
106649	var body io.Reader = nil
106650	c.urlParams_.Set("alt", alt)
106651	c.urlParams_.Set("prettyPrint", "false")
106652	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listIpOwners")
106653	urls += "?" + c.urlParams_.Encode()
106654	req, err := http.NewRequest("GET", urls, body)
106655	if err != nil {
106656		return nil, err
106657	}
106658	req.Header = reqHeaders
106659	googleapi.Expand(req.URL, map[string]string{
106660		"project": c.project,
106661		"network": c.network,
106662	})
106663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106664}
106665
106666// Do executes the "compute.networks.listIpOwners" call.
106667// Exactly one of *IpOwnerList or error will be non-nil. Any non-2xx
106668// status code is an error. Response headers are in either
106669// *IpOwnerList.ServerResponse.Header or (if a response was returned at
106670// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106671// to check whether the returned error was because
106672// http.StatusNotModified was returned.
106673func (c *NetworksListIpOwnersCall) Do(opts ...googleapi.CallOption) (*IpOwnerList, error) {
106674	gensupport.SetOptions(c.urlParams_, opts...)
106675	res, err := c.doRequest("json")
106676	if res != nil && res.StatusCode == http.StatusNotModified {
106677		if res.Body != nil {
106678			res.Body.Close()
106679		}
106680		return nil, &googleapi.Error{
106681			Code:   res.StatusCode,
106682			Header: res.Header,
106683		}
106684	}
106685	if err != nil {
106686		return nil, err
106687	}
106688	defer googleapi.CloseBody(res)
106689	if err := googleapi.CheckResponse(res); err != nil {
106690		return nil, err
106691	}
106692	ret := &IpOwnerList{
106693		ServerResponse: googleapi.ServerResponse{
106694			Header:         res.Header,
106695			HTTPStatusCode: res.StatusCode,
106696		},
106697	}
106698	target := &ret
106699	if err := gensupport.DecodeResponse(target, res); err != nil {
106700		return nil, err
106701	}
106702	return ret, nil
106703	// {
106704	//   "description": "Lists the internal IP owners in the specified network.",
106705	//   "httpMethod": "GET",
106706	//   "id": "compute.networks.listIpOwners",
106707	//   "parameterOrder": [
106708	//     "project",
106709	//     "network"
106710	//   ],
106711	//   "parameters": {
106712	//     "filter": {
106713	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106714	//       "location": "query",
106715	//       "type": "string"
106716	//     },
106717	//     "ipCidrRange": {
106718	//       "description": "(Optional) IP CIDR range filter, example: \"10.128.10.0/30\".",
106719	//       "location": "query",
106720	//       "type": "string"
106721	//     },
106722	//     "maxResults": {
106723	//       "default": "500",
106724	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106725	//       "format": "uint32",
106726	//       "location": "query",
106727	//       "minimum": "0",
106728	//       "type": "integer"
106729	//     },
106730	//     "network": {
106731	//       "description": "Name of the network to return.",
106732	//       "location": "path",
106733	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106734	//       "required": true,
106735	//       "type": "string"
106736	//     },
106737	//     "orderBy": {
106738	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106739	//       "location": "query",
106740	//       "type": "string"
106741	//     },
106742	//     "ownerProjects": {
106743	//       "description": "(Optional) Project IDs filter, example: \"project-1,project-2\".",
106744	//       "location": "query",
106745	//       "type": "string"
106746	//     },
106747	//     "ownerTypes": {
106748	//       "description": "(Optional) Owner types filter, example: \"instance,forwardingRule\".",
106749	//       "location": "query",
106750	//       "type": "string"
106751	//     },
106752	//     "pageToken": {
106753	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106754	//       "location": "query",
106755	//       "type": "string"
106756	//     },
106757	//     "project": {
106758	//       "description": "Project ID for this request.",
106759	//       "location": "path",
106760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106761	//       "required": true,
106762	//       "type": "string"
106763	//     },
106764	//     "returnPartialSuccess": {
106765	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
106766	//       "location": "query",
106767	//       "type": "boolean"
106768	//     },
106769	//     "subnetName": {
106770	//       "description": "(Optional) Subnetwork name filter.",
106771	//       "location": "query",
106772	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106773	//       "type": "string"
106774	//     },
106775	//     "subnetRegion": {
106776	//       "description": "(Optional) Subnetwork region filter.",
106777	//       "location": "query",
106778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106779	//       "type": "string"
106780	//     }
106781	//   },
106782	//   "path": "{project}/global/networks/{network}/listIpOwners",
106783	//   "response": {
106784	//     "$ref": "IpOwnerList"
106785	//   },
106786	//   "scopes": [
106787	//     "https://www.googleapis.com/auth/cloud-platform",
106788	//     "https://www.googleapis.com/auth/compute",
106789	//     "https://www.googleapis.com/auth/compute.readonly"
106790	//   ]
106791	// }
106792
106793}
106794
106795// Pages invokes f for each page of results.
106796// A non-nil error returned from f will halt the iteration.
106797// The provided context supersedes any context provided to the Context method.
106798func (c *NetworksListIpOwnersCall) Pages(ctx context.Context, f func(*IpOwnerList) error) error {
106799	c.ctx_ = ctx
106800	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106801	for {
106802		x, err := c.Do()
106803		if err != nil {
106804			return err
106805		}
106806		if err := f(x); err != nil {
106807			return err
106808		}
106809		if x.NextPageToken == "" {
106810			return nil
106811		}
106812		c.PageToken(x.NextPageToken)
106813	}
106814}
106815
106816// method id "compute.networks.listPeeringRoutes":
106817
106818type NetworksListPeeringRoutesCall struct {
106819	s            *Service
106820	project      string
106821	network      string
106822	urlParams_   gensupport.URLParams
106823	ifNoneMatch_ string
106824	ctx_         context.Context
106825	header_      http.Header
106826}
106827
106828// ListPeeringRoutes: Lists the peering routes exchanged over peering
106829// connection.
106830func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
106831	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106832	c.project = project
106833	c.network = network
106834	return c
106835}
106836
106837// Direction sets the optional parameter "direction": The direction of
106838// the exchanged routes.
106839//
106840// Possible values:
106841//   "INCOMING"
106842//   "OUTGOING"
106843func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
106844	c.urlParams_.Set("direction", direction)
106845	return c
106846}
106847
106848// Filter sets the optional parameter "filter": A filter expression that
106849// filters resources listed in the response. The expression must specify
106850// the field name, a comparison operator, and the value that you want to
106851// use for filtering. The value must be a string, a number, or a
106852// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106853// `<`.
106854//
106855// For example, if you are filtering Compute Engine instances, you can
106856// exclude instances named `example-instance` by specifying `name !=
106857// example-instance`.
106858//
106859// You can also filter nested fields. For example, you could specify
106860// `scheduling.automaticRestart = false` to include instances only if
106861// they are not scheduled for automatic restarts. You can use filtering
106862// on nested fields to filter based on resource labels.
106863//
106864// To filter on multiple expressions, provide each separate expression
106865// within parentheses. For example: ``` (scheduling.automaticRestart =
106866// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106867// is an `AND` expression. However, you can include `AND` and `OR`
106868// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106869// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106870// (scheduling.automaticRestart = true) ```
106871func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
106872	c.urlParams_.Set("filter", filter)
106873	return c
106874}
106875
106876// MaxResults sets the optional parameter "maxResults": The maximum
106877// number of results per page that should be returned. If the number of
106878// available results is larger than `maxResults`, Compute Engine returns
106879// a `nextPageToken` that can be used to get the next page of results in
106880// subsequent list requests. Acceptable values are `0` to `500`,
106881// inclusive. (Default: `500`)
106882func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
106883	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106884	return c
106885}
106886
106887// OrderBy sets the optional parameter "orderBy": Sorts list results by
106888// a certain order. By default, results are returned in alphanumerical
106889// order based on the resource name.
106890//
106891// You can also sort results in descending order based on the creation
106892// timestamp using `orderBy="creationTimestamp desc". This sorts
106893// results based on the `creationTimestamp` field in reverse
106894// chronological order (newest result first). Use this to sort resources
106895// like operations so that the newest operation is returned
106896// first.
106897//
106898// Currently, only sorting by `name` or `creationTimestamp desc` is
106899// supported.
106900func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
106901	c.urlParams_.Set("orderBy", orderBy)
106902	return c
106903}
106904
106905// PageToken sets the optional parameter "pageToken": Specifies a page
106906// token to use. Set `pageToken` to the `nextPageToken` returned by a
106907// previous list request to get the next page of results.
106908func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
106909	c.urlParams_.Set("pageToken", pageToken)
106910	return c
106911}
106912
106913// PeeringName sets the optional parameter "peeringName": The response
106914// will show routes exchanged over the given peering connection.
106915func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
106916	c.urlParams_.Set("peeringName", peeringName)
106917	return c
106918}
106919
106920// Region sets the optional parameter "region": The region of the
106921// request. The response will include all subnet routes, static routes
106922// and dynamic routes in the region.
106923func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
106924	c.urlParams_.Set("region", region)
106925	return c
106926}
106927
106928// ReturnPartialSuccess sets the optional parameter
106929// "returnPartialSuccess": Opt-in for partial success behavior which
106930// provides partial results in case of failure. The default value is
106931// false and the logic is the same as today.
106932func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall {
106933	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106934	return c
106935}
106936
106937// Fields allows partial responses to be retrieved. See
106938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106939// for more information.
106940func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
106941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106942	return c
106943}
106944
106945// IfNoneMatch sets the optional parameter which makes the operation
106946// fail if the object's ETag matches the given value. This is useful for
106947// getting updates only after the object has changed since the last
106948// request. Use googleapi.IsNotModified to check whether the response
106949// error from Do is the result of In-None-Match.
106950func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
106951	c.ifNoneMatch_ = entityTag
106952	return c
106953}
106954
106955// Context sets the context to be used in this call's Do method. Any
106956// pending HTTP request will be aborted if the provided context is
106957// canceled.
106958func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
106959	c.ctx_ = ctx
106960	return c
106961}
106962
106963// Header returns an http.Header that can be modified by the caller to
106964// add HTTP headers to the request.
106965func (c *NetworksListPeeringRoutesCall) Header() http.Header {
106966	if c.header_ == nil {
106967		c.header_ = make(http.Header)
106968	}
106969	return c.header_
106970}
106971
106972func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
106973	reqHeaders := make(http.Header)
106974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
106975	for k, v := range c.header_ {
106976		reqHeaders[k] = v
106977	}
106978	reqHeaders.Set("User-Agent", c.s.userAgent())
106979	if c.ifNoneMatch_ != "" {
106980		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106981	}
106982	var body io.Reader = nil
106983	c.urlParams_.Set("alt", alt)
106984	c.urlParams_.Set("prettyPrint", "false")
106985	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listPeeringRoutes")
106986	urls += "?" + c.urlParams_.Encode()
106987	req, err := http.NewRequest("GET", urls, body)
106988	if err != nil {
106989		return nil, err
106990	}
106991	req.Header = reqHeaders
106992	googleapi.Expand(req.URL, map[string]string{
106993		"project": c.project,
106994		"network": c.network,
106995	})
106996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106997}
106998
106999// Do executes the "compute.networks.listPeeringRoutes" call.
107000// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
107001// Any non-2xx status code is an error. Response headers are in either
107002// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
107003// was returned at all) in error.(*googleapi.Error).Header. Use
107004// googleapi.IsNotModified to check whether the returned error was
107005// because http.StatusNotModified was returned.
107006func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
107007	gensupport.SetOptions(c.urlParams_, opts...)
107008	res, err := c.doRequest("json")
107009	if res != nil && res.StatusCode == http.StatusNotModified {
107010		if res.Body != nil {
107011			res.Body.Close()
107012		}
107013		return nil, &googleapi.Error{
107014			Code:   res.StatusCode,
107015			Header: res.Header,
107016		}
107017	}
107018	if err != nil {
107019		return nil, err
107020	}
107021	defer googleapi.CloseBody(res)
107022	if err := googleapi.CheckResponse(res); err != nil {
107023		return nil, err
107024	}
107025	ret := &ExchangedPeeringRoutesList{
107026		ServerResponse: googleapi.ServerResponse{
107027			Header:         res.Header,
107028			HTTPStatusCode: res.StatusCode,
107029		},
107030	}
107031	target := &ret
107032	if err := gensupport.DecodeResponse(target, res); err != nil {
107033		return nil, err
107034	}
107035	return ret, nil
107036	// {
107037	//   "description": "Lists the peering routes exchanged over peering connection.",
107038	//   "httpMethod": "GET",
107039	//   "id": "compute.networks.listPeeringRoutes",
107040	//   "parameterOrder": [
107041	//     "project",
107042	//     "network"
107043	//   ],
107044	//   "parameters": {
107045	//     "direction": {
107046	//       "description": "The direction of the exchanged routes.",
107047	//       "enum": [
107048	//         "INCOMING",
107049	//         "OUTGOING"
107050	//       ],
107051	//       "enumDescriptions": [
107052	//         "",
107053	//         ""
107054	//       ],
107055	//       "location": "query",
107056	//       "type": "string"
107057	//     },
107058	//     "filter": {
107059	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
107060	//       "location": "query",
107061	//       "type": "string"
107062	//     },
107063	//     "maxResults": {
107064	//       "default": "500",
107065	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
107066	//       "format": "uint32",
107067	//       "location": "query",
107068	//       "minimum": "0",
107069	//       "type": "integer"
107070	//     },
107071	//     "network": {
107072	//       "description": "Name of the network for this request.",
107073	//       "location": "path",
107074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107075	//       "required": true,
107076	//       "type": "string"
107077	//     },
107078	//     "orderBy": {
107079	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
107080	//       "location": "query",
107081	//       "type": "string"
107082	//     },
107083	//     "pageToken": {
107084	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
107085	//       "location": "query",
107086	//       "type": "string"
107087	//     },
107088	//     "peeringName": {
107089	//       "description": "The response will show routes exchanged over the given peering connection.",
107090	//       "location": "query",
107091	//       "type": "string"
107092	//     },
107093	//     "project": {
107094	//       "description": "Project ID for this request.",
107095	//       "location": "path",
107096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107097	//       "required": true,
107098	//       "type": "string"
107099	//     },
107100	//     "region": {
107101	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
107102	//       "location": "query",
107103	//       "type": "string"
107104	//     },
107105	//     "returnPartialSuccess": {
107106	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
107107	//       "location": "query",
107108	//       "type": "boolean"
107109	//     }
107110	//   },
107111	//   "path": "{project}/global/networks/{network}/listPeeringRoutes",
107112	//   "response": {
107113	//     "$ref": "ExchangedPeeringRoutesList"
107114	//   },
107115	//   "scopes": [
107116	//     "https://www.googleapis.com/auth/cloud-platform",
107117	//     "https://www.googleapis.com/auth/compute",
107118	//     "https://www.googleapis.com/auth/compute.readonly"
107119	//   ]
107120	// }
107121
107122}
107123
107124// Pages invokes f for each page of results.
107125// A non-nil error returned from f will halt the iteration.
107126// The provided context supersedes any context provided to the Context method.
107127func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
107128	c.ctx_ = ctx
107129	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107130	for {
107131		x, err := c.Do()
107132		if err != nil {
107133			return err
107134		}
107135		if err := f(x); err != nil {
107136			return err
107137		}
107138		if x.NextPageToken == "" {
107139			return nil
107140		}
107141		c.PageToken(x.NextPageToken)
107142	}
107143}
107144
107145// method id "compute.networks.patch":
107146
107147type NetworksPatchCall struct {
107148	s          *Service
107149	project    string
107150	network    string
107151	network2   *Network
107152	urlParams_ gensupport.URLParams
107153	ctx_       context.Context
107154	header_    http.Header
107155}
107156
107157// Patch: Patches the specified network with the data included in the
107158// request. Only the following fields can be modified:
107159// routingConfig.routingMode.
107160func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
107161	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107162	c.project = project
107163	c.network = network
107164	c.network2 = network2
107165	return c
107166}
107167
107168// RequestId sets the optional parameter "requestId": An optional
107169// request ID to identify requests. Specify a unique request ID so that
107170// if you must retry your request, the server will know to ignore the
107171// request if it has already been completed.
107172//
107173// For example, consider a situation where you make an initial request
107174// and the request times out. If you make the request again with the
107175// same request ID, the server can check if original operation with the
107176// same request ID was received, and if so, will ignore the second
107177// request. This prevents clients from accidentally creating duplicate
107178// commitments.
107179//
107180// The request ID must be a valid UUID with the exception that zero UUID
107181// is not supported (00000000-0000-0000-0000-000000000000).
107182func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
107183	c.urlParams_.Set("requestId", requestId)
107184	return c
107185}
107186
107187// Fields allows partial responses to be retrieved. See
107188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107189// for more information.
107190func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
107191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107192	return c
107193}
107194
107195// Context sets the context to be used in this call's Do method. Any
107196// pending HTTP request will be aborted if the provided context is
107197// canceled.
107198func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
107199	c.ctx_ = ctx
107200	return c
107201}
107202
107203// Header returns an http.Header that can be modified by the caller to
107204// add HTTP headers to the request.
107205func (c *NetworksPatchCall) Header() http.Header {
107206	if c.header_ == nil {
107207		c.header_ = make(http.Header)
107208	}
107209	return c.header_
107210}
107211
107212func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
107213	reqHeaders := make(http.Header)
107214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
107215	for k, v := range c.header_ {
107216		reqHeaders[k] = v
107217	}
107218	reqHeaders.Set("User-Agent", c.s.userAgent())
107219	var body io.Reader = nil
107220	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
107221	if err != nil {
107222		return nil, err
107223	}
107224	reqHeaders.Set("Content-Type", "application/json")
107225	c.urlParams_.Set("alt", alt)
107226	c.urlParams_.Set("prettyPrint", "false")
107227	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
107228	urls += "?" + c.urlParams_.Encode()
107229	req, err := http.NewRequest("PATCH", urls, body)
107230	if err != nil {
107231		return nil, err
107232	}
107233	req.Header = reqHeaders
107234	googleapi.Expand(req.URL, map[string]string{
107235		"project": c.project,
107236		"network": c.network,
107237	})
107238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107239}
107240
107241// Do executes the "compute.networks.patch" call.
107242// Exactly one of *Operation or error will be non-nil. Any non-2xx
107243// status code is an error. Response headers are in either
107244// *Operation.ServerResponse.Header or (if a response was returned at
107245// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107246// to check whether the returned error was because
107247// http.StatusNotModified was returned.
107248func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107249	gensupport.SetOptions(c.urlParams_, opts...)
107250	res, err := c.doRequest("json")
107251	if res != nil && res.StatusCode == http.StatusNotModified {
107252		if res.Body != nil {
107253			res.Body.Close()
107254		}
107255		return nil, &googleapi.Error{
107256			Code:   res.StatusCode,
107257			Header: res.Header,
107258		}
107259	}
107260	if err != nil {
107261		return nil, err
107262	}
107263	defer googleapi.CloseBody(res)
107264	if err := googleapi.CheckResponse(res); err != nil {
107265		return nil, err
107266	}
107267	ret := &Operation{
107268		ServerResponse: googleapi.ServerResponse{
107269			Header:         res.Header,
107270			HTTPStatusCode: res.StatusCode,
107271		},
107272	}
107273	target := &ret
107274	if err := gensupport.DecodeResponse(target, res); err != nil {
107275		return nil, err
107276	}
107277	return ret, nil
107278	// {
107279	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
107280	//   "httpMethod": "PATCH",
107281	//   "id": "compute.networks.patch",
107282	//   "parameterOrder": [
107283	//     "project",
107284	//     "network"
107285	//   ],
107286	//   "parameters": {
107287	//     "network": {
107288	//       "description": "Name of the network to update.",
107289	//       "location": "path",
107290	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107291	//       "required": true,
107292	//       "type": "string"
107293	//     },
107294	//     "project": {
107295	//       "description": "Project ID for this request.",
107296	//       "location": "path",
107297	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107298	//       "required": true,
107299	//       "type": "string"
107300	//     },
107301	//     "requestId": {
107302	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107303	//       "location": "query",
107304	//       "type": "string"
107305	//     }
107306	//   },
107307	//   "path": "{project}/global/networks/{network}",
107308	//   "request": {
107309	//     "$ref": "Network"
107310	//   },
107311	//   "response": {
107312	//     "$ref": "Operation"
107313	//   },
107314	//   "scopes": [
107315	//     "https://www.googleapis.com/auth/cloud-platform",
107316	//     "https://www.googleapis.com/auth/compute"
107317	//   ]
107318	// }
107319
107320}
107321
107322// method id "compute.networks.removePeering":
107323
107324type NetworksRemovePeeringCall struct {
107325	s                            *Service
107326	project                      string
107327	network                      string
107328	networksremovepeeringrequest *NetworksRemovePeeringRequest
107329	urlParams_                   gensupport.URLParams
107330	ctx_                         context.Context
107331	header_                      http.Header
107332}
107333
107334// RemovePeering: Removes a peering from the specified network.
107335func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
107336	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107337	c.project = project
107338	c.network = network
107339	c.networksremovepeeringrequest = networksremovepeeringrequest
107340	return c
107341}
107342
107343// RequestId sets the optional parameter "requestId": An optional
107344// request ID to identify requests. Specify a unique request ID so that
107345// if you must retry your request, the server will know to ignore the
107346// request if it has already been completed.
107347//
107348// For example, consider a situation where you make an initial request
107349// and the request times out. If you make the request again with the
107350// same request ID, the server can check if original operation with the
107351// same request ID was received, and if so, will ignore the second
107352// request. This prevents clients from accidentally creating duplicate
107353// commitments.
107354//
107355// The request ID must be a valid UUID with the exception that zero UUID
107356// is not supported (00000000-0000-0000-0000-000000000000).
107357func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
107358	c.urlParams_.Set("requestId", requestId)
107359	return c
107360}
107361
107362// Fields allows partial responses to be retrieved. See
107363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107364// for more information.
107365func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
107366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107367	return c
107368}
107369
107370// Context sets the context to be used in this call's Do method. Any
107371// pending HTTP request will be aborted if the provided context is
107372// canceled.
107373func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
107374	c.ctx_ = ctx
107375	return c
107376}
107377
107378// Header returns an http.Header that can be modified by the caller to
107379// add HTTP headers to the request.
107380func (c *NetworksRemovePeeringCall) Header() http.Header {
107381	if c.header_ == nil {
107382		c.header_ = make(http.Header)
107383	}
107384	return c.header_
107385}
107386
107387func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
107388	reqHeaders := make(http.Header)
107389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
107390	for k, v := range c.header_ {
107391		reqHeaders[k] = v
107392	}
107393	reqHeaders.Set("User-Agent", c.s.userAgent())
107394	var body io.Reader = nil
107395	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
107396	if err != nil {
107397		return nil, err
107398	}
107399	reqHeaders.Set("Content-Type", "application/json")
107400	c.urlParams_.Set("alt", alt)
107401	c.urlParams_.Set("prettyPrint", "false")
107402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
107403	urls += "?" + c.urlParams_.Encode()
107404	req, err := http.NewRequest("POST", urls, body)
107405	if err != nil {
107406		return nil, err
107407	}
107408	req.Header = reqHeaders
107409	googleapi.Expand(req.URL, map[string]string{
107410		"project": c.project,
107411		"network": c.network,
107412	})
107413	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107414}
107415
107416// Do executes the "compute.networks.removePeering" call.
107417// Exactly one of *Operation or error will be non-nil. Any non-2xx
107418// status code is an error. Response headers are in either
107419// *Operation.ServerResponse.Header or (if a response was returned at
107420// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107421// to check whether the returned error was because
107422// http.StatusNotModified was returned.
107423func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107424	gensupport.SetOptions(c.urlParams_, opts...)
107425	res, err := c.doRequest("json")
107426	if res != nil && res.StatusCode == http.StatusNotModified {
107427		if res.Body != nil {
107428			res.Body.Close()
107429		}
107430		return nil, &googleapi.Error{
107431			Code:   res.StatusCode,
107432			Header: res.Header,
107433		}
107434	}
107435	if err != nil {
107436		return nil, err
107437	}
107438	defer googleapi.CloseBody(res)
107439	if err := googleapi.CheckResponse(res); err != nil {
107440		return nil, err
107441	}
107442	ret := &Operation{
107443		ServerResponse: googleapi.ServerResponse{
107444			Header:         res.Header,
107445			HTTPStatusCode: res.StatusCode,
107446		},
107447	}
107448	target := &ret
107449	if err := gensupport.DecodeResponse(target, res); err != nil {
107450		return nil, err
107451	}
107452	return ret, nil
107453	// {
107454	//   "description": "Removes a peering from the specified network.",
107455	//   "httpMethod": "POST",
107456	//   "id": "compute.networks.removePeering",
107457	//   "parameterOrder": [
107458	//     "project",
107459	//     "network"
107460	//   ],
107461	//   "parameters": {
107462	//     "network": {
107463	//       "description": "Name of the network resource to remove peering from.",
107464	//       "location": "path",
107465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107466	//       "required": true,
107467	//       "type": "string"
107468	//     },
107469	//     "project": {
107470	//       "description": "Project ID for this request.",
107471	//       "location": "path",
107472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107473	//       "required": true,
107474	//       "type": "string"
107475	//     },
107476	//     "requestId": {
107477	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107478	//       "location": "query",
107479	//       "type": "string"
107480	//     }
107481	//   },
107482	//   "path": "{project}/global/networks/{network}/removePeering",
107483	//   "request": {
107484	//     "$ref": "NetworksRemovePeeringRequest"
107485	//   },
107486	//   "response": {
107487	//     "$ref": "Operation"
107488	//   },
107489	//   "scopes": [
107490	//     "https://www.googleapis.com/auth/cloud-platform",
107491	//     "https://www.googleapis.com/auth/compute"
107492	//   ]
107493	// }
107494
107495}
107496
107497// method id "compute.networks.switchToCustomMode":
107498
107499type NetworksSwitchToCustomModeCall struct {
107500	s          *Service
107501	project    string
107502	network    string
107503	urlParams_ gensupport.URLParams
107504	ctx_       context.Context
107505	header_    http.Header
107506}
107507
107508// SwitchToCustomMode: Switches the network mode from auto subnet mode
107509// to custom subnet mode.
107510func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
107511	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107512	c.project = project
107513	c.network = network
107514	return c
107515}
107516
107517// RequestId sets the optional parameter "requestId": An optional
107518// request ID to identify requests. Specify a unique request ID so that
107519// if you must retry your request, the server will know to ignore the
107520// request if it has already been completed.
107521//
107522// For example, consider a situation where you make an initial request
107523// and the request times out. If you make the request again with the
107524// same request ID, the server can check if original operation with the
107525// same request ID was received, and if so, will ignore the second
107526// request. This prevents clients from accidentally creating duplicate
107527// commitments.
107528//
107529// The request ID must be a valid UUID with the exception that zero UUID
107530// is not supported (00000000-0000-0000-0000-000000000000).
107531func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
107532	c.urlParams_.Set("requestId", requestId)
107533	return c
107534}
107535
107536// Fields allows partial responses to be retrieved. See
107537// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107538// for more information.
107539func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
107540	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107541	return c
107542}
107543
107544// Context sets the context to be used in this call's Do method. Any
107545// pending HTTP request will be aborted if the provided context is
107546// canceled.
107547func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
107548	c.ctx_ = ctx
107549	return c
107550}
107551
107552// Header returns an http.Header that can be modified by the caller to
107553// add HTTP headers to the request.
107554func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
107555	if c.header_ == nil {
107556		c.header_ = make(http.Header)
107557	}
107558	return c.header_
107559}
107560
107561func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
107562	reqHeaders := make(http.Header)
107563	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
107564	for k, v := range c.header_ {
107565		reqHeaders[k] = v
107566	}
107567	reqHeaders.Set("User-Agent", c.s.userAgent())
107568	var body io.Reader = nil
107569	c.urlParams_.Set("alt", alt)
107570	c.urlParams_.Set("prettyPrint", "false")
107571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
107572	urls += "?" + c.urlParams_.Encode()
107573	req, err := http.NewRequest("POST", urls, body)
107574	if err != nil {
107575		return nil, err
107576	}
107577	req.Header = reqHeaders
107578	googleapi.Expand(req.URL, map[string]string{
107579		"project": c.project,
107580		"network": c.network,
107581	})
107582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107583}
107584
107585// Do executes the "compute.networks.switchToCustomMode" call.
107586// Exactly one of *Operation or error will be non-nil. Any non-2xx
107587// status code is an error. Response headers are in either
107588// *Operation.ServerResponse.Header or (if a response was returned at
107589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107590// to check whether the returned error was because
107591// http.StatusNotModified was returned.
107592func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107593	gensupport.SetOptions(c.urlParams_, opts...)
107594	res, err := c.doRequest("json")
107595	if res != nil && res.StatusCode == http.StatusNotModified {
107596		if res.Body != nil {
107597			res.Body.Close()
107598		}
107599		return nil, &googleapi.Error{
107600			Code:   res.StatusCode,
107601			Header: res.Header,
107602		}
107603	}
107604	if err != nil {
107605		return nil, err
107606	}
107607	defer googleapi.CloseBody(res)
107608	if err := googleapi.CheckResponse(res); err != nil {
107609		return nil, err
107610	}
107611	ret := &Operation{
107612		ServerResponse: googleapi.ServerResponse{
107613			Header:         res.Header,
107614			HTTPStatusCode: res.StatusCode,
107615		},
107616	}
107617	target := &ret
107618	if err := gensupport.DecodeResponse(target, res); err != nil {
107619		return nil, err
107620	}
107621	return ret, nil
107622	// {
107623	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
107624	//   "httpMethod": "POST",
107625	//   "id": "compute.networks.switchToCustomMode",
107626	//   "parameterOrder": [
107627	//     "project",
107628	//     "network"
107629	//   ],
107630	//   "parameters": {
107631	//     "network": {
107632	//       "description": "Name of the network to be updated.",
107633	//       "location": "path",
107634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107635	//       "required": true,
107636	//       "type": "string"
107637	//     },
107638	//     "project": {
107639	//       "description": "Project ID for this request.",
107640	//       "location": "path",
107641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107642	//       "required": true,
107643	//       "type": "string"
107644	//     },
107645	//     "requestId": {
107646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107647	//       "location": "query",
107648	//       "type": "string"
107649	//     }
107650	//   },
107651	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
107652	//   "response": {
107653	//     "$ref": "Operation"
107654	//   },
107655	//   "scopes": [
107656	//     "https://www.googleapis.com/auth/cloud-platform",
107657	//     "https://www.googleapis.com/auth/compute"
107658	//   ]
107659	// }
107660
107661}
107662
107663// method id "compute.networks.testIamPermissions":
107664
107665type NetworksTestIamPermissionsCall struct {
107666	s                      *Service
107667	project                string
107668	resource               string
107669	testpermissionsrequest *TestPermissionsRequest
107670	urlParams_             gensupport.URLParams
107671	ctx_                   context.Context
107672	header_                http.Header
107673}
107674
107675// TestIamPermissions: Returns permissions that a caller has on the
107676// specified resource.
107677func (r *NetworksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworksTestIamPermissionsCall {
107678	c := &NetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107679	c.project = project
107680	c.resource = resource
107681	c.testpermissionsrequest = testpermissionsrequest
107682	return c
107683}
107684
107685// Fields allows partial responses to be retrieved. See
107686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107687// for more information.
107688func (c *NetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworksTestIamPermissionsCall {
107689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107690	return c
107691}
107692
107693// Context sets the context to be used in this call's Do method. Any
107694// pending HTTP request will be aborted if the provided context is
107695// canceled.
107696func (c *NetworksTestIamPermissionsCall) Context(ctx context.Context) *NetworksTestIamPermissionsCall {
107697	c.ctx_ = ctx
107698	return c
107699}
107700
107701// Header returns an http.Header that can be modified by the caller to
107702// add HTTP headers to the request.
107703func (c *NetworksTestIamPermissionsCall) Header() http.Header {
107704	if c.header_ == nil {
107705		c.header_ = make(http.Header)
107706	}
107707	return c.header_
107708}
107709
107710func (c *NetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
107711	reqHeaders := make(http.Header)
107712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
107713	for k, v := range c.header_ {
107714		reqHeaders[k] = v
107715	}
107716	reqHeaders.Set("User-Agent", c.s.userAgent())
107717	var body io.Reader = nil
107718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
107719	if err != nil {
107720		return nil, err
107721	}
107722	reqHeaders.Set("Content-Type", "application/json")
107723	c.urlParams_.Set("alt", alt)
107724	c.urlParams_.Set("prettyPrint", "false")
107725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{resource}/testIamPermissions")
107726	urls += "?" + c.urlParams_.Encode()
107727	req, err := http.NewRequest("POST", urls, body)
107728	if err != nil {
107729		return nil, err
107730	}
107731	req.Header = reqHeaders
107732	googleapi.Expand(req.URL, map[string]string{
107733		"project":  c.project,
107734		"resource": c.resource,
107735	})
107736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107737}
107738
107739// Do executes the "compute.networks.testIamPermissions" call.
107740// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
107741// non-2xx status code is an error. Response headers are in either
107742// *TestPermissionsResponse.ServerResponse.Header or (if a response was
107743// returned at all) in error.(*googleapi.Error).Header. Use
107744// googleapi.IsNotModified to check whether the returned error was
107745// because http.StatusNotModified was returned.
107746func (c *NetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
107747	gensupport.SetOptions(c.urlParams_, opts...)
107748	res, err := c.doRequest("json")
107749	if res != nil && res.StatusCode == http.StatusNotModified {
107750		if res.Body != nil {
107751			res.Body.Close()
107752		}
107753		return nil, &googleapi.Error{
107754			Code:   res.StatusCode,
107755			Header: res.Header,
107756		}
107757	}
107758	if err != nil {
107759		return nil, err
107760	}
107761	defer googleapi.CloseBody(res)
107762	if err := googleapi.CheckResponse(res); err != nil {
107763		return nil, err
107764	}
107765	ret := &TestPermissionsResponse{
107766		ServerResponse: googleapi.ServerResponse{
107767			Header:         res.Header,
107768			HTTPStatusCode: res.StatusCode,
107769		},
107770	}
107771	target := &ret
107772	if err := gensupport.DecodeResponse(target, res); err != nil {
107773		return nil, err
107774	}
107775	return ret, nil
107776	// {
107777	//   "description": "Returns permissions that a caller has on the specified resource.",
107778	//   "httpMethod": "POST",
107779	//   "id": "compute.networks.testIamPermissions",
107780	//   "parameterOrder": [
107781	//     "project",
107782	//     "resource"
107783	//   ],
107784	//   "parameters": {
107785	//     "project": {
107786	//       "description": "Project ID for this request.",
107787	//       "location": "path",
107788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107789	//       "required": true,
107790	//       "type": "string"
107791	//     },
107792	//     "resource": {
107793	//       "description": "Name or id of the resource for this request.",
107794	//       "location": "path",
107795	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107796	//       "required": true,
107797	//       "type": "string"
107798	//     }
107799	//   },
107800	//   "path": "{project}/global/networks/{resource}/testIamPermissions",
107801	//   "request": {
107802	//     "$ref": "TestPermissionsRequest"
107803	//   },
107804	//   "response": {
107805	//     "$ref": "TestPermissionsResponse"
107806	//   },
107807	//   "scopes": [
107808	//     "https://www.googleapis.com/auth/cloud-platform",
107809	//     "https://www.googleapis.com/auth/compute",
107810	//     "https://www.googleapis.com/auth/compute.readonly"
107811	//   ]
107812	// }
107813
107814}
107815
107816// method id "compute.networks.updatePeering":
107817
107818type NetworksUpdatePeeringCall struct {
107819	s                            *Service
107820	project                      string
107821	network                      string
107822	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
107823	urlParams_                   gensupport.URLParams
107824	ctx_                         context.Context
107825	header_                      http.Header
107826}
107827
107828// UpdatePeering: Updates the specified network peering with the data
107829// included in the request Only the following fields can be modified:
107830// NetworkPeering.export_custom_routes, and
107831// NetworkPeering.import_custom_routes
107832func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
107833	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107834	c.project = project
107835	c.network = network
107836	c.networksupdatepeeringrequest = networksupdatepeeringrequest
107837	return c
107838}
107839
107840// RequestId sets the optional parameter "requestId": An optional
107841// request ID to identify requests. Specify a unique request ID so that
107842// if you must retry your request, the server will know to ignore the
107843// request if it has already been completed.
107844//
107845// For example, consider a situation where you make an initial request
107846// and the request times out. If you make the request again with the
107847// same request ID, the server can check if original operation with the
107848// same request ID was received, and if so, will ignore the second
107849// request. This prevents clients from accidentally creating duplicate
107850// commitments.
107851//
107852// The request ID must be a valid UUID with the exception that zero UUID
107853// is not supported (00000000-0000-0000-0000-000000000000).
107854func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
107855	c.urlParams_.Set("requestId", requestId)
107856	return c
107857}
107858
107859// Fields allows partial responses to be retrieved. See
107860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107861// for more information.
107862func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
107863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107864	return c
107865}
107866
107867// Context sets the context to be used in this call's Do method. Any
107868// pending HTTP request will be aborted if the provided context is
107869// canceled.
107870func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
107871	c.ctx_ = ctx
107872	return c
107873}
107874
107875// Header returns an http.Header that can be modified by the caller to
107876// add HTTP headers to the request.
107877func (c *NetworksUpdatePeeringCall) Header() http.Header {
107878	if c.header_ == nil {
107879		c.header_ = make(http.Header)
107880	}
107881	return c.header_
107882}
107883
107884func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
107885	reqHeaders := make(http.Header)
107886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
107887	for k, v := range c.header_ {
107888		reqHeaders[k] = v
107889	}
107890	reqHeaders.Set("User-Agent", c.s.userAgent())
107891	var body io.Reader = nil
107892	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
107893	if err != nil {
107894		return nil, err
107895	}
107896	reqHeaders.Set("Content-Type", "application/json")
107897	c.urlParams_.Set("alt", alt)
107898	c.urlParams_.Set("prettyPrint", "false")
107899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/updatePeering")
107900	urls += "?" + c.urlParams_.Encode()
107901	req, err := http.NewRequest("PATCH", urls, body)
107902	if err != nil {
107903		return nil, err
107904	}
107905	req.Header = reqHeaders
107906	googleapi.Expand(req.URL, map[string]string{
107907		"project": c.project,
107908		"network": c.network,
107909	})
107910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107911}
107912
107913// Do executes the "compute.networks.updatePeering" call.
107914// Exactly one of *Operation or error will be non-nil. Any non-2xx
107915// status code is an error. Response headers are in either
107916// *Operation.ServerResponse.Header or (if a response was returned at
107917// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107918// to check whether the returned error was because
107919// http.StatusNotModified was returned.
107920func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107921	gensupport.SetOptions(c.urlParams_, opts...)
107922	res, err := c.doRequest("json")
107923	if res != nil && res.StatusCode == http.StatusNotModified {
107924		if res.Body != nil {
107925			res.Body.Close()
107926		}
107927		return nil, &googleapi.Error{
107928			Code:   res.StatusCode,
107929			Header: res.Header,
107930		}
107931	}
107932	if err != nil {
107933		return nil, err
107934	}
107935	defer googleapi.CloseBody(res)
107936	if err := googleapi.CheckResponse(res); err != nil {
107937		return nil, err
107938	}
107939	ret := &Operation{
107940		ServerResponse: googleapi.ServerResponse{
107941			Header:         res.Header,
107942			HTTPStatusCode: res.StatusCode,
107943		},
107944	}
107945	target := &ret
107946	if err := gensupport.DecodeResponse(target, res); err != nil {
107947		return nil, err
107948	}
107949	return ret, nil
107950	// {
107951	//   "description": "Updates the specified network peering with the data included in the request Only the following fields can be modified: NetworkPeering.export_custom_routes, and NetworkPeering.import_custom_routes",
107952	//   "httpMethod": "PATCH",
107953	//   "id": "compute.networks.updatePeering",
107954	//   "parameterOrder": [
107955	//     "project",
107956	//     "network"
107957	//   ],
107958	//   "parameters": {
107959	//     "network": {
107960	//       "description": "Name of the network resource which the updated peering is belonging to.",
107961	//       "location": "path",
107962	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107963	//       "required": true,
107964	//       "type": "string"
107965	//     },
107966	//     "project": {
107967	//       "description": "Project ID for this request.",
107968	//       "location": "path",
107969	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107970	//       "required": true,
107971	//       "type": "string"
107972	//     },
107973	//     "requestId": {
107974	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107975	//       "location": "query",
107976	//       "type": "string"
107977	//     }
107978	//   },
107979	//   "path": "{project}/global/networks/{network}/updatePeering",
107980	//   "request": {
107981	//     "$ref": "NetworksUpdatePeeringRequest"
107982	//   },
107983	//   "response": {
107984	//     "$ref": "Operation"
107985	//   },
107986	//   "scopes": [
107987	//     "https://www.googleapis.com/auth/cloud-platform",
107988	//     "https://www.googleapis.com/auth/compute"
107989	//   ]
107990	// }
107991
107992}
107993
107994// method id "compute.nodeGroups.addNodes":
107995
107996type NodeGroupsAddNodesCall struct {
107997	s                         *Service
107998	project                   string
107999	zone                      string
108000	nodeGroup                 string
108001	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
108002	urlParams_                gensupport.URLParams
108003	ctx_                      context.Context
108004	header_                   http.Header
108005}
108006
108007// AddNodes: Adds specified number of nodes to the node group.
108008func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
108009	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108010	c.project = project
108011	c.zone = zone
108012	c.nodeGroup = nodeGroup
108013	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
108014	return c
108015}
108016
108017// RequestId sets the optional parameter "requestId": An optional
108018// request ID to identify requests. Specify a unique request ID so that
108019// if you must retry your request, the server will know to ignore the
108020// request if it has already been completed.
108021//
108022// For example, consider a situation where you make an initial request
108023// and the request times out. If you make the request again with the
108024// same request ID, the server can check if original operation with the
108025// same request ID was received, and if so, will ignore the second
108026// request. This prevents clients from accidentally creating duplicate
108027// commitments.
108028//
108029// The request ID must be a valid UUID with the exception that zero UUID
108030// is not supported (00000000-0000-0000-0000-000000000000).
108031func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
108032	c.urlParams_.Set("requestId", requestId)
108033	return c
108034}
108035
108036// Fields allows partial responses to be retrieved. See
108037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108038// for more information.
108039func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
108040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108041	return c
108042}
108043
108044// Context sets the context to be used in this call's Do method. Any
108045// pending HTTP request will be aborted if the provided context is
108046// canceled.
108047func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
108048	c.ctx_ = ctx
108049	return c
108050}
108051
108052// Header returns an http.Header that can be modified by the caller to
108053// add HTTP headers to the request.
108054func (c *NodeGroupsAddNodesCall) Header() http.Header {
108055	if c.header_ == nil {
108056		c.header_ = make(http.Header)
108057	}
108058	return c.header_
108059}
108060
108061func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
108062	reqHeaders := make(http.Header)
108063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
108064	for k, v := range c.header_ {
108065		reqHeaders[k] = v
108066	}
108067	reqHeaders.Set("User-Agent", c.s.userAgent())
108068	var body io.Reader = nil
108069	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
108070	if err != nil {
108071		return nil, err
108072	}
108073	reqHeaders.Set("Content-Type", "application/json")
108074	c.urlParams_.Set("alt", alt)
108075	c.urlParams_.Set("prettyPrint", "false")
108076	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
108077	urls += "?" + c.urlParams_.Encode()
108078	req, err := http.NewRequest("POST", urls, body)
108079	if err != nil {
108080		return nil, err
108081	}
108082	req.Header = reqHeaders
108083	googleapi.Expand(req.URL, map[string]string{
108084		"project":   c.project,
108085		"zone":      c.zone,
108086		"nodeGroup": c.nodeGroup,
108087	})
108088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108089}
108090
108091// Do executes the "compute.nodeGroups.addNodes" call.
108092// Exactly one of *Operation or error will be non-nil. Any non-2xx
108093// status code is an error. Response headers are in either
108094// *Operation.ServerResponse.Header or (if a response was returned at
108095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108096// to check whether the returned error was because
108097// http.StatusNotModified was returned.
108098func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108099	gensupport.SetOptions(c.urlParams_, opts...)
108100	res, err := c.doRequest("json")
108101	if res != nil && res.StatusCode == http.StatusNotModified {
108102		if res.Body != nil {
108103			res.Body.Close()
108104		}
108105		return nil, &googleapi.Error{
108106			Code:   res.StatusCode,
108107			Header: res.Header,
108108		}
108109	}
108110	if err != nil {
108111		return nil, err
108112	}
108113	defer googleapi.CloseBody(res)
108114	if err := googleapi.CheckResponse(res); err != nil {
108115		return nil, err
108116	}
108117	ret := &Operation{
108118		ServerResponse: googleapi.ServerResponse{
108119			Header:         res.Header,
108120			HTTPStatusCode: res.StatusCode,
108121		},
108122	}
108123	target := &ret
108124	if err := gensupport.DecodeResponse(target, res); err != nil {
108125		return nil, err
108126	}
108127	return ret, nil
108128	// {
108129	//   "description": "Adds specified number of nodes to the node group.",
108130	//   "httpMethod": "POST",
108131	//   "id": "compute.nodeGroups.addNodes",
108132	//   "parameterOrder": [
108133	//     "project",
108134	//     "zone",
108135	//     "nodeGroup"
108136	//   ],
108137	//   "parameters": {
108138	//     "nodeGroup": {
108139	//       "description": "Name of the NodeGroup resource.",
108140	//       "location": "path",
108141	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108142	//       "required": true,
108143	//       "type": "string"
108144	//     },
108145	//     "project": {
108146	//       "description": "Project ID for this request.",
108147	//       "location": "path",
108148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108149	//       "required": true,
108150	//       "type": "string"
108151	//     },
108152	//     "requestId": {
108153	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108154	//       "location": "query",
108155	//       "type": "string"
108156	//     },
108157	//     "zone": {
108158	//       "description": "The name of the zone for this request.",
108159	//       "location": "path",
108160	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108161	//       "required": true,
108162	//       "type": "string"
108163	//     }
108164	//   },
108165	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
108166	//   "request": {
108167	//     "$ref": "NodeGroupsAddNodesRequest"
108168	//   },
108169	//   "response": {
108170	//     "$ref": "Operation"
108171	//   },
108172	//   "scopes": [
108173	//     "https://www.googleapis.com/auth/cloud-platform",
108174	//     "https://www.googleapis.com/auth/compute"
108175	//   ]
108176	// }
108177
108178}
108179
108180// method id "compute.nodeGroups.aggregatedList":
108181
108182type NodeGroupsAggregatedListCall struct {
108183	s            *Service
108184	project      string
108185	urlParams_   gensupport.URLParams
108186	ifNoneMatch_ string
108187	ctx_         context.Context
108188	header_      http.Header
108189}
108190
108191// AggregatedList: Retrieves an aggregated list of node groups. Note:
108192// use nodeGroups.listNodes for more details about each group.
108193func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
108194	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108195	c.project = project
108196	return c
108197}
108198
108199// Filter sets the optional parameter "filter": A filter expression that
108200// filters resources listed in the response. The expression must specify
108201// the field name, a comparison operator, and the value that you want to
108202// use for filtering. The value must be a string, a number, or a
108203// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108204// `<`.
108205//
108206// For example, if you are filtering Compute Engine instances, you can
108207// exclude instances named `example-instance` by specifying `name !=
108208// example-instance`.
108209//
108210// You can also filter nested fields. For example, you could specify
108211// `scheduling.automaticRestart = false` to include instances only if
108212// they are not scheduled for automatic restarts. You can use filtering
108213// on nested fields to filter based on resource labels.
108214//
108215// To filter on multiple expressions, provide each separate expression
108216// within parentheses. For example: ``` (scheduling.automaticRestart =
108217// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108218// is an `AND` expression. However, you can include `AND` and `OR`
108219// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108220// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108221// (scheduling.automaticRestart = true) ```
108222func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
108223	c.urlParams_.Set("filter", filter)
108224	return c
108225}
108226
108227// IncludeAllScopes sets the optional parameter "includeAllScopes":
108228// Indicates whether every visible scope for each scope type (zone,
108229// region, global) should be included in the response. For new resource
108230// types added after this field, the flag has no effect as new resource
108231// types will always include every visible scope for each scope type in
108232// response. For resource types which predate this field, if this flag
108233// is omitted or false, only scopes of the scope types where the
108234// resource type is expected to be found will be included.
108235func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
108236	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
108237	return c
108238}
108239
108240// MaxResults sets the optional parameter "maxResults": The maximum
108241// number of results per page that should be returned. If the number of
108242// available results is larger than `maxResults`, Compute Engine returns
108243// a `nextPageToken` that can be used to get the next page of results in
108244// subsequent list requests. Acceptable values are `0` to `500`,
108245// inclusive. (Default: `500`)
108246func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
108247	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108248	return c
108249}
108250
108251// OrderBy sets the optional parameter "orderBy": Sorts list results by
108252// a certain order. By default, results are returned in alphanumerical
108253// order based on the resource name.
108254//
108255// You can also sort results in descending order based on the creation
108256// timestamp using `orderBy="creationTimestamp desc". This sorts
108257// results based on the `creationTimestamp` field in reverse
108258// chronological order (newest result first). Use this to sort resources
108259// like operations so that the newest operation is returned
108260// first.
108261//
108262// Currently, only sorting by `name` or `creationTimestamp desc` is
108263// supported.
108264func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
108265	c.urlParams_.Set("orderBy", orderBy)
108266	return c
108267}
108268
108269// PageToken sets the optional parameter "pageToken": Specifies a page
108270// token to use. Set `pageToken` to the `nextPageToken` returned by a
108271// previous list request to get the next page of results.
108272func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
108273	c.urlParams_.Set("pageToken", pageToken)
108274	return c
108275}
108276
108277// ReturnPartialSuccess sets the optional parameter
108278// "returnPartialSuccess": Opt-in for partial success behavior which
108279// provides partial results in case of failure. The default value is
108280// false and the logic is the same as today.
108281func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall {
108282	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
108283	return c
108284}
108285
108286// Fields allows partial responses to be retrieved. See
108287// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108288// for more information.
108289func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
108290	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108291	return c
108292}
108293
108294// IfNoneMatch sets the optional parameter which makes the operation
108295// fail if the object's ETag matches the given value. This is useful for
108296// getting updates only after the object has changed since the last
108297// request. Use googleapi.IsNotModified to check whether the response
108298// error from Do is the result of In-None-Match.
108299func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
108300	c.ifNoneMatch_ = entityTag
108301	return c
108302}
108303
108304// Context sets the context to be used in this call's Do method. Any
108305// pending HTTP request will be aborted if the provided context is
108306// canceled.
108307func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
108308	c.ctx_ = ctx
108309	return c
108310}
108311
108312// Header returns an http.Header that can be modified by the caller to
108313// add HTTP headers to the request.
108314func (c *NodeGroupsAggregatedListCall) Header() http.Header {
108315	if c.header_ == nil {
108316		c.header_ = make(http.Header)
108317	}
108318	return c.header_
108319}
108320
108321func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
108322	reqHeaders := make(http.Header)
108323	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
108324	for k, v := range c.header_ {
108325		reqHeaders[k] = v
108326	}
108327	reqHeaders.Set("User-Agent", c.s.userAgent())
108328	if c.ifNoneMatch_ != "" {
108329		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108330	}
108331	var body io.Reader = nil
108332	c.urlParams_.Set("alt", alt)
108333	c.urlParams_.Set("prettyPrint", "false")
108334	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeGroups")
108335	urls += "?" + c.urlParams_.Encode()
108336	req, err := http.NewRequest("GET", urls, body)
108337	if err != nil {
108338		return nil, err
108339	}
108340	req.Header = reqHeaders
108341	googleapi.Expand(req.URL, map[string]string{
108342		"project": c.project,
108343	})
108344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108345}
108346
108347// Do executes the "compute.nodeGroups.aggregatedList" call.
108348// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
108349// non-2xx status code is an error. Response headers are in either
108350// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
108351// returned at all) in error.(*googleapi.Error).Header. Use
108352// googleapi.IsNotModified to check whether the returned error was
108353// because http.StatusNotModified was returned.
108354func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
108355	gensupport.SetOptions(c.urlParams_, opts...)
108356	res, err := c.doRequest("json")
108357	if res != nil && res.StatusCode == http.StatusNotModified {
108358		if res.Body != nil {
108359			res.Body.Close()
108360		}
108361		return nil, &googleapi.Error{
108362			Code:   res.StatusCode,
108363			Header: res.Header,
108364		}
108365	}
108366	if err != nil {
108367		return nil, err
108368	}
108369	defer googleapi.CloseBody(res)
108370	if err := googleapi.CheckResponse(res); err != nil {
108371		return nil, err
108372	}
108373	ret := &NodeGroupAggregatedList{
108374		ServerResponse: googleapi.ServerResponse{
108375			Header:         res.Header,
108376			HTTPStatusCode: res.StatusCode,
108377		},
108378	}
108379	target := &ret
108380	if err := gensupport.DecodeResponse(target, res); err != nil {
108381		return nil, err
108382	}
108383	return ret, nil
108384	// {
108385	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
108386	//   "httpMethod": "GET",
108387	//   "id": "compute.nodeGroups.aggregatedList",
108388	//   "parameterOrder": [
108389	//     "project"
108390	//   ],
108391	//   "parameters": {
108392	//     "filter": {
108393	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108394	//       "location": "query",
108395	//       "type": "string"
108396	//     },
108397	//     "includeAllScopes": {
108398	//       "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.",
108399	//       "location": "query",
108400	//       "type": "boolean"
108401	//     },
108402	//     "maxResults": {
108403	//       "default": "500",
108404	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108405	//       "format": "uint32",
108406	//       "location": "query",
108407	//       "minimum": "0",
108408	//       "type": "integer"
108409	//     },
108410	//     "orderBy": {
108411	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108412	//       "location": "query",
108413	//       "type": "string"
108414	//     },
108415	//     "pageToken": {
108416	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108417	//       "location": "query",
108418	//       "type": "string"
108419	//     },
108420	//     "project": {
108421	//       "description": "Project ID for this request.",
108422	//       "location": "path",
108423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108424	//       "required": true,
108425	//       "type": "string"
108426	//     },
108427	//     "returnPartialSuccess": {
108428	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
108429	//       "location": "query",
108430	//       "type": "boolean"
108431	//     }
108432	//   },
108433	//   "path": "{project}/aggregated/nodeGroups",
108434	//   "response": {
108435	//     "$ref": "NodeGroupAggregatedList"
108436	//   },
108437	//   "scopes": [
108438	//     "https://www.googleapis.com/auth/cloud-platform",
108439	//     "https://www.googleapis.com/auth/compute",
108440	//     "https://www.googleapis.com/auth/compute.readonly"
108441	//   ]
108442	// }
108443
108444}
108445
108446// Pages invokes f for each page of results.
108447// A non-nil error returned from f will halt the iteration.
108448// The provided context supersedes any context provided to the Context method.
108449func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
108450	c.ctx_ = ctx
108451	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108452	for {
108453		x, err := c.Do()
108454		if err != nil {
108455			return err
108456		}
108457		if err := f(x); err != nil {
108458			return err
108459		}
108460		if x.NextPageToken == "" {
108461			return nil
108462		}
108463		c.PageToken(x.NextPageToken)
108464	}
108465}
108466
108467// method id "compute.nodeGroups.delete":
108468
108469type NodeGroupsDeleteCall struct {
108470	s          *Service
108471	project    string
108472	zone       string
108473	nodeGroup  string
108474	urlParams_ gensupport.URLParams
108475	ctx_       context.Context
108476	header_    http.Header
108477}
108478
108479// Delete: Deletes the specified NodeGroup resource.
108480func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
108481	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108482	c.project = project
108483	c.zone = zone
108484	c.nodeGroup = nodeGroup
108485	return c
108486}
108487
108488// RequestId sets the optional parameter "requestId": An optional
108489// request ID to identify requests. Specify a unique request ID so that
108490// if you must retry your request, the server will know to ignore the
108491// request if it has already been completed.
108492//
108493// For example, consider a situation where you make an initial request
108494// and the request times out. If you make the request again with the
108495// same request ID, the server can check if original operation with the
108496// same request ID was received, and if so, will ignore the second
108497// request. This prevents clients from accidentally creating duplicate
108498// commitments.
108499//
108500// The request ID must be a valid UUID with the exception that zero UUID
108501// is not supported (00000000-0000-0000-0000-000000000000).
108502func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
108503	c.urlParams_.Set("requestId", requestId)
108504	return c
108505}
108506
108507// Fields allows partial responses to be retrieved. See
108508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108509// for more information.
108510func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
108511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108512	return c
108513}
108514
108515// Context sets the context to be used in this call's Do method. Any
108516// pending HTTP request will be aborted if the provided context is
108517// canceled.
108518func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
108519	c.ctx_ = ctx
108520	return c
108521}
108522
108523// Header returns an http.Header that can be modified by the caller to
108524// add HTTP headers to the request.
108525func (c *NodeGroupsDeleteCall) Header() http.Header {
108526	if c.header_ == nil {
108527		c.header_ = make(http.Header)
108528	}
108529	return c.header_
108530}
108531
108532func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
108533	reqHeaders := make(http.Header)
108534	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
108535	for k, v := range c.header_ {
108536		reqHeaders[k] = v
108537	}
108538	reqHeaders.Set("User-Agent", c.s.userAgent())
108539	var body io.Reader = nil
108540	c.urlParams_.Set("alt", alt)
108541	c.urlParams_.Set("prettyPrint", "false")
108542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
108543	urls += "?" + c.urlParams_.Encode()
108544	req, err := http.NewRequest("DELETE", urls, body)
108545	if err != nil {
108546		return nil, err
108547	}
108548	req.Header = reqHeaders
108549	googleapi.Expand(req.URL, map[string]string{
108550		"project":   c.project,
108551		"zone":      c.zone,
108552		"nodeGroup": c.nodeGroup,
108553	})
108554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108555}
108556
108557// Do executes the "compute.nodeGroups.delete" call.
108558// Exactly one of *Operation or error will be non-nil. Any non-2xx
108559// status code is an error. Response headers are in either
108560// *Operation.ServerResponse.Header or (if a response was returned at
108561// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108562// to check whether the returned error was because
108563// http.StatusNotModified was returned.
108564func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108565	gensupport.SetOptions(c.urlParams_, opts...)
108566	res, err := c.doRequest("json")
108567	if res != nil && res.StatusCode == http.StatusNotModified {
108568		if res.Body != nil {
108569			res.Body.Close()
108570		}
108571		return nil, &googleapi.Error{
108572			Code:   res.StatusCode,
108573			Header: res.Header,
108574		}
108575	}
108576	if err != nil {
108577		return nil, err
108578	}
108579	defer googleapi.CloseBody(res)
108580	if err := googleapi.CheckResponse(res); err != nil {
108581		return nil, err
108582	}
108583	ret := &Operation{
108584		ServerResponse: googleapi.ServerResponse{
108585			Header:         res.Header,
108586			HTTPStatusCode: res.StatusCode,
108587		},
108588	}
108589	target := &ret
108590	if err := gensupport.DecodeResponse(target, res); err != nil {
108591		return nil, err
108592	}
108593	return ret, nil
108594	// {
108595	//   "description": "Deletes the specified NodeGroup resource.",
108596	//   "httpMethod": "DELETE",
108597	//   "id": "compute.nodeGroups.delete",
108598	//   "parameterOrder": [
108599	//     "project",
108600	//     "zone",
108601	//     "nodeGroup"
108602	//   ],
108603	//   "parameters": {
108604	//     "nodeGroup": {
108605	//       "description": "Name of the NodeGroup resource to delete.",
108606	//       "location": "path",
108607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108608	//       "required": true,
108609	//       "type": "string"
108610	//     },
108611	//     "project": {
108612	//       "description": "Project ID for this request.",
108613	//       "location": "path",
108614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108615	//       "required": true,
108616	//       "type": "string"
108617	//     },
108618	//     "requestId": {
108619	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108620	//       "location": "query",
108621	//       "type": "string"
108622	//     },
108623	//     "zone": {
108624	//       "description": "The name of the zone for this request.",
108625	//       "location": "path",
108626	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108627	//       "required": true,
108628	//       "type": "string"
108629	//     }
108630	//   },
108631	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
108632	//   "response": {
108633	//     "$ref": "Operation"
108634	//   },
108635	//   "scopes": [
108636	//     "https://www.googleapis.com/auth/cloud-platform",
108637	//     "https://www.googleapis.com/auth/compute"
108638	//   ]
108639	// }
108640
108641}
108642
108643// method id "compute.nodeGroups.deleteNodes":
108644
108645type NodeGroupsDeleteNodesCall struct {
108646	s                            *Service
108647	project                      string
108648	zone                         string
108649	nodeGroup                    string
108650	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
108651	urlParams_                   gensupport.URLParams
108652	ctx_                         context.Context
108653	header_                      http.Header
108654}
108655
108656// DeleteNodes: Deletes specified nodes from the node group.
108657func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
108658	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108659	c.project = project
108660	c.zone = zone
108661	c.nodeGroup = nodeGroup
108662	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
108663	return c
108664}
108665
108666// RequestId sets the optional parameter "requestId": An optional
108667// request ID to identify requests. Specify a unique request ID so that
108668// if you must retry your request, the server will know to ignore the
108669// request if it has already been completed.
108670//
108671// For example, consider a situation where you make an initial request
108672// and the request times out. If you make the request again with the
108673// same request ID, the server can check if original operation with the
108674// same request ID was received, and if so, will ignore the second
108675// request. This prevents clients from accidentally creating duplicate
108676// commitments.
108677//
108678// The request ID must be a valid UUID with the exception that zero UUID
108679// is not supported (00000000-0000-0000-0000-000000000000).
108680func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
108681	c.urlParams_.Set("requestId", requestId)
108682	return c
108683}
108684
108685// Fields allows partial responses to be retrieved. See
108686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108687// for more information.
108688func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
108689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108690	return c
108691}
108692
108693// Context sets the context to be used in this call's Do method. Any
108694// pending HTTP request will be aborted if the provided context is
108695// canceled.
108696func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
108697	c.ctx_ = ctx
108698	return c
108699}
108700
108701// Header returns an http.Header that can be modified by the caller to
108702// add HTTP headers to the request.
108703func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
108704	if c.header_ == nil {
108705		c.header_ = make(http.Header)
108706	}
108707	return c.header_
108708}
108709
108710func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
108711	reqHeaders := make(http.Header)
108712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
108713	for k, v := range c.header_ {
108714		reqHeaders[k] = v
108715	}
108716	reqHeaders.Set("User-Agent", c.s.userAgent())
108717	var body io.Reader = nil
108718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
108719	if err != nil {
108720		return nil, err
108721	}
108722	reqHeaders.Set("Content-Type", "application/json")
108723	c.urlParams_.Set("alt", alt)
108724	c.urlParams_.Set("prettyPrint", "false")
108725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
108726	urls += "?" + c.urlParams_.Encode()
108727	req, err := http.NewRequest("POST", urls, body)
108728	if err != nil {
108729		return nil, err
108730	}
108731	req.Header = reqHeaders
108732	googleapi.Expand(req.URL, map[string]string{
108733		"project":   c.project,
108734		"zone":      c.zone,
108735		"nodeGroup": c.nodeGroup,
108736	})
108737	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108738}
108739
108740// Do executes the "compute.nodeGroups.deleteNodes" call.
108741// Exactly one of *Operation or error will be non-nil. Any non-2xx
108742// status code is an error. Response headers are in either
108743// *Operation.ServerResponse.Header or (if a response was returned at
108744// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108745// to check whether the returned error was because
108746// http.StatusNotModified was returned.
108747func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108748	gensupport.SetOptions(c.urlParams_, opts...)
108749	res, err := c.doRequest("json")
108750	if res != nil && res.StatusCode == http.StatusNotModified {
108751		if res.Body != nil {
108752			res.Body.Close()
108753		}
108754		return nil, &googleapi.Error{
108755			Code:   res.StatusCode,
108756			Header: res.Header,
108757		}
108758	}
108759	if err != nil {
108760		return nil, err
108761	}
108762	defer googleapi.CloseBody(res)
108763	if err := googleapi.CheckResponse(res); err != nil {
108764		return nil, err
108765	}
108766	ret := &Operation{
108767		ServerResponse: googleapi.ServerResponse{
108768			Header:         res.Header,
108769			HTTPStatusCode: res.StatusCode,
108770		},
108771	}
108772	target := &ret
108773	if err := gensupport.DecodeResponse(target, res); err != nil {
108774		return nil, err
108775	}
108776	return ret, nil
108777	// {
108778	//   "description": "Deletes specified nodes from the node group.",
108779	//   "httpMethod": "POST",
108780	//   "id": "compute.nodeGroups.deleteNodes",
108781	//   "parameterOrder": [
108782	//     "project",
108783	//     "zone",
108784	//     "nodeGroup"
108785	//   ],
108786	//   "parameters": {
108787	//     "nodeGroup": {
108788	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
108789	//       "location": "path",
108790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108791	//       "required": true,
108792	//       "type": "string"
108793	//     },
108794	//     "project": {
108795	//       "description": "Project ID for this request.",
108796	//       "location": "path",
108797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108798	//       "required": true,
108799	//       "type": "string"
108800	//     },
108801	//     "requestId": {
108802	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108803	//       "location": "query",
108804	//       "type": "string"
108805	//     },
108806	//     "zone": {
108807	//       "description": "The name of the zone for this request.",
108808	//       "location": "path",
108809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108810	//       "required": true,
108811	//       "type": "string"
108812	//     }
108813	//   },
108814	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
108815	//   "request": {
108816	//     "$ref": "NodeGroupsDeleteNodesRequest"
108817	//   },
108818	//   "response": {
108819	//     "$ref": "Operation"
108820	//   },
108821	//   "scopes": [
108822	//     "https://www.googleapis.com/auth/cloud-platform",
108823	//     "https://www.googleapis.com/auth/compute"
108824	//   ]
108825	// }
108826
108827}
108828
108829// method id "compute.nodeGroups.get":
108830
108831type NodeGroupsGetCall struct {
108832	s            *Service
108833	project      string
108834	zone         string
108835	nodeGroup    string
108836	urlParams_   gensupport.URLParams
108837	ifNoneMatch_ string
108838	ctx_         context.Context
108839	header_      http.Header
108840}
108841
108842// Get: Returns the specified NodeGroup. Get a list of available
108843// NodeGroups by making a list() request. Note: the "nodes" field should
108844// not be used. Use nodeGroups.listNodes instead.
108845func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
108846	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108847	c.project = project
108848	c.zone = zone
108849	c.nodeGroup = nodeGroup
108850	return c
108851}
108852
108853// Fields allows partial responses to be retrieved. See
108854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108855// for more information.
108856func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
108857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108858	return c
108859}
108860
108861// IfNoneMatch sets the optional parameter which makes the operation
108862// fail if the object's ETag matches the given value. This is useful for
108863// getting updates only after the object has changed since the last
108864// request. Use googleapi.IsNotModified to check whether the response
108865// error from Do is the result of In-None-Match.
108866func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
108867	c.ifNoneMatch_ = entityTag
108868	return c
108869}
108870
108871// Context sets the context to be used in this call's Do method. Any
108872// pending HTTP request will be aborted if the provided context is
108873// canceled.
108874func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
108875	c.ctx_ = ctx
108876	return c
108877}
108878
108879// Header returns an http.Header that can be modified by the caller to
108880// add HTTP headers to the request.
108881func (c *NodeGroupsGetCall) Header() http.Header {
108882	if c.header_ == nil {
108883		c.header_ = make(http.Header)
108884	}
108885	return c.header_
108886}
108887
108888func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
108889	reqHeaders := make(http.Header)
108890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
108891	for k, v := range c.header_ {
108892		reqHeaders[k] = v
108893	}
108894	reqHeaders.Set("User-Agent", c.s.userAgent())
108895	if c.ifNoneMatch_ != "" {
108896		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108897	}
108898	var body io.Reader = nil
108899	c.urlParams_.Set("alt", alt)
108900	c.urlParams_.Set("prettyPrint", "false")
108901	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
108902	urls += "?" + c.urlParams_.Encode()
108903	req, err := http.NewRequest("GET", urls, body)
108904	if err != nil {
108905		return nil, err
108906	}
108907	req.Header = reqHeaders
108908	googleapi.Expand(req.URL, map[string]string{
108909		"project":   c.project,
108910		"zone":      c.zone,
108911		"nodeGroup": c.nodeGroup,
108912	})
108913	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108914}
108915
108916// Do executes the "compute.nodeGroups.get" call.
108917// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
108918// status code is an error. Response headers are in either
108919// *NodeGroup.ServerResponse.Header or (if a response was returned at
108920// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108921// to check whether the returned error was because
108922// http.StatusNotModified was returned.
108923func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
108924	gensupport.SetOptions(c.urlParams_, opts...)
108925	res, err := c.doRequest("json")
108926	if res != nil && res.StatusCode == http.StatusNotModified {
108927		if res.Body != nil {
108928			res.Body.Close()
108929		}
108930		return nil, &googleapi.Error{
108931			Code:   res.StatusCode,
108932			Header: res.Header,
108933		}
108934	}
108935	if err != nil {
108936		return nil, err
108937	}
108938	defer googleapi.CloseBody(res)
108939	if err := googleapi.CheckResponse(res); err != nil {
108940		return nil, err
108941	}
108942	ret := &NodeGroup{
108943		ServerResponse: googleapi.ServerResponse{
108944			Header:         res.Header,
108945			HTTPStatusCode: res.StatusCode,
108946		},
108947	}
108948	target := &ret
108949	if err := gensupport.DecodeResponse(target, res); err != nil {
108950		return nil, err
108951	}
108952	return ret, nil
108953	// {
108954	//   "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.",
108955	//   "httpMethod": "GET",
108956	//   "id": "compute.nodeGroups.get",
108957	//   "parameterOrder": [
108958	//     "project",
108959	//     "zone",
108960	//     "nodeGroup"
108961	//   ],
108962	//   "parameters": {
108963	//     "nodeGroup": {
108964	//       "description": "Name of the node group to return.",
108965	//       "location": "path",
108966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108967	//       "required": true,
108968	//       "type": "string"
108969	//     },
108970	//     "project": {
108971	//       "description": "Project ID for this request.",
108972	//       "location": "path",
108973	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108974	//       "required": true,
108975	//       "type": "string"
108976	//     },
108977	//     "zone": {
108978	//       "description": "The name of the zone for this request.",
108979	//       "location": "path",
108980	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108981	//       "required": true,
108982	//       "type": "string"
108983	//     }
108984	//   },
108985	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
108986	//   "response": {
108987	//     "$ref": "NodeGroup"
108988	//   },
108989	//   "scopes": [
108990	//     "https://www.googleapis.com/auth/cloud-platform",
108991	//     "https://www.googleapis.com/auth/compute",
108992	//     "https://www.googleapis.com/auth/compute.readonly"
108993	//   ]
108994	// }
108995
108996}
108997
108998// method id "compute.nodeGroups.getIamPolicy":
108999
109000type NodeGroupsGetIamPolicyCall struct {
109001	s            *Service
109002	project      string
109003	zone         string
109004	resource     string
109005	urlParams_   gensupport.URLParams
109006	ifNoneMatch_ string
109007	ctx_         context.Context
109008	header_      http.Header
109009}
109010
109011// GetIamPolicy: Gets the access control policy for a resource. May be
109012// empty if no such policy or resource exists.
109013func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
109014	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109015	c.project = project
109016	c.zone = zone
109017	c.resource = resource
109018	return c
109019}
109020
109021// OptionsRequestedPolicyVersion sets the optional parameter
109022// "optionsRequestedPolicyVersion": Requested IAM Policy version.
109023func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
109024	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
109025	return c
109026}
109027
109028// Fields allows partial responses to be retrieved. See
109029// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109030// for more information.
109031func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
109032	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109033	return c
109034}
109035
109036// IfNoneMatch sets the optional parameter which makes the operation
109037// fail if the object's ETag matches the given value. This is useful for
109038// getting updates only after the object has changed since the last
109039// request. Use googleapi.IsNotModified to check whether the response
109040// error from Do is the result of In-None-Match.
109041func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
109042	c.ifNoneMatch_ = entityTag
109043	return c
109044}
109045
109046// Context sets the context to be used in this call's Do method. Any
109047// pending HTTP request will be aborted if the provided context is
109048// canceled.
109049func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
109050	c.ctx_ = ctx
109051	return c
109052}
109053
109054// Header returns an http.Header that can be modified by the caller to
109055// add HTTP headers to the request.
109056func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
109057	if c.header_ == nil {
109058		c.header_ = make(http.Header)
109059	}
109060	return c.header_
109061}
109062
109063func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
109064	reqHeaders := make(http.Header)
109065	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
109066	for k, v := range c.header_ {
109067		reqHeaders[k] = v
109068	}
109069	reqHeaders.Set("User-Agent", c.s.userAgent())
109070	if c.ifNoneMatch_ != "" {
109071		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109072	}
109073	var body io.Reader = nil
109074	c.urlParams_.Set("alt", alt)
109075	c.urlParams_.Set("prettyPrint", "false")
109076	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
109077	urls += "?" + c.urlParams_.Encode()
109078	req, err := http.NewRequest("GET", urls, body)
109079	if err != nil {
109080		return nil, err
109081	}
109082	req.Header = reqHeaders
109083	googleapi.Expand(req.URL, map[string]string{
109084		"project":  c.project,
109085		"zone":     c.zone,
109086		"resource": c.resource,
109087	})
109088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109089}
109090
109091// Do executes the "compute.nodeGroups.getIamPolicy" call.
109092// Exactly one of *Policy or error will be non-nil. Any non-2xx status
109093// code is an error. Response headers are in either
109094// *Policy.ServerResponse.Header or (if a response was returned at all)
109095// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
109096// check whether the returned error was because http.StatusNotModified
109097// was returned.
109098func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
109099	gensupport.SetOptions(c.urlParams_, opts...)
109100	res, err := c.doRequest("json")
109101	if res != nil && res.StatusCode == http.StatusNotModified {
109102		if res.Body != nil {
109103			res.Body.Close()
109104		}
109105		return nil, &googleapi.Error{
109106			Code:   res.StatusCode,
109107			Header: res.Header,
109108		}
109109	}
109110	if err != nil {
109111		return nil, err
109112	}
109113	defer googleapi.CloseBody(res)
109114	if err := googleapi.CheckResponse(res); err != nil {
109115		return nil, err
109116	}
109117	ret := &Policy{
109118		ServerResponse: googleapi.ServerResponse{
109119			Header:         res.Header,
109120			HTTPStatusCode: res.StatusCode,
109121		},
109122	}
109123	target := &ret
109124	if err := gensupport.DecodeResponse(target, res); err != nil {
109125		return nil, err
109126	}
109127	return ret, nil
109128	// {
109129	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
109130	//   "httpMethod": "GET",
109131	//   "id": "compute.nodeGroups.getIamPolicy",
109132	//   "parameterOrder": [
109133	//     "project",
109134	//     "zone",
109135	//     "resource"
109136	//   ],
109137	//   "parameters": {
109138	//     "optionsRequestedPolicyVersion": {
109139	//       "description": "Requested IAM Policy version.",
109140	//       "format": "int32",
109141	//       "location": "query",
109142	//       "type": "integer"
109143	//     },
109144	//     "project": {
109145	//       "description": "Project ID for this request.",
109146	//       "location": "path",
109147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109148	//       "required": true,
109149	//       "type": "string"
109150	//     },
109151	//     "resource": {
109152	//       "description": "Name or id of the resource for this request.",
109153	//       "location": "path",
109154	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109155	//       "required": true,
109156	//       "type": "string"
109157	//     },
109158	//     "zone": {
109159	//       "description": "The name of the zone for this request.",
109160	//       "location": "path",
109161	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109162	//       "required": true,
109163	//       "type": "string"
109164	//     }
109165	//   },
109166	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
109167	//   "response": {
109168	//     "$ref": "Policy"
109169	//   },
109170	//   "scopes": [
109171	//     "https://www.googleapis.com/auth/cloud-platform",
109172	//     "https://www.googleapis.com/auth/compute",
109173	//     "https://www.googleapis.com/auth/compute.readonly"
109174	//   ]
109175	// }
109176
109177}
109178
109179// method id "compute.nodeGroups.insert":
109180
109181type NodeGroupsInsertCall struct {
109182	s          *Service
109183	project    string
109184	zone       string
109185	nodegroup  *NodeGroup
109186	urlParams_ gensupport.URLParams
109187	ctx_       context.Context
109188	header_    http.Header
109189}
109190
109191// Insert: Creates a NodeGroup resource in the specified project using
109192// the data included in the request.
109193func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
109194	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109195	c.project = project
109196	c.zone = zone
109197	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
109198	c.nodegroup = nodegroup
109199	return c
109200}
109201
109202// RequestId sets the optional parameter "requestId": An optional
109203// request ID to identify requests. Specify a unique request ID so that
109204// if you must retry your request, the server will know to ignore the
109205// request if it has already been completed.
109206//
109207// For example, consider a situation where you make an initial request
109208// and the request times out. If you make the request again with the
109209// same request ID, the server can check if original operation with the
109210// same request ID was received, and if so, will ignore the second
109211// request. This prevents clients from accidentally creating duplicate
109212// commitments.
109213//
109214// The request ID must be a valid UUID with the exception that zero UUID
109215// is not supported (00000000-0000-0000-0000-000000000000).
109216func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
109217	c.urlParams_.Set("requestId", requestId)
109218	return c
109219}
109220
109221// Fields allows partial responses to be retrieved. See
109222// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109223// for more information.
109224func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
109225	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109226	return c
109227}
109228
109229// Context sets the context to be used in this call's Do method. Any
109230// pending HTTP request will be aborted if the provided context is
109231// canceled.
109232func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
109233	c.ctx_ = ctx
109234	return c
109235}
109236
109237// Header returns an http.Header that can be modified by the caller to
109238// add HTTP headers to the request.
109239func (c *NodeGroupsInsertCall) Header() http.Header {
109240	if c.header_ == nil {
109241		c.header_ = make(http.Header)
109242	}
109243	return c.header_
109244}
109245
109246func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
109247	reqHeaders := make(http.Header)
109248	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
109249	for k, v := range c.header_ {
109250		reqHeaders[k] = v
109251	}
109252	reqHeaders.Set("User-Agent", c.s.userAgent())
109253	var body io.Reader = nil
109254	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
109255	if err != nil {
109256		return nil, err
109257	}
109258	reqHeaders.Set("Content-Type", "application/json")
109259	c.urlParams_.Set("alt", alt)
109260	c.urlParams_.Set("prettyPrint", "false")
109261	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
109262	urls += "?" + c.urlParams_.Encode()
109263	req, err := http.NewRequest("POST", urls, body)
109264	if err != nil {
109265		return nil, err
109266	}
109267	req.Header = reqHeaders
109268	googleapi.Expand(req.URL, map[string]string{
109269		"project": c.project,
109270		"zone":    c.zone,
109271	})
109272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109273}
109274
109275// Do executes the "compute.nodeGroups.insert" call.
109276// Exactly one of *Operation or error will be non-nil. Any non-2xx
109277// status code is an error. Response headers are in either
109278// *Operation.ServerResponse.Header or (if a response was returned at
109279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109280// to check whether the returned error was because
109281// http.StatusNotModified was returned.
109282func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109283	gensupport.SetOptions(c.urlParams_, opts...)
109284	res, err := c.doRequest("json")
109285	if res != nil && res.StatusCode == http.StatusNotModified {
109286		if res.Body != nil {
109287			res.Body.Close()
109288		}
109289		return nil, &googleapi.Error{
109290			Code:   res.StatusCode,
109291			Header: res.Header,
109292		}
109293	}
109294	if err != nil {
109295		return nil, err
109296	}
109297	defer googleapi.CloseBody(res)
109298	if err := googleapi.CheckResponse(res); err != nil {
109299		return nil, err
109300	}
109301	ret := &Operation{
109302		ServerResponse: googleapi.ServerResponse{
109303			Header:         res.Header,
109304			HTTPStatusCode: res.StatusCode,
109305		},
109306	}
109307	target := &ret
109308	if err := gensupport.DecodeResponse(target, res); err != nil {
109309		return nil, err
109310	}
109311	return ret, nil
109312	// {
109313	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
109314	//   "httpMethod": "POST",
109315	//   "id": "compute.nodeGroups.insert",
109316	//   "parameterOrder": [
109317	//     "project",
109318	//     "zone",
109319	//     "initialNodeCount"
109320	//   ],
109321	//   "parameters": {
109322	//     "initialNodeCount": {
109323	//       "description": "Initial count of nodes in the node group.",
109324	//       "format": "int32",
109325	//       "location": "query",
109326	//       "required": true,
109327	//       "type": "integer"
109328	//     },
109329	//     "project": {
109330	//       "description": "Project ID for this request.",
109331	//       "location": "path",
109332	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109333	//       "required": true,
109334	//       "type": "string"
109335	//     },
109336	//     "requestId": {
109337	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109338	//       "location": "query",
109339	//       "type": "string"
109340	//     },
109341	//     "zone": {
109342	//       "description": "The name of the zone for this request.",
109343	//       "location": "path",
109344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109345	//       "required": true,
109346	//       "type": "string"
109347	//     }
109348	//   },
109349	//   "path": "{project}/zones/{zone}/nodeGroups",
109350	//   "request": {
109351	//     "$ref": "NodeGroup"
109352	//   },
109353	//   "response": {
109354	//     "$ref": "Operation"
109355	//   },
109356	//   "scopes": [
109357	//     "https://www.googleapis.com/auth/cloud-platform",
109358	//     "https://www.googleapis.com/auth/compute"
109359	//   ]
109360	// }
109361
109362}
109363
109364// method id "compute.nodeGroups.list":
109365
109366type NodeGroupsListCall struct {
109367	s            *Service
109368	project      string
109369	zone         string
109370	urlParams_   gensupport.URLParams
109371	ifNoneMatch_ string
109372	ctx_         context.Context
109373	header_      http.Header
109374}
109375
109376// List: Retrieves a list of node groups available to the specified
109377// project. Note: use nodeGroups.listNodes for more details about each
109378// group.
109379func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
109380	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109381	c.project = project
109382	c.zone = zone
109383	return c
109384}
109385
109386// Filter sets the optional parameter "filter": A filter expression that
109387// filters resources listed in the response. The expression must specify
109388// the field name, a comparison operator, and the value that you want to
109389// use for filtering. The value must be a string, a number, or a
109390// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109391// `<`.
109392//
109393// For example, if you are filtering Compute Engine instances, you can
109394// exclude instances named `example-instance` by specifying `name !=
109395// example-instance`.
109396//
109397// You can also filter nested fields. For example, you could specify
109398// `scheduling.automaticRestart = false` to include instances only if
109399// they are not scheduled for automatic restarts. You can use filtering
109400// on nested fields to filter based on resource labels.
109401//
109402// To filter on multiple expressions, provide each separate expression
109403// within parentheses. For example: ``` (scheduling.automaticRestart =
109404// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
109405// is an `AND` expression. However, you can include `AND` and `OR`
109406// expressions explicitly. For example: ``` (cpuPlatform = "Intel
109407// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
109408// (scheduling.automaticRestart = true) ```
109409func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
109410	c.urlParams_.Set("filter", filter)
109411	return c
109412}
109413
109414// MaxResults sets the optional parameter "maxResults": The maximum
109415// number of results per page that should be returned. If the number of
109416// available results is larger than `maxResults`, Compute Engine returns
109417// a `nextPageToken` that can be used to get the next page of results in
109418// subsequent list requests. Acceptable values are `0` to `500`,
109419// inclusive. (Default: `500`)
109420func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
109421	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109422	return c
109423}
109424
109425// OrderBy sets the optional parameter "orderBy": Sorts list results by
109426// a certain order. By default, results are returned in alphanumerical
109427// order based on the resource name.
109428//
109429// You can also sort results in descending order based on the creation
109430// timestamp using `orderBy="creationTimestamp desc". This sorts
109431// results based on the `creationTimestamp` field in reverse
109432// chronological order (newest result first). Use this to sort resources
109433// like operations so that the newest operation is returned
109434// first.
109435//
109436// Currently, only sorting by `name` or `creationTimestamp desc` is
109437// supported.
109438func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
109439	c.urlParams_.Set("orderBy", orderBy)
109440	return c
109441}
109442
109443// PageToken sets the optional parameter "pageToken": Specifies a page
109444// token to use. Set `pageToken` to the `nextPageToken` returned by a
109445// previous list request to get the next page of results.
109446func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
109447	c.urlParams_.Set("pageToken", pageToken)
109448	return c
109449}
109450
109451// ReturnPartialSuccess sets the optional parameter
109452// "returnPartialSuccess": Opt-in for partial success behavior which
109453// provides partial results in case of failure. The default value is
109454// false and the logic is the same as today.
109455func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall {
109456	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109457	return c
109458}
109459
109460// Fields allows partial responses to be retrieved. See
109461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109462// for more information.
109463func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
109464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109465	return c
109466}
109467
109468// IfNoneMatch sets the optional parameter which makes the operation
109469// fail if the object's ETag matches the given value. This is useful for
109470// getting updates only after the object has changed since the last
109471// request. Use googleapi.IsNotModified to check whether the response
109472// error from Do is the result of In-None-Match.
109473func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
109474	c.ifNoneMatch_ = entityTag
109475	return c
109476}
109477
109478// Context sets the context to be used in this call's Do method. Any
109479// pending HTTP request will be aborted if the provided context is
109480// canceled.
109481func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
109482	c.ctx_ = ctx
109483	return c
109484}
109485
109486// Header returns an http.Header that can be modified by the caller to
109487// add HTTP headers to the request.
109488func (c *NodeGroupsListCall) Header() http.Header {
109489	if c.header_ == nil {
109490		c.header_ = make(http.Header)
109491	}
109492	return c.header_
109493}
109494
109495func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
109496	reqHeaders := make(http.Header)
109497	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
109498	for k, v := range c.header_ {
109499		reqHeaders[k] = v
109500	}
109501	reqHeaders.Set("User-Agent", c.s.userAgent())
109502	if c.ifNoneMatch_ != "" {
109503		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109504	}
109505	var body io.Reader = nil
109506	c.urlParams_.Set("alt", alt)
109507	c.urlParams_.Set("prettyPrint", "false")
109508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
109509	urls += "?" + c.urlParams_.Encode()
109510	req, err := http.NewRequest("GET", urls, body)
109511	if err != nil {
109512		return nil, err
109513	}
109514	req.Header = reqHeaders
109515	googleapi.Expand(req.URL, map[string]string{
109516		"project": c.project,
109517		"zone":    c.zone,
109518	})
109519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109520}
109521
109522// Do executes the "compute.nodeGroups.list" call.
109523// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
109524// status code is an error. Response headers are in either
109525// *NodeGroupList.ServerResponse.Header or (if a response was returned
109526// at all) in error.(*googleapi.Error).Header. Use
109527// googleapi.IsNotModified to check whether the returned error was
109528// because http.StatusNotModified was returned.
109529func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
109530	gensupport.SetOptions(c.urlParams_, opts...)
109531	res, err := c.doRequest("json")
109532	if res != nil && res.StatusCode == http.StatusNotModified {
109533		if res.Body != nil {
109534			res.Body.Close()
109535		}
109536		return nil, &googleapi.Error{
109537			Code:   res.StatusCode,
109538			Header: res.Header,
109539		}
109540	}
109541	if err != nil {
109542		return nil, err
109543	}
109544	defer googleapi.CloseBody(res)
109545	if err := googleapi.CheckResponse(res); err != nil {
109546		return nil, err
109547	}
109548	ret := &NodeGroupList{
109549		ServerResponse: googleapi.ServerResponse{
109550			Header:         res.Header,
109551			HTTPStatusCode: res.StatusCode,
109552		},
109553	}
109554	target := &ret
109555	if err := gensupport.DecodeResponse(target, res); err != nil {
109556		return nil, err
109557	}
109558	return ret, nil
109559	// {
109560	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
109561	//   "httpMethod": "GET",
109562	//   "id": "compute.nodeGroups.list",
109563	//   "parameterOrder": [
109564	//     "project",
109565	//     "zone"
109566	//   ],
109567	//   "parameters": {
109568	//     "filter": {
109569	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
109570	//       "location": "query",
109571	//       "type": "string"
109572	//     },
109573	//     "maxResults": {
109574	//       "default": "500",
109575	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109576	//       "format": "uint32",
109577	//       "location": "query",
109578	//       "minimum": "0",
109579	//       "type": "integer"
109580	//     },
109581	//     "orderBy": {
109582	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
109583	//       "location": "query",
109584	//       "type": "string"
109585	//     },
109586	//     "pageToken": {
109587	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109588	//       "location": "query",
109589	//       "type": "string"
109590	//     },
109591	//     "project": {
109592	//       "description": "Project ID for this request.",
109593	//       "location": "path",
109594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109595	//       "required": true,
109596	//       "type": "string"
109597	//     },
109598	//     "returnPartialSuccess": {
109599	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
109600	//       "location": "query",
109601	//       "type": "boolean"
109602	//     },
109603	//     "zone": {
109604	//       "description": "The name of the zone for this request.",
109605	//       "location": "path",
109606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109607	//       "required": true,
109608	//       "type": "string"
109609	//     }
109610	//   },
109611	//   "path": "{project}/zones/{zone}/nodeGroups",
109612	//   "response": {
109613	//     "$ref": "NodeGroupList"
109614	//   },
109615	//   "scopes": [
109616	//     "https://www.googleapis.com/auth/cloud-platform",
109617	//     "https://www.googleapis.com/auth/compute",
109618	//     "https://www.googleapis.com/auth/compute.readonly"
109619	//   ]
109620	// }
109621
109622}
109623
109624// Pages invokes f for each page of results.
109625// A non-nil error returned from f will halt the iteration.
109626// The provided context supersedes any context provided to the Context method.
109627func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
109628	c.ctx_ = ctx
109629	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109630	for {
109631		x, err := c.Do()
109632		if err != nil {
109633			return err
109634		}
109635		if err := f(x); err != nil {
109636			return err
109637		}
109638		if x.NextPageToken == "" {
109639			return nil
109640		}
109641		c.PageToken(x.NextPageToken)
109642	}
109643}
109644
109645// method id "compute.nodeGroups.listNodes":
109646
109647type NodeGroupsListNodesCall struct {
109648	s          *Service
109649	project    string
109650	zone       string
109651	nodeGroup  string
109652	urlParams_ gensupport.URLParams
109653	ctx_       context.Context
109654	header_    http.Header
109655}
109656
109657// ListNodes: Lists nodes in the node group.
109658func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
109659	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109660	c.project = project
109661	c.zone = zone
109662	c.nodeGroup = nodeGroup
109663	return c
109664}
109665
109666// Filter sets the optional parameter "filter": A filter expression that
109667// filters resources listed in the response. The expression must specify
109668// the field name, a comparison operator, and the value that you want to
109669// use for filtering. The value must be a string, a number, or a
109670// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109671// `<`.
109672//
109673// For example, if you are filtering Compute Engine instances, you can
109674// exclude instances named `example-instance` by specifying `name !=
109675// example-instance`.
109676//
109677// You can also filter nested fields. For example, you could specify
109678// `scheduling.automaticRestart = false` to include instances only if
109679// they are not scheduled for automatic restarts. You can use filtering
109680// on nested fields to filter based on resource labels.
109681//
109682// To filter on multiple expressions, provide each separate expression
109683// within parentheses. For example: ``` (scheduling.automaticRestart =
109684// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
109685// is an `AND` expression. However, you can include `AND` and `OR`
109686// expressions explicitly. For example: ``` (cpuPlatform = "Intel
109687// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
109688// (scheduling.automaticRestart = true) ```
109689func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
109690	c.urlParams_.Set("filter", filter)
109691	return c
109692}
109693
109694// MaxResults sets the optional parameter "maxResults": The maximum
109695// number of results per page that should be returned. If the number of
109696// available results is larger than `maxResults`, Compute Engine returns
109697// a `nextPageToken` that can be used to get the next page of results in
109698// subsequent list requests. Acceptable values are `0` to `500`,
109699// inclusive. (Default: `500`)
109700func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
109701	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109702	return c
109703}
109704
109705// OrderBy sets the optional parameter "orderBy": Sorts list results by
109706// a certain order. By default, results are returned in alphanumerical
109707// order based on the resource name.
109708//
109709// You can also sort results in descending order based on the creation
109710// timestamp using `orderBy="creationTimestamp desc". This sorts
109711// results based on the `creationTimestamp` field in reverse
109712// chronological order (newest result first). Use this to sort resources
109713// like operations so that the newest operation is returned
109714// first.
109715//
109716// Currently, only sorting by `name` or `creationTimestamp desc` is
109717// supported.
109718func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
109719	c.urlParams_.Set("orderBy", orderBy)
109720	return c
109721}
109722
109723// PageToken sets the optional parameter "pageToken": Specifies a page
109724// token to use. Set `pageToken` to the `nextPageToken` returned by a
109725// previous list request to get the next page of results.
109726func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
109727	c.urlParams_.Set("pageToken", pageToken)
109728	return c
109729}
109730
109731// ReturnPartialSuccess sets the optional parameter
109732// "returnPartialSuccess": Opt-in for partial success behavior which
109733// provides partial results in case of failure. The default value is
109734// false and the logic is the same as today.
109735func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall {
109736	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109737	return c
109738}
109739
109740// Fields allows partial responses to be retrieved. See
109741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109742// for more information.
109743func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
109744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109745	return c
109746}
109747
109748// Context sets the context to be used in this call's Do method. Any
109749// pending HTTP request will be aborted if the provided context is
109750// canceled.
109751func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
109752	c.ctx_ = ctx
109753	return c
109754}
109755
109756// Header returns an http.Header that can be modified by the caller to
109757// add HTTP headers to the request.
109758func (c *NodeGroupsListNodesCall) Header() http.Header {
109759	if c.header_ == nil {
109760		c.header_ = make(http.Header)
109761	}
109762	return c.header_
109763}
109764
109765func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
109766	reqHeaders := make(http.Header)
109767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
109768	for k, v := range c.header_ {
109769		reqHeaders[k] = v
109770	}
109771	reqHeaders.Set("User-Agent", c.s.userAgent())
109772	var body io.Reader = nil
109773	c.urlParams_.Set("alt", alt)
109774	c.urlParams_.Set("prettyPrint", "false")
109775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
109776	urls += "?" + c.urlParams_.Encode()
109777	req, err := http.NewRequest("POST", urls, body)
109778	if err != nil {
109779		return nil, err
109780	}
109781	req.Header = reqHeaders
109782	googleapi.Expand(req.URL, map[string]string{
109783		"project":   c.project,
109784		"zone":      c.zone,
109785		"nodeGroup": c.nodeGroup,
109786	})
109787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109788}
109789
109790// Do executes the "compute.nodeGroups.listNodes" call.
109791// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
109792// non-2xx status code is an error. Response headers are in either
109793// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
109794// returned at all) in error.(*googleapi.Error).Header. Use
109795// googleapi.IsNotModified to check whether the returned error was
109796// because http.StatusNotModified was returned.
109797func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
109798	gensupport.SetOptions(c.urlParams_, opts...)
109799	res, err := c.doRequest("json")
109800	if res != nil && res.StatusCode == http.StatusNotModified {
109801		if res.Body != nil {
109802			res.Body.Close()
109803		}
109804		return nil, &googleapi.Error{
109805			Code:   res.StatusCode,
109806			Header: res.Header,
109807		}
109808	}
109809	if err != nil {
109810		return nil, err
109811	}
109812	defer googleapi.CloseBody(res)
109813	if err := googleapi.CheckResponse(res); err != nil {
109814		return nil, err
109815	}
109816	ret := &NodeGroupsListNodes{
109817		ServerResponse: googleapi.ServerResponse{
109818			Header:         res.Header,
109819			HTTPStatusCode: res.StatusCode,
109820		},
109821	}
109822	target := &ret
109823	if err := gensupport.DecodeResponse(target, res); err != nil {
109824		return nil, err
109825	}
109826	return ret, nil
109827	// {
109828	//   "description": "Lists nodes in the node group.",
109829	//   "httpMethod": "POST",
109830	//   "id": "compute.nodeGroups.listNodes",
109831	//   "parameterOrder": [
109832	//     "project",
109833	//     "zone",
109834	//     "nodeGroup"
109835	//   ],
109836	//   "parameters": {
109837	//     "filter": {
109838	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
109839	//       "location": "query",
109840	//       "type": "string"
109841	//     },
109842	//     "maxResults": {
109843	//       "default": "500",
109844	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109845	//       "format": "uint32",
109846	//       "location": "query",
109847	//       "minimum": "0",
109848	//       "type": "integer"
109849	//     },
109850	//     "nodeGroup": {
109851	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
109852	//       "location": "path",
109853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109854	//       "required": true,
109855	//       "type": "string"
109856	//     },
109857	//     "orderBy": {
109858	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
109859	//       "location": "query",
109860	//       "type": "string"
109861	//     },
109862	//     "pageToken": {
109863	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109864	//       "location": "query",
109865	//       "type": "string"
109866	//     },
109867	//     "project": {
109868	//       "description": "Project ID for this request.",
109869	//       "location": "path",
109870	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109871	//       "required": true,
109872	//       "type": "string"
109873	//     },
109874	//     "returnPartialSuccess": {
109875	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
109876	//       "location": "query",
109877	//       "type": "boolean"
109878	//     },
109879	//     "zone": {
109880	//       "description": "The name of the zone for this request.",
109881	//       "location": "path",
109882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109883	//       "required": true,
109884	//       "type": "string"
109885	//     }
109886	//   },
109887	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
109888	//   "response": {
109889	//     "$ref": "NodeGroupsListNodes"
109890	//   },
109891	//   "scopes": [
109892	//     "https://www.googleapis.com/auth/cloud-platform",
109893	//     "https://www.googleapis.com/auth/compute",
109894	//     "https://www.googleapis.com/auth/compute.readonly"
109895	//   ]
109896	// }
109897
109898}
109899
109900// Pages invokes f for each page of results.
109901// A non-nil error returned from f will halt the iteration.
109902// The provided context supersedes any context provided to the Context method.
109903func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
109904	c.ctx_ = ctx
109905	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109906	for {
109907		x, err := c.Do()
109908		if err != nil {
109909			return err
109910		}
109911		if err := f(x); err != nil {
109912			return err
109913		}
109914		if x.NextPageToken == "" {
109915			return nil
109916		}
109917		c.PageToken(x.NextPageToken)
109918	}
109919}
109920
109921// method id "compute.nodeGroups.patch":
109922
109923type NodeGroupsPatchCall struct {
109924	s          *Service
109925	project    string
109926	zone       string
109927	nodeGroup  string
109928	nodegroup  *NodeGroup
109929	urlParams_ gensupport.URLParams
109930	ctx_       context.Context
109931	header_    http.Header
109932}
109933
109934// Patch: Updates the specified node group.
109935func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
109936	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109937	c.project = project
109938	c.zone = zone
109939	c.nodeGroup = nodeGroup
109940	c.nodegroup = nodegroup
109941	return c
109942}
109943
109944// RequestId sets the optional parameter "requestId": An optional
109945// request ID to identify requests. Specify a unique request ID so that
109946// if you must retry your request, the server will know to ignore the
109947// request if it has already been completed.
109948//
109949// For example, consider a situation where you make an initial request
109950// and the request times out. If you make the request again with the
109951// same request ID, the server can check if original operation with the
109952// same request ID was received, and if so, will ignore the second
109953// request. This prevents clients from accidentally creating duplicate
109954// commitments.
109955//
109956// The request ID must be a valid UUID with the exception that zero UUID
109957// is not supported (00000000-0000-0000-0000-000000000000).
109958func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
109959	c.urlParams_.Set("requestId", requestId)
109960	return c
109961}
109962
109963// Fields allows partial responses to be retrieved. See
109964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109965// for more information.
109966func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
109967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109968	return c
109969}
109970
109971// Context sets the context to be used in this call's Do method. Any
109972// pending HTTP request will be aborted if the provided context is
109973// canceled.
109974func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
109975	c.ctx_ = ctx
109976	return c
109977}
109978
109979// Header returns an http.Header that can be modified by the caller to
109980// add HTTP headers to the request.
109981func (c *NodeGroupsPatchCall) Header() http.Header {
109982	if c.header_ == nil {
109983		c.header_ = make(http.Header)
109984	}
109985	return c.header_
109986}
109987
109988func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
109989	reqHeaders := make(http.Header)
109990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
109991	for k, v := range c.header_ {
109992		reqHeaders[k] = v
109993	}
109994	reqHeaders.Set("User-Agent", c.s.userAgent())
109995	var body io.Reader = nil
109996	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
109997	if err != nil {
109998		return nil, err
109999	}
110000	reqHeaders.Set("Content-Type", "application/json")
110001	c.urlParams_.Set("alt", alt)
110002	c.urlParams_.Set("prettyPrint", "false")
110003	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
110004	urls += "?" + c.urlParams_.Encode()
110005	req, err := http.NewRequest("PATCH", urls, body)
110006	if err != nil {
110007		return nil, err
110008	}
110009	req.Header = reqHeaders
110010	googleapi.Expand(req.URL, map[string]string{
110011		"project":   c.project,
110012		"zone":      c.zone,
110013		"nodeGroup": c.nodeGroup,
110014	})
110015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110016}
110017
110018// Do executes the "compute.nodeGroups.patch" call.
110019// Exactly one of *Operation or error will be non-nil. Any non-2xx
110020// status code is an error. Response headers are in either
110021// *Operation.ServerResponse.Header or (if a response was returned at
110022// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110023// to check whether the returned error was because
110024// http.StatusNotModified was returned.
110025func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110026	gensupport.SetOptions(c.urlParams_, opts...)
110027	res, err := c.doRequest("json")
110028	if res != nil && res.StatusCode == http.StatusNotModified {
110029		if res.Body != nil {
110030			res.Body.Close()
110031		}
110032		return nil, &googleapi.Error{
110033			Code:   res.StatusCode,
110034			Header: res.Header,
110035		}
110036	}
110037	if err != nil {
110038		return nil, err
110039	}
110040	defer googleapi.CloseBody(res)
110041	if err := googleapi.CheckResponse(res); err != nil {
110042		return nil, err
110043	}
110044	ret := &Operation{
110045		ServerResponse: googleapi.ServerResponse{
110046			Header:         res.Header,
110047			HTTPStatusCode: res.StatusCode,
110048		},
110049	}
110050	target := &ret
110051	if err := gensupport.DecodeResponse(target, res); err != nil {
110052		return nil, err
110053	}
110054	return ret, nil
110055	// {
110056	//   "description": "Updates the specified node group.",
110057	//   "httpMethod": "PATCH",
110058	//   "id": "compute.nodeGroups.patch",
110059	//   "parameterOrder": [
110060	//     "project",
110061	//     "zone",
110062	//     "nodeGroup"
110063	//   ],
110064	//   "parameters": {
110065	//     "nodeGroup": {
110066	//       "description": "Name of the NodeGroup resource to update.",
110067	//       "location": "path",
110068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110069	//       "required": true,
110070	//       "type": "string"
110071	//     },
110072	//     "project": {
110073	//       "description": "Project ID for this request.",
110074	//       "location": "path",
110075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110076	//       "required": true,
110077	//       "type": "string"
110078	//     },
110079	//     "requestId": {
110080	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110081	//       "location": "query",
110082	//       "type": "string"
110083	//     },
110084	//     "zone": {
110085	//       "description": "The name of the zone for this request.",
110086	//       "location": "path",
110087	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110088	//       "required": true,
110089	//       "type": "string"
110090	//     }
110091	//   },
110092	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
110093	//   "request": {
110094	//     "$ref": "NodeGroup"
110095	//   },
110096	//   "response": {
110097	//     "$ref": "Operation"
110098	//   },
110099	//   "scopes": [
110100	//     "https://www.googleapis.com/auth/cloud-platform",
110101	//     "https://www.googleapis.com/auth/compute"
110102	//   ]
110103	// }
110104
110105}
110106
110107// method id "compute.nodeGroups.setIamPolicy":
110108
110109type NodeGroupsSetIamPolicyCall struct {
110110	s                    *Service
110111	project              string
110112	zone                 string
110113	resource             string
110114	zonesetpolicyrequest *ZoneSetPolicyRequest
110115	urlParams_           gensupport.URLParams
110116	ctx_                 context.Context
110117	header_              http.Header
110118}
110119
110120// SetIamPolicy: Sets the access control policy on the specified
110121// resource. Replaces any existing policy.
110122func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
110123	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110124	c.project = project
110125	c.zone = zone
110126	c.resource = resource
110127	c.zonesetpolicyrequest = zonesetpolicyrequest
110128	return c
110129}
110130
110131// Fields allows partial responses to be retrieved. See
110132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110133// for more information.
110134func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
110135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110136	return c
110137}
110138
110139// Context sets the context to be used in this call's Do method. Any
110140// pending HTTP request will be aborted if the provided context is
110141// canceled.
110142func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
110143	c.ctx_ = ctx
110144	return c
110145}
110146
110147// Header returns an http.Header that can be modified by the caller to
110148// add HTTP headers to the request.
110149func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
110150	if c.header_ == nil {
110151		c.header_ = make(http.Header)
110152	}
110153	return c.header_
110154}
110155
110156func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
110157	reqHeaders := make(http.Header)
110158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
110159	for k, v := range c.header_ {
110160		reqHeaders[k] = v
110161	}
110162	reqHeaders.Set("User-Agent", c.s.userAgent())
110163	var body io.Reader = nil
110164	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
110165	if err != nil {
110166		return nil, err
110167	}
110168	reqHeaders.Set("Content-Type", "application/json")
110169	c.urlParams_.Set("alt", alt)
110170	c.urlParams_.Set("prettyPrint", "false")
110171	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
110172	urls += "?" + c.urlParams_.Encode()
110173	req, err := http.NewRequest("POST", urls, body)
110174	if err != nil {
110175		return nil, err
110176	}
110177	req.Header = reqHeaders
110178	googleapi.Expand(req.URL, map[string]string{
110179		"project":  c.project,
110180		"zone":     c.zone,
110181		"resource": c.resource,
110182	})
110183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110184}
110185
110186// Do executes the "compute.nodeGroups.setIamPolicy" call.
110187// Exactly one of *Policy or error will be non-nil. Any non-2xx status
110188// code is an error. Response headers are in either
110189// *Policy.ServerResponse.Header or (if a response was returned at all)
110190// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
110191// check whether the returned error was because http.StatusNotModified
110192// was returned.
110193func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
110194	gensupport.SetOptions(c.urlParams_, opts...)
110195	res, err := c.doRequest("json")
110196	if res != nil && res.StatusCode == http.StatusNotModified {
110197		if res.Body != nil {
110198			res.Body.Close()
110199		}
110200		return nil, &googleapi.Error{
110201			Code:   res.StatusCode,
110202			Header: res.Header,
110203		}
110204	}
110205	if err != nil {
110206		return nil, err
110207	}
110208	defer googleapi.CloseBody(res)
110209	if err := googleapi.CheckResponse(res); err != nil {
110210		return nil, err
110211	}
110212	ret := &Policy{
110213		ServerResponse: googleapi.ServerResponse{
110214			Header:         res.Header,
110215			HTTPStatusCode: res.StatusCode,
110216		},
110217	}
110218	target := &ret
110219	if err := gensupport.DecodeResponse(target, res); err != nil {
110220		return nil, err
110221	}
110222	return ret, nil
110223	// {
110224	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
110225	//   "httpMethod": "POST",
110226	//   "id": "compute.nodeGroups.setIamPolicy",
110227	//   "parameterOrder": [
110228	//     "project",
110229	//     "zone",
110230	//     "resource"
110231	//   ],
110232	//   "parameters": {
110233	//     "project": {
110234	//       "description": "Project ID for this request.",
110235	//       "location": "path",
110236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110237	//       "required": true,
110238	//       "type": "string"
110239	//     },
110240	//     "resource": {
110241	//       "description": "Name or id of the resource for this request.",
110242	//       "location": "path",
110243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110244	//       "required": true,
110245	//       "type": "string"
110246	//     },
110247	//     "zone": {
110248	//       "description": "The name of the zone for this request.",
110249	//       "location": "path",
110250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110251	//       "required": true,
110252	//       "type": "string"
110253	//     }
110254	//   },
110255	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
110256	//   "request": {
110257	//     "$ref": "ZoneSetPolicyRequest"
110258	//   },
110259	//   "response": {
110260	//     "$ref": "Policy"
110261	//   },
110262	//   "scopes": [
110263	//     "https://www.googleapis.com/auth/cloud-platform",
110264	//     "https://www.googleapis.com/auth/compute"
110265	//   ]
110266	// }
110267
110268}
110269
110270// method id "compute.nodeGroups.setNodeTemplate":
110271
110272type NodeGroupsSetNodeTemplateCall struct {
110273	s                                *Service
110274	project                          string
110275	zone                             string
110276	nodeGroup                        string
110277	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
110278	urlParams_                       gensupport.URLParams
110279	ctx_                             context.Context
110280	header_                          http.Header
110281}
110282
110283// SetNodeTemplate: Updates the node template of the node group.
110284func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
110285	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110286	c.project = project
110287	c.zone = zone
110288	c.nodeGroup = nodeGroup
110289	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
110290	return c
110291}
110292
110293// RequestId sets the optional parameter "requestId": An optional
110294// request ID to identify requests. Specify a unique request ID so that
110295// if you must retry your request, the server will know to ignore the
110296// request if it has already been completed.
110297//
110298// For example, consider a situation where you make an initial request
110299// and the request times out. If you make the request again with the
110300// same request ID, the server can check if original operation with the
110301// same request ID was received, and if so, will ignore the second
110302// request. This prevents clients from accidentally creating duplicate
110303// commitments.
110304//
110305// The request ID must be a valid UUID with the exception that zero UUID
110306// is not supported (00000000-0000-0000-0000-000000000000).
110307func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
110308	c.urlParams_.Set("requestId", requestId)
110309	return c
110310}
110311
110312// Fields allows partial responses to be retrieved. See
110313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110314// for more information.
110315func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
110316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110317	return c
110318}
110319
110320// Context sets the context to be used in this call's Do method. Any
110321// pending HTTP request will be aborted if the provided context is
110322// canceled.
110323func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
110324	c.ctx_ = ctx
110325	return c
110326}
110327
110328// Header returns an http.Header that can be modified by the caller to
110329// add HTTP headers to the request.
110330func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
110331	if c.header_ == nil {
110332		c.header_ = make(http.Header)
110333	}
110334	return c.header_
110335}
110336
110337func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
110338	reqHeaders := make(http.Header)
110339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
110340	for k, v := range c.header_ {
110341		reqHeaders[k] = v
110342	}
110343	reqHeaders.Set("User-Agent", c.s.userAgent())
110344	var body io.Reader = nil
110345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
110346	if err != nil {
110347		return nil, err
110348	}
110349	reqHeaders.Set("Content-Type", "application/json")
110350	c.urlParams_.Set("alt", alt)
110351	c.urlParams_.Set("prettyPrint", "false")
110352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
110353	urls += "?" + c.urlParams_.Encode()
110354	req, err := http.NewRequest("POST", urls, body)
110355	if err != nil {
110356		return nil, err
110357	}
110358	req.Header = reqHeaders
110359	googleapi.Expand(req.URL, map[string]string{
110360		"project":   c.project,
110361		"zone":      c.zone,
110362		"nodeGroup": c.nodeGroup,
110363	})
110364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110365}
110366
110367// Do executes the "compute.nodeGroups.setNodeTemplate" call.
110368// Exactly one of *Operation or error will be non-nil. Any non-2xx
110369// status code is an error. Response headers are in either
110370// *Operation.ServerResponse.Header or (if a response was returned at
110371// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110372// to check whether the returned error was because
110373// http.StatusNotModified was returned.
110374func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110375	gensupport.SetOptions(c.urlParams_, opts...)
110376	res, err := c.doRequest("json")
110377	if res != nil && res.StatusCode == http.StatusNotModified {
110378		if res.Body != nil {
110379			res.Body.Close()
110380		}
110381		return nil, &googleapi.Error{
110382			Code:   res.StatusCode,
110383			Header: res.Header,
110384		}
110385	}
110386	if err != nil {
110387		return nil, err
110388	}
110389	defer googleapi.CloseBody(res)
110390	if err := googleapi.CheckResponse(res); err != nil {
110391		return nil, err
110392	}
110393	ret := &Operation{
110394		ServerResponse: googleapi.ServerResponse{
110395			Header:         res.Header,
110396			HTTPStatusCode: res.StatusCode,
110397		},
110398	}
110399	target := &ret
110400	if err := gensupport.DecodeResponse(target, res); err != nil {
110401		return nil, err
110402	}
110403	return ret, nil
110404	// {
110405	//   "description": "Updates the node template of the node group.",
110406	//   "httpMethod": "POST",
110407	//   "id": "compute.nodeGroups.setNodeTemplate",
110408	//   "parameterOrder": [
110409	//     "project",
110410	//     "zone",
110411	//     "nodeGroup"
110412	//   ],
110413	//   "parameters": {
110414	//     "nodeGroup": {
110415	//       "description": "Name of the NodeGroup resource to update.",
110416	//       "location": "path",
110417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110418	//       "required": true,
110419	//       "type": "string"
110420	//     },
110421	//     "project": {
110422	//       "description": "Project ID for this request.",
110423	//       "location": "path",
110424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110425	//       "required": true,
110426	//       "type": "string"
110427	//     },
110428	//     "requestId": {
110429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110430	//       "location": "query",
110431	//       "type": "string"
110432	//     },
110433	//     "zone": {
110434	//       "description": "The name of the zone for this request.",
110435	//       "location": "path",
110436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110437	//       "required": true,
110438	//       "type": "string"
110439	//     }
110440	//   },
110441	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
110442	//   "request": {
110443	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
110444	//   },
110445	//   "response": {
110446	//     "$ref": "Operation"
110447	//   },
110448	//   "scopes": [
110449	//     "https://www.googleapis.com/auth/cloud-platform",
110450	//     "https://www.googleapis.com/auth/compute"
110451	//   ]
110452	// }
110453
110454}
110455
110456// method id "compute.nodeGroups.testIamPermissions":
110457
110458type NodeGroupsTestIamPermissionsCall struct {
110459	s                      *Service
110460	project                string
110461	zone                   string
110462	resource               string
110463	testpermissionsrequest *TestPermissionsRequest
110464	urlParams_             gensupport.URLParams
110465	ctx_                   context.Context
110466	header_                http.Header
110467}
110468
110469// TestIamPermissions: Returns permissions that a caller has on the
110470// specified resource.
110471func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
110472	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110473	c.project = project
110474	c.zone = zone
110475	c.resource = resource
110476	c.testpermissionsrequest = testpermissionsrequest
110477	return c
110478}
110479
110480// Fields allows partial responses to be retrieved. See
110481// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110482// for more information.
110483func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
110484	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110485	return c
110486}
110487
110488// Context sets the context to be used in this call's Do method. Any
110489// pending HTTP request will be aborted if the provided context is
110490// canceled.
110491func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
110492	c.ctx_ = ctx
110493	return c
110494}
110495
110496// Header returns an http.Header that can be modified by the caller to
110497// add HTTP headers to the request.
110498func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
110499	if c.header_ == nil {
110500		c.header_ = make(http.Header)
110501	}
110502	return c.header_
110503}
110504
110505func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
110506	reqHeaders := make(http.Header)
110507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
110508	for k, v := range c.header_ {
110509		reqHeaders[k] = v
110510	}
110511	reqHeaders.Set("User-Agent", c.s.userAgent())
110512	var body io.Reader = nil
110513	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
110514	if err != nil {
110515		return nil, err
110516	}
110517	reqHeaders.Set("Content-Type", "application/json")
110518	c.urlParams_.Set("alt", alt)
110519	c.urlParams_.Set("prettyPrint", "false")
110520	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
110521	urls += "?" + c.urlParams_.Encode()
110522	req, err := http.NewRequest("POST", urls, body)
110523	if err != nil {
110524		return nil, err
110525	}
110526	req.Header = reqHeaders
110527	googleapi.Expand(req.URL, map[string]string{
110528		"project":  c.project,
110529		"zone":     c.zone,
110530		"resource": c.resource,
110531	})
110532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110533}
110534
110535// Do executes the "compute.nodeGroups.testIamPermissions" call.
110536// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
110537// non-2xx status code is an error. Response headers are in either
110538// *TestPermissionsResponse.ServerResponse.Header or (if a response was
110539// returned at all) in error.(*googleapi.Error).Header. Use
110540// googleapi.IsNotModified to check whether the returned error was
110541// because http.StatusNotModified was returned.
110542func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
110543	gensupport.SetOptions(c.urlParams_, opts...)
110544	res, err := c.doRequest("json")
110545	if res != nil && res.StatusCode == http.StatusNotModified {
110546		if res.Body != nil {
110547			res.Body.Close()
110548		}
110549		return nil, &googleapi.Error{
110550			Code:   res.StatusCode,
110551			Header: res.Header,
110552		}
110553	}
110554	if err != nil {
110555		return nil, err
110556	}
110557	defer googleapi.CloseBody(res)
110558	if err := googleapi.CheckResponse(res); err != nil {
110559		return nil, err
110560	}
110561	ret := &TestPermissionsResponse{
110562		ServerResponse: googleapi.ServerResponse{
110563			Header:         res.Header,
110564			HTTPStatusCode: res.StatusCode,
110565		},
110566	}
110567	target := &ret
110568	if err := gensupport.DecodeResponse(target, res); err != nil {
110569		return nil, err
110570	}
110571	return ret, nil
110572	// {
110573	//   "description": "Returns permissions that a caller has on the specified resource.",
110574	//   "httpMethod": "POST",
110575	//   "id": "compute.nodeGroups.testIamPermissions",
110576	//   "parameterOrder": [
110577	//     "project",
110578	//     "zone",
110579	//     "resource"
110580	//   ],
110581	//   "parameters": {
110582	//     "project": {
110583	//       "description": "Project ID for this request.",
110584	//       "location": "path",
110585	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110586	//       "required": true,
110587	//       "type": "string"
110588	//     },
110589	//     "resource": {
110590	//       "description": "Name or id of the resource for this request.",
110591	//       "location": "path",
110592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110593	//       "required": true,
110594	//       "type": "string"
110595	//     },
110596	//     "zone": {
110597	//       "description": "The name of the zone for this request.",
110598	//       "location": "path",
110599	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110600	//       "required": true,
110601	//       "type": "string"
110602	//     }
110603	//   },
110604	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
110605	//   "request": {
110606	//     "$ref": "TestPermissionsRequest"
110607	//   },
110608	//   "response": {
110609	//     "$ref": "TestPermissionsResponse"
110610	//   },
110611	//   "scopes": [
110612	//     "https://www.googleapis.com/auth/cloud-platform",
110613	//     "https://www.googleapis.com/auth/compute",
110614	//     "https://www.googleapis.com/auth/compute.readonly"
110615	//   ]
110616	// }
110617
110618}
110619
110620// method id "compute.nodeTemplates.aggregatedList":
110621
110622type NodeTemplatesAggregatedListCall struct {
110623	s            *Service
110624	project      string
110625	urlParams_   gensupport.URLParams
110626	ifNoneMatch_ string
110627	ctx_         context.Context
110628	header_      http.Header
110629}
110630
110631// AggregatedList: Retrieves an aggregated list of node templates.
110632func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
110633	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110634	c.project = project
110635	return c
110636}
110637
110638// Filter sets the optional parameter "filter": A filter expression that
110639// filters resources listed in the response. The expression must specify
110640// the field name, a comparison operator, and the value that you want to
110641// use for filtering. The value must be a string, a number, or a
110642// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110643// `<`.
110644//
110645// For example, if you are filtering Compute Engine instances, you can
110646// exclude instances named `example-instance` by specifying `name !=
110647// example-instance`.
110648//
110649// You can also filter nested fields. For example, you could specify
110650// `scheduling.automaticRestart = false` to include instances only if
110651// they are not scheduled for automatic restarts. You can use filtering
110652// on nested fields to filter based on resource labels.
110653//
110654// To filter on multiple expressions, provide each separate expression
110655// within parentheses. For example: ``` (scheduling.automaticRestart =
110656// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110657// is an `AND` expression. However, you can include `AND` and `OR`
110658// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110659// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110660// (scheduling.automaticRestart = true) ```
110661func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
110662	c.urlParams_.Set("filter", filter)
110663	return c
110664}
110665
110666// IncludeAllScopes sets the optional parameter "includeAllScopes":
110667// Indicates whether every visible scope for each scope type (zone,
110668// region, global) should be included in the response. For new resource
110669// types added after this field, the flag has no effect as new resource
110670// types will always include every visible scope for each scope type in
110671// response. For resource types which predate this field, if this flag
110672// is omitted or false, only scopes of the scope types where the
110673// resource type is expected to be found will be included.
110674func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
110675	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
110676	return c
110677}
110678
110679// MaxResults sets the optional parameter "maxResults": The maximum
110680// number of results per page that should be returned. If the number of
110681// available results is larger than `maxResults`, Compute Engine returns
110682// a `nextPageToken` that can be used to get the next page of results in
110683// subsequent list requests. Acceptable values are `0` to `500`,
110684// inclusive. (Default: `500`)
110685func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
110686	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110687	return c
110688}
110689
110690// OrderBy sets the optional parameter "orderBy": Sorts list results by
110691// a certain order. By default, results are returned in alphanumerical
110692// order based on the resource name.
110693//
110694// You can also sort results in descending order based on the creation
110695// timestamp using `orderBy="creationTimestamp desc". This sorts
110696// results based on the `creationTimestamp` field in reverse
110697// chronological order (newest result first). Use this to sort resources
110698// like operations so that the newest operation is returned
110699// first.
110700//
110701// Currently, only sorting by `name` or `creationTimestamp desc` is
110702// supported.
110703func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
110704	c.urlParams_.Set("orderBy", orderBy)
110705	return c
110706}
110707
110708// PageToken sets the optional parameter "pageToken": Specifies a page
110709// token to use. Set `pageToken` to the `nextPageToken` returned by a
110710// previous list request to get the next page of results.
110711func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
110712	c.urlParams_.Set("pageToken", pageToken)
110713	return c
110714}
110715
110716// ReturnPartialSuccess sets the optional parameter
110717// "returnPartialSuccess": Opt-in for partial success behavior which
110718// provides partial results in case of failure. The default value is
110719// false and the logic is the same as today.
110720func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall {
110721	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110722	return c
110723}
110724
110725// Fields allows partial responses to be retrieved. See
110726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110727// for more information.
110728func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
110729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110730	return c
110731}
110732
110733// IfNoneMatch sets the optional parameter which makes the operation
110734// fail if the object's ETag matches the given value. This is useful for
110735// getting updates only after the object has changed since the last
110736// request. Use googleapi.IsNotModified to check whether the response
110737// error from Do is the result of In-None-Match.
110738func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
110739	c.ifNoneMatch_ = entityTag
110740	return c
110741}
110742
110743// Context sets the context to be used in this call's Do method. Any
110744// pending HTTP request will be aborted if the provided context is
110745// canceled.
110746func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
110747	c.ctx_ = ctx
110748	return c
110749}
110750
110751// Header returns an http.Header that can be modified by the caller to
110752// add HTTP headers to the request.
110753func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
110754	if c.header_ == nil {
110755		c.header_ = make(http.Header)
110756	}
110757	return c.header_
110758}
110759
110760func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
110761	reqHeaders := make(http.Header)
110762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
110763	for k, v := range c.header_ {
110764		reqHeaders[k] = v
110765	}
110766	reqHeaders.Set("User-Agent", c.s.userAgent())
110767	if c.ifNoneMatch_ != "" {
110768		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110769	}
110770	var body io.Reader = nil
110771	c.urlParams_.Set("alt", alt)
110772	c.urlParams_.Set("prettyPrint", "false")
110773	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTemplates")
110774	urls += "?" + c.urlParams_.Encode()
110775	req, err := http.NewRequest("GET", urls, body)
110776	if err != nil {
110777		return nil, err
110778	}
110779	req.Header = reqHeaders
110780	googleapi.Expand(req.URL, map[string]string{
110781		"project": c.project,
110782	})
110783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110784}
110785
110786// Do executes the "compute.nodeTemplates.aggregatedList" call.
110787// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
110788// Any non-2xx status code is an error. Response headers are in either
110789// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
110790// was returned at all) in error.(*googleapi.Error).Header. Use
110791// googleapi.IsNotModified to check whether the returned error was
110792// because http.StatusNotModified was returned.
110793func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
110794	gensupport.SetOptions(c.urlParams_, opts...)
110795	res, err := c.doRequest("json")
110796	if res != nil && res.StatusCode == http.StatusNotModified {
110797		if res.Body != nil {
110798			res.Body.Close()
110799		}
110800		return nil, &googleapi.Error{
110801			Code:   res.StatusCode,
110802			Header: res.Header,
110803		}
110804	}
110805	if err != nil {
110806		return nil, err
110807	}
110808	defer googleapi.CloseBody(res)
110809	if err := googleapi.CheckResponse(res); err != nil {
110810		return nil, err
110811	}
110812	ret := &NodeTemplateAggregatedList{
110813		ServerResponse: googleapi.ServerResponse{
110814			Header:         res.Header,
110815			HTTPStatusCode: res.StatusCode,
110816		},
110817	}
110818	target := &ret
110819	if err := gensupport.DecodeResponse(target, res); err != nil {
110820		return nil, err
110821	}
110822	return ret, nil
110823	// {
110824	//   "description": "Retrieves an aggregated list of node templates.",
110825	//   "httpMethod": "GET",
110826	//   "id": "compute.nodeTemplates.aggregatedList",
110827	//   "parameterOrder": [
110828	//     "project"
110829	//   ],
110830	//   "parameters": {
110831	//     "filter": {
110832	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110833	//       "location": "query",
110834	//       "type": "string"
110835	//     },
110836	//     "includeAllScopes": {
110837	//       "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.",
110838	//       "location": "query",
110839	//       "type": "boolean"
110840	//     },
110841	//     "maxResults": {
110842	//       "default": "500",
110843	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110844	//       "format": "uint32",
110845	//       "location": "query",
110846	//       "minimum": "0",
110847	//       "type": "integer"
110848	//     },
110849	//     "orderBy": {
110850	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
110851	//       "location": "query",
110852	//       "type": "string"
110853	//     },
110854	//     "pageToken": {
110855	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110856	//       "location": "query",
110857	//       "type": "string"
110858	//     },
110859	//     "project": {
110860	//       "description": "Project ID for this request.",
110861	//       "location": "path",
110862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110863	//       "required": true,
110864	//       "type": "string"
110865	//     },
110866	//     "returnPartialSuccess": {
110867	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
110868	//       "location": "query",
110869	//       "type": "boolean"
110870	//     }
110871	//   },
110872	//   "path": "{project}/aggregated/nodeTemplates",
110873	//   "response": {
110874	//     "$ref": "NodeTemplateAggregatedList"
110875	//   },
110876	//   "scopes": [
110877	//     "https://www.googleapis.com/auth/cloud-platform",
110878	//     "https://www.googleapis.com/auth/compute",
110879	//     "https://www.googleapis.com/auth/compute.readonly"
110880	//   ]
110881	// }
110882
110883}
110884
110885// Pages invokes f for each page of results.
110886// A non-nil error returned from f will halt the iteration.
110887// The provided context supersedes any context provided to the Context method.
110888func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
110889	c.ctx_ = ctx
110890	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110891	for {
110892		x, err := c.Do()
110893		if err != nil {
110894			return err
110895		}
110896		if err := f(x); err != nil {
110897			return err
110898		}
110899		if x.NextPageToken == "" {
110900			return nil
110901		}
110902		c.PageToken(x.NextPageToken)
110903	}
110904}
110905
110906// method id "compute.nodeTemplates.delete":
110907
110908type NodeTemplatesDeleteCall struct {
110909	s            *Service
110910	project      string
110911	region       string
110912	nodeTemplate string
110913	urlParams_   gensupport.URLParams
110914	ctx_         context.Context
110915	header_      http.Header
110916}
110917
110918// Delete: Deletes the specified NodeTemplate resource.
110919func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
110920	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110921	c.project = project
110922	c.region = region
110923	c.nodeTemplate = nodeTemplate
110924	return c
110925}
110926
110927// RequestId sets the optional parameter "requestId": An optional
110928// request ID to identify requests. Specify a unique request ID so that
110929// if you must retry your request, the server will know to ignore the
110930// request if it has already been completed.
110931//
110932// For example, consider a situation where you make an initial request
110933// and the request times out. If you make the request again with the
110934// same request ID, the server can check if original operation with the
110935// same request ID was received, and if so, will ignore the second
110936// request. This prevents clients from accidentally creating duplicate
110937// commitments.
110938//
110939// The request ID must be a valid UUID with the exception that zero UUID
110940// is not supported (00000000-0000-0000-0000-000000000000).
110941func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
110942	c.urlParams_.Set("requestId", requestId)
110943	return c
110944}
110945
110946// Fields allows partial responses to be retrieved. See
110947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110948// for more information.
110949func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
110950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110951	return c
110952}
110953
110954// Context sets the context to be used in this call's Do method. Any
110955// pending HTTP request will be aborted if the provided context is
110956// canceled.
110957func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
110958	c.ctx_ = ctx
110959	return c
110960}
110961
110962// Header returns an http.Header that can be modified by the caller to
110963// add HTTP headers to the request.
110964func (c *NodeTemplatesDeleteCall) Header() http.Header {
110965	if c.header_ == nil {
110966		c.header_ = make(http.Header)
110967	}
110968	return c.header_
110969}
110970
110971func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
110972	reqHeaders := make(http.Header)
110973	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
110974	for k, v := range c.header_ {
110975		reqHeaders[k] = v
110976	}
110977	reqHeaders.Set("User-Agent", c.s.userAgent())
110978	var body io.Reader = nil
110979	c.urlParams_.Set("alt", alt)
110980	c.urlParams_.Set("prettyPrint", "false")
110981	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
110982	urls += "?" + c.urlParams_.Encode()
110983	req, err := http.NewRequest("DELETE", urls, body)
110984	if err != nil {
110985		return nil, err
110986	}
110987	req.Header = reqHeaders
110988	googleapi.Expand(req.URL, map[string]string{
110989		"project":      c.project,
110990		"region":       c.region,
110991		"nodeTemplate": c.nodeTemplate,
110992	})
110993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110994}
110995
110996// Do executes the "compute.nodeTemplates.delete" call.
110997// Exactly one of *Operation or error will be non-nil. Any non-2xx
110998// status code is an error. Response headers are in either
110999// *Operation.ServerResponse.Header or (if a response was returned at
111000// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111001// to check whether the returned error was because
111002// http.StatusNotModified was returned.
111003func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111004	gensupport.SetOptions(c.urlParams_, opts...)
111005	res, err := c.doRequest("json")
111006	if res != nil && res.StatusCode == http.StatusNotModified {
111007		if res.Body != nil {
111008			res.Body.Close()
111009		}
111010		return nil, &googleapi.Error{
111011			Code:   res.StatusCode,
111012			Header: res.Header,
111013		}
111014	}
111015	if err != nil {
111016		return nil, err
111017	}
111018	defer googleapi.CloseBody(res)
111019	if err := googleapi.CheckResponse(res); err != nil {
111020		return nil, err
111021	}
111022	ret := &Operation{
111023		ServerResponse: googleapi.ServerResponse{
111024			Header:         res.Header,
111025			HTTPStatusCode: res.StatusCode,
111026		},
111027	}
111028	target := &ret
111029	if err := gensupport.DecodeResponse(target, res); err != nil {
111030		return nil, err
111031	}
111032	return ret, nil
111033	// {
111034	//   "description": "Deletes the specified NodeTemplate resource.",
111035	//   "httpMethod": "DELETE",
111036	//   "id": "compute.nodeTemplates.delete",
111037	//   "parameterOrder": [
111038	//     "project",
111039	//     "region",
111040	//     "nodeTemplate"
111041	//   ],
111042	//   "parameters": {
111043	//     "nodeTemplate": {
111044	//       "description": "Name of the NodeTemplate resource to delete.",
111045	//       "location": "path",
111046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111047	//       "required": true,
111048	//       "type": "string"
111049	//     },
111050	//     "project": {
111051	//       "description": "Project ID for this request.",
111052	//       "location": "path",
111053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111054	//       "required": true,
111055	//       "type": "string"
111056	//     },
111057	//     "region": {
111058	//       "description": "The name of the region for this request.",
111059	//       "location": "path",
111060	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111061	//       "required": true,
111062	//       "type": "string"
111063	//     },
111064	//     "requestId": {
111065	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111066	//       "location": "query",
111067	//       "type": "string"
111068	//     }
111069	//   },
111070	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
111071	//   "response": {
111072	//     "$ref": "Operation"
111073	//   },
111074	//   "scopes": [
111075	//     "https://www.googleapis.com/auth/cloud-platform",
111076	//     "https://www.googleapis.com/auth/compute"
111077	//   ]
111078	// }
111079
111080}
111081
111082// method id "compute.nodeTemplates.get":
111083
111084type NodeTemplatesGetCall struct {
111085	s            *Service
111086	project      string
111087	region       string
111088	nodeTemplate string
111089	urlParams_   gensupport.URLParams
111090	ifNoneMatch_ string
111091	ctx_         context.Context
111092	header_      http.Header
111093}
111094
111095// Get: Returns the specified node template. Gets a list of available
111096// node templates by making a list() request.
111097func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
111098	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111099	c.project = project
111100	c.region = region
111101	c.nodeTemplate = nodeTemplate
111102	return c
111103}
111104
111105// Fields allows partial responses to be retrieved. See
111106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111107// for more information.
111108func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
111109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111110	return c
111111}
111112
111113// IfNoneMatch sets the optional parameter which makes the operation
111114// fail if the object's ETag matches the given value. This is useful for
111115// getting updates only after the object has changed since the last
111116// request. Use googleapi.IsNotModified to check whether the response
111117// error from Do is the result of In-None-Match.
111118func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
111119	c.ifNoneMatch_ = entityTag
111120	return c
111121}
111122
111123// Context sets the context to be used in this call's Do method. Any
111124// pending HTTP request will be aborted if the provided context is
111125// canceled.
111126func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
111127	c.ctx_ = ctx
111128	return c
111129}
111130
111131// Header returns an http.Header that can be modified by the caller to
111132// add HTTP headers to the request.
111133func (c *NodeTemplatesGetCall) Header() http.Header {
111134	if c.header_ == nil {
111135		c.header_ = make(http.Header)
111136	}
111137	return c.header_
111138}
111139
111140func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
111141	reqHeaders := make(http.Header)
111142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
111143	for k, v := range c.header_ {
111144		reqHeaders[k] = v
111145	}
111146	reqHeaders.Set("User-Agent", c.s.userAgent())
111147	if c.ifNoneMatch_ != "" {
111148		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111149	}
111150	var body io.Reader = nil
111151	c.urlParams_.Set("alt", alt)
111152	c.urlParams_.Set("prettyPrint", "false")
111153	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
111154	urls += "?" + c.urlParams_.Encode()
111155	req, err := http.NewRequest("GET", urls, body)
111156	if err != nil {
111157		return nil, err
111158	}
111159	req.Header = reqHeaders
111160	googleapi.Expand(req.URL, map[string]string{
111161		"project":      c.project,
111162		"region":       c.region,
111163		"nodeTemplate": c.nodeTemplate,
111164	})
111165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111166}
111167
111168// Do executes the "compute.nodeTemplates.get" call.
111169// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
111170// status code is an error. Response headers are in either
111171// *NodeTemplate.ServerResponse.Header or (if a response was returned at
111172// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111173// to check whether the returned error was because
111174// http.StatusNotModified was returned.
111175func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
111176	gensupport.SetOptions(c.urlParams_, opts...)
111177	res, err := c.doRequest("json")
111178	if res != nil && res.StatusCode == http.StatusNotModified {
111179		if res.Body != nil {
111180			res.Body.Close()
111181		}
111182		return nil, &googleapi.Error{
111183			Code:   res.StatusCode,
111184			Header: res.Header,
111185		}
111186	}
111187	if err != nil {
111188		return nil, err
111189	}
111190	defer googleapi.CloseBody(res)
111191	if err := googleapi.CheckResponse(res); err != nil {
111192		return nil, err
111193	}
111194	ret := &NodeTemplate{
111195		ServerResponse: googleapi.ServerResponse{
111196			Header:         res.Header,
111197			HTTPStatusCode: res.StatusCode,
111198		},
111199	}
111200	target := &ret
111201	if err := gensupport.DecodeResponse(target, res); err != nil {
111202		return nil, err
111203	}
111204	return ret, nil
111205	// {
111206	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
111207	//   "httpMethod": "GET",
111208	//   "id": "compute.nodeTemplates.get",
111209	//   "parameterOrder": [
111210	//     "project",
111211	//     "region",
111212	//     "nodeTemplate"
111213	//   ],
111214	//   "parameters": {
111215	//     "nodeTemplate": {
111216	//       "description": "Name of the node template to return.",
111217	//       "location": "path",
111218	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111219	//       "required": true,
111220	//       "type": "string"
111221	//     },
111222	//     "project": {
111223	//       "description": "Project ID for this request.",
111224	//       "location": "path",
111225	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111226	//       "required": true,
111227	//       "type": "string"
111228	//     },
111229	//     "region": {
111230	//       "description": "The name of the region for this request.",
111231	//       "location": "path",
111232	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111233	//       "required": true,
111234	//       "type": "string"
111235	//     }
111236	//   },
111237	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
111238	//   "response": {
111239	//     "$ref": "NodeTemplate"
111240	//   },
111241	//   "scopes": [
111242	//     "https://www.googleapis.com/auth/cloud-platform",
111243	//     "https://www.googleapis.com/auth/compute",
111244	//     "https://www.googleapis.com/auth/compute.readonly"
111245	//   ]
111246	// }
111247
111248}
111249
111250// method id "compute.nodeTemplates.getIamPolicy":
111251
111252type NodeTemplatesGetIamPolicyCall struct {
111253	s            *Service
111254	project      string
111255	region       string
111256	resource     string
111257	urlParams_   gensupport.URLParams
111258	ifNoneMatch_ string
111259	ctx_         context.Context
111260	header_      http.Header
111261}
111262
111263// GetIamPolicy: Gets the access control policy for a resource. May be
111264// empty if no such policy or resource exists.
111265func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
111266	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111267	c.project = project
111268	c.region = region
111269	c.resource = resource
111270	return c
111271}
111272
111273// OptionsRequestedPolicyVersion sets the optional parameter
111274// "optionsRequestedPolicyVersion": Requested IAM Policy version.
111275func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
111276	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
111277	return c
111278}
111279
111280// Fields allows partial responses to be retrieved. See
111281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111282// for more information.
111283func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
111284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111285	return c
111286}
111287
111288// IfNoneMatch sets the optional parameter which makes the operation
111289// fail if the object's ETag matches the given value. This is useful for
111290// getting updates only after the object has changed since the last
111291// request. Use googleapi.IsNotModified to check whether the response
111292// error from Do is the result of In-None-Match.
111293func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
111294	c.ifNoneMatch_ = entityTag
111295	return c
111296}
111297
111298// Context sets the context to be used in this call's Do method. Any
111299// pending HTTP request will be aborted if the provided context is
111300// canceled.
111301func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
111302	c.ctx_ = ctx
111303	return c
111304}
111305
111306// Header returns an http.Header that can be modified by the caller to
111307// add HTTP headers to the request.
111308func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
111309	if c.header_ == nil {
111310		c.header_ = make(http.Header)
111311	}
111312	return c.header_
111313}
111314
111315func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
111316	reqHeaders := make(http.Header)
111317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
111318	for k, v := range c.header_ {
111319		reqHeaders[k] = v
111320	}
111321	reqHeaders.Set("User-Agent", c.s.userAgent())
111322	if c.ifNoneMatch_ != "" {
111323		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111324	}
111325	var body io.Reader = nil
111326	c.urlParams_.Set("alt", alt)
111327	c.urlParams_.Set("prettyPrint", "false")
111328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
111329	urls += "?" + c.urlParams_.Encode()
111330	req, err := http.NewRequest("GET", urls, body)
111331	if err != nil {
111332		return nil, err
111333	}
111334	req.Header = reqHeaders
111335	googleapi.Expand(req.URL, map[string]string{
111336		"project":  c.project,
111337		"region":   c.region,
111338		"resource": c.resource,
111339	})
111340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111341}
111342
111343// Do executes the "compute.nodeTemplates.getIamPolicy" call.
111344// Exactly one of *Policy or error will be non-nil. Any non-2xx status
111345// code is an error. Response headers are in either
111346// *Policy.ServerResponse.Header or (if a response was returned at all)
111347// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
111348// check whether the returned error was because http.StatusNotModified
111349// was returned.
111350func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
111351	gensupport.SetOptions(c.urlParams_, opts...)
111352	res, err := c.doRequest("json")
111353	if res != nil && res.StatusCode == http.StatusNotModified {
111354		if res.Body != nil {
111355			res.Body.Close()
111356		}
111357		return nil, &googleapi.Error{
111358			Code:   res.StatusCode,
111359			Header: res.Header,
111360		}
111361	}
111362	if err != nil {
111363		return nil, err
111364	}
111365	defer googleapi.CloseBody(res)
111366	if err := googleapi.CheckResponse(res); err != nil {
111367		return nil, err
111368	}
111369	ret := &Policy{
111370		ServerResponse: googleapi.ServerResponse{
111371			Header:         res.Header,
111372			HTTPStatusCode: res.StatusCode,
111373		},
111374	}
111375	target := &ret
111376	if err := gensupport.DecodeResponse(target, res); err != nil {
111377		return nil, err
111378	}
111379	return ret, nil
111380	// {
111381	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
111382	//   "httpMethod": "GET",
111383	//   "id": "compute.nodeTemplates.getIamPolicy",
111384	//   "parameterOrder": [
111385	//     "project",
111386	//     "region",
111387	//     "resource"
111388	//   ],
111389	//   "parameters": {
111390	//     "optionsRequestedPolicyVersion": {
111391	//       "description": "Requested IAM Policy version.",
111392	//       "format": "int32",
111393	//       "location": "query",
111394	//       "type": "integer"
111395	//     },
111396	//     "project": {
111397	//       "description": "Project ID for this request.",
111398	//       "location": "path",
111399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111400	//       "required": true,
111401	//       "type": "string"
111402	//     },
111403	//     "region": {
111404	//       "description": "The name of the region for this request.",
111405	//       "location": "path",
111406	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111407	//       "required": true,
111408	//       "type": "string"
111409	//     },
111410	//     "resource": {
111411	//       "description": "Name or id of the resource for this request.",
111412	//       "location": "path",
111413	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111414	//       "required": true,
111415	//       "type": "string"
111416	//     }
111417	//   },
111418	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
111419	//   "response": {
111420	//     "$ref": "Policy"
111421	//   },
111422	//   "scopes": [
111423	//     "https://www.googleapis.com/auth/cloud-platform",
111424	//     "https://www.googleapis.com/auth/compute",
111425	//     "https://www.googleapis.com/auth/compute.readonly"
111426	//   ]
111427	// }
111428
111429}
111430
111431// method id "compute.nodeTemplates.insert":
111432
111433type NodeTemplatesInsertCall struct {
111434	s            *Service
111435	project      string
111436	region       string
111437	nodetemplate *NodeTemplate
111438	urlParams_   gensupport.URLParams
111439	ctx_         context.Context
111440	header_      http.Header
111441}
111442
111443// Insert: Creates a NodeTemplate resource in the specified project
111444// using the data included in the request.
111445func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
111446	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111447	c.project = project
111448	c.region = region
111449	c.nodetemplate = nodetemplate
111450	return c
111451}
111452
111453// RequestId sets the optional parameter "requestId": An optional
111454// request ID to identify requests. Specify a unique request ID so that
111455// if you must retry your request, the server will know to ignore the
111456// request if it has already been completed.
111457//
111458// For example, consider a situation where you make an initial request
111459// and the request times out. If you make the request again with the
111460// same request ID, the server can check if original operation with the
111461// same request ID was received, and if so, will ignore the second
111462// request. This prevents clients from accidentally creating duplicate
111463// commitments.
111464//
111465// The request ID must be a valid UUID with the exception that zero UUID
111466// is not supported (00000000-0000-0000-0000-000000000000).
111467func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
111468	c.urlParams_.Set("requestId", requestId)
111469	return c
111470}
111471
111472// Fields allows partial responses to be retrieved. See
111473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111474// for more information.
111475func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
111476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111477	return c
111478}
111479
111480// Context sets the context to be used in this call's Do method. Any
111481// pending HTTP request will be aborted if the provided context is
111482// canceled.
111483func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
111484	c.ctx_ = ctx
111485	return c
111486}
111487
111488// Header returns an http.Header that can be modified by the caller to
111489// add HTTP headers to the request.
111490func (c *NodeTemplatesInsertCall) Header() http.Header {
111491	if c.header_ == nil {
111492		c.header_ = make(http.Header)
111493	}
111494	return c.header_
111495}
111496
111497func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
111498	reqHeaders := make(http.Header)
111499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
111500	for k, v := range c.header_ {
111501		reqHeaders[k] = v
111502	}
111503	reqHeaders.Set("User-Agent", c.s.userAgent())
111504	var body io.Reader = nil
111505	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
111506	if err != nil {
111507		return nil, err
111508	}
111509	reqHeaders.Set("Content-Type", "application/json")
111510	c.urlParams_.Set("alt", alt)
111511	c.urlParams_.Set("prettyPrint", "false")
111512	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
111513	urls += "?" + c.urlParams_.Encode()
111514	req, err := http.NewRequest("POST", urls, body)
111515	if err != nil {
111516		return nil, err
111517	}
111518	req.Header = reqHeaders
111519	googleapi.Expand(req.URL, map[string]string{
111520		"project": c.project,
111521		"region":  c.region,
111522	})
111523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111524}
111525
111526// Do executes the "compute.nodeTemplates.insert" call.
111527// Exactly one of *Operation or error will be non-nil. Any non-2xx
111528// status code is an error. Response headers are in either
111529// *Operation.ServerResponse.Header or (if a response was returned at
111530// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111531// to check whether the returned error was because
111532// http.StatusNotModified was returned.
111533func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111534	gensupport.SetOptions(c.urlParams_, opts...)
111535	res, err := c.doRequest("json")
111536	if res != nil && res.StatusCode == http.StatusNotModified {
111537		if res.Body != nil {
111538			res.Body.Close()
111539		}
111540		return nil, &googleapi.Error{
111541			Code:   res.StatusCode,
111542			Header: res.Header,
111543		}
111544	}
111545	if err != nil {
111546		return nil, err
111547	}
111548	defer googleapi.CloseBody(res)
111549	if err := googleapi.CheckResponse(res); err != nil {
111550		return nil, err
111551	}
111552	ret := &Operation{
111553		ServerResponse: googleapi.ServerResponse{
111554			Header:         res.Header,
111555			HTTPStatusCode: res.StatusCode,
111556		},
111557	}
111558	target := &ret
111559	if err := gensupport.DecodeResponse(target, res); err != nil {
111560		return nil, err
111561	}
111562	return ret, nil
111563	// {
111564	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
111565	//   "httpMethod": "POST",
111566	//   "id": "compute.nodeTemplates.insert",
111567	//   "parameterOrder": [
111568	//     "project",
111569	//     "region"
111570	//   ],
111571	//   "parameters": {
111572	//     "project": {
111573	//       "description": "Project ID for this request.",
111574	//       "location": "path",
111575	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111576	//       "required": true,
111577	//       "type": "string"
111578	//     },
111579	//     "region": {
111580	//       "description": "The name of the region for this request.",
111581	//       "location": "path",
111582	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111583	//       "required": true,
111584	//       "type": "string"
111585	//     },
111586	//     "requestId": {
111587	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111588	//       "location": "query",
111589	//       "type": "string"
111590	//     }
111591	//   },
111592	//   "path": "{project}/regions/{region}/nodeTemplates",
111593	//   "request": {
111594	//     "$ref": "NodeTemplate"
111595	//   },
111596	//   "response": {
111597	//     "$ref": "Operation"
111598	//   },
111599	//   "scopes": [
111600	//     "https://www.googleapis.com/auth/cloud-platform",
111601	//     "https://www.googleapis.com/auth/compute"
111602	//   ]
111603	// }
111604
111605}
111606
111607// method id "compute.nodeTemplates.list":
111608
111609type NodeTemplatesListCall struct {
111610	s            *Service
111611	project      string
111612	region       string
111613	urlParams_   gensupport.URLParams
111614	ifNoneMatch_ string
111615	ctx_         context.Context
111616	header_      http.Header
111617}
111618
111619// List: Retrieves a list of node templates available to the specified
111620// project.
111621func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
111622	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111623	c.project = project
111624	c.region = region
111625	return c
111626}
111627
111628// Filter sets the optional parameter "filter": A filter expression that
111629// filters resources listed in the response. The expression must specify
111630// the field name, a comparison operator, and the value that you want to
111631// use for filtering. The value must be a string, a number, or a
111632// boolean. The comparison operator must be either `=`, `!=`, `>`, or
111633// `<`.
111634//
111635// For example, if you are filtering Compute Engine instances, you can
111636// exclude instances named `example-instance` by specifying `name !=
111637// example-instance`.
111638//
111639// You can also filter nested fields. For example, you could specify
111640// `scheduling.automaticRestart = false` to include instances only if
111641// they are not scheduled for automatic restarts. You can use filtering
111642// on nested fields to filter based on resource labels.
111643//
111644// To filter on multiple expressions, provide each separate expression
111645// within parentheses. For example: ``` (scheduling.automaticRestart =
111646// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
111647// is an `AND` expression. However, you can include `AND` and `OR`
111648// expressions explicitly. For example: ``` (cpuPlatform = "Intel
111649// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
111650// (scheduling.automaticRestart = true) ```
111651func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
111652	c.urlParams_.Set("filter", filter)
111653	return c
111654}
111655
111656// MaxResults sets the optional parameter "maxResults": The maximum
111657// number of results per page that should be returned. If the number of
111658// available results is larger than `maxResults`, Compute Engine returns
111659// a `nextPageToken` that can be used to get the next page of results in
111660// subsequent list requests. Acceptable values are `0` to `500`,
111661// inclusive. (Default: `500`)
111662func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
111663	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111664	return c
111665}
111666
111667// OrderBy sets the optional parameter "orderBy": Sorts list results by
111668// a certain order. By default, results are returned in alphanumerical
111669// order based on the resource name.
111670//
111671// You can also sort results in descending order based on the creation
111672// timestamp using `orderBy="creationTimestamp desc". This sorts
111673// results based on the `creationTimestamp` field in reverse
111674// chronological order (newest result first). Use this to sort resources
111675// like operations so that the newest operation is returned
111676// first.
111677//
111678// Currently, only sorting by `name` or `creationTimestamp desc` is
111679// supported.
111680func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
111681	c.urlParams_.Set("orderBy", orderBy)
111682	return c
111683}
111684
111685// PageToken sets the optional parameter "pageToken": Specifies a page
111686// token to use. Set `pageToken` to the `nextPageToken` returned by a
111687// previous list request to get the next page of results.
111688func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
111689	c.urlParams_.Set("pageToken", pageToken)
111690	return c
111691}
111692
111693// ReturnPartialSuccess sets the optional parameter
111694// "returnPartialSuccess": Opt-in for partial success behavior which
111695// provides partial results in case of failure. The default value is
111696// false and the logic is the same as today.
111697func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall {
111698	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
111699	return c
111700}
111701
111702// Fields allows partial responses to be retrieved. See
111703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111704// for more information.
111705func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
111706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111707	return c
111708}
111709
111710// IfNoneMatch sets the optional parameter which makes the operation
111711// fail if the object's ETag matches the given value. This is useful for
111712// getting updates only after the object has changed since the last
111713// request. Use googleapi.IsNotModified to check whether the response
111714// error from Do is the result of In-None-Match.
111715func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
111716	c.ifNoneMatch_ = entityTag
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 *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
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 *NodeTemplatesListCall) Header() http.Header {
111731	if c.header_ == nil {
111732		c.header_ = make(http.Header)
111733	}
111734	return c.header_
111735}
111736
111737func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
111738	reqHeaders := make(http.Header)
111739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
111740	for k, v := range c.header_ {
111741		reqHeaders[k] = v
111742	}
111743	reqHeaders.Set("User-Agent", c.s.userAgent())
111744	if c.ifNoneMatch_ != "" {
111745		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111746	}
111747	var body io.Reader = nil
111748	c.urlParams_.Set("alt", alt)
111749	c.urlParams_.Set("prettyPrint", "false")
111750	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
111751	urls += "?" + c.urlParams_.Encode()
111752	req, err := http.NewRequest("GET", urls, body)
111753	if err != nil {
111754		return nil, err
111755	}
111756	req.Header = reqHeaders
111757	googleapi.Expand(req.URL, map[string]string{
111758		"project": c.project,
111759		"region":  c.region,
111760	})
111761	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111762}
111763
111764// Do executes the "compute.nodeTemplates.list" call.
111765// Exactly one of *NodeTemplateList or error will be non-nil. Any
111766// non-2xx status code is an error. Response headers are in either
111767// *NodeTemplateList.ServerResponse.Header or (if a response was
111768// returned at all) in error.(*googleapi.Error).Header. Use
111769// googleapi.IsNotModified to check whether the returned error was
111770// because http.StatusNotModified was returned.
111771func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
111772	gensupport.SetOptions(c.urlParams_, opts...)
111773	res, err := c.doRequest("json")
111774	if res != nil && res.StatusCode == http.StatusNotModified {
111775		if res.Body != nil {
111776			res.Body.Close()
111777		}
111778		return nil, &googleapi.Error{
111779			Code:   res.StatusCode,
111780			Header: res.Header,
111781		}
111782	}
111783	if err != nil {
111784		return nil, err
111785	}
111786	defer googleapi.CloseBody(res)
111787	if err := googleapi.CheckResponse(res); err != nil {
111788		return nil, err
111789	}
111790	ret := &NodeTemplateList{
111791		ServerResponse: googleapi.ServerResponse{
111792			Header:         res.Header,
111793			HTTPStatusCode: res.StatusCode,
111794		},
111795	}
111796	target := &ret
111797	if err := gensupport.DecodeResponse(target, res); err != nil {
111798		return nil, err
111799	}
111800	return ret, nil
111801	// {
111802	//   "description": "Retrieves a list of node templates available to the specified project.",
111803	//   "httpMethod": "GET",
111804	//   "id": "compute.nodeTemplates.list",
111805	//   "parameterOrder": [
111806	//     "project",
111807	//     "region"
111808	//   ],
111809	//   "parameters": {
111810	//     "filter": {
111811	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
111812	//       "location": "query",
111813	//       "type": "string"
111814	//     },
111815	//     "maxResults": {
111816	//       "default": "500",
111817	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
111818	//       "format": "uint32",
111819	//       "location": "query",
111820	//       "minimum": "0",
111821	//       "type": "integer"
111822	//     },
111823	//     "orderBy": {
111824	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
111825	//       "location": "query",
111826	//       "type": "string"
111827	//     },
111828	//     "pageToken": {
111829	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
111830	//       "location": "query",
111831	//       "type": "string"
111832	//     },
111833	//     "project": {
111834	//       "description": "Project ID for this request.",
111835	//       "location": "path",
111836	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111837	//       "required": true,
111838	//       "type": "string"
111839	//     },
111840	//     "region": {
111841	//       "description": "The name of the region for this request.",
111842	//       "location": "path",
111843	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111844	//       "required": true,
111845	//       "type": "string"
111846	//     },
111847	//     "returnPartialSuccess": {
111848	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
111849	//       "location": "query",
111850	//       "type": "boolean"
111851	//     }
111852	//   },
111853	//   "path": "{project}/regions/{region}/nodeTemplates",
111854	//   "response": {
111855	//     "$ref": "NodeTemplateList"
111856	//   },
111857	//   "scopes": [
111858	//     "https://www.googleapis.com/auth/cloud-platform",
111859	//     "https://www.googleapis.com/auth/compute",
111860	//     "https://www.googleapis.com/auth/compute.readonly"
111861	//   ]
111862	// }
111863
111864}
111865
111866// Pages invokes f for each page of results.
111867// A non-nil error returned from f will halt the iteration.
111868// The provided context supersedes any context provided to the Context method.
111869func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
111870	c.ctx_ = ctx
111871	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111872	for {
111873		x, err := c.Do()
111874		if err != nil {
111875			return err
111876		}
111877		if err := f(x); err != nil {
111878			return err
111879		}
111880		if x.NextPageToken == "" {
111881			return nil
111882		}
111883		c.PageToken(x.NextPageToken)
111884	}
111885}
111886
111887// method id "compute.nodeTemplates.setIamPolicy":
111888
111889type NodeTemplatesSetIamPolicyCall struct {
111890	s                      *Service
111891	project                string
111892	region                 string
111893	resource               string
111894	regionsetpolicyrequest *RegionSetPolicyRequest
111895	urlParams_             gensupport.URLParams
111896	ctx_                   context.Context
111897	header_                http.Header
111898}
111899
111900// SetIamPolicy: Sets the access control policy on the specified
111901// resource. Replaces any existing policy.
111902func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
111903	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111904	c.project = project
111905	c.region = region
111906	c.resource = resource
111907	c.regionsetpolicyrequest = regionsetpolicyrequest
111908	return c
111909}
111910
111911// Fields allows partial responses to be retrieved. See
111912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111913// for more information.
111914func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
111915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111916	return c
111917}
111918
111919// Context sets the context to be used in this call's Do method. Any
111920// pending HTTP request will be aborted if the provided context is
111921// canceled.
111922func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
111923	c.ctx_ = ctx
111924	return c
111925}
111926
111927// Header returns an http.Header that can be modified by the caller to
111928// add HTTP headers to the request.
111929func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
111930	if c.header_ == nil {
111931		c.header_ = make(http.Header)
111932	}
111933	return c.header_
111934}
111935
111936func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
111937	reqHeaders := make(http.Header)
111938	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
111939	for k, v := range c.header_ {
111940		reqHeaders[k] = v
111941	}
111942	reqHeaders.Set("User-Agent", c.s.userAgent())
111943	var body io.Reader = nil
111944	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
111945	if err != nil {
111946		return nil, err
111947	}
111948	reqHeaders.Set("Content-Type", "application/json")
111949	c.urlParams_.Set("alt", alt)
111950	c.urlParams_.Set("prettyPrint", "false")
111951	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
111952	urls += "?" + c.urlParams_.Encode()
111953	req, err := http.NewRequest("POST", urls, body)
111954	if err != nil {
111955		return nil, err
111956	}
111957	req.Header = reqHeaders
111958	googleapi.Expand(req.URL, map[string]string{
111959		"project":  c.project,
111960		"region":   c.region,
111961		"resource": c.resource,
111962	})
111963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111964}
111965
111966// Do executes the "compute.nodeTemplates.setIamPolicy" call.
111967// Exactly one of *Policy or error will be non-nil. Any non-2xx status
111968// code is an error. Response headers are in either
111969// *Policy.ServerResponse.Header or (if a response was returned at all)
111970// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
111971// check whether the returned error was because http.StatusNotModified
111972// was returned.
111973func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
111974	gensupport.SetOptions(c.urlParams_, opts...)
111975	res, err := c.doRequest("json")
111976	if res != nil && res.StatusCode == http.StatusNotModified {
111977		if res.Body != nil {
111978			res.Body.Close()
111979		}
111980		return nil, &googleapi.Error{
111981			Code:   res.StatusCode,
111982			Header: res.Header,
111983		}
111984	}
111985	if err != nil {
111986		return nil, err
111987	}
111988	defer googleapi.CloseBody(res)
111989	if err := googleapi.CheckResponse(res); err != nil {
111990		return nil, err
111991	}
111992	ret := &Policy{
111993		ServerResponse: googleapi.ServerResponse{
111994			Header:         res.Header,
111995			HTTPStatusCode: res.StatusCode,
111996		},
111997	}
111998	target := &ret
111999	if err := gensupport.DecodeResponse(target, res); err != nil {
112000		return nil, err
112001	}
112002	return ret, nil
112003	// {
112004	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
112005	//   "httpMethod": "POST",
112006	//   "id": "compute.nodeTemplates.setIamPolicy",
112007	//   "parameterOrder": [
112008	//     "project",
112009	//     "region",
112010	//     "resource"
112011	//   ],
112012	//   "parameters": {
112013	//     "project": {
112014	//       "description": "Project ID for this request.",
112015	//       "location": "path",
112016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112017	//       "required": true,
112018	//       "type": "string"
112019	//     },
112020	//     "region": {
112021	//       "description": "The name of the region for this request.",
112022	//       "location": "path",
112023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112024	//       "required": true,
112025	//       "type": "string"
112026	//     },
112027	//     "resource": {
112028	//       "description": "Name or id of the resource for this request.",
112029	//       "location": "path",
112030	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112031	//       "required": true,
112032	//       "type": "string"
112033	//     }
112034	//   },
112035	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
112036	//   "request": {
112037	//     "$ref": "RegionSetPolicyRequest"
112038	//   },
112039	//   "response": {
112040	//     "$ref": "Policy"
112041	//   },
112042	//   "scopes": [
112043	//     "https://www.googleapis.com/auth/cloud-platform",
112044	//     "https://www.googleapis.com/auth/compute"
112045	//   ]
112046	// }
112047
112048}
112049
112050// method id "compute.nodeTemplates.testIamPermissions":
112051
112052type NodeTemplatesTestIamPermissionsCall struct {
112053	s                      *Service
112054	project                string
112055	region                 string
112056	resource               string
112057	testpermissionsrequest *TestPermissionsRequest
112058	urlParams_             gensupport.URLParams
112059	ctx_                   context.Context
112060	header_                http.Header
112061}
112062
112063// TestIamPermissions: Returns permissions that a caller has on the
112064// specified resource.
112065func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
112066	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112067	c.project = project
112068	c.region = region
112069	c.resource = resource
112070	c.testpermissionsrequest = testpermissionsrequest
112071	return c
112072}
112073
112074// Fields allows partial responses to be retrieved. See
112075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112076// for more information.
112077func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
112078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112079	return c
112080}
112081
112082// Context sets the context to be used in this call's Do method. Any
112083// pending HTTP request will be aborted if the provided context is
112084// canceled.
112085func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
112086	c.ctx_ = ctx
112087	return c
112088}
112089
112090// Header returns an http.Header that can be modified by the caller to
112091// add HTTP headers to the request.
112092func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
112093	if c.header_ == nil {
112094		c.header_ = make(http.Header)
112095	}
112096	return c.header_
112097}
112098
112099func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
112100	reqHeaders := make(http.Header)
112101	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
112102	for k, v := range c.header_ {
112103		reqHeaders[k] = v
112104	}
112105	reqHeaders.Set("User-Agent", c.s.userAgent())
112106	var body io.Reader = nil
112107	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
112108	if err != nil {
112109		return nil, err
112110	}
112111	reqHeaders.Set("Content-Type", "application/json")
112112	c.urlParams_.Set("alt", alt)
112113	c.urlParams_.Set("prettyPrint", "false")
112114	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
112115	urls += "?" + c.urlParams_.Encode()
112116	req, err := http.NewRequest("POST", urls, body)
112117	if err != nil {
112118		return nil, err
112119	}
112120	req.Header = reqHeaders
112121	googleapi.Expand(req.URL, map[string]string{
112122		"project":  c.project,
112123		"region":   c.region,
112124		"resource": c.resource,
112125	})
112126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112127}
112128
112129// Do executes the "compute.nodeTemplates.testIamPermissions" call.
112130// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
112131// non-2xx status code is an error. Response headers are in either
112132// *TestPermissionsResponse.ServerResponse.Header or (if a response was
112133// returned at all) in error.(*googleapi.Error).Header. Use
112134// googleapi.IsNotModified to check whether the returned error was
112135// because http.StatusNotModified was returned.
112136func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
112137	gensupport.SetOptions(c.urlParams_, opts...)
112138	res, err := c.doRequest("json")
112139	if res != nil && res.StatusCode == http.StatusNotModified {
112140		if res.Body != nil {
112141			res.Body.Close()
112142		}
112143		return nil, &googleapi.Error{
112144			Code:   res.StatusCode,
112145			Header: res.Header,
112146		}
112147	}
112148	if err != nil {
112149		return nil, err
112150	}
112151	defer googleapi.CloseBody(res)
112152	if err := googleapi.CheckResponse(res); err != nil {
112153		return nil, err
112154	}
112155	ret := &TestPermissionsResponse{
112156		ServerResponse: googleapi.ServerResponse{
112157			Header:         res.Header,
112158			HTTPStatusCode: res.StatusCode,
112159		},
112160	}
112161	target := &ret
112162	if err := gensupport.DecodeResponse(target, res); err != nil {
112163		return nil, err
112164	}
112165	return ret, nil
112166	// {
112167	//   "description": "Returns permissions that a caller has on the specified resource.",
112168	//   "httpMethod": "POST",
112169	//   "id": "compute.nodeTemplates.testIamPermissions",
112170	//   "parameterOrder": [
112171	//     "project",
112172	//     "region",
112173	//     "resource"
112174	//   ],
112175	//   "parameters": {
112176	//     "project": {
112177	//       "description": "Project ID for this request.",
112178	//       "location": "path",
112179	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112180	//       "required": true,
112181	//       "type": "string"
112182	//     },
112183	//     "region": {
112184	//       "description": "The name of the region for this request.",
112185	//       "location": "path",
112186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112187	//       "required": true,
112188	//       "type": "string"
112189	//     },
112190	//     "resource": {
112191	//       "description": "Name or id of the resource for this request.",
112192	//       "location": "path",
112193	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112194	//       "required": true,
112195	//       "type": "string"
112196	//     }
112197	//   },
112198	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
112199	//   "request": {
112200	//     "$ref": "TestPermissionsRequest"
112201	//   },
112202	//   "response": {
112203	//     "$ref": "TestPermissionsResponse"
112204	//   },
112205	//   "scopes": [
112206	//     "https://www.googleapis.com/auth/cloud-platform",
112207	//     "https://www.googleapis.com/auth/compute",
112208	//     "https://www.googleapis.com/auth/compute.readonly"
112209	//   ]
112210	// }
112211
112212}
112213
112214// method id "compute.nodeTypes.aggregatedList":
112215
112216type NodeTypesAggregatedListCall struct {
112217	s            *Service
112218	project      string
112219	urlParams_   gensupport.URLParams
112220	ifNoneMatch_ string
112221	ctx_         context.Context
112222	header_      http.Header
112223}
112224
112225// AggregatedList: Retrieves an aggregated list of node types.
112226func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
112227	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112228	c.project = project
112229	return c
112230}
112231
112232// Filter sets the optional parameter "filter": A filter expression that
112233// filters resources listed in the response. The expression must specify
112234// the field name, a comparison operator, and the value that you want to
112235// use for filtering. The value must be a string, a number, or a
112236// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112237// `<`.
112238//
112239// For example, if you are filtering Compute Engine instances, you can
112240// exclude instances named `example-instance` by specifying `name !=
112241// example-instance`.
112242//
112243// You can also filter nested fields. For example, you could specify
112244// `scheduling.automaticRestart = false` to include instances only if
112245// they are not scheduled for automatic restarts. You can use filtering
112246// on nested fields to filter based on resource labels.
112247//
112248// To filter on multiple expressions, provide each separate expression
112249// within parentheses. For example: ``` (scheduling.automaticRestart =
112250// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
112251// is an `AND` expression. However, you can include `AND` and `OR`
112252// expressions explicitly. For example: ``` (cpuPlatform = "Intel
112253// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
112254// (scheduling.automaticRestart = true) ```
112255func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
112256	c.urlParams_.Set("filter", filter)
112257	return c
112258}
112259
112260// IncludeAllScopes sets the optional parameter "includeAllScopes":
112261// Indicates whether every visible scope for each scope type (zone,
112262// region, global) should be included in the response. For new resource
112263// types added after this field, the flag has no effect as new resource
112264// types will always include every visible scope for each scope type in
112265// response. For resource types which predate this field, if this flag
112266// is omitted or false, only scopes of the scope types where the
112267// resource type is expected to be found will be included.
112268func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
112269	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
112270	return c
112271}
112272
112273// MaxResults sets the optional parameter "maxResults": The maximum
112274// number of results per page that should be returned. If the number of
112275// available results is larger than `maxResults`, Compute Engine returns
112276// a `nextPageToken` that can be used to get the next page of results in
112277// subsequent list requests. Acceptable values are `0` to `500`,
112278// inclusive. (Default: `500`)
112279func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
112280	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112281	return c
112282}
112283
112284// OrderBy sets the optional parameter "orderBy": Sorts list results by
112285// a certain order. By default, results are returned in alphanumerical
112286// order based on the resource name.
112287//
112288// You can also sort results in descending order based on the creation
112289// timestamp using `orderBy="creationTimestamp desc". This sorts
112290// results based on the `creationTimestamp` field in reverse
112291// chronological order (newest result first). Use this to sort resources
112292// like operations so that the newest operation is returned
112293// first.
112294//
112295// Currently, only sorting by `name` or `creationTimestamp desc` is
112296// supported.
112297func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
112298	c.urlParams_.Set("orderBy", orderBy)
112299	return c
112300}
112301
112302// PageToken sets the optional parameter "pageToken": Specifies a page
112303// token to use. Set `pageToken` to the `nextPageToken` returned by a
112304// previous list request to get the next page of results.
112305func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
112306	c.urlParams_.Set("pageToken", pageToken)
112307	return c
112308}
112309
112310// ReturnPartialSuccess sets the optional parameter
112311// "returnPartialSuccess": Opt-in for partial success behavior which
112312// provides partial results in case of failure. The default value is
112313// false and the logic is the same as today.
112314func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall {
112315	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112316	return c
112317}
112318
112319// Fields allows partial responses to be retrieved. See
112320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112321// for more information.
112322func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
112323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112324	return c
112325}
112326
112327// IfNoneMatch sets the optional parameter which makes the operation
112328// fail if the object's ETag matches the given value. This is useful for
112329// getting updates only after the object has changed since the last
112330// request. Use googleapi.IsNotModified to check whether the response
112331// error from Do is the result of In-None-Match.
112332func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
112333	c.ifNoneMatch_ = entityTag
112334	return c
112335}
112336
112337// Context sets the context to be used in this call's Do method. Any
112338// pending HTTP request will be aborted if the provided context is
112339// canceled.
112340func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
112341	c.ctx_ = ctx
112342	return c
112343}
112344
112345// Header returns an http.Header that can be modified by the caller to
112346// add HTTP headers to the request.
112347func (c *NodeTypesAggregatedListCall) Header() http.Header {
112348	if c.header_ == nil {
112349		c.header_ = make(http.Header)
112350	}
112351	return c.header_
112352}
112353
112354func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
112355	reqHeaders := make(http.Header)
112356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
112357	for k, v := range c.header_ {
112358		reqHeaders[k] = v
112359	}
112360	reqHeaders.Set("User-Agent", c.s.userAgent())
112361	if c.ifNoneMatch_ != "" {
112362		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112363	}
112364	var body io.Reader = nil
112365	c.urlParams_.Set("alt", alt)
112366	c.urlParams_.Set("prettyPrint", "false")
112367	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTypes")
112368	urls += "?" + c.urlParams_.Encode()
112369	req, err := http.NewRequest("GET", urls, body)
112370	if err != nil {
112371		return nil, err
112372	}
112373	req.Header = reqHeaders
112374	googleapi.Expand(req.URL, map[string]string{
112375		"project": c.project,
112376	})
112377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112378}
112379
112380// Do executes the "compute.nodeTypes.aggregatedList" call.
112381// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
112382// non-2xx status code is an error. Response headers are in either
112383// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
112384// returned at all) in error.(*googleapi.Error).Header. Use
112385// googleapi.IsNotModified to check whether the returned error was
112386// because http.StatusNotModified was returned.
112387func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
112388	gensupport.SetOptions(c.urlParams_, opts...)
112389	res, err := c.doRequest("json")
112390	if res != nil && res.StatusCode == http.StatusNotModified {
112391		if res.Body != nil {
112392			res.Body.Close()
112393		}
112394		return nil, &googleapi.Error{
112395			Code:   res.StatusCode,
112396			Header: res.Header,
112397		}
112398	}
112399	if err != nil {
112400		return nil, err
112401	}
112402	defer googleapi.CloseBody(res)
112403	if err := googleapi.CheckResponse(res); err != nil {
112404		return nil, err
112405	}
112406	ret := &NodeTypeAggregatedList{
112407		ServerResponse: googleapi.ServerResponse{
112408			Header:         res.Header,
112409			HTTPStatusCode: res.StatusCode,
112410		},
112411	}
112412	target := &ret
112413	if err := gensupport.DecodeResponse(target, res); err != nil {
112414		return nil, err
112415	}
112416	return ret, nil
112417	// {
112418	//   "description": "Retrieves an aggregated list of node types.",
112419	//   "httpMethod": "GET",
112420	//   "id": "compute.nodeTypes.aggregatedList",
112421	//   "parameterOrder": [
112422	//     "project"
112423	//   ],
112424	//   "parameters": {
112425	//     "filter": {
112426	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
112427	//       "location": "query",
112428	//       "type": "string"
112429	//     },
112430	//     "includeAllScopes": {
112431	//       "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.",
112432	//       "location": "query",
112433	//       "type": "boolean"
112434	//     },
112435	//     "maxResults": {
112436	//       "default": "500",
112437	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112438	//       "format": "uint32",
112439	//       "location": "query",
112440	//       "minimum": "0",
112441	//       "type": "integer"
112442	//     },
112443	//     "orderBy": {
112444	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
112445	//       "location": "query",
112446	//       "type": "string"
112447	//     },
112448	//     "pageToken": {
112449	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112450	//       "location": "query",
112451	//       "type": "string"
112452	//     },
112453	//     "project": {
112454	//       "description": "Project ID for this request.",
112455	//       "location": "path",
112456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112457	//       "required": true,
112458	//       "type": "string"
112459	//     },
112460	//     "returnPartialSuccess": {
112461	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
112462	//       "location": "query",
112463	//       "type": "boolean"
112464	//     }
112465	//   },
112466	//   "path": "{project}/aggregated/nodeTypes",
112467	//   "response": {
112468	//     "$ref": "NodeTypeAggregatedList"
112469	//   },
112470	//   "scopes": [
112471	//     "https://www.googleapis.com/auth/cloud-platform",
112472	//     "https://www.googleapis.com/auth/compute",
112473	//     "https://www.googleapis.com/auth/compute.readonly"
112474	//   ]
112475	// }
112476
112477}
112478
112479// Pages invokes f for each page of results.
112480// A non-nil error returned from f will halt the iteration.
112481// The provided context supersedes any context provided to the Context method.
112482func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
112483	c.ctx_ = ctx
112484	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112485	for {
112486		x, err := c.Do()
112487		if err != nil {
112488			return err
112489		}
112490		if err := f(x); err != nil {
112491			return err
112492		}
112493		if x.NextPageToken == "" {
112494			return nil
112495		}
112496		c.PageToken(x.NextPageToken)
112497	}
112498}
112499
112500// method id "compute.nodeTypes.get":
112501
112502type NodeTypesGetCall struct {
112503	s            *Service
112504	project      string
112505	zone         string
112506	nodeType     string
112507	urlParams_   gensupport.URLParams
112508	ifNoneMatch_ string
112509	ctx_         context.Context
112510	header_      http.Header
112511}
112512
112513// Get: Returns the specified node type. Gets a list of available node
112514// types by making a list() request.
112515func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
112516	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112517	c.project = project
112518	c.zone = zone
112519	c.nodeType = nodeType
112520	return c
112521}
112522
112523// Fields allows partial responses to be retrieved. See
112524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112525// for more information.
112526func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
112527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112528	return c
112529}
112530
112531// IfNoneMatch sets the optional parameter which makes the operation
112532// fail if the object's ETag matches the given value. This is useful for
112533// getting updates only after the object has changed since the last
112534// request. Use googleapi.IsNotModified to check whether the response
112535// error from Do is the result of In-None-Match.
112536func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
112537	c.ifNoneMatch_ = entityTag
112538	return c
112539}
112540
112541// Context sets the context to be used in this call's Do method. Any
112542// pending HTTP request will be aborted if the provided context is
112543// canceled.
112544func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
112545	c.ctx_ = ctx
112546	return c
112547}
112548
112549// Header returns an http.Header that can be modified by the caller to
112550// add HTTP headers to the request.
112551func (c *NodeTypesGetCall) Header() http.Header {
112552	if c.header_ == nil {
112553		c.header_ = make(http.Header)
112554	}
112555	return c.header_
112556}
112557
112558func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
112559	reqHeaders := make(http.Header)
112560	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
112561	for k, v := range c.header_ {
112562		reqHeaders[k] = v
112563	}
112564	reqHeaders.Set("User-Agent", c.s.userAgent())
112565	if c.ifNoneMatch_ != "" {
112566		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112567	}
112568	var body io.Reader = nil
112569	c.urlParams_.Set("alt", alt)
112570	c.urlParams_.Set("prettyPrint", "false")
112571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes/{nodeType}")
112572	urls += "?" + c.urlParams_.Encode()
112573	req, err := http.NewRequest("GET", urls, body)
112574	if err != nil {
112575		return nil, err
112576	}
112577	req.Header = reqHeaders
112578	googleapi.Expand(req.URL, map[string]string{
112579		"project":  c.project,
112580		"zone":     c.zone,
112581		"nodeType": c.nodeType,
112582	})
112583	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112584}
112585
112586// Do executes the "compute.nodeTypes.get" call.
112587// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
112588// code is an error. Response headers are in either
112589// *NodeType.ServerResponse.Header or (if a response was returned at
112590// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112591// to check whether the returned error was because
112592// http.StatusNotModified was returned.
112593func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
112594	gensupport.SetOptions(c.urlParams_, opts...)
112595	res, err := c.doRequest("json")
112596	if res != nil && res.StatusCode == http.StatusNotModified {
112597		if res.Body != nil {
112598			res.Body.Close()
112599		}
112600		return nil, &googleapi.Error{
112601			Code:   res.StatusCode,
112602			Header: res.Header,
112603		}
112604	}
112605	if err != nil {
112606		return nil, err
112607	}
112608	defer googleapi.CloseBody(res)
112609	if err := googleapi.CheckResponse(res); err != nil {
112610		return nil, err
112611	}
112612	ret := &NodeType{
112613		ServerResponse: googleapi.ServerResponse{
112614			Header:         res.Header,
112615			HTTPStatusCode: res.StatusCode,
112616		},
112617	}
112618	target := &ret
112619	if err := gensupport.DecodeResponse(target, res); err != nil {
112620		return nil, err
112621	}
112622	return ret, nil
112623	// {
112624	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
112625	//   "httpMethod": "GET",
112626	//   "id": "compute.nodeTypes.get",
112627	//   "parameterOrder": [
112628	//     "project",
112629	//     "zone",
112630	//     "nodeType"
112631	//   ],
112632	//   "parameters": {
112633	//     "nodeType": {
112634	//       "description": "Name of the node type to return.",
112635	//       "location": "path",
112636	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112637	//       "required": true,
112638	//       "type": "string"
112639	//     },
112640	//     "project": {
112641	//       "description": "Project ID for this request.",
112642	//       "location": "path",
112643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112644	//       "required": true,
112645	//       "type": "string"
112646	//     },
112647	//     "zone": {
112648	//       "description": "The name of the zone for this request.",
112649	//       "location": "path",
112650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112651	//       "required": true,
112652	//       "type": "string"
112653	//     }
112654	//   },
112655	//   "path": "{project}/zones/{zone}/nodeTypes/{nodeType}",
112656	//   "response": {
112657	//     "$ref": "NodeType"
112658	//   },
112659	//   "scopes": [
112660	//     "https://www.googleapis.com/auth/cloud-platform",
112661	//     "https://www.googleapis.com/auth/compute",
112662	//     "https://www.googleapis.com/auth/compute.readonly"
112663	//   ]
112664	// }
112665
112666}
112667
112668// method id "compute.nodeTypes.list":
112669
112670type NodeTypesListCall struct {
112671	s            *Service
112672	project      string
112673	zone         string
112674	urlParams_   gensupport.URLParams
112675	ifNoneMatch_ string
112676	ctx_         context.Context
112677	header_      http.Header
112678}
112679
112680// List: Retrieves a list of node types available to the specified
112681// project.
112682func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
112683	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112684	c.project = project
112685	c.zone = zone
112686	return c
112687}
112688
112689// Filter sets the optional parameter "filter": A filter expression that
112690// filters resources listed in the response. The expression must specify
112691// the field name, a comparison operator, and the value that you want to
112692// use for filtering. The value must be a string, a number, or a
112693// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112694// `<`.
112695//
112696// For example, if you are filtering Compute Engine instances, you can
112697// exclude instances named `example-instance` by specifying `name !=
112698// example-instance`.
112699//
112700// You can also filter nested fields. For example, you could specify
112701// `scheduling.automaticRestart = false` to include instances only if
112702// they are not scheduled for automatic restarts. You can use filtering
112703// on nested fields to filter based on resource labels.
112704//
112705// To filter on multiple expressions, provide each separate expression
112706// within parentheses. For example: ``` (scheduling.automaticRestart =
112707// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
112708// is an `AND` expression. However, you can include `AND` and `OR`
112709// expressions explicitly. For example: ``` (cpuPlatform = "Intel
112710// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
112711// (scheduling.automaticRestart = true) ```
112712func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
112713	c.urlParams_.Set("filter", filter)
112714	return c
112715}
112716
112717// MaxResults sets the optional parameter "maxResults": The maximum
112718// number of results per page that should be returned. If the number of
112719// available results is larger than `maxResults`, Compute Engine returns
112720// a `nextPageToken` that can be used to get the next page of results in
112721// subsequent list requests. Acceptable values are `0` to `500`,
112722// inclusive. (Default: `500`)
112723func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
112724	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112725	return c
112726}
112727
112728// OrderBy sets the optional parameter "orderBy": Sorts list results by
112729// a certain order. By default, results are returned in alphanumerical
112730// order based on the resource name.
112731//
112732// You can also sort results in descending order based on the creation
112733// timestamp using `orderBy="creationTimestamp desc". This sorts
112734// results based on the `creationTimestamp` field in reverse
112735// chronological order (newest result first). Use this to sort resources
112736// like operations so that the newest operation is returned
112737// first.
112738//
112739// Currently, only sorting by `name` or `creationTimestamp desc` is
112740// supported.
112741func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
112742	c.urlParams_.Set("orderBy", orderBy)
112743	return c
112744}
112745
112746// PageToken sets the optional parameter "pageToken": Specifies a page
112747// token to use. Set `pageToken` to the `nextPageToken` returned by a
112748// previous list request to get the next page of results.
112749func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
112750	c.urlParams_.Set("pageToken", pageToken)
112751	return c
112752}
112753
112754// ReturnPartialSuccess sets the optional parameter
112755// "returnPartialSuccess": Opt-in for partial success behavior which
112756// provides partial results in case of failure. The default value is
112757// false and the logic is the same as today.
112758func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall {
112759	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112760	return c
112761}
112762
112763// Fields allows partial responses to be retrieved. See
112764// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112765// for more information.
112766func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
112767	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112768	return c
112769}
112770
112771// IfNoneMatch sets the optional parameter which makes the operation
112772// fail if the object's ETag matches the given value. This is useful for
112773// getting updates only after the object has changed since the last
112774// request. Use googleapi.IsNotModified to check whether the response
112775// error from Do is the result of In-None-Match.
112776func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
112777	c.ifNoneMatch_ = entityTag
112778	return c
112779}
112780
112781// Context sets the context to be used in this call's Do method. Any
112782// pending HTTP request will be aborted if the provided context is
112783// canceled.
112784func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
112785	c.ctx_ = ctx
112786	return c
112787}
112788
112789// Header returns an http.Header that can be modified by the caller to
112790// add HTTP headers to the request.
112791func (c *NodeTypesListCall) Header() http.Header {
112792	if c.header_ == nil {
112793		c.header_ = make(http.Header)
112794	}
112795	return c.header_
112796}
112797
112798func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
112799	reqHeaders := make(http.Header)
112800	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
112801	for k, v := range c.header_ {
112802		reqHeaders[k] = v
112803	}
112804	reqHeaders.Set("User-Agent", c.s.userAgent())
112805	if c.ifNoneMatch_ != "" {
112806		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112807	}
112808	var body io.Reader = nil
112809	c.urlParams_.Set("alt", alt)
112810	c.urlParams_.Set("prettyPrint", "false")
112811	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes")
112812	urls += "?" + c.urlParams_.Encode()
112813	req, err := http.NewRequest("GET", urls, body)
112814	if err != nil {
112815		return nil, err
112816	}
112817	req.Header = reqHeaders
112818	googleapi.Expand(req.URL, map[string]string{
112819		"project": c.project,
112820		"zone":    c.zone,
112821	})
112822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112823}
112824
112825// Do executes the "compute.nodeTypes.list" call.
112826// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
112827// status code is an error. Response headers are in either
112828// *NodeTypeList.ServerResponse.Header or (if a response was returned at
112829// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112830// to check whether the returned error was because
112831// http.StatusNotModified was returned.
112832func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
112833	gensupport.SetOptions(c.urlParams_, opts...)
112834	res, err := c.doRequest("json")
112835	if res != nil && res.StatusCode == http.StatusNotModified {
112836		if res.Body != nil {
112837			res.Body.Close()
112838		}
112839		return nil, &googleapi.Error{
112840			Code:   res.StatusCode,
112841			Header: res.Header,
112842		}
112843	}
112844	if err != nil {
112845		return nil, err
112846	}
112847	defer googleapi.CloseBody(res)
112848	if err := googleapi.CheckResponse(res); err != nil {
112849		return nil, err
112850	}
112851	ret := &NodeTypeList{
112852		ServerResponse: googleapi.ServerResponse{
112853			Header:         res.Header,
112854			HTTPStatusCode: res.StatusCode,
112855		},
112856	}
112857	target := &ret
112858	if err := gensupport.DecodeResponse(target, res); err != nil {
112859		return nil, err
112860	}
112861	return ret, nil
112862	// {
112863	//   "description": "Retrieves a list of node types available to the specified project.",
112864	//   "httpMethod": "GET",
112865	//   "id": "compute.nodeTypes.list",
112866	//   "parameterOrder": [
112867	//     "project",
112868	//     "zone"
112869	//   ],
112870	//   "parameters": {
112871	//     "filter": {
112872	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
112873	//       "location": "query",
112874	//       "type": "string"
112875	//     },
112876	//     "maxResults": {
112877	//       "default": "500",
112878	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112879	//       "format": "uint32",
112880	//       "location": "query",
112881	//       "minimum": "0",
112882	//       "type": "integer"
112883	//     },
112884	//     "orderBy": {
112885	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
112886	//       "location": "query",
112887	//       "type": "string"
112888	//     },
112889	//     "pageToken": {
112890	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112891	//       "location": "query",
112892	//       "type": "string"
112893	//     },
112894	//     "project": {
112895	//       "description": "Project ID for this request.",
112896	//       "location": "path",
112897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112898	//       "required": true,
112899	//       "type": "string"
112900	//     },
112901	//     "returnPartialSuccess": {
112902	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
112903	//       "location": "query",
112904	//       "type": "boolean"
112905	//     },
112906	//     "zone": {
112907	//       "description": "The name of the zone for this request.",
112908	//       "location": "path",
112909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112910	//       "required": true,
112911	//       "type": "string"
112912	//     }
112913	//   },
112914	//   "path": "{project}/zones/{zone}/nodeTypes",
112915	//   "response": {
112916	//     "$ref": "NodeTypeList"
112917	//   },
112918	//   "scopes": [
112919	//     "https://www.googleapis.com/auth/cloud-platform",
112920	//     "https://www.googleapis.com/auth/compute",
112921	//     "https://www.googleapis.com/auth/compute.readonly"
112922	//   ]
112923	// }
112924
112925}
112926
112927// Pages invokes f for each page of results.
112928// A non-nil error returned from f will halt the iteration.
112929// The provided context supersedes any context provided to the Context method.
112930func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
112931	c.ctx_ = ctx
112932	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112933	for {
112934		x, err := c.Do()
112935		if err != nil {
112936			return err
112937		}
112938		if err := f(x); err != nil {
112939			return err
112940		}
112941		if x.NextPageToken == "" {
112942			return nil
112943		}
112944		c.PageToken(x.NextPageToken)
112945	}
112946}
112947
112948// method id "compute.organizationSecurityPolicies.addAssociation":
112949
112950type OrganizationSecurityPoliciesAddAssociationCall struct {
112951	s                         *Service
112952	securityPolicy            string
112953	securitypolicyassociation *SecurityPolicyAssociation
112954	urlParams_                gensupport.URLParams
112955	ctx_                      context.Context
112956	header_                   http.Header
112957}
112958
112959// AddAssociation: Inserts an association for the specified security
112960// policy.
112961func (r *OrganizationSecurityPoliciesService) AddAssociation(securityPolicy string, securitypolicyassociation *SecurityPolicyAssociation) *OrganizationSecurityPoliciesAddAssociationCall {
112962	c := &OrganizationSecurityPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112963	c.securityPolicy = securityPolicy
112964	c.securitypolicyassociation = securitypolicyassociation
112965	return c
112966}
112967
112968// ReplaceExistingAssociation sets the optional parameter
112969// "replaceExistingAssociation": Indicates whether or not to replace it
112970// if an association of the attachment already exists. This is false by
112971// default, in which case an error will be returned if an assocation
112972// already exists.
112973func (c *OrganizationSecurityPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *OrganizationSecurityPoliciesAddAssociationCall {
112974	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
112975	return c
112976}
112977
112978// RequestId sets the optional parameter "requestId": An optional
112979// request ID to identify requests. Specify a unique request ID so that
112980// if you must retry your request, the server will know to ignore the
112981// request if it has already been completed.
112982//
112983// For example, consider a situation where you make an initial request
112984// and the request times out. If you make the request again with the
112985// same request ID, the server can check if original operation with the
112986// same request ID was received, and if so, will ignore the second
112987// request. This prevents clients from accidentally creating duplicate
112988// commitments.
112989//
112990// The request ID must be a valid UUID with the exception that zero UUID
112991// is not supported (00000000-0000-0000-0000-000000000000).
112992func (c *OrganizationSecurityPoliciesAddAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddAssociationCall {
112993	c.urlParams_.Set("requestId", requestId)
112994	return c
112995}
112996
112997// Fields allows partial responses to be retrieved. See
112998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112999// for more information.
113000func (c *OrganizationSecurityPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddAssociationCall {
113001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113002	return c
113003}
113004
113005// Context sets the context to be used in this call's Do method. Any
113006// pending HTTP request will be aborted if the provided context is
113007// canceled.
113008func (c *OrganizationSecurityPoliciesAddAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddAssociationCall {
113009	c.ctx_ = ctx
113010	return c
113011}
113012
113013// Header returns an http.Header that can be modified by the caller to
113014// add HTTP headers to the request.
113015func (c *OrganizationSecurityPoliciesAddAssociationCall) Header() http.Header {
113016	if c.header_ == nil {
113017		c.header_ = make(http.Header)
113018	}
113019	return c.header_
113020}
113021
113022func (c *OrganizationSecurityPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
113023	reqHeaders := make(http.Header)
113024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
113025	for k, v := range c.header_ {
113026		reqHeaders[k] = v
113027	}
113028	reqHeaders.Set("User-Agent", c.s.userAgent())
113029	var body io.Reader = nil
113030	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyassociation)
113031	if err != nil {
113032		return nil, err
113033	}
113034	reqHeaders.Set("Content-Type", "application/json")
113035	c.urlParams_.Set("alt", alt)
113036	c.urlParams_.Set("prettyPrint", "false")
113037	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addAssociation")
113038	urls += "?" + c.urlParams_.Encode()
113039	req, err := http.NewRequest("POST", urls, body)
113040	if err != nil {
113041		return nil, err
113042	}
113043	req.Header = reqHeaders
113044	googleapi.Expand(req.URL, map[string]string{
113045		"securityPolicy": c.securityPolicy,
113046	})
113047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113048}
113049
113050// Do executes the "compute.organizationSecurityPolicies.addAssociation" call.
113051// Exactly one of *Operation or error will be non-nil. Any non-2xx
113052// status code is an error. Response headers are in either
113053// *Operation.ServerResponse.Header or (if a response was returned at
113054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113055// to check whether the returned error was because
113056// http.StatusNotModified was returned.
113057func (c *OrganizationSecurityPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113058	gensupport.SetOptions(c.urlParams_, opts...)
113059	res, err := c.doRequest("json")
113060	if res != nil && res.StatusCode == http.StatusNotModified {
113061		if res.Body != nil {
113062			res.Body.Close()
113063		}
113064		return nil, &googleapi.Error{
113065			Code:   res.StatusCode,
113066			Header: res.Header,
113067		}
113068	}
113069	if err != nil {
113070		return nil, err
113071	}
113072	defer googleapi.CloseBody(res)
113073	if err := googleapi.CheckResponse(res); err != nil {
113074		return nil, err
113075	}
113076	ret := &Operation{
113077		ServerResponse: googleapi.ServerResponse{
113078			Header:         res.Header,
113079			HTTPStatusCode: res.StatusCode,
113080		},
113081	}
113082	target := &ret
113083	if err := gensupport.DecodeResponse(target, res); err != nil {
113084		return nil, err
113085	}
113086	return ret, nil
113087	// {
113088	//   "description": "Inserts an association for the specified security policy.",
113089	//   "httpMethod": "POST",
113090	//   "id": "compute.organizationSecurityPolicies.addAssociation",
113091	//   "parameterOrder": [
113092	//     "securityPolicy"
113093	//   ],
113094	//   "parameters": {
113095	//     "replaceExistingAssociation": {
113096	//       "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 assocation already exists.",
113097	//       "location": "query",
113098	//       "type": "boolean"
113099	//     },
113100	//     "requestId": {
113101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113102	//       "location": "query",
113103	//       "type": "string"
113104	//     },
113105	//     "securityPolicy": {
113106	//       "description": "Name of the security policy to update.",
113107	//       "location": "path",
113108	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
113109	//       "required": true,
113110	//       "type": "string"
113111	//     }
113112	//   },
113113	//   "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
113114	//   "request": {
113115	//     "$ref": "SecurityPolicyAssociation"
113116	//   },
113117	//   "response": {
113118	//     "$ref": "Operation"
113119	//   },
113120	//   "scopes": [
113121	//     "https://www.googleapis.com/auth/cloud-platform",
113122	//     "https://www.googleapis.com/auth/compute"
113123	//   ]
113124	// }
113125
113126}
113127
113128// method id "compute.organizationSecurityPolicies.addRule":
113129
113130type OrganizationSecurityPoliciesAddRuleCall struct {
113131	s                  *Service
113132	securityPolicy     string
113133	securitypolicyrule *SecurityPolicyRule
113134	urlParams_         gensupport.URLParams
113135	ctx_               context.Context
113136	header_            http.Header
113137}
113138
113139// AddRule: Inserts a rule into a security policy.
113140func (r *OrganizationSecurityPoliciesService) AddRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesAddRuleCall {
113141	c := &OrganizationSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113142	c.securityPolicy = securityPolicy
113143	c.securitypolicyrule = securitypolicyrule
113144	return c
113145}
113146
113147// RequestId sets the optional parameter "requestId": An optional
113148// request ID to identify requests. Specify a unique request ID so that
113149// if you must retry your request, the server will know to ignore the
113150// request if it has already been completed.
113151//
113152// For example, consider a situation where you make an initial request
113153// and the request times out. If you make the request again with the
113154// same request ID, the server can check if original operation with the
113155// same request ID was received, and if so, will ignore the second
113156// request. This prevents clients from accidentally creating duplicate
113157// commitments.
113158//
113159// The request ID must be a valid UUID with the exception that zero UUID
113160// is not supported (00000000-0000-0000-0000-000000000000).
113161func (c *OrganizationSecurityPoliciesAddRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddRuleCall {
113162	c.urlParams_.Set("requestId", requestId)
113163	return c
113164}
113165
113166// Fields allows partial responses to be retrieved. See
113167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113168// for more information.
113169func (c *OrganizationSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddRuleCall {
113170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113171	return c
113172}
113173
113174// Context sets the context to be used in this call's Do method. Any
113175// pending HTTP request will be aborted if the provided context is
113176// canceled.
113177func (c *OrganizationSecurityPoliciesAddRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddRuleCall {
113178	c.ctx_ = ctx
113179	return c
113180}
113181
113182// Header returns an http.Header that can be modified by the caller to
113183// add HTTP headers to the request.
113184func (c *OrganizationSecurityPoliciesAddRuleCall) Header() http.Header {
113185	if c.header_ == nil {
113186		c.header_ = make(http.Header)
113187	}
113188	return c.header_
113189}
113190
113191func (c *OrganizationSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
113192	reqHeaders := make(http.Header)
113193	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
113194	for k, v := range c.header_ {
113195		reqHeaders[k] = v
113196	}
113197	reqHeaders.Set("User-Agent", c.s.userAgent())
113198	var body io.Reader = nil
113199	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
113200	if err != nil {
113201		return nil, err
113202	}
113203	reqHeaders.Set("Content-Type", "application/json")
113204	c.urlParams_.Set("alt", alt)
113205	c.urlParams_.Set("prettyPrint", "false")
113206	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addRule")
113207	urls += "?" + c.urlParams_.Encode()
113208	req, err := http.NewRequest("POST", urls, body)
113209	if err != nil {
113210		return nil, err
113211	}
113212	req.Header = reqHeaders
113213	googleapi.Expand(req.URL, map[string]string{
113214		"securityPolicy": c.securityPolicy,
113215	})
113216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113217}
113218
113219// Do executes the "compute.organizationSecurityPolicies.addRule" call.
113220// Exactly one of *Operation or error will be non-nil. Any non-2xx
113221// status code is an error. Response headers are in either
113222// *Operation.ServerResponse.Header or (if a response was returned at
113223// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113224// to check whether the returned error was because
113225// http.StatusNotModified was returned.
113226func (c *OrganizationSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113227	gensupport.SetOptions(c.urlParams_, opts...)
113228	res, err := c.doRequest("json")
113229	if res != nil && res.StatusCode == http.StatusNotModified {
113230		if res.Body != nil {
113231			res.Body.Close()
113232		}
113233		return nil, &googleapi.Error{
113234			Code:   res.StatusCode,
113235			Header: res.Header,
113236		}
113237	}
113238	if err != nil {
113239		return nil, err
113240	}
113241	defer googleapi.CloseBody(res)
113242	if err := googleapi.CheckResponse(res); err != nil {
113243		return nil, err
113244	}
113245	ret := &Operation{
113246		ServerResponse: googleapi.ServerResponse{
113247			Header:         res.Header,
113248			HTTPStatusCode: res.StatusCode,
113249		},
113250	}
113251	target := &ret
113252	if err := gensupport.DecodeResponse(target, res); err != nil {
113253		return nil, err
113254	}
113255	return ret, nil
113256	// {
113257	//   "description": "Inserts a rule into a security policy.",
113258	//   "httpMethod": "POST",
113259	//   "id": "compute.organizationSecurityPolicies.addRule",
113260	//   "parameterOrder": [
113261	//     "securityPolicy"
113262	//   ],
113263	//   "parameters": {
113264	//     "requestId": {
113265	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113266	//       "location": "query",
113267	//       "type": "string"
113268	//     },
113269	//     "securityPolicy": {
113270	//       "description": "Name of the security policy to update.",
113271	//       "location": "path",
113272	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
113273	//       "required": true,
113274	//       "type": "string"
113275	//     }
113276	//   },
113277	//   "path": "locations/global/securityPolicies/{securityPolicy}/addRule",
113278	//   "request": {
113279	//     "$ref": "SecurityPolicyRule"
113280	//   },
113281	//   "response": {
113282	//     "$ref": "Operation"
113283	//   },
113284	//   "scopes": [
113285	//     "https://www.googleapis.com/auth/cloud-platform",
113286	//     "https://www.googleapis.com/auth/compute"
113287	//   ]
113288	// }
113289
113290}
113291
113292// method id "compute.organizationSecurityPolicies.copyRules":
113293
113294type OrganizationSecurityPoliciesCopyRulesCall struct {
113295	s              *Service
113296	securityPolicy string
113297	urlParams_     gensupport.URLParams
113298	ctx_           context.Context
113299	header_        http.Header
113300}
113301
113302// CopyRules: Copies rules to the specified security policy.
113303func (r *OrganizationSecurityPoliciesService) CopyRules(securityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
113304	c := &OrganizationSecurityPoliciesCopyRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113305	c.securityPolicy = securityPolicy
113306	return c
113307}
113308
113309// RequestId sets the optional parameter "requestId": An optional
113310// request ID to identify requests. Specify a unique request ID so that
113311// if you must retry your request, the server will know to ignore the
113312// request if it has already been completed.
113313//
113314// For example, consider a situation where you make an initial request
113315// and the request times out. If you make the request again with the
113316// same request ID, the server can check if original operation with the
113317// same request ID was received, and if so, will ignore the second
113318// request. This prevents clients from accidentally creating duplicate
113319// commitments.
113320//
113321// The request ID must be a valid UUID with the exception that zero UUID
113322// is not supported (00000000-0000-0000-0000-000000000000).
113323func (c *OrganizationSecurityPoliciesCopyRulesCall) RequestId(requestId string) *OrganizationSecurityPoliciesCopyRulesCall {
113324	c.urlParams_.Set("requestId", requestId)
113325	return c
113326}
113327
113328// SourceSecurityPolicy sets the optional parameter
113329// "sourceSecurityPolicy": The security policy from which to copy rules.
113330func (c *OrganizationSecurityPoliciesCopyRulesCall) SourceSecurityPolicy(sourceSecurityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
113331	c.urlParams_.Set("sourceSecurityPolicy", sourceSecurityPolicy)
113332	return c
113333}
113334
113335// Fields allows partial responses to be retrieved. See
113336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113337// for more information.
113338func (c *OrganizationSecurityPoliciesCopyRulesCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesCopyRulesCall {
113339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113340	return c
113341}
113342
113343// Context sets the context to be used in this call's Do method. Any
113344// pending HTTP request will be aborted if the provided context is
113345// canceled.
113346func (c *OrganizationSecurityPoliciesCopyRulesCall) Context(ctx context.Context) *OrganizationSecurityPoliciesCopyRulesCall {
113347	c.ctx_ = ctx
113348	return c
113349}
113350
113351// Header returns an http.Header that can be modified by the caller to
113352// add HTTP headers to the request.
113353func (c *OrganizationSecurityPoliciesCopyRulesCall) Header() http.Header {
113354	if c.header_ == nil {
113355		c.header_ = make(http.Header)
113356	}
113357	return c.header_
113358}
113359
113360func (c *OrganizationSecurityPoliciesCopyRulesCall) doRequest(alt string) (*http.Response, error) {
113361	reqHeaders := make(http.Header)
113362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
113363	for k, v := range c.header_ {
113364		reqHeaders[k] = v
113365	}
113366	reqHeaders.Set("User-Agent", c.s.userAgent())
113367	var body io.Reader = nil
113368	c.urlParams_.Set("alt", alt)
113369	c.urlParams_.Set("prettyPrint", "false")
113370	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/copyRules")
113371	urls += "?" + c.urlParams_.Encode()
113372	req, err := http.NewRequest("POST", urls, body)
113373	if err != nil {
113374		return nil, err
113375	}
113376	req.Header = reqHeaders
113377	googleapi.Expand(req.URL, map[string]string{
113378		"securityPolicy": c.securityPolicy,
113379	})
113380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113381}
113382
113383// Do executes the "compute.organizationSecurityPolicies.copyRules" call.
113384// Exactly one of *Operation or error will be non-nil. Any non-2xx
113385// status code is an error. Response headers are in either
113386// *Operation.ServerResponse.Header or (if a response was returned at
113387// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113388// to check whether the returned error was because
113389// http.StatusNotModified was returned.
113390func (c *OrganizationSecurityPoliciesCopyRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113391	gensupport.SetOptions(c.urlParams_, opts...)
113392	res, err := c.doRequest("json")
113393	if res != nil && res.StatusCode == http.StatusNotModified {
113394		if res.Body != nil {
113395			res.Body.Close()
113396		}
113397		return nil, &googleapi.Error{
113398			Code:   res.StatusCode,
113399			Header: res.Header,
113400		}
113401	}
113402	if err != nil {
113403		return nil, err
113404	}
113405	defer googleapi.CloseBody(res)
113406	if err := googleapi.CheckResponse(res); err != nil {
113407		return nil, err
113408	}
113409	ret := &Operation{
113410		ServerResponse: googleapi.ServerResponse{
113411			Header:         res.Header,
113412			HTTPStatusCode: res.StatusCode,
113413		},
113414	}
113415	target := &ret
113416	if err := gensupport.DecodeResponse(target, res); err != nil {
113417		return nil, err
113418	}
113419	return ret, nil
113420	// {
113421	//   "description": "Copies rules to the specified security policy.",
113422	//   "httpMethod": "POST",
113423	//   "id": "compute.organizationSecurityPolicies.copyRules",
113424	//   "parameterOrder": [
113425	//     "securityPolicy"
113426	//   ],
113427	//   "parameters": {
113428	//     "requestId": {
113429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113430	//       "location": "query",
113431	//       "type": "string"
113432	//     },
113433	//     "securityPolicy": {
113434	//       "description": "Name of the security policy to update.",
113435	//       "location": "path",
113436	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
113437	//       "required": true,
113438	//       "type": "string"
113439	//     },
113440	//     "sourceSecurityPolicy": {
113441	//       "description": "The security policy from which to copy rules.",
113442	//       "location": "query",
113443	//       "type": "string"
113444	//     }
113445	//   },
113446	//   "path": "locations/global/securityPolicies/{securityPolicy}/copyRules",
113447	//   "response": {
113448	//     "$ref": "Operation"
113449	//   },
113450	//   "scopes": [
113451	//     "https://www.googleapis.com/auth/cloud-platform",
113452	//     "https://www.googleapis.com/auth/compute"
113453	//   ]
113454	// }
113455
113456}
113457
113458// method id "compute.organizationSecurityPolicies.delete":
113459
113460type OrganizationSecurityPoliciesDeleteCall struct {
113461	s              *Service
113462	securityPolicy string
113463	urlParams_     gensupport.URLParams
113464	ctx_           context.Context
113465	header_        http.Header
113466}
113467
113468// Delete: Deletes the specified policy.
113469func (r *OrganizationSecurityPoliciesService) Delete(securityPolicy string) *OrganizationSecurityPoliciesDeleteCall {
113470	c := &OrganizationSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113471	c.securityPolicy = securityPolicy
113472	return c
113473}
113474
113475// RequestId sets the optional parameter "requestId": An optional
113476// request ID to identify requests. Specify a unique request ID so that
113477// if you must retry your request, the server will know to ignore the
113478// request if it has already been completed.
113479//
113480// For example, consider a situation where you make an initial request
113481// and the request times out. If you make the request again with the
113482// same request ID, the server can check if original operation with the
113483// same request ID was received, and if so, will ignore the second
113484// request. This prevents clients from accidentally creating duplicate
113485// commitments.
113486//
113487// The request ID must be a valid UUID with the exception that zero UUID
113488// is not supported (00000000-0000-0000-0000-000000000000).
113489func (c *OrganizationSecurityPoliciesDeleteCall) RequestId(requestId string) *OrganizationSecurityPoliciesDeleteCall {
113490	c.urlParams_.Set("requestId", requestId)
113491	return c
113492}
113493
113494// Fields allows partial responses to be retrieved. See
113495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113496// for more information.
113497func (c *OrganizationSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesDeleteCall {
113498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113499	return c
113500}
113501
113502// Context sets the context to be used in this call's Do method. Any
113503// pending HTTP request will be aborted if the provided context is
113504// canceled.
113505func (c *OrganizationSecurityPoliciesDeleteCall) Context(ctx context.Context) *OrganizationSecurityPoliciesDeleteCall {
113506	c.ctx_ = ctx
113507	return c
113508}
113509
113510// Header returns an http.Header that can be modified by the caller to
113511// add HTTP headers to the request.
113512func (c *OrganizationSecurityPoliciesDeleteCall) Header() http.Header {
113513	if c.header_ == nil {
113514		c.header_ = make(http.Header)
113515	}
113516	return c.header_
113517}
113518
113519func (c *OrganizationSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
113520	reqHeaders := make(http.Header)
113521	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
113522	for k, v := range c.header_ {
113523		reqHeaders[k] = v
113524	}
113525	reqHeaders.Set("User-Agent", c.s.userAgent())
113526	var body io.Reader = nil
113527	c.urlParams_.Set("alt", alt)
113528	c.urlParams_.Set("prettyPrint", "false")
113529	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
113530	urls += "?" + c.urlParams_.Encode()
113531	req, err := http.NewRequest("DELETE", urls, body)
113532	if err != nil {
113533		return nil, err
113534	}
113535	req.Header = reqHeaders
113536	googleapi.Expand(req.URL, map[string]string{
113537		"securityPolicy": c.securityPolicy,
113538	})
113539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113540}
113541
113542// Do executes the "compute.organizationSecurityPolicies.delete" call.
113543// Exactly one of *Operation or error will be non-nil. Any non-2xx
113544// status code is an error. Response headers are in either
113545// *Operation.ServerResponse.Header or (if a response was returned at
113546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113547// to check whether the returned error was because
113548// http.StatusNotModified was returned.
113549func (c *OrganizationSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113550	gensupport.SetOptions(c.urlParams_, opts...)
113551	res, err := c.doRequest("json")
113552	if res != nil && res.StatusCode == http.StatusNotModified {
113553		if res.Body != nil {
113554			res.Body.Close()
113555		}
113556		return nil, &googleapi.Error{
113557			Code:   res.StatusCode,
113558			Header: res.Header,
113559		}
113560	}
113561	if err != nil {
113562		return nil, err
113563	}
113564	defer googleapi.CloseBody(res)
113565	if err := googleapi.CheckResponse(res); err != nil {
113566		return nil, err
113567	}
113568	ret := &Operation{
113569		ServerResponse: googleapi.ServerResponse{
113570			Header:         res.Header,
113571			HTTPStatusCode: res.StatusCode,
113572		},
113573	}
113574	target := &ret
113575	if err := gensupport.DecodeResponse(target, res); err != nil {
113576		return nil, err
113577	}
113578	return ret, nil
113579	// {
113580	//   "description": "Deletes the specified policy.",
113581	//   "httpMethod": "DELETE",
113582	//   "id": "compute.organizationSecurityPolicies.delete",
113583	//   "parameterOrder": [
113584	//     "securityPolicy"
113585	//   ],
113586	//   "parameters": {
113587	//     "requestId": {
113588	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113589	//       "location": "query",
113590	//       "type": "string"
113591	//     },
113592	//     "securityPolicy": {
113593	//       "description": "Name of the security policy to delete.",
113594	//       "location": "path",
113595	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
113596	//       "required": true,
113597	//       "type": "string"
113598	//     }
113599	//   },
113600	//   "path": "locations/global/securityPolicies/{securityPolicy}",
113601	//   "response": {
113602	//     "$ref": "Operation"
113603	//   },
113604	//   "scopes": [
113605	//     "https://www.googleapis.com/auth/cloud-platform",
113606	//     "https://www.googleapis.com/auth/compute"
113607	//   ]
113608	// }
113609
113610}
113611
113612// method id "compute.organizationSecurityPolicies.get":
113613
113614type OrganizationSecurityPoliciesGetCall struct {
113615	s              *Service
113616	securityPolicy string
113617	urlParams_     gensupport.URLParams
113618	ifNoneMatch_   string
113619	ctx_           context.Context
113620	header_        http.Header
113621}
113622
113623// Get: List all of the ordered rules present in a single specified
113624// policy.
113625func (r *OrganizationSecurityPoliciesService) Get(securityPolicy string) *OrganizationSecurityPoliciesGetCall {
113626	c := &OrganizationSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113627	c.securityPolicy = securityPolicy
113628	return c
113629}
113630
113631// Fields allows partial responses to be retrieved. See
113632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113633// for more information.
113634func (c *OrganizationSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetCall {
113635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113636	return c
113637}
113638
113639// IfNoneMatch sets the optional parameter which makes the operation
113640// fail if the object's ETag matches the given value. This is useful for
113641// getting updates only after the object has changed since the last
113642// request. Use googleapi.IsNotModified to check whether the response
113643// error from Do is the result of In-None-Match.
113644func (c *OrganizationSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetCall {
113645	c.ifNoneMatch_ = entityTag
113646	return c
113647}
113648
113649// Context sets the context to be used in this call's Do method. Any
113650// pending HTTP request will be aborted if the provided context is
113651// canceled.
113652func (c *OrganizationSecurityPoliciesGetCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetCall {
113653	c.ctx_ = ctx
113654	return c
113655}
113656
113657// Header returns an http.Header that can be modified by the caller to
113658// add HTTP headers to the request.
113659func (c *OrganizationSecurityPoliciesGetCall) Header() http.Header {
113660	if c.header_ == nil {
113661		c.header_ = make(http.Header)
113662	}
113663	return c.header_
113664}
113665
113666func (c *OrganizationSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
113667	reqHeaders := make(http.Header)
113668	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
113669	for k, v := range c.header_ {
113670		reqHeaders[k] = v
113671	}
113672	reqHeaders.Set("User-Agent", c.s.userAgent())
113673	if c.ifNoneMatch_ != "" {
113674		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113675	}
113676	var body io.Reader = nil
113677	c.urlParams_.Set("alt", alt)
113678	c.urlParams_.Set("prettyPrint", "false")
113679	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
113680	urls += "?" + c.urlParams_.Encode()
113681	req, err := http.NewRequest("GET", urls, body)
113682	if err != nil {
113683		return nil, err
113684	}
113685	req.Header = reqHeaders
113686	googleapi.Expand(req.URL, map[string]string{
113687		"securityPolicy": c.securityPolicy,
113688	})
113689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113690}
113691
113692// Do executes the "compute.organizationSecurityPolicies.get" call.
113693// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
113694// status code is an error. Response headers are in either
113695// *SecurityPolicy.ServerResponse.Header or (if a response was returned
113696// at all) in error.(*googleapi.Error).Header. Use
113697// googleapi.IsNotModified to check whether the returned error was
113698// because http.StatusNotModified was returned.
113699func (c *OrganizationSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
113700	gensupport.SetOptions(c.urlParams_, opts...)
113701	res, err := c.doRequest("json")
113702	if res != nil && res.StatusCode == http.StatusNotModified {
113703		if res.Body != nil {
113704			res.Body.Close()
113705		}
113706		return nil, &googleapi.Error{
113707			Code:   res.StatusCode,
113708			Header: res.Header,
113709		}
113710	}
113711	if err != nil {
113712		return nil, err
113713	}
113714	defer googleapi.CloseBody(res)
113715	if err := googleapi.CheckResponse(res); err != nil {
113716		return nil, err
113717	}
113718	ret := &SecurityPolicy{
113719		ServerResponse: googleapi.ServerResponse{
113720			Header:         res.Header,
113721			HTTPStatusCode: res.StatusCode,
113722		},
113723	}
113724	target := &ret
113725	if err := gensupport.DecodeResponse(target, res); err != nil {
113726		return nil, err
113727	}
113728	return ret, nil
113729	// {
113730	//   "description": "List all of the ordered rules present in a single specified policy.",
113731	//   "httpMethod": "GET",
113732	//   "id": "compute.organizationSecurityPolicies.get",
113733	//   "parameterOrder": [
113734	//     "securityPolicy"
113735	//   ],
113736	//   "parameters": {
113737	//     "securityPolicy": {
113738	//       "description": "Name of the security policy to get.",
113739	//       "location": "path",
113740	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
113741	//       "required": true,
113742	//       "type": "string"
113743	//     }
113744	//   },
113745	//   "path": "locations/global/securityPolicies/{securityPolicy}",
113746	//   "response": {
113747	//     "$ref": "SecurityPolicy"
113748	//   },
113749	//   "scopes": [
113750	//     "https://www.googleapis.com/auth/cloud-platform",
113751	//     "https://www.googleapis.com/auth/compute",
113752	//     "https://www.googleapis.com/auth/compute.readonly"
113753	//   ]
113754	// }
113755
113756}
113757
113758// method id "compute.organizationSecurityPolicies.getAssociation":
113759
113760type OrganizationSecurityPoliciesGetAssociationCall struct {
113761	s              *Service
113762	securityPolicy string
113763	urlParams_     gensupport.URLParams
113764	ifNoneMatch_   string
113765	ctx_           context.Context
113766	header_        http.Header
113767}
113768
113769// GetAssociation: Gets an association with the specified name.
113770func (r *OrganizationSecurityPoliciesService) GetAssociation(securityPolicy string) *OrganizationSecurityPoliciesGetAssociationCall {
113771	c := &OrganizationSecurityPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113772	c.securityPolicy = securityPolicy
113773	return c
113774}
113775
113776// Name sets the optional parameter "name": The name of the association
113777// to get from the security policy.
113778func (c *OrganizationSecurityPoliciesGetAssociationCall) Name(name string) *OrganizationSecurityPoliciesGetAssociationCall {
113779	c.urlParams_.Set("name", name)
113780	return c
113781}
113782
113783// Fields allows partial responses to be retrieved. See
113784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113785// for more information.
113786func (c *OrganizationSecurityPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetAssociationCall {
113787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113788	return c
113789}
113790
113791// IfNoneMatch sets the optional parameter which makes the operation
113792// fail if the object's ETag matches the given value. This is useful for
113793// getting updates only after the object has changed since the last
113794// request. Use googleapi.IsNotModified to check whether the response
113795// error from Do is the result of In-None-Match.
113796func (c *OrganizationSecurityPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetAssociationCall {
113797	c.ifNoneMatch_ = entityTag
113798	return c
113799}
113800
113801// Context sets the context to be used in this call's Do method. Any
113802// pending HTTP request will be aborted if the provided context is
113803// canceled.
113804func (c *OrganizationSecurityPoliciesGetAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetAssociationCall {
113805	c.ctx_ = ctx
113806	return c
113807}
113808
113809// Header returns an http.Header that can be modified by the caller to
113810// add HTTP headers to the request.
113811func (c *OrganizationSecurityPoliciesGetAssociationCall) Header() http.Header {
113812	if c.header_ == nil {
113813		c.header_ = make(http.Header)
113814	}
113815	return c.header_
113816}
113817
113818func (c *OrganizationSecurityPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
113819	reqHeaders := make(http.Header)
113820	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
113821	for k, v := range c.header_ {
113822		reqHeaders[k] = v
113823	}
113824	reqHeaders.Set("User-Agent", c.s.userAgent())
113825	if c.ifNoneMatch_ != "" {
113826		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113827	}
113828	var body io.Reader = nil
113829	c.urlParams_.Set("alt", alt)
113830	c.urlParams_.Set("prettyPrint", "false")
113831	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getAssociation")
113832	urls += "?" + c.urlParams_.Encode()
113833	req, err := http.NewRequest("GET", urls, body)
113834	if err != nil {
113835		return nil, err
113836	}
113837	req.Header = reqHeaders
113838	googleapi.Expand(req.URL, map[string]string{
113839		"securityPolicy": c.securityPolicy,
113840	})
113841	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113842}
113843
113844// Do executes the "compute.organizationSecurityPolicies.getAssociation" call.
113845// Exactly one of *SecurityPolicyAssociation or error will be non-nil.
113846// Any non-2xx status code is an error. Response headers are in either
113847// *SecurityPolicyAssociation.ServerResponse.Header or (if a response
113848// was returned at all) in error.(*googleapi.Error).Header. Use
113849// googleapi.IsNotModified to check whether the returned error was
113850// because http.StatusNotModified was returned.
113851func (c *OrganizationSecurityPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyAssociation, error) {
113852	gensupport.SetOptions(c.urlParams_, opts...)
113853	res, err := c.doRequest("json")
113854	if res != nil && res.StatusCode == http.StatusNotModified {
113855		if res.Body != nil {
113856			res.Body.Close()
113857		}
113858		return nil, &googleapi.Error{
113859			Code:   res.StatusCode,
113860			Header: res.Header,
113861		}
113862	}
113863	if err != nil {
113864		return nil, err
113865	}
113866	defer googleapi.CloseBody(res)
113867	if err := googleapi.CheckResponse(res); err != nil {
113868		return nil, err
113869	}
113870	ret := &SecurityPolicyAssociation{
113871		ServerResponse: googleapi.ServerResponse{
113872			Header:         res.Header,
113873			HTTPStatusCode: res.StatusCode,
113874		},
113875	}
113876	target := &ret
113877	if err := gensupport.DecodeResponse(target, res); err != nil {
113878		return nil, err
113879	}
113880	return ret, nil
113881	// {
113882	//   "description": "Gets an association with the specified name.",
113883	//   "httpMethod": "GET",
113884	//   "id": "compute.organizationSecurityPolicies.getAssociation",
113885	//   "parameterOrder": [
113886	//     "securityPolicy"
113887	//   ],
113888	//   "parameters": {
113889	//     "name": {
113890	//       "description": "The name of the association to get from the security policy.",
113891	//       "location": "query",
113892	//       "type": "string"
113893	//     },
113894	//     "securityPolicy": {
113895	//       "description": "Name of the security policy to which the queried rule belongs.",
113896	//       "location": "path",
113897	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
113898	//       "required": true,
113899	//       "type": "string"
113900	//     }
113901	//   },
113902	//   "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
113903	//   "response": {
113904	//     "$ref": "SecurityPolicyAssociation"
113905	//   },
113906	//   "scopes": [
113907	//     "https://www.googleapis.com/auth/cloud-platform",
113908	//     "https://www.googleapis.com/auth/compute",
113909	//     "https://www.googleapis.com/auth/compute.readonly"
113910	//   ]
113911	// }
113912
113913}
113914
113915// method id "compute.organizationSecurityPolicies.getRule":
113916
113917type OrganizationSecurityPoliciesGetRuleCall struct {
113918	s              *Service
113919	securityPolicy string
113920	urlParams_     gensupport.URLParams
113921	ifNoneMatch_   string
113922	ctx_           context.Context
113923	header_        http.Header
113924}
113925
113926// GetRule: Gets a rule at the specified priority.
113927func (r *OrganizationSecurityPoliciesService) GetRule(securityPolicy string) *OrganizationSecurityPoliciesGetRuleCall {
113928	c := &OrganizationSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113929	c.securityPolicy = securityPolicy
113930	return c
113931}
113932
113933// Priority sets the optional parameter "priority": The priority of the
113934// rule to get from the security policy.
113935func (c *OrganizationSecurityPoliciesGetRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesGetRuleCall {
113936	c.urlParams_.Set("priority", fmt.Sprint(priority))
113937	return c
113938}
113939
113940// Fields allows partial responses to be retrieved. See
113941// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113942// for more information.
113943func (c *OrganizationSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetRuleCall {
113944	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113945	return c
113946}
113947
113948// IfNoneMatch sets the optional parameter which makes the operation
113949// fail if the object's ETag matches the given value. This is useful for
113950// getting updates only after the object has changed since the last
113951// request. Use googleapi.IsNotModified to check whether the response
113952// error from Do is the result of In-None-Match.
113953func (c *OrganizationSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetRuleCall {
113954	c.ifNoneMatch_ = entityTag
113955	return c
113956}
113957
113958// Context sets the context to be used in this call's Do method. Any
113959// pending HTTP request will be aborted if the provided context is
113960// canceled.
113961func (c *OrganizationSecurityPoliciesGetRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetRuleCall {
113962	c.ctx_ = ctx
113963	return c
113964}
113965
113966// Header returns an http.Header that can be modified by the caller to
113967// add HTTP headers to the request.
113968func (c *OrganizationSecurityPoliciesGetRuleCall) Header() http.Header {
113969	if c.header_ == nil {
113970		c.header_ = make(http.Header)
113971	}
113972	return c.header_
113973}
113974
113975func (c *OrganizationSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
113976	reqHeaders := make(http.Header)
113977	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
113978	for k, v := range c.header_ {
113979		reqHeaders[k] = v
113980	}
113981	reqHeaders.Set("User-Agent", c.s.userAgent())
113982	if c.ifNoneMatch_ != "" {
113983		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113984	}
113985	var body io.Reader = nil
113986	c.urlParams_.Set("alt", alt)
113987	c.urlParams_.Set("prettyPrint", "false")
113988	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getRule")
113989	urls += "?" + c.urlParams_.Encode()
113990	req, err := http.NewRequest("GET", urls, body)
113991	if err != nil {
113992		return nil, err
113993	}
113994	req.Header = reqHeaders
113995	googleapi.Expand(req.URL, map[string]string{
113996		"securityPolicy": c.securityPolicy,
113997	})
113998	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113999}
114000
114001// Do executes the "compute.organizationSecurityPolicies.getRule" call.
114002// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
114003// non-2xx status code is an error. Response headers are in either
114004// *SecurityPolicyRule.ServerResponse.Header or (if a response was
114005// returned at all) in error.(*googleapi.Error).Header. Use
114006// googleapi.IsNotModified to check whether the returned error was
114007// because http.StatusNotModified was returned.
114008func (c *OrganizationSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
114009	gensupport.SetOptions(c.urlParams_, opts...)
114010	res, err := c.doRequest("json")
114011	if res != nil && res.StatusCode == http.StatusNotModified {
114012		if res.Body != nil {
114013			res.Body.Close()
114014		}
114015		return nil, &googleapi.Error{
114016			Code:   res.StatusCode,
114017			Header: res.Header,
114018		}
114019	}
114020	if err != nil {
114021		return nil, err
114022	}
114023	defer googleapi.CloseBody(res)
114024	if err := googleapi.CheckResponse(res); err != nil {
114025		return nil, err
114026	}
114027	ret := &SecurityPolicyRule{
114028		ServerResponse: googleapi.ServerResponse{
114029			Header:         res.Header,
114030			HTTPStatusCode: res.StatusCode,
114031		},
114032	}
114033	target := &ret
114034	if err := gensupport.DecodeResponse(target, res); err != nil {
114035		return nil, err
114036	}
114037	return ret, nil
114038	// {
114039	//   "description": "Gets a rule at the specified priority.",
114040	//   "httpMethod": "GET",
114041	//   "id": "compute.organizationSecurityPolicies.getRule",
114042	//   "parameterOrder": [
114043	//     "securityPolicy"
114044	//   ],
114045	//   "parameters": {
114046	//     "priority": {
114047	//       "description": "The priority of the rule to get from the security policy.",
114048	//       "format": "int32",
114049	//       "location": "query",
114050	//       "type": "integer"
114051	//     },
114052	//     "securityPolicy": {
114053	//       "description": "Name of the security policy to which the queried rule belongs.",
114054	//       "location": "path",
114055	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
114056	//       "required": true,
114057	//       "type": "string"
114058	//     }
114059	//   },
114060	//   "path": "locations/global/securityPolicies/{securityPolicy}/getRule",
114061	//   "response": {
114062	//     "$ref": "SecurityPolicyRule"
114063	//   },
114064	//   "scopes": [
114065	//     "https://www.googleapis.com/auth/cloud-platform",
114066	//     "https://www.googleapis.com/auth/compute",
114067	//     "https://www.googleapis.com/auth/compute.readonly"
114068	//   ]
114069	// }
114070
114071}
114072
114073// method id "compute.organizationSecurityPolicies.insert":
114074
114075type OrganizationSecurityPoliciesInsertCall struct {
114076	s              *Service
114077	securitypolicy *SecurityPolicy
114078	urlParams_     gensupport.URLParams
114079	ctx_           context.Context
114080	header_        http.Header
114081}
114082
114083// Insert: Creates a new policy in the specified project using the data
114084// included in the request.
114085func (r *OrganizationSecurityPoliciesService) Insert(securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesInsertCall {
114086	c := &OrganizationSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114087	c.securitypolicy = securitypolicy
114088	return c
114089}
114090
114091// ParentId sets the optional parameter "parentId": Parent ID for this
114092// request.
114093func (c *OrganizationSecurityPoliciesInsertCall) ParentId(parentId string) *OrganizationSecurityPoliciesInsertCall {
114094	c.urlParams_.Set("parentId", parentId)
114095	return c
114096}
114097
114098// RequestId sets the optional parameter "requestId": An optional
114099// request ID to identify requests. Specify a unique request ID so that
114100// if you must retry your request, the server will know to ignore the
114101// request if it has already been completed.
114102//
114103// For example, consider a situation where you make an initial request
114104// and the request times out. If you make the request again with the
114105// same request ID, the server can check if original operation with the
114106// same request ID was received, and if so, will ignore the second
114107// request. This prevents clients from accidentally creating duplicate
114108// commitments.
114109//
114110// The request ID must be a valid UUID with the exception that zero UUID
114111// is not supported (00000000-0000-0000-0000-000000000000).
114112func (c *OrganizationSecurityPoliciesInsertCall) RequestId(requestId string) *OrganizationSecurityPoliciesInsertCall {
114113	c.urlParams_.Set("requestId", requestId)
114114	return c
114115}
114116
114117// Fields allows partial responses to be retrieved. See
114118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114119// for more information.
114120func (c *OrganizationSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesInsertCall {
114121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114122	return c
114123}
114124
114125// Context sets the context to be used in this call's Do method. Any
114126// pending HTTP request will be aborted if the provided context is
114127// canceled.
114128func (c *OrganizationSecurityPoliciesInsertCall) Context(ctx context.Context) *OrganizationSecurityPoliciesInsertCall {
114129	c.ctx_ = ctx
114130	return c
114131}
114132
114133// Header returns an http.Header that can be modified by the caller to
114134// add HTTP headers to the request.
114135func (c *OrganizationSecurityPoliciesInsertCall) Header() http.Header {
114136	if c.header_ == nil {
114137		c.header_ = make(http.Header)
114138	}
114139	return c.header_
114140}
114141
114142func (c *OrganizationSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
114143	reqHeaders := make(http.Header)
114144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
114145	for k, v := range c.header_ {
114146		reqHeaders[k] = v
114147	}
114148	reqHeaders.Set("User-Agent", c.s.userAgent())
114149	var body io.Reader = nil
114150	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
114151	if err != nil {
114152		return nil, err
114153	}
114154	reqHeaders.Set("Content-Type", "application/json")
114155	c.urlParams_.Set("alt", alt)
114156	c.urlParams_.Set("prettyPrint", "false")
114157	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
114158	urls += "?" + c.urlParams_.Encode()
114159	req, err := http.NewRequest("POST", urls, body)
114160	if err != nil {
114161		return nil, err
114162	}
114163	req.Header = reqHeaders
114164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114165}
114166
114167// Do executes the "compute.organizationSecurityPolicies.insert" call.
114168// Exactly one of *Operation or error will be non-nil. Any non-2xx
114169// status code is an error. Response headers are in either
114170// *Operation.ServerResponse.Header or (if a response was returned at
114171// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114172// to check whether the returned error was because
114173// http.StatusNotModified was returned.
114174func (c *OrganizationSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114175	gensupport.SetOptions(c.urlParams_, opts...)
114176	res, err := c.doRequest("json")
114177	if res != nil && res.StatusCode == http.StatusNotModified {
114178		if res.Body != nil {
114179			res.Body.Close()
114180		}
114181		return nil, &googleapi.Error{
114182			Code:   res.StatusCode,
114183			Header: res.Header,
114184		}
114185	}
114186	if err != nil {
114187		return nil, err
114188	}
114189	defer googleapi.CloseBody(res)
114190	if err := googleapi.CheckResponse(res); err != nil {
114191		return nil, err
114192	}
114193	ret := &Operation{
114194		ServerResponse: googleapi.ServerResponse{
114195			Header:         res.Header,
114196			HTTPStatusCode: res.StatusCode,
114197		},
114198	}
114199	target := &ret
114200	if err := gensupport.DecodeResponse(target, res); err != nil {
114201		return nil, err
114202	}
114203	return ret, nil
114204	// {
114205	//   "description": "Creates a new policy in the specified project using the data included in the request.",
114206	//   "httpMethod": "POST",
114207	//   "id": "compute.organizationSecurityPolicies.insert",
114208	//   "parameters": {
114209	//     "parentId": {
114210	//       "description": "Parent ID for this request.",
114211	//       "location": "query",
114212	//       "type": "string"
114213	//     },
114214	//     "requestId": {
114215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114216	//       "location": "query",
114217	//       "type": "string"
114218	//     }
114219	//   },
114220	//   "path": "locations/global/securityPolicies",
114221	//   "request": {
114222	//     "$ref": "SecurityPolicy"
114223	//   },
114224	//   "response": {
114225	//     "$ref": "Operation"
114226	//   },
114227	//   "scopes": [
114228	//     "https://www.googleapis.com/auth/cloud-platform",
114229	//     "https://www.googleapis.com/auth/compute"
114230	//   ]
114231	// }
114232
114233}
114234
114235// method id "compute.organizationSecurityPolicies.list":
114236
114237type OrganizationSecurityPoliciesListCall struct {
114238	s            *Service
114239	urlParams_   gensupport.URLParams
114240	ifNoneMatch_ string
114241	ctx_         context.Context
114242	header_      http.Header
114243}
114244
114245// List: List all the policies that have been configured for the
114246// specified project.
114247func (r *OrganizationSecurityPoliciesService) List() *OrganizationSecurityPoliciesListCall {
114248	c := &OrganizationSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114249	return c
114250}
114251
114252// Filter sets the optional parameter "filter": A filter expression that
114253// filters resources listed in the response. The expression must specify
114254// the field name, a comparison operator, and the value that you want to
114255// use for filtering. The value must be a string, a number, or a
114256// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114257// `<`.
114258//
114259// For example, if you are filtering Compute Engine instances, you can
114260// exclude instances named `example-instance` by specifying `name !=
114261// example-instance`.
114262//
114263// You can also filter nested fields. For example, you could specify
114264// `scheduling.automaticRestart = false` to include instances only if
114265// they are not scheduled for automatic restarts. You can use filtering
114266// on nested fields to filter based on resource labels.
114267//
114268// To filter on multiple expressions, provide each separate expression
114269// within parentheses. For example: ``` (scheduling.automaticRestart =
114270// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
114271// is an `AND` expression. However, you can include `AND` and `OR`
114272// expressions explicitly. For example: ``` (cpuPlatform = "Intel
114273// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
114274// (scheduling.automaticRestart = true) ```
114275func (c *OrganizationSecurityPoliciesListCall) Filter(filter string) *OrganizationSecurityPoliciesListCall {
114276	c.urlParams_.Set("filter", filter)
114277	return c
114278}
114279
114280// MaxResults sets the optional parameter "maxResults": The maximum
114281// number of results per page that should be returned. If the number of
114282// available results is larger than `maxResults`, Compute Engine returns
114283// a `nextPageToken` that can be used to get the next page of results in
114284// subsequent list requests. Acceptable values are `0` to `500`,
114285// inclusive. (Default: `500`)
114286func (c *OrganizationSecurityPoliciesListCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListCall {
114287	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114288	return c
114289}
114290
114291// OrderBy sets the optional parameter "orderBy": Sorts list results by
114292// a certain order. By default, results are returned in alphanumerical
114293// order based on the resource name.
114294//
114295// You can also sort results in descending order based on the creation
114296// timestamp using `orderBy="creationTimestamp desc". This sorts
114297// results based on the `creationTimestamp` field in reverse
114298// chronological order (newest result first). Use this to sort resources
114299// like operations so that the newest operation is returned
114300// first.
114301//
114302// Currently, only sorting by `name` or `creationTimestamp desc` is
114303// supported.
114304func (c *OrganizationSecurityPoliciesListCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListCall {
114305	c.urlParams_.Set("orderBy", orderBy)
114306	return c
114307}
114308
114309// PageToken sets the optional parameter "pageToken": Specifies a page
114310// token to use. Set `pageToken` to the `nextPageToken` returned by a
114311// previous list request to get the next page of results.
114312func (c *OrganizationSecurityPoliciesListCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListCall {
114313	c.urlParams_.Set("pageToken", pageToken)
114314	return c
114315}
114316
114317// ParentId sets the optional parameter "parentId": Parent ID for this
114318// request.
114319func (c *OrganizationSecurityPoliciesListCall) ParentId(parentId string) *OrganizationSecurityPoliciesListCall {
114320	c.urlParams_.Set("parentId", parentId)
114321	return c
114322}
114323
114324// ReturnPartialSuccess sets the optional parameter
114325// "returnPartialSuccess": Opt-in for partial success behavior which
114326// provides partial results in case of failure. The default value is
114327// false and the logic is the same as today.
114328func (c *OrganizationSecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *OrganizationSecurityPoliciesListCall {
114329	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
114330	return c
114331}
114332
114333// Fields allows partial responses to be retrieved. See
114334// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114335// for more information.
114336func (c *OrganizationSecurityPoliciesListCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListCall {
114337	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114338	return c
114339}
114340
114341// IfNoneMatch sets the optional parameter which makes the operation
114342// fail if the object's ETag matches the given value. This is useful for
114343// getting updates only after the object has changed since the last
114344// request. Use googleapi.IsNotModified to check whether the response
114345// error from Do is the result of In-None-Match.
114346func (c *OrganizationSecurityPoliciesListCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListCall {
114347	c.ifNoneMatch_ = entityTag
114348	return c
114349}
114350
114351// Context sets the context to be used in this call's Do method. Any
114352// pending HTTP request will be aborted if the provided context is
114353// canceled.
114354func (c *OrganizationSecurityPoliciesListCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListCall {
114355	c.ctx_ = ctx
114356	return c
114357}
114358
114359// Header returns an http.Header that can be modified by the caller to
114360// add HTTP headers to the request.
114361func (c *OrganizationSecurityPoliciesListCall) Header() http.Header {
114362	if c.header_ == nil {
114363		c.header_ = make(http.Header)
114364	}
114365	return c.header_
114366}
114367
114368func (c *OrganizationSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
114369	reqHeaders := make(http.Header)
114370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
114371	for k, v := range c.header_ {
114372		reqHeaders[k] = v
114373	}
114374	reqHeaders.Set("User-Agent", c.s.userAgent())
114375	if c.ifNoneMatch_ != "" {
114376		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114377	}
114378	var body io.Reader = nil
114379	c.urlParams_.Set("alt", alt)
114380	c.urlParams_.Set("prettyPrint", "false")
114381	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
114382	urls += "?" + c.urlParams_.Encode()
114383	req, err := http.NewRequest("GET", urls, body)
114384	if err != nil {
114385		return nil, err
114386	}
114387	req.Header = reqHeaders
114388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114389}
114390
114391// Do executes the "compute.organizationSecurityPolicies.list" call.
114392// Exactly one of *SecurityPolicyList or error will be non-nil. Any
114393// non-2xx status code is an error. Response headers are in either
114394// *SecurityPolicyList.ServerResponse.Header or (if a response was
114395// returned at all) in error.(*googleapi.Error).Header. Use
114396// googleapi.IsNotModified to check whether the returned error was
114397// because http.StatusNotModified was returned.
114398func (c *OrganizationSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
114399	gensupport.SetOptions(c.urlParams_, opts...)
114400	res, err := c.doRequest("json")
114401	if res != nil && res.StatusCode == http.StatusNotModified {
114402		if res.Body != nil {
114403			res.Body.Close()
114404		}
114405		return nil, &googleapi.Error{
114406			Code:   res.StatusCode,
114407			Header: res.Header,
114408		}
114409	}
114410	if err != nil {
114411		return nil, err
114412	}
114413	defer googleapi.CloseBody(res)
114414	if err := googleapi.CheckResponse(res); err != nil {
114415		return nil, err
114416	}
114417	ret := &SecurityPolicyList{
114418		ServerResponse: googleapi.ServerResponse{
114419			Header:         res.Header,
114420			HTTPStatusCode: res.StatusCode,
114421		},
114422	}
114423	target := &ret
114424	if err := gensupport.DecodeResponse(target, res); err != nil {
114425		return nil, err
114426	}
114427	return ret, nil
114428	// {
114429	//   "description": "List all the policies that have been configured for the specified project.",
114430	//   "httpMethod": "GET",
114431	//   "id": "compute.organizationSecurityPolicies.list",
114432	//   "parameters": {
114433	//     "filter": {
114434	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
114435	//       "location": "query",
114436	//       "type": "string"
114437	//     },
114438	//     "maxResults": {
114439	//       "default": "500",
114440	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114441	//       "format": "uint32",
114442	//       "location": "query",
114443	//       "minimum": "0",
114444	//       "type": "integer"
114445	//     },
114446	//     "orderBy": {
114447	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
114448	//       "location": "query",
114449	//       "type": "string"
114450	//     },
114451	//     "pageToken": {
114452	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114453	//       "location": "query",
114454	//       "type": "string"
114455	//     },
114456	//     "parentId": {
114457	//       "description": "Parent ID for this request.",
114458	//       "location": "query",
114459	//       "type": "string"
114460	//     },
114461	//     "returnPartialSuccess": {
114462	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
114463	//       "location": "query",
114464	//       "type": "boolean"
114465	//     }
114466	//   },
114467	//   "path": "locations/global/securityPolicies",
114468	//   "response": {
114469	//     "$ref": "SecurityPolicyList"
114470	//   },
114471	//   "scopes": [
114472	//     "https://www.googleapis.com/auth/cloud-platform",
114473	//     "https://www.googleapis.com/auth/compute",
114474	//     "https://www.googleapis.com/auth/compute.readonly"
114475	//   ]
114476	// }
114477
114478}
114479
114480// Pages invokes f for each page of results.
114481// A non-nil error returned from f will halt the iteration.
114482// The provided context supersedes any context provided to the Context method.
114483func (c *OrganizationSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
114484	c.ctx_ = ctx
114485	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114486	for {
114487		x, err := c.Do()
114488		if err != nil {
114489			return err
114490		}
114491		if err := f(x); err != nil {
114492			return err
114493		}
114494		if x.NextPageToken == "" {
114495			return nil
114496		}
114497		c.PageToken(x.NextPageToken)
114498	}
114499}
114500
114501// method id "compute.organizationSecurityPolicies.listAssociations":
114502
114503type OrganizationSecurityPoliciesListAssociationsCall struct {
114504	s            *Service
114505	urlParams_   gensupport.URLParams
114506	ifNoneMatch_ string
114507	ctx_         context.Context
114508	header_      http.Header
114509}
114510
114511// ListAssociations: Lists associations of a specified target, i.e.,
114512// organization or folder.
114513func (r *OrganizationSecurityPoliciesService) ListAssociations() *OrganizationSecurityPoliciesListAssociationsCall {
114514	c := &OrganizationSecurityPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114515	return c
114516}
114517
114518// TargetResource sets the optional parameter "targetResource": The
114519// target resource to list associations. It is an organization, or a
114520// folder.
114521func (c *OrganizationSecurityPoliciesListAssociationsCall) TargetResource(targetResource string) *OrganizationSecurityPoliciesListAssociationsCall {
114522	c.urlParams_.Set("targetResource", targetResource)
114523	return c
114524}
114525
114526// Fields allows partial responses to be retrieved. See
114527// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114528// for more information.
114529func (c *OrganizationSecurityPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListAssociationsCall {
114530	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114531	return c
114532}
114533
114534// IfNoneMatch sets the optional parameter which makes the operation
114535// fail if the object's ETag matches the given value. This is useful for
114536// getting updates only after the object has changed since the last
114537// request. Use googleapi.IsNotModified to check whether the response
114538// error from Do is the result of In-None-Match.
114539func (c *OrganizationSecurityPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListAssociationsCall {
114540	c.ifNoneMatch_ = entityTag
114541	return c
114542}
114543
114544// Context sets the context to be used in this call's Do method. Any
114545// pending HTTP request will be aborted if the provided context is
114546// canceled.
114547func (c *OrganizationSecurityPoliciesListAssociationsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListAssociationsCall {
114548	c.ctx_ = ctx
114549	return c
114550}
114551
114552// Header returns an http.Header that can be modified by the caller to
114553// add HTTP headers to the request.
114554func (c *OrganizationSecurityPoliciesListAssociationsCall) Header() http.Header {
114555	if c.header_ == nil {
114556		c.header_ = make(http.Header)
114557	}
114558	return c.header_
114559}
114560
114561func (c *OrganizationSecurityPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
114562	reqHeaders := make(http.Header)
114563	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
114564	for k, v := range c.header_ {
114565		reqHeaders[k] = v
114566	}
114567	reqHeaders.Set("User-Agent", c.s.userAgent())
114568	if c.ifNoneMatch_ != "" {
114569		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114570	}
114571	var body io.Reader = nil
114572	c.urlParams_.Set("alt", alt)
114573	c.urlParams_.Set("prettyPrint", "false")
114574	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listAssociations")
114575	urls += "?" + c.urlParams_.Encode()
114576	req, err := http.NewRequest("GET", urls, body)
114577	if err != nil {
114578		return nil, err
114579	}
114580	req.Header = reqHeaders
114581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114582}
114583
114584// Do executes the "compute.organizationSecurityPolicies.listAssociations" call.
114585// Exactly one of *OrganizationSecurityPoliciesListAssociationsResponse
114586// or error will be non-nil. Any non-2xx status code is an error.
114587// Response headers are in either
114588// *OrganizationSecurityPoliciesListAssociationsResponse.ServerResponse.H
114589// eader or (if a response was returned at all) in
114590// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
114591// whether the returned error was because http.StatusNotModified was
114592// returned.
114593func (c *OrganizationSecurityPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*OrganizationSecurityPoliciesListAssociationsResponse, error) {
114594	gensupport.SetOptions(c.urlParams_, opts...)
114595	res, err := c.doRequest("json")
114596	if res != nil && res.StatusCode == http.StatusNotModified {
114597		if res.Body != nil {
114598			res.Body.Close()
114599		}
114600		return nil, &googleapi.Error{
114601			Code:   res.StatusCode,
114602			Header: res.Header,
114603		}
114604	}
114605	if err != nil {
114606		return nil, err
114607	}
114608	defer googleapi.CloseBody(res)
114609	if err := googleapi.CheckResponse(res); err != nil {
114610		return nil, err
114611	}
114612	ret := &OrganizationSecurityPoliciesListAssociationsResponse{
114613		ServerResponse: googleapi.ServerResponse{
114614			Header:         res.Header,
114615			HTTPStatusCode: res.StatusCode,
114616		},
114617	}
114618	target := &ret
114619	if err := gensupport.DecodeResponse(target, res); err != nil {
114620		return nil, err
114621	}
114622	return ret, nil
114623	// {
114624	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
114625	//   "httpMethod": "GET",
114626	//   "id": "compute.organizationSecurityPolicies.listAssociations",
114627	//   "parameters": {
114628	//     "targetResource": {
114629	//       "description": "The target resource to list associations. It is an organization, or a folder.",
114630	//       "location": "query",
114631	//       "type": "string"
114632	//     }
114633	//   },
114634	//   "path": "locations/global/securityPolicies/listAssociations",
114635	//   "response": {
114636	//     "$ref": "OrganizationSecurityPoliciesListAssociationsResponse"
114637	//   },
114638	//   "scopes": [
114639	//     "https://www.googleapis.com/auth/cloud-platform",
114640	//     "https://www.googleapis.com/auth/compute"
114641	//   ]
114642	// }
114643
114644}
114645
114646// method id "compute.organizationSecurityPolicies.move":
114647
114648type OrganizationSecurityPoliciesMoveCall struct {
114649	s              *Service
114650	securityPolicy string
114651	urlParams_     gensupport.URLParams
114652	ctx_           context.Context
114653	header_        http.Header
114654}
114655
114656// Move: Moves the specified security policy.
114657func (r *OrganizationSecurityPoliciesService) Move(securityPolicy string) *OrganizationSecurityPoliciesMoveCall {
114658	c := &OrganizationSecurityPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114659	c.securityPolicy = securityPolicy
114660	return c
114661}
114662
114663// ParentId sets the optional parameter "parentId": The new parent of
114664// the security policy.
114665func (c *OrganizationSecurityPoliciesMoveCall) ParentId(parentId string) *OrganizationSecurityPoliciesMoveCall {
114666	c.urlParams_.Set("parentId", parentId)
114667	return c
114668}
114669
114670// RequestId sets the optional parameter "requestId": An optional
114671// request ID to identify requests. Specify a unique request ID so that
114672// if you must retry your request, the server will know to ignore the
114673// request if it has already been completed.
114674//
114675// For example, consider a situation where you make an initial request
114676// and the request times out. If you make the request again with the
114677// same request ID, the server can check if original operation with the
114678// same request ID was received, and if so, will ignore the second
114679// request. This prevents clients from accidentally creating duplicate
114680// commitments.
114681//
114682// The request ID must be a valid UUID with the exception that zero UUID
114683// is not supported (00000000-0000-0000-0000-000000000000).
114684func (c *OrganizationSecurityPoliciesMoveCall) RequestId(requestId string) *OrganizationSecurityPoliciesMoveCall {
114685	c.urlParams_.Set("requestId", requestId)
114686	return c
114687}
114688
114689// Fields allows partial responses to be retrieved. See
114690// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114691// for more information.
114692func (c *OrganizationSecurityPoliciesMoveCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesMoveCall {
114693	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114694	return c
114695}
114696
114697// Context sets the context to be used in this call's Do method. Any
114698// pending HTTP request will be aborted if the provided context is
114699// canceled.
114700func (c *OrganizationSecurityPoliciesMoveCall) Context(ctx context.Context) *OrganizationSecurityPoliciesMoveCall {
114701	c.ctx_ = ctx
114702	return c
114703}
114704
114705// Header returns an http.Header that can be modified by the caller to
114706// add HTTP headers to the request.
114707func (c *OrganizationSecurityPoliciesMoveCall) Header() http.Header {
114708	if c.header_ == nil {
114709		c.header_ = make(http.Header)
114710	}
114711	return c.header_
114712}
114713
114714func (c *OrganizationSecurityPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
114715	reqHeaders := make(http.Header)
114716	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
114717	for k, v := range c.header_ {
114718		reqHeaders[k] = v
114719	}
114720	reqHeaders.Set("User-Agent", c.s.userAgent())
114721	var body io.Reader = nil
114722	c.urlParams_.Set("alt", alt)
114723	c.urlParams_.Set("prettyPrint", "false")
114724	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/move")
114725	urls += "?" + c.urlParams_.Encode()
114726	req, err := http.NewRequest("POST", urls, body)
114727	if err != nil {
114728		return nil, err
114729	}
114730	req.Header = reqHeaders
114731	googleapi.Expand(req.URL, map[string]string{
114732		"securityPolicy": c.securityPolicy,
114733	})
114734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114735}
114736
114737// Do executes the "compute.organizationSecurityPolicies.move" call.
114738// Exactly one of *Operation or error will be non-nil. Any non-2xx
114739// status code is an error. Response headers are in either
114740// *Operation.ServerResponse.Header or (if a response was returned at
114741// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114742// to check whether the returned error was because
114743// http.StatusNotModified was returned.
114744func (c *OrganizationSecurityPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114745	gensupport.SetOptions(c.urlParams_, opts...)
114746	res, err := c.doRequest("json")
114747	if res != nil && res.StatusCode == http.StatusNotModified {
114748		if res.Body != nil {
114749			res.Body.Close()
114750		}
114751		return nil, &googleapi.Error{
114752			Code:   res.StatusCode,
114753			Header: res.Header,
114754		}
114755	}
114756	if err != nil {
114757		return nil, err
114758	}
114759	defer googleapi.CloseBody(res)
114760	if err := googleapi.CheckResponse(res); err != nil {
114761		return nil, err
114762	}
114763	ret := &Operation{
114764		ServerResponse: googleapi.ServerResponse{
114765			Header:         res.Header,
114766			HTTPStatusCode: res.StatusCode,
114767		},
114768	}
114769	target := &ret
114770	if err := gensupport.DecodeResponse(target, res); err != nil {
114771		return nil, err
114772	}
114773	return ret, nil
114774	// {
114775	//   "description": "Moves the specified security policy.",
114776	//   "httpMethod": "POST",
114777	//   "id": "compute.organizationSecurityPolicies.move",
114778	//   "parameterOrder": [
114779	//     "securityPolicy"
114780	//   ],
114781	//   "parameters": {
114782	//     "parentId": {
114783	//       "description": "The new parent of the security policy.",
114784	//       "location": "query",
114785	//       "type": "string"
114786	//     },
114787	//     "requestId": {
114788	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114789	//       "location": "query",
114790	//       "type": "string"
114791	//     },
114792	//     "securityPolicy": {
114793	//       "description": "Name of the security policy to update.",
114794	//       "location": "path",
114795	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
114796	//       "required": true,
114797	//       "type": "string"
114798	//     }
114799	//   },
114800	//   "path": "locations/global/securityPolicies/{securityPolicy}/move",
114801	//   "response": {
114802	//     "$ref": "Operation"
114803	//   },
114804	//   "scopes": [
114805	//     "https://www.googleapis.com/auth/cloud-platform",
114806	//     "https://www.googleapis.com/auth/compute"
114807	//   ]
114808	// }
114809
114810}
114811
114812// method id "compute.organizationSecurityPolicies.patch":
114813
114814type OrganizationSecurityPoliciesPatchCall struct {
114815	s              *Service
114816	securityPolicy string
114817	securitypolicy *SecurityPolicy
114818	urlParams_     gensupport.URLParams
114819	ctx_           context.Context
114820	header_        http.Header
114821}
114822
114823// Patch: Patches the specified policy with the data included in the
114824// request.
114825func (r *OrganizationSecurityPoliciesService) Patch(securityPolicy string, securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesPatchCall {
114826	c := &OrganizationSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114827	c.securityPolicy = securityPolicy
114828	c.securitypolicy = securitypolicy
114829	return c
114830}
114831
114832// RequestId sets the optional parameter "requestId": An optional
114833// request ID to identify requests. Specify a unique request ID so that
114834// if you must retry your request, the server will know to ignore the
114835// request if it has already been completed.
114836//
114837// For example, consider a situation where you make an initial request
114838// and the request times out. If you make the request again with the
114839// same request ID, the server can check if original operation with the
114840// same request ID was received, and if so, will ignore the second
114841// request. This prevents clients from accidentally creating duplicate
114842// commitments.
114843//
114844// The request ID must be a valid UUID with the exception that zero UUID
114845// is not supported (00000000-0000-0000-0000-000000000000).
114846func (c *OrganizationSecurityPoliciesPatchCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchCall {
114847	c.urlParams_.Set("requestId", requestId)
114848	return c
114849}
114850
114851// Fields allows partial responses to be retrieved. See
114852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114853// for more information.
114854func (c *OrganizationSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchCall {
114855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114856	return c
114857}
114858
114859// Context sets the context to be used in this call's Do method. Any
114860// pending HTTP request will be aborted if the provided context is
114861// canceled.
114862func (c *OrganizationSecurityPoliciesPatchCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchCall {
114863	c.ctx_ = ctx
114864	return c
114865}
114866
114867// Header returns an http.Header that can be modified by the caller to
114868// add HTTP headers to the request.
114869func (c *OrganizationSecurityPoliciesPatchCall) Header() http.Header {
114870	if c.header_ == nil {
114871		c.header_ = make(http.Header)
114872	}
114873	return c.header_
114874}
114875
114876func (c *OrganizationSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
114877	reqHeaders := make(http.Header)
114878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
114879	for k, v := range c.header_ {
114880		reqHeaders[k] = v
114881	}
114882	reqHeaders.Set("User-Agent", c.s.userAgent())
114883	var body io.Reader = nil
114884	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
114885	if err != nil {
114886		return nil, err
114887	}
114888	reqHeaders.Set("Content-Type", "application/json")
114889	c.urlParams_.Set("alt", alt)
114890	c.urlParams_.Set("prettyPrint", "false")
114891	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
114892	urls += "?" + c.urlParams_.Encode()
114893	req, err := http.NewRequest("PATCH", urls, body)
114894	if err != nil {
114895		return nil, err
114896	}
114897	req.Header = reqHeaders
114898	googleapi.Expand(req.URL, map[string]string{
114899		"securityPolicy": c.securityPolicy,
114900	})
114901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114902}
114903
114904// Do executes the "compute.organizationSecurityPolicies.patch" call.
114905// Exactly one of *Operation or error will be non-nil. Any non-2xx
114906// status code is an error. Response headers are in either
114907// *Operation.ServerResponse.Header or (if a response was returned at
114908// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114909// to check whether the returned error was because
114910// http.StatusNotModified was returned.
114911func (c *OrganizationSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Patches the specified policy with the data included in the request.",
114943	//   "httpMethod": "PATCH",
114944	//   "id": "compute.organizationSecurityPolicies.patch",
114945	//   "parameterOrder": [
114946	//     "securityPolicy"
114947	//   ],
114948	//   "parameters": {
114949	//     "requestId": {
114950	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114951	//       "location": "query",
114952	//       "type": "string"
114953	//     },
114954	//     "securityPolicy": {
114955	//       "description": "Name of the security policy to update.",
114956	//       "location": "path",
114957	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
114958	//       "required": true,
114959	//       "type": "string"
114960	//     }
114961	//   },
114962	//   "path": "locations/global/securityPolicies/{securityPolicy}",
114963	//   "request": {
114964	//     "$ref": "SecurityPolicy"
114965	//   },
114966	//   "response": {
114967	//     "$ref": "Operation"
114968	//   },
114969	//   "scopes": [
114970	//     "https://www.googleapis.com/auth/cloud-platform",
114971	//     "https://www.googleapis.com/auth/compute"
114972	//   ]
114973	// }
114974
114975}
114976
114977// method id "compute.organizationSecurityPolicies.patchRule":
114978
114979type OrganizationSecurityPoliciesPatchRuleCall struct {
114980	s                  *Service
114981	securityPolicy     string
114982	securitypolicyrule *SecurityPolicyRule
114983	urlParams_         gensupport.URLParams
114984	ctx_               context.Context
114985	header_            http.Header
114986}
114987
114988// PatchRule: Patches a rule at the specified priority.
114989func (r *OrganizationSecurityPoliciesService) PatchRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesPatchRuleCall {
114990	c := &OrganizationSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114991	c.securityPolicy = securityPolicy
114992	c.securitypolicyrule = securitypolicyrule
114993	return c
114994}
114995
114996// Priority sets the optional parameter "priority": The priority of the
114997// rule to patch.
114998func (c *OrganizationSecurityPoliciesPatchRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesPatchRuleCall {
114999	c.urlParams_.Set("priority", fmt.Sprint(priority))
115000	return c
115001}
115002
115003// RequestId sets the optional parameter "requestId": An optional
115004// request ID to identify requests. Specify a unique request ID so that
115005// if you must retry your request, the server will know to ignore the
115006// request if it has already been completed.
115007//
115008// For example, consider a situation where you make an initial request
115009// and the request times out. If you make the request again with the
115010// same request ID, the server can check if original operation with the
115011// same request ID was received, and if so, will ignore the second
115012// request. This prevents clients from accidentally creating duplicate
115013// commitments.
115014//
115015// The request ID must be a valid UUID with the exception that zero UUID
115016// is not supported (00000000-0000-0000-0000-000000000000).
115017func (c *OrganizationSecurityPoliciesPatchRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchRuleCall {
115018	c.urlParams_.Set("requestId", requestId)
115019	return c
115020}
115021
115022// Fields allows partial responses to be retrieved. See
115023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115024// for more information.
115025func (c *OrganizationSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchRuleCall {
115026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115027	return c
115028}
115029
115030// Context sets the context to be used in this call's Do method. Any
115031// pending HTTP request will be aborted if the provided context is
115032// canceled.
115033func (c *OrganizationSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchRuleCall {
115034	c.ctx_ = ctx
115035	return c
115036}
115037
115038// Header returns an http.Header that can be modified by the caller to
115039// add HTTP headers to the request.
115040func (c *OrganizationSecurityPoliciesPatchRuleCall) Header() http.Header {
115041	if c.header_ == nil {
115042		c.header_ = make(http.Header)
115043	}
115044	return c.header_
115045}
115046
115047func (c *OrganizationSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
115048	reqHeaders := make(http.Header)
115049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
115050	for k, v := range c.header_ {
115051		reqHeaders[k] = v
115052	}
115053	reqHeaders.Set("User-Agent", c.s.userAgent())
115054	var body io.Reader = nil
115055	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
115056	if err != nil {
115057		return nil, err
115058	}
115059	reqHeaders.Set("Content-Type", "application/json")
115060	c.urlParams_.Set("alt", alt)
115061	c.urlParams_.Set("prettyPrint", "false")
115062	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/patchRule")
115063	urls += "?" + c.urlParams_.Encode()
115064	req, err := http.NewRequest("POST", urls, body)
115065	if err != nil {
115066		return nil, err
115067	}
115068	req.Header = reqHeaders
115069	googleapi.Expand(req.URL, map[string]string{
115070		"securityPolicy": c.securityPolicy,
115071	})
115072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115073}
115074
115075// Do executes the "compute.organizationSecurityPolicies.patchRule" call.
115076// Exactly one of *Operation or error will be non-nil. Any non-2xx
115077// status code is an error. Response headers are in either
115078// *Operation.ServerResponse.Header or (if a response was returned at
115079// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115080// to check whether the returned error was because
115081// http.StatusNotModified was returned.
115082func (c *OrganizationSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115083	gensupport.SetOptions(c.urlParams_, opts...)
115084	res, err := c.doRequest("json")
115085	if res != nil && res.StatusCode == http.StatusNotModified {
115086		if res.Body != nil {
115087			res.Body.Close()
115088		}
115089		return nil, &googleapi.Error{
115090			Code:   res.StatusCode,
115091			Header: res.Header,
115092		}
115093	}
115094	if err != nil {
115095		return nil, err
115096	}
115097	defer googleapi.CloseBody(res)
115098	if err := googleapi.CheckResponse(res); err != nil {
115099		return nil, err
115100	}
115101	ret := &Operation{
115102		ServerResponse: googleapi.ServerResponse{
115103			Header:         res.Header,
115104			HTTPStatusCode: res.StatusCode,
115105		},
115106	}
115107	target := &ret
115108	if err := gensupport.DecodeResponse(target, res); err != nil {
115109		return nil, err
115110	}
115111	return ret, nil
115112	// {
115113	//   "description": "Patches a rule at the specified priority.",
115114	//   "httpMethod": "POST",
115115	//   "id": "compute.organizationSecurityPolicies.patchRule",
115116	//   "parameterOrder": [
115117	//     "securityPolicy"
115118	//   ],
115119	//   "parameters": {
115120	//     "priority": {
115121	//       "description": "The priority of the rule to patch.",
115122	//       "format": "int32",
115123	//       "location": "query",
115124	//       "type": "integer"
115125	//     },
115126	//     "requestId": {
115127	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115128	//       "location": "query",
115129	//       "type": "string"
115130	//     },
115131	//     "securityPolicy": {
115132	//       "description": "Name of the security policy to update.",
115133	//       "location": "path",
115134	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
115135	//       "required": true,
115136	//       "type": "string"
115137	//     }
115138	//   },
115139	//   "path": "locations/global/securityPolicies/{securityPolicy}/patchRule",
115140	//   "request": {
115141	//     "$ref": "SecurityPolicyRule"
115142	//   },
115143	//   "response": {
115144	//     "$ref": "Operation"
115145	//   },
115146	//   "scopes": [
115147	//     "https://www.googleapis.com/auth/cloud-platform",
115148	//     "https://www.googleapis.com/auth/compute"
115149	//   ]
115150	// }
115151
115152}
115153
115154// method id "compute.organizationSecurityPolicies.removeAssociation":
115155
115156type OrganizationSecurityPoliciesRemoveAssociationCall struct {
115157	s              *Service
115158	securityPolicy string
115159	urlParams_     gensupport.URLParams
115160	ctx_           context.Context
115161	header_        http.Header
115162}
115163
115164// RemoveAssociation: Removes an association for the specified security
115165// policy.
115166func (r *OrganizationSecurityPoliciesService) RemoveAssociation(securityPolicy string) *OrganizationSecurityPoliciesRemoveAssociationCall {
115167	c := &OrganizationSecurityPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115168	c.securityPolicy = securityPolicy
115169	return c
115170}
115171
115172// Name sets the optional parameter "name": Name for the attachment that
115173// will be removed.
115174func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Name(name string) *OrganizationSecurityPoliciesRemoveAssociationCall {
115175	c.urlParams_.Set("name", name)
115176	return c
115177}
115178
115179// RequestId sets the optional parameter "requestId": An optional
115180// request ID to identify requests. Specify a unique request ID so that
115181// if you must retry your request, the server will know to ignore the
115182// request if it has already been completed.
115183//
115184// For example, consider a situation where you make an initial request
115185// and the request times out. If you make the request again with the
115186// same request ID, the server can check if original operation with the
115187// same request ID was received, and if so, will ignore the second
115188// request. This prevents clients from accidentally creating duplicate
115189// commitments.
115190//
115191// The request ID must be a valid UUID with the exception that zero UUID
115192// is not supported (00000000-0000-0000-0000-000000000000).
115193func (c *OrganizationSecurityPoliciesRemoveAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveAssociationCall {
115194	c.urlParams_.Set("requestId", requestId)
115195	return c
115196}
115197
115198// Fields allows partial responses to be retrieved. See
115199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115200// for more information.
115201func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveAssociationCall {
115202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115203	return c
115204}
115205
115206// Context sets the context to be used in this call's Do method. Any
115207// pending HTTP request will be aborted if the provided context is
115208// canceled.
115209func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveAssociationCall {
115210	c.ctx_ = ctx
115211	return c
115212}
115213
115214// Header returns an http.Header that can be modified by the caller to
115215// add HTTP headers to the request.
115216func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Header() http.Header {
115217	if c.header_ == nil {
115218		c.header_ = make(http.Header)
115219	}
115220	return c.header_
115221}
115222
115223func (c *OrganizationSecurityPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
115224	reqHeaders := make(http.Header)
115225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
115226	for k, v := range c.header_ {
115227		reqHeaders[k] = v
115228	}
115229	reqHeaders.Set("User-Agent", c.s.userAgent())
115230	var body io.Reader = nil
115231	c.urlParams_.Set("alt", alt)
115232	c.urlParams_.Set("prettyPrint", "false")
115233	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeAssociation")
115234	urls += "?" + c.urlParams_.Encode()
115235	req, err := http.NewRequest("POST", urls, body)
115236	if err != nil {
115237		return nil, err
115238	}
115239	req.Header = reqHeaders
115240	googleapi.Expand(req.URL, map[string]string{
115241		"securityPolicy": c.securityPolicy,
115242	})
115243	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115244}
115245
115246// Do executes the "compute.organizationSecurityPolicies.removeAssociation" call.
115247// Exactly one of *Operation or error will be non-nil. Any non-2xx
115248// status code is an error. Response headers are in either
115249// *Operation.ServerResponse.Header or (if a response was returned at
115250// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115251// to check whether the returned error was because
115252// http.StatusNotModified was returned.
115253func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115254	gensupport.SetOptions(c.urlParams_, opts...)
115255	res, err := c.doRequest("json")
115256	if res != nil && res.StatusCode == http.StatusNotModified {
115257		if res.Body != nil {
115258			res.Body.Close()
115259		}
115260		return nil, &googleapi.Error{
115261			Code:   res.StatusCode,
115262			Header: res.Header,
115263		}
115264	}
115265	if err != nil {
115266		return nil, err
115267	}
115268	defer googleapi.CloseBody(res)
115269	if err := googleapi.CheckResponse(res); err != nil {
115270		return nil, err
115271	}
115272	ret := &Operation{
115273		ServerResponse: googleapi.ServerResponse{
115274			Header:         res.Header,
115275			HTTPStatusCode: res.StatusCode,
115276		},
115277	}
115278	target := &ret
115279	if err := gensupport.DecodeResponse(target, res); err != nil {
115280		return nil, err
115281	}
115282	return ret, nil
115283	// {
115284	//   "description": "Removes an association for the specified security policy.",
115285	//   "httpMethod": "POST",
115286	//   "id": "compute.organizationSecurityPolicies.removeAssociation",
115287	//   "parameterOrder": [
115288	//     "securityPolicy"
115289	//   ],
115290	//   "parameters": {
115291	//     "name": {
115292	//       "description": "Name for the attachment that will be removed.",
115293	//       "location": "query",
115294	//       "type": "string"
115295	//     },
115296	//     "requestId": {
115297	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115298	//       "location": "query",
115299	//       "type": "string"
115300	//     },
115301	//     "securityPolicy": {
115302	//       "description": "Name of the security policy to update.",
115303	//       "location": "path",
115304	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
115305	//       "required": true,
115306	//       "type": "string"
115307	//     }
115308	//   },
115309	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
115310	//   "response": {
115311	//     "$ref": "Operation"
115312	//   },
115313	//   "scopes": [
115314	//     "https://www.googleapis.com/auth/cloud-platform",
115315	//     "https://www.googleapis.com/auth/compute"
115316	//   ]
115317	// }
115318
115319}
115320
115321// method id "compute.organizationSecurityPolicies.removeRule":
115322
115323type OrganizationSecurityPoliciesRemoveRuleCall struct {
115324	s              *Service
115325	securityPolicy string
115326	urlParams_     gensupport.URLParams
115327	ctx_           context.Context
115328	header_        http.Header
115329}
115330
115331// RemoveRule: Deletes a rule at the specified priority.
115332func (r *OrganizationSecurityPoliciesService) RemoveRule(securityPolicy string) *OrganizationSecurityPoliciesRemoveRuleCall {
115333	c := &OrganizationSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115334	c.securityPolicy = securityPolicy
115335	return c
115336}
115337
115338// Priority sets the optional parameter "priority": The priority of the
115339// rule to remove from the security policy.
115340func (c *OrganizationSecurityPoliciesRemoveRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesRemoveRuleCall {
115341	c.urlParams_.Set("priority", fmt.Sprint(priority))
115342	return c
115343}
115344
115345// RequestId sets the optional parameter "requestId": An optional
115346// request ID to identify requests. Specify a unique request ID so that
115347// if you must retry your request, the server will know to ignore the
115348// request if it has already been completed.
115349//
115350// For example, consider a situation where you make an initial request
115351// and the request times out. If you make the request again with the
115352// same request ID, the server can check if original operation with the
115353// same request ID was received, and if so, will ignore the second
115354// request. This prevents clients from accidentally creating duplicate
115355// commitments.
115356//
115357// The request ID must be a valid UUID with the exception that zero UUID
115358// is not supported (00000000-0000-0000-0000-000000000000).
115359func (c *OrganizationSecurityPoliciesRemoveRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveRuleCall {
115360	c.urlParams_.Set("requestId", requestId)
115361	return c
115362}
115363
115364// Fields allows partial responses to be retrieved. See
115365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115366// for more information.
115367func (c *OrganizationSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveRuleCall {
115368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115369	return c
115370}
115371
115372// Context sets the context to be used in this call's Do method. Any
115373// pending HTTP request will be aborted if the provided context is
115374// canceled.
115375func (c *OrganizationSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveRuleCall {
115376	c.ctx_ = ctx
115377	return c
115378}
115379
115380// Header returns an http.Header that can be modified by the caller to
115381// add HTTP headers to the request.
115382func (c *OrganizationSecurityPoliciesRemoveRuleCall) Header() http.Header {
115383	if c.header_ == nil {
115384		c.header_ = make(http.Header)
115385	}
115386	return c.header_
115387}
115388
115389func (c *OrganizationSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
115390	reqHeaders := make(http.Header)
115391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
115392	for k, v := range c.header_ {
115393		reqHeaders[k] = v
115394	}
115395	reqHeaders.Set("User-Agent", c.s.userAgent())
115396	var body io.Reader = nil
115397	c.urlParams_.Set("alt", alt)
115398	c.urlParams_.Set("prettyPrint", "false")
115399	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeRule")
115400	urls += "?" + c.urlParams_.Encode()
115401	req, err := http.NewRequest("POST", urls, body)
115402	if err != nil {
115403		return nil, err
115404	}
115405	req.Header = reqHeaders
115406	googleapi.Expand(req.URL, map[string]string{
115407		"securityPolicy": c.securityPolicy,
115408	})
115409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115410}
115411
115412// Do executes the "compute.organizationSecurityPolicies.removeRule" call.
115413// Exactly one of *Operation or error will be non-nil. Any non-2xx
115414// status code is an error. Response headers are in either
115415// *Operation.ServerResponse.Header or (if a response was returned at
115416// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115417// to check whether the returned error was because
115418// http.StatusNotModified was returned.
115419func (c *OrganizationSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115420	gensupport.SetOptions(c.urlParams_, opts...)
115421	res, err := c.doRequest("json")
115422	if res != nil && res.StatusCode == http.StatusNotModified {
115423		if res.Body != nil {
115424			res.Body.Close()
115425		}
115426		return nil, &googleapi.Error{
115427			Code:   res.StatusCode,
115428			Header: res.Header,
115429		}
115430	}
115431	if err != nil {
115432		return nil, err
115433	}
115434	defer googleapi.CloseBody(res)
115435	if err := googleapi.CheckResponse(res); err != nil {
115436		return nil, err
115437	}
115438	ret := &Operation{
115439		ServerResponse: googleapi.ServerResponse{
115440			Header:         res.Header,
115441			HTTPStatusCode: res.StatusCode,
115442		},
115443	}
115444	target := &ret
115445	if err := gensupport.DecodeResponse(target, res); err != nil {
115446		return nil, err
115447	}
115448	return ret, nil
115449	// {
115450	//   "description": "Deletes a rule at the specified priority.",
115451	//   "httpMethod": "POST",
115452	//   "id": "compute.organizationSecurityPolicies.removeRule",
115453	//   "parameterOrder": [
115454	//     "securityPolicy"
115455	//   ],
115456	//   "parameters": {
115457	//     "priority": {
115458	//       "description": "The priority of the rule to remove from the security policy.",
115459	//       "format": "int32",
115460	//       "location": "query",
115461	//       "type": "integer"
115462	//     },
115463	//     "requestId": {
115464	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115465	//       "location": "query",
115466	//       "type": "string"
115467	//     },
115468	//     "securityPolicy": {
115469	//       "description": "Name of the security policy to update.",
115470	//       "location": "path",
115471	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
115472	//       "required": true,
115473	//       "type": "string"
115474	//     }
115475	//   },
115476	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeRule",
115477	//   "response": {
115478	//     "$ref": "Operation"
115479	//   },
115480	//   "scopes": [
115481	//     "https://www.googleapis.com/auth/cloud-platform",
115482	//     "https://www.googleapis.com/auth/compute"
115483	//   ]
115484	// }
115485
115486}
115487
115488// method id "compute.packetMirrorings.aggregatedList":
115489
115490type PacketMirroringsAggregatedListCall struct {
115491	s            *Service
115492	project      string
115493	urlParams_   gensupport.URLParams
115494	ifNoneMatch_ string
115495	ctx_         context.Context
115496	header_      http.Header
115497}
115498
115499// AggregatedList: Retrieves an aggregated list of packetMirrorings.
115500func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
115501	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115502	c.project = project
115503	return c
115504}
115505
115506// Filter sets the optional parameter "filter": A filter expression that
115507// filters resources listed in the response. The expression must specify
115508// the field name, a comparison operator, and the value that you want to
115509// use for filtering. The value must be a string, a number, or a
115510// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115511// `<`.
115512//
115513// For example, if you are filtering Compute Engine instances, you can
115514// exclude instances named `example-instance` by specifying `name !=
115515// example-instance`.
115516//
115517// You can also filter nested fields. For example, you could specify
115518// `scheduling.automaticRestart = false` to include instances only if
115519// they are not scheduled for automatic restarts. You can use filtering
115520// on nested fields to filter based on resource labels.
115521//
115522// To filter on multiple expressions, provide each separate expression
115523// within parentheses. For example: ``` (scheduling.automaticRestart =
115524// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115525// is an `AND` expression. However, you can include `AND` and `OR`
115526// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115527// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115528// (scheduling.automaticRestart = true) ```
115529func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
115530	c.urlParams_.Set("filter", filter)
115531	return c
115532}
115533
115534// IncludeAllScopes sets the optional parameter "includeAllScopes":
115535// Indicates whether every visible scope for each scope type (zone,
115536// region, global) should be included in the response. For new resource
115537// types added after this field, the flag has no effect as new resource
115538// types will always include every visible scope for each scope type in
115539// response. For resource types which predate this field, if this flag
115540// is omitted or false, only scopes of the scope types where the
115541// resource type is expected to be found will be included.
115542func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
115543	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
115544	return c
115545}
115546
115547// MaxResults sets the optional parameter "maxResults": The maximum
115548// number of results per page that should be returned. If the number of
115549// available results is larger than `maxResults`, Compute Engine returns
115550// a `nextPageToken` that can be used to get the next page of results in
115551// subsequent list requests. Acceptable values are `0` to `500`,
115552// inclusive. (Default: `500`)
115553func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
115554	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115555	return c
115556}
115557
115558// OrderBy sets the optional parameter "orderBy": Sorts list results by
115559// a certain order. By default, results are returned in alphanumerical
115560// order based on the resource name.
115561//
115562// You can also sort results in descending order based on the creation
115563// timestamp using `orderBy="creationTimestamp desc". This sorts
115564// results based on the `creationTimestamp` field in reverse
115565// chronological order (newest result first). Use this to sort resources
115566// like operations so that the newest operation is returned
115567// first.
115568//
115569// Currently, only sorting by `name` or `creationTimestamp desc` is
115570// supported.
115571func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
115572	c.urlParams_.Set("orderBy", orderBy)
115573	return c
115574}
115575
115576// PageToken sets the optional parameter "pageToken": Specifies a page
115577// token to use. Set `pageToken` to the `nextPageToken` returned by a
115578// previous list request to get the next page of results.
115579func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
115580	c.urlParams_.Set("pageToken", pageToken)
115581	return c
115582}
115583
115584// ReturnPartialSuccess sets the optional parameter
115585// "returnPartialSuccess": Opt-in for partial success behavior which
115586// provides partial results in case of failure. The default value is
115587// false and the logic is the same as today.
115588func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall {
115589	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
115590	return c
115591}
115592
115593// Fields allows partial responses to be retrieved. See
115594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115595// for more information.
115596func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
115597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115598	return c
115599}
115600
115601// IfNoneMatch sets the optional parameter which makes the operation
115602// fail if the object's ETag matches the given value. This is useful for
115603// getting updates only after the object has changed since the last
115604// request. Use googleapi.IsNotModified to check whether the response
115605// error from Do is the result of In-None-Match.
115606func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
115607	c.ifNoneMatch_ = entityTag
115608	return c
115609}
115610
115611// Context sets the context to be used in this call's Do method. Any
115612// pending HTTP request will be aborted if the provided context is
115613// canceled.
115614func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
115615	c.ctx_ = ctx
115616	return c
115617}
115618
115619// Header returns an http.Header that can be modified by the caller to
115620// add HTTP headers to the request.
115621func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
115622	if c.header_ == nil {
115623		c.header_ = make(http.Header)
115624	}
115625	return c.header_
115626}
115627
115628func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
115629	reqHeaders := make(http.Header)
115630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
115631	for k, v := range c.header_ {
115632		reqHeaders[k] = v
115633	}
115634	reqHeaders.Set("User-Agent", c.s.userAgent())
115635	if c.ifNoneMatch_ != "" {
115636		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115637	}
115638	var body io.Reader = nil
115639	c.urlParams_.Set("alt", alt)
115640	c.urlParams_.Set("prettyPrint", "false")
115641	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/packetMirrorings")
115642	urls += "?" + c.urlParams_.Encode()
115643	req, err := http.NewRequest("GET", urls, body)
115644	if err != nil {
115645		return nil, err
115646	}
115647	req.Header = reqHeaders
115648	googleapi.Expand(req.URL, map[string]string{
115649		"project": c.project,
115650	})
115651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115652}
115653
115654// Do executes the "compute.packetMirrorings.aggregatedList" call.
115655// Exactly one of *PacketMirroringAggregatedList or error will be
115656// non-nil. Any non-2xx status code is an error. Response headers are in
115657// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
115658// response was returned at all) in error.(*googleapi.Error).Header. Use
115659// googleapi.IsNotModified to check whether the returned error was
115660// because http.StatusNotModified was returned.
115661func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
115662	gensupport.SetOptions(c.urlParams_, opts...)
115663	res, err := c.doRequest("json")
115664	if res != nil && res.StatusCode == http.StatusNotModified {
115665		if res.Body != nil {
115666			res.Body.Close()
115667		}
115668		return nil, &googleapi.Error{
115669			Code:   res.StatusCode,
115670			Header: res.Header,
115671		}
115672	}
115673	if err != nil {
115674		return nil, err
115675	}
115676	defer googleapi.CloseBody(res)
115677	if err := googleapi.CheckResponse(res); err != nil {
115678		return nil, err
115679	}
115680	ret := &PacketMirroringAggregatedList{
115681		ServerResponse: googleapi.ServerResponse{
115682			Header:         res.Header,
115683			HTTPStatusCode: res.StatusCode,
115684		},
115685	}
115686	target := &ret
115687	if err := gensupport.DecodeResponse(target, res); err != nil {
115688		return nil, err
115689	}
115690	return ret, nil
115691	// {
115692	//   "description": "Retrieves an aggregated list of packetMirrorings.",
115693	//   "httpMethod": "GET",
115694	//   "id": "compute.packetMirrorings.aggregatedList",
115695	//   "parameterOrder": [
115696	//     "project"
115697	//   ],
115698	//   "parameters": {
115699	//     "filter": {
115700	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115701	//       "location": "query",
115702	//       "type": "string"
115703	//     },
115704	//     "includeAllScopes": {
115705	//       "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.",
115706	//       "location": "query",
115707	//       "type": "boolean"
115708	//     },
115709	//     "maxResults": {
115710	//       "default": "500",
115711	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115712	//       "format": "uint32",
115713	//       "location": "query",
115714	//       "minimum": "0",
115715	//       "type": "integer"
115716	//     },
115717	//     "orderBy": {
115718	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
115719	//       "location": "query",
115720	//       "type": "string"
115721	//     },
115722	//     "pageToken": {
115723	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115724	//       "location": "query",
115725	//       "type": "string"
115726	//     },
115727	//     "project": {
115728	//       "description": "Project ID for this request.",
115729	//       "location": "path",
115730	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115731	//       "required": true,
115732	//       "type": "string"
115733	//     },
115734	//     "returnPartialSuccess": {
115735	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
115736	//       "location": "query",
115737	//       "type": "boolean"
115738	//     }
115739	//   },
115740	//   "path": "{project}/aggregated/packetMirrorings",
115741	//   "response": {
115742	//     "$ref": "PacketMirroringAggregatedList"
115743	//   },
115744	//   "scopes": [
115745	//     "https://www.googleapis.com/auth/cloud-platform",
115746	//     "https://www.googleapis.com/auth/compute",
115747	//     "https://www.googleapis.com/auth/compute.readonly"
115748	//   ]
115749	// }
115750
115751}
115752
115753// Pages invokes f for each page of results.
115754// A non-nil error returned from f will halt the iteration.
115755// The provided context supersedes any context provided to the Context method.
115756func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
115757	c.ctx_ = ctx
115758	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115759	for {
115760		x, err := c.Do()
115761		if err != nil {
115762			return err
115763		}
115764		if err := f(x); err != nil {
115765			return err
115766		}
115767		if x.NextPageToken == "" {
115768			return nil
115769		}
115770		c.PageToken(x.NextPageToken)
115771	}
115772}
115773
115774// method id "compute.packetMirrorings.delete":
115775
115776type PacketMirroringsDeleteCall struct {
115777	s               *Service
115778	project         string
115779	region          string
115780	packetMirroring string
115781	urlParams_      gensupport.URLParams
115782	ctx_            context.Context
115783	header_         http.Header
115784}
115785
115786// Delete: Deletes the specified PacketMirroring resource.
115787func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
115788	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115789	c.project = project
115790	c.region = region
115791	c.packetMirroring = packetMirroring
115792	return c
115793}
115794
115795// RequestId sets the optional parameter "requestId": An optional
115796// request ID to identify requests. Specify a unique request ID so that
115797// if you must retry your request, the server will know to ignore the
115798// request if it has already been completed.
115799//
115800// For example, consider a situation where you make an initial request
115801// and the request times out. If you make the request again with the
115802// same request ID, the server can check if original operation with the
115803// same request ID was received, and if so, will ignore the second
115804// request. This prevents clients from accidentally creating duplicate
115805// commitments.
115806//
115807// The request ID must be a valid UUID with the exception that zero UUID
115808// is not supported (00000000-0000-0000-0000-000000000000).
115809func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
115810	c.urlParams_.Set("requestId", requestId)
115811	return c
115812}
115813
115814// Fields allows partial responses to be retrieved. See
115815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115816// for more information.
115817func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
115818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115819	return c
115820}
115821
115822// Context sets the context to be used in this call's Do method. Any
115823// pending HTTP request will be aborted if the provided context is
115824// canceled.
115825func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
115826	c.ctx_ = ctx
115827	return c
115828}
115829
115830// Header returns an http.Header that can be modified by the caller to
115831// add HTTP headers to the request.
115832func (c *PacketMirroringsDeleteCall) Header() http.Header {
115833	if c.header_ == nil {
115834		c.header_ = make(http.Header)
115835	}
115836	return c.header_
115837}
115838
115839func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
115840	reqHeaders := make(http.Header)
115841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
115842	for k, v := range c.header_ {
115843		reqHeaders[k] = v
115844	}
115845	reqHeaders.Set("User-Agent", c.s.userAgent())
115846	var body io.Reader = nil
115847	c.urlParams_.Set("alt", alt)
115848	c.urlParams_.Set("prettyPrint", "false")
115849	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
115850	urls += "?" + c.urlParams_.Encode()
115851	req, err := http.NewRequest("DELETE", urls, body)
115852	if err != nil {
115853		return nil, err
115854	}
115855	req.Header = reqHeaders
115856	googleapi.Expand(req.URL, map[string]string{
115857		"project":         c.project,
115858		"region":          c.region,
115859		"packetMirroring": c.packetMirroring,
115860	})
115861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115862}
115863
115864// Do executes the "compute.packetMirrorings.delete" call.
115865// Exactly one of *Operation or error will be non-nil. Any non-2xx
115866// status code is an error. Response headers are in either
115867// *Operation.ServerResponse.Header or (if a response was returned at
115868// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115869// to check whether the returned error was because
115870// http.StatusNotModified was returned.
115871func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115872	gensupport.SetOptions(c.urlParams_, opts...)
115873	res, err := c.doRequest("json")
115874	if res != nil && res.StatusCode == http.StatusNotModified {
115875		if res.Body != nil {
115876			res.Body.Close()
115877		}
115878		return nil, &googleapi.Error{
115879			Code:   res.StatusCode,
115880			Header: res.Header,
115881		}
115882	}
115883	if err != nil {
115884		return nil, err
115885	}
115886	defer googleapi.CloseBody(res)
115887	if err := googleapi.CheckResponse(res); err != nil {
115888		return nil, err
115889	}
115890	ret := &Operation{
115891		ServerResponse: googleapi.ServerResponse{
115892			Header:         res.Header,
115893			HTTPStatusCode: res.StatusCode,
115894		},
115895	}
115896	target := &ret
115897	if err := gensupport.DecodeResponse(target, res); err != nil {
115898		return nil, err
115899	}
115900	return ret, nil
115901	// {
115902	//   "description": "Deletes the specified PacketMirroring resource.",
115903	//   "httpMethod": "DELETE",
115904	//   "id": "compute.packetMirrorings.delete",
115905	//   "parameterOrder": [
115906	//     "project",
115907	//     "region",
115908	//     "packetMirroring"
115909	//   ],
115910	//   "parameters": {
115911	//     "packetMirroring": {
115912	//       "description": "Name of the PacketMirroring resource to delete.",
115913	//       "location": "path",
115914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115915	//       "required": true,
115916	//       "type": "string"
115917	//     },
115918	//     "project": {
115919	//       "description": "Project ID for this request.",
115920	//       "location": "path",
115921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115922	//       "required": true,
115923	//       "type": "string"
115924	//     },
115925	//     "region": {
115926	//       "description": "Name of the region for this request.",
115927	//       "location": "path",
115928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115929	//       "required": true,
115930	//       "type": "string"
115931	//     },
115932	//     "requestId": {
115933	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115934	//       "location": "query",
115935	//       "type": "string"
115936	//     }
115937	//   },
115938	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
115939	//   "response": {
115940	//     "$ref": "Operation"
115941	//   },
115942	//   "scopes": [
115943	//     "https://www.googleapis.com/auth/cloud-platform",
115944	//     "https://www.googleapis.com/auth/compute"
115945	//   ]
115946	// }
115947
115948}
115949
115950// method id "compute.packetMirrorings.get":
115951
115952type PacketMirroringsGetCall struct {
115953	s               *Service
115954	project         string
115955	region          string
115956	packetMirroring string
115957	urlParams_      gensupport.URLParams
115958	ifNoneMatch_    string
115959	ctx_            context.Context
115960	header_         http.Header
115961}
115962
115963// Get: Returns the specified PacketMirroring resource.
115964func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
115965	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115966	c.project = project
115967	c.region = region
115968	c.packetMirroring = packetMirroring
115969	return c
115970}
115971
115972// Fields allows partial responses to be retrieved. See
115973// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115974// for more information.
115975func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
115976	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115977	return c
115978}
115979
115980// IfNoneMatch sets the optional parameter which makes the operation
115981// fail if the object's ETag matches the given value. This is useful for
115982// getting updates only after the object has changed since the last
115983// request. Use googleapi.IsNotModified to check whether the response
115984// error from Do is the result of In-None-Match.
115985func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
115986	c.ifNoneMatch_ = entityTag
115987	return c
115988}
115989
115990// Context sets the context to be used in this call's Do method. Any
115991// pending HTTP request will be aborted if the provided context is
115992// canceled.
115993func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
115994	c.ctx_ = ctx
115995	return c
115996}
115997
115998// Header returns an http.Header that can be modified by the caller to
115999// add HTTP headers to the request.
116000func (c *PacketMirroringsGetCall) Header() http.Header {
116001	if c.header_ == nil {
116002		c.header_ = make(http.Header)
116003	}
116004	return c.header_
116005}
116006
116007func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
116008	reqHeaders := make(http.Header)
116009	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
116010	for k, v := range c.header_ {
116011		reqHeaders[k] = v
116012	}
116013	reqHeaders.Set("User-Agent", c.s.userAgent())
116014	if c.ifNoneMatch_ != "" {
116015		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116016	}
116017	var body io.Reader = nil
116018	c.urlParams_.Set("alt", alt)
116019	c.urlParams_.Set("prettyPrint", "false")
116020	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
116021	urls += "?" + c.urlParams_.Encode()
116022	req, err := http.NewRequest("GET", urls, body)
116023	if err != nil {
116024		return nil, err
116025	}
116026	req.Header = reqHeaders
116027	googleapi.Expand(req.URL, map[string]string{
116028		"project":         c.project,
116029		"region":          c.region,
116030		"packetMirroring": c.packetMirroring,
116031	})
116032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116033}
116034
116035// Do executes the "compute.packetMirrorings.get" call.
116036// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
116037// status code is an error. Response headers are in either
116038// *PacketMirroring.ServerResponse.Header or (if a response was returned
116039// at all) in error.(*googleapi.Error).Header. Use
116040// googleapi.IsNotModified to check whether the returned error was
116041// because http.StatusNotModified was returned.
116042func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
116043	gensupport.SetOptions(c.urlParams_, opts...)
116044	res, err := c.doRequest("json")
116045	if res != nil && res.StatusCode == http.StatusNotModified {
116046		if res.Body != nil {
116047			res.Body.Close()
116048		}
116049		return nil, &googleapi.Error{
116050			Code:   res.StatusCode,
116051			Header: res.Header,
116052		}
116053	}
116054	if err != nil {
116055		return nil, err
116056	}
116057	defer googleapi.CloseBody(res)
116058	if err := googleapi.CheckResponse(res); err != nil {
116059		return nil, err
116060	}
116061	ret := &PacketMirroring{
116062		ServerResponse: googleapi.ServerResponse{
116063			Header:         res.Header,
116064			HTTPStatusCode: res.StatusCode,
116065		},
116066	}
116067	target := &ret
116068	if err := gensupport.DecodeResponse(target, res); err != nil {
116069		return nil, err
116070	}
116071	return ret, nil
116072	// {
116073	//   "description": "Returns the specified PacketMirroring resource.",
116074	//   "httpMethod": "GET",
116075	//   "id": "compute.packetMirrorings.get",
116076	//   "parameterOrder": [
116077	//     "project",
116078	//     "region",
116079	//     "packetMirroring"
116080	//   ],
116081	//   "parameters": {
116082	//     "packetMirroring": {
116083	//       "description": "Name of the PacketMirroring resource to return.",
116084	//       "location": "path",
116085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116086	//       "required": true,
116087	//       "type": "string"
116088	//     },
116089	//     "project": {
116090	//       "description": "Project ID for this request.",
116091	//       "location": "path",
116092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116093	//       "required": true,
116094	//       "type": "string"
116095	//     },
116096	//     "region": {
116097	//       "description": "Name of the region for this request.",
116098	//       "location": "path",
116099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116100	//       "required": true,
116101	//       "type": "string"
116102	//     }
116103	//   },
116104	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
116105	//   "response": {
116106	//     "$ref": "PacketMirroring"
116107	//   },
116108	//   "scopes": [
116109	//     "https://www.googleapis.com/auth/cloud-platform",
116110	//     "https://www.googleapis.com/auth/compute",
116111	//     "https://www.googleapis.com/auth/compute.readonly"
116112	//   ]
116113	// }
116114
116115}
116116
116117// method id "compute.packetMirrorings.insert":
116118
116119type PacketMirroringsInsertCall struct {
116120	s               *Service
116121	project         string
116122	region          string
116123	packetmirroring *PacketMirroring
116124	urlParams_      gensupport.URLParams
116125	ctx_            context.Context
116126	header_         http.Header
116127}
116128
116129// Insert: Creates a PacketMirroring resource in the specified project
116130// and region using the data included in the request.
116131func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
116132	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116133	c.project = project
116134	c.region = region
116135	c.packetmirroring = packetmirroring
116136	return c
116137}
116138
116139// RequestId sets the optional parameter "requestId": An optional
116140// request ID to identify requests. Specify a unique request ID so that
116141// if you must retry your request, the server will know to ignore the
116142// request if it has already been completed.
116143//
116144// For example, consider a situation where you make an initial request
116145// and the request times out. If you make the request again with the
116146// same request ID, the server can check if original operation with the
116147// same request ID was received, and if so, will ignore the second
116148// request. This prevents clients from accidentally creating duplicate
116149// commitments.
116150//
116151// The request ID must be a valid UUID with the exception that zero UUID
116152// is not supported (00000000-0000-0000-0000-000000000000).
116153func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
116154	c.urlParams_.Set("requestId", requestId)
116155	return c
116156}
116157
116158// Fields allows partial responses to be retrieved. See
116159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116160// for more information.
116161func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
116162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116163	return c
116164}
116165
116166// Context sets the context to be used in this call's Do method. Any
116167// pending HTTP request will be aborted if the provided context is
116168// canceled.
116169func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
116170	c.ctx_ = ctx
116171	return c
116172}
116173
116174// Header returns an http.Header that can be modified by the caller to
116175// add HTTP headers to the request.
116176func (c *PacketMirroringsInsertCall) Header() http.Header {
116177	if c.header_ == nil {
116178		c.header_ = make(http.Header)
116179	}
116180	return c.header_
116181}
116182
116183func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
116184	reqHeaders := make(http.Header)
116185	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
116186	for k, v := range c.header_ {
116187		reqHeaders[k] = v
116188	}
116189	reqHeaders.Set("User-Agent", c.s.userAgent())
116190	var body io.Reader = nil
116191	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
116192	if err != nil {
116193		return nil, err
116194	}
116195	reqHeaders.Set("Content-Type", "application/json")
116196	c.urlParams_.Set("alt", alt)
116197	c.urlParams_.Set("prettyPrint", "false")
116198	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
116199	urls += "?" + c.urlParams_.Encode()
116200	req, err := http.NewRequest("POST", urls, body)
116201	if err != nil {
116202		return nil, err
116203	}
116204	req.Header = reqHeaders
116205	googleapi.Expand(req.URL, map[string]string{
116206		"project": c.project,
116207		"region":  c.region,
116208	})
116209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116210}
116211
116212// Do executes the "compute.packetMirrorings.insert" call.
116213// Exactly one of *Operation or error will be non-nil. Any non-2xx
116214// status code is an error. Response headers are in either
116215// *Operation.ServerResponse.Header or (if a response was returned at
116216// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116217// to check whether the returned error was because
116218// http.StatusNotModified was returned.
116219func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116220	gensupport.SetOptions(c.urlParams_, opts...)
116221	res, err := c.doRequest("json")
116222	if res != nil && res.StatusCode == http.StatusNotModified {
116223		if res.Body != nil {
116224			res.Body.Close()
116225		}
116226		return nil, &googleapi.Error{
116227			Code:   res.StatusCode,
116228			Header: res.Header,
116229		}
116230	}
116231	if err != nil {
116232		return nil, err
116233	}
116234	defer googleapi.CloseBody(res)
116235	if err := googleapi.CheckResponse(res); err != nil {
116236		return nil, err
116237	}
116238	ret := &Operation{
116239		ServerResponse: googleapi.ServerResponse{
116240			Header:         res.Header,
116241			HTTPStatusCode: res.StatusCode,
116242		},
116243	}
116244	target := &ret
116245	if err := gensupport.DecodeResponse(target, res); err != nil {
116246		return nil, err
116247	}
116248	return ret, nil
116249	// {
116250	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
116251	//   "httpMethod": "POST",
116252	//   "id": "compute.packetMirrorings.insert",
116253	//   "parameterOrder": [
116254	//     "project",
116255	//     "region"
116256	//   ],
116257	//   "parameters": {
116258	//     "project": {
116259	//       "description": "Project ID for this request.",
116260	//       "location": "path",
116261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116262	//       "required": true,
116263	//       "type": "string"
116264	//     },
116265	//     "region": {
116266	//       "description": "Name of the region for this request.",
116267	//       "location": "path",
116268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116269	//       "required": true,
116270	//       "type": "string"
116271	//     },
116272	//     "requestId": {
116273	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116274	//       "location": "query",
116275	//       "type": "string"
116276	//     }
116277	//   },
116278	//   "path": "{project}/regions/{region}/packetMirrorings",
116279	//   "request": {
116280	//     "$ref": "PacketMirroring"
116281	//   },
116282	//   "response": {
116283	//     "$ref": "Operation"
116284	//   },
116285	//   "scopes": [
116286	//     "https://www.googleapis.com/auth/cloud-platform",
116287	//     "https://www.googleapis.com/auth/compute"
116288	//   ]
116289	// }
116290
116291}
116292
116293// method id "compute.packetMirrorings.list":
116294
116295type PacketMirroringsListCall struct {
116296	s            *Service
116297	project      string
116298	region       string
116299	urlParams_   gensupport.URLParams
116300	ifNoneMatch_ string
116301	ctx_         context.Context
116302	header_      http.Header
116303}
116304
116305// List: Retrieves a list of PacketMirroring resources available to the
116306// specified project and region.
116307func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
116308	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116309	c.project = project
116310	c.region = region
116311	return c
116312}
116313
116314// Filter sets the optional parameter "filter": A filter expression that
116315// filters resources listed in the response. The expression must specify
116316// the field name, a comparison operator, and the value that you want to
116317// use for filtering. The value must be a string, a number, or a
116318// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116319// `<`.
116320//
116321// For example, if you are filtering Compute Engine instances, you can
116322// exclude instances named `example-instance` by specifying `name !=
116323// example-instance`.
116324//
116325// You can also filter nested fields. For example, you could specify
116326// `scheduling.automaticRestart = false` to include instances only if
116327// they are not scheduled for automatic restarts. You can use filtering
116328// on nested fields to filter based on resource labels.
116329//
116330// To filter on multiple expressions, provide each separate expression
116331// within parentheses. For example: ``` (scheduling.automaticRestart =
116332// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
116333// is an `AND` expression. However, you can include `AND` and `OR`
116334// expressions explicitly. For example: ``` (cpuPlatform = "Intel
116335// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
116336// (scheduling.automaticRestart = true) ```
116337func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
116338	c.urlParams_.Set("filter", filter)
116339	return c
116340}
116341
116342// MaxResults sets the optional parameter "maxResults": The maximum
116343// number of results per page that should be returned. If the number of
116344// available results is larger than `maxResults`, Compute Engine returns
116345// a `nextPageToken` that can be used to get the next page of results in
116346// subsequent list requests. Acceptable values are `0` to `500`,
116347// inclusive. (Default: `500`)
116348func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
116349	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116350	return c
116351}
116352
116353// OrderBy sets the optional parameter "orderBy": Sorts list results by
116354// a certain order. By default, results are returned in alphanumerical
116355// order based on the resource name.
116356//
116357// You can also sort results in descending order based on the creation
116358// timestamp using `orderBy="creationTimestamp desc". This sorts
116359// results based on the `creationTimestamp` field in reverse
116360// chronological order (newest result first). Use this to sort resources
116361// like operations so that the newest operation is returned
116362// first.
116363//
116364// Currently, only sorting by `name` or `creationTimestamp desc` is
116365// supported.
116366func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
116367	c.urlParams_.Set("orderBy", orderBy)
116368	return c
116369}
116370
116371// PageToken sets the optional parameter "pageToken": Specifies a page
116372// token to use. Set `pageToken` to the `nextPageToken` returned by a
116373// previous list request to get the next page of results.
116374func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
116375	c.urlParams_.Set("pageToken", pageToken)
116376	return c
116377}
116378
116379// ReturnPartialSuccess sets the optional parameter
116380// "returnPartialSuccess": Opt-in for partial success behavior which
116381// provides partial results in case of failure. The default value is
116382// false and the logic is the same as today.
116383func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall {
116384	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
116385	return c
116386}
116387
116388// Fields allows partial responses to be retrieved. See
116389// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116390// for more information.
116391func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
116392	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116393	return c
116394}
116395
116396// IfNoneMatch sets the optional parameter which makes the operation
116397// fail if the object's ETag matches the given value. This is useful for
116398// getting updates only after the object has changed since the last
116399// request. Use googleapi.IsNotModified to check whether the response
116400// error from Do is the result of In-None-Match.
116401func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
116402	c.ifNoneMatch_ = entityTag
116403	return c
116404}
116405
116406// Context sets the context to be used in this call's Do method. Any
116407// pending HTTP request will be aborted if the provided context is
116408// canceled.
116409func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
116410	c.ctx_ = ctx
116411	return c
116412}
116413
116414// Header returns an http.Header that can be modified by the caller to
116415// add HTTP headers to the request.
116416func (c *PacketMirroringsListCall) Header() http.Header {
116417	if c.header_ == nil {
116418		c.header_ = make(http.Header)
116419	}
116420	return c.header_
116421}
116422
116423func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
116424	reqHeaders := make(http.Header)
116425	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
116426	for k, v := range c.header_ {
116427		reqHeaders[k] = v
116428	}
116429	reqHeaders.Set("User-Agent", c.s.userAgent())
116430	if c.ifNoneMatch_ != "" {
116431		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116432	}
116433	var body io.Reader = nil
116434	c.urlParams_.Set("alt", alt)
116435	c.urlParams_.Set("prettyPrint", "false")
116436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
116437	urls += "?" + c.urlParams_.Encode()
116438	req, err := http.NewRequest("GET", urls, body)
116439	if err != nil {
116440		return nil, err
116441	}
116442	req.Header = reqHeaders
116443	googleapi.Expand(req.URL, map[string]string{
116444		"project": c.project,
116445		"region":  c.region,
116446	})
116447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116448}
116449
116450// Do executes the "compute.packetMirrorings.list" call.
116451// Exactly one of *PacketMirroringList or error will be non-nil. Any
116452// non-2xx status code is an error. Response headers are in either
116453// *PacketMirroringList.ServerResponse.Header or (if a response was
116454// returned at all) in error.(*googleapi.Error).Header. Use
116455// googleapi.IsNotModified to check whether the returned error was
116456// because http.StatusNotModified was returned.
116457func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
116458	gensupport.SetOptions(c.urlParams_, opts...)
116459	res, err := c.doRequest("json")
116460	if res != nil && res.StatusCode == http.StatusNotModified {
116461		if res.Body != nil {
116462			res.Body.Close()
116463		}
116464		return nil, &googleapi.Error{
116465			Code:   res.StatusCode,
116466			Header: res.Header,
116467		}
116468	}
116469	if err != nil {
116470		return nil, err
116471	}
116472	defer googleapi.CloseBody(res)
116473	if err := googleapi.CheckResponse(res); err != nil {
116474		return nil, err
116475	}
116476	ret := &PacketMirroringList{
116477		ServerResponse: googleapi.ServerResponse{
116478			Header:         res.Header,
116479			HTTPStatusCode: res.StatusCode,
116480		},
116481	}
116482	target := &ret
116483	if err := gensupport.DecodeResponse(target, res); err != nil {
116484		return nil, err
116485	}
116486	return ret, nil
116487	// {
116488	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
116489	//   "httpMethod": "GET",
116490	//   "id": "compute.packetMirrorings.list",
116491	//   "parameterOrder": [
116492	//     "project",
116493	//     "region"
116494	//   ],
116495	//   "parameters": {
116496	//     "filter": {
116497	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
116498	//       "location": "query",
116499	//       "type": "string"
116500	//     },
116501	//     "maxResults": {
116502	//       "default": "500",
116503	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
116504	//       "format": "uint32",
116505	//       "location": "query",
116506	//       "minimum": "0",
116507	//       "type": "integer"
116508	//     },
116509	//     "orderBy": {
116510	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
116511	//       "location": "query",
116512	//       "type": "string"
116513	//     },
116514	//     "pageToken": {
116515	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
116516	//       "location": "query",
116517	//       "type": "string"
116518	//     },
116519	//     "project": {
116520	//       "description": "Project ID for this request.",
116521	//       "location": "path",
116522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116523	//       "required": true,
116524	//       "type": "string"
116525	//     },
116526	//     "region": {
116527	//       "description": "Name of the region for this request.",
116528	//       "location": "path",
116529	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116530	//       "required": true,
116531	//       "type": "string"
116532	//     },
116533	//     "returnPartialSuccess": {
116534	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
116535	//       "location": "query",
116536	//       "type": "boolean"
116537	//     }
116538	//   },
116539	//   "path": "{project}/regions/{region}/packetMirrorings",
116540	//   "response": {
116541	//     "$ref": "PacketMirroringList"
116542	//   },
116543	//   "scopes": [
116544	//     "https://www.googleapis.com/auth/cloud-platform",
116545	//     "https://www.googleapis.com/auth/compute",
116546	//     "https://www.googleapis.com/auth/compute.readonly"
116547	//   ]
116548	// }
116549
116550}
116551
116552// Pages invokes f for each page of results.
116553// A non-nil error returned from f will halt the iteration.
116554// The provided context supersedes any context provided to the Context method.
116555func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
116556	c.ctx_ = ctx
116557	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116558	for {
116559		x, err := c.Do()
116560		if err != nil {
116561			return err
116562		}
116563		if err := f(x); err != nil {
116564			return err
116565		}
116566		if x.NextPageToken == "" {
116567			return nil
116568		}
116569		c.PageToken(x.NextPageToken)
116570	}
116571}
116572
116573// method id "compute.packetMirrorings.patch":
116574
116575type PacketMirroringsPatchCall struct {
116576	s               *Service
116577	project         string
116578	region          string
116579	packetMirroring string
116580	packetmirroring *PacketMirroring
116581	urlParams_      gensupport.URLParams
116582	ctx_            context.Context
116583	header_         http.Header
116584}
116585
116586// Patch: Patches the specified PacketMirroring resource with the data
116587// included in the request. This method supports PATCH semantics and
116588// uses JSON merge patch format and processing rules.
116589func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
116590	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116591	c.project = project
116592	c.region = region
116593	c.packetMirroring = packetMirroring
116594	c.packetmirroring = packetmirroring
116595	return c
116596}
116597
116598// RequestId sets the optional parameter "requestId": An optional
116599// request ID to identify requests. Specify a unique request ID so that
116600// if you must retry your request, the server will know to ignore the
116601// request if it has already been completed.
116602//
116603// For example, consider a situation where you make an initial request
116604// and the request times out. If you make the request again with the
116605// same request ID, the server can check if original operation with the
116606// same request ID was received, and if so, will ignore the second
116607// request. This prevents clients from accidentally creating duplicate
116608// commitments.
116609//
116610// The request ID must be a valid UUID with the exception that zero UUID
116611// is not supported (00000000-0000-0000-0000-000000000000).
116612func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
116613	c.urlParams_.Set("requestId", requestId)
116614	return c
116615}
116616
116617// Fields allows partial responses to be retrieved. See
116618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116619// for more information.
116620func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
116621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116622	return c
116623}
116624
116625// Context sets the context to be used in this call's Do method. Any
116626// pending HTTP request will be aborted if the provided context is
116627// canceled.
116628func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
116629	c.ctx_ = ctx
116630	return c
116631}
116632
116633// Header returns an http.Header that can be modified by the caller to
116634// add HTTP headers to the request.
116635func (c *PacketMirroringsPatchCall) Header() http.Header {
116636	if c.header_ == nil {
116637		c.header_ = make(http.Header)
116638	}
116639	return c.header_
116640}
116641
116642func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
116643	reqHeaders := make(http.Header)
116644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
116645	for k, v := range c.header_ {
116646		reqHeaders[k] = v
116647	}
116648	reqHeaders.Set("User-Agent", c.s.userAgent())
116649	var body io.Reader = nil
116650	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
116651	if err != nil {
116652		return nil, err
116653	}
116654	reqHeaders.Set("Content-Type", "application/json")
116655	c.urlParams_.Set("alt", alt)
116656	c.urlParams_.Set("prettyPrint", "false")
116657	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
116658	urls += "?" + c.urlParams_.Encode()
116659	req, err := http.NewRequest("PATCH", urls, body)
116660	if err != nil {
116661		return nil, err
116662	}
116663	req.Header = reqHeaders
116664	googleapi.Expand(req.URL, map[string]string{
116665		"project":         c.project,
116666		"region":          c.region,
116667		"packetMirroring": c.packetMirroring,
116668	})
116669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116670}
116671
116672// Do executes the "compute.packetMirrorings.patch" call.
116673// Exactly one of *Operation or error will be non-nil. Any non-2xx
116674// status code is an error. Response headers are in either
116675// *Operation.ServerResponse.Header or (if a response was returned at
116676// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116677// to check whether the returned error was because
116678// http.StatusNotModified was returned.
116679func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116680	gensupport.SetOptions(c.urlParams_, opts...)
116681	res, err := c.doRequest("json")
116682	if res != nil && res.StatusCode == http.StatusNotModified {
116683		if res.Body != nil {
116684			res.Body.Close()
116685		}
116686		return nil, &googleapi.Error{
116687			Code:   res.StatusCode,
116688			Header: res.Header,
116689		}
116690	}
116691	if err != nil {
116692		return nil, err
116693	}
116694	defer googleapi.CloseBody(res)
116695	if err := googleapi.CheckResponse(res); err != nil {
116696		return nil, err
116697	}
116698	ret := &Operation{
116699		ServerResponse: googleapi.ServerResponse{
116700			Header:         res.Header,
116701			HTTPStatusCode: res.StatusCode,
116702		},
116703	}
116704	target := &ret
116705	if err := gensupport.DecodeResponse(target, res); err != nil {
116706		return nil, err
116707	}
116708	return ret, nil
116709	// {
116710	//   "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.",
116711	//   "httpMethod": "PATCH",
116712	//   "id": "compute.packetMirrorings.patch",
116713	//   "parameterOrder": [
116714	//     "project",
116715	//     "region",
116716	//     "packetMirroring"
116717	//   ],
116718	//   "parameters": {
116719	//     "packetMirroring": {
116720	//       "description": "Name of the PacketMirroring resource to patch.",
116721	//       "location": "path",
116722	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116723	//       "required": true,
116724	//       "type": "string"
116725	//     },
116726	//     "project": {
116727	//       "description": "Project ID for this request.",
116728	//       "location": "path",
116729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116730	//       "required": true,
116731	//       "type": "string"
116732	//     },
116733	//     "region": {
116734	//       "description": "Name of the region for this request.",
116735	//       "location": "path",
116736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116737	//       "required": true,
116738	//       "type": "string"
116739	//     },
116740	//     "requestId": {
116741	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116742	//       "location": "query",
116743	//       "type": "string"
116744	//     }
116745	//   },
116746	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
116747	//   "request": {
116748	//     "$ref": "PacketMirroring"
116749	//   },
116750	//   "response": {
116751	//     "$ref": "Operation"
116752	//   },
116753	//   "scopes": [
116754	//     "https://www.googleapis.com/auth/cloud-platform",
116755	//     "https://www.googleapis.com/auth/compute"
116756	//   ]
116757	// }
116758
116759}
116760
116761// method id "compute.packetMirrorings.testIamPermissions":
116762
116763type PacketMirroringsTestIamPermissionsCall struct {
116764	s                      *Service
116765	project                string
116766	region                 string
116767	resource               string
116768	testpermissionsrequest *TestPermissionsRequest
116769	urlParams_             gensupport.URLParams
116770	ctx_                   context.Context
116771	header_                http.Header
116772}
116773
116774// TestIamPermissions: Returns permissions that a caller has on the
116775// specified resource.
116776func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
116777	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116778	c.project = project
116779	c.region = region
116780	c.resource = resource
116781	c.testpermissionsrequest = testpermissionsrequest
116782	return c
116783}
116784
116785// Fields allows partial responses to be retrieved. See
116786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116787// for more information.
116788func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
116789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116790	return c
116791}
116792
116793// Context sets the context to be used in this call's Do method. Any
116794// pending HTTP request will be aborted if the provided context is
116795// canceled.
116796func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
116797	c.ctx_ = ctx
116798	return c
116799}
116800
116801// Header returns an http.Header that can be modified by the caller to
116802// add HTTP headers to the request.
116803func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
116804	if c.header_ == nil {
116805		c.header_ = make(http.Header)
116806	}
116807	return c.header_
116808}
116809
116810func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
116811	reqHeaders := make(http.Header)
116812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
116813	for k, v := range c.header_ {
116814		reqHeaders[k] = v
116815	}
116816	reqHeaders.Set("User-Agent", c.s.userAgent())
116817	var body io.Reader = nil
116818	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
116819	if err != nil {
116820		return nil, err
116821	}
116822	reqHeaders.Set("Content-Type", "application/json")
116823	c.urlParams_.Set("alt", alt)
116824	c.urlParams_.Set("prettyPrint", "false")
116825	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
116826	urls += "?" + c.urlParams_.Encode()
116827	req, err := http.NewRequest("POST", urls, body)
116828	if err != nil {
116829		return nil, err
116830	}
116831	req.Header = reqHeaders
116832	googleapi.Expand(req.URL, map[string]string{
116833		"project":  c.project,
116834		"region":   c.region,
116835		"resource": c.resource,
116836	})
116837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116838}
116839
116840// Do executes the "compute.packetMirrorings.testIamPermissions" call.
116841// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
116842// non-2xx status code is an error. Response headers are in either
116843// *TestPermissionsResponse.ServerResponse.Header or (if a response was
116844// returned at all) in error.(*googleapi.Error).Header. Use
116845// googleapi.IsNotModified to check whether the returned error was
116846// because http.StatusNotModified was returned.
116847func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
116848	gensupport.SetOptions(c.urlParams_, opts...)
116849	res, err := c.doRequest("json")
116850	if res != nil && res.StatusCode == http.StatusNotModified {
116851		if res.Body != nil {
116852			res.Body.Close()
116853		}
116854		return nil, &googleapi.Error{
116855			Code:   res.StatusCode,
116856			Header: res.Header,
116857		}
116858	}
116859	if err != nil {
116860		return nil, err
116861	}
116862	defer googleapi.CloseBody(res)
116863	if err := googleapi.CheckResponse(res); err != nil {
116864		return nil, err
116865	}
116866	ret := &TestPermissionsResponse{
116867		ServerResponse: googleapi.ServerResponse{
116868			Header:         res.Header,
116869			HTTPStatusCode: res.StatusCode,
116870		},
116871	}
116872	target := &ret
116873	if err := gensupport.DecodeResponse(target, res); err != nil {
116874		return nil, err
116875	}
116876	return ret, nil
116877	// {
116878	//   "description": "Returns permissions that a caller has on the specified resource.",
116879	//   "httpMethod": "POST",
116880	//   "id": "compute.packetMirrorings.testIamPermissions",
116881	//   "parameterOrder": [
116882	//     "project",
116883	//     "region",
116884	//     "resource"
116885	//   ],
116886	//   "parameters": {
116887	//     "project": {
116888	//       "description": "Project ID for this request.",
116889	//       "location": "path",
116890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116891	//       "required": true,
116892	//       "type": "string"
116893	//     },
116894	//     "region": {
116895	//       "description": "The name of the region for this request.",
116896	//       "location": "path",
116897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116898	//       "required": true,
116899	//       "type": "string"
116900	//     },
116901	//     "resource": {
116902	//       "description": "Name or id of the resource for this request.",
116903	//       "location": "path",
116904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116905	//       "required": true,
116906	//       "type": "string"
116907	//     }
116908	//   },
116909	//   "path": "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
116910	//   "request": {
116911	//     "$ref": "TestPermissionsRequest"
116912	//   },
116913	//   "response": {
116914	//     "$ref": "TestPermissionsResponse"
116915	//   },
116916	//   "scopes": [
116917	//     "https://www.googleapis.com/auth/cloud-platform",
116918	//     "https://www.googleapis.com/auth/compute",
116919	//     "https://www.googleapis.com/auth/compute.readonly"
116920	//   ]
116921	// }
116922
116923}
116924
116925// method id "compute.projects.disableXpnHost":
116926
116927type ProjectsDisableXpnHostCall struct {
116928	s          *Service
116929	project    string
116930	urlParams_ gensupport.URLParams
116931	ctx_       context.Context
116932	header_    http.Header
116933}
116934
116935// DisableXpnHost: Disable this project as a shared VPC host project.
116936func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
116937	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116938	c.project = project
116939	return c
116940}
116941
116942// RequestId sets the optional parameter "requestId": An optional
116943// request ID to identify requests. Specify a unique request ID so that
116944// if you must retry your request, the server will know to ignore the
116945// request if it has already been completed.
116946//
116947// For example, consider a situation where you make an initial request
116948// and the request times out. If you make the request again with the
116949// same request ID, the server can check if original operation with the
116950// same request ID was received, and if so, will ignore the second
116951// request. This prevents clients from accidentally creating duplicate
116952// commitments.
116953//
116954// The request ID must be a valid UUID with the exception that zero UUID
116955// is not supported (00000000-0000-0000-0000-000000000000).
116956func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
116957	c.urlParams_.Set("requestId", requestId)
116958	return c
116959}
116960
116961// Fields allows partial responses to be retrieved. See
116962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116963// for more information.
116964func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
116965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116966	return c
116967}
116968
116969// Context sets the context to be used in this call's Do method. Any
116970// pending HTTP request will be aborted if the provided context is
116971// canceled.
116972func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
116973	c.ctx_ = ctx
116974	return c
116975}
116976
116977// Header returns an http.Header that can be modified by the caller to
116978// add HTTP headers to the request.
116979func (c *ProjectsDisableXpnHostCall) Header() http.Header {
116980	if c.header_ == nil {
116981		c.header_ = make(http.Header)
116982	}
116983	return c.header_
116984}
116985
116986func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
116987	reqHeaders := make(http.Header)
116988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
116989	for k, v := range c.header_ {
116990		reqHeaders[k] = v
116991	}
116992	reqHeaders.Set("User-Agent", c.s.userAgent())
116993	var body io.Reader = nil
116994	c.urlParams_.Set("alt", alt)
116995	c.urlParams_.Set("prettyPrint", "false")
116996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
116997	urls += "?" + c.urlParams_.Encode()
116998	req, err := http.NewRequest("POST", urls, body)
116999	if err != nil {
117000		return nil, err
117001	}
117002	req.Header = reqHeaders
117003	googleapi.Expand(req.URL, map[string]string{
117004		"project": c.project,
117005	})
117006	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117007}
117008
117009// Do executes the "compute.projects.disableXpnHost" call.
117010// Exactly one of *Operation or error will be non-nil. Any non-2xx
117011// status code is an error. Response headers are in either
117012// *Operation.ServerResponse.Header or (if a response was returned at
117013// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117014// to check whether the returned error was because
117015// http.StatusNotModified was returned.
117016func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117017	gensupport.SetOptions(c.urlParams_, opts...)
117018	res, err := c.doRequest("json")
117019	if res != nil && res.StatusCode == http.StatusNotModified {
117020		if res.Body != nil {
117021			res.Body.Close()
117022		}
117023		return nil, &googleapi.Error{
117024			Code:   res.StatusCode,
117025			Header: res.Header,
117026		}
117027	}
117028	if err != nil {
117029		return nil, err
117030	}
117031	defer googleapi.CloseBody(res)
117032	if err := googleapi.CheckResponse(res); err != nil {
117033		return nil, err
117034	}
117035	ret := &Operation{
117036		ServerResponse: googleapi.ServerResponse{
117037			Header:         res.Header,
117038			HTTPStatusCode: res.StatusCode,
117039		},
117040	}
117041	target := &ret
117042	if err := gensupport.DecodeResponse(target, res); err != nil {
117043		return nil, err
117044	}
117045	return ret, nil
117046	// {
117047	//   "description": "Disable this project as a shared VPC host project.",
117048	//   "httpMethod": "POST",
117049	//   "id": "compute.projects.disableXpnHost",
117050	//   "parameterOrder": [
117051	//     "project"
117052	//   ],
117053	//   "parameters": {
117054	//     "project": {
117055	//       "description": "Project ID for this request.",
117056	//       "location": "path",
117057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117058	//       "required": true,
117059	//       "type": "string"
117060	//     },
117061	//     "requestId": {
117062	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117063	//       "location": "query",
117064	//       "type": "string"
117065	//     }
117066	//   },
117067	//   "path": "{project}/disableXpnHost",
117068	//   "response": {
117069	//     "$ref": "Operation"
117070	//   },
117071	//   "scopes": [
117072	//     "https://www.googleapis.com/auth/cloud-platform",
117073	//     "https://www.googleapis.com/auth/compute"
117074	//   ]
117075	// }
117076
117077}
117078
117079// method id "compute.projects.disableXpnResource":
117080
117081type ProjectsDisableXpnResourceCall struct {
117082	s                                 *Service
117083	project                           string
117084	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
117085	urlParams_                        gensupport.URLParams
117086	ctx_                              context.Context
117087	header_                           http.Header
117088}
117089
117090// DisableXpnResource: Disable a service resource (also known as service
117091// project) associated with this host project.
117092func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
117093	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117094	c.project = project
117095	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
117096	return c
117097}
117098
117099// RequestId sets the optional parameter "requestId": An optional
117100// request ID to identify requests. Specify a unique request ID so that
117101// if you must retry your request, the server will know to ignore the
117102// request if it has already been completed.
117103//
117104// For example, consider a situation where you make an initial request
117105// and the request times out. If you make the request again with the
117106// same request ID, the server can check if original operation with the
117107// same request ID was received, and if so, will ignore the second
117108// request. This prevents clients from accidentally creating duplicate
117109// commitments.
117110//
117111// The request ID must be a valid UUID with the exception that zero UUID
117112// is not supported (00000000-0000-0000-0000-000000000000).
117113func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
117114	c.urlParams_.Set("requestId", requestId)
117115	return c
117116}
117117
117118// Fields allows partial responses to be retrieved. See
117119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117120// for more information.
117121func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
117122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117123	return c
117124}
117125
117126// Context sets the context to be used in this call's Do method. Any
117127// pending HTTP request will be aborted if the provided context is
117128// canceled.
117129func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
117130	c.ctx_ = ctx
117131	return c
117132}
117133
117134// Header returns an http.Header that can be modified by the caller to
117135// add HTTP headers to the request.
117136func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
117137	if c.header_ == nil {
117138		c.header_ = make(http.Header)
117139	}
117140	return c.header_
117141}
117142
117143func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
117144	reqHeaders := make(http.Header)
117145	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
117146	for k, v := range c.header_ {
117147		reqHeaders[k] = v
117148	}
117149	reqHeaders.Set("User-Agent", c.s.userAgent())
117150	var body io.Reader = nil
117151	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
117152	if err != nil {
117153		return nil, err
117154	}
117155	reqHeaders.Set("Content-Type", "application/json")
117156	c.urlParams_.Set("alt", alt)
117157	c.urlParams_.Set("prettyPrint", "false")
117158	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
117159	urls += "?" + c.urlParams_.Encode()
117160	req, err := http.NewRequest("POST", urls, body)
117161	if err != nil {
117162		return nil, err
117163	}
117164	req.Header = reqHeaders
117165	googleapi.Expand(req.URL, map[string]string{
117166		"project": c.project,
117167	})
117168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117169}
117170
117171// Do executes the "compute.projects.disableXpnResource" call.
117172// Exactly one of *Operation or error will be non-nil. Any non-2xx
117173// status code is an error. Response headers are in either
117174// *Operation.ServerResponse.Header or (if a response was returned at
117175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117176// to check whether the returned error was because
117177// http.StatusNotModified was returned.
117178func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117179	gensupport.SetOptions(c.urlParams_, opts...)
117180	res, err := c.doRequest("json")
117181	if res != nil && res.StatusCode == http.StatusNotModified {
117182		if res.Body != nil {
117183			res.Body.Close()
117184		}
117185		return nil, &googleapi.Error{
117186			Code:   res.StatusCode,
117187			Header: res.Header,
117188		}
117189	}
117190	if err != nil {
117191		return nil, err
117192	}
117193	defer googleapi.CloseBody(res)
117194	if err := googleapi.CheckResponse(res); err != nil {
117195		return nil, err
117196	}
117197	ret := &Operation{
117198		ServerResponse: googleapi.ServerResponse{
117199			Header:         res.Header,
117200			HTTPStatusCode: res.StatusCode,
117201		},
117202	}
117203	target := &ret
117204	if err := gensupport.DecodeResponse(target, res); err != nil {
117205		return nil, err
117206	}
117207	return ret, nil
117208	// {
117209	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
117210	//   "httpMethod": "POST",
117211	//   "id": "compute.projects.disableXpnResource",
117212	//   "parameterOrder": [
117213	//     "project"
117214	//   ],
117215	//   "parameters": {
117216	//     "project": {
117217	//       "description": "Project ID for this request.",
117218	//       "location": "path",
117219	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117220	//       "required": true,
117221	//       "type": "string"
117222	//     },
117223	//     "requestId": {
117224	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117225	//       "location": "query",
117226	//       "type": "string"
117227	//     }
117228	//   },
117229	//   "path": "{project}/disableXpnResource",
117230	//   "request": {
117231	//     "$ref": "ProjectsDisableXpnResourceRequest"
117232	//   },
117233	//   "response": {
117234	//     "$ref": "Operation"
117235	//   },
117236	//   "scopes": [
117237	//     "https://www.googleapis.com/auth/cloud-platform",
117238	//     "https://www.googleapis.com/auth/compute"
117239	//   ]
117240	// }
117241
117242}
117243
117244// method id "compute.projects.enableXpnHost":
117245
117246type ProjectsEnableXpnHostCall struct {
117247	s          *Service
117248	project    string
117249	urlParams_ gensupport.URLParams
117250	ctx_       context.Context
117251	header_    http.Header
117252}
117253
117254// EnableXpnHost: Enable this project as a shared VPC host project.
117255func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
117256	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117257	c.project = project
117258	return c
117259}
117260
117261// RequestId sets the optional parameter "requestId": An optional
117262// request ID to identify requests. Specify a unique request ID so that
117263// if you must retry your request, the server will know to ignore the
117264// request if it has already been completed.
117265//
117266// For example, consider a situation where you make an initial request
117267// and the request times out. If you make the request again with the
117268// same request ID, the server can check if original operation with the
117269// same request ID was received, and if so, will ignore the second
117270// request. This prevents clients from accidentally creating duplicate
117271// commitments.
117272//
117273// The request ID must be a valid UUID with the exception that zero UUID
117274// is not supported (00000000-0000-0000-0000-000000000000).
117275func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
117276	c.urlParams_.Set("requestId", requestId)
117277	return c
117278}
117279
117280// Fields allows partial responses to be retrieved. See
117281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117282// for more information.
117283func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
117284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117285	return c
117286}
117287
117288// Context sets the context to be used in this call's Do method. Any
117289// pending HTTP request will be aborted if the provided context is
117290// canceled.
117291func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
117292	c.ctx_ = ctx
117293	return c
117294}
117295
117296// Header returns an http.Header that can be modified by the caller to
117297// add HTTP headers to the request.
117298func (c *ProjectsEnableXpnHostCall) Header() http.Header {
117299	if c.header_ == nil {
117300		c.header_ = make(http.Header)
117301	}
117302	return c.header_
117303}
117304
117305func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
117306	reqHeaders := make(http.Header)
117307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
117308	for k, v := range c.header_ {
117309		reqHeaders[k] = v
117310	}
117311	reqHeaders.Set("User-Agent", c.s.userAgent())
117312	var body io.Reader = nil
117313	c.urlParams_.Set("alt", alt)
117314	c.urlParams_.Set("prettyPrint", "false")
117315	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
117316	urls += "?" + c.urlParams_.Encode()
117317	req, err := http.NewRequest("POST", urls, body)
117318	if err != nil {
117319		return nil, err
117320	}
117321	req.Header = reqHeaders
117322	googleapi.Expand(req.URL, map[string]string{
117323		"project": c.project,
117324	})
117325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117326}
117327
117328// Do executes the "compute.projects.enableXpnHost" call.
117329// Exactly one of *Operation or error will be non-nil. Any non-2xx
117330// status code is an error. Response headers are in either
117331// *Operation.ServerResponse.Header or (if a response was returned at
117332// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117333// to check whether the returned error was because
117334// http.StatusNotModified was returned.
117335func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117336	gensupport.SetOptions(c.urlParams_, opts...)
117337	res, err := c.doRequest("json")
117338	if res != nil && res.StatusCode == http.StatusNotModified {
117339		if res.Body != nil {
117340			res.Body.Close()
117341		}
117342		return nil, &googleapi.Error{
117343			Code:   res.StatusCode,
117344			Header: res.Header,
117345		}
117346	}
117347	if err != nil {
117348		return nil, err
117349	}
117350	defer googleapi.CloseBody(res)
117351	if err := googleapi.CheckResponse(res); err != nil {
117352		return nil, err
117353	}
117354	ret := &Operation{
117355		ServerResponse: googleapi.ServerResponse{
117356			Header:         res.Header,
117357			HTTPStatusCode: res.StatusCode,
117358		},
117359	}
117360	target := &ret
117361	if err := gensupport.DecodeResponse(target, res); err != nil {
117362		return nil, err
117363	}
117364	return ret, nil
117365	// {
117366	//   "description": "Enable this project as a shared VPC host project.",
117367	//   "httpMethod": "POST",
117368	//   "id": "compute.projects.enableXpnHost",
117369	//   "parameterOrder": [
117370	//     "project"
117371	//   ],
117372	//   "parameters": {
117373	//     "project": {
117374	//       "description": "Project ID for this request.",
117375	//       "location": "path",
117376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117377	//       "required": true,
117378	//       "type": "string"
117379	//     },
117380	//     "requestId": {
117381	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117382	//       "location": "query",
117383	//       "type": "string"
117384	//     }
117385	//   },
117386	//   "path": "{project}/enableXpnHost",
117387	//   "response": {
117388	//     "$ref": "Operation"
117389	//   },
117390	//   "scopes": [
117391	//     "https://www.googleapis.com/auth/cloud-platform",
117392	//     "https://www.googleapis.com/auth/compute"
117393	//   ]
117394	// }
117395
117396}
117397
117398// method id "compute.projects.enableXpnResource":
117399
117400type ProjectsEnableXpnResourceCall struct {
117401	s                                *Service
117402	project                          string
117403	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
117404	urlParams_                       gensupport.URLParams
117405	ctx_                             context.Context
117406	header_                          http.Header
117407}
117408
117409// EnableXpnResource: Enable service resource (a.k.a service project)
117410// for a host project, so that subnets in the host project can be used
117411// by instances in the service project.
117412func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
117413	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117414	c.project = project
117415	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
117416	return c
117417}
117418
117419// RequestId sets the optional parameter "requestId": An optional
117420// request ID to identify requests. Specify a unique request ID so that
117421// if you must retry your request, the server will know to ignore the
117422// request if it has already been completed.
117423//
117424// For example, consider a situation where you make an initial request
117425// and the request times out. If you make the request again with the
117426// same request ID, the server can check if original operation with the
117427// same request ID was received, and if so, will ignore the second
117428// request. This prevents clients from accidentally creating duplicate
117429// commitments.
117430//
117431// The request ID must be a valid UUID with the exception that zero UUID
117432// is not supported (00000000-0000-0000-0000-000000000000).
117433func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
117434	c.urlParams_.Set("requestId", requestId)
117435	return c
117436}
117437
117438// Fields allows partial responses to be retrieved. See
117439// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117440// for more information.
117441func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
117442	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117443	return c
117444}
117445
117446// Context sets the context to be used in this call's Do method. Any
117447// pending HTTP request will be aborted if the provided context is
117448// canceled.
117449func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
117450	c.ctx_ = ctx
117451	return c
117452}
117453
117454// Header returns an http.Header that can be modified by the caller to
117455// add HTTP headers to the request.
117456func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
117457	if c.header_ == nil {
117458		c.header_ = make(http.Header)
117459	}
117460	return c.header_
117461}
117462
117463func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
117464	reqHeaders := make(http.Header)
117465	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
117466	for k, v := range c.header_ {
117467		reqHeaders[k] = v
117468	}
117469	reqHeaders.Set("User-Agent", c.s.userAgent())
117470	var body io.Reader = nil
117471	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
117472	if err != nil {
117473		return nil, err
117474	}
117475	reqHeaders.Set("Content-Type", "application/json")
117476	c.urlParams_.Set("alt", alt)
117477	c.urlParams_.Set("prettyPrint", "false")
117478	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
117479	urls += "?" + c.urlParams_.Encode()
117480	req, err := http.NewRequest("POST", urls, body)
117481	if err != nil {
117482		return nil, err
117483	}
117484	req.Header = reqHeaders
117485	googleapi.Expand(req.URL, map[string]string{
117486		"project": c.project,
117487	})
117488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117489}
117490
117491// Do executes the "compute.projects.enableXpnResource" call.
117492// Exactly one of *Operation or error will be non-nil. Any non-2xx
117493// status code is an error. Response headers are in either
117494// *Operation.ServerResponse.Header or (if a response was returned at
117495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117496// to check whether the returned error was because
117497// http.StatusNotModified was returned.
117498func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117499	gensupport.SetOptions(c.urlParams_, opts...)
117500	res, err := c.doRequest("json")
117501	if res != nil && res.StatusCode == http.StatusNotModified {
117502		if res.Body != nil {
117503			res.Body.Close()
117504		}
117505		return nil, &googleapi.Error{
117506			Code:   res.StatusCode,
117507			Header: res.Header,
117508		}
117509	}
117510	if err != nil {
117511		return nil, err
117512	}
117513	defer googleapi.CloseBody(res)
117514	if err := googleapi.CheckResponse(res); err != nil {
117515		return nil, err
117516	}
117517	ret := &Operation{
117518		ServerResponse: googleapi.ServerResponse{
117519			Header:         res.Header,
117520			HTTPStatusCode: res.StatusCode,
117521		},
117522	}
117523	target := &ret
117524	if err := gensupport.DecodeResponse(target, res); err != nil {
117525		return nil, err
117526	}
117527	return ret, nil
117528	// {
117529	//   "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.",
117530	//   "httpMethod": "POST",
117531	//   "id": "compute.projects.enableXpnResource",
117532	//   "parameterOrder": [
117533	//     "project"
117534	//   ],
117535	//   "parameters": {
117536	//     "project": {
117537	//       "description": "Project ID for this request.",
117538	//       "location": "path",
117539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117540	//       "required": true,
117541	//       "type": "string"
117542	//     },
117543	//     "requestId": {
117544	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117545	//       "location": "query",
117546	//       "type": "string"
117547	//     }
117548	//   },
117549	//   "path": "{project}/enableXpnResource",
117550	//   "request": {
117551	//     "$ref": "ProjectsEnableXpnResourceRequest"
117552	//   },
117553	//   "response": {
117554	//     "$ref": "Operation"
117555	//   },
117556	//   "scopes": [
117557	//     "https://www.googleapis.com/auth/cloud-platform",
117558	//     "https://www.googleapis.com/auth/compute"
117559	//   ]
117560	// }
117561
117562}
117563
117564// method id "compute.projects.get":
117565
117566type ProjectsGetCall struct {
117567	s            *Service
117568	project      string
117569	urlParams_   gensupport.URLParams
117570	ifNoneMatch_ string
117571	ctx_         context.Context
117572	header_      http.Header
117573}
117574
117575// Get: Returns the specified Project resource.
117576// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
117577func (r *ProjectsService) Get(project string) *ProjectsGetCall {
117578	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117579	c.project = project
117580	return c
117581}
117582
117583// Fields allows partial responses to be retrieved. See
117584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117585// for more information.
117586func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
117587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117588	return c
117589}
117590
117591// IfNoneMatch sets the optional parameter which makes the operation
117592// fail if the object's ETag matches the given value. This is useful for
117593// getting updates only after the object has changed since the last
117594// request. Use googleapi.IsNotModified to check whether the response
117595// error from Do is the result of In-None-Match.
117596func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
117597	c.ifNoneMatch_ = entityTag
117598	return c
117599}
117600
117601// Context sets the context to be used in this call's Do method. Any
117602// pending HTTP request will be aborted if the provided context is
117603// canceled.
117604func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
117605	c.ctx_ = ctx
117606	return c
117607}
117608
117609// Header returns an http.Header that can be modified by the caller to
117610// add HTTP headers to the request.
117611func (c *ProjectsGetCall) Header() http.Header {
117612	if c.header_ == nil {
117613		c.header_ = make(http.Header)
117614	}
117615	return c.header_
117616}
117617
117618func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
117619	reqHeaders := make(http.Header)
117620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
117621	for k, v := range c.header_ {
117622		reqHeaders[k] = v
117623	}
117624	reqHeaders.Set("User-Agent", c.s.userAgent())
117625	if c.ifNoneMatch_ != "" {
117626		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117627	}
117628	var body io.Reader = nil
117629	c.urlParams_.Set("alt", alt)
117630	c.urlParams_.Set("prettyPrint", "false")
117631	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
117632	urls += "?" + c.urlParams_.Encode()
117633	req, err := http.NewRequest("GET", urls, body)
117634	if err != nil {
117635		return nil, err
117636	}
117637	req.Header = reqHeaders
117638	googleapi.Expand(req.URL, map[string]string{
117639		"project": c.project,
117640	})
117641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117642}
117643
117644// Do executes the "compute.projects.get" call.
117645// Exactly one of *Project or error will be non-nil. Any non-2xx status
117646// code is an error. Response headers are in either
117647// *Project.ServerResponse.Header or (if a response was returned at all)
117648// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
117649// check whether the returned error was because http.StatusNotModified
117650// was returned.
117651func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
117652	gensupport.SetOptions(c.urlParams_, opts...)
117653	res, err := c.doRequest("json")
117654	if res != nil && res.StatusCode == http.StatusNotModified {
117655		if res.Body != nil {
117656			res.Body.Close()
117657		}
117658		return nil, &googleapi.Error{
117659			Code:   res.StatusCode,
117660			Header: res.Header,
117661		}
117662	}
117663	if err != nil {
117664		return nil, err
117665	}
117666	defer googleapi.CloseBody(res)
117667	if err := googleapi.CheckResponse(res); err != nil {
117668		return nil, err
117669	}
117670	ret := &Project{
117671		ServerResponse: googleapi.ServerResponse{
117672			Header:         res.Header,
117673			HTTPStatusCode: res.StatusCode,
117674		},
117675	}
117676	target := &ret
117677	if err := gensupport.DecodeResponse(target, res); err != nil {
117678		return nil, err
117679	}
117680	return ret, nil
117681	// {
117682	//   "description": "Returns the specified Project resource.",
117683	//   "httpMethod": "GET",
117684	//   "id": "compute.projects.get",
117685	//   "parameterOrder": [
117686	//     "project"
117687	//   ],
117688	//   "parameters": {
117689	//     "project": {
117690	//       "description": "Project ID for this request.",
117691	//       "location": "path",
117692	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117693	//       "required": true,
117694	//       "type": "string"
117695	//     }
117696	//   },
117697	//   "path": "{project}",
117698	//   "response": {
117699	//     "$ref": "Project"
117700	//   },
117701	//   "scopes": [
117702	//     "https://www.googleapis.com/auth/cloud-platform",
117703	//     "https://www.googleapis.com/auth/compute",
117704	//     "https://www.googleapis.com/auth/compute.readonly"
117705	//   ]
117706	// }
117707
117708}
117709
117710// method id "compute.projects.getXpnHost":
117711
117712type ProjectsGetXpnHostCall struct {
117713	s            *Service
117714	project      string
117715	urlParams_   gensupport.URLParams
117716	ifNoneMatch_ string
117717	ctx_         context.Context
117718	header_      http.Header
117719}
117720
117721// GetXpnHost: Gets the shared VPC host project that this project links
117722// to. May be empty if no link exists.
117723func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
117724	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117725	c.project = project
117726	return c
117727}
117728
117729// Fields allows partial responses to be retrieved. See
117730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117731// for more information.
117732func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
117733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117734	return c
117735}
117736
117737// IfNoneMatch sets the optional parameter which makes the operation
117738// fail if the object's ETag matches the given value. This is useful for
117739// getting updates only after the object has changed since the last
117740// request. Use googleapi.IsNotModified to check whether the response
117741// error from Do is the result of In-None-Match.
117742func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
117743	c.ifNoneMatch_ = entityTag
117744	return c
117745}
117746
117747// Context sets the context to be used in this call's Do method. Any
117748// pending HTTP request will be aborted if the provided context is
117749// canceled.
117750func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
117751	c.ctx_ = ctx
117752	return c
117753}
117754
117755// Header returns an http.Header that can be modified by the caller to
117756// add HTTP headers to the request.
117757func (c *ProjectsGetXpnHostCall) Header() http.Header {
117758	if c.header_ == nil {
117759		c.header_ = make(http.Header)
117760	}
117761	return c.header_
117762}
117763
117764func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
117765	reqHeaders := make(http.Header)
117766	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
117767	for k, v := range c.header_ {
117768		reqHeaders[k] = v
117769	}
117770	reqHeaders.Set("User-Agent", c.s.userAgent())
117771	if c.ifNoneMatch_ != "" {
117772		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117773	}
117774	var body io.Reader = nil
117775	c.urlParams_.Set("alt", alt)
117776	c.urlParams_.Set("prettyPrint", "false")
117777	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
117778	urls += "?" + c.urlParams_.Encode()
117779	req, err := http.NewRequest("GET", urls, body)
117780	if err != nil {
117781		return nil, err
117782	}
117783	req.Header = reqHeaders
117784	googleapi.Expand(req.URL, map[string]string{
117785		"project": c.project,
117786	})
117787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117788}
117789
117790// Do executes the "compute.projects.getXpnHost" call.
117791// Exactly one of *Project or error will be non-nil. Any non-2xx status
117792// code is an error. Response headers are in either
117793// *Project.ServerResponse.Header or (if a response was returned at all)
117794// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
117795// check whether the returned error was because http.StatusNotModified
117796// was returned.
117797func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
117798	gensupport.SetOptions(c.urlParams_, opts...)
117799	res, err := c.doRequest("json")
117800	if res != nil && res.StatusCode == http.StatusNotModified {
117801		if res.Body != nil {
117802			res.Body.Close()
117803		}
117804		return nil, &googleapi.Error{
117805			Code:   res.StatusCode,
117806			Header: res.Header,
117807		}
117808	}
117809	if err != nil {
117810		return nil, err
117811	}
117812	defer googleapi.CloseBody(res)
117813	if err := googleapi.CheckResponse(res); err != nil {
117814		return nil, err
117815	}
117816	ret := &Project{
117817		ServerResponse: googleapi.ServerResponse{
117818			Header:         res.Header,
117819			HTTPStatusCode: res.StatusCode,
117820		},
117821	}
117822	target := &ret
117823	if err := gensupport.DecodeResponse(target, res); err != nil {
117824		return nil, err
117825	}
117826	return ret, nil
117827	// {
117828	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
117829	//   "httpMethod": "GET",
117830	//   "id": "compute.projects.getXpnHost",
117831	//   "parameterOrder": [
117832	//     "project"
117833	//   ],
117834	//   "parameters": {
117835	//     "project": {
117836	//       "description": "Project ID for this request.",
117837	//       "location": "path",
117838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117839	//       "required": true,
117840	//       "type": "string"
117841	//     }
117842	//   },
117843	//   "path": "{project}/getXpnHost",
117844	//   "response": {
117845	//     "$ref": "Project"
117846	//   },
117847	//   "scopes": [
117848	//     "https://www.googleapis.com/auth/cloud-platform",
117849	//     "https://www.googleapis.com/auth/compute"
117850	//   ]
117851	// }
117852
117853}
117854
117855// method id "compute.projects.getXpnResources":
117856
117857type ProjectsGetXpnResourcesCall struct {
117858	s            *Service
117859	project      string
117860	urlParams_   gensupport.URLParams
117861	ifNoneMatch_ string
117862	ctx_         context.Context
117863	header_      http.Header
117864}
117865
117866// GetXpnResources: Gets service resources (a.k.a service project)
117867// associated with this host project.
117868func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
117869	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117870	c.project = project
117871	return c
117872}
117873
117874// Filter sets the optional parameter "filter": A filter expression that
117875// filters resources listed in the response. The expression must specify
117876// the field name, a comparison operator, and the value that you want to
117877// use for filtering. The value must be a string, a number, or a
117878// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117879// `<`.
117880//
117881// For example, if you are filtering Compute Engine instances, you can
117882// exclude instances named `example-instance` by specifying `name !=
117883// example-instance`.
117884//
117885// You can also filter nested fields. For example, you could specify
117886// `scheduling.automaticRestart = false` to include instances only if
117887// they are not scheduled for automatic restarts. You can use filtering
117888// on nested fields to filter based on resource labels.
117889//
117890// To filter on multiple expressions, provide each separate expression
117891// within parentheses. For example: ``` (scheduling.automaticRestart =
117892// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
117893// is an `AND` expression. However, you can include `AND` and `OR`
117894// expressions explicitly. For example: ``` (cpuPlatform = "Intel
117895// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
117896// (scheduling.automaticRestart = true) ```
117897func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
117898	c.urlParams_.Set("filter", filter)
117899	return c
117900}
117901
117902// MaxResults sets the optional parameter "maxResults": The maximum
117903// number of results per page that should be returned. If the number of
117904// available results is larger than `maxResults`, Compute Engine returns
117905// a `nextPageToken` that can be used to get the next page of results in
117906// subsequent list requests. Acceptable values are `0` to `500`,
117907// inclusive. (Default: `500`)
117908func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
117909	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117910	return c
117911}
117912
117913// OrderBy sets the optional parameter "orderBy": Sorts list results by
117914// a certain order. By default, results are returned in alphanumerical
117915// order based on the resource name.
117916//
117917// You can also sort results in descending order based on the creation
117918// timestamp using `orderBy="creationTimestamp desc". This sorts
117919// results based on the `creationTimestamp` field in reverse
117920// chronological order (newest result first). Use this to sort resources
117921// like operations so that the newest operation is returned
117922// first.
117923//
117924// Currently, only sorting by `name` or `creationTimestamp desc` is
117925// supported.
117926func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
117927	c.urlParams_.Set("orderBy", orderBy)
117928	return c
117929}
117930
117931// PageToken sets the optional parameter "pageToken": Specifies a page
117932// token to use. Set `pageToken` to the `nextPageToken` returned by a
117933// previous list request to get the next page of results.
117934func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
117935	c.urlParams_.Set("pageToken", pageToken)
117936	return c
117937}
117938
117939// Fields allows partial responses to be retrieved. See
117940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117941// for more information.
117942func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
117943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117944	return c
117945}
117946
117947// IfNoneMatch sets the optional parameter which makes the operation
117948// fail if the object's ETag matches the given value. This is useful for
117949// getting updates only after the object has changed since the last
117950// request. Use googleapi.IsNotModified to check whether the response
117951// error from Do is the result of In-None-Match.
117952func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
117953	c.ifNoneMatch_ = entityTag
117954	return c
117955}
117956
117957// Context sets the context to be used in this call's Do method. Any
117958// pending HTTP request will be aborted if the provided context is
117959// canceled.
117960func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
117961	c.ctx_ = ctx
117962	return c
117963}
117964
117965// Header returns an http.Header that can be modified by the caller to
117966// add HTTP headers to the request.
117967func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
117968	if c.header_ == nil {
117969		c.header_ = make(http.Header)
117970	}
117971	return c.header_
117972}
117973
117974func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
117975	reqHeaders := make(http.Header)
117976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
117977	for k, v := range c.header_ {
117978		reqHeaders[k] = v
117979	}
117980	reqHeaders.Set("User-Agent", c.s.userAgent())
117981	if c.ifNoneMatch_ != "" {
117982		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117983	}
117984	var body io.Reader = nil
117985	c.urlParams_.Set("alt", alt)
117986	c.urlParams_.Set("prettyPrint", "false")
117987	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
117988	urls += "?" + c.urlParams_.Encode()
117989	req, err := http.NewRequest("GET", urls, body)
117990	if err != nil {
117991		return nil, err
117992	}
117993	req.Header = reqHeaders
117994	googleapi.Expand(req.URL, map[string]string{
117995		"project": c.project,
117996	})
117997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117998}
117999
118000// Do executes the "compute.projects.getXpnResources" call.
118001// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
118002// non-2xx status code is an error. Response headers are in either
118003// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
118004// returned at all) in error.(*googleapi.Error).Header. Use
118005// googleapi.IsNotModified to check whether the returned error was
118006// because http.StatusNotModified was returned.
118007func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
118008	gensupport.SetOptions(c.urlParams_, opts...)
118009	res, err := c.doRequest("json")
118010	if res != nil && res.StatusCode == http.StatusNotModified {
118011		if res.Body != nil {
118012			res.Body.Close()
118013		}
118014		return nil, &googleapi.Error{
118015			Code:   res.StatusCode,
118016			Header: res.Header,
118017		}
118018	}
118019	if err != nil {
118020		return nil, err
118021	}
118022	defer googleapi.CloseBody(res)
118023	if err := googleapi.CheckResponse(res); err != nil {
118024		return nil, err
118025	}
118026	ret := &ProjectsGetXpnResources{
118027		ServerResponse: googleapi.ServerResponse{
118028			Header:         res.Header,
118029			HTTPStatusCode: res.StatusCode,
118030		},
118031	}
118032	target := &ret
118033	if err := gensupport.DecodeResponse(target, res); err != nil {
118034		return nil, err
118035	}
118036	return ret, nil
118037	// {
118038	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
118039	//   "httpMethod": "GET",
118040	//   "id": "compute.projects.getXpnResources",
118041	//   "parameterOrder": [
118042	//     "project"
118043	//   ],
118044	//   "parameters": {
118045	//     "filter": {
118046	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
118047	//       "location": "query",
118048	//       "type": "string"
118049	//     },
118050	//     "maxResults": {
118051	//       "default": "500",
118052	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118053	//       "format": "uint32",
118054	//       "location": "query",
118055	//       "minimum": "0",
118056	//       "type": "integer"
118057	//     },
118058	//     "orderBy": {
118059	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
118060	//       "location": "query",
118061	//       "type": "string"
118062	//     },
118063	//     "pageToken": {
118064	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118065	//       "location": "query",
118066	//       "type": "string"
118067	//     },
118068	//     "project": {
118069	//       "description": "Project ID for this request.",
118070	//       "location": "path",
118071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118072	//       "required": true,
118073	//       "type": "string"
118074	//     }
118075	//   },
118076	//   "path": "{project}/getXpnResources",
118077	//   "response": {
118078	//     "$ref": "ProjectsGetXpnResources"
118079	//   },
118080	//   "scopes": [
118081	//     "https://www.googleapis.com/auth/cloud-platform",
118082	//     "https://www.googleapis.com/auth/compute"
118083	//   ]
118084	// }
118085
118086}
118087
118088// Pages invokes f for each page of results.
118089// A non-nil error returned from f will halt the iteration.
118090// The provided context supersedes any context provided to the Context method.
118091func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
118092	c.ctx_ = ctx
118093	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118094	for {
118095		x, err := c.Do()
118096		if err != nil {
118097			return err
118098		}
118099		if err := f(x); err != nil {
118100			return err
118101		}
118102		if x.NextPageToken == "" {
118103			return nil
118104		}
118105		c.PageToken(x.NextPageToken)
118106	}
118107}
118108
118109// method id "compute.projects.listXpnHosts":
118110
118111type ProjectsListXpnHostsCall struct {
118112	s                           *Service
118113	project                     string
118114	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
118115	urlParams_                  gensupport.URLParams
118116	ctx_                        context.Context
118117	header_                     http.Header
118118}
118119
118120// ListXpnHosts: Lists all shared VPC host projects visible to the user
118121// in an organization.
118122func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
118123	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118124	c.project = project
118125	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
118126	return c
118127}
118128
118129// Filter sets the optional parameter "filter": A filter expression that
118130// filters resources listed in the response. The expression must specify
118131// the field name, a comparison operator, and the value that you want to
118132// use for filtering. The value must be a string, a number, or a
118133// boolean. The comparison operator must be either `=`, `!=`, `>`, or
118134// `<`.
118135//
118136// For example, if you are filtering Compute Engine instances, you can
118137// exclude instances named `example-instance` by specifying `name !=
118138// example-instance`.
118139//
118140// You can also filter nested fields. For example, you could specify
118141// `scheduling.automaticRestart = false` to include instances only if
118142// they are not scheduled for automatic restarts. You can use filtering
118143// on nested fields to filter based on resource labels.
118144//
118145// To filter on multiple expressions, provide each separate expression
118146// within parentheses. For example: ``` (scheduling.automaticRestart =
118147// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
118148// is an `AND` expression. However, you can include `AND` and `OR`
118149// expressions explicitly. For example: ``` (cpuPlatform = "Intel
118150// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
118151// (scheduling.automaticRestart = true) ```
118152func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
118153	c.urlParams_.Set("filter", filter)
118154	return c
118155}
118156
118157// MaxResults sets the optional parameter "maxResults": The maximum
118158// number of results per page that should be returned. If the number of
118159// available results is larger than `maxResults`, Compute Engine returns
118160// a `nextPageToken` that can be used to get the next page of results in
118161// subsequent list requests. Acceptable values are `0` to `500`,
118162// inclusive. (Default: `500`)
118163func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
118164	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118165	return c
118166}
118167
118168// OrderBy sets the optional parameter "orderBy": Sorts list results by
118169// a certain order. By default, results are returned in alphanumerical
118170// order based on the resource name.
118171//
118172// You can also sort results in descending order based on the creation
118173// timestamp using `orderBy="creationTimestamp desc". This sorts
118174// results based on the `creationTimestamp` field in reverse
118175// chronological order (newest result first). Use this to sort resources
118176// like operations so that the newest operation is returned
118177// first.
118178//
118179// Currently, only sorting by `name` or `creationTimestamp desc` is
118180// supported.
118181func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
118182	c.urlParams_.Set("orderBy", orderBy)
118183	return c
118184}
118185
118186// PageToken sets the optional parameter "pageToken": Specifies a page
118187// token to use. Set `pageToken` to the `nextPageToken` returned by a
118188// previous list request to get the next page of results.
118189func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
118190	c.urlParams_.Set("pageToken", pageToken)
118191	return c
118192}
118193
118194// Fields allows partial responses to be retrieved. See
118195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118196// for more information.
118197func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
118198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118199	return c
118200}
118201
118202// Context sets the context to be used in this call's Do method. Any
118203// pending HTTP request will be aborted if the provided context is
118204// canceled.
118205func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
118206	c.ctx_ = ctx
118207	return c
118208}
118209
118210// Header returns an http.Header that can be modified by the caller to
118211// add HTTP headers to the request.
118212func (c *ProjectsListXpnHostsCall) Header() http.Header {
118213	if c.header_ == nil {
118214		c.header_ = make(http.Header)
118215	}
118216	return c.header_
118217}
118218
118219func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
118220	reqHeaders := make(http.Header)
118221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
118222	for k, v := range c.header_ {
118223		reqHeaders[k] = v
118224	}
118225	reqHeaders.Set("User-Agent", c.s.userAgent())
118226	var body io.Reader = nil
118227	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
118228	if err != nil {
118229		return nil, err
118230	}
118231	reqHeaders.Set("Content-Type", "application/json")
118232	c.urlParams_.Set("alt", alt)
118233	c.urlParams_.Set("prettyPrint", "false")
118234	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
118235	urls += "?" + c.urlParams_.Encode()
118236	req, err := http.NewRequest("POST", urls, body)
118237	if err != nil {
118238		return nil, err
118239	}
118240	req.Header = reqHeaders
118241	googleapi.Expand(req.URL, map[string]string{
118242		"project": c.project,
118243	})
118244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118245}
118246
118247// Do executes the "compute.projects.listXpnHosts" call.
118248// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
118249// status code is an error. Response headers are in either
118250// *XpnHostList.ServerResponse.Header or (if a response was returned at
118251// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118252// to check whether the returned error was because
118253// http.StatusNotModified was returned.
118254func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
118255	gensupport.SetOptions(c.urlParams_, opts...)
118256	res, err := c.doRequest("json")
118257	if res != nil && res.StatusCode == http.StatusNotModified {
118258		if res.Body != nil {
118259			res.Body.Close()
118260		}
118261		return nil, &googleapi.Error{
118262			Code:   res.StatusCode,
118263			Header: res.Header,
118264		}
118265	}
118266	if err != nil {
118267		return nil, err
118268	}
118269	defer googleapi.CloseBody(res)
118270	if err := googleapi.CheckResponse(res); err != nil {
118271		return nil, err
118272	}
118273	ret := &XpnHostList{
118274		ServerResponse: googleapi.ServerResponse{
118275			Header:         res.Header,
118276			HTTPStatusCode: res.StatusCode,
118277		},
118278	}
118279	target := &ret
118280	if err := gensupport.DecodeResponse(target, res); err != nil {
118281		return nil, err
118282	}
118283	return ret, nil
118284	// {
118285	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
118286	//   "httpMethod": "POST",
118287	//   "id": "compute.projects.listXpnHosts",
118288	//   "parameterOrder": [
118289	//     "project"
118290	//   ],
118291	//   "parameters": {
118292	//     "filter": {
118293	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
118294	//       "location": "query",
118295	//       "type": "string"
118296	//     },
118297	//     "maxResults": {
118298	//       "default": "500",
118299	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118300	//       "format": "uint32",
118301	//       "location": "query",
118302	//       "minimum": "0",
118303	//       "type": "integer"
118304	//     },
118305	//     "orderBy": {
118306	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
118307	//       "location": "query",
118308	//       "type": "string"
118309	//     },
118310	//     "pageToken": {
118311	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118312	//       "location": "query",
118313	//       "type": "string"
118314	//     },
118315	//     "project": {
118316	//       "description": "Project ID for this request.",
118317	//       "location": "path",
118318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118319	//       "required": true,
118320	//       "type": "string"
118321	//     }
118322	//   },
118323	//   "path": "{project}/listXpnHosts",
118324	//   "request": {
118325	//     "$ref": "ProjectsListXpnHostsRequest"
118326	//   },
118327	//   "response": {
118328	//     "$ref": "XpnHostList"
118329	//   },
118330	//   "scopes": [
118331	//     "https://www.googleapis.com/auth/cloud-platform",
118332	//     "https://www.googleapis.com/auth/compute"
118333	//   ]
118334	// }
118335
118336}
118337
118338// Pages invokes f for each page of results.
118339// A non-nil error returned from f will halt the iteration.
118340// The provided context supersedes any context provided to the Context method.
118341func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
118342	c.ctx_ = ctx
118343	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118344	for {
118345		x, err := c.Do()
118346		if err != nil {
118347			return err
118348		}
118349		if err := f(x); err != nil {
118350			return err
118351		}
118352		if x.NextPageToken == "" {
118353			return nil
118354		}
118355		c.PageToken(x.NextPageToken)
118356	}
118357}
118358
118359// method id "compute.projects.moveDisk":
118360
118361type ProjectsMoveDiskCall struct {
118362	s               *Service
118363	project         string
118364	diskmoverequest *DiskMoveRequest
118365	urlParams_      gensupport.URLParams
118366	ctx_            context.Context
118367	header_         http.Header
118368}
118369
118370// MoveDisk: Moves a persistent disk from one zone to another.
118371func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
118372	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118373	c.project = project
118374	c.diskmoverequest = diskmoverequest
118375	return c
118376}
118377
118378// RequestId sets the optional parameter "requestId": An optional
118379// request ID to identify requests. Specify a unique request ID so that
118380// if you must retry your request, the server will know to ignore the
118381// request if it has already been completed.
118382//
118383// For example, consider a situation where you make an initial request
118384// and the request times out. If you make the request again with the
118385// same request ID, the server can check if original operation with the
118386// same request ID was received, and if so, will ignore the second
118387// request. This prevents clients from accidentally creating duplicate
118388// commitments.
118389//
118390// The request ID must be a valid UUID with the exception that zero UUID
118391// is not supported (00000000-0000-0000-0000-000000000000).
118392func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
118393	c.urlParams_.Set("requestId", requestId)
118394	return c
118395}
118396
118397// Fields allows partial responses to be retrieved. See
118398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118399// for more information.
118400func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
118401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118402	return c
118403}
118404
118405// Context sets the context to be used in this call's Do method. Any
118406// pending HTTP request will be aborted if the provided context is
118407// canceled.
118408func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
118409	c.ctx_ = ctx
118410	return c
118411}
118412
118413// Header returns an http.Header that can be modified by the caller to
118414// add HTTP headers to the request.
118415func (c *ProjectsMoveDiskCall) Header() http.Header {
118416	if c.header_ == nil {
118417		c.header_ = make(http.Header)
118418	}
118419	return c.header_
118420}
118421
118422func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
118423	reqHeaders := make(http.Header)
118424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
118425	for k, v := range c.header_ {
118426		reqHeaders[k] = v
118427	}
118428	reqHeaders.Set("User-Agent", c.s.userAgent())
118429	var body io.Reader = nil
118430	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
118431	if err != nil {
118432		return nil, err
118433	}
118434	reqHeaders.Set("Content-Type", "application/json")
118435	c.urlParams_.Set("alt", alt)
118436	c.urlParams_.Set("prettyPrint", "false")
118437	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
118438	urls += "?" + c.urlParams_.Encode()
118439	req, err := http.NewRequest("POST", urls, body)
118440	if err != nil {
118441		return nil, err
118442	}
118443	req.Header = reqHeaders
118444	googleapi.Expand(req.URL, map[string]string{
118445		"project": c.project,
118446	})
118447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118448}
118449
118450// Do executes the "compute.projects.moveDisk" call.
118451// Exactly one of *Operation or error will be non-nil. Any non-2xx
118452// status code is an error. Response headers are in either
118453// *Operation.ServerResponse.Header or (if a response was returned at
118454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118455// to check whether the returned error was because
118456// http.StatusNotModified was returned.
118457func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118458	gensupport.SetOptions(c.urlParams_, opts...)
118459	res, err := c.doRequest("json")
118460	if res != nil && res.StatusCode == http.StatusNotModified {
118461		if res.Body != nil {
118462			res.Body.Close()
118463		}
118464		return nil, &googleapi.Error{
118465			Code:   res.StatusCode,
118466			Header: res.Header,
118467		}
118468	}
118469	if err != nil {
118470		return nil, err
118471	}
118472	defer googleapi.CloseBody(res)
118473	if err := googleapi.CheckResponse(res); err != nil {
118474		return nil, err
118475	}
118476	ret := &Operation{
118477		ServerResponse: googleapi.ServerResponse{
118478			Header:         res.Header,
118479			HTTPStatusCode: res.StatusCode,
118480		},
118481	}
118482	target := &ret
118483	if err := gensupport.DecodeResponse(target, res); err != nil {
118484		return nil, err
118485	}
118486	return ret, nil
118487	// {
118488	//   "description": "Moves a persistent disk from one zone to another.",
118489	//   "httpMethod": "POST",
118490	//   "id": "compute.projects.moveDisk",
118491	//   "parameterOrder": [
118492	//     "project"
118493	//   ],
118494	//   "parameters": {
118495	//     "project": {
118496	//       "description": "Project ID for this request.",
118497	//       "location": "path",
118498	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118499	//       "required": true,
118500	//       "type": "string"
118501	//     },
118502	//     "requestId": {
118503	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118504	//       "location": "query",
118505	//       "type": "string"
118506	//     }
118507	//   },
118508	//   "path": "{project}/moveDisk",
118509	//   "request": {
118510	//     "$ref": "DiskMoveRequest"
118511	//   },
118512	//   "response": {
118513	//     "$ref": "Operation"
118514	//   },
118515	//   "scopes": [
118516	//     "https://www.googleapis.com/auth/cloud-platform",
118517	//     "https://www.googleapis.com/auth/compute"
118518	//   ]
118519	// }
118520
118521}
118522
118523// method id "compute.projects.moveInstance":
118524
118525type ProjectsMoveInstanceCall struct {
118526	s                   *Service
118527	project             string
118528	instancemoverequest *InstanceMoveRequest
118529	urlParams_          gensupport.URLParams
118530	ctx_                context.Context
118531	header_             http.Header
118532}
118533
118534// MoveInstance: Moves an instance and its attached persistent disks
118535// from one zone to another.
118536func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
118537	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118538	c.project = project
118539	c.instancemoverequest = instancemoverequest
118540	return c
118541}
118542
118543// RequestId sets the optional parameter "requestId": An optional
118544// request ID to identify requests. Specify a unique request ID so that
118545// if you must retry your request, the server will know to ignore the
118546// request if it has already been completed.
118547//
118548// For example, consider a situation where you make an initial request
118549// and the request times out. If you make the request again with the
118550// same request ID, the server can check if original operation with the
118551// same request ID was received, and if so, will ignore the second
118552// request. This prevents clients from accidentally creating duplicate
118553// commitments.
118554//
118555// The request ID must be a valid UUID with the exception that zero UUID
118556// is not supported (00000000-0000-0000-0000-000000000000).
118557func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
118558	c.urlParams_.Set("requestId", requestId)
118559	return c
118560}
118561
118562// Fields allows partial responses to be retrieved. See
118563// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118564// for more information.
118565func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
118566	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118567	return c
118568}
118569
118570// Context sets the context to be used in this call's Do method. Any
118571// pending HTTP request will be aborted if the provided context is
118572// canceled.
118573func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
118574	c.ctx_ = ctx
118575	return c
118576}
118577
118578// Header returns an http.Header that can be modified by the caller to
118579// add HTTP headers to the request.
118580func (c *ProjectsMoveInstanceCall) Header() http.Header {
118581	if c.header_ == nil {
118582		c.header_ = make(http.Header)
118583	}
118584	return c.header_
118585}
118586
118587func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
118588	reqHeaders := make(http.Header)
118589	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
118590	for k, v := range c.header_ {
118591		reqHeaders[k] = v
118592	}
118593	reqHeaders.Set("User-Agent", c.s.userAgent())
118594	var body io.Reader = nil
118595	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
118596	if err != nil {
118597		return nil, err
118598	}
118599	reqHeaders.Set("Content-Type", "application/json")
118600	c.urlParams_.Set("alt", alt)
118601	c.urlParams_.Set("prettyPrint", "false")
118602	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
118603	urls += "?" + c.urlParams_.Encode()
118604	req, err := http.NewRequest("POST", urls, body)
118605	if err != nil {
118606		return nil, err
118607	}
118608	req.Header = reqHeaders
118609	googleapi.Expand(req.URL, map[string]string{
118610		"project": c.project,
118611	})
118612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118613}
118614
118615// Do executes the "compute.projects.moveInstance" call.
118616// Exactly one of *Operation or error will be non-nil. Any non-2xx
118617// status code is an error. Response headers are in either
118618// *Operation.ServerResponse.Header or (if a response was returned at
118619// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118620// to check whether the returned error was because
118621// http.StatusNotModified was returned.
118622func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118623	gensupport.SetOptions(c.urlParams_, opts...)
118624	res, err := c.doRequest("json")
118625	if res != nil && res.StatusCode == http.StatusNotModified {
118626		if res.Body != nil {
118627			res.Body.Close()
118628		}
118629		return nil, &googleapi.Error{
118630			Code:   res.StatusCode,
118631			Header: res.Header,
118632		}
118633	}
118634	if err != nil {
118635		return nil, err
118636	}
118637	defer googleapi.CloseBody(res)
118638	if err := googleapi.CheckResponse(res); err != nil {
118639		return nil, err
118640	}
118641	ret := &Operation{
118642		ServerResponse: googleapi.ServerResponse{
118643			Header:         res.Header,
118644			HTTPStatusCode: res.StatusCode,
118645		},
118646	}
118647	target := &ret
118648	if err := gensupport.DecodeResponse(target, res); err != nil {
118649		return nil, err
118650	}
118651	return ret, nil
118652	// {
118653	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
118654	//   "httpMethod": "POST",
118655	//   "id": "compute.projects.moveInstance",
118656	//   "parameterOrder": [
118657	//     "project"
118658	//   ],
118659	//   "parameters": {
118660	//     "project": {
118661	//       "description": "Project ID for this request.",
118662	//       "location": "path",
118663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118664	//       "required": true,
118665	//       "type": "string"
118666	//     },
118667	//     "requestId": {
118668	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118669	//       "location": "query",
118670	//       "type": "string"
118671	//     }
118672	//   },
118673	//   "path": "{project}/moveInstance",
118674	//   "request": {
118675	//     "$ref": "InstanceMoveRequest"
118676	//   },
118677	//   "response": {
118678	//     "$ref": "Operation"
118679	//   },
118680	//   "scopes": [
118681	//     "https://www.googleapis.com/auth/cloud-platform",
118682	//     "https://www.googleapis.com/auth/compute"
118683	//   ]
118684	// }
118685
118686}
118687
118688// method id "compute.projects.setCommonInstanceMetadata":
118689
118690type ProjectsSetCommonInstanceMetadataCall struct {
118691	s          *Service
118692	project    string
118693	metadata   *Metadata
118694	urlParams_ gensupport.URLParams
118695	ctx_       context.Context
118696	header_    http.Header
118697}
118698
118699// SetCommonInstanceMetadata: Sets metadata common to all instances
118700// within the specified project using the data included in the request.
118701// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
118702func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
118703	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118704	c.project = project
118705	c.metadata = metadata
118706	return c
118707}
118708
118709// RequestId sets the optional parameter "requestId": An optional
118710// request ID to identify requests. Specify a unique request ID so that
118711// if you must retry your request, the server will know to ignore the
118712// request if it has already been completed.
118713//
118714// For example, consider a situation where you make an initial request
118715// and the request times out. If you make the request again with the
118716// same request ID, the server can check if original operation with the
118717// same request ID was received, and if so, will ignore the second
118718// request. This prevents clients from accidentally creating duplicate
118719// commitments.
118720//
118721// The request ID must be a valid UUID with the exception that zero UUID
118722// is not supported (00000000-0000-0000-0000-000000000000).
118723func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
118724	c.urlParams_.Set("requestId", requestId)
118725	return c
118726}
118727
118728// Fields allows partial responses to be retrieved. See
118729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118730// for more information.
118731func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
118732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118733	return c
118734}
118735
118736// Context sets the context to be used in this call's Do method. Any
118737// pending HTTP request will be aborted if the provided context is
118738// canceled.
118739func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
118740	c.ctx_ = ctx
118741	return c
118742}
118743
118744// Header returns an http.Header that can be modified by the caller to
118745// add HTTP headers to the request.
118746func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
118747	if c.header_ == nil {
118748		c.header_ = make(http.Header)
118749	}
118750	return c.header_
118751}
118752
118753func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
118754	reqHeaders := make(http.Header)
118755	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
118756	for k, v := range c.header_ {
118757		reqHeaders[k] = v
118758	}
118759	reqHeaders.Set("User-Agent", c.s.userAgent())
118760	var body io.Reader = nil
118761	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
118762	if err != nil {
118763		return nil, err
118764	}
118765	reqHeaders.Set("Content-Type", "application/json")
118766	c.urlParams_.Set("alt", alt)
118767	c.urlParams_.Set("prettyPrint", "false")
118768	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
118769	urls += "?" + c.urlParams_.Encode()
118770	req, err := http.NewRequest("POST", urls, body)
118771	if err != nil {
118772		return nil, err
118773	}
118774	req.Header = reqHeaders
118775	googleapi.Expand(req.URL, map[string]string{
118776		"project": c.project,
118777	})
118778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118779}
118780
118781// Do executes the "compute.projects.setCommonInstanceMetadata" call.
118782// Exactly one of *Operation or error will be non-nil. Any non-2xx
118783// status code is an error. Response headers are in either
118784// *Operation.ServerResponse.Header or (if a response was returned at
118785// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118786// to check whether the returned error was because
118787// http.StatusNotModified was returned.
118788func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118789	gensupport.SetOptions(c.urlParams_, opts...)
118790	res, err := c.doRequest("json")
118791	if res != nil && res.StatusCode == http.StatusNotModified {
118792		if res.Body != nil {
118793			res.Body.Close()
118794		}
118795		return nil, &googleapi.Error{
118796			Code:   res.StatusCode,
118797			Header: res.Header,
118798		}
118799	}
118800	if err != nil {
118801		return nil, err
118802	}
118803	defer googleapi.CloseBody(res)
118804	if err := googleapi.CheckResponse(res); err != nil {
118805		return nil, err
118806	}
118807	ret := &Operation{
118808		ServerResponse: googleapi.ServerResponse{
118809			Header:         res.Header,
118810			HTTPStatusCode: res.StatusCode,
118811		},
118812	}
118813	target := &ret
118814	if err := gensupport.DecodeResponse(target, res); err != nil {
118815		return nil, err
118816	}
118817	return ret, nil
118818	// {
118819	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
118820	//   "httpMethod": "POST",
118821	//   "id": "compute.projects.setCommonInstanceMetadata",
118822	//   "parameterOrder": [
118823	//     "project"
118824	//   ],
118825	//   "parameters": {
118826	//     "project": {
118827	//       "description": "Project ID for this request.",
118828	//       "location": "path",
118829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118830	//       "required": true,
118831	//       "type": "string"
118832	//     },
118833	//     "requestId": {
118834	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118835	//       "location": "query",
118836	//       "type": "string"
118837	//     }
118838	//   },
118839	//   "path": "{project}/setCommonInstanceMetadata",
118840	//   "request": {
118841	//     "$ref": "Metadata"
118842	//   },
118843	//   "response": {
118844	//     "$ref": "Operation"
118845	//   },
118846	//   "scopes": [
118847	//     "https://www.googleapis.com/auth/cloud-platform",
118848	//     "https://www.googleapis.com/auth/compute"
118849	//   ]
118850	// }
118851
118852}
118853
118854// method id "compute.projects.setDefaultNetworkTier":
118855
118856type ProjectsSetDefaultNetworkTierCall struct {
118857	s                                    *Service
118858	project                              string
118859	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
118860	urlParams_                           gensupport.URLParams
118861	ctx_                                 context.Context
118862	header_                              http.Header
118863}
118864
118865// SetDefaultNetworkTier: Sets the default network tier of the project.
118866// The default network tier is used when an
118867// address/forwardingRule/instance is created without specifying the
118868// network tier field.
118869func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
118870	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118871	c.project = project
118872	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
118873	return c
118874}
118875
118876// RequestId sets the optional parameter "requestId": An optional
118877// request ID to identify requests. Specify a unique request ID so that
118878// if you must retry your request, the server will know to ignore the
118879// request if it has already been completed.
118880//
118881// For example, consider a situation where you make an initial request
118882// and the request times out. If you make the request again with the
118883// same request ID, the server can check if original operation with the
118884// same request ID was received, and if so, will ignore the second
118885// request. This prevents clients from accidentally creating duplicate
118886// commitments.
118887//
118888// The request ID must be a valid UUID with the exception that zero UUID
118889// is not supported (00000000-0000-0000-0000-000000000000).
118890func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
118891	c.urlParams_.Set("requestId", requestId)
118892	return c
118893}
118894
118895// Fields allows partial responses to be retrieved. See
118896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118897// for more information.
118898func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
118899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118900	return c
118901}
118902
118903// Context sets the context to be used in this call's Do method. Any
118904// pending HTTP request will be aborted if the provided context is
118905// canceled.
118906func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
118907	c.ctx_ = ctx
118908	return c
118909}
118910
118911// Header returns an http.Header that can be modified by the caller to
118912// add HTTP headers to the request.
118913func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
118914	if c.header_ == nil {
118915		c.header_ = make(http.Header)
118916	}
118917	return c.header_
118918}
118919
118920func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
118921	reqHeaders := make(http.Header)
118922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
118923	for k, v := range c.header_ {
118924		reqHeaders[k] = v
118925	}
118926	reqHeaders.Set("User-Agent", c.s.userAgent())
118927	var body io.Reader = nil
118928	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
118929	if err != nil {
118930		return nil, err
118931	}
118932	reqHeaders.Set("Content-Type", "application/json")
118933	c.urlParams_.Set("alt", alt)
118934	c.urlParams_.Set("prettyPrint", "false")
118935	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultNetworkTier")
118936	urls += "?" + c.urlParams_.Encode()
118937	req, err := http.NewRequest("POST", urls, body)
118938	if err != nil {
118939		return nil, err
118940	}
118941	req.Header = reqHeaders
118942	googleapi.Expand(req.URL, map[string]string{
118943		"project": c.project,
118944	})
118945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118946}
118947
118948// Do executes the "compute.projects.setDefaultNetworkTier" call.
118949// Exactly one of *Operation or error will be non-nil. Any non-2xx
118950// status code is an error. Response headers are in either
118951// *Operation.ServerResponse.Header or (if a response was returned at
118952// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118953// to check whether the returned error was because
118954// http.StatusNotModified was returned.
118955func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118956	gensupport.SetOptions(c.urlParams_, opts...)
118957	res, err := c.doRequest("json")
118958	if res != nil && res.StatusCode == http.StatusNotModified {
118959		if res.Body != nil {
118960			res.Body.Close()
118961		}
118962		return nil, &googleapi.Error{
118963			Code:   res.StatusCode,
118964			Header: res.Header,
118965		}
118966	}
118967	if err != nil {
118968		return nil, err
118969	}
118970	defer googleapi.CloseBody(res)
118971	if err := googleapi.CheckResponse(res); err != nil {
118972		return nil, err
118973	}
118974	ret := &Operation{
118975		ServerResponse: googleapi.ServerResponse{
118976			Header:         res.Header,
118977			HTTPStatusCode: res.StatusCode,
118978		},
118979	}
118980	target := &ret
118981	if err := gensupport.DecodeResponse(target, res); err != nil {
118982		return nil, err
118983	}
118984	return ret, nil
118985	// {
118986	//   "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.",
118987	//   "httpMethod": "POST",
118988	//   "id": "compute.projects.setDefaultNetworkTier",
118989	//   "parameterOrder": [
118990	//     "project"
118991	//   ],
118992	//   "parameters": {
118993	//     "project": {
118994	//       "description": "Project ID for this request.",
118995	//       "location": "path",
118996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118997	//       "required": true,
118998	//       "type": "string"
118999	//     },
119000	//     "requestId": {
119001	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119002	//       "location": "query",
119003	//       "type": "string"
119004	//     }
119005	//   },
119006	//   "path": "{project}/setDefaultNetworkTier",
119007	//   "request": {
119008	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
119009	//   },
119010	//   "response": {
119011	//     "$ref": "Operation"
119012	//   },
119013	//   "scopes": [
119014	//     "https://www.googleapis.com/auth/cloud-platform",
119015	//     "https://www.googleapis.com/auth/compute"
119016	//   ]
119017	// }
119018
119019}
119020
119021// method id "compute.projects.setDefaultServiceAccount":
119022
119023type ProjectsSetDefaultServiceAccountCall struct {
119024	s                                       *Service
119025	project                                 string
119026	projectssetdefaultserviceaccountrequest *ProjectsSetDefaultServiceAccountRequest
119027	urlParams_                              gensupport.URLParams
119028	ctx_                                    context.Context
119029	header_                                 http.Header
119030}
119031
119032// SetDefaultServiceAccount: Sets the default service account of the
119033// project. The default service account is used when a VM instance is
119034// created with the service account email address set to "default".
119035func (r *ProjectsService) SetDefaultServiceAccount(project string, projectssetdefaultserviceaccountrequest *ProjectsSetDefaultServiceAccountRequest) *ProjectsSetDefaultServiceAccountCall {
119036	c := &ProjectsSetDefaultServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119037	c.project = project
119038	c.projectssetdefaultserviceaccountrequest = projectssetdefaultserviceaccountrequest
119039	return c
119040}
119041
119042// RequestId sets the optional parameter "requestId": An optional
119043// request ID to identify requests. Specify a unique request ID so that
119044// if you must retry your request, the server will know to ignore the
119045// request if it has already been completed.
119046//
119047// For example, consider a situation where you make an initial request
119048// and the request times out. If you make the request again with the
119049// same request ID, the server can check if original operation with the
119050// same request ID was received, and if so, will ignore the second
119051// request. This prevents clients from accidentally creating duplicate
119052// commitments.
119053//
119054// The request ID must be a valid UUID with the exception that zero UUID
119055// is not supported (00000000-0000-0000-0000-000000000000).
119056func (c *ProjectsSetDefaultServiceAccountCall) RequestId(requestId string) *ProjectsSetDefaultServiceAccountCall {
119057	c.urlParams_.Set("requestId", requestId)
119058	return c
119059}
119060
119061// Fields allows partial responses to be retrieved. See
119062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119063// for more information.
119064func (c *ProjectsSetDefaultServiceAccountCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultServiceAccountCall {
119065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119066	return c
119067}
119068
119069// Context sets the context to be used in this call's Do method. Any
119070// pending HTTP request will be aborted if the provided context is
119071// canceled.
119072func (c *ProjectsSetDefaultServiceAccountCall) Context(ctx context.Context) *ProjectsSetDefaultServiceAccountCall {
119073	c.ctx_ = ctx
119074	return c
119075}
119076
119077// Header returns an http.Header that can be modified by the caller to
119078// add HTTP headers to the request.
119079func (c *ProjectsSetDefaultServiceAccountCall) Header() http.Header {
119080	if c.header_ == nil {
119081		c.header_ = make(http.Header)
119082	}
119083	return c.header_
119084}
119085
119086func (c *ProjectsSetDefaultServiceAccountCall) doRequest(alt string) (*http.Response, error) {
119087	reqHeaders := make(http.Header)
119088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
119089	for k, v := range c.header_ {
119090		reqHeaders[k] = v
119091	}
119092	reqHeaders.Set("User-Agent", c.s.userAgent())
119093	var body io.Reader = nil
119094	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultserviceaccountrequest)
119095	if err != nil {
119096		return nil, err
119097	}
119098	reqHeaders.Set("Content-Type", "application/json")
119099	c.urlParams_.Set("alt", alt)
119100	c.urlParams_.Set("prettyPrint", "false")
119101	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultServiceAccount")
119102	urls += "?" + c.urlParams_.Encode()
119103	req, err := http.NewRequest("POST", urls, body)
119104	if err != nil {
119105		return nil, err
119106	}
119107	req.Header = reqHeaders
119108	googleapi.Expand(req.URL, map[string]string{
119109		"project": c.project,
119110	})
119111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119112}
119113
119114// Do executes the "compute.projects.setDefaultServiceAccount" call.
119115// Exactly one of *Operation or error will be non-nil. Any non-2xx
119116// status code is an error. Response headers are in either
119117// *Operation.ServerResponse.Header or (if a response was returned at
119118// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119119// to check whether the returned error was because
119120// http.StatusNotModified was returned.
119121func (c *ProjectsSetDefaultServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119122	gensupport.SetOptions(c.urlParams_, opts...)
119123	res, err := c.doRequest("json")
119124	if res != nil && res.StatusCode == http.StatusNotModified {
119125		if res.Body != nil {
119126			res.Body.Close()
119127		}
119128		return nil, &googleapi.Error{
119129			Code:   res.StatusCode,
119130			Header: res.Header,
119131		}
119132	}
119133	if err != nil {
119134		return nil, err
119135	}
119136	defer googleapi.CloseBody(res)
119137	if err := googleapi.CheckResponse(res); err != nil {
119138		return nil, err
119139	}
119140	ret := &Operation{
119141		ServerResponse: googleapi.ServerResponse{
119142			Header:         res.Header,
119143			HTTPStatusCode: res.StatusCode,
119144		},
119145	}
119146	target := &ret
119147	if err := gensupport.DecodeResponse(target, res); err != nil {
119148		return nil, err
119149	}
119150	return ret, nil
119151	// {
119152	//   "description": "Sets the default service account of the project. The default service account is used when a VM instance is created with the service account email address set to \"default\".",
119153	//   "httpMethod": "POST",
119154	//   "id": "compute.projects.setDefaultServiceAccount",
119155	//   "parameterOrder": [
119156	//     "project"
119157	//   ],
119158	//   "parameters": {
119159	//     "project": {
119160	//       "description": "Project ID for this request.",
119161	//       "location": "path",
119162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119163	//       "required": true,
119164	//       "type": "string"
119165	//     },
119166	//     "requestId": {
119167	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119168	//       "location": "query",
119169	//       "type": "string"
119170	//     }
119171	//   },
119172	//   "path": "{project}/setDefaultServiceAccount",
119173	//   "request": {
119174	//     "$ref": "ProjectsSetDefaultServiceAccountRequest"
119175	//   },
119176	//   "response": {
119177	//     "$ref": "Operation"
119178	//   },
119179	//   "scopes": [
119180	//     "https://www.googleapis.com/auth/cloud-platform",
119181	//     "https://www.googleapis.com/auth/compute"
119182	//   ]
119183	// }
119184
119185}
119186
119187// method id "compute.projects.setUsageExportBucket":
119188
119189type ProjectsSetUsageExportBucketCall struct {
119190	s                   *Service
119191	project             string
119192	usageexportlocation *UsageExportLocation
119193	urlParams_          gensupport.URLParams
119194	ctx_                context.Context
119195	header_             http.Header
119196}
119197
119198// SetUsageExportBucket: Enables the usage export feature and sets the
119199// usage export bucket where reports are stored. If you provide an empty
119200// request body using this method, the usage export feature will be
119201// disabled.
119202// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
119203func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
119204	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119205	c.project = project
119206	c.usageexportlocation = usageexportlocation
119207	return c
119208}
119209
119210// RequestId sets the optional parameter "requestId": An optional
119211// request ID to identify requests. Specify a unique request ID so that
119212// if you must retry your request, the server will know to ignore the
119213// request if it has already been completed.
119214//
119215// For example, consider a situation where you make an initial request
119216// and the request times out. If you make the request again with the
119217// same request ID, the server can check if original operation with the
119218// same request ID was received, and if so, will ignore the second
119219// request. This prevents clients from accidentally creating duplicate
119220// commitments.
119221//
119222// The request ID must be a valid UUID with the exception that zero UUID
119223// is not supported (00000000-0000-0000-0000-000000000000).
119224func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
119225	c.urlParams_.Set("requestId", requestId)
119226	return c
119227}
119228
119229// Fields allows partial responses to be retrieved. See
119230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119231// for more information.
119232func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
119233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119234	return c
119235}
119236
119237// Context sets the context to be used in this call's Do method. Any
119238// pending HTTP request will be aborted if the provided context is
119239// canceled.
119240func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
119241	c.ctx_ = ctx
119242	return c
119243}
119244
119245// Header returns an http.Header that can be modified by the caller to
119246// add HTTP headers to the request.
119247func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
119248	if c.header_ == nil {
119249		c.header_ = make(http.Header)
119250	}
119251	return c.header_
119252}
119253
119254func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
119255	reqHeaders := make(http.Header)
119256	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
119257	for k, v := range c.header_ {
119258		reqHeaders[k] = v
119259	}
119260	reqHeaders.Set("User-Agent", c.s.userAgent())
119261	var body io.Reader = nil
119262	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
119263	if err != nil {
119264		return nil, err
119265	}
119266	reqHeaders.Set("Content-Type", "application/json")
119267	c.urlParams_.Set("alt", alt)
119268	c.urlParams_.Set("prettyPrint", "false")
119269	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
119270	urls += "?" + c.urlParams_.Encode()
119271	req, err := http.NewRequest("POST", urls, body)
119272	if err != nil {
119273		return nil, err
119274	}
119275	req.Header = reqHeaders
119276	googleapi.Expand(req.URL, map[string]string{
119277		"project": c.project,
119278	})
119279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119280}
119281
119282// Do executes the "compute.projects.setUsageExportBucket" call.
119283// Exactly one of *Operation or error will be non-nil. Any non-2xx
119284// status code is an error. Response headers are in either
119285// *Operation.ServerResponse.Header or (if a response was returned at
119286// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119287// to check whether the returned error was because
119288// http.StatusNotModified was returned.
119289func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119290	gensupport.SetOptions(c.urlParams_, opts...)
119291	res, err := c.doRequest("json")
119292	if res != nil && res.StatusCode == http.StatusNotModified {
119293		if res.Body != nil {
119294			res.Body.Close()
119295		}
119296		return nil, &googleapi.Error{
119297			Code:   res.StatusCode,
119298			Header: res.Header,
119299		}
119300	}
119301	if err != nil {
119302		return nil, err
119303	}
119304	defer googleapi.CloseBody(res)
119305	if err := googleapi.CheckResponse(res); err != nil {
119306		return nil, err
119307	}
119308	ret := &Operation{
119309		ServerResponse: googleapi.ServerResponse{
119310			Header:         res.Header,
119311			HTTPStatusCode: res.StatusCode,
119312		},
119313	}
119314	target := &ret
119315	if err := gensupport.DecodeResponse(target, res); err != nil {
119316		return nil, err
119317	}
119318	return ret, nil
119319	// {
119320	//   "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.",
119321	//   "httpMethod": "POST",
119322	//   "id": "compute.projects.setUsageExportBucket",
119323	//   "parameterOrder": [
119324	//     "project"
119325	//   ],
119326	//   "parameters": {
119327	//     "project": {
119328	//       "description": "Project ID for this request.",
119329	//       "location": "path",
119330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119331	//       "required": true,
119332	//       "type": "string"
119333	//     },
119334	//     "requestId": {
119335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119336	//       "location": "query",
119337	//       "type": "string"
119338	//     }
119339	//   },
119340	//   "path": "{project}/setUsageExportBucket",
119341	//   "request": {
119342	//     "$ref": "UsageExportLocation"
119343	//   },
119344	//   "response": {
119345	//     "$ref": "Operation"
119346	//   },
119347	//   "scopes": [
119348	//     "https://www.googleapis.com/auth/cloud-platform",
119349	//     "https://www.googleapis.com/auth/compute",
119350	//     "https://www.googleapis.com/auth/devstorage.full_control",
119351	//     "https://www.googleapis.com/auth/devstorage.read_only",
119352	//     "https://www.googleapis.com/auth/devstorage.read_write"
119353	//   ]
119354	// }
119355
119356}
119357
119358// method id "compute.publicAdvertisedPrefixes.delete":
119359
119360type PublicAdvertisedPrefixesDeleteCall struct {
119361	s                      *Service
119362	project                string
119363	publicAdvertisedPrefix string
119364	urlParams_             gensupport.URLParams
119365	ctx_                   context.Context
119366	header_                http.Header
119367}
119368
119369// Delete: Deletes the specified PublicAdvertisedPrefix
119370func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
119371	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119372	c.project = project
119373	c.publicAdvertisedPrefix = publicAdvertisedPrefix
119374	return c
119375}
119376
119377// RequestId sets the optional parameter "requestId": An optional
119378// request ID to identify requests. Specify a unique request ID so that
119379// if you must retry your request, the server will know to ignore the
119380// request if it has already been completed.
119381//
119382// For example, consider a situation where you make an initial request
119383// and the request times out. If you make the request again with the
119384// same request ID, the server can check if original operation with the
119385// same request ID was received, and if so, will ignore the second
119386// request. This prevents clients from accidentally creating duplicate
119387// commitments.
119388//
119389// The request ID must be a valid UUID with the exception that zero UUID
119390// is not supported (00000000-0000-0000-0000-000000000000).
119391func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
119392	c.urlParams_.Set("requestId", requestId)
119393	return c
119394}
119395
119396// Fields allows partial responses to be retrieved. See
119397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119398// for more information.
119399func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
119400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119401	return c
119402}
119403
119404// Context sets the context to be used in this call's Do method. Any
119405// pending HTTP request will be aborted if the provided context is
119406// canceled.
119407func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
119408	c.ctx_ = ctx
119409	return c
119410}
119411
119412// Header returns an http.Header that can be modified by the caller to
119413// add HTTP headers to the request.
119414func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
119415	if c.header_ == nil {
119416		c.header_ = make(http.Header)
119417	}
119418	return c.header_
119419}
119420
119421func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
119422	reqHeaders := make(http.Header)
119423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
119424	for k, v := range c.header_ {
119425		reqHeaders[k] = v
119426	}
119427	reqHeaders.Set("User-Agent", c.s.userAgent())
119428	var body io.Reader = nil
119429	c.urlParams_.Set("alt", alt)
119430	c.urlParams_.Set("prettyPrint", "false")
119431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
119432	urls += "?" + c.urlParams_.Encode()
119433	req, err := http.NewRequest("DELETE", urls, body)
119434	if err != nil {
119435		return nil, err
119436	}
119437	req.Header = reqHeaders
119438	googleapi.Expand(req.URL, map[string]string{
119439		"project":                c.project,
119440		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
119441	})
119442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119443}
119444
119445// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
119446// Exactly one of *Operation or error will be non-nil. Any non-2xx
119447// status code is an error. Response headers are in either
119448// *Operation.ServerResponse.Header or (if a response was returned at
119449// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119450// to check whether the returned error was because
119451// http.StatusNotModified was returned.
119452func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119453	gensupport.SetOptions(c.urlParams_, opts...)
119454	res, err := c.doRequest("json")
119455	if res != nil && res.StatusCode == http.StatusNotModified {
119456		if res.Body != nil {
119457			res.Body.Close()
119458		}
119459		return nil, &googleapi.Error{
119460			Code:   res.StatusCode,
119461			Header: res.Header,
119462		}
119463	}
119464	if err != nil {
119465		return nil, err
119466	}
119467	defer googleapi.CloseBody(res)
119468	if err := googleapi.CheckResponse(res); err != nil {
119469		return nil, err
119470	}
119471	ret := &Operation{
119472		ServerResponse: googleapi.ServerResponse{
119473			Header:         res.Header,
119474			HTTPStatusCode: res.StatusCode,
119475		},
119476	}
119477	target := &ret
119478	if err := gensupport.DecodeResponse(target, res); err != nil {
119479		return nil, err
119480	}
119481	return ret, nil
119482	// {
119483	//   "description": "Deletes the specified PublicAdvertisedPrefix",
119484	//   "httpMethod": "DELETE",
119485	//   "id": "compute.publicAdvertisedPrefixes.delete",
119486	//   "parameterOrder": [
119487	//     "project",
119488	//     "publicAdvertisedPrefix"
119489	//   ],
119490	//   "parameters": {
119491	//     "project": {
119492	//       "description": "Project ID for this request.",
119493	//       "location": "path",
119494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119495	//       "required": true,
119496	//       "type": "string"
119497	//     },
119498	//     "publicAdvertisedPrefix": {
119499	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
119500	//       "location": "path",
119501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119502	//       "required": true,
119503	//       "type": "string"
119504	//     },
119505	//     "requestId": {
119506	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119507	//       "location": "query",
119508	//       "type": "string"
119509	//     }
119510	//   },
119511	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
119512	//   "response": {
119513	//     "$ref": "Operation"
119514	//   },
119515	//   "scopes": [
119516	//     "https://www.googleapis.com/auth/cloud-platform",
119517	//     "https://www.googleapis.com/auth/compute"
119518	//   ]
119519	// }
119520
119521}
119522
119523// method id "compute.publicAdvertisedPrefixes.get":
119524
119525type PublicAdvertisedPrefixesGetCall struct {
119526	s                      *Service
119527	project                string
119528	publicAdvertisedPrefix string
119529	urlParams_             gensupport.URLParams
119530	ifNoneMatch_           string
119531	ctx_                   context.Context
119532	header_                http.Header
119533}
119534
119535// Get: Returns the specified PublicAdvertisedPrefix resource.
119536func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
119537	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119538	c.project = project
119539	c.publicAdvertisedPrefix = publicAdvertisedPrefix
119540	return c
119541}
119542
119543// Fields allows partial responses to be retrieved. See
119544// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119545// for more information.
119546func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
119547	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119548	return c
119549}
119550
119551// IfNoneMatch sets the optional parameter which makes the operation
119552// fail if the object's ETag matches the given value. This is useful for
119553// getting updates only after the object has changed since the last
119554// request. Use googleapi.IsNotModified to check whether the response
119555// error from Do is the result of In-None-Match.
119556func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
119557	c.ifNoneMatch_ = entityTag
119558	return c
119559}
119560
119561// Context sets the context to be used in this call's Do method. Any
119562// pending HTTP request will be aborted if the provided context is
119563// canceled.
119564func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
119565	c.ctx_ = ctx
119566	return c
119567}
119568
119569// Header returns an http.Header that can be modified by the caller to
119570// add HTTP headers to the request.
119571func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
119572	if c.header_ == nil {
119573		c.header_ = make(http.Header)
119574	}
119575	return c.header_
119576}
119577
119578func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
119579	reqHeaders := make(http.Header)
119580	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
119581	for k, v := range c.header_ {
119582		reqHeaders[k] = v
119583	}
119584	reqHeaders.Set("User-Agent", c.s.userAgent())
119585	if c.ifNoneMatch_ != "" {
119586		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119587	}
119588	var body io.Reader = nil
119589	c.urlParams_.Set("alt", alt)
119590	c.urlParams_.Set("prettyPrint", "false")
119591	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
119592	urls += "?" + c.urlParams_.Encode()
119593	req, err := http.NewRequest("GET", urls, body)
119594	if err != nil {
119595		return nil, err
119596	}
119597	req.Header = reqHeaders
119598	googleapi.Expand(req.URL, map[string]string{
119599		"project":                c.project,
119600		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
119601	})
119602	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119603}
119604
119605// Do executes the "compute.publicAdvertisedPrefixes.get" call.
119606// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
119607// non-2xx status code is an error. Response headers are in either
119608// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
119609// returned at all) in error.(*googleapi.Error).Header. Use
119610// googleapi.IsNotModified to check whether the returned error was
119611// because http.StatusNotModified was returned.
119612func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
119613	gensupport.SetOptions(c.urlParams_, opts...)
119614	res, err := c.doRequest("json")
119615	if res != nil && res.StatusCode == http.StatusNotModified {
119616		if res.Body != nil {
119617			res.Body.Close()
119618		}
119619		return nil, &googleapi.Error{
119620			Code:   res.StatusCode,
119621			Header: res.Header,
119622		}
119623	}
119624	if err != nil {
119625		return nil, err
119626	}
119627	defer googleapi.CloseBody(res)
119628	if err := googleapi.CheckResponse(res); err != nil {
119629		return nil, err
119630	}
119631	ret := &PublicAdvertisedPrefix{
119632		ServerResponse: googleapi.ServerResponse{
119633			Header:         res.Header,
119634			HTTPStatusCode: res.StatusCode,
119635		},
119636	}
119637	target := &ret
119638	if err := gensupport.DecodeResponse(target, res); err != nil {
119639		return nil, err
119640	}
119641	return ret, nil
119642	// {
119643	//   "description": "Returns the specified PublicAdvertisedPrefix resource.",
119644	//   "httpMethod": "GET",
119645	//   "id": "compute.publicAdvertisedPrefixes.get",
119646	//   "parameterOrder": [
119647	//     "project",
119648	//     "publicAdvertisedPrefix"
119649	//   ],
119650	//   "parameters": {
119651	//     "project": {
119652	//       "description": "Project ID for this request.",
119653	//       "location": "path",
119654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119655	//       "required": true,
119656	//       "type": "string"
119657	//     },
119658	//     "publicAdvertisedPrefix": {
119659	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
119660	//       "location": "path",
119661	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119662	//       "required": true,
119663	//       "type": "string"
119664	//     }
119665	//   },
119666	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
119667	//   "response": {
119668	//     "$ref": "PublicAdvertisedPrefix"
119669	//   },
119670	//   "scopes": [
119671	//     "https://www.googleapis.com/auth/cloud-platform",
119672	//     "https://www.googleapis.com/auth/compute",
119673	//     "https://www.googleapis.com/auth/compute.readonly"
119674	//   ]
119675	// }
119676
119677}
119678
119679// method id "compute.publicAdvertisedPrefixes.insert":
119680
119681type PublicAdvertisedPrefixesInsertCall struct {
119682	s                      *Service
119683	project                string
119684	publicadvertisedprefix *PublicAdvertisedPrefix
119685	urlParams_             gensupport.URLParams
119686	ctx_                   context.Context
119687	header_                http.Header
119688}
119689
119690// Insert: Creates a PublicAdvertisedPrefix in the specified project
119691// using the parameters that are included in the request.
119692func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
119693	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119694	c.project = project
119695	c.publicadvertisedprefix = publicadvertisedprefix
119696	return c
119697}
119698
119699// RequestId sets the optional parameter "requestId": An optional
119700// request ID to identify requests. Specify a unique request ID so that
119701// if you must retry your request, the server will know to ignore the
119702// request if it has already been completed.
119703//
119704// For example, consider a situation where you make an initial request
119705// and the request times out. If you make the request again with the
119706// same request ID, the server can check if original operation with the
119707// same request ID was received, and if so, will ignore the second
119708// request. This prevents clients from accidentally creating duplicate
119709// commitments.
119710//
119711// The request ID must be a valid UUID with the exception that zero UUID
119712// is not supported (00000000-0000-0000-0000-000000000000).
119713func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
119714	c.urlParams_.Set("requestId", requestId)
119715	return c
119716}
119717
119718// Fields allows partial responses to be retrieved. See
119719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119720// for more information.
119721func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
119722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119723	return c
119724}
119725
119726// Context sets the context to be used in this call's Do method. Any
119727// pending HTTP request will be aborted if the provided context is
119728// canceled.
119729func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
119730	c.ctx_ = ctx
119731	return c
119732}
119733
119734// Header returns an http.Header that can be modified by the caller to
119735// add HTTP headers to the request.
119736func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
119737	if c.header_ == nil {
119738		c.header_ = make(http.Header)
119739	}
119740	return c.header_
119741}
119742
119743func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
119744	reqHeaders := make(http.Header)
119745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
119746	for k, v := range c.header_ {
119747		reqHeaders[k] = v
119748	}
119749	reqHeaders.Set("User-Agent", c.s.userAgent())
119750	var body io.Reader = nil
119751	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
119752	if err != nil {
119753		return nil, err
119754	}
119755	reqHeaders.Set("Content-Type", "application/json")
119756	c.urlParams_.Set("alt", alt)
119757	c.urlParams_.Set("prettyPrint", "false")
119758	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes")
119759	urls += "?" + c.urlParams_.Encode()
119760	req, err := http.NewRequest("POST", urls, body)
119761	if err != nil {
119762		return nil, err
119763	}
119764	req.Header = reqHeaders
119765	googleapi.Expand(req.URL, map[string]string{
119766		"project": c.project,
119767	})
119768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119769}
119770
119771// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
119772// Exactly one of *Operation or error will be non-nil. Any non-2xx
119773// status code is an error. Response headers are in either
119774// *Operation.ServerResponse.Header or (if a response was returned at
119775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119776// to check whether the returned error was because
119777// http.StatusNotModified was returned.
119778func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119779	gensupport.SetOptions(c.urlParams_, opts...)
119780	res, err := c.doRequest("json")
119781	if res != nil && res.StatusCode == http.StatusNotModified {
119782		if res.Body != nil {
119783			res.Body.Close()
119784		}
119785		return nil, &googleapi.Error{
119786			Code:   res.StatusCode,
119787			Header: res.Header,
119788		}
119789	}
119790	if err != nil {
119791		return nil, err
119792	}
119793	defer googleapi.CloseBody(res)
119794	if err := googleapi.CheckResponse(res); err != nil {
119795		return nil, err
119796	}
119797	ret := &Operation{
119798		ServerResponse: googleapi.ServerResponse{
119799			Header:         res.Header,
119800			HTTPStatusCode: res.StatusCode,
119801		},
119802	}
119803	target := &ret
119804	if err := gensupport.DecodeResponse(target, res); err != nil {
119805		return nil, err
119806	}
119807	return ret, nil
119808	// {
119809	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.",
119810	//   "httpMethod": "POST",
119811	//   "id": "compute.publicAdvertisedPrefixes.insert",
119812	//   "parameterOrder": [
119813	//     "project"
119814	//   ],
119815	//   "parameters": {
119816	//     "project": {
119817	//       "description": "Project ID for this request.",
119818	//       "location": "path",
119819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119820	//       "required": true,
119821	//       "type": "string"
119822	//     },
119823	//     "requestId": {
119824	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119825	//       "location": "query",
119826	//       "type": "string"
119827	//     }
119828	//   },
119829	//   "path": "{project}/global/publicAdvertisedPrefixes",
119830	//   "request": {
119831	//     "$ref": "PublicAdvertisedPrefix"
119832	//   },
119833	//   "response": {
119834	//     "$ref": "Operation"
119835	//   },
119836	//   "scopes": [
119837	//     "https://www.googleapis.com/auth/cloud-platform",
119838	//     "https://www.googleapis.com/auth/compute"
119839	//   ]
119840	// }
119841
119842}
119843
119844// method id "compute.publicAdvertisedPrefixes.list":
119845
119846type PublicAdvertisedPrefixesListCall struct {
119847	s            *Service
119848	project      string
119849	urlParams_   gensupport.URLParams
119850	ifNoneMatch_ string
119851	ctx_         context.Context
119852	header_      http.Header
119853}
119854
119855// List: Lists the PublicAdvertisedPrefixes for a project.
119856func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
119857	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119858	c.project = project
119859	return c
119860}
119861
119862// Filter sets the optional parameter "filter": A filter expression that
119863// filters resources listed in the response. The expression must specify
119864// the field name, a comparison operator, and the value that you want to
119865// use for filtering. The value must be a string, a number, or a
119866// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119867// `<`.
119868//
119869// For example, if you are filtering Compute Engine instances, you can
119870// exclude instances named `example-instance` by specifying `name !=
119871// example-instance`.
119872//
119873// You can also filter nested fields. For example, you could specify
119874// `scheduling.automaticRestart = false` to include instances only if
119875// they are not scheduled for automatic restarts. You can use filtering
119876// on nested fields to filter based on resource labels.
119877//
119878// To filter on multiple expressions, provide each separate expression
119879// within parentheses. For example: ``` (scheduling.automaticRestart =
119880// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
119881// is an `AND` expression. However, you can include `AND` and `OR`
119882// expressions explicitly. For example: ``` (cpuPlatform = "Intel
119883// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
119884// (scheduling.automaticRestart = true) ```
119885func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
119886	c.urlParams_.Set("filter", filter)
119887	return c
119888}
119889
119890// MaxResults sets the optional parameter "maxResults": The maximum
119891// number of results per page that should be returned. If the number of
119892// available results is larger than `maxResults`, Compute Engine returns
119893// a `nextPageToken` that can be used to get the next page of results in
119894// subsequent list requests. Acceptable values are `0` to `500`,
119895// inclusive. (Default: `500`)
119896func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
119897	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119898	return c
119899}
119900
119901// OrderBy sets the optional parameter "orderBy": Sorts list results by
119902// a certain order. By default, results are returned in alphanumerical
119903// order based on the resource name.
119904//
119905// You can also sort results in descending order based on the creation
119906// timestamp using `orderBy="creationTimestamp desc". This sorts
119907// results based on the `creationTimestamp` field in reverse
119908// chronological order (newest result first). Use this to sort resources
119909// like operations so that the newest operation is returned
119910// first.
119911//
119912// Currently, only sorting by `name` or `creationTimestamp desc` is
119913// supported.
119914func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
119915	c.urlParams_.Set("orderBy", orderBy)
119916	return c
119917}
119918
119919// PageToken sets the optional parameter "pageToken": Specifies a page
119920// token to use. Set `pageToken` to the `nextPageToken` returned by a
119921// previous list request to get the next page of results.
119922func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
119923	c.urlParams_.Set("pageToken", pageToken)
119924	return c
119925}
119926
119927// ReturnPartialSuccess sets the optional parameter
119928// "returnPartialSuccess": Opt-in for partial success behavior which
119929// provides partial results in case of failure. The default value is
119930// false and the logic is the same as today.
119931func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall {
119932	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119933	return c
119934}
119935
119936// Fields allows partial responses to be retrieved. See
119937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119938// for more information.
119939func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
119940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119941	return c
119942}
119943
119944// IfNoneMatch sets the optional parameter which makes the operation
119945// fail if the object's ETag matches the given value. This is useful for
119946// getting updates only after the object has changed since the last
119947// request. Use googleapi.IsNotModified to check whether the response
119948// error from Do is the result of In-None-Match.
119949func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
119950	c.ifNoneMatch_ = entityTag
119951	return c
119952}
119953
119954// Context sets the context to be used in this call's Do method. Any
119955// pending HTTP request will be aborted if the provided context is
119956// canceled.
119957func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
119958	c.ctx_ = ctx
119959	return c
119960}
119961
119962// Header returns an http.Header that can be modified by the caller to
119963// add HTTP headers to the request.
119964func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
119965	if c.header_ == nil {
119966		c.header_ = make(http.Header)
119967	}
119968	return c.header_
119969}
119970
119971func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
119972	reqHeaders := make(http.Header)
119973	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
119974	for k, v := range c.header_ {
119975		reqHeaders[k] = v
119976	}
119977	reqHeaders.Set("User-Agent", c.s.userAgent())
119978	if c.ifNoneMatch_ != "" {
119979		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119980	}
119981	var body io.Reader = nil
119982	c.urlParams_.Set("alt", alt)
119983	c.urlParams_.Set("prettyPrint", "false")
119984	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes")
119985	urls += "?" + c.urlParams_.Encode()
119986	req, err := http.NewRequest("GET", urls, body)
119987	if err != nil {
119988		return nil, err
119989	}
119990	req.Header = reqHeaders
119991	googleapi.Expand(req.URL, map[string]string{
119992		"project": c.project,
119993	})
119994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119995}
119996
119997// Do executes the "compute.publicAdvertisedPrefixes.list" call.
119998// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
119999// Any non-2xx status code is an error. Response headers are in either
120000// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
120001// was returned at all) in error.(*googleapi.Error).Header. Use
120002// googleapi.IsNotModified to check whether the returned error was
120003// because http.StatusNotModified was returned.
120004func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
120005	gensupport.SetOptions(c.urlParams_, opts...)
120006	res, err := c.doRequest("json")
120007	if res != nil && res.StatusCode == http.StatusNotModified {
120008		if res.Body != nil {
120009			res.Body.Close()
120010		}
120011		return nil, &googleapi.Error{
120012			Code:   res.StatusCode,
120013			Header: res.Header,
120014		}
120015	}
120016	if err != nil {
120017		return nil, err
120018	}
120019	defer googleapi.CloseBody(res)
120020	if err := googleapi.CheckResponse(res); err != nil {
120021		return nil, err
120022	}
120023	ret := &PublicAdvertisedPrefixList{
120024		ServerResponse: googleapi.ServerResponse{
120025			Header:         res.Header,
120026			HTTPStatusCode: res.StatusCode,
120027		},
120028	}
120029	target := &ret
120030	if err := gensupport.DecodeResponse(target, res); err != nil {
120031		return nil, err
120032	}
120033	return ret, nil
120034	// {
120035	//   "description": "Lists the PublicAdvertisedPrefixes for a project.",
120036	//   "httpMethod": "GET",
120037	//   "id": "compute.publicAdvertisedPrefixes.list",
120038	//   "parameterOrder": [
120039	//     "project"
120040	//   ],
120041	//   "parameters": {
120042	//     "filter": {
120043	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
120044	//       "location": "query",
120045	//       "type": "string"
120046	//     },
120047	//     "maxResults": {
120048	//       "default": "500",
120049	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
120050	//       "format": "uint32",
120051	//       "location": "query",
120052	//       "minimum": "0",
120053	//       "type": "integer"
120054	//     },
120055	//     "orderBy": {
120056	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
120057	//       "location": "query",
120058	//       "type": "string"
120059	//     },
120060	//     "pageToken": {
120061	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120062	//       "location": "query",
120063	//       "type": "string"
120064	//     },
120065	//     "project": {
120066	//       "description": "Project ID for this request.",
120067	//       "location": "path",
120068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120069	//       "required": true,
120070	//       "type": "string"
120071	//     },
120072	//     "returnPartialSuccess": {
120073	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
120074	//       "location": "query",
120075	//       "type": "boolean"
120076	//     }
120077	//   },
120078	//   "path": "{project}/global/publicAdvertisedPrefixes",
120079	//   "response": {
120080	//     "$ref": "PublicAdvertisedPrefixList"
120081	//   },
120082	//   "scopes": [
120083	//     "https://www.googleapis.com/auth/cloud-platform",
120084	//     "https://www.googleapis.com/auth/compute",
120085	//     "https://www.googleapis.com/auth/compute.readonly"
120086	//   ]
120087	// }
120088
120089}
120090
120091// Pages invokes f for each page of results.
120092// A non-nil error returned from f will halt the iteration.
120093// The provided context supersedes any context provided to the Context method.
120094func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
120095	c.ctx_ = ctx
120096	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120097	for {
120098		x, err := c.Do()
120099		if err != nil {
120100			return err
120101		}
120102		if err := f(x); err != nil {
120103			return err
120104		}
120105		if x.NextPageToken == "" {
120106			return nil
120107		}
120108		c.PageToken(x.NextPageToken)
120109	}
120110}
120111
120112// method id "compute.publicAdvertisedPrefixes.patch":
120113
120114type PublicAdvertisedPrefixesPatchCall struct {
120115	s                      *Service
120116	project                string
120117	publicAdvertisedPrefix string
120118	publicadvertisedprefix *PublicAdvertisedPrefix
120119	urlParams_             gensupport.URLParams
120120	ctx_                   context.Context
120121	header_                http.Header
120122}
120123
120124// Patch: Patches the specified Router resource with the data included
120125// in the request. This method supports PATCH semantics and uses JSON
120126// merge patch format and processing rules.
120127func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
120128	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120129	c.project = project
120130	c.publicAdvertisedPrefix = publicAdvertisedPrefix
120131	c.publicadvertisedprefix = publicadvertisedprefix
120132	return c
120133}
120134
120135// RequestId sets the optional parameter "requestId": An optional
120136// request ID to identify requests. Specify a unique request ID so that
120137// if you must retry your request, the server will know to ignore the
120138// request if it has already been completed.
120139//
120140// For example, consider a situation where you make an initial request
120141// and the request times out. If you make the request again with the
120142// same request ID, the server can check if original operation with the
120143// same request ID was received, and if so, will ignore the second
120144// request. This prevents clients from accidentally creating duplicate
120145// commitments.
120146//
120147// The request ID must be a valid UUID with the exception that zero UUID
120148// is not supported (00000000-0000-0000-0000-000000000000).
120149func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
120150	c.urlParams_.Set("requestId", requestId)
120151	return c
120152}
120153
120154// Fields allows partial responses to be retrieved. See
120155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120156// for more information.
120157func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
120158	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120159	return c
120160}
120161
120162// Context sets the context to be used in this call's Do method. Any
120163// pending HTTP request will be aborted if the provided context is
120164// canceled.
120165func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
120166	c.ctx_ = ctx
120167	return c
120168}
120169
120170// Header returns an http.Header that can be modified by the caller to
120171// add HTTP headers to the request.
120172func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
120173	if c.header_ == nil {
120174		c.header_ = make(http.Header)
120175	}
120176	return c.header_
120177}
120178
120179func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
120180	reqHeaders := make(http.Header)
120181	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
120182	for k, v := range c.header_ {
120183		reqHeaders[k] = v
120184	}
120185	reqHeaders.Set("User-Agent", c.s.userAgent())
120186	var body io.Reader = nil
120187	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
120188	if err != nil {
120189		return nil, err
120190	}
120191	reqHeaders.Set("Content-Type", "application/json")
120192	c.urlParams_.Set("alt", alt)
120193	c.urlParams_.Set("prettyPrint", "false")
120194	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
120195	urls += "?" + c.urlParams_.Encode()
120196	req, err := http.NewRequest("PATCH", urls, body)
120197	if err != nil {
120198		return nil, err
120199	}
120200	req.Header = reqHeaders
120201	googleapi.Expand(req.URL, map[string]string{
120202		"project":                c.project,
120203		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
120204	})
120205	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120206}
120207
120208// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
120209// Exactly one of *Operation or error will be non-nil. Any non-2xx
120210// status code is an error. Response headers are in either
120211// *Operation.ServerResponse.Header or (if a response was returned at
120212// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120213// to check whether the returned error was because
120214// http.StatusNotModified was returned.
120215func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120216	gensupport.SetOptions(c.urlParams_, opts...)
120217	res, err := c.doRequest("json")
120218	if res != nil && res.StatusCode == http.StatusNotModified {
120219		if res.Body != nil {
120220			res.Body.Close()
120221		}
120222		return nil, &googleapi.Error{
120223			Code:   res.StatusCode,
120224			Header: res.Header,
120225		}
120226	}
120227	if err != nil {
120228		return nil, err
120229	}
120230	defer googleapi.CloseBody(res)
120231	if err := googleapi.CheckResponse(res); err != nil {
120232		return nil, err
120233	}
120234	ret := &Operation{
120235		ServerResponse: googleapi.ServerResponse{
120236			Header:         res.Header,
120237			HTTPStatusCode: res.StatusCode,
120238		},
120239	}
120240	target := &ret
120241	if err := gensupport.DecodeResponse(target, res); err != nil {
120242		return nil, err
120243	}
120244	return ret, nil
120245	// {
120246	//   "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.",
120247	//   "httpMethod": "PATCH",
120248	//   "id": "compute.publicAdvertisedPrefixes.patch",
120249	//   "parameterOrder": [
120250	//     "project",
120251	//     "publicAdvertisedPrefix"
120252	//   ],
120253	//   "parameters": {
120254	//     "project": {
120255	//       "description": "Project ID for this request.",
120256	//       "location": "path",
120257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120258	//       "required": true,
120259	//       "type": "string"
120260	//     },
120261	//     "publicAdvertisedPrefix": {
120262	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
120263	//       "location": "path",
120264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120265	//       "required": true,
120266	//       "type": "string"
120267	//     },
120268	//     "requestId": {
120269	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120270	//       "location": "query",
120271	//       "type": "string"
120272	//     }
120273	//   },
120274	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
120275	//   "request": {
120276	//     "$ref": "PublicAdvertisedPrefix"
120277	//   },
120278	//   "response": {
120279	//     "$ref": "Operation"
120280	//   },
120281	//   "scopes": [
120282	//     "https://www.googleapis.com/auth/cloud-platform",
120283	//     "https://www.googleapis.com/auth/compute"
120284	//   ]
120285	// }
120286
120287}
120288
120289// method id "compute.publicDelegatedPrefixes.aggregatedList":
120290
120291type PublicDelegatedPrefixesAggregatedListCall struct {
120292	s            *Service
120293	project      string
120294	urlParams_   gensupport.URLParams
120295	ifNoneMatch_ string
120296	ctx_         context.Context
120297	header_      http.Header
120298}
120299
120300// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
120301// the specific project across all scopes.
120302func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
120303	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120304	c.project = project
120305	return c
120306}
120307
120308// Filter sets the optional parameter "filter": A filter expression that
120309// filters resources listed in the response. The expression must specify
120310// the field name, a comparison operator, and the value that you want to
120311// use for filtering. The value must be a string, a number, or a
120312// boolean. The comparison operator must be either `=`, `!=`, `>`, or
120313// `<`.
120314//
120315// For example, if you are filtering Compute Engine instances, you can
120316// exclude instances named `example-instance` by specifying `name !=
120317// example-instance`.
120318//
120319// You can also filter nested fields. For example, you could specify
120320// `scheduling.automaticRestart = false` to include instances only if
120321// they are not scheduled for automatic restarts. You can use filtering
120322// on nested fields to filter based on resource labels.
120323//
120324// To filter on multiple expressions, provide each separate expression
120325// within parentheses. For example: ``` (scheduling.automaticRestart =
120326// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
120327// is an `AND` expression. However, you can include `AND` and `OR`
120328// expressions explicitly. For example: ``` (cpuPlatform = "Intel
120329// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
120330// (scheduling.automaticRestart = true) ```
120331func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
120332	c.urlParams_.Set("filter", filter)
120333	return c
120334}
120335
120336// IncludeAllScopes sets the optional parameter "includeAllScopes":
120337// Indicates whether every visible scope for each scope type (zone,
120338// region, global) should be included in the response. For new resource
120339// types added after this field, the flag has no effect as new resource
120340// types will always include every visible scope for each scope type in
120341// response. For resource types which predate this field, if this flag
120342// is omitted or false, only scopes of the scope types where the
120343// resource type is expected to be found will be included.
120344func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall {
120345	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
120346	return c
120347}
120348
120349// MaxResults sets the optional parameter "maxResults": The maximum
120350// number of results per page that should be returned. If the number of
120351// available results is larger than `maxResults`, Compute Engine returns
120352// a `nextPageToken` that can be used to get the next page of results in
120353// subsequent list requests. Acceptable values are `0` to `500`,
120354// inclusive. (Default: `500`)
120355func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
120356	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120357	return c
120358}
120359
120360// OrderBy sets the optional parameter "orderBy": Sorts list results by
120361// a certain order. By default, results are returned in alphanumerical
120362// order based on the resource name.
120363//
120364// You can also sort results in descending order based on the creation
120365// timestamp using `orderBy="creationTimestamp desc". This sorts
120366// results based on the `creationTimestamp` field in reverse
120367// chronological order (newest result first). Use this to sort resources
120368// like operations so that the newest operation is returned
120369// first.
120370//
120371// Currently, only sorting by `name` or `creationTimestamp desc` is
120372// supported.
120373func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
120374	c.urlParams_.Set("orderBy", orderBy)
120375	return c
120376}
120377
120378// PageToken sets the optional parameter "pageToken": Specifies a page
120379// token to use. Set `pageToken` to the `nextPageToken` returned by a
120380// previous list request to get the next page of results.
120381func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
120382	c.urlParams_.Set("pageToken", pageToken)
120383	return c
120384}
120385
120386// ReturnPartialSuccess sets the optional parameter
120387// "returnPartialSuccess": Opt-in for partial success behavior which
120388// provides partial results in case of failure. The default value is
120389// false and the logic is the same as today.
120390func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall {
120391	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
120392	return c
120393}
120394
120395// Fields allows partial responses to be retrieved. See
120396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120397// for more information.
120398func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
120399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120400	return c
120401}
120402
120403// IfNoneMatch sets the optional parameter which makes the operation
120404// fail if the object's ETag matches the given value. This is useful for
120405// getting updates only after the object has changed since the last
120406// request. Use googleapi.IsNotModified to check whether the response
120407// error from Do is the result of In-None-Match.
120408func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
120409	c.ifNoneMatch_ = entityTag
120410	return c
120411}
120412
120413// Context sets the context to be used in this call's Do method. Any
120414// pending HTTP request will be aborted if the provided context is
120415// canceled.
120416func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
120417	c.ctx_ = ctx
120418	return c
120419}
120420
120421// Header returns an http.Header that can be modified by the caller to
120422// add HTTP headers to the request.
120423func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
120424	if c.header_ == nil {
120425		c.header_ = make(http.Header)
120426	}
120427	return c.header_
120428}
120429
120430func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
120431	reqHeaders := make(http.Header)
120432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
120433	for k, v := range c.header_ {
120434		reqHeaders[k] = v
120435	}
120436	reqHeaders.Set("User-Agent", c.s.userAgent())
120437	if c.ifNoneMatch_ != "" {
120438		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120439	}
120440	var body io.Reader = nil
120441	c.urlParams_.Set("alt", alt)
120442	c.urlParams_.Set("prettyPrint", "false")
120443	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/publicDelegatedPrefixes")
120444	urls += "?" + c.urlParams_.Encode()
120445	req, err := http.NewRequest("GET", urls, body)
120446	if err != nil {
120447		return nil, err
120448	}
120449	req.Header = reqHeaders
120450	googleapi.Expand(req.URL, map[string]string{
120451		"project": c.project,
120452	})
120453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120454}
120455
120456// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
120457// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
120458// non-nil. Any non-2xx status code is an error. Response headers are in
120459// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
120460// (if a response was returned at all) in
120461// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
120462// whether the returned error was because http.StatusNotModified was
120463// returned.
120464func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
120465	gensupport.SetOptions(c.urlParams_, opts...)
120466	res, err := c.doRequest("json")
120467	if res != nil && res.StatusCode == http.StatusNotModified {
120468		if res.Body != nil {
120469			res.Body.Close()
120470		}
120471		return nil, &googleapi.Error{
120472			Code:   res.StatusCode,
120473			Header: res.Header,
120474		}
120475	}
120476	if err != nil {
120477		return nil, err
120478	}
120479	defer googleapi.CloseBody(res)
120480	if err := googleapi.CheckResponse(res); err != nil {
120481		return nil, err
120482	}
120483	ret := &PublicDelegatedPrefixAggregatedList{
120484		ServerResponse: googleapi.ServerResponse{
120485			Header:         res.Header,
120486			HTTPStatusCode: res.StatusCode,
120487		},
120488	}
120489	target := &ret
120490	if err := gensupport.DecodeResponse(target, res); err != nil {
120491		return nil, err
120492	}
120493	return ret, nil
120494	// {
120495	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.",
120496	//   "httpMethod": "GET",
120497	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
120498	//   "parameterOrder": [
120499	//     "project"
120500	//   ],
120501	//   "parameters": {
120502	//     "filter": {
120503	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
120504	//       "location": "query",
120505	//       "type": "string"
120506	//     },
120507	//     "includeAllScopes": {
120508	//       "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.",
120509	//       "location": "query",
120510	//       "type": "boolean"
120511	//     },
120512	//     "maxResults": {
120513	//       "default": "500",
120514	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
120515	//       "format": "uint32",
120516	//       "location": "query",
120517	//       "minimum": "0",
120518	//       "type": "integer"
120519	//     },
120520	//     "orderBy": {
120521	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
120522	//       "location": "query",
120523	//       "type": "string"
120524	//     },
120525	//     "pageToken": {
120526	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120527	//       "location": "query",
120528	//       "type": "string"
120529	//     },
120530	//     "project": {
120531	//       "description": "Name of the project scoping this request.",
120532	//       "location": "path",
120533	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120534	//       "required": true,
120535	//       "type": "string"
120536	//     },
120537	//     "returnPartialSuccess": {
120538	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
120539	//       "location": "query",
120540	//       "type": "boolean"
120541	//     }
120542	//   },
120543	//   "path": "{project}/aggregated/publicDelegatedPrefixes",
120544	//   "response": {
120545	//     "$ref": "PublicDelegatedPrefixAggregatedList"
120546	//   },
120547	//   "scopes": [
120548	//     "https://www.googleapis.com/auth/cloud-platform",
120549	//     "https://www.googleapis.com/auth/compute",
120550	//     "https://www.googleapis.com/auth/compute.readonly"
120551	//   ]
120552	// }
120553
120554}
120555
120556// Pages invokes f for each page of results.
120557// A non-nil error returned from f will halt the iteration.
120558// The provided context supersedes any context provided to the Context method.
120559func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
120560	c.ctx_ = ctx
120561	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120562	for {
120563		x, err := c.Do()
120564		if err != nil {
120565			return err
120566		}
120567		if err := f(x); err != nil {
120568			return err
120569		}
120570		if x.NextPageToken == "" {
120571			return nil
120572		}
120573		c.PageToken(x.NextPageToken)
120574	}
120575}
120576
120577// method id "compute.publicDelegatedPrefixes.delete":
120578
120579type PublicDelegatedPrefixesDeleteCall struct {
120580	s                     *Service
120581	project               string
120582	region                string
120583	publicDelegatedPrefix string
120584	urlParams_            gensupport.URLParams
120585	ctx_                  context.Context
120586	header_               http.Header
120587}
120588
120589// Delete: Deletes the specified PublicDelegatedPrefix in the given
120590// region.
120591func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
120592	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120593	c.project = project
120594	c.region = region
120595	c.publicDelegatedPrefix = publicDelegatedPrefix
120596	return c
120597}
120598
120599// RequestId sets the optional parameter "requestId": An optional
120600// request ID to identify requests. Specify a unique request ID so that
120601// if you must retry your request, the server will know to ignore the
120602// request if it has already been completed.
120603//
120604// For example, consider a situation where you make an initial request
120605// and the request times out. If you make the request again with the
120606// same request ID, the server can check if original operation with the
120607// same request ID was received, and if so, will ignore the second
120608// request. This prevents clients from accidentally creating duplicate
120609// commitments.
120610//
120611// The request ID must be a valid UUID with the exception that zero UUID
120612// is not supported (00000000-0000-0000-0000-000000000000).
120613func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
120614	c.urlParams_.Set("requestId", requestId)
120615	return c
120616}
120617
120618// Fields allows partial responses to be retrieved. See
120619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120620// for more information.
120621func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
120622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120623	return c
120624}
120625
120626// Context sets the context to be used in this call's Do method. Any
120627// pending HTTP request will be aborted if the provided context is
120628// canceled.
120629func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
120630	c.ctx_ = ctx
120631	return c
120632}
120633
120634// Header returns an http.Header that can be modified by the caller to
120635// add HTTP headers to the request.
120636func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
120637	if c.header_ == nil {
120638		c.header_ = make(http.Header)
120639	}
120640	return c.header_
120641}
120642
120643func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
120644	reqHeaders := make(http.Header)
120645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
120646	for k, v := range c.header_ {
120647		reqHeaders[k] = v
120648	}
120649	reqHeaders.Set("User-Agent", c.s.userAgent())
120650	var body io.Reader = nil
120651	c.urlParams_.Set("alt", alt)
120652	c.urlParams_.Set("prettyPrint", "false")
120653	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
120654	urls += "?" + c.urlParams_.Encode()
120655	req, err := http.NewRequest("DELETE", urls, body)
120656	if err != nil {
120657		return nil, err
120658	}
120659	req.Header = reqHeaders
120660	googleapi.Expand(req.URL, map[string]string{
120661		"project":               c.project,
120662		"region":                c.region,
120663		"publicDelegatedPrefix": c.publicDelegatedPrefix,
120664	})
120665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120666}
120667
120668// Do executes the "compute.publicDelegatedPrefixes.delete" call.
120669// Exactly one of *Operation or error will be non-nil. Any non-2xx
120670// status code is an error. Response headers are in either
120671// *Operation.ServerResponse.Header or (if a response was returned at
120672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120673// to check whether the returned error was because
120674// http.StatusNotModified was returned.
120675func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120676	gensupport.SetOptions(c.urlParams_, opts...)
120677	res, err := c.doRequest("json")
120678	if res != nil && res.StatusCode == http.StatusNotModified {
120679		if res.Body != nil {
120680			res.Body.Close()
120681		}
120682		return nil, &googleapi.Error{
120683			Code:   res.StatusCode,
120684			Header: res.Header,
120685		}
120686	}
120687	if err != nil {
120688		return nil, err
120689	}
120690	defer googleapi.CloseBody(res)
120691	if err := googleapi.CheckResponse(res); err != nil {
120692		return nil, err
120693	}
120694	ret := &Operation{
120695		ServerResponse: googleapi.ServerResponse{
120696			Header:         res.Header,
120697			HTTPStatusCode: res.StatusCode,
120698		},
120699	}
120700	target := &ret
120701	if err := gensupport.DecodeResponse(target, res); err != nil {
120702		return nil, err
120703	}
120704	return ret, nil
120705	// {
120706	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
120707	//   "httpMethod": "DELETE",
120708	//   "id": "compute.publicDelegatedPrefixes.delete",
120709	//   "parameterOrder": [
120710	//     "project",
120711	//     "region",
120712	//     "publicDelegatedPrefix"
120713	//   ],
120714	//   "parameters": {
120715	//     "project": {
120716	//       "description": "Project ID for this request.",
120717	//       "location": "path",
120718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120719	//       "required": true,
120720	//       "type": "string"
120721	//     },
120722	//     "publicDelegatedPrefix": {
120723	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
120724	//       "location": "path",
120725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120726	//       "required": true,
120727	//       "type": "string"
120728	//     },
120729	//     "region": {
120730	//       "description": "Name of the region of this request.",
120731	//       "location": "path",
120732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120733	//       "required": true,
120734	//       "type": "string"
120735	//     },
120736	//     "requestId": {
120737	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120738	//       "location": "query",
120739	//       "type": "string"
120740	//     }
120741	//   },
120742	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
120743	//   "response": {
120744	//     "$ref": "Operation"
120745	//   },
120746	//   "scopes": [
120747	//     "https://www.googleapis.com/auth/cloud-platform",
120748	//     "https://www.googleapis.com/auth/compute"
120749	//   ]
120750	// }
120751
120752}
120753
120754// method id "compute.publicDelegatedPrefixes.get":
120755
120756type PublicDelegatedPrefixesGetCall struct {
120757	s                     *Service
120758	project               string
120759	region                string
120760	publicDelegatedPrefix string
120761	urlParams_            gensupport.URLParams
120762	ifNoneMatch_          string
120763	ctx_                  context.Context
120764	header_               http.Header
120765}
120766
120767// Get: Returns the specified PublicDelegatedPrefix resource in the
120768// given region.
120769func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
120770	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120771	c.project = project
120772	c.region = region
120773	c.publicDelegatedPrefix = publicDelegatedPrefix
120774	return c
120775}
120776
120777// Fields allows partial responses to be retrieved. See
120778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120779// for more information.
120780func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
120781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120782	return c
120783}
120784
120785// IfNoneMatch sets the optional parameter which makes the operation
120786// fail if the object's ETag matches the given value. This is useful for
120787// getting updates only after the object has changed since the last
120788// request. Use googleapi.IsNotModified to check whether the response
120789// error from Do is the result of In-None-Match.
120790func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
120791	c.ifNoneMatch_ = entityTag
120792	return c
120793}
120794
120795// Context sets the context to be used in this call's Do method. Any
120796// pending HTTP request will be aborted if the provided context is
120797// canceled.
120798func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
120799	c.ctx_ = ctx
120800	return c
120801}
120802
120803// Header returns an http.Header that can be modified by the caller to
120804// add HTTP headers to the request.
120805func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
120806	if c.header_ == nil {
120807		c.header_ = make(http.Header)
120808	}
120809	return c.header_
120810}
120811
120812func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
120813	reqHeaders := make(http.Header)
120814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
120815	for k, v := range c.header_ {
120816		reqHeaders[k] = v
120817	}
120818	reqHeaders.Set("User-Agent", c.s.userAgent())
120819	if c.ifNoneMatch_ != "" {
120820		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120821	}
120822	var body io.Reader = nil
120823	c.urlParams_.Set("alt", alt)
120824	c.urlParams_.Set("prettyPrint", "false")
120825	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
120826	urls += "?" + c.urlParams_.Encode()
120827	req, err := http.NewRequest("GET", urls, body)
120828	if err != nil {
120829		return nil, err
120830	}
120831	req.Header = reqHeaders
120832	googleapi.Expand(req.URL, map[string]string{
120833		"project":               c.project,
120834		"region":                c.region,
120835		"publicDelegatedPrefix": c.publicDelegatedPrefix,
120836	})
120837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120838}
120839
120840// Do executes the "compute.publicDelegatedPrefixes.get" call.
120841// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
120842// non-2xx status code is an error. Response headers are in either
120843// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
120844// returned at all) in error.(*googleapi.Error).Header. Use
120845// googleapi.IsNotModified to check whether the returned error was
120846// because http.StatusNotModified was returned.
120847func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
120848	gensupport.SetOptions(c.urlParams_, opts...)
120849	res, err := c.doRequest("json")
120850	if res != nil && res.StatusCode == http.StatusNotModified {
120851		if res.Body != nil {
120852			res.Body.Close()
120853		}
120854		return nil, &googleapi.Error{
120855			Code:   res.StatusCode,
120856			Header: res.Header,
120857		}
120858	}
120859	if err != nil {
120860		return nil, err
120861	}
120862	defer googleapi.CloseBody(res)
120863	if err := googleapi.CheckResponse(res); err != nil {
120864		return nil, err
120865	}
120866	ret := &PublicDelegatedPrefix{
120867		ServerResponse: googleapi.ServerResponse{
120868			Header:         res.Header,
120869			HTTPStatusCode: res.StatusCode,
120870		},
120871	}
120872	target := &ret
120873	if err := gensupport.DecodeResponse(target, res); err != nil {
120874		return nil, err
120875	}
120876	return ret, nil
120877	// {
120878	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
120879	//   "httpMethod": "GET",
120880	//   "id": "compute.publicDelegatedPrefixes.get",
120881	//   "parameterOrder": [
120882	//     "project",
120883	//     "region",
120884	//     "publicDelegatedPrefix"
120885	//   ],
120886	//   "parameters": {
120887	//     "project": {
120888	//       "description": "Project ID for this request.",
120889	//       "location": "path",
120890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120891	//       "required": true,
120892	//       "type": "string"
120893	//     },
120894	//     "publicDelegatedPrefix": {
120895	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
120896	//       "location": "path",
120897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120898	//       "required": true,
120899	//       "type": "string"
120900	//     },
120901	//     "region": {
120902	//       "description": "Name of the region of this request.",
120903	//       "location": "path",
120904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120905	//       "required": true,
120906	//       "type": "string"
120907	//     }
120908	//   },
120909	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
120910	//   "response": {
120911	//     "$ref": "PublicDelegatedPrefix"
120912	//   },
120913	//   "scopes": [
120914	//     "https://www.googleapis.com/auth/cloud-platform",
120915	//     "https://www.googleapis.com/auth/compute",
120916	//     "https://www.googleapis.com/auth/compute.readonly"
120917	//   ]
120918	// }
120919
120920}
120921
120922// method id "compute.publicDelegatedPrefixes.insert":
120923
120924type PublicDelegatedPrefixesInsertCall struct {
120925	s                     *Service
120926	project               string
120927	region                string
120928	publicdelegatedprefix *PublicDelegatedPrefix
120929	urlParams_            gensupport.URLParams
120930	ctx_                  context.Context
120931	header_               http.Header
120932}
120933
120934// Insert: Creates a PublicDelegatedPrefix in the specified project in
120935// the given region using the parameters that are included in the
120936// request.
120937func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
120938	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120939	c.project = project
120940	c.region = region
120941	c.publicdelegatedprefix = publicdelegatedprefix
120942	return c
120943}
120944
120945// RequestId sets the optional parameter "requestId": An optional
120946// request ID to identify requests. Specify a unique request ID so that
120947// if you must retry your request, the server will know to ignore the
120948// request if it has already been completed.
120949//
120950// For example, consider a situation where you make an initial request
120951// and the request times out. If you make the request again with the
120952// same request ID, the server can check if original operation with the
120953// same request ID was received, and if so, will ignore the second
120954// request. This prevents clients from accidentally creating duplicate
120955// commitments.
120956//
120957// The request ID must be a valid UUID with the exception that zero UUID
120958// is not supported (00000000-0000-0000-0000-000000000000).
120959func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
120960	c.urlParams_.Set("requestId", requestId)
120961	return c
120962}
120963
120964// Fields allows partial responses to be retrieved. See
120965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120966// for more information.
120967func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
120968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120969	return c
120970}
120971
120972// Context sets the context to be used in this call's Do method. Any
120973// pending HTTP request will be aborted if the provided context is
120974// canceled.
120975func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
120976	c.ctx_ = ctx
120977	return c
120978}
120979
120980// Header returns an http.Header that can be modified by the caller to
120981// add HTTP headers to the request.
120982func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
120983	if c.header_ == nil {
120984		c.header_ = make(http.Header)
120985	}
120986	return c.header_
120987}
120988
120989func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
120990	reqHeaders := make(http.Header)
120991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
120992	for k, v := range c.header_ {
120993		reqHeaders[k] = v
120994	}
120995	reqHeaders.Set("User-Agent", c.s.userAgent())
120996	var body io.Reader = nil
120997	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
120998	if err != nil {
120999		return nil, err
121000	}
121001	reqHeaders.Set("Content-Type", "application/json")
121002	c.urlParams_.Set("alt", alt)
121003	c.urlParams_.Set("prettyPrint", "false")
121004	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes")
121005	urls += "?" + c.urlParams_.Encode()
121006	req, err := http.NewRequest("POST", urls, body)
121007	if err != nil {
121008		return nil, err
121009	}
121010	req.Header = reqHeaders
121011	googleapi.Expand(req.URL, map[string]string{
121012		"project": c.project,
121013		"region":  c.region,
121014	})
121015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121016}
121017
121018// Do executes the "compute.publicDelegatedPrefixes.insert" call.
121019// Exactly one of *Operation or error will be non-nil. Any non-2xx
121020// status code is an error. Response headers are in either
121021// *Operation.ServerResponse.Header or (if a response was returned at
121022// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121023// to check whether the returned error was because
121024// http.StatusNotModified was returned.
121025func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121026	gensupport.SetOptions(c.urlParams_, opts...)
121027	res, err := c.doRequest("json")
121028	if res != nil && res.StatusCode == http.StatusNotModified {
121029		if res.Body != nil {
121030			res.Body.Close()
121031		}
121032		return nil, &googleapi.Error{
121033			Code:   res.StatusCode,
121034			Header: res.Header,
121035		}
121036	}
121037	if err != nil {
121038		return nil, err
121039	}
121040	defer googleapi.CloseBody(res)
121041	if err := googleapi.CheckResponse(res); err != nil {
121042		return nil, err
121043	}
121044	ret := &Operation{
121045		ServerResponse: googleapi.ServerResponse{
121046			Header:         res.Header,
121047			HTTPStatusCode: res.StatusCode,
121048		},
121049	}
121050	target := &ret
121051	if err := gensupport.DecodeResponse(target, res); err != nil {
121052		return nil, err
121053	}
121054	return ret, nil
121055	// {
121056	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.",
121057	//   "httpMethod": "POST",
121058	//   "id": "compute.publicDelegatedPrefixes.insert",
121059	//   "parameterOrder": [
121060	//     "project",
121061	//     "region"
121062	//   ],
121063	//   "parameters": {
121064	//     "project": {
121065	//       "description": "Project ID for this request.",
121066	//       "location": "path",
121067	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121068	//       "required": true,
121069	//       "type": "string"
121070	//     },
121071	//     "region": {
121072	//       "description": "Name of the region of this request.",
121073	//       "location": "path",
121074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121075	//       "required": true,
121076	//       "type": "string"
121077	//     },
121078	//     "requestId": {
121079	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121080	//       "location": "query",
121081	//       "type": "string"
121082	//     }
121083	//   },
121084	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes",
121085	//   "request": {
121086	//     "$ref": "PublicDelegatedPrefix"
121087	//   },
121088	//   "response": {
121089	//     "$ref": "Operation"
121090	//   },
121091	//   "scopes": [
121092	//     "https://www.googleapis.com/auth/cloud-platform",
121093	//     "https://www.googleapis.com/auth/compute"
121094	//   ]
121095	// }
121096
121097}
121098
121099// method id "compute.publicDelegatedPrefixes.list":
121100
121101type PublicDelegatedPrefixesListCall struct {
121102	s            *Service
121103	project      string
121104	region       string
121105	urlParams_   gensupport.URLParams
121106	ifNoneMatch_ string
121107	ctx_         context.Context
121108	header_      http.Header
121109}
121110
121111// List: Lists the PublicDelegatedPrefixes for a project in the given
121112// region.
121113func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
121114	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121115	c.project = project
121116	c.region = region
121117	return c
121118}
121119
121120// Filter sets the optional parameter "filter": A filter expression that
121121// filters resources listed in the response. The expression must specify
121122// the field name, a comparison operator, and the value that you want to
121123// use for filtering. The value must be a string, a number, or a
121124// boolean. The comparison operator must be either `=`, `!=`, `>`, or
121125// `<`.
121126//
121127// For example, if you are filtering Compute Engine instances, you can
121128// exclude instances named `example-instance` by specifying `name !=
121129// example-instance`.
121130//
121131// You can also filter nested fields. For example, you could specify
121132// `scheduling.automaticRestart = false` to include instances only if
121133// they are not scheduled for automatic restarts. You can use filtering
121134// on nested fields to filter based on resource labels.
121135//
121136// To filter on multiple expressions, provide each separate expression
121137// within parentheses. For example: ``` (scheduling.automaticRestart =
121138// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
121139// is an `AND` expression. However, you can include `AND` and `OR`
121140// expressions explicitly. For example: ``` (cpuPlatform = "Intel
121141// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
121142// (scheduling.automaticRestart = true) ```
121143func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
121144	c.urlParams_.Set("filter", filter)
121145	return c
121146}
121147
121148// MaxResults sets the optional parameter "maxResults": The maximum
121149// number of results per page that should be returned. If the number of
121150// available results is larger than `maxResults`, Compute Engine returns
121151// a `nextPageToken` that can be used to get the next page of results in
121152// subsequent list requests. Acceptable values are `0` to `500`,
121153// inclusive. (Default: `500`)
121154func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
121155	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121156	return c
121157}
121158
121159// OrderBy sets the optional parameter "orderBy": Sorts list results by
121160// a certain order. By default, results are returned in alphanumerical
121161// order based on the resource name.
121162//
121163// You can also sort results in descending order based on the creation
121164// timestamp using `orderBy="creationTimestamp desc". This sorts
121165// results based on the `creationTimestamp` field in reverse
121166// chronological order (newest result first). Use this to sort resources
121167// like operations so that the newest operation is returned
121168// first.
121169//
121170// Currently, only sorting by `name` or `creationTimestamp desc` is
121171// supported.
121172func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
121173	c.urlParams_.Set("orderBy", orderBy)
121174	return c
121175}
121176
121177// PageToken sets the optional parameter "pageToken": Specifies a page
121178// token to use. Set `pageToken` to the `nextPageToken` returned by a
121179// previous list request to get the next page of results.
121180func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
121181	c.urlParams_.Set("pageToken", pageToken)
121182	return c
121183}
121184
121185// ReturnPartialSuccess sets the optional parameter
121186// "returnPartialSuccess": Opt-in for partial success behavior which
121187// provides partial results in case of failure. The default value is
121188// false and the logic is the same as today.
121189func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall {
121190	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
121191	return c
121192}
121193
121194// Fields allows partial responses to be retrieved. See
121195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121196// for more information.
121197func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
121198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121199	return c
121200}
121201
121202// IfNoneMatch sets the optional parameter which makes the operation
121203// fail if the object's ETag matches the given value. This is useful for
121204// getting updates only after the object has changed since the last
121205// request. Use googleapi.IsNotModified to check whether the response
121206// error from Do is the result of In-None-Match.
121207func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
121208	c.ifNoneMatch_ = entityTag
121209	return c
121210}
121211
121212// Context sets the context to be used in this call's Do method. Any
121213// pending HTTP request will be aborted if the provided context is
121214// canceled.
121215func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
121216	c.ctx_ = ctx
121217	return c
121218}
121219
121220// Header returns an http.Header that can be modified by the caller to
121221// add HTTP headers to the request.
121222func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
121223	if c.header_ == nil {
121224		c.header_ = make(http.Header)
121225	}
121226	return c.header_
121227}
121228
121229func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
121230	reqHeaders := make(http.Header)
121231	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
121232	for k, v := range c.header_ {
121233		reqHeaders[k] = v
121234	}
121235	reqHeaders.Set("User-Agent", c.s.userAgent())
121236	if c.ifNoneMatch_ != "" {
121237		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121238	}
121239	var body io.Reader = nil
121240	c.urlParams_.Set("alt", alt)
121241	c.urlParams_.Set("prettyPrint", "false")
121242	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes")
121243	urls += "?" + c.urlParams_.Encode()
121244	req, err := http.NewRequest("GET", urls, body)
121245	if err != nil {
121246		return nil, err
121247	}
121248	req.Header = reqHeaders
121249	googleapi.Expand(req.URL, map[string]string{
121250		"project": c.project,
121251		"region":  c.region,
121252	})
121253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121254}
121255
121256// Do executes the "compute.publicDelegatedPrefixes.list" call.
121257// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
121258// Any non-2xx status code is an error. Response headers are in either
121259// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
121260// was returned at all) in error.(*googleapi.Error).Header. Use
121261// googleapi.IsNotModified to check whether the returned error was
121262// because http.StatusNotModified was returned.
121263func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
121264	gensupport.SetOptions(c.urlParams_, opts...)
121265	res, err := c.doRequest("json")
121266	if res != nil && res.StatusCode == http.StatusNotModified {
121267		if res.Body != nil {
121268			res.Body.Close()
121269		}
121270		return nil, &googleapi.Error{
121271			Code:   res.StatusCode,
121272			Header: res.Header,
121273		}
121274	}
121275	if err != nil {
121276		return nil, err
121277	}
121278	defer googleapi.CloseBody(res)
121279	if err := googleapi.CheckResponse(res); err != nil {
121280		return nil, err
121281	}
121282	ret := &PublicDelegatedPrefixList{
121283		ServerResponse: googleapi.ServerResponse{
121284			Header:         res.Header,
121285			HTTPStatusCode: res.StatusCode,
121286		},
121287	}
121288	target := &ret
121289	if err := gensupport.DecodeResponse(target, res); err != nil {
121290		return nil, err
121291	}
121292	return ret, nil
121293	// {
121294	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
121295	//   "httpMethod": "GET",
121296	//   "id": "compute.publicDelegatedPrefixes.list",
121297	//   "parameterOrder": [
121298	//     "project",
121299	//     "region"
121300	//   ],
121301	//   "parameters": {
121302	//     "filter": {
121303	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
121304	//       "location": "query",
121305	//       "type": "string"
121306	//     },
121307	//     "maxResults": {
121308	//       "default": "500",
121309	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
121310	//       "format": "uint32",
121311	//       "location": "query",
121312	//       "minimum": "0",
121313	//       "type": "integer"
121314	//     },
121315	//     "orderBy": {
121316	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
121317	//       "location": "query",
121318	//       "type": "string"
121319	//     },
121320	//     "pageToken": {
121321	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
121322	//       "location": "query",
121323	//       "type": "string"
121324	//     },
121325	//     "project": {
121326	//       "description": "Project ID for this request.",
121327	//       "location": "path",
121328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121329	//       "required": true,
121330	//       "type": "string"
121331	//     },
121332	//     "region": {
121333	//       "description": "Name of the region of this request.",
121334	//       "location": "path",
121335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121336	//       "required": true,
121337	//       "type": "string"
121338	//     },
121339	//     "returnPartialSuccess": {
121340	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
121341	//       "location": "query",
121342	//       "type": "boolean"
121343	//     }
121344	//   },
121345	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes",
121346	//   "response": {
121347	//     "$ref": "PublicDelegatedPrefixList"
121348	//   },
121349	//   "scopes": [
121350	//     "https://www.googleapis.com/auth/cloud-platform",
121351	//     "https://www.googleapis.com/auth/compute",
121352	//     "https://www.googleapis.com/auth/compute.readonly"
121353	//   ]
121354	// }
121355
121356}
121357
121358// Pages invokes f for each page of results.
121359// A non-nil error returned from f will halt the iteration.
121360// The provided context supersedes any context provided to the Context method.
121361func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
121362	c.ctx_ = ctx
121363	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121364	for {
121365		x, err := c.Do()
121366		if err != nil {
121367			return err
121368		}
121369		if err := f(x); err != nil {
121370			return err
121371		}
121372		if x.NextPageToken == "" {
121373			return nil
121374		}
121375		c.PageToken(x.NextPageToken)
121376	}
121377}
121378
121379// method id "compute.publicDelegatedPrefixes.patch":
121380
121381type PublicDelegatedPrefixesPatchCall struct {
121382	s                     *Service
121383	project               string
121384	region                string
121385	publicDelegatedPrefix string
121386	publicdelegatedprefix *PublicDelegatedPrefix
121387	urlParams_            gensupport.URLParams
121388	ctx_                  context.Context
121389	header_               http.Header
121390}
121391
121392// Patch: Patches the specified PublicDelegatedPrefix resource with the
121393// data included in the request. This method supports PATCH semantics
121394// and uses JSON merge patch format and processing rules.
121395func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
121396	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121397	c.project = project
121398	c.region = region
121399	c.publicDelegatedPrefix = publicDelegatedPrefix
121400	c.publicdelegatedprefix = publicdelegatedprefix
121401	return c
121402}
121403
121404// RequestId sets the optional parameter "requestId": An optional
121405// request ID to identify requests. Specify a unique request ID so that
121406// if you must retry your request, the server will know to ignore the
121407// request if it has already been completed.
121408//
121409// For example, consider a situation where you make an initial request
121410// and the request times out. If you make the request again with the
121411// same request ID, the server can check if original operation with the
121412// same request ID was received, and if so, will ignore the second
121413// request. This prevents clients from accidentally creating duplicate
121414// commitments.
121415//
121416// The request ID must be a valid UUID with the exception that zero UUID
121417// is not supported (00000000-0000-0000-0000-000000000000).
121418func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
121419	c.urlParams_.Set("requestId", requestId)
121420	return c
121421}
121422
121423// Fields allows partial responses to be retrieved. See
121424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121425// for more information.
121426func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
121427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121428	return c
121429}
121430
121431// Context sets the context to be used in this call's Do method. Any
121432// pending HTTP request will be aborted if the provided context is
121433// canceled.
121434func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
121435	c.ctx_ = ctx
121436	return c
121437}
121438
121439// Header returns an http.Header that can be modified by the caller to
121440// add HTTP headers to the request.
121441func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
121442	if c.header_ == nil {
121443		c.header_ = make(http.Header)
121444	}
121445	return c.header_
121446}
121447
121448func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
121449	reqHeaders := make(http.Header)
121450	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
121451	for k, v := range c.header_ {
121452		reqHeaders[k] = v
121453	}
121454	reqHeaders.Set("User-Agent", c.s.userAgent())
121455	var body io.Reader = nil
121456	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
121457	if err != nil {
121458		return nil, err
121459	}
121460	reqHeaders.Set("Content-Type", "application/json")
121461	c.urlParams_.Set("alt", alt)
121462	c.urlParams_.Set("prettyPrint", "false")
121463	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
121464	urls += "?" + c.urlParams_.Encode()
121465	req, err := http.NewRequest("PATCH", urls, body)
121466	if err != nil {
121467		return nil, err
121468	}
121469	req.Header = reqHeaders
121470	googleapi.Expand(req.URL, map[string]string{
121471		"project":               c.project,
121472		"region":                c.region,
121473		"publicDelegatedPrefix": c.publicDelegatedPrefix,
121474	})
121475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121476}
121477
121478// Do executes the "compute.publicDelegatedPrefixes.patch" call.
121479// Exactly one of *Operation or error will be non-nil. Any non-2xx
121480// status code is an error. Response headers are in either
121481// *Operation.ServerResponse.Header or (if a response was returned at
121482// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121483// to check whether the returned error was because
121484// http.StatusNotModified was returned.
121485func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121486	gensupport.SetOptions(c.urlParams_, opts...)
121487	res, err := c.doRequest("json")
121488	if res != nil && res.StatusCode == http.StatusNotModified {
121489		if res.Body != nil {
121490			res.Body.Close()
121491		}
121492		return nil, &googleapi.Error{
121493			Code:   res.StatusCode,
121494			Header: res.Header,
121495		}
121496	}
121497	if err != nil {
121498		return nil, err
121499	}
121500	defer googleapi.CloseBody(res)
121501	if err := googleapi.CheckResponse(res); err != nil {
121502		return nil, err
121503	}
121504	ret := &Operation{
121505		ServerResponse: googleapi.ServerResponse{
121506			Header:         res.Header,
121507			HTTPStatusCode: res.StatusCode,
121508		},
121509	}
121510	target := &ret
121511	if err := gensupport.DecodeResponse(target, res); err != nil {
121512		return nil, err
121513	}
121514	return ret, nil
121515	// {
121516	//   "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.",
121517	//   "httpMethod": "PATCH",
121518	//   "id": "compute.publicDelegatedPrefixes.patch",
121519	//   "parameterOrder": [
121520	//     "project",
121521	//     "region",
121522	//     "publicDelegatedPrefix"
121523	//   ],
121524	//   "parameters": {
121525	//     "project": {
121526	//       "description": "Project ID for this request.",
121527	//       "location": "path",
121528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121529	//       "required": true,
121530	//       "type": "string"
121531	//     },
121532	//     "publicDelegatedPrefix": {
121533	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
121534	//       "location": "path",
121535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121536	//       "required": true,
121537	//       "type": "string"
121538	//     },
121539	//     "region": {
121540	//       "description": "Name of the region for this request.",
121541	//       "location": "path",
121542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121543	//       "required": true,
121544	//       "type": "string"
121545	//     },
121546	//     "requestId": {
121547	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121548	//       "location": "query",
121549	//       "type": "string"
121550	//     }
121551	//   },
121552	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
121553	//   "request": {
121554	//     "$ref": "PublicDelegatedPrefix"
121555	//   },
121556	//   "response": {
121557	//     "$ref": "Operation"
121558	//   },
121559	//   "scopes": [
121560	//     "https://www.googleapis.com/auth/cloud-platform",
121561	//     "https://www.googleapis.com/auth/compute"
121562	//   ]
121563	// }
121564
121565}
121566
121567// method id "compute.regionAutoscalers.delete":
121568
121569type RegionAutoscalersDeleteCall struct {
121570	s          *Service
121571	project    string
121572	region     string
121573	autoscaler string
121574	urlParams_ gensupport.URLParams
121575	ctx_       context.Context
121576	header_    http.Header
121577}
121578
121579// Delete: Deletes the specified autoscaler.
121580func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
121581	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121582	c.project = project
121583	c.region = region
121584	c.autoscaler = autoscaler
121585	return c
121586}
121587
121588// RequestId sets the optional parameter "requestId": An optional
121589// request ID to identify requests. Specify a unique request ID so that
121590// if you must retry your request, the server will know to ignore the
121591// request if it has already been completed.
121592//
121593// For example, consider a situation where you make an initial request
121594// and the request times out. If you make the request again with the
121595// same request ID, the server can check if original operation with the
121596// same request ID was received, and if so, will ignore the second
121597// request. This prevents clients from accidentally creating duplicate
121598// commitments.
121599//
121600// The request ID must be a valid UUID with the exception that zero UUID
121601// is not supported (00000000-0000-0000-0000-000000000000).
121602func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
121603	c.urlParams_.Set("requestId", requestId)
121604	return c
121605}
121606
121607// Fields allows partial responses to be retrieved. See
121608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121609// for more information.
121610func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
121611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121612	return c
121613}
121614
121615// Context sets the context to be used in this call's Do method. Any
121616// pending HTTP request will be aborted if the provided context is
121617// canceled.
121618func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
121619	c.ctx_ = ctx
121620	return c
121621}
121622
121623// Header returns an http.Header that can be modified by the caller to
121624// add HTTP headers to the request.
121625func (c *RegionAutoscalersDeleteCall) Header() http.Header {
121626	if c.header_ == nil {
121627		c.header_ = make(http.Header)
121628	}
121629	return c.header_
121630}
121631
121632func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
121633	reqHeaders := make(http.Header)
121634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
121635	for k, v := range c.header_ {
121636		reqHeaders[k] = v
121637	}
121638	reqHeaders.Set("User-Agent", c.s.userAgent())
121639	var body io.Reader = nil
121640	c.urlParams_.Set("alt", alt)
121641	c.urlParams_.Set("prettyPrint", "false")
121642	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
121643	urls += "?" + c.urlParams_.Encode()
121644	req, err := http.NewRequest("DELETE", urls, body)
121645	if err != nil {
121646		return nil, err
121647	}
121648	req.Header = reqHeaders
121649	googleapi.Expand(req.URL, map[string]string{
121650		"project":    c.project,
121651		"region":     c.region,
121652		"autoscaler": c.autoscaler,
121653	})
121654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121655}
121656
121657// Do executes the "compute.regionAutoscalers.delete" call.
121658// Exactly one of *Operation or error will be non-nil. Any non-2xx
121659// status code is an error. Response headers are in either
121660// *Operation.ServerResponse.Header or (if a response was returned at
121661// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121662// to check whether the returned error was because
121663// http.StatusNotModified was returned.
121664func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121665	gensupport.SetOptions(c.urlParams_, opts...)
121666	res, err := c.doRequest("json")
121667	if res != nil && res.StatusCode == http.StatusNotModified {
121668		if res.Body != nil {
121669			res.Body.Close()
121670		}
121671		return nil, &googleapi.Error{
121672			Code:   res.StatusCode,
121673			Header: res.Header,
121674		}
121675	}
121676	if err != nil {
121677		return nil, err
121678	}
121679	defer googleapi.CloseBody(res)
121680	if err := googleapi.CheckResponse(res); err != nil {
121681		return nil, err
121682	}
121683	ret := &Operation{
121684		ServerResponse: googleapi.ServerResponse{
121685			Header:         res.Header,
121686			HTTPStatusCode: res.StatusCode,
121687		},
121688	}
121689	target := &ret
121690	if err := gensupport.DecodeResponse(target, res); err != nil {
121691		return nil, err
121692	}
121693	return ret, nil
121694	// {
121695	//   "description": "Deletes the specified autoscaler.",
121696	//   "httpMethod": "DELETE",
121697	//   "id": "compute.regionAutoscalers.delete",
121698	//   "parameterOrder": [
121699	//     "project",
121700	//     "region",
121701	//     "autoscaler"
121702	//   ],
121703	//   "parameters": {
121704	//     "autoscaler": {
121705	//       "description": "Name of the autoscaler to delete.",
121706	//       "location": "path",
121707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121708	//       "required": true,
121709	//       "type": "string"
121710	//     },
121711	//     "project": {
121712	//       "description": "Project ID for this request.",
121713	//       "location": "path",
121714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121715	//       "required": true,
121716	//       "type": "string"
121717	//     },
121718	//     "region": {
121719	//       "description": "Name of the region scoping this request.",
121720	//       "location": "path",
121721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121722	//       "required": true,
121723	//       "type": "string"
121724	//     },
121725	//     "requestId": {
121726	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121727	//       "location": "query",
121728	//       "type": "string"
121729	//     }
121730	//   },
121731	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
121732	//   "response": {
121733	//     "$ref": "Operation"
121734	//   },
121735	//   "scopes": [
121736	//     "https://www.googleapis.com/auth/cloud-platform",
121737	//     "https://www.googleapis.com/auth/compute"
121738	//   ]
121739	// }
121740
121741}
121742
121743// method id "compute.regionAutoscalers.get":
121744
121745type RegionAutoscalersGetCall struct {
121746	s            *Service
121747	project      string
121748	region       string
121749	autoscaler   string
121750	urlParams_   gensupport.URLParams
121751	ifNoneMatch_ string
121752	ctx_         context.Context
121753	header_      http.Header
121754}
121755
121756// Get: Returns the specified autoscaler.
121757func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
121758	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121759	c.project = project
121760	c.region = region
121761	c.autoscaler = autoscaler
121762	return c
121763}
121764
121765// Fields allows partial responses to be retrieved. See
121766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121767// for more information.
121768func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
121769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121770	return c
121771}
121772
121773// IfNoneMatch sets the optional parameter which makes the operation
121774// fail if the object's ETag matches the given value. This is useful for
121775// getting updates only after the object has changed since the last
121776// request. Use googleapi.IsNotModified to check whether the response
121777// error from Do is the result of In-None-Match.
121778func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
121779	c.ifNoneMatch_ = entityTag
121780	return c
121781}
121782
121783// Context sets the context to be used in this call's Do method. Any
121784// pending HTTP request will be aborted if the provided context is
121785// canceled.
121786func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
121787	c.ctx_ = ctx
121788	return c
121789}
121790
121791// Header returns an http.Header that can be modified by the caller to
121792// add HTTP headers to the request.
121793func (c *RegionAutoscalersGetCall) Header() http.Header {
121794	if c.header_ == nil {
121795		c.header_ = make(http.Header)
121796	}
121797	return c.header_
121798}
121799
121800func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
121801	reqHeaders := make(http.Header)
121802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
121803	for k, v := range c.header_ {
121804		reqHeaders[k] = v
121805	}
121806	reqHeaders.Set("User-Agent", c.s.userAgent())
121807	if c.ifNoneMatch_ != "" {
121808		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121809	}
121810	var body io.Reader = nil
121811	c.urlParams_.Set("alt", alt)
121812	c.urlParams_.Set("prettyPrint", "false")
121813	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
121814	urls += "?" + c.urlParams_.Encode()
121815	req, err := http.NewRequest("GET", urls, body)
121816	if err != nil {
121817		return nil, err
121818	}
121819	req.Header = reqHeaders
121820	googleapi.Expand(req.URL, map[string]string{
121821		"project":    c.project,
121822		"region":     c.region,
121823		"autoscaler": c.autoscaler,
121824	})
121825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121826}
121827
121828// Do executes the "compute.regionAutoscalers.get" call.
121829// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
121830// status code is an error. Response headers are in either
121831// *Autoscaler.ServerResponse.Header or (if a response was returned at
121832// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121833// to check whether the returned error was because
121834// http.StatusNotModified was returned.
121835func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
121836	gensupport.SetOptions(c.urlParams_, opts...)
121837	res, err := c.doRequest("json")
121838	if res != nil && res.StatusCode == http.StatusNotModified {
121839		if res.Body != nil {
121840			res.Body.Close()
121841		}
121842		return nil, &googleapi.Error{
121843			Code:   res.StatusCode,
121844			Header: res.Header,
121845		}
121846	}
121847	if err != nil {
121848		return nil, err
121849	}
121850	defer googleapi.CloseBody(res)
121851	if err := googleapi.CheckResponse(res); err != nil {
121852		return nil, err
121853	}
121854	ret := &Autoscaler{
121855		ServerResponse: googleapi.ServerResponse{
121856			Header:         res.Header,
121857			HTTPStatusCode: res.StatusCode,
121858		},
121859	}
121860	target := &ret
121861	if err := gensupport.DecodeResponse(target, res); err != nil {
121862		return nil, err
121863	}
121864	return ret, nil
121865	// {
121866	//   "description": "Returns the specified autoscaler.",
121867	//   "httpMethod": "GET",
121868	//   "id": "compute.regionAutoscalers.get",
121869	//   "parameterOrder": [
121870	//     "project",
121871	//     "region",
121872	//     "autoscaler"
121873	//   ],
121874	//   "parameters": {
121875	//     "autoscaler": {
121876	//       "description": "Name of the autoscaler to return.",
121877	//       "location": "path",
121878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121879	//       "required": true,
121880	//       "type": "string"
121881	//     },
121882	//     "project": {
121883	//       "description": "Project ID for this request.",
121884	//       "location": "path",
121885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121886	//       "required": true,
121887	//       "type": "string"
121888	//     },
121889	//     "region": {
121890	//       "description": "Name of the region scoping this request.",
121891	//       "location": "path",
121892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121893	//       "required": true,
121894	//       "type": "string"
121895	//     }
121896	//   },
121897	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
121898	//   "response": {
121899	//     "$ref": "Autoscaler"
121900	//   },
121901	//   "scopes": [
121902	//     "https://www.googleapis.com/auth/cloud-platform",
121903	//     "https://www.googleapis.com/auth/compute",
121904	//     "https://www.googleapis.com/auth/compute.readonly"
121905	//   ]
121906	// }
121907
121908}
121909
121910// method id "compute.regionAutoscalers.insert":
121911
121912type RegionAutoscalersInsertCall struct {
121913	s          *Service
121914	project    string
121915	region     string
121916	autoscaler *Autoscaler
121917	urlParams_ gensupport.URLParams
121918	ctx_       context.Context
121919	header_    http.Header
121920}
121921
121922// Insert: Creates an autoscaler in the specified project using the data
121923// included in the request.
121924func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
121925	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121926	c.project = project
121927	c.region = region
121928	c.autoscaler = autoscaler
121929	return c
121930}
121931
121932// RequestId sets the optional parameter "requestId": An optional
121933// request ID to identify requests. Specify a unique request ID so that
121934// if you must retry your request, the server will know to ignore the
121935// request if it has already been completed.
121936//
121937// For example, consider a situation where you make an initial request
121938// and the request times out. If you make the request again with the
121939// same request ID, the server can check if original operation with the
121940// same request ID was received, and if so, will ignore the second
121941// request. This prevents clients from accidentally creating duplicate
121942// commitments.
121943//
121944// The request ID must be a valid UUID with the exception that zero UUID
121945// is not supported (00000000-0000-0000-0000-000000000000).
121946func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
121947	c.urlParams_.Set("requestId", requestId)
121948	return c
121949}
121950
121951// Fields allows partial responses to be retrieved. See
121952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121953// for more information.
121954func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
121955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121956	return c
121957}
121958
121959// Context sets the context to be used in this call's Do method. Any
121960// pending HTTP request will be aborted if the provided context is
121961// canceled.
121962func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
121963	c.ctx_ = ctx
121964	return c
121965}
121966
121967// Header returns an http.Header that can be modified by the caller to
121968// add HTTP headers to the request.
121969func (c *RegionAutoscalersInsertCall) Header() http.Header {
121970	if c.header_ == nil {
121971		c.header_ = make(http.Header)
121972	}
121973	return c.header_
121974}
121975
121976func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
121977	reqHeaders := make(http.Header)
121978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
121979	for k, v := range c.header_ {
121980		reqHeaders[k] = v
121981	}
121982	reqHeaders.Set("User-Agent", c.s.userAgent())
121983	var body io.Reader = nil
121984	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
121985	if err != nil {
121986		return nil, err
121987	}
121988	reqHeaders.Set("Content-Type", "application/json")
121989	c.urlParams_.Set("alt", alt)
121990	c.urlParams_.Set("prettyPrint", "false")
121991	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
121992	urls += "?" + c.urlParams_.Encode()
121993	req, err := http.NewRequest("POST", urls, body)
121994	if err != nil {
121995		return nil, err
121996	}
121997	req.Header = reqHeaders
121998	googleapi.Expand(req.URL, map[string]string{
121999		"project": c.project,
122000		"region":  c.region,
122001	})
122002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122003}
122004
122005// Do executes the "compute.regionAutoscalers.insert" call.
122006// Exactly one of *Operation or error will be non-nil. Any non-2xx
122007// status code is an error. Response headers are in either
122008// *Operation.ServerResponse.Header or (if a response was returned at
122009// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122010// to check whether the returned error was because
122011// http.StatusNotModified was returned.
122012func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122013	gensupport.SetOptions(c.urlParams_, opts...)
122014	res, err := c.doRequest("json")
122015	if res != nil && res.StatusCode == http.StatusNotModified {
122016		if res.Body != nil {
122017			res.Body.Close()
122018		}
122019		return nil, &googleapi.Error{
122020			Code:   res.StatusCode,
122021			Header: res.Header,
122022		}
122023	}
122024	if err != nil {
122025		return nil, err
122026	}
122027	defer googleapi.CloseBody(res)
122028	if err := googleapi.CheckResponse(res); err != nil {
122029		return nil, err
122030	}
122031	ret := &Operation{
122032		ServerResponse: googleapi.ServerResponse{
122033			Header:         res.Header,
122034			HTTPStatusCode: res.StatusCode,
122035		},
122036	}
122037	target := &ret
122038	if err := gensupport.DecodeResponse(target, res); err != nil {
122039		return nil, err
122040	}
122041	return ret, nil
122042	// {
122043	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
122044	//   "httpMethod": "POST",
122045	//   "id": "compute.regionAutoscalers.insert",
122046	//   "parameterOrder": [
122047	//     "project",
122048	//     "region"
122049	//   ],
122050	//   "parameters": {
122051	//     "project": {
122052	//       "description": "Project ID for this request.",
122053	//       "location": "path",
122054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122055	//       "required": true,
122056	//       "type": "string"
122057	//     },
122058	//     "region": {
122059	//       "description": "Name of the region scoping this request.",
122060	//       "location": "path",
122061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122062	//       "required": true,
122063	//       "type": "string"
122064	//     },
122065	//     "requestId": {
122066	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122067	//       "location": "query",
122068	//       "type": "string"
122069	//     }
122070	//   },
122071	//   "path": "{project}/regions/{region}/autoscalers",
122072	//   "request": {
122073	//     "$ref": "Autoscaler"
122074	//   },
122075	//   "response": {
122076	//     "$ref": "Operation"
122077	//   },
122078	//   "scopes": [
122079	//     "https://www.googleapis.com/auth/cloud-platform",
122080	//     "https://www.googleapis.com/auth/compute"
122081	//   ]
122082	// }
122083
122084}
122085
122086// method id "compute.regionAutoscalers.list":
122087
122088type RegionAutoscalersListCall struct {
122089	s            *Service
122090	project      string
122091	region       string
122092	urlParams_   gensupport.URLParams
122093	ifNoneMatch_ string
122094	ctx_         context.Context
122095	header_      http.Header
122096}
122097
122098// List: Retrieves a list of autoscalers contained within the specified
122099// region.
122100func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
122101	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122102	c.project = project
122103	c.region = region
122104	return c
122105}
122106
122107// Filter sets the optional parameter "filter": A filter expression that
122108// filters resources listed in the response. The expression must specify
122109// the field name, a comparison operator, and the value that you want to
122110// use for filtering. The value must be a string, a number, or a
122111// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122112// `<`.
122113//
122114// For example, if you are filtering Compute Engine instances, you can
122115// exclude instances named `example-instance` by specifying `name !=
122116// example-instance`.
122117//
122118// You can also filter nested fields. For example, you could specify
122119// `scheduling.automaticRestart = false` to include instances only if
122120// they are not scheduled for automatic restarts. You can use filtering
122121// on nested fields to filter based on resource labels.
122122//
122123// To filter on multiple expressions, provide each separate expression
122124// within parentheses. For example: ``` (scheduling.automaticRestart =
122125// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122126// is an `AND` expression. However, you can include `AND` and `OR`
122127// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122128// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122129// (scheduling.automaticRestart = true) ```
122130func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
122131	c.urlParams_.Set("filter", filter)
122132	return c
122133}
122134
122135// MaxResults sets the optional parameter "maxResults": The maximum
122136// number of results per page that should be returned. If the number of
122137// available results is larger than `maxResults`, Compute Engine returns
122138// a `nextPageToken` that can be used to get the next page of results in
122139// subsequent list requests. Acceptable values are `0` to `500`,
122140// inclusive. (Default: `500`)
122141func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
122142	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122143	return c
122144}
122145
122146// OrderBy sets the optional parameter "orderBy": Sorts list results by
122147// a certain order. By default, results are returned in alphanumerical
122148// order based on the resource name.
122149//
122150// You can also sort results in descending order based on the creation
122151// timestamp using `orderBy="creationTimestamp desc". This sorts
122152// results based on the `creationTimestamp` field in reverse
122153// chronological order (newest result first). Use this to sort resources
122154// like operations so that the newest operation is returned
122155// first.
122156//
122157// Currently, only sorting by `name` or `creationTimestamp desc` is
122158// supported.
122159func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
122160	c.urlParams_.Set("orderBy", orderBy)
122161	return c
122162}
122163
122164// PageToken sets the optional parameter "pageToken": Specifies a page
122165// token to use. Set `pageToken` to the `nextPageToken` returned by a
122166// previous list request to get the next page of results.
122167func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
122168	c.urlParams_.Set("pageToken", pageToken)
122169	return c
122170}
122171
122172// ReturnPartialSuccess sets the optional parameter
122173// "returnPartialSuccess": Opt-in for partial success behavior which
122174// provides partial results in case of failure. The default value is
122175// false and the logic is the same as today.
122176func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall {
122177	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122178	return c
122179}
122180
122181// Fields allows partial responses to be retrieved. See
122182// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122183// for more information.
122184func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
122185	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122186	return c
122187}
122188
122189// IfNoneMatch sets the optional parameter which makes the operation
122190// fail if the object's ETag matches the given value. This is useful for
122191// getting updates only after the object has changed since the last
122192// request. Use googleapi.IsNotModified to check whether the response
122193// error from Do is the result of In-None-Match.
122194func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
122195	c.ifNoneMatch_ = entityTag
122196	return c
122197}
122198
122199// Context sets the context to be used in this call's Do method. Any
122200// pending HTTP request will be aborted if the provided context is
122201// canceled.
122202func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
122203	c.ctx_ = ctx
122204	return c
122205}
122206
122207// Header returns an http.Header that can be modified by the caller to
122208// add HTTP headers to the request.
122209func (c *RegionAutoscalersListCall) Header() http.Header {
122210	if c.header_ == nil {
122211		c.header_ = make(http.Header)
122212	}
122213	return c.header_
122214}
122215
122216func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
122217	reqHeaders := make(http.Header)
122218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
122219	for k, v := range c.header_ {
122220		reqHeaders[k] = v
122221	}
122222	reqHeaders.Set("User-Agent", c.s.userAgent())
122223	if c.ifNoneMatch_ != "" {
122224		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122225	}
122226	var body io.Reader = nil
122227	c.urlParams_.Set("alt", alt)
122228	c.urlParams_.Set("prettyPrint", "false")
122229	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
122230	urls += "?" + c.urlParams_.Encode()
122231	req, err := http.NewRequest("GET", urls, body)
122232	if err != nil {
122233		return nil, err
122234	}
122235	req.Header = reqHeaders
122236	googleapi.Expand(req.URL, map[string]string{
122237		"project": c.project,
122238		"region":  c.region,
122239	})
122240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122241}
122242
122243// Do executes the "compute.regionAutoscalers.list" call.
122244// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
122245// non-2xx status code is an error. Response headers are in either
122246// *RegionAutoscalerList.ServerResponse.Header or (if a response was
122247// returned at all) in error.(*googleapi.Error).Header. Use
122248// googleapi.IsNotModified to check whether the returned error was
122249// because http.StatusNotModified was returned.
122250func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
122251	gensupport.SetOptions(c.urlParams_, opts...)
122252	res, err := c.doRequest("json")
122253	if res != nil && res.StatusCode == http.StatusNotModified {
122254		if res.Body != nil {
122255			res.Body.Close()
122256		}
122257		return nil, &googleapi.Error{
122258			Code:   res.StatusCode,
122259			Header: res.Header,
122260		}
122261	}
122262	if err != nil {
122263		return nil, err
122264	}
122265	defer googleapi.CloseBody(res)
122266	if err := googleapi.CheckResponse(res); err != nil {
122267		return nil, err
122268	}
122269	ret := &RegionAutoscalerList{
122270		ServerResponse: googleapi.ServerResponse{
122271			Header:         res.Header,
122272			HTTPStatusCode: res.StatusCode,
122273		},
122274	}
122275	target := &ret
122276	if err := gensupport.DecodeResponse(target, res); err != nil {
122277		return nil, err
122278	}
122279	return ret, nil
122280	// {
122281	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
122282	//   "httpMethod": "GET",
122283	//   "id": "compute.regionAutoscalers.list",
122284	//   "parameterOrder": [
122285	//     "project",
122286	//     "region"
122287	//   ],
122288	//   "parameters": {
122289	//     "filter": {
122290	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122291	//       "location": "query",
122292	//       "type": "string"
122293	//     },
122294	//     "maxResults": {
122295	//       "default": "500",
122296	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122297	//       "format": "uint32",
122298	//       "location": "query",
122299	//       "minimum": "0",
122300	//       "type": "integer"
122301	//     },
122302	//     "orderBy": {
122303	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
122304	//       "location": "query",
122305	//       "type": "string"
122306	//     },
122307	//     "pageToken": {
122308	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122309	//       "location": "query",
122310	//       "type": "string"
122311	//     },
122312	//     "project": {
122313	//       "description": "Project ID for this request.",
122314	//       "location": "path",
122315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122316	//       "required": true,
122317	//       "type": "string"
122318	//     },
122319	//     "region": {
122320	//       "description": "Name of the region scoping this request.",
122321	//       "location": "path",
122322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122323	//       "required": true,
122324	//       "type": "string"
122325	//     },
122326	//     "returnPartialSuccess": {
122327	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
122328	//       "location": "query",
122329	//       "type": "boolean"
122330	//     }
122331	//   },
122332	//   "path": "{project}/regions/{region}/autoscalers",
122333	//   "response": {
122334	//     "$ref": "RegionAutoscalerList"
122335	//   },
122336	//   "scopes": [
122337	//     "https://www.googleapis.com/auth/cloud-platform",
122338	//     "https://www.googleapis.com/auth/compute",
122339	//     "https://www.googleapis.com/auth/compute.readonly"
122340	//   ]
122341	// }
122342
122343}
122344
122345// Pages invokes f for each page of results.
122346// A non-nil error returned from f will halt the iteration.
122347// The provided context supersedes any context provided to the Context method.
122348func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
122349	c.ctx_ = ctx
122350	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122351	for {
122352		x, err := c.Do()
122353		if err != nil {
122354			return err
122355		}
122356		if err := f(x); err != nil {
122357			return err
122358		}
122359		if x.NextPageToken == "" {
122360			return nil
122361		}
122362		c.PageToken(x.NextPageToken)
122363	}
122364}
122365
122366// method id "compute.regionAutoscalers.patch":
122367
122368type RegionAutoscalersPatchCall struct {
122369	s          *Service
122370	project    string
122371	region     string
122372	autoscaler *Autoscaler
122373	urlParams_ gensupport.URLParams
122374	ctx_       context.Context
122375	header_    http.Header
122376}
122377
122378// Patch: Updates an autoscaler in the specified project using the data
122379// included in the request. This method supports PATCH semantics and
122380// uses the JSON merge patch format and processing rules.
122381func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
122382	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122383	c.project = project
122384	c.region = region
122385	c.autoscaler = autoscaler
122386	return c
122387}
122388
122389// Autoscaler sets the optional parameter "autoscaler": Name of the
122390// autoscaler to patch.
122391func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
122392	c.urlParams_.Set("autoscaler", autoscaler)
122393	return c
122394}
122395
122396// RequestId sets the optional parameter "requestId": An optional
122397// request ID to identify requests. Specify a unique request ID so that
122398// if you must retry your request, the server will know to ignore the
122399// request if it has already been completed.
122400//
122401// For example, consider a situation where you make an initial request
122402// and the request times out. If you make the request again with the
122403// same request ID, the server can check if original operation with the
122404// same request ID was received, and if so, will ignore the second
122405// request. This prevents clients from accidentally creating duplicate
122406// commitments.
122407//
122408// The request ID must be a valid UUID with the exception that zero UUID
122409// is not supported (00000000-0000-0000-0000-000000000000).
122410func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
122411	c.urlParams_.Set("requestId", requestId)
122412	return c
122413}
122414
122415// Fields allows partial responses to be retrieved. See
122416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122417// for more information.
122418func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
122419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122420	return c
122421}
122422
122423// Context sets the context to be used in this call's Do method. Any
122424// pending HTTP request will be aborted if the provided context is
122425// canceled.
122426func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
122427	c.ctx_ = ctx
122428	return c
122429}
122430
122431// Header returns an http.Header that can be modified by the caller to
122432// add HTTP headers to the request.
122433func (c *RegionAutoscalersPatchCall) Header() http.Header {
122434	if c.header_ == nil {
122435		c.header_ = make(http.Header)
122436	}
122437	return c.header_
122438}
122439
122440func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
122441	reqHeaders := make(http.Header)
122442	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
122443	for k, v := range c.header_ {
122444		reqHeaders[k] = v
122445	}
122446	reqHeaders.Set("User-Agent", c.s.userAgent())
122447	var body io.Reader = nil
122448	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
122449	if err != nil {
122450		return nil, err
122451	}
122452	reqHeaders.Set("Content-Type", "application/json")
122453	c.urlParams_.Set("alt", alt)
122454	c.urlParams_.Set("prettyPrint", "false")
122455	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
122456	urls += "?" + c.urlParams_.Encode()
122457	req, err := http.NewRequest("PATCH", urls, body)
122458	if err != nil {
122459		return nil, err
122460	}
122461	req.Header = reqHeaders
122462	googleapi.Expand(req.URL, map[string]string{
122463		"project": c.project,
122464		"region":  c.region,
122465	})
122466	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122467}
122468
122469// Do executes the "compute.regionAutoscalers.patch" call.
122470// Exactly one of *Operation or error will be non-nil. Any non-2xx
122471// status code is an error. Response headers are in either
122472// *Operation.ServerResponse.Header or (if a response was returned at
122473// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122474// to check whether the returned error was because
122475// http.StatusNotModified was returned.
122476func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122477	gensupport.SetOptions(c.urlParams_, opts...)
122478	res, err := c.doRequest("json")
122479	if res != nil && res.StatusCode == http.StatusNotModified {
122480		if res.Body != nil {
122481			res.Body.Close()
122482		}
122483		return nil, &googleapi.Error{
122484			Code:   res.StatusCode,
122485			Header: res.Header,
122486		}
122487	}
122488	if err != nil {
122489		return nil, err
122490	}
122491	defer googleapi.CloseBody(res)
122492	if err := googleapi.CheckResponse(res); err != nil {
122493		return nil, err
122494	}
122495	ret := &Operation{
122496		ServerResponse: googleapi.ServerResponse{
122497			Header:         res.Header,
122498			HTTPStatusCode: res.StatusCode,
122499		},
122500	}
122501	target := &ret
122502	if err := gensupport.DecodeResponse(target, res); err != nil {
122503		return nil, err
122504	}
122505	return ret, nil
122506	// {
122507	//   "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.",
122508	//   "httpMethod": "PATCH",
122509	//   "id": "compute.regionAutoscalers.patch",
122510	//   "parameterOrder": [
122511	//     "project",
122512	//     "region"
122513	//   ],
122514	//   "parameters": {
122515	//     "autoscaler": {
122516	//       "description": "Name of the autoscaler to patch.",
122517	//       "location": "query",
122518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122519	//       "type": "string"
122520	//     },
122521	//     "project": {
122522	//       "description": "Project ID for this request.",
122523	//       "location": "path",
122524	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122525	//       "required": true,
122526	//       "type": "string"
122527	//     },
122528	//     "region": {
122529	//       "description": "Name of the region scoping this request.",
122530	//       "location": "path",
122531	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122532	//       "required": true,
122533	//       "type": "string"
122534	//     },
122535	//     "requestId": {
122536	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122537	//       "location": "query",
122538	//       "type": "string"
122539	//     }
122540	//   },
122541	//   "path": "{project}/regions/{region}/autoscalers",
122542	//   "request": {
122543	//     "$ref": "Autoscaler"
122544	//   },
122545	//   "response": {
122546	//     "$ref": "Operation"
122547	//   },
122548	//   "scopes": [
122549	//     "https://www.googleapis.com/auth/cloud-platform",
122550	//     "https://www.googleapis.com/auth/compute"
122551	//   ]
122552	// }
122553
122554}
122555
122556// method id "compute.regionAutoscalers.testIamPermissions":
122557
122558type RegionAutoscalersTestIamPermissionsCall struct {
122559	s                      *Service
122560	project                string
122561	region                 string
122562	resource               string
122563	testpermissionsrequest *TestPermissionsRequest
122564	urlParams_             gensupport.URLParams
122565	ctx_                   context.Context
122566	header_                http.Header
122567}
122568
122569// TestIamPermissions: Returns permissions that a caller has on the
122570// specified resource.
122571func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall {
122572	c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122573	c.project = project
122574	c.region = region
122575	c.resource = resource
122576	c.testpermissionsrequest = testpermissionsrequest
122577	return c
122578}
122579
122580// Fields allows partial responses to be retrieved. See
122581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122582// for more information.
122583func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall {
122584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122585	return c
122586}
122587
122588// Context sets the context to be used in this call's Do method. Any
122589// pending HTTP request will be aborted if the provided context is
122590// canceled.
122591func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall {
122592	c.ctx_ = ctx
122593	return c
122594}
122595
122596// Header returns an http.Header that can be modified by the caller to
122597// add HTTP headers to the request.
122598func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header {
122599	if c.header_ == nil {
122600		c.header_ = make(http.Header)
122601	}
122602	return c.header_
122603}
122604
122605func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
122606	reqHeaders := make(http.Header)
122607	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
122608	for k, v := range c.header_ {
122609		reqHeaders[k] = v
122610	}
122611	reqHeaders.Set("User-Agent", c.s.userAgent())
122612	var body io.Reader = nil
122613	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
122614	if err != nil {
122615		return nil, err
122616	}
122617	reqHeaders.Set("Content-Type", "application/json")
122618	c.urlParams_.Set("alt", alt)
122619	c.urlParams_.Set("prettyPrint", "false")
122620	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions")
122621	urls += "?" + c.urlParams_.Encode()
122622	req, err := http.NewRequest("POST", urls, body)
122623	if err != nil {
122624		return nil, err
122625	}
122626	req.Header = reqHeaders
122627	googleapi.Expand(req.URL, map[string]string{
122628		"project":  c.project,
122629		"region":   c.region,
122630		"resource": c.resource,
122631	})
122632	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122633}
122634
122635// Do executes the "compute.regionAutoscalers.testIamPermissions" call.
122636// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
122637// non-2xx status code is an error. Response headers are in either
122638// *TestPermissionsResponse.ServerResponse.Header or (if a response was
122639// returned at all) in error.(*googleapi.Error).Header. Use
122640// googleapi.IsNotModified to check whether the returned error was
122641// because http.StatusNotModified was returned.
122642func (c *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
122643	gensupport.SetOptions(c.urlParams_, opts...)
122644	res, err := c.doRequest("json")
122645	if res != nil && res.StatusCode == http.StatusNotModified {
122646		if res.Body != nil {
122647			res.Body.Close()
122648		}
122649		return nil, &googleapi.Error{
122650			Code:   res.StatusCode,
122651			Header: res.Header,
122652		}
122653	}
122654	if err != nil {
122655		return nil, err
122656	}
122657	defer googleapi.CloseBody(res)
122658	if err := googleapi.CheckResponse(res); err != nil {
122659		return nil, err
122660	}
122661	ret := &TestPermissionsResponse{
122662		ServerResponse: googleapi.ServerResponse{
122663			Header:         res.Header,
122664			HTTPStatusCode: res.StatusCode,
122665		},
122666	}
122667	target := &ret
122668	if err := gensupport.DecodeResponse(target, res); err != nil {
122669		return nil, err
122670	}
122671	return ret, nil
122672	// {
122673	//   "description": "Returns permissions that a caller has on the specified resource.",
122674	//   "httpMethod": "POST",
122675	//   "id": "compute.regionAutoscalers.testIamPermissions",
122676	//   "parameterOrder": [
122677	//     "project",
122678	//     "region",
122679	//     "resource"
122680	//   ],
122681	//   "parameters": {
122682	//     "project": {
122683	//       "description": "Project ID for this request.",
122684	//       "location": "path",
122685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122686	//       "required": true,
122687	//       "type": "string"
122688	//     },
122689	//     "region": {
122690	//       "description": "The name of the region for this request.",
122691	//       "location": "path",
122692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122693	//       "required": true,
122694	//       "type": "string"
122695	//     },
122696	//     "resource": {
122697	//       "description": "Name or id of the resource for this request.",
122698	//       "location": "path",
122699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122700	//       "required": true,
122701	//       "type": "string"
122702	//     }
122703	//   },
122704	//   "path": "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
122705	//   "request": {
122706	//     "$ref": "TestPermissionsRequest"
122707	//   },
122708	//   "response": {
122709	//     "$ref": "TestPermissionsResponse"
122710	//   },
122711	//   "scopes": [
122712	//     "https://www.googleapis.com/auth/cloud-platform",
122713	//     "https://www.googleapis.com/auth/compute",
122714	//     "https://www.googleapis.com/auth/compute.readonly"
122715	//   ]
122716	// }
122717
122718}
122719
122720// method id "compute.regionAutoscalers.update":
122721
122722type RegionAutoscalersUpdateCall struct {
122723	s          *Service
122724	project    string
122725	region     string
122726	autoscaler *Autoscaler
122727	urlParams_ gensupport.URLParams
122728	ctx_       context.Context
122729	header_    http.Header
122730}
122731
122732// Update: Updates an autoscaler in the specified project using the data
122733// included in the request.
122734func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
122735	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122736	c.project = project
122737	c.region = region
122738	c.autoscaler = autoscaler
122739	return c
122740}
122741
122742// Autoscaler sets the optional parameter "autoscaler": Name of the
122743// autoscaler to update.
122744func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
122745	c.urlParams_.Set("autoscaler", autoscaler)
122746	return c
122747}
122748
122749// RequestId sets the optional parameter "requestId": An optional
122750// request ID to identify requests. Specify a unique request ID so that
122751// if you must retry your request, the server will know to ignore the
122752// request if it has already been completed.
122753//
122754// For example, consider a situation where you make an initial request
122755// and the request times out. If you make the request again with the
122756// same request ID, the server can check if original operation with the
122757// same request ID was received, and if so, will ignore the second
122758// request. This prevents clients from accidentally creating duplicate
122759// commitments.
122760//
122761// The request ID must be a valid UUID with the exception that zero UUID
122762// is not supported (00000000-0000-0000-0000-000000000000).
122763func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
122764	c.urlParams_.Set("requestId", requestId)
122765	return c
122766}
122767
122768// Fields allows partial responses to be retrieved. See
122769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122770// for more information.
122771func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
122772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122773	return c
122774}
122775
122776// Context sets the context to be used in this call's Do method. Any
122777// pending HTTP request will be aborted if the provided context is
122778// canceled.
122779func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
122780	c.ctx_ = ctx
122781	return c
122782}
122783
122784// Header returns an http.Header that can be modified by the caller to
122785// add HTTP headers to the request.
122786func (c *RegionAutoscalersUpdateCall) Header() http.Header {
122787	if c.header_ == nil {
122788		c.header_ = make(http.Header)
122789	}
122790	return c.header_
122791}
122792
122793func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
122794	reqHeaders := make(http.Header)
122795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
122796	for k, v := range c.header_ {
122797		reqHeaders[k] = v
122798	}
122799	reqHeaders.Set("User-Agent", c.s.userAgent())
122800	var body io.Reader = nil
122801	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
122802	if err != nil {
122803		return nil, err
122804	}
122805	reqHeaders.Set("Content-Type", "application/json")
122806	c.urlParams_.Set("alt", alt)
122807	c.urlParams_.Set("prettyPrint", "false")
122808	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
122809	urls += "?" + c.urlParams_.Encode()
122810	req, err := http.NewRequest("PUT", urls, body)
122811	if err != nil {
122812		return nil, err
122813	}
122814	req.Header = reqHeaders
122815	googleapi.Expand(req.URL, map[string]string{
122816		"project": c.project,
122817		"region":  c.region,
122818	})
122819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122820}
122821
122822// Do executes the "compute.regionAutoscalers.update" call.
122823// Exactly one of *Operation or error will be non-nil. Any non-2xx
122824// status code is an error. Response headers are in either
122825// *Operation.ServerResponse.Header or (if a response was returned at
122826// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122827// to check whether the returned error was because
122828// http.StatusNotModified was returned.
122829func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122830	gensupport.SetOptions(c.urlParams_, opts...)
122831	res, err := c.doRequest("json")
122832	if res != nil && res.StatusCode == http.StatusNotModified {
122833		if res.Body != nil {
122834			res.Body.Close()
122835		}
122836		return nil, &googleapi.Error{
122837			Code:   res.StatusCode,
122838			Header: res.Header,
122839		}
122840	}
122841	if err != nil {
122842		return nil, err
122843	}
122844	defer googleapi.CloseBody(res)
122845	if err := googleapi.CheckResponse(res); err != nil {
122846		return nil, err
122847	}
122848	ret := &Operation{
122849		ServerResponse: googleapi.ServerResponse{
122850			Header:         res.Header,
122851			HTTPStatusCode: res.StatusCode,
122852		},
122853	}
122854	target := &ret
122855	if err := gensupport.DecodeResponse(target, res); err != nil {
122856		return nil, err
122857	}
122858	return ret, nil
122859	// {
122860	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
122861	//   "httpMethod": "PUT",
122862	//   "id": "compute.regionAutoscalers.update",
122863	//   "parameterOrder": [
122864	//     "project",
122865	//     "region"
122866	//   ],
122867	//   "parameters": {
122868	//     "autoscaler": {
122869	//       "description": "Name of the autoscaler to update.",
122870	//       "location": "query",
122871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122872	//       "type": "string"
122873	//     },
122874	//     "project": {
122875	//       "description": "Project ID for this request.",
122876	//       "location": "path",
122877	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122878	//       "required": true,
122879	//       "type": "string"
122880	//     },
122881	//     "region": {
122882	//       "description": "Name of the region scoping this request.",
122883	//       "location": "path",
122884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122885	//       "required": true,
122886	//       "type": "string"
122887	//     },
122888	//     "requestId": {
122889	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122890	//       "location": "query",
122891	//       "type": "string"
122892	//     }
122893	//   },
122894	//   "path": "{project}/regions/{region}/autoscalers",
122895	//   "request": {
122896	//     "$ref": "Autoscaler"
122897	//   },
122898	//   "response": {
122899	//     "$ref": "Operation"
122900	//   },
122901	//   "scopes": [
122902	//     "https://www.googleapis.com/auth/cloud-platform",
122903	//     "https://www.googleapis.com/auth/compute"
122904	//   ]
122905	// }
122906
122907}
122908
122909// method id "compute.regionBackendServices.delete":
122910
122911type RegionBackendServicesDeleteCall struct {
122912	s              *Service
122913	project        string
122914	region         string
122915	backendService string
122916	urlParams_     gensupport.URLParams
122917	ctx_           context.Context
122918	header_        http.Header
122919}
122920
122921// Delete: Deletes the specified regional BackendService resource.
122922func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
122923	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122924	c.project = project
122925	c.region = region
122926	c.backendService = backendService
122927	return c
122928}
122929
122930// RequestId sets the optional parameter "requestId": An optional
122931// request ID to identify requests. Specify a unique request ID so that
122932// if you must retry your request, the server will know to ignore the
122933// request if it has already been completed.
122934//
122935// For example, consider a situation where you make an initial request
122936// and the request times out. If you make the request again with the
122937// same request ID, the server can check if original operation with the
122938// same request ID was received, and if so, will ignore the second
122939// request. This prevents clients from accidentally creating duplicate
122940// commitments.
122941//
122942// The request ID must be a valid UUID with the exception that zero UUID
122943// is not supported (00000000-0000-0000-0000-000000000000).
122944func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
122945	c.urlParams_.Set("requestId", requestId)
122946	return c
122947}
122948
122949// Fields allows partial responses to be retrieved. See
122950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122951// for more information.
122952func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
122953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122954	return c
122955}
122956
122957// Context sets the context to be used in this call's Do method. Any
122958// pending HTTP request will be aborted if the provided context is
122959// canceled.
122960func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
122961	c.ctx_ = ctx
122962	return c
122963}
122964
122965// Header returns an http.Header that can be modified by the caller to
122966// add HTTP headers to the request.
122967func (c *RegionBackendServicesDeleteCall) Header() http.Header {
122968	if c.header_ == nil {
122969		c.header_ = make(http.Header)
122970	}
122971	return c.header_
122972}
122973
122974func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
122975	reqHeaders := make(http.Header)
122976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
122977	for k, v := range c.header_ {
122978		reqHeaders[k] = v
122979	}
122980	reqHeaders.Set("User-Agent", c.s.userAgent())
122981	var body io.Reader = nil
122982	c.urlParams_.Set("alt", alt)
122983	c.urlParams_.Set("prettyPrint", "false")
122984	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
122985	urls += "?" + c.urlParams_.Encode()
122986	req, err := http.NewRequest("DELETE", urls, body)
122987	if err != nil {
122988		return nil, err
122989	}
122990	req.Header = reqHeaders
122991	googleapi.Expand(req.URL, map[string]string{
122992		"project":        c.project,
122993		"region":         c.region,
122994		"backendService": c.backendService,
122995	})
122996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122997}
122998
122999// Do executes the "compute.regionBackendServices.delete" call.
123000// Exactly one of *Operation or error will be non-nil. Any non-2xx
123001// status code is an error. Response headers are in either
123002// *Operation.ServerResponse.Header or (if a response was returned at
123003// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123004// to check whether the returned error was because
123005// http.StatusNotModified was returned.
123006func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123007	gensupport.SetOptions(c.urlParams_, opts...)
123008	res, err := c.doRequest("json")
123009	if res != nil && res.StatusCode == http.StatusNotModified {
123010		if res.Body != nil {
123011			res.Body.Close()
123012		}
123013		return nil, &googleapi.Error{
123014			Code:   res.StatusCode,
123015			Header: res.Header,
123016		}
123017	}
123018	if err != nil {
123019		return nil, err
123020	}
123021	defer googleapi.CloseBody(res)
123022	if err := googleapi.CheckResponse(res); err != nil {
123023		return nil, err
123024	}
123025	ret := &Operation{
123026		ServerResponse: googleapi.ServerResponse{
123027			Header:         res.Header,
123028			HTTPStatusCode: res.StatusCode,
123029		},
123030	}
123031	target := &ret
123032	if err := gensupport.DecodeResponse(target, res); err != nil {
123033		return nil, err
123034	}
123035	return ret, nil
123036	// {
123037	//   "description": "Deletes the specified regional BackendService resource.",
123038	//   "httpMethod": "DELETE",
123039	//   "id": "compute.regionBackendServices.delete",
123040	//   "parameterOrder": [
123041	//     "project",
123042	//     "region",
123043	//     "backendService"
123044	//   ],
123045	//   "parameters": {
123046	//     "backendService": {
123047	//       "description": "Name of the BackendService resource to delete.",
123048	//       "location": "path",
123049	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123050	//       "required": true,
123051	//       "type": "string"
123052	//     },
123053	//     "project": {
123054	//       "description": "Project ID for this request.",
123055	//       "location": "path",
123056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123057	//       "required": true,
123058	//       "type": "string"
123059	//     },
123060	//     "region": {
123061	//       "description": "Name of the region scoping this request.",
123062	//       "location": "path",
123063	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123064	//       "required": true,
123065	//       "type": "string"
123066	//     },
123067	//     "requestId": {
123068	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123069	//       "location": "query",
123070	//       "type": "string"
123071	//     }
123072	//   },
123073	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
123074	//   "response": {
123075	//     "$ref": "Operation"
123076	//   },
123077	//   "scopes": [
123078	//     "https://www.googleapis.com/auth/cloud-platform",
123079	//     "https://www.googleapis.com/auth/compute"
123080	//   ]
123081	// }
123082
123083}
123084
123085// method id "compute.regionBackendServices.get":
123086
123087type RegionBackendServicesGetCall struct {
123088	s              *Service
123089	project        string
123090	region         string
123091	backendService string
123092	urlParams_     gensupport.URLParams
123093	ifNoneMatch_   string
123094	ctx_           context.Context
123095	header_        http.Header
123096}
123097
123098// Get: Returns the specified regional BackendService resource.
123099func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
123100	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123101	c.project = project
123102	c.region = region
123103	c.backendService = backendService
123104	return c
123105}
123106
123107// Fields allows partial responses to be retrieved. See
123108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123109// for more information.
123110func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
123111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123112	return c
123113}
123114
123115// IfNoneMatch sets the optional parameter which makes the operation
123116// fail if the object's ETag matches the given value. This is useful for
123117// getting updates only after the object has changed since the last
123118// request. Use googleapi.IsNotModified to check whether the response
123119// error from Do is the result of In-None-Match.
123120func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
123121	c.ifNoneMatch_ = entityTag
123122	return c
123123}
123124
123125// Context sets the context to be used in this call's Do method. Any
123126// pending HTTP request will be aborted if the provided context is
123127// canceled.
123128func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
123129	c.ctx_ = ctx
123130	return c
123131}
123132
123133// Header returns an http.Header that can be modified by the caller to
123134// add HTTP headers to the request.
123135func (c *RegionBackendServicesGetCall) Header() http.Header {
123136	if c.header_ == nil {
123137		c.header_ = make(http.Header)
123138	}
123139	return c.header_
123140}
123141
123142func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
123143	reqHeaders := make(http.Header)
123144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
123145	for k, v := range c.header_ {
123146		reqHeaders[k] = v
123147	}
123148	reqHeaders.Set("User-Agent", c.s.userAgent())
123149	if c.ifNoneMatch_ != "" {
123150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123151	}
123152	var body io.Reader = nil
123153	c.urlParams_.Set("alt", alt)
123154	c.urlParams_.Set("prettyPrint", "false")
123155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
123156	urls += "?" + c.urlParams_.Encode()
123157	req, err := http.NewRequest("GET", urls, body)
123158	if err != nil {
123159		return nil, err
123160	}
123161	req.Header = reqHeaders
123162	googleapi.Expand(req.URL, map[string]string{
123163		"project":        c.project,
123164		"region":         c.region,
123165		"backendService": c.backendService,
123166	})
123167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123168}
123169
123170// Do executes the "compute.regionBackendServices.get" call.
123171// Exactly one of *BackendService or error will be non-nil. Any non-2xx
123172// status code is an error. Response headers are in either
123173// *BackendService.ServerResponse.Header or (if a response was returned
123174// at all) in error.(*googleapi.Error).Header. Use
123175// googleapi.IsNotModified to check whether the returned error was
123176// because http.StatusNotModified was returned.
123177func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
123178	gensupport.SetOptions(c.urlParams_, opts...)
123179	res, err := c.doRequest("json")
123180	if res != nil && res.StatusCode == http.StatusNotModified {
123181		if res.Body != nil {
123182			res.Body.Close()
123183		}
123184		return nil, &googleapi.Error{
123185			Code:   res.StatusCode,
123186			Header: res.Header,
123187		}
123188	}
123189	if err != nil {
123190		return nil, err
123191	}
123192	defer googleapi.CloseBody(res)
123193	if err := googleapi.CheckResponse(res); err != nil {
123194		return nil, err
123195	}
123196	ret := &BackendService{
123197		ServerResponse: googleapi.ServerResponse{
123198			Header:         res.Header,
123199			HTTPStatusCode: res.StatusCode,
123200		},
123201	}
123202	target := &ret
123203	if err := gensupport.DecodeResponse(target, res); err != nil {
123204		return nil, err
123205	}
123206	return ret, nil
123207	// {
123208	//   "description": "Returns the specified regional BackendService resource.",
123209	//   "httpMethod": "GET",
123210	//   "id": "compute.regionBackendServices.get",
123211	//   "parameterOrder": [
123212	//     "project",
123213	//     "region",
123214	//     "backendService"
123215	//   ],
123216	//   "parameters": {
123217	//     "backendService": {
123218	//       "description": "Name of the BackendService resource to return.",
123219	//       "location": "path",
123220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123221	//       "required": true,
123222	//       "type": "string"
123223	//     },
123224	//     "project": {
123225	//       "description": "Project ID for this request.",
123226	//       "location": "path",
123227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123228	//       "required": true,
123229	//       "type": "string"
123230	//     },
123231	//     "region": {
123232	//       "description": "Name of the region scoping this request.",
123233	//       "location": "path",
123234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123235	//       "required": true,
123236	//       "type": "string"
123237	//     }
123238	//   },
123239	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
123240	//   "response": {
123241	//     "$ref": "BackendService"
123242	//   },
123243	//   "scopes": [
123244	//     "https://www.googleapis.com/auth/cloud-platform",
123245	//     "https://www.googleapis.com/auth/compute",
123246	//     "https://www.googleapis.com/auth/compute.readonly"
123247	//   ]
123248	// }
123249
123250}
123251
123252// method id "compute.regionBackendServices.getHealth":
123253
123254type RegionBackendServicesGetHealthCall struct {
123255	s                      *Service
123256	project                string
123257	region                 string
123258	backendService         string
123259	resourcegroupreference *ResourceGroupReference
123260	urlParams_             gensupport.URLParams
123261	ctx_                   context.Context
123262	header_                http.Header
123263}
123264
123265// GetHealth: Gets the most recent health check results for this
123266// regional BackendService.
123267func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
123268	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123269	c.project = project
123270	c.region = region
123271	c.backendService = backendService
123272	c.resourcegroupreference = resourcegroupreference
123273	return c
123274}
123275
123276// Fields allows partial responses to be retrieved. See
123277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123278// for more information.
123279func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
123280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123281	return c
123282}
123283
123284// Context sets the context to be used in this call's Do method. Any
123285// pending HTTP request will be aborted if the provided context is
123286// canceled.
123287func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
123288	c.ctx_ = ctx
123289	return c
123290}
123291
123292// Header returns an http.Header that can be modified by the caller to
123293// add HTTP headers to the request.
123294func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
123295	if c.header_ == nil {
123296		c.header_ = make(http.Header)
123297	}
123298	return c.header_
123299}
123300
123301func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
123302	reqHeaders := make(http.Header)
123303	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
123304	for k, v := range c.header_ {
123305		reqHeaders[k] = v
123306	}
123307	reqHeaders.Set("User-Agent", c.s.userAgent())
123308	var body io.Reader = nil
123309	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
123310	if err != nil {
123311		return nil, err
123312	}
123313	reqHeaders.Set("Content-Type", "application/json")
123314	c.urlParams_.Set("alt", alt)
123315	c.urlParams_.Set("prettyPrint", "false")
123316	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
123317	urls += "?" + c.urlParams_.Encode()
123318	req, err := http.NewRequest("POST", urls, body)
123319	if err != nil {
123320		return nil, err
123321	}
123322	req.Header = reqHeaders
123323	googleapi.Expand(req.URL, map[string]string{
123324		"project":        c.project,
123325		"region":         c.region,
123326		"backendService": c.backendService,
123327	})
123328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123329}
123330
123331// Do executes the "compute.regionBackendServices.getHealth" call.
123332// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
123333// Any non-2xx status code is an error. Response headers are in either
123334// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
123335// was returned at all) in error.(*googleapi.Error).Header. Use
123336// googleapi.IsNotModified to check whether the returned error was
123337// because http.StatusNotModified was returned.
123338func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
123339	gensupport.SetOptions(c.urlParams_, opts...)
123340	res, err := c.doRequest("json")
123341	if res != nil && res.StatusCode == http.StatusNotModified {
123342		if res.Body != nil {
123343			res.Body.Close()
123344		}
123345		return nil, &googleapi.Error{
123346			Code:   res.StatusCode,
123347			Header: res.Header,
123348		}
123349	}
123350	if err != nil {
123351		return nil, err
123352	}
123353	defer googleapi.CloseBody(res)
123354	if err := googleapi.CheckResponse(res); err != nil {
123355		return nil, err
123356	}
123357	ret := &BackendServiceGroupHealth{
123358		ServerResponse: googleapi.ServerResponse{
123359			Header:         res.Header,
123360			HTTPStatusCode: res.StatusCode,
123361		},
123362	}
123363	target := &ret
123364	if err := gensupport.DecodeResponse(target, res); err != nil {
123365		return nil, err
123366	}
123367	return ret, nil
123368	// {
123369	//   "description": "Gets the most recent health check results for this regional BackendService.",
123370	//   "httpMethod": "POST",
123371	//   "id": "compute.regionBackendServices.getHealth",
123372	//   "parameterOrder": [
123373	//     "project",
123374	//     "region",
123375	//     "backendService"
123376	//   ],
123377	//   "parameters": {
123378	//     "backendService": {
123379	//       "description": "Name of the BackendService resource for which to get health.",
123380	//       "location": "path",
123381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123382	//       "required": true,
123383	//       "type": "string"
123384	//     },
123385	//     "project": {
123386	//       "location": "path",
123387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123388	//       "required": true,
123389	//       "type": "string"
123390	//     },
123391	//     "region": {
123392	//       "description": "Name of the region scoping this request.",
123393	//       "location": "path",
123394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123395	//       "required": true,
123396	//       "type": "string"
123397	//     }
123398	//   },
123399	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
123400	//   "request": {
123401	//     "$ref": "ResourceGroupReference"
123402	//   },
123403	//   "response": {
123404	//     "$ref": "BackendServiceGroupHealth"
123405	//   },
123406	//   "scopes": [
123407	//     "https://www.googleapis.com/auth/cloud-platform",
123408	//     "https://www.googleapis.com/auth/compute",
123409	//     "https://www.googleapis.com/auth/compute.readonly"
123410	//   ]
123411	// }
123412
123413}
123414
123415// method id "compute.regionBackendServices.insert":
123416
123417type RegionBackendServicesInsertCall struct {
123418	s              *Service
123419	project        string
123420	region         string
123421	backendservice *BackendService
123422	urlParams_     gensupport.URLParams
123423	ctx_           context.Context
123424	header_        http.Header
123425}
123426
123427// Insert: Creates a regional BackendService resource in the specified
123428// project using the data included in the request. There are several
123429// restrictions and guidelines to keep in mind when creating a regional
123430// backend service. Read  Understanding backend services for more
123431// information.
123432func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
123433	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123434	c.project = project
123435	c.region = region
123436	c.backendservice = backendservice
123437	return c
123438}
123439
123440// RequestId sets the optional parameter "requestId": An optional
123441// request ID to identify requests. Specify a unique request ID so that
123442// if you must retry your request, the server will know to ignore the
123443// request if it has already been completed.
123444//
123445// For example, consider a situation where you make an initial request
123446// and the request times out. If you make the request again with the
123447// same request ID, the server can check if original operation with the
123448// same request ID was received, and if so, will ignore the second
123449// request. This prevents clients from accidentally creating duplicate
123450// commitments.
123451//
123452// The request ID must be a valid UUID with the exception that zero UUID
123453// is not supported (00000000-0000-0000-0000-000000000000).
123454func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
123455	c.urlParams_.Set("requestId", requestId)
123456	return c
123457}
123458
123459// Fields allows partial responses to be retrieved. See
123460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123461// for more information.
123462func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
123463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123464	return c
123465}
123466
123467// Context sets the context to be used in this call's Do method. Any
123468// pending HTTP request will be aborted if the provided context is
123469// canceled.
123470func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
123471	c.ctx_ = ctx
123472	return c
123473}
123474
123475// Header returns an http.Header that can be modified by the caller to
123476// add HTTP headers to the request.
123477func (c *RegionBackendServicesInsertCall) Header() http.Header {
123478	if c.header_ == nil {
123479		c.header_ = make(http.Header)
123480	}
123481	return c.header_
123482}
123483
123484func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
123485	reqHeaders := make(http.Header)
123486	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
123487	for k, v := range c.header_ {
123488		reqHeaders[k] = v
123489	}
123490	reqHeaders.Set("User-Agent", c.s.userAgent())
123491	var body io.Reader = nil
123492	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
123493	if err != nil {
123494		return nil, err
123495	}
123496	reqHeaders.Set("Content-Type", "application/json")
123497	c.urlParams_.Set("alt", alt)
123498	c.urlParams_.Set("prettyPrint", "false")
123499	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
123500	urls += "?" + c.urlParams_.Encode()
123501	req, err := http.NewRequest("POST", urls, body)
123502	if err != nil {
123503		return nil, err
123504	}
123505	req.Header = reqHeaders
123506	googleapi.Expand(req.URL, map[string]string{
123507		"project": c.project,
123508		"region":  c.region,
123509	})
123510	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123511}
123512
123513// Do executes the "compute.regionBackendServices.insert" call.
123514// Exactly one of *Operation or error will be non-nil. Any non-2xx
123515// status code is an error. Response headers are in either
123516// *Operation.ServerResponse.Header or (if a response was returned at
123517// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123518// to check whether the returned error was because
123519// http.StatusNotModified was returned.
123520func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123521	gensupport.SetOptions(c.urlParams_, opts...)
123522	res, err := c.doRequest("json")
123523	if res != nil && res.StatusCode == http.StatusNotModified {
123524		if res.Body != nil {
123525			res.Body.Close()
123526		}
123527		return nil, &googleapi.Error{
123528			Code:   res.StatusCode,
123529			Header: res.Header,
123530		}
123531	}
123532	if err != nil {
123533		return nil, err
123534	}
123535	defer googleapi.CloseBody(res)
123536	if err := googleapi.CheckResponse(res); err != nil {
123537		return nil, err
123538	}
123539	ret := &Operation{
123540		ServerResponse: googleapi.ServerResponse{
123541			Header:         res.Header,
123542			HTTPStatusCode: res.StatusCode,
123543		},
123544	}
123545	target := &ret
123546	if err := gensupport.DecodeResponse(target, res); err != nil {
123547		return nil, err
123548	}
123549	return ret, nil
123550	// {
123551	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a regional backend service. Read  Understanding backend services for more information.",
123552	//   "httpMethod": "POST",
123553	//   "id": "compute.regionBackendServices.insert",
123554	//   "parameterOrder": [
123555	//     "project",
123556	//     "region"
123557	//   ],
123558	//   "parameters": {
123559	//     "project": {
123560	//       "description": "Project ID for this request.",
123561	//       "location": "path",
123562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123563	//       "required": true,
123564	//       "type": "string"
123565	//     },
123566	//     "region": {
123567	//       "description": "Name of the region scoping this request.",
123568	//       "location": "path",
123569	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123570	//       "required": true,
123571	//       "type": "string"
123572	//     },
123573	//     "requestId": {
123574	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123575	//       "location": "query",
123576	//       "type": "string"
123577	//     }
123578	//   },
123579	//   "path": "{project}/regions/{region}/backendServices",
123580	//   "request": {
123581	//     "$ref": "BackendService"
123582	//   },
123583	//   "response": {
123584	//     "$ref": "Operation"
123585	//   },
123586	//   "scopes": [
123587	//     "https://www.googleapis.com/auth/cloud-platform",
123588	//     "https://www.googleapis.com/auth/compute"
123589	//   ]
123590	// }
123591
123592}
123593
123594// method id "compute.regionBackendServices.list":
123595
123596type RegionBackendServicesListCall struct {
123597	s            *Service
123598	project      string
123599	region       string
123600	urlParams_   gensupport.URLParams
123601	ifNoneMatch_ string
123602	ctx_         context.Context
123603	header_      http.Header
123604}
123605
123606// List: Retrieves the list of regional BackendService resources
123607// available to the specified project in the given region.
123608func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
123609	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123610	c.project = project
123611	c.region = region
123612	return c
123613}
123614
123615// Filter sets the optional parameter "filter": A filter expression that
123616// filters resources listed in the response. The expression must specify
123617// the field name, a comparison operator, and the value that you want to
123618// use for filtering. The value must be a string, a number, or a
123619// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123620// `<`.
123621//
123622// For example, if you are filtering Compute Engine instances, you can
123623// exclude instances named `example-instance` by specifying `name !=
123624// example-instance`.
123625//
123626// You can also filter nested fields. For example, you could specify
123627// `scheduling.automaticRestart = false` to include instances only if
123628// they are not scheduled for automatic restarts. You can use filtering
123629// on nested fields to filter based on resource labels.
123630//
123631// To filter on multiple expressions, provide each separate expression
123632// within parentheses. For example: ``` (scheduling.automaticRestart =
123633// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
123634// is an `AND` expression. However, you can include `AND` and `OR`
123635// expressions explicitly. For example: ``` (cpuPlatform = "Intel
123636// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
123637// (scheduling.automaticRestart = true) ```
123638func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
123639	c.urlParams_.Set("filter", filter)
123640	return c
123641}
123642
123643// MaxResults sets the optional parameter "maxResults": The maximum
123644// number of results per page that should be returned. If the number of
123645// available results is larger than `maxResults`, Compute Engine returns
123646// a `nextPageToken` that can be used to get the next page of results in
123647// subsequent list requests. Acceptable values are `0` to `500`,
123648// inclusive. (Default: `500`)
123649func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
123650	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123651	return c
123652}
123653
123654// OrderBy sets the optional parameter "orderBy": Sorts list results by
123655// a certain order. By default, results are returned in alphanumerical
123656// order based on the resource name.
123657//
123658// You can also sort results in descending order based on the creation
123659// timestamp using `orderBy="creationTimestamp desc". This sorts
123660// results based on the `creationTimestamp` field in reverse
123661// chronological order (newest result first). Use this to sort resources
123662// like operations so that the newest operation is returned
123663// first.
123664//
123665// Currently, only sorting by `name` or `creationTimestamp desc` is
123666// supported.
123667func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
123668	c.urlParams_.Set("orderBy", orderBy)
123669	return c
123670}
123671
123672// PageToken sets the optional parameter "pageToken": Specifies a page
123673// token to use. Set `pageToken` to the `nextPageToken` returned by a
123674// previous list request to get the next page of results.
123675func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
123676	c.urlParams_.Set("pageToken", pageToken)
123677	return c
123678}
123679
123680// ReturnPartialSuccess sets the optional parameter
123681// "returnPartialSuccess": Opt-in for partial success behavior which
123682// provides partial results in case of failure. The default value is
123683// false and the logic is the same as today.
123684func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall {
123685	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
123686	return c
123687}
123688
123689// Fields allows partial responses to be retrieved. See
123690// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123691// for more information.
123692func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
123693	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123694	return c
123695}
123696
123697// IfNoneMatch sets the optional parameter which makes the operation
123698// fail if the object's ETag matches the given value. This is useful for
123699// getting updates only after the object has changed since the last
123700// request. Use googleapi.IsNotModified to check whether the response
123701// error from Do is the result of In-None-Match.
123702func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
123703	c.ifNoneMatch_ = entityTag
123704	return c
123705}
123706
123707// Context sets the context to be used in this call's Do method. Any
123708// pending HTTP request will be aborted if the provided context is
123709// canceled.
123710func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
123711	c.ctx_ = ctx
123712	return c
123713}
123714
123715// Header returns an http.Header that can be modified by the caller to
123716// add HTTP headers to the request.
123717func (c *RegionBackendServicesListCall) Header() http.Header {
123718	if c.header_ == nil {
123719		c.header_ = make(http.Header)
123720	}
123721	return c.header_
123722}
123723
123724func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
123725	reqHeaders := make(http.Header)
123726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
123727	for k, v := range c.header_ {
123728		reqHeaders[k] = v
123729	}
123730	reqHeaders.Set("User-Agent", c.s.userAgent())
123731	if c.ifNoneMatch_ != "" {
123732		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123733	}
123734	var body io.Reader = nil
123735	c.urlParams_.Set("alt", alt)
123736	c.urlParams_.Set("prettyPrint", "false")
123737	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
123738	urls += "?" + c.urlParams_.Encode()
123739	req, err := http.NewRequest("GET", urls, body)
123740	if err != nil {
123741		return nil, err
123742	}
123743	req.Header = reqHeaders
123744	googleapi.Expand(req.URL, map[string]string{
123745		"project": c.project,
123746		"region":  c.region,
123747	})
123748	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123749}
123750
123751// Do executes the "compute.regionBackendServices.list" call.
123752// Exactly one of *BackendServiceList or error will be non-nil. Any
123753// non-2xx status code is an error. Response headers are in either
123754// *BackendServiceList.ServerResponse.Header or (if a response was
123755// returned at all) in error.(*googleapi.Error).Header. Use
123756// googleapi.IsNotModified to check whether the returned error was
123757// because http.StatusNotModified was returned.
123758func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
123759	gensupport.SetOptions(c.urlParams_, opts...)
123760	res, err := c.doRequest("json")
123761	if res != nil && res.StatusCode == http.StatusNotModified {
123762		if res.Body != nil {
123763			res.Body.Close()
123764		}
123765		return nil, &googleapi.Error{
123766			Code:   res.StatusCode,
123767			Header: res.Header,
123768		}
123769	}
123770	if err != nil {
123771		return nil, err
123772	}
123773	defer googleapi.CloseBody(res)
123774	if err := googleapi.CheckResponse(res); err != nil {
123775		return nil, err
123776	}
123777	ret := &BackendServiceList{
123778		ServerResponse: googleapi.ServerResponse{
123779			Header:         res.Header,
123780			HTTPStatusCode: res.StatusCode,
123781		},
123782	}
123783	target := &ret
123784	if err := gensupport.DecodeResponse(target, res); err != nil {
123785		return nil, err
123786	}
123787	return ret, nil
123788	// {
123789	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
123790	//   "httpMethod": "GET",
123791	//   "id": "compute.regionBackendServices.list",
123792	//   "parameterOrder": [
123793	//     "project",
123794	//     "region"
123795	//   ],
123796	//   "parameters": {
123797	//     "filter": {
123798	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
123799	//       "location": "query",
123800	//       "type": "string"
123801	//     },
123802	//     "maxResults": {
123803	//       "default": "500",
123804	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
123805	//       "format": "uint32",
123806	//       "location": "query",
123807	//       "minimum": "0",
123808	//       "type": "integer"
123809	//     },
123810	//     "orderBy": {
123811	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
123812	//       "location": "query",
123813	//       "type": "string"
123814	//     },
123815	//     "pageToken": {
123816	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
123817	//       "location": "query",
123818	//       "type": "string"
123819	//     },
123820	//     "project": {
123821	//       "description": "Project ID for this request.",
123822	//       "location": "path",
123823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123824	//       "required": true,
123825	//       "type": "string"
123826	//     },
123827	//     "region": {
123828	//       "description": "Name of the region scoping this request.",
123829	//       "location": "path",
123830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123831	//       "required": true,
123832	//       "type": "string"
123833	//     },
123834	//     "returnPartialSuccess": {
123835	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
123836	//       "location": "query",
123837	//       "type": "boolean"
123838	//     }
123839	//   },
123840	//   "path": "{project}/regions/{region}/backendServices",
123841	//   "response": {
123842	//     "$ref": "BackendServiceList"
123843	//   },
123844	//   "scopes": [
123845	//     "https://www.googleapis.com/auth/cloud-platform",
123846	//     "https://www.googleapis.com/auth/compute",
123847	//     "https://www.googleapis.com/auth/compute.readonly"
123848	//   ]
123849	// }
123850
123851}
123852
123853// Pages invokes f for each page of results.
123854// A non-nil error returned from f will halt the iteration.
123855// The provided context supersedes any context provided to the Context method.
123856func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
123857	c.ctx_ = ctx
123858	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123859	for {
123860		x, err := c.Do()
123861		if err != nil {
123862			return err
123863		}
123864		if err := f(x); err != nil {
123865			return err
123866		}
123867		if x.NextPageToken == "" {
123868			return nil
123869		}
123870		c.PageToken(x.NextPageToken)
123871	}
123872}
123873
123874// method id "compute.regionBackendServices.patch":
123875
123876type RegionBackendServicesPatchCall struct {
123877	s              *Service
123878	project        string
123879	region         string
123880	backendService string
123881	backendservice *BackendService
123882	urlParams_     gensupport.URLParams
123883	ctx_           context.Context
123884	header_        http.Header
123885}
123886
123887// Patch: Updates the specified regional BackendService resource with
123888// the data included in the request. There are several Understanding
123889// backend services to keep in mind when updating a backend service.
123890// Read  Understanding backend services for more information. This
123891// method supports PATCH semantics and uses the JSON merge patch format
123892// and processing rules.
123893func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
123894	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123895	c.project = project
123896	c.region = region
123897	c.backendService = backendService
123898	c.backendservice = backendservice
123899	return c
123900}
123901
123902// RequestId sets the optional parameter "requestId": An optional
123903// request ID to identify requests. Specify a unique request ID so that
123904// if you must retry your request, the server will know to ignore the
123905// request if it has already been completed.
123906//
123907// For example, consider a situation where you make an initial request
123908// and the request times out. If you make the request again with the
123909// same request ID, the server can check if original operation with the
123910// same request ID was received, and if so, will ignore the second
123911// request. This prevents clients from accidentally creating duplicate
123912// commitments.
123913//
123914// The request ID must be a valid UUID with the exception that zero UUID
123915// is not supported (00000000-0000-0000-0000-000000000000).
123916func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
123917	c.urlParams_.Set("requestId", requestId)
123918	return c
123919}
123920
123921// Fields allows partial responses to be retrieved. See
123922// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123923// for more information.
123924func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
123925	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123926	return c
123927}
123928
123929// Context sets the context to be used in this call's Do method. Any
123930// pending HTTP request will be aborted if the provided context is
123931// canceled.
123932func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
123933	c.ctx_ = ctx
123934	return c
123935}
123936
123937// Header returns an http.Header that can be modified by the caller to
123938// add HTTP headers to the request.
123939func (c *RegionBackendServicesPatchCall) Header() http.Header {
123940	if c.header_ == nil {
123941		c.header_ = make(http.Header)
123942	}
123943	return c.header_
123944}
123945
123946func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
123947	reqHeaders := make(http.Header)
123948	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
123949	for k, v := range c.header_ {
123950		reqHeaders[k] = v
123951	}
123952	reqHeaders.Set("User-Agent", c.s.userAgent())
123953	var body io.Reader = nil
123954	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
123955	if err != nil {
123956		return nil, err
123957	}
123958	reqHeaders.Set("Content-Type", "application/json")
123959	c.urlParams_.Set("alt", alt)
123960	c.urlParams_.Set("prettyPrint", "false")
123961	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
123962	urls += "?" + c.urlParams_.Encode()
123963	req, err := http.NewRequest("PATCH", urls, body)
123964	if err != nil {
123965		return nil, err
123966	}
123967	req.Header = reqHeaders
123968	googleapi.Expand(req.URL, map[string]string{
123969		"project":        c.project,
123970		"region":         c.region,
123971		"backendService": c.backendService,
123972	})
123973	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123974}
123975
123976// Do executes the "compute.regionBackendServices.patch" call.
123977// Exactly one of *Operation or error will be non-nil. Any non-2xx
123978// status code is an error. Response headers are in either
123979// *Operation.ServerResponse.Header or (if a response was returned at
123980// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123981// to check whether the returned error was because
123982// http.StatusNotModified was returned.
123983func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123984	gensupport.SetOptions(c.urlParams_, opts...)
123985	res, err := c.doRequest("json")
123986	if res != nil && res.StatusCode == http.StatusNotModified {
123987		if res.Body != nil {
123988			res.Body.Close()
123989		}
123990		return nil, &googleapi.Error{
123991			Code:   res.StatusCode,
123992			Header: res.Header,
123993		}
123994	}
123995	if err != nil {
123996		return nil, err
123997	}
123998	defer googleapi.CloseBody(res)
123999	if err := googleapi.CheckResponse(res); err != nil {
124000		return nil, err
124001	}
124002	ret := &Operation{
124003		ServerResponse: googleapi.ServerResponse{
124004			Header:         res.Header,
124005			HTTPStatusCode: res.StatusCode,
124006		},
124007	}
124008	target := &ret
124009	if err := gensupport.DecodeResponse(target, res); err != nil {
124010		return nil, err
124011	}
124012	return ret, nil
124013	// {
124014	//   "description": "Updates the specified regional BackendService resource with the data included in the request. There are several Understanding backend services to keep in mind when updating a backend service. Read  Understanding backend services for more information. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
124015	//   "httpMethod": "PATCH",
124016	//   "id": "compute.regionBackendServices.patch",
124017	//   "parameterOrder": [
124018	//     "project",
124019	//     "region",
124020	//     "backendService"
124021	//   ],
124022	//   "parameters": {
124023	//     "backendService": {
124024	//       "description": "Name of the BackendService resource to patch.",
124025	//       "location": "path",
124026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124027	//       "required": true,
124028	//       "type": "string"
124029	//     },
124030	//     "project": {
124031	//       "description": "Project ID for this request.",
124032	//       "location": "path",
124033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124034	//       "required": true,
124035	//       "type": "string"
124036	//     },
124037	//     "region": {
124038	//       "description": "Name of the region scoping this request.",
124039	//       "location": "path",
124040	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124041	//       "required": true,
124042	//       "type": "string"
124043	//     },
124044	//     "requestId": {
124045	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124046	//       "location": "query",
124047	//       "type": "string"
124048	//     }
124049	//   },
124050	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
124051	//   "request": {
124052	//     "$ref": "BackendService"
124053	//   },
124054	//   "response": {
124055	//     "$ref": "Operation"
124056	//   },
124057	//   "scopes": [
124058	//     "https://www.googleapis.com/auth/cloud-platform",
124059	//     "https://www.googleapis.com/auth/compute"
124060	//   ]
124061	// }
124062
124063}
124064
124065// method id "compute.regionBackendServices.testIamPermissions":
124066
124067type RegionBackendServicesTestIamPermissionsCall struct {
124068	s                      *Service
124069	project                string
124070	region                 string
124071	resource               string
124072	testpermissionsrequest *TestPermissionsRequest
124073	urlParams_             gensupport.URLParams
124074	ctx_                   context.Context
124075	header_                http.Header
124076}
124077
124078// TestIamPermissions: Returns permissions that a caller has on the
124079// specified resource.
124080func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall {
124081	c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124082	c.project = project
124083	c.region = region
124084	c.resource = resource
124085	c.testpermissionsrequest = testpermissionsrequest
124086	return c
124087}
124088
124089// Fields allows partial responses to be retrieved. See
124090// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124091// for more information.
124092func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall {
124093	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124094	return c
124095}
124096
124097// Context sets the context to be used in this call's Do method. Any
124098// pending HTTP request will be aborted if the provided context is
124099// canceled.
124100func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall {
124101	c.ctx_ = ctx
124102	return c
124103}
124104
124105// Header returns an http.Header that can be modified by the caller to
124106// add HTTP headers to the request.
124107func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header {
124108	if c.header_ == nil {
124109		c.header_ = make(http.Header)
124110	}
124111	return c.header_
124112}
124113
124114func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
124115	reqHeaders := make(http.Header)
124116	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
124117	for k, v := range c.header_ {
124118		reqHeaders[k] = v
124119	}
124120	reqHeaders.Set("User-Agent", c.s.userAgent())
124121	var body io.Reader = nil
124122	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
124123	if err != nil {
124124		return nil, err
124125	}
124126	reqHeaders.Set("Content-Type", "application/json")
124127	c.urlParams_.Set("alt", alt)
124128	c.urlParams_.Set("prettyPrint", "false")
124129	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{resource}/testIamPermissions")
124130	urls += "?" + c.urlParams_.Encode()
124131	req, err := http.NewRequest("POST", urls, body)
124132	if err != nil {
124133		return nil, err
124134	}
124135	req.Header = reqHeaders
124136	googleapi.Expand(req.URL, map[string]string{
124137		"project":  c.project,
124138		"region":   c.region,
124139		"resource": c.resource,
124140	})
124141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124142}
124143
124144// Do executes the "compute.regionBackendServices.testIamPermissions" call.
124145// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
124146// non-2xx status code is an error. Response headers are in either
124147// *TestPermissionsResponse.ServerResponse.Header or (if a response was
124148// returned at all) in error.(*googleapi.Error).Header. Use
124149// googleapi.IsNotModified to check whether the returned error was
124150// because http.StatusNotModified was returned.
124151func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
124152	gensupport.SetOptions(c.urlParams_, opts...)
124153	res, err := c.doRequest("json")
124154	if res != nil && res.StatusCode == http.StatusNotModified {
124155		if res.Body != nil {
124156			res.Body.Close()
124157		}
124158		return nil, &googleapi.Error{
124159			Code:   res.StatusCode,
124160			Header: res.Header,
124161		}
124162	}
124163	if err != nil {
124164		return nil, err
124165	}
124166	defer googleapi.CloseBody(res)
124167	if err := googleapi.CheckResponse(res); err != nil {
124168		return nil, err
124169	}
124170	ret := &TestPermissionsResponse{
124171		ServerResponse: googleapi.ServerResponse{
124172			Header:         res.Header,
124173			HTTPStatusCode: res.StatusCode,
124174		},
124175	}
124176	target := &ret
124177	if err := gensupport.DecodeResponse(target, res); err != nil {
124178		return nil, err
124179	}
124180	return ret, nil
124181	// {
124182	//   "description": "Returns permissions that a caller has on the specified resource.",
124183	//   "httpMethod": "POST",
124184	//   "id": "compute.regionBackendServices.testIamPermissions",
124185	//   "parameterOrder": [
124186	//     "project",
124187	//     "region",
124188	//     "resource"
124189	//   ],
124190	//   "parameters": {
124191	//     "project": {
124192	//       "description": "Project ID for this request.",
124193	//       "location": "path",
124194	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124195	//       "required": true,
124196	//       "type": "string"
124197	//     },
124198	//     "region": {
124199	//       "description": "The name of the region for this request.",
124200	//       "location": "path",
124201	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124202	//       "required": true,
124203	//       "type": "string"
124204	//     },
124205	//     "resource": {
124206	//       "description": "Name or id of the resource for this request.",
124207	//       "location": "path",
124208	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124209	//       "required": true,
124210	//       "type": "string"
124211	//     }
124212	//   },
124213	//   "path": "{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
124214	//   "request": {
124215	//     "$ref": "TestPermissionsRequest"
124216	//   },
124217	//   "response": {
124218	//     "$ref": "TestPermissionsResponse"
124219	//   },
124220	//   "scopes": [
124221	//     "https://www.googleapis.com/auth/cloud-platform",
124222	//     "https://www.googleapis.com/auth/compute",
124223	//     "https://www.googleapis.com/auth/compute.readonly"
124224	//   ]
124225	// }
124226
124227}
124228
124229// method id "compute.regionBackendServices.update":
124230
124231type RegionBackendServicesUpdateCall struct {
124232	s              *Service
124233	project        string
124234	region         string
124235	backendService string
124236	backendservice *BackendService
124237	urlParams_     gensupport.URLParams
124238	ctx_           context.Context
124239	header_        http.Header
124240}
124241
124242// Update: Updates the specified regional BackendService resource with
124243// the data included in the request. There are several Understanding
124244// backend services to keep in mind when updating a backend service.
124245// Read  Understanding backend services for more information.
124246func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
124247	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124248	c.project = project
124249	c.region = region
124250	c.backendService = backendService
124251	c.backendservice = backendservice
124252	return c
124253}
124254
124255// RequestId sets the optional parameter "requestId": An optional
124256// request ID to identify requests. Specify a unique request ID so that
124257// if you must retry your request, the server will know to ignore the
124258// request if it has already been completed.
124259//
124260// For example, consider a situation where you make an initial request
124261// and the request times out. If you make the request again with the
124262// same request ID, the server can check if original operation with the
124263// same request ID was received, and if so, will ignore the second
124264// request. This prevents clients from accidentally creating duplicate
124265// commitments.
124266//
124267// The request ID must be a valid UUID with the exception that zero UUID
124268// is not supported (00000000-0000-0000-0000-000000000000).
124269func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
124270	c.urlParams_.Set("requestId", requestId)
124271	return c
124272}
124273
124274// Fields allows partial responses to be retrieved. See
124275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124276// for more information.
124277func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
124278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124279	return c
124280}
124281
124282// Context sets the context to be used in this call's Do method. Any
124283// pending HTTP request will be aborted if the provided context is
124284// canceled.
124285func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
124286	c.ctx_ = ctx
124287	return c
124288}
124289
124290// Header returns an http.Header that can be modified by the caller to
124291// add HTTP headers to the request.
124292func (c *RegionBackendServicesUpdateCall) Header() http.Header {
124293	if c.header_ == nil {
124294		c.header_ = make(http.Header)
124295	}
124296	return c.header_
124297}
124298
124299func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
124300	reqHeaders := make(http.Header)
124301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
124302	for k, v := range c.header_ {
124303		reqHeaders[k] = v
124304	}
124305	reqHeaders.Set("User-Agent", c.s.userAgent())
124306	var body io.Reader = nil
124307	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
124308	if err != nil {
124309		return nil, err
124310	}
124311	reqHeaders.Set("Content-Type", "application/json")
124312	c.urlParams_.Set("alt", alt)
124313	c.urlParams_.Set("prettyPrint", "false")
124314	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
124315	urls += "?" + c.urlParams_.Encode()
124316	req, err := http.NewRequest("PUT", urls, body)
124317	if err != nil {
124318		return nil, err
124319	}
124320	req.Header = reqHeaders
124321	googleapi.Expand(req.URL, map[string]string{
124322		"project":        c.project,
124323		"region":         c.region,
124324		"backendService": c.backendService,
124325	})
124326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124327}
124328
124329// Do executes the "compute.regionBackendServices.update" call.
124330// Exactly one of *Operation or error will be non-nil. Any non-2xx
124331// status code is an error. Response headers are in either
124332// *Operation.ServerResponse.Header or (if a response was returned at
124333// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124334// to check whether the returned error was because
124335// http.StatusNotModified was returned.
124336func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124337	gensupport.SetOptions(c.urlParams_, opts...)
124338	res, err := c.doRequest("json")
124339	if res != nil && res.StatusCode == http.StatusNotModified {
124340		if res.Body != nil {
124341			res.Body.Close()
124342		}
124343		return nil, &googleapi.Error{
124344			Code:   res.StatusCode,
124345			Header: res.Header,
124346		}
124347	}
124348	if err != nil {
124349		return nil, err
124350	}
124351	defer googleapi.CloseBody(res)
124352	if err := googleapi.CheckResponse(res); err != nil {
124353		return nil, err
124354	}
124355	ret := &Operation{
124356		ServerResponse: googleapi.ServerResponse{
124357			Header:         res.Header,
124358			HTTPStatusCode: res.StatusCode,
124359		},
124360	}
124361	target := &ret
124362	if err := gensupport.DecodeResponse(target, res); err != nil {
124363		return nil, err
124364	}
124365	return ret, nil
124366	// {
124367	//   "description": "Updates the specified regional BackendService resource with the data included in the request. There are several Understanding backend services to keep in mind when updating a backend service. Read  Understanding backend services for more information.",
124368	//   "httpMethod": "PUT",
124369	//   "id": "compute.regionBackendServices.update",
124370	//   "parameterOrder": [
124371	//     "project",
124372	//     "region",
124373	//     "backendService"
124374	//   ],
124375	//   "parameters": {
124376	//     "backendService": {
124377	//       "description": "Name of the BackendService resource to update.",
124378	//       "location": "path",
124379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124380	//       "required": true,
124381	//       "type": "string"
124382	//     },
124383	//     "project": {
124384	//       "description": "Project ID for this request.",
124385	//       "location": "path",
124386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124387	//       "required": true,
124388	//       "type": "string"
124389	//     },
124390	//     "region": {
124391	//       "description": "Name of the region scoping this request.",
124392	//       "location": "path",
124393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124394	//       "required": true,
124395	//       "type": "string"
124396	//     },
124397	//     "requestId": {
124398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124399	//       "location": "query",
124400	//       "type": "string"
124401	//     }
124402	//   },
124403	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
124404	//   "request": {
124405	//     "$ref": "BackendService"
124406	//   },
124407	//   "response": {
124408	//     "$ref": "Operation"
124409	//   },
124410	//   "scopes": [
124411	//     "https://www.googleapis.com/auth/cloud-platform",
124412	//     "https://www.googleapis.com/auth/compute"
124413	//   ]
124414	// }
124415
124416}
124417
124418// method id "compute.regionCommitments.aggregatedList":
124419
124420type RegionCommitmentsAggregatedListCall struct {
124421	s            *Service
124422	project      string
124423	urlParams_   gensupport.URLParams
124424	ifNoneMatch_ string
124425	ctx_         context.Context
124426	header_      http.Header
124427}
124428
124429// AggregatedList: Retrieves an aggregated list of commitments.
124430func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
124431	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124432	c.project = project
124433	return c
124434}
124435
124436// Filter sets the optional parameter "filter": A filter expression that
124437// filters resources listed in the response. The expression must specify
124438// the field name, a comparison operator, and the value that you want to
124439// use for filtering. The value must be a string, a number, or a
124440// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124441// `<`.
124442//
124443// For example, if you are filtering Compute Engine instances, you can
124444// exclude instances named `example-instance` by specifying `name !=
124445// example-instance`.
124446//
124447// You can also filter nested fields. For example, you could specify
124448// `scheduling.automaticRestart = false` to include instances only if
124449// they are not scheduled for automatic restarts. You can use filtering
124450// on nested fields to filter based on resource labels.
124451//
124452// To filter on multiple expressions, provide each separate expression
124453// within parentheses. For example: ``` (scheduling.automaticRestart =
124454// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124455// is an `AND` expression. However, you can include `AND` and `OR`
124456// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124457// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124458// (scheduling.automaticRestart = true) ```
124459func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
124460	c.urlParams_.Set("filter", filter)
124461	return c
124462}
124463
124464// IncludeAllScopes sets the optional parameter "includeAllScopes":
124465// Indicates whether every visible scope for each scope type (zone,
124466// region, global) should be included in the response. For new resource
124467// types added after this field, the flag has no effect as new resource
124468// types will always include every visible scope for each scope type in
124469// response. For resource types which predate this field, if this flag
124470// is omitted or false, only scopes of the scope types where the
124471// resource type is expected to be found will be included.
124472func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
124473	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
124474	return c
124475}
124476
124477// MaxResults sets the optional parameter "maxResults": The maximum
124478// number of results per page that should be returned. If the number of
124479// available results is larger than `maxResults`, Compute Engine returns
124480// a `nextPageToken` that can be used to get the next page of results in
124481// subsequent list requests. Acceptable values are `0` to `500`,
124482// inclusive. (Default: `500`)
124483func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
124484	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124485	return c
124486}
124487
124488// OrderBy sets the optional parameter "orderBy": Sorts list results by
124489// a certain order. By default, results are returned in alphanumerical
124490// order based on the resource name.
124491//
124492// You can also sort results in descending order based on the creation
124493// timestamp using `orderBy="creationTimestamp desc". This sorts
124494// results based on the `creationTimestamp` field in reverse
124495// chronological order (newest result first). Use this to sort resources
124496// like operations so that the newest operation is returned
124497// first.
124498//
124499// Currently, only sorting by `name` or `creationTimestamp desc` is
124500// supported.
124501func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
124502	c.urlParams_.Set("orderBy", orderBy)
124503	return c
124504}
124505
124506// PageToken sets the optional parameter "pageToken": Specifies a page
124507// token to use. Set `pageToken` to the `nextPageToken` returned by a
124508// previous list request to get the next page of results.
124509func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
124510	c.urlParams_.Set("pageToken", pageToken)
124511	return c
124512}
124513
124514// ReturnPartialSuccess sets the optional parameter
124515// "returnPartialSuccess": Opt-in for partial success behavior which
124516// provides partial results in case of failure. The default value is
124517// false and the logic is the same as today.
124518func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall {
124519	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
124520	return c
124521}
124522
124523// Fields allows partial responses to be retrieved. See
124524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124525// for more information.
124526func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
124527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124528	return c
124529}
124530
124531// IfNoneMatch sets the optional parameter which makes the operation
124532// fail if the object's ETag matches the given value. This is useful for
124533// getting updates only after the object has changed since the last
124534// request. Use googleapi.IsNotModified to check whether the response
124535// error from Do is the result of In-None-Match.
124536func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
124537	c.ifNoneMatch_ = entityTag
124538	return c
124539}
124540
124541// Context sets the context to be used in this call's Do method. Any
124542// pending HTTP request will be aborted if the provided context is
124543// canceled.
124544func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
124545	c.ctx_ = ctx
124546	return c
124547}
124548
124549// Header returns an http.Header that can be modified by the caller to
124550// add HTTP headers to the request.
124551func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
124552	if c.header_ == nil {
124553		c.header_ = make(http.Header)
124554	}
124555	return c.header_
124556}
124557
124558func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
124559	reqHeaders := make(http.Header)
124560	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
124561	for k, v := range c.header_ {
124562		reqHeaders[k] = v
124563	}
124564	reqHeaders.Set("User-Agent", c.s.userAgent())
124565	if c.ifNoneMatch_ != "" {
124566		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124567	}
124568	var body io.Reader = nil
124569	c.urlParams_.Set("alt", alt)
124570	c.urlParams_.Set("prettyPrint", "false")
124571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
124572	urls += "?" + c.urlParams_.Encode()
124573	req, err := http.NewRequest("GET", urls, body)
124574	if err != nil {
124575		return nil, err
124576	}
124577	req.Header = reqHeaders
124578	googleapi.Expand(req.URL, map[string]string{
124579		"project": c.project,
124580	})
124581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124582}
124583
124584// Do executes the "compute.regionCommitments.aggregatedList" call.
124585// Exactly one of *CommitmentAggregatedList or error will be non-nil.
124586// Any non-2xx status code is an error. Response headers are in either
124587// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
124588// returned at all) in error.(*googleapi.Error).Header. Use
124589// googleapi.IsNotModified to check whether the returned error was
124590// because http.StatusNotModified was returned.
124591func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
124592	gensupport.SetOptions(c.urlParams_, opts...)
124593	res, err := c.doRequest("json")
124594	if res != nil && res.StatusCode == http.StatusNotModified {
124595		if res.Body != nil {
124596			res.Body.Close()
124597		}
124598		return nil, &googleapi.Error{
124599			Code:   res.StatusCode,
124600			Header: res.Header,
124601		}
124602	}
124603	if err != nil {
124604		return nil, err
124605	}
124606	defer googleapi.CloseBody(res)
124607	if err := googleapi.CheckResponse(res); err != nil {
124608		return nil, err
124609	}
124610	ret := &CommitmentAggregatedList{
124611		ServerResponse: googleapi.ServerResponse{
124612			Header:         res.Header,
124613			HTTPStatusCode: res.StatusCode,
124614		},
124615	}
124616	target := &ret
124617	if err := gensupport.DecodeResponse(target, res); err != nil {
124618		return nil, err
124619	}
124620	return ret, nil
124621	// {
124622	//   "description": "Retrieves an aggregated list of commitments.",
124623	//   "httpMethod": "GET",
124624	//   "id": "compute.regionCommitments.aggregatedList",
124625	//   "parameterOrder": [
124626	//     "project"
124627	//   ],
124628	//   "parameters": {
124629	//     "filter": {
124630	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
124631	//       "location": "query",
124632	//       "type": "string"
124633	//     },
124634	//     "includeAllScopes": {
124635	//       "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.",
124636	//       "location": "query",
124637	//       "type": "boolean"
124638	//     },
124639	//     "maxResults": {
124640	//       "default": "500",
124641	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
124642	//       "format": "uint32",
124643	//       "location": "query",
124644	//       "minimum": "0",
124645	//       "type": "integer"
124646	//     },
124647	//     "orderBy": {
124648	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
124649	//       "location": "query",
124650	//       "type": "string"
124651	//     },
124652	//     "pageToken": {
124653	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
124654	//       "location": "query",
124655	//       "type": "string"
124656	//     },
124657	//     "project": {
124658	//       "description": "Project ID for this request.",
124659	//       "location": "path",
124660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124661	//       "required": true,
124662	//       "type": "string"
124663	//     },
124664	//     "returnPartialSuccess": {
124665	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
124666	//       "location": "query",
124667	//       "type": "boolean"
124668	//     }
124669	//   },
124670	//   "path": "{project}/aggregated/commitments",
124671	//   "response": {
124672	//     "$ref": "CommitmentAggregatedList"
124673	//   },
124674	//   "scopes": [
124675	//     "https://www.googleapis.com/auth/cloud-platform",
124676	//     "https://www.googleapis.com/auth/compute",
124677	//     "https://www.googleapis.com/auth/compute.readonly"
124678	//   ]
124679	// }
124680
124681}
124682
124683// Pages invokes f for each page of results.
124684// A non-nil error returned from f will halt the iteration.
124685// The provided context supersedes any context provided to the Context method.
124686func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
124687	c.ctx_ = ctx
124688	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124689	for {
124690		x, err := c.Do()
124691		if err != nil {
124692			return err
124693		}
124694		if err := f(x); err != nil {
124695			return err
124696		}
124697		if x.NextPageToken == "" {
124698			return nil
124699		}
124700		c.PageToken(x.NextPageToken)
124701	}
124702}
124703
124704// method id "compute.regionCommitments.get":
124705
124706type RegionCommitmentsGetCall struct {
124707	s            *Service
124708	project      string
124709	region       string
124710	commitment   string
124711	urlParams_   gensupport.URLParams
124712	ifNoneMatch_ string
124713	ctx_         context.Context
124714	header_      http.Header
124715}
124716
124717// Get: Returns the specified commitment resource. Gets a list of
124718// available commitments by making a list() request.
124719func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
124720	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124721	c.project = project
124722	c.region = region
124723	c.commitment = commitment
124724	return c
124725}
124726
124727// Fields allows partial responses to be retrieved. See
124728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124729// for more information.
124730func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
124731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124732	return c
124733}
124734
124735// IfNoneMatch sets the optional parameter which makes the operation
124736// fail if the object's ETag matches the given value. This is useful for
124737// getting updates only after the object has changed since the last
124738// request. Use googleapi.IsNotModified to check whether the response
124739// error from Do is the result of In-None-Match.
124740func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
124741	c.ifNoneMatch_ = entityTag
124742	return c
124743}
124744
124745// Context sets the context to be used in this call's Do method. Any
124746// pending HTTP request will be aborted if the provided context is
124747// canceled.
124748func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
124749	c.ctx_ = ctx
124750	return c
124751}
124752
124753// Header returns an http.Header that can be modified by the caller to
124754// add HTTP headers to the request.
124755func (c *RegionCommitmentsGetCall) Header() http.Header {
124756	if c.header_ == nil {
124757		c.header_ = make(http.Header)
124758	}
124759	return c.header_
124760}
124761
124762func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
124763	reqHeaders := make(http.Header)
124764	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
124765	for k, v := range c.header_ {
124766		reqHeaders[k] = v
124767	}
124768	reqHeaders.Set("User-Agent", c.s.userAgent())
124769	if c.ifNoneMatch_ != "" {
124770		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124771	}
124772	var body io.Reader = nil
124773	c.urlParams_.Set("alt", alt)
124774	c.urlParams_.Set("prettyPrint", "false")
124775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
124776	urls += "?" + c.urlParams_.Encode()
124777	req, err := http.NewRequest("GET", urls, body)
124778	if err != nil {
124779		return nil, err
124780	}
124781	req.Header = reqHeaders
124782	googleapi.Expand(req.URL, map[string]string{
124783		"project":    c.project,
124784		"region":     c.region,
124785		"commitment": c.commitment,
124786	})
124787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124788}
124789
124790// Do executes the "compute.regionCommitments.get" call.
124791// Exactly one of *Commitment or error will be non-nil. Any non-2xx
124792// status code is an error. Response headers are in either
124793// *Commitment.ServerResponse.Header or (if a response was returned at
124794// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124795// to check whether the returned error was because
124796// http.StatusNotModified was returned.
124797func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
124798	gensupport.SetOptions(c.urlParams_, opts...)
124799	res, err := c.doRequest("json")
124800	if res != nil && res.StatusCode == http.StatusNotModified {
124801		if res.Body != nil {
124802			res.Body.Close()
124803		}
124804		return nil, &googleapi.Error{
124805			Code:   res.StatusCode,
124806			Header: res.Header,
124807		}
124808	}
124809	if err != nil {
124810		return nil, err
124811	}
124812	defer googleapi.CloseBody(res)
124813	if err := googleapi.CheckResponse(res); err != nil {
124814		return nil, err
124815	}
124816	ret := &Commitment{
124817		ServerResponse: googleapi.ServerResponse{
124818			Header:         res.Header,
124819			HTTPStatusCode: res.StatusCode,
124820		},
124821	}
124822	target := &ret
124823	if err := gensupport.DecodeResponse(target, res); err != nil {
124824		return nil, err
124825	}
124826	return ret, nil
124827	// {
124828	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
124829	//   "httpMethod": "GET",
124830	//   "id": "compute.regionCommitments.get",
124831	//   "parameterOrder": [
124832	//     "project",
124833	//     "region",
124834	//     "commitment"
124835	//   ],
124836	//   "parameters": {
124837	//     "commitment": {
124838	//       "description": "Name of the commitment to return.",
124839	//       "location": "path",
124840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124841	//       "required": true,
124842	//       "type": "string"
124843	//     },
124844	//     "project": {
124845	//       "description": "Project ID for this request.",
124846	//       "location": "path",
124847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124848	//       "required": true,
124849	//       "type": "string"
124850	//     },
124851	//     "region": {
124852	//       "description": "Name of the region for this request.",
124853	//       "location": "path",
124854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124855	//       "required": true,
124856	//       "type": "string"
124857	//     }
124858	//   },
124859	//   "path": "{project}/regions/{region}/commitments/{commitment}",
124860	//   "response": {
124861	//     "$ref": "Commitment"
124862	//   },
124863	//   "scopes": [
124864	//     "https://www.googleapis.com/auth/cloud-platform",
124865	//     "https://www.googleapis.com/auth/compute",
124866	//     "https://www.googleapis.com/auth/compute.readonly"
124867	//   ]
124868	// }
124869
124870}
124871
124872// method id "compute.regionCommitments.insert":
124873
124874type RegionCommitmentsInsertCall struct {
124875	s          *Service
124876	project    string
124877	region     string
124878	commitment *Commitment
124879	urlParams_ gensupport.URLParams
124880	ctx_       context.Context
124881	header_    http.Header
124882}
124883
124884// Insert: Creates a commitment in the specified project using the data
124885// included in the request.
124886func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
124887	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124888	c.project = project
124889	c.region = region
124890	c.commitment = commitment
124891	return c
124892}
124893
124894// RequestId sets the optional parameter "requestId": An optional
124895// request ID to identify requests. Specify a unique request ID so that
124896// if you must retry your request, the server will know to ignore the
124897// request if it has already been completed.
124898//
124899// For example, consider a situation where you make an initial request
124900// and the request times out. If you make the request again with the
124901// same request ID, the server can check if original operation with the
124902// same request ID was received, and if so, will ignore the second
124903// request. This prevents clients from accidentally creating duplicate
124904// commitments.
124905//
124906// The request ID must be a valid UUID with the exception that zero UUID
124907// is not supported (00000000-0000-0000-0000-000000000000).
124908func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
124909	c.urlParams_.Set("requestId", requestId)
124910	return c
124911}
124912
124913// Fields allows partial responses to be retrieved. See
124914// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124915// for more information.
124916func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
124917	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124918	return c
124919}
124920
124921// Context sets the context to be used in this call's Do method. Any
124922// pending HTTP request will be aborted if the provided context is
124923// canceled.
124924func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
124925	c.ctx_ = ctx
124926	return c
124927}
124928
124929// Header returns an http.Header that can be modified by the caller to
124930// add HTTP headers to the request.
124931func (c *RegionCommitmentsInsertCall) Header() http.Header {
124932	if c.header_ == nil {
124933		c.header_ = make(http.Header)
124934	}
124935	return c.header_
124936}
124937
124938func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
124939	reqHeaders := make(http.Header)
124940	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
124941	for k, v := range c.header_ {
124942		reqHeaders[k] = v
124943	}
124944	reqHeaders.Set("User-Agent", c.s.userAgent())
124945	var body io.Reader = nil
124946	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
124947	if err != nil {
124948		return nil, err
124949	}
124950	reqHeaders.Set("Content-Type", "application/json")
124951	c.urlParams_.Set("alt", alt)
124952	c.urlParams_.Set("prettyPrint", "false")
124953	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
124954	urls += "?" + c.urlParams_.Encode()
124955	req, err := http.NewRequest("POST", urls, body)
124956	if err != nil {
124957		return nil, err
124958	}
124959	req.Header = reqHeaders
124960	googleapi.Expand(req.URL, map[string]string{
124961		"project": c.project,
124962		"region":  c.region,
124963	})
124964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124965}
124966
124967// Do executes the "compute.regionCommitments.insert" call.
124968// Exactly one of *Operation or error will be non-nil. Any non-2xx
124969// status code is an error. Response headers are in either
124970// *Operation.ServerResponse.Header or (if a response was returned at
124971// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124972// to check whether the returned error was because
124973// http.StatusNotModified was returned.
124974func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124975	gensupport.SetOptions(c.urlParams_, opts...)
124976	res, err := c.doRequest("json")
124977	if res != nil && res.StatusCode == http.StatusNotModified {
124978		if res.Body != nil {
124979			res.Body.Close()
124980		}
124981		return nil, &googleapi.Error{
124982			Code:   res.StatusCode,
124983			Header: res.Header,
124984		}
124985	}
124986	if err != nil {
124987		return nil, err
124988	}
124989	defer googleapi.CloseBody(res)
124990	if err := googleapi.CheckResponse(res); err != nil {
124991		return nil, err
124992	}
124993	ret := &Operation{
124994		ServerResponse: googleapi.ServerResponse{
124995			Header:         res.Header,
124996			HTTPStatusCode: res.StatusCode,
124997		},
124998	}
124999	target := &ret
125000	if err := gensupport.DecodeResponse(target, res); err != nil {
125001		return nil, err
125002	}
125003	return ret, nil
125004	// {
125005	//   "description": "Creates a commitment in the specified project using the data included in the request.",
125006	//   "httpMethod": "POST",
125007	//   "id": "compute.regionCommitments.insert",
125008	//   "parameterOrder": [
125009	//     "project",
125010	//     "region"
125011	//   ],
125012	//   "parameters": {
125013	//     "project": {
125014	//       "description": "Project ID for this request.",
125015	//       "location": "path",
125016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125017	//       "required": true,
125018	//       "type": "string"
125019	//     },
125020	//     "region": {
125021	//       "description": "Name of the region for this request.",
125022	//       "location": "path",
125023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125024	//       "required": true,
125025	//       "type": "string"
125026	//     },
125027	//     "requestId": {
125028	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125029	//       "location": "query",
125030	//       "type": "string"
125031	//     }
125032	//   },
125033	//   "path": "{project}/regions/{region}/commitments",
125034	//   "request": {
125035	//     "$ref": "Commitment"
125036	//   },
125037	//   "response": {
125038	//     "$ref": "Operation"
125039	//   },
125040	//   "scopes": [
125041	//     "https://www.googleapis.com/auth/cloud-platform",
125042	//     "https://www.googleapis.com/auth/compute"
125043	//   ]
125044	// }
125045
125046}
125047
125048// method id "compute.regionCommitments.list":
125049
125050type RegionCommitmentsListCall struct {
125051	s            *Service
125052	project      string
125053	region       string
125054	urlParams_   gensupport.URLParams
125055	ifNoneMatch_ string
125056	ctx_         context.Context
125057	header_      http.Header
125058}
125059
125060// List: Retrieves a list of commitments contained within the specified
125061// region.
125062func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
125063	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125064	c.project = project
125065	c.region = region
125066	return c
125067}
125068
125069// Filter sets the optional parameter "filter": A filter expression that
125070// filters resources listed in the response. The expression must specify
125071// the field name, a comparison operator, and the value that you want to
125072// use for filtering. The value must be a string, a number, or a
125073// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125074// `<`.
125075//
125076// For example, if you are filtering Compute Engine instances, you can
125077// exclude instances named `example-instance` by specifying `name !=
125078// example-instance`.
125079//
125080// You can also filter nested fields. For example, you could specify
125081// `scheduling.automaticRestart = false` to include instances only if
125082// they are not scheduled for automatic restarts. You can use filtering
125083// on nested fields to filter based on resource labels.
125084//
125085// To filter on multiple expressions, provide each separate expression
125086// within parentheses. For example: ``` (scheduling.automaticRestart =
125087// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
125088// is an `AND` expression. However, you can include `AND` and `OR`
125089// expressions explicitly. For example: ``` (cpuPlatform = "Intel
125090// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
125091// (scheduling.automaticRestart = true) ```
125092func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
125093	c.urlParams_.Set("filter", filter)
125094	return c
125095}
125096
125097// MaxResults sets the optional parameter "maxResults": The maximum
125098// number of results per page that should be returned. If the number of
125099// available results is larger than `maxResults`, Compute Engine returns
125100// a `nextPageToken` that can be used to get the next page of results in
125101// subsequent list requests. Acceptable values are `0` to `500`,
125102// inclusive. (Default: `500`)
125103func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
125104	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125105	return c
125106}
125107
125108// OrderBy sets the optional parameter "orderBy": Sorts list results by
125109// a certain order. By default, results are returned in alphanumerical
125110// order based on the resource name.
125111//
125112// You can also sort results in descending order based on the creation
125113// timestamp using `orderBy="creationTimestamp desc". This sorts
125114// results based on the `creationTimestamp` field in reverse
125115// chronological order (newest result first). Use this to sort resources
125116// like operations so that the newest operation is returned
125117// first.
125118//
125119// Currently, only sorting by `name` or `creationTimestamp desc` is
125120// supported.
125121func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
125122	c.urlParams_.Set("orderBy", orderBy)
125123	return c
125124}
125125
125126// PageToken sets the optional parameter "pageToken": Specifies a page
125127// token to use. Set `pageToken` to the `nextPageToken` returned by a
125128// previous list request to get the next page of results.
125129func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
125130	c.urlParams_.Set("pageToken", pageToken)
125131	return c
125132}
125133
125134// ReturnPartialSuccess sets the optional parameter
125135// "returnPartialSuccess": Opt-in for partial success behavior which
125136// provides partial results in case of failure. The default value is
125137// false and the logic is the same as today.
125138func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall {
125139	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
125140	return c
125141}
125142
125143// Fields allows partial responses to be retrieved. See
125144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125145// for more information.
125146func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
125147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125148	return c
125149}
125150
125151// IfNoneMatch sets the optional parameter which makes the operation
125152// fail if the object's ETag matches the given value. This is useful for
125153// getting updates only after the object has changed since the last
125154// request. Use googleapi.IsNotModified to check whether the response
125155// error from Do is the result of In-None-Match.
125156func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
125157	c.ifNoneMatch_ = entityTag
125158	return c
125159}
125160
125161// Context sets the context to be used in this call's Do method. Any
125162// pending HTTP request will be aborted if the provided context is
125163// canceled.
125164func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
125165	c.ctx_ = ctx
125166	return c
125167}
125168
125169// Header returns an http.Header that can be modified by the caller to
125170// add HTTP headers to the request.
125171func (c *RegionCommitmentsListCall) Header() http.Header {
125172	if c.header_ == nil {
125173		c.header_ = make(http.Header)
125174	}
125175	return c.header_
125176}
125177
125178func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
125179	reqHeaders := make(http.Header)
125180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
125181	for k, v := range c.header_ {
125182		reqHeaders[k] = v
125183	}
125184	reqHeaders.Set("User-Agent", c.s.userAgent())
125185	if c.ifNoneMatch_ != "" {
125186		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125187	}
125188	var body io.Reader = nil
125189	c.urlParams_.Set("alt", alt)
125190	c.urlParams_.Set("prettyPrint", "false")
125191	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
125192	urls += "?" + c.urlParams_.Encode()
125193	req, err := http.NewRequest("GET", urls, body)
125194	if err != nil {
125195		return nil, err
125196	}
125197	req.Header = reqHeaders
125198	googleapi.Expand(req.URL, map[string]string{
125199		"project": c.project,
125200		"region":  c.region,
125201	})
125202	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125203}
125204
125205// Do executes the "compute.regionCommitments.list" call.
125206// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
125207// status code is an error. Response headers are in either
125208// *CommitmentList.ServerResponse.Header or (if a response was returned
125209// at all) in error.(*googleapi.Error).Header. Use
125210// googleapi.IsNotModified to check whether the returned error was
125211// because http.StatusNotModified was returned.
125212func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
125213	gensupport.SetOptions(c.urlParams_, opts...)
125214	res, err := c.doRequest("json")
125215	if res != nil && res.StatusCode == http.StatusNotModified {
125216		if res.Body != nil {
125217			res.Body.Close()
125218		}
125219		return nil, &googleapi.Error{
125220			Code:   res.StatusCode,
125221			Header: res.Header,
125222		}
125223	}
125224	if err != nil {
125225		return nil, err
125226	}
125227	defer googleapi.CloseBody(res)
125228	if err := googleapi.CheckResponse(res); err != nil {
125229		return nil, err
125230	}
125231	ret := &CommitmentList{
125232		ServerResponse: googleapi.ServerResponse{
125233			Header:         res.Header,
125234			HTTPStatusCode: res.StatusCode,
125235		},
125236	}
125237	target := &ret
125238	if err := gensupport.DecodeResponse(target, res); err != nil {
125239		return nil, err
125240	}
125241	return ret, nil
125242	// {
125243	//   "description": "Retrieves a list of commitments contained within the specified region.",
125244	//   "httpMethod": "GET",
125245	//   "id": "compute.regionCommitments.list",
125246	//   "parameterOrder": [
125247	//     "project",
125248	//     "region"
125249	//   ],
125250	//   "parameters": {
125251	//     "filter": {
125252	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125253	//       "location": "query",
125254	//       "type": "string"
125255	//     },
125256	//     "maxResults": {
125257	//       "default": "500",
125258	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125259	//       "format": "uint32",
125260	//       "location": "query",
125261	//       "minimum": "0",
125262	//       "type": "integer"
125263	//     },
125264	//     "orderBy": {
125265	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125266	//       "location": "query",
125267	//       "type": "string"
125268	//     },
125269	//     "pageToken": {
125270	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125271	//       "location": "query",
125272	//       "type": "string"
125273	//     },
125274	//     "project": {
125275	//       "description": "Project ID for this request.",
125276	//       "location": "path",
125277	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125278	//       "required": true,
125279	//       "type": "string"
125280	//     },
125281	//     "region": {
125282	//       "description": "Name of the region for this request.",
125283	//       "location": "path",
125284	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125285	//       "required": true,
125286	//       "type": "string"
125287	//     },
125288	//     "returnPartialSuccess": {
125289	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
125290	//       "location": "query",
125291	//       "type": "boolean"
125292	//     }
125293	//   },
125294	//   "path": "{project}/regions/{region}/commitments",
125295	//   "response": {
125296	//     "$ref": "CommitmentList"
125297	//   },
125298	//   "scopes": [
125299	//     "https://www.googleapis.com/auth/cloud-platform",
125300	//     "https://www.googleapis.com/auth/compute",
125301	//     "https://www.googleapis.com/auth/compute.readonly"
125302	//   ]
125303	// }
125304
125305}
125306
125307// Pages invokes f for each page of results.
125308// A non-nil error returned from f will halt the iteration.
125309// The provided context supersedes any context provided to the Context method.
125310func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
125311	c.ctx_ = ctx
125312	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125313	for {
125314		x, err := c.Do()
125315		if err != nil {
125316			return err
125317		}
125318		if err := f(x); err != nil {
125319			return err
125320		}
125321		if x.NextPageToken == "" {
125322			return nil
125323		}
125324		c.PageToken(x.NextPageToken)
125325	}
125326}
125327
125328// method id "compute.regionCommitments.testIamPermissions":
125329
125330type RegionCommitmentsTestIamPermissionsCall struct {
125331	s                      *Service
125332	project                string
125333	region                 string
125334	resource               string
125335	testpermissionsrequest *TestPermissionsRequest
125336	urlParams_             gensupport.URLParams
125337	ctx_                   context.Context
125338	header_                http.Header
125339}
125340
125341// TestIamPermissions: Returns permissions that a caller has on the
125342// specified resource.
125343func (r *RegionCommitmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionCommitmentsTestIamPermissionsCall {
125344	c := &RegionCommitmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125345	c.project = project
125346	c.region = region
125347	c.resource = resource
125348	c.testpermissionsrequest = testpermissionsrequest
125349	return c
125350}
125351
125352// Fields allows partial responses to be retrieved. See
125353// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125354// for more information.
125355func (c *RegionCommitmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionCommitmentsTestIamPermissionsCall {
125356	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125357	return c
125358}
125359
125360// Context sets the context to be used in this call's Do method. Any
125361// pending HTTP request will be aborted if the provided context is
125362// canceled.
125363func (c *RegionCommitmentsTestIamPermissionsCall) Context(ctx context.Context) *RegionCommitmentsTestIamPermissionsCall {
125364	c.ctx_ = ctx
125365	return c
125366}
125367
125368// Header returns an http.Header that can be modified by the caller to
125369// add HTTP headers to the request.
125370func (c *RegionCommitmentsTestIamPermissionsCall) Header() http.Header {
125371	if c.header_ == nil {
125372		c.header_ = make(http.Header)
125373	}
125374	return c.header_
125375}
125376
125377func (c *RegionCommitmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
125378	reqHeaders := make(http.Header)
125379	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
125380	for k, v := range c.header_ {
125381		reqHeaders[k] = v
125382	}
125383	reqHeaders.Set("User-Agent", c.s.userAgent())
125384	var body io.Reader = nil
125385	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
125386	if err != nil {
125387		return nil, err
125388	}
125389	reqHeaders.Set("Content-Type", "application/json")
125390	c.urlParams_.Set("alt", alt)
125391	c.urlParams_.Set("prettyPrint", "false")
125392	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{resource}/testIamPermissions")
125393	urls += "?" + c.urlParams_.Encode()
125394	req, err := http.NewRequest("POST", urls, body)
125395	if err != nil {
125396		return nil, err
125397	}
125398	req.Header = reqHeaders
125399	googleapi.Expand(req.URL, map[string]string{
125400		"project":  c.project,
125401		"region":   c.region,
125402		"resource": c.resource,
125403	})
125404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125405}
125406
125407// Do executes the "compute.regionCommitments.testIamPermissions" call.
125408// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
125409// non-2xx status code is an error. Response headers are in either
125410// *TestPermissionsResponse.ServerResponse.Header or (if a response was
125411// returned at all) in error.(*googleapi.Error).Header. Use
125412// googleapi.IsNotModified to check whether the returned error was
125413// because http.StatusNotModified was returned.
125414func (c *RegionCommitmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
125415	gensupport.SetOptions(c.urlParams_, opts...)
125416	res, err := c.doRequest("json")
125417	if res != nil && res.StatusCode == http.StatusNotModified {
125418		if res.Body != nil {
125419			res.Body.Close()
125420		}
125421		return nil, &googleapi.Error{
125422			Code:   res.StatusCode,
125423			Header: res.Header,
125424		}
125425	}
125426	if err != nil {
125427		return nil, err
125428	}
125429	defer googleapi.CloseBody(res)
125430	if err := googleapi.CheckResponse(res); err != nil {
125431		return nil, err
125432	}
125433	ret := &TestPermissionsResponse{
125434		ServerResponse: googleapi.ServerResponse{
125435			Header:         res.Header,
125436			HTTPStatusCode: res.StatusCode,
125437		},
125438	}
125439	target := &ret
125440	if err := gensupport.DecodeResponse(target, res); err != nil {
125441		return nil, err
125442	}
125443	return ret, nil
125444	// {
125445	//   "description": "Returns permissions that a caller has on the specified resource.",
125446	//   "httpMethod": "POST",
125447	//   "id": "compute.regionCommitments.testIamPermissions",
125448	//   "parameterOrder": [
125449	//     "project",
125450	//     "region",
125451	//     "resource"
125452	//   ],
125453	//   "parameters": {
125454	//     "project": {
125455	//       "description": "Project ID for this request.",
125456	//       "location": "path",
125457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125458	//       "required": true,
125459	//       "type": "string"
125460	//     },
125461	//     "region": {
125462	//       "description": "The name of the region for this request.",
125463	//       "location": "path",
125464	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125465	//       "required": true,
125466	//       "type": "string"
125467	//     },
125468	//     "resource": {
125469	//       "description": "Name or id of the resource for this request.",
125470	//       "location": "path",
125471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125472	//       "required": true,
125473	//       "type": "string"
125474	//     }
125475	//   },
125476	//   "path": "{project}/regions/{region}/commitments/{resource}/testIamPermissions",
125477	//   "request": {
125478	//     "$ref": "TestPermissionsRequest"
125479	//   },
125480	//   "response": {
125481	//     "$ref": "TestPermissionsResponse"
125482	//   },
125483	//   "scopes": [
125484	//     "https://www.googleapis.com/auth/cloud-platform",
125485	//     "https://www.googleapis.com/auth/compute",
125486	//     "https://www.googleapis.com/auth/compute.readonly"
125487	//   ]
125488	// }
125489
125490}
125491
125492// method id "compute.regionCommitments.updateReservations":
125493
125494type RegionCommitmentsUpdateReservationsCall struct {
125495	s                                          *Service
125496	project                                    string
125497	region                                     string
125498	commitment                                 string
125499	regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest
125500	urlParams_                                 gensupport.URLParams
125501	ctx_                                       context.Context
125502	header_                                    http.Header
125503}
125504
125505// UpdateReservations: Transfers GPUs or local SSDs between reservations
125506// within commitments.
125507func (r *RegionCommitmentsService) UpdateReservations(project string, region string, commitment string, regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest) *RegionCommitmentsUpdateReservationsCall {
125508	c := &RegionCommitmentsUpdateReservationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125509	c.project = project
125510	c.region = region
125511	c.commitment = commitment
125512	c.regioncommitmentsupdatereservationsrequest = regioncommitmentsupdatereservationsrequest
125513	return c
125514}
125515
125516// RequestId sets the optional parameter "requestId": An optional
125517// request ID to identify requests. Specify a unique request ID so that
125518// if you must retry your request, the server will know to ignore the
125519// request if it has already been completed.
125520//
125521// For example, consider a situation where you make an initial request
125522// and the request times out. If you make the request again with the
125523// same request ID, the server can check if original operation with the
125524// same request ID was received, and if so, will ignore the second
125525// request. This prevents clients from accidentally creating duplicate
125526// commitments.
125527//
125528// The request ID must be a valid UUID with the exception that zero UUID
125529// is not supported (00000000-0000-0000-0000-000000000000).
125530func (c *RegionCommitmentsUpdateReservationsCall) RequestId(requestId string) *RegionCommitmentsUpdateReservationsCall {
125531	c.urlParams_.Set("requestId", requestId)
125532	return c
125533}
125534
125535// Fields allows partial responses to be retrieved. See
125536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125537// for more information.
125538func (c *RegionCommitmentsUpdateReservationsCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateReservationsCall {
125539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125540	return c
125541}
125542
125543// Context sets the context to be used in this call's Do method. Any
125544// pending HTTP request will be aborted if the provided context is
125545// canceled.
125546func (c *RegionCommitmentsUpdateReservationsCall) Context(ctx context.Context) *RegionCommitmentsUpdateReservationsCall {
125547	c.ctx_ = ctx
125548	return c
125549}
125550
125551// Header returns an http.Header that can be modified by the caller to
125552// add HTTP headers to the request.
125553func (c *RegionCommitmentsUpdateReservationsCall) Header() http.Header {
125554	if c.header_ == nil {
125555		c.header_ = make(http.Header)
125556	}
125557	return c.header_
125558}
125559
125560func (c *RegionCommitmentsUpdateReservationsCall) doRequest(alt string) (*http.Response, error) {
125561	reqHeaders := make(http.Header)
125562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
125563	for k, v := range c.header_ {
125564		reqHeaders[k] = v
125565	}
125566	reqHeaders.Set("User-Agent", c.s.userAgent())
125567	var body io.Reader = nil
125568	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioncommitmentsupdatereservationsrequest)
125569	if err != nil {
125570		return nil, err
125571	}
125572	reqHeaders.Set("Content-Type", "application/json")
125573	c.urlParams_.Set("alt", alt)
125574	c.urlParams_.Set("prettyPrint", "false")
125575	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}/updateReservations")
125576	urls += "?" + c.urlParams_.Encode()
125577	req, err := http.NewRequest("POST", urls, body)
125578	if err != nil {
125579		return nil, err
125580	}
125581	req.Header = reqHeaders
125582	googleapi.Expand(req.URL, map[string]string{
125583		"project":    c.project,
125584		"region":     c.region,
125585		"commitment": c.commitment,
125586	})
125587	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125588}
125589
125590// Do executes the "compute.regionCommitments.updateReservations" call.
125591// Exactly one of *Operation or error will be non-nil. Any non-2xx
125592// status code is an error. Response headers are in either
125593// *Operation.ServerResponse.Header or (if a response was returned at
125594// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125595// to check whether the returned error was because
125596// http.StatusNotModified was returned.
125597func (c *RegionCommitmentsUpdateReservationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125598	gensupport.SetOptions(c.urlParams_, opts...)
125599	res, err := c.doRequest("json")
125600	if res != nil && res.StatusCode == http.StatusNotModified {
125601		if res.Body != nil {
125602			res.Body.Close()
125603		}
125604		return nil, &googleapi.Error{
125605			Code:   res.StatusCode,
125606			Header: res.Header,
125607		}
125608	}
125609	if err != nil {
125610		return nil, err
125611	}
125612	defer googleapi.CloseBody(res)
125613	if err := googleapi.CheckResponse(res); err != nil {
125614		return nil, err
125615	}
125616	ret := &Operation{
125617		ServerResponse: googleapi.ServerResponse{
125618			Header:         res.Header,
125619			HTTPStatusCode: res.StatusCode,
125620		},
125621	}
125622	target := &ret
125623	if err := gensupport.DecodeResponse(target, res); err != nil {
125624		return nil, err
125625	}
125626	return ret, nil
125627	// {
125628	//   "description": "Transfers GPUs or local SSDs between reservations within commitments.",
125629	//   "httpMethod": "POST",
125630	//   "id": "compute.regionCommitments.updateReservations",
125631	//   "parameterOrder": [
125632	//     "project",
125633	//     "region",
125634	//     "commitment"
125635	//   ],
125636	//   "parameters": {
125637	//     "commitment": {
125638	//       "description": "Name of the commitment for which the reservation is being updated.",
125639	//       "location": "path",
125640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125641	//       "required": true,
125642	//       "type": "string"
125643	//     },
125644	//     "project": {
125645	//       "description": "Project ID for this request.",
125646	//       "location": "path",
125647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125648	//       "required": true,
125649	//       "type": "string"
125650	//     },
125651	//     "region": {
125652	//       "description": "Name of the region for this request.",
125653	//       "location": "path",
125654	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125655	//       "required": true,
125656	//       "type": "string"
125657	//     },
125658	//     "requestId": {
125659	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125660	//       "location": "query",
125661	//       "type": "string"
125662	//     }
125663	//   },
125664	//   "path": "{project}/regions/{region}/commitments/{commitment}/updateReservations",
125665	//   "request": {
125666	//     "$ref": "RegionCommitmentsUpdateReservationsRequest"
125667	//   },
125668	//   "response": {
125669	//     "$ref": "Operation"
125670	//   },
125671	//   "scopes": [
125672	//     "https://www.googleapis.com/auth/cloud-platform",
125673	//     "https://www.googleapis.com/auth/compute"
125674	//   ]
125675	// }
125676
125677}
125678
125679// method id "compute.regionDiskTypes.get":
125680
125681type RegionDiskTypesGetCall struct {
125682	s            *Service
125683	project      string
125684	region       string
125685	diskType     string
125686	urlParams_   gensupport.URLParams
125687	ifNoneMatch_ string
125688	ctx_         context.Context
125689	header_      http.Header
125690}
125691
125692// Get: Returns the specified regional disk type. Gets a list of
125693// available disk types by making a list() request.
125694func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
125695	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125696	c.project = project
125697	c.region = region
125698	c.diskType = diskType
125699	return c
125700}
125701
125702// Fields allows partial responses to be retrieved. See
125703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125704// for more information.
125705func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
125706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125707	return c
125708}
125709
125710// IfNoneMatch sets the optional parameter which makes the operation
125711// fail if the object's ETag matches the given value. This is useful for
125712// getting updates only after the object has changed since the last
125713// request. Use googleapi.IsNotModified to check whether the response
125714// error from Do is the result of In-None-Match.
125715func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
125716	c.ifNoneMatch_ = entityTag
125717	return c
125718}
125719
125720// Context sets the context to be used in this call's Do method. Any
125721// pending HTTP request will be aborted if the provided context is
125722// canceled.
125723func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
125724	c.ctx_ = ctx
125725	return c
125726}
125727
125728// Header returns an http.Header that can be modified by the caller to
125729// add HTTP headers to the request.
125730func (c *RegionDiskTypesGetCall) Header() http.Header {
125731	if c.header_ == nil {
125732		c.header_ = make(http.Header)
125733	}
125734	return c.header_
125735}
125736
125737func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
125738	reqHeaders := make(http.Header)
125739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
125740	for k, v := range c.header_ {
125741		reqHeaders[k] = v
125742	}
125743	reqHeaders.Set("User-Agent", c.s.userAgent())
125744	if c.ifNoneMatch_ != "" {
125745		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125746	}
125747	var body io.Reader = nil
125748	c.urlParams_.Set("alt", alt)
125749	c.urlParams_.Set("prettyPrint", "false")
125750	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes/{diskType}")
125751	urls += "?" + c.urlParams_.Encode()
125752	req, err := http.NewRequest("GET", urls, body)
125753	if err != nil {
125754		return nil, err
125755	}
125756	req.Header = reqHeaders
125757	googleapi.Expand(req.URL, map[string]string{
125758		"project":  c.project,
125759		"region":   c.region,
125760		"diskType": c.diskType,
125761	})
125762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125763}
125764
125765// Do executes the "compute.regionDiskTypes.get" call.
125766// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
125767// code is an error. Response headers are in either
125768// *DiskType.ServerResponse.Header or (if a response was returned at
125769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125770// to check whether the returned error was because
125771// http.StatusNotModified was returned.
125772func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
125773	gensupport.SetOptions(c.urlParams_, opts...)
125774	res, err := c.doRequest("json")
125775	if res != nil && res.StatusCode == http.StatusNotModified {
125776		if res.Body != nil {
125777			res.Body.Close()
125778		}
125779		return nil, &googleapi.Error{
125780			Code:   res.StatusCode,
125781			Header: res.Header,
125782		}
125783	}
125784	if err != nil {
125785		return nil, err
125786	}
125787	defer googleapi.CloseBody(res)
125788	if err := googleapi.CheckResponse(res); err != nil {
125789		return nil, err
125790	}
125791	ret := &DiskType{
125792		ServerResponse: googleapi.ServerResponse{
125793			Header:         res.Header,
125794			HTTPStatusCode: res.StatusCode,
125795		},
125796	}
125797	target := &ret
125798	if err := gensupport.DecodeResponse(target, res); err != nil {
125799		return nil, err
125800	}
125801	return ret, nil
125802	// {
125803	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
125804	//   "httpMethod": "GET",
125805	//   "id": "compute.regionDiskTypes.get",
125806	//   "parameterOrder": [
125807	//     "project",
125808	//     "region",
125809	//     "diskType"
125810	//   ],
125811	//   "parameters": {
125812	//     "diskType": {
125813	//       "description": "Name of the disk type to return.",
125814	//       "location": "path",
125815	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125816	//       "required": true,
125817	//       "type": "string"
125818	//     },
125819	//     "project": {
125820	//       "description": "Project ID for this request.",
125821	//       "location": "path",
125822	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125823	//       "required": true,
125824	//       "type": "string"
125825	//     },
125826	//     "region": {
125827	//       "description": "The name of the region for this request.",
125828	//       "location": "path",
125829	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125830	//       "required": true,
125831	//       "type": "string"
125832	//     }
125833	//   },
125834	//   "path": "{project}/regions/{region}/diskTypes/{diskType}",
125835	//   "response": {
125836	//     "$ref": "DiskType"
125837	//   },
125838	//   "scopes": [
125839	//     "https://www.googleapis.com/auth/cloud-platform",
125840	//     "https://www.googleapis.com/auth/compute",
125841	//     "https://www.googleapis.com/auth/compute.readonly"
125842	//   ]
125843	// }
125844
125845}
125846
125847// method id "compute.regionDiskTypes.list":
125848
125849type RegionDiskTypesListCall struct {
125850	s            *Service
125851	project      string
125852	region       string
125853	urlParams_   gensupport.URLParams
125854	ifNoneMatch_ string
125855	ctx_         context.Context
125856	header_      http.Header
125857}
125858
125859// List: Retrieves a list of regional disk types available to the
125860// specified project.
125861func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
125862	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125863	c.project = project
125864	c.region = region
125865	return c
125866}
125867
125868// Filter sets the optional parameter "filter": A filter expression that
125869// filters resources listed in the response. The expression must specify
125870// the field name, a comparison operator, and the value that you want to
125871// use for filtering. The value must be a string, a number, or a
125872// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125873// `<`.
125874//
125875// For example, if you are filtering Compute Engine instances, you can
125876// exclude instances named `example-instance` by specifying `name !=
125877// example-instance`.
125878//
125879// You can also filter nested fields. For example, you could specify
125880// `scheduling.automaticRestart = false` to include instances only if
125881// they are not scheduled for automatic restarts. You can use filtering
125882// on nested fields to filter based on resource labels.
125883//
125884// To filter on multiple expressions, provide each separate expression
125885// within parentheses. For example: ``` (scheduling.automaticRestart =
125886// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
125887// is an `AND` expression. However, you can include `AND` and `OR`
125888// expressions explicitly. For example: ``` (cpuPlatform = "Intel
125889// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
125890// (scheduling.automaticRestart = true) ```
125891func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
125892	c.urlParams_.Set("filter", filter)
125893	return c
125894}
125895
125896// MaxResults sets the optional parameter "maxResults": The maximum
125897// number of results per page that should be returned. If the number of
125898// available results is larger than `maxResults`, Compute Engine returns
125899// a `nextPageToken` that can be used to get the next page of results in
125900// subsequent list requests. Acceptable values are `0` to `500`,
125901// inclusive. (Default: `500`)
125902func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
125903	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125904	return c
125905}
125906
125907// OrderBy sets the optional parameter "orderBy": Sorts list results by
125908// a certain order. By default, results are returned in alphanumerical
125909// order based on the resource name.
125910//
125911// You can also sort results in descending order based on the creation
125912// timestamp using `orderBy="creationTimestamp desc". This sorts
125913// results based on the `creationTimestamp` field in reverse
125914// chronological order (newest result first). Use this to sort resources
125915// like operations so that the newest operation is returned
125916// first.
125917//
125918// Currently, only sorting by `name` or `creationTimestamp desc` is
125919// supported.
125920func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
125921	c.urlParams_.Set("orderBy", orderBy)
125922	return c
125923}
125924
125925// PageToken sets the optional parameter "pageToken": Specifies a page
125926// token to use. Set `pageToken` to the `nextPageToken` returned by a
125927// previous list request to get the next page of results.
125928func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
125929	c.urlParams_.Set("pageToken", pageToken)
125930	return c
125931}
125932
125933// ReturnPartialSuccess sets the optional parameter
125934// "returnPartialSuccess": Opt-in for partial success behavior which
125935// provides partial results in case of failure. The default value is
125936// false and the logic is the same as today.
125937func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall {
125938	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
125939	return c
125940}
125941
125942// Fields allows partial responses to be retrieved. See
125943// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125944// for more information.
125945func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
125946	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125947	return c
125948}
125949
125950// IfNoneMatch sets the optional parameter which makes the operation
125951// fail if the object's ETag matches the given value. This is useful for
125952// getting updates only after the object has changed since the last
125953// request. Use googleapi.IsNotModified to check whether the response
125954// error from Do is the result of In-None-Match.
125955func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
125956	c.ifNoneMatch_ = entityTag
125957	return c
125958}
125959
125960// Context sets the context to be used in this call's Do method. Any
125961// pending HTTP request will be aborted if the provided context is
125962// canceled.
125963func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
125964	c.ctx_ = ctx
125965	return c
125966}
125967
125968// Header returns an http.Header that can be modified by the caller to
125969// add HTTP headers to the request.
125970func (c *RegionDiskTypesListCall) Header() http.Header {
125971	if c.header_ == nil {
125972		c.header_ = make(http.Header)
125973	}
125974	return c.header_
125975}
125976
125977func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
125978	reqHeaders := make(http.Header)
125979	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
125980	for k, v := range c.header_ {
125981		reqHeaders[k] = v
125982	}
125983	reqHeaders.Set("User-Agent", c.s.userAgent())
125984	if c.ifNoneMatch_ != "" {
125985		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125986	}
125987	var body io.Reader = nil
125988	c.urlParams_.Set("alt", alt)
125989	c.urlParams_.Set("prettyPrint", "false")
125990	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes")
125991	urls += "?" + c.urlParams_.Encode()
125992	req, err := http.NewRequest("GET", urls, body)
125993	if err != nil {
125994		return nil, err
125995	}
125996	req.Header = reqHeaders
125997	googleapi.Expand(req.URL, map[string]string{
125998		"project": c.project,
125999		"region":  c.region,
126000	})
126001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126002}
126003
126004// Do executes the "compute.regionDiskTypes.list" call.
126005// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
126006// non-2xx status code is an error. Response headers are in either
126007// *RegionDiskTypeList.ServerResponse.Header or (if a response was
126008// returned at all) in error.(*googleapi.Error).Header. Use
126009// googleapi.IsNotModified to check whether the returned error was
126010// because http.StatusNotModified was returned.
126011func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
126012	gensupport.SetOptions(c.urlParams_, opts...)
126013	res, err := c.doRequest("json")
126014	if res != nil && res.StatusCode == http.StatusNotModified {
126015		if res.Body != nil {
126016			res.Body.Close()
126017		}
126018		return nil, &googleapi.Error{
126019			Code:   res.StatusCode,
126020			Header: res.Header,
126021		}
126022	}
126023	if err != nil {
126024		return nil, err
126025	}
126026	defer googleapi.CloseBody(res)
126027	if err := googleapi.CheckResponse(res); err != nil {
126028		return nil, err
126029	}
126030	ret := &RegionDiskTypeList{
126031		ServerResponse: googleapi.ServerResponse{
126032			Header:         res.Header,
126033			HTTPStatusCode: res.StatusCode,
126034		},
126035	}
126036	target := &ret
126037	if err := gensupport.DecodeResponse(target, res); err != nil {
126038		return nil, err
126039	}
126040	return ret, nil
126041	// {
126042	//   "description": "Retrieves a list of regional disk types available to the specified project.",
126043	//   "httpMethod": "GET",
126044	//   "id": "compute.regionDiskTypes.list",
126045	//   "parameterOrder": [
126046	//     "project",
126047	//     "region"
126048	//   ],
126049	//   "parameters": {
126050	//     "filter": {
126051	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126052	//       "location": "query",
126053	//       "type": "string"
126054	//     },
126055	//     "maxResults": {
126056	//       "default": "500",
126057	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126058	//       "format": "uint32",
126059	//       "location": "query",
126060	//       "minimum": "0",
126061	//       "type": "integer"
126062	//     },
126063	//     "orderBy": {
126064	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
126065	//       "location": "query",
126066	//       "type": "string"
126067	//     },
126068	//     "pageToken": {
126069	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126070	//       "location": "query",
126071	//       "type": "string"
126072	//     },
126073	//     "project": {
126074	//       "description": "Project ID for this request.",
126075	//       "location": "path",
126076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126077	//       "required": true,
126078	//       "type": "string"
126079	//     },
126080	//     "region": {
126081	//       "description": "The name of the region for this request.",
126082	//       "location": "path",
126083	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126084	//       "required": true,
126085	//       "type": "string"
126086	//     },
126087	//     "returnPartialSuccess": {
126088	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
126089	//       "location": "query",
126090	//       "type": "boolean"
126091	//     }
126092	//   },
126093	//   "path": "{project}/regions/{region}/diskTypes",
126094	//   "response": {
126095	//     "$ref": "RegionDiskTypeList"
126096	//   },
126097	//   "scopes": [
126098	//     "https://www.googleapis.com/auth/cloud-platform",
126099	//     "https://www.googleapis.com/auth/compute",
126100	//     "https://www.googleapis.com/auth/compute.readonly"
126101	//   ]
126102	// }
126103
126104}
126105
126106// Pages invokes f for each page of results.
126107// A non-nil error returned from f will halt the iteration.
126108// The provided context supersedes any context provided to the Context method.
126109func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
126110	c.ctx_ = ctx
126111	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126112	for {
126113		x, err := c.Do()
126114		if err != nil {
126115			return err
126116		}
126117		if err := f(x); err != nil {
126118			return err
126119		}
126120		if x.NextPageToken == "" {
126121			return nil
126122		}
126123		c.PageToken(x.NextPageToken)
126124	}
126125}
126126
126127// method id "compute.regionDisks.addResourcePolicies":
126128
126129type RegionDisksAddResourcePoliciesCall struct {
126130	s                                     *Service
126131	project                               string
126132	region                                string
126133	disk                                  string
126134	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
126135	urlParams_                            gensupport.URLParams
126136	ctx_                                  context.Context
126137	header_                               http.Header
126138}
126139
126140// AddResourcePolicies: Adds existing resource policies to a regional
126141// disk. You can only add one policy which will be applied to this disk
126142// for scheduling snapshot creation.
126143func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
126144	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126145	c.project = project
126146	c.region = region
126147	c.disk = disk
126148	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
126149	return c
126150}
126151
126152// RequestId sets the optional parameter "requestId": An optional
126153// request ID to identify requests. Specify a unique request ID so that
126154// if you must retry your request, the server will know to ignore the
126155// request if it has already been completed.
126156//
126157// For example, consider a situation where you make an initial request
126158// and the request times out. If you make the request again with the
126159// same request ID, the server can check if original operation with the
126160// same request ID was received, and if so, will ignore the second
126161// request. This prevents clients from accidentally creating duplicate
126162// commitments.
126163//
126164// The request ID must be a valid UUID with the exception that zero UUID
126165// is not supported (00000000-0000-0000-0000-000000000000).
126166func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
126167	c.urlParams_.Set("requestId", requestId)
126168	return c
126169}
126170
126171// Fields allows partial responses to be retrieved. See
126172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126173// for more information.
126174func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
126175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126176	return c
126177}
126178
126179// Context sets the context to be used in this call's Do method. Any
126180// pending HTTP request will be aborted if the provided context is
126181// canceled.
126182func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
126183	c.ctx_ = ctx
126184	return c
126185}
126186
126187// Header returns an http.Header that can be modified by the caller to
126188// add HTTP headers to the request.
126189func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
126190	if c.header_ == nil {
126191		c.header_ = make(http.Header)
126192	}
126193	return c.header_
126194}
126195
126196func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
126197	reqHeaders := make(http.Header)
126198	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
126199	for k, v := range c.header_ {
126200		reqHeaders[k] = v
126201	}
126202	reqHeaders.Set("User-Agent", c.s.userAgent())
126203	var body io.Reader = nil
126204	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
126205	if err != nil {
126206		return nil, err
126207	}
126208	reqHeaders.Set("Content-Type", "application/json")
126209	c.urlParams_.Set("alt", alt)
126210	c.urlParams_.Set("prettyPrint", "false")
126211	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/addResourcePolicies")
126212	urls += "?" + c.urlParams_.Encode()
126213	req, err := http.NewRequest("POST", urls, body)
126214	if err != nil {
126215		return nil, err
126216	}
126217	req.Header = reqHeaders
126218	googleapi.Expand(req.URL, map[string]string{
126219		"project": c.project,
126220		"region":  c.region,
126221		"disk":    c.disk,
126222	})
126223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126224}
126225
126226// Do executes the "compute.regionDisks.addResourcePolicies" call.
126227// Exactly one of *Operation or error will be non-nil. Any non-2xx
126228// status code is an error. Response headers are in either
126229// *Operation.ServerResponse.Header or (if a response was returned at
126230// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126231// to check whether the returned error was because
126232// http.StatusNotModified was returned.
126233func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126234	gensupport.SetOptions(c.urlParams_, opts...)
126235	res, err := c.doRequest("json")
126236	if res != nil && res.StatusCode == http.StatusNotModified {
126237		if res.Body != nil {
126238			res.Body.Close()
126239		}
126240		return nil, &googleapi.Error{
126241			Code:   res.StatusCode,
126242			Header: res.Header,
126243		}
126244	}
126245	if err != nil {
126246		return nil, err
126247	}
126248	defer googleapi.CloseBody(res)
126249	if err := googleapi.CheckResponse(res); err != nil {
126250		return nil, err
126251	}
126252	ret := &Operation{
126253		ServerResponse: googleapi.ServerResponse{
126254			Header:         res.Header,
126255			HTTPStatusCode: res.StatusCode,
126256		},
126257	}
126258	target := &ret
126259	if err := gensupport.DecodeResponse(target, res); err != nil {
126260		return nil, err
126261	}
126262	return ret, nil
126263	// {
126264	//   "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.",
126265	//   "httpMethod": "POST",
126266	//   "id": "compute.regionDisks.addResourcePolicies",
126267	//   "parameterOrder": [
126268	//     "project",
126269	//     "region",
126270	//     "disk"
126271	//   ],
126272	//   "parameters": {
126273	//     "disk": {
126274	//       "description": "The disk name for this request.",
126275	//       "location": "path",
126276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126277	//       "required": true,
126278	//       "type": "string"
126279	//     },
126280	//     "project": {
126281	//       "description": "Project ID for this request.",
126282	//       "location": "path",
126283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126284	//       "required": true,
126285	//       "type": "string"
126286	//     },
126287	//     "region": {
126288	//       "description": "The name of the region for this request.",
126289	//       "location": "path",
126290	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126291	//       "required": true,
126292	//       "type": "string"
126293	//     },
126294	//     "requestId": {
126295	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126296	//       "location": "query",
126297	//       "type": "string"
126298	//     }
126299	//   },
126300	//   "path": "{project}/regions/{region}/disks/{disk}/addResourcePolicies",
126301	//   "request": {
126302	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
126303	//   },
126304	//   "response": {
126305	//     "$ref": "Operation"
126306	//   },
126307	//   "scopes": [
126308	//     "https://www.googleapis.com/auth/cloud-platform",
126309	//     "https://www.googleapis.com/auth/compute"
126310	//   ]
126311	// }
126312
126313}
126314
126315// method id "compute.regionDisks.createSnapshot":
126316
126317type RegionDisksCreateSnapshotCall struct {
126318	s          *Service
126319	project    string
126320	region     string
126321	disk       string
126322	snapshot   *Snapshot
126323	urlParams_ gensupport.URLParams
126324	ctx_       context.Context
126325	header_    http.Header
126326}
126327
126328// CreateSnapshot: Creates a snapshot of this regional disk.
126329func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
126330	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126331	c.project = project
126332	c.region = region
126333	c.disk = disk
126334	c.snapshot = snapshot
126335	return c
126336}
126337
126338// GuestFlush sets the optional parameter "guestFlush": [Input Only]
126339// Specifies to create an application consistent snapshot by informing
126340// the OS to prepare for the snapshot process. Currently only supported
126341// on Windows instances using the Volume Shadow Copy Service (VSS).
126342func (c *RegionDisksCreateSnapshotCall) GuestFlush(guestFlush bool) *RegionDisksCreateSnapshotCall {
126343	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
126344	return c
126345}
126346
126347// RequestId sets the optional parameter "requestId": An optional
126348// request ID to identify requests. Specify a unique request ID so that
126349// if you must retry your request, the server will know to ignore the
126350// request if it has already been completed.
126351//
126352// For example, consider a situation where you make an initial request
126353// and the request times out. If you make the request again with the
126354// same request ID, the server can check if original operation with the
126355// same request ID was received, and if so, will ignore the second
126356// request. This prevents clients from accidentally creating duplicate
126357// commitments.
126358//
126359// The request ID must be a valid UUID with the exception that zero UUID
126360// is not supported (00000000-0000-0000-0000-000000000000).
126361func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
126362	c.urlParams_.Set("requestId", requestId)
126363	return c
126364}
126365
126366// Fields allows partial responses to be retrieved. See
126367// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126368// for more information.
126369func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
126370	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126371	return c
126372}
126373
126374// Context sets the context to be used in this call's Do method. Any
126375// pending HTTP request will be aborted if the provided context is
126376// canceled.
126377func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
126378	c.ctx_ = ctx
126379	return c
126380}
126381
126382// Header returns an http.Header that can be modified by the caller to
126383// add HTTP headers to the request.
126384func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
126385	if c.header_ == nil {
126386		c.header_ = make(http.Header)
126387	}
126388	return c.header_
126389}
126390
126391func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
126392	reqHeaders := make(http.Header)
126393	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
126394	for k, v := range c.header_ {
126395		reqHeaders[k] = v
126396	}
126397	reqHeaders.Set("User-Agent", c.s.userAgent())
126398	var body io.Reader = nil
126399	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
126400	if err != nil {
126401		return nil, err
126402	}
126403	reqHeaders.Set("Content-Type", "application/json")
126404	c.urlParams_.Set("alt", alt)
126405	c.urlParams_.Set("prettyPrint", "false")
126406	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/createSnapshot")
126407	urls += "?" + c.urlParams_.Encode()
126408	req, err := http.NewRequest("POST", urls, body)
126409	if err != nil {
126410		return nil, err
126411	}
126412	req.Header = reqHeaders
126413	googleapi.Expand(req.URL, map[string]string{
126414		"project": c.project,
126415		"region":  c.region,
126416		"disk":    c.disk,
126417	})
126418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126419}
126420
126421// Do executes the "compute.regionDisks.createSnapshot" call.
126422// Exactly one of *Operation or error will be non-nil. Any non-2xx
126423// status code is an error. Response headers are in either
126424// *Operation.ServerResponse.Header or (if a response was returned at
126425// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126426// to check whether the returned error was because
126427// http.StatusNotModified was returned.
126428func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126429	gensupport.SetOptions(c.urlParams_, opts...)
126430	res, err := c.doRequest("json")
126431	if res != nil && res.StatusCode == http.StatusNotModified {
126432		if res.Body != nil {
126433			res.Body.Close()
126434		}
126435		return nil, &googleapi.Error{
126436			Code:   res.StatusCode,
126437			Header: res.Header,
126438		}
126439	}
126440	if err != nil {
126441		return nil, err
126442	}
126443	defer googleapi.CloseBody(res)
126444	if err := googleapi.CheckResponse(res); err != nil {
126445		return nil, err
126446	}
126447	ret := &Operation{
126448		ServerResponse: googleapi.ServerResponse{
126449			Header:         res.Header,
126450			HTTPStatusCode: res.StatusCode,
126451		},
126452	}
126453	target := &ret
126454	if err := gensupport.DecodeResponse(target, res); err != nil {
126455		return nil, err
126456	}
126457	return ret, nil
126458	// {
126459	//   "description": "Creates a snapshot of this regional disk.",
126460	//   "httpMethod": "POST",
126461	//   "id": "compute.regionDisks.createSnapshot",
126462	//   "parameterOrder": [
126463	//     "project",
126464	//     "region",
126465	//     "disk"
126466	//   ],
126467	//   "parameters": {
126468	//     "disk": {
126469	//       "description": "Name of the regional persistent disk to snapshot.",
126470	//       "location": "path",
126471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126472	//       "required": true,
126473	//       "type": "string"
126474	//     },
126475	//     "guestFlush": {
126476	//       "description": "[Input Only] Specifies to create 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).",
126477	//       "location": "query",
126478	//       "type": "boolean"
126479	//     },
126480	//     "project": {
126481	//       "description": "Project ID for this request.",
126482	//       "location": "path",
126483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126484	//       "required": true,
126485	//       "type": "string"
126486	//     },
126487	//     "region": {
126488	//       "description": "Name of the region for this request.",
126489	//       "location": "path",
126490	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126491	//       "required": true,
126492	//       "type": "string"
126493	//     },
126494	//     "requestId": {
126495	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126496	//       "location": "query",
126497	//       "type": "string"
126498	//     }
126499	//   },
126500	//   "path": "{project}/regions/{region}/disks/{disk}/createSnapshot",
126501	//   "request": {
126502	//     "$ref": "Snapshot"
126503	//   },
126504	//   "response": {
126505	//     "$ref": "Operation"
126506	//   },
126507	//   "scopes": [
126508	//     "https://www.googleapis.com/auth/cloud-platform",
126509	//     "https://www.googleapis.com/auth/compute"
126510	//   ]
126511	// }
126512
126513}
126514
126515// method id "compute.regionDisks.delete":
126516
126517type RegionDisksDeleteCall struct {
126518	s          *Service
126519	project    string
126520	region     string
126521	disk       string
126522	urlParams_ gensupport.URLParams
126523	ctx_       context.Context
126524	header_    http.Header
126525}
126526
126527// Delete: Deletes the specified regional persistent disk. Deleting a
126528// regional disk removes all the replicas of its data permanently and is
126529// irreversible. However, deleting a disk does not delete any snapshots
126530// previously made from the disk. You must separately delete snapshots.
126531func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
126532	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126533	c.project = project
126534	c.region = region
126535	c.disk = disk
126536	return c
126537}
126538
126539// RequestId sets the optional parameter "requestId": An optional
126540// request ID to identify requests. Specify a unique request ID so that
126541// if you must retry your request, the server will know to ignore the
126542// request if it has already been completed.
126543//
126544// For example, consider a situation where you make an initial request
126545// and the request times out. If you make the request again with the
126546// same request ID, the server can check if original operation with the
126547// same request ID was received, and if so, will ignore the second
126548// request. This prevents clients from accidentally creating duplicate
126549// commitments.
126550//
126551// The request ID must be a valid UUID with the exception that zero UUID
126552// is not supported (00000000-0000-0000-0000-000000000000).
126553func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
126554	c.urlParams_.Set("requestId", requestId)
126555	return c
126556}
126557
126558// Fields allows partial responses to be retrieved. See
126559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126560// for more information.
126561func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
126562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126563	return c
126564}
126565
126566// Context sets the context to be used in this call's Do method. Any
126567// pending HTTP request will be aborted if the provided context is
126568// canceled.
126569func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
126570	c.ctx_ = ctx
126571	return c
126572}
126573
126574// Header returns an http.Header that can be modified by the caller to
126575// add HTTP headers to the request.
126576func (c *RegionDisksDeleteCall) Header() http.Header {
126577	if c.header_ == nil {
126578		c.header_ = make(http.Header)
126579	}
126580	return c.header_
126581}
126582
126583func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
126584	reqHeaders := make(http.Header)
126585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
126586	for k, v := range c.header_ {
126587		reqHeaders[k] = v
126588	}
126589	reqHeaders.Set("User-Agent", c.s.userAgent())
126590	var body io.Reader = nil
126591	c.urlParams_.Set("alt", alt)
126592	c.urlParams_.Set("prettyPrint", "false")
126593	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
126594	urls += "?" + c.urlParams_.Encode()
126595	req, err := http.NewRequest("DELETE", urls, body)
126596	if err != nil {
126597		return nil, err
126598	}
126599	req.Header = reqHeaders
126600	googleapi.Expand(req.URL, map[string]string{
126601		"project": c.project,
126602		"region":  c.region,
126603		"disk":    c.disk,
126604	})
126605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126606}
126607
126608// Do executes the "compute.regionDisks.delete" call.
126609// Exactly one of *Operation or error will be non-nil. Any non-2xx
126610// status code is an error. Response headers are in either
126611// *Operation.ServerResponse.Header or (if a response was returned at
126612// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126613// to check whether the returned error was because
126614// http.StatusNotModified was returned.
126615func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126616	gensupport.SetOptions(c.urlParams_, opts...)
126617	res, err := c.doRequest("json")
126618	if res != nil && res.StatusCode == http.StatusNotModified {
126619		if res.Body != nil {
126620			res.Body.Close()
126621		}
126622		return nil, &googleapi.Error{
126623			Code:   res.StatusCode,
126624			Header: res.Header,
126625		}
126626	}
126627	if err != nil {
126628		return nil, err
126629	}
126630	defer googleapi.CloseBody(res)
126631	if err := googleapi.CheckResponse(res); err != nil {
126632		return nil, err
126633	}
126634	ret := &Operation{
126635		ServerResponse: googleapi.ServerResponse{
126636			Header:         res.Header,
126637			HTTPStatusCode: res.StatusCode,
126638		},
126639	}
126640	target := &ret
126641	if err := gensupport.DecodeResponse(target, res); err != nil {
126642		return nil, err
126643	}
126644	return ret, nil
126645	// {
126646	//   "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.",
126647	//   "httpMethod": "DELETE",
126648	//   "id": "compute.regionDisks.delete",
126649	//   "parameterOrder": [
126650	//     "project",
126651	//     "region",
126652	//     "disk"
126653	//   ],
126654	//   "parameters": {
126655	//     "disk": {
126656	//       "description": "Name of the regional persistent disk to delete.",
126657	//       "location": "path",
126658	//       "required": true,
126659	//       "type": "string"
126660	//     },
126661	//     "project": {
126662	//       "description": "Project ID for this request.",
126663	//       "location": "path",
126664	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126665	//       "required": true,
126666	//       "type": "string"
126667	//     },
126668	//     "region": {
126669	//       "description": "Name of the region for this request.",
126670	//       "location": "path",
126671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126672	//       "required": true,
126673	//       "type": "string"
126674	//     },
126675	//     "requestId": {
126676	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126677	//       "location": "query",
126678	//       "type": "string"
126679	//     }
126680	//   },
126681	//   "path": "{project}/regions/{region}/disks/{disk}",
126682	//   "response": {
126683	//     "$ref": "Operation"
126684	//   },
126685	//   "scopes": [
126686	//     "https://www.googleapis.com/auth/cloud-platform",
126687	//     "https://www.googleapis.com/auth/compute"
126688	//   ]
126689	// }
126690
126691}
126692
126693// method id "compute.regionDisks.get":
126694
126695type RegionDisksGetCall struct {
126696	s            *Service
126697	project      string
126698	region       string
126699	disk         string
126700	urlParams_   gensupport.URLParams
126701	ifNoneMatch_ string
126702	ctx_         context.Context
126703	header_      http.Header
126704}
126705
126706// Get: Returns a specified regional persistent disk.
126707func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
126708	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126709	c.project = project
126710	c.region = region
126711	c.disk = disk
126712	return c
126713}
126714
126715// Fields allows partial responses to be retrieved. See
126716// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126717// for more information.
126718func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
126719	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126720	return c
126721}
126722
126723// IfNoneMatch sets the optional parameter which makes the operation
126724// fail if the object's ETag matches the given value. This is useful for
126725// getting updates only after the object has changed since the last
126726// request. Use googleapi.IsNotModified to check whether the response
126727// error from Do is the result of In-None-Match.
126728func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
126729	c.ifNoneMatch_ = entityTag
126730	return c
126731}
126732
126733// Context sets the context to be used in this call's Do method. Any
126734// pending HTTP request will be aborted if the provided context is
126735// canceled.
126736func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
126737	c.ctx_ = ctx
126738	return c
126739}
126740
126741// Header returns an http.Header that can be modified by the caller to
126742// add HTTP headers to the request.
126743func (c *RegionDisksGetCall) Header() http.Header {
126744	if c.header_ == nil {
126745		c.header_ = make(http.Header)
126746	}
126747	return c.header_
126748}
126749
126750func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
126751	reqHeaders := make(http.Header)
126752	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
126753	for k, v := range c.header_ {
126754		reqHeaders[k] = v
126755	}
126756	reqHeaders.Set("User-Agent", c.s.userAgent())
126757	if c.ifNoneMatch_ != "" {
126758		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126759	}
126760	var body io.Reader = nil
126761	c.urlParams_.Set("alt", alt)
126762	c.urlParams_.Set("prettyPrint", "false")
126763	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
126764	urls += "?" + c.urlParams_.Encode()
126765	req, err := http.NewRequest("GET", urls, body)
126766	if err != nil {
126767		return nil, err
126768	}
126769	req.Header = reqHeaders
126770	googleapi.Expand(req.URL, map[string]string{
126771		"project": c.project,
126772		"region":  c.region,
126773		"disk":    c.disk,
126774	})
126775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126776}
126777
126778// Do executes the "compute.regionDisks.get" call.
126779// Exactly one of *Disk or error will be non-nil. Any non-2xx status
126780// code is an error. Response headers are in either
126781// *Disk.ServerResponse.Header or (if a response was returned at all) in
126782// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
126783// whether the returned error was because http.StatusNotModified was
126784// returned.
126785func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
126786	gensupport.SetOptions(c.urlParams_, opts...)
126787	res, err := c.doRequest("json")
126788	if res != nil && res.StatusCode == http.StatusNotModified {
126789		if res.Body != nil {
126790			res.Body.Close()
126791		}
126792		return nil, &googleapi.Error{
126793			Code:   res.StatusCode,
126794			Header: res.Header,
126795		}
126796	}
126797	if err != nil {
126798		return nil, err
126799	}
126800	defer googleapi.CloseBody(res)
126801	if err := googleapi.CheckResponse(res); err != nil {
126802		return nil, err
126803	}
126804	ret := &Disk{
126805		ServerResponse: googleapi.ServerResponse{
126806			Header:         res.Header,
126807			HTTPStatusCode: res.StatusCode,
126808		},
126809	}
126810	target := &ret
126811	if err := gensupport.DecodeResponse(target, res); err != nil {
126812		return nil, err
126813	}
126814	return ret, nil
126815	// {
126816	//   "description": "Returns a specified regional persistent disk.",
126817	//   "httpMethod": "GET",
126818	//   "id": "compute.regionDisks.get",
126819	//   "parameterOrder": [
126820	//     "project",
126821	//     "region",
126822	//     "disk"
126823	//   ],
126824	//   "parameters": {
126825	//     "disk": {
126826	//       "description": "Name of the regional persistent disk to return.",
126827	//       "location": "path",
126828	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126829	//       "required": true,
126830	//       "type": "string"
126831	//     },
126832	//     "project": {
126833	//       "description": "Project ID for this request.",
126834	//       "location": "path",
126835	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126836	//       "required": true,
126837	//       "type": "string"
126838	//     },
126839	//     "region": {
126840	//       "description": "Name of the region for this request.",
126841	//       "location": "path",
126842	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126843	//       "required": true,
126844	//       "type": "string"
126845	//     }
126846	//   },
126847	//   "path": "{project}/regions/{region}/disks/{disk}",
126848	//   "response": {
126849	//     "$ref": "Disk"
126850	//   },
126851	//   "scopes": [
126852	//     "https://www.googleapis.com/auth/cloud-platform",
126853	//     "https://www.googleapis.com/auth/compute",
126854	//     "https://www.googleapis.com/auth/compute.readonly"
126855	//   ]
126856	// }
126857
126858}
126859
126860// method id "compute.regionDisks.getIamPolicy":
126861
126862type RegionDisksGetIamPolicyCall struct {
126863	s            *Service
126864	project      string
126865	region       string
126866	resource     string
126867	urlParams_   gensupport.URLParams
126868	ifNoneMatch_ string
126869	ctx_         context.Context
126870	header_      http.Header
126871}
126872
126873// GetIamPolicy: Gets the access control policy for a resource. May be
126874// empty if no such policy or resource exists.
126875func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
126876	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126877	c.project = project
126878	c.region = region
126879	c.resource = resource
126880	return c
126881}
126882
126883// OptionsRequestedPolicyVersion sets the optional parameter
126884// "optionsRequestedPolicyVersion": Requested IAM Policy version.
126885func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
126886	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
126887	return c
126888}
126889
126890// Fields allows partial responses to be retrieved. See
126891// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126892// for more information.
126893func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
126894	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126895	return c
126896}
126897
126898// IfNoneMatch sets the optional parameter which makes the operation
126899// fail if the object's ETag matches the given value. This is useful for
126900// getting updates only after the object has changed since the last
126901// request. Use googleapi.IsNotModified to check whether the response
126902// error from Do is the result of In-None-Match.
126903func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
126904	c.ifNoneMatch_ = entityTag
126905	return c
126906}
126907
126908// Context sets the context to be used in this call's Do method. Any
126909// pending HTTP request will be aborted if the provided context is
126910// canceled.
126911func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
126912	c.ctx_ = ctx
126913	return c
126914}
126915
126916// Header returns an http.Header that can be modified by the caller to
126917// add HTTP headers to the request.
126918func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
126919	if c.header_ == nil {
126920		c.header_ = make(http.Header)
126921	}
126922	return c.header_
126923}
126924
126925func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
126926	reqHeaders := make(http.Header)
126927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
126928	for k, v := range c.header_ {
126929		reqHeaders[k] = v
126930	}
126931	reqHeaders.Set("User-Agent", c.s.userAgent())
126932	if c.ifNoneMatch_ != "" {
126933		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126934	}
126935	var body io.Reader = nil
126936	c.urlParams_.Set("alt", alt)
126937	c.urlParams_.Set("prettyPrint", "false")
126938	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/getIamPolicy")
126939	urls += "?" + c.urlParams_.Encode()
126940	req, err := http.NewRequest("GET", urls, body)
126941	if err != nil {
126942		return nil, err
126943	}
126944	req.Header = reqHeaders
126945	googleapi.Expand(req.URL, map[string]string{
126946		"project":  c.project,
126947		"region":   c.region,
126948		"resource": c.resource,
126949	})
126950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126951}
126952
126953// Do executes the "compute.regionDisks.getIamPolicy" call.
126954// Exactly one of *Policy or error will be non-nil. Any non-2xx status
126955// code is an error. Response headers are in either
126956// *Policy.ServerResponse.Header or (if a response was returned at all)
126957// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
126958// check whether the returned error was because http.StatusNotModified
126959// was returned.
126960func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
126961	gensupport.SetOptions(c.urlParams_, opts...)
126962	res, err := c.doRequest("json")
126963	if res != nil && res.StatusCode == http.StatusNotModified {
126964		if res.Body != nil {
126965			res.Body.Close()
126966		}
126967		return nil, &googleapi.Error{
126968			Code:   res.StatusCode,
126969			Header: res.Header,
126970		}
126971	}
126972	if err != nil {
126973		return nil, err
126974	}
126975	defer googleapi.CloseBody(res)
126976	if err := googleapi.CheckResponse(res); err != nil {
126977		return nil, err
126978	}
126979	ret := &Policy{
126980		ServerResponse: googleapi.ServerResponse{
126981			Header:         res.Header,
126982			HTTPStatusCode: res.StatusCode,
126983		},
126984	}
126985	target := &ret
126986	if err := gensupport.DecodeResponse(target, res); err != nil {
126987		return nil, err
126988	}
126989	return ret, nil
126990	// {
126991	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
126992	//   "httpMethod": "GET",
126993	//   "id": "compute.regionDisks.getIamPolicy",
126994	//   "parameterOrder": [
126995	//     "project",
126996	//     "region",
126997	//     "resource"
126998	//   ],
126999	//   "parameters": {
127000	//     "optionsRequestedPolicyVersion": {
127001	//       "description": "Requested IAM Policy version.",
127002	//       "format": "int32",
127003	//       "location": "query",
127004	//       "type": "integer"
127005	//     },
127006	//     "project": {
127007	//       "description": "Project ID for this request.",
127008	//       "location": "path",
127009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127010	//       "required": true,
127011	//       "type": "string"
127012	//     },
127013	//     "region": {
127014	//       "description": "The name of the region for this request.",
127015	//       "location": "path",
127016	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127017	//       "required": true,
127018	//       "type": "string"
127019	//     },
127020	//     "resource": {
127021	//       "description": "Name or id of the resource for this request.",
127022	//       "location": "path",
127023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127024	//       "required": true,
127025	//       "type": "string"
127026	//     }
127027	//   },
127028	//   "path": "{project}/regions/{region}/disks/{resource}/getIamPolicy",
127029	//   "response": {
127030	//     "$ref": "Policy"
127031	//   },
127032	//   "scopes": [
127033	//     "https://www.googleapis.com/auth/cloud-platform",
127034	//     "https://www.googleapis.com/auth/compute",
127035	//     "https://www.googleapis.com/auth/compute.readonly"
127036	//   ]
127037	// }
127038
127039}
127040
127041// method id "compute.regionDisks.insert":
127042
127043type RegionDisksInsertCall struct {
127044	s          *Service
127045	project    string
127046	region     string
127047	disk       *Disk
127048	urlParams_ gensupport.URLParams
127049	ctx_       context.Context
127050	header_    http.Header
127051}
127052
127053// Insert: Creates a persistent regional disk in the specified project
127054// using the data included in the request.
127055func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
127056	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127057	c.project = project
127058	c.region = region
127059	c.disk = disk
127060	return c
127061}
127062
127063// RequestId sets the optional parameter "requestId": An optional
127064// request ID to identify requests. Specify a unique request ID so that
127065// if you must retry your request, the server will know to ignore the
127066// request if it has already been completed.
127067//
127068// For example, consider a situation where you make an initial request
127069// and the request times out. If you make the request again with the
127070// same request ID, the server can check if original operation with the
127071// same request ID was received, and if so, will ignore the second
127072// request. This prevents clients from accidentally creating duplicate
127073// commitments.
127074//
127075// The request ID must be a valid UUID with the exception that zero UUID
127076// is not supported (00000000-0000-0000-0000-000000000000).
127077func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
127078	c.urlParams_.Set("requestId", requestId)
127079	return c
127080}
127081
127082// SourceImage sets the optional parameter "sourceImage": Source image
127083// to restore onto a disk.
127084func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
127085	c.urlParams_.Set("sourceImage", sourceImage)
127086	return c
127087}
127088
127089// Fields allows partial responses to be retrieved. See
127090// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127091// for more information.
127092func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
127093	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127094	return c
127095}
127096
127097// Context sets the context to be used in this call's Do method. Any
127098// pending HTTP request will be aborted if the provided context is
127099// canceled.
127100func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
127101	c.ctx_ = ctx
127102	return c
127103}
127104
127105// Header returns an http.Header that can be modified by the caller to
127106// add HTTP headers to the request.
127107func (c *RegionDisksInsertCall) Header() http.Header {
127108	if c.header_ == nil {
127109		c.header_ = make(http.Header)
127110	}
127111	return c.header_
127112}
127113
127114func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
127115	reqHeaders := make(http.Header)
127116	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
127117	for k, v := range c.header_ {
127118		reqHeaders[k] = v
127119	}
127120	reqHeaders.Set("User-Agent", c.s.userAgent())
127121	var body io.Reader = nil
127122	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
127123	if err != nil {
127124		return nil, err
127125	}
127126	reqHeaders.Set("Content-Type", "application/json")
127127	c.urlParams_.Set("alt", alt)
127128	c.urlParams_.Set("prettyPrint", "false")
127129	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
127130	urls += "?" + c.urlParams_.Encode()
127131	req, err := http.NewRequest("POST", urls, body)
127132	if err != nil {
127133		return nil, err
127134	}
127135	req.Header = reqHeaders
127136	googleapi.Expand(req.URL, map[string]string{
127137		"project": c.project,
127138		"region":  c.region,
127139	})
127140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127141}
127142
127143// Do executes the "compute.regionDisks.insert" call.
127144// Exactly one of *Operation or error will be non-nil. Any non-2xx
127145// status code is an error. Response headers are in either
127146// *Operation.ServerResponse.Header or (if a response was returned at
127147// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127148// to check whether the returned error was because
127149// http.StatusNotModified was returned.
127150func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127151	gensupport.SetOptions(c.urlParams_, opts...)
127152	res, err := c.doRequest("json")
127153	if res != nil && res.StatusCode == http.StatusNotModified {
127154		if res.Body != nil {
127155			res.Body.Close()
127156		}
127157		return nil, &googleapi.Error{
127158			Code:   res.StatusCode,
127159			Header: res.Header,
127160		}
127161	}
127162	if err != nil {
127163		return nil, err
127164	}
127165	defer googleapi.CloseBody(res)
127166	if err := googleapi.CheckResponse(res); err != nil {
127167		return nil, err
127168	}
127169	ret := &Operation{
127170		ServerResponse: googleapi.ServerResponse{
127171			Header:         res.Header,
127172			HTTPStatusCode: res.StatusCode,
127173		},
127174	}
127175	target := &ret
127176	if err := gensupport.DecodeResponse(target, res); err != nil {
127177		return nil, err
127178	}
127179	return ret, nil
127180	// {
127181	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
127182	//   "httpMethod": "POST",
127183	//   "id": "compute.regionDisks.insert",
127184	//   "parameterOrder": [
127185	//     "project",
127186	//     "region"
127187	//   ],
127188	//   "parameters": {
127189	//     "project": {
127190	//       "description": "Project ID for this request.",
127191	//       "location": "path",
127192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127193	//       "required": true,
127194	//       "type": "string"
127195	//     },
127196	//     "region": {
127197	//       "description": "Name of the region for this request.",
127198	//       "location": "path",
127199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127200	//       "required": true,
127201	//       "type": "string"
127202	//     },
127203	//     "requestId": {
127204	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127205	//       "location": "query",
127206	//       "type": "string"
127207	//     },
127208	//     "sourceImage": {
127209	//       "description": "Optional. Source image to restore onto a disk.",
127210	//       "location": "query",
127211	//       "type": "string"
127212	//     }
127213	//   },
127214	//   "path": "{project}/regions/{region}/disks",
127215	//   "request": {
127216	//     "$ref": "Disk"
127217	//   },
127218	//   "response": {
127219	//     "$ref": "Operation"
127220	//   },
127221	//   "scopes": [
127222	//     "https://www.googleapis.com/auth/cloud-platform",
127223	//     "https://www.googleapis.com/auth/compute"
127224	//   ]
127225	// }
127226
127227}
127228
127229// method id "compute.regionDisks.list":
127230
127231type RegionDisksListCall struct {
127232	s            *Service
127233	project      string
127234	region       string
127235	urlParams_   gensupport.URLParams
127236	ifNoneMatch_ string
127237	ctx_         context.Context
127238	header_      http.Header
127239}
127240
127241// List: Retrieves the list of persistent disks contained within the
127242// specified region.
127243func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
127244	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127245	c.project = project
127246	c.region = region
127247	return c
127248}
127249
127250// Filter sets the optional parameter "filter": A filter expression that
127251// filters resources listed in the response. The expression must specify
127252// the field name, a comparison operator, and the value that you want to
127253// use for filtering. The value must be a string, a number, or a
127254// boolean. The comparison operator must be either `=`, `!=`, `>`, or
127255// `<`.
127256//
127257// For example, if you are filtering Compute Engine instances, you can
127258// exclude instances named `example-instance` by specifying `name !=
127259// example-instance`.
127260//
127261// You can also filter nested fields. For example, you could specify
127262// `scheduling.automaticRestart = false` to include instances only if
127263// they are not scheduled for automatic restarts. You can use filtering
127264// on nested fields to filter based on resource labels.
127265//
127266// To filter on multiple expressions, provide each separate expression
127267// within parentheses. For example: ``` (scheduling.automaticRestart =
127268// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
127269// is an `AND` expression. However, you can include `AND` and `OR`
127270// expressions explicitly. For example: ``` (cpuPlatform = "Intel
127271// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
127272// (scheduling.automaticRestart = true) ```
127273func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
127274	c.urlParams_.Set("filter", filter)
127275	return c
127276}
127277
127278// MaxResults sets the optional parameter "maxResults": The maximum
127279// number of results per page that should be returned. If the number of
127280// available results is larger than `maxResults`, Compute Engine returns
127281// a `nextPageToken` that can be used to get the next page of results in
127282// subsequent list requests. Acceptable values are `0` to `500`,
127283// inclusive. (Default: `500`)
127284func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
127285	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127286	return c
127287}
127288
127289// OrderBy sets the optional parameter "orderBy": Sorts list results by
127290// a certain order. By default, results are returned in alphanumerical
127291// order based on the resource name.
127292//
127293// You can also sort results in descending order based on the creation
127294// timestamp using `orderBy="creationTimestamp desc". This sorts
127295// results based on the `creationTimestamp` field in reverse
127296// chronological order (newest result first). Use this to sort resources
127297// like operations so that the newest operation is returned
127298// first.
127299//
127300// Currently, only sorting by `name` or `creationTimestamp desc` is
127301// supported.
127302func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
127303	c.urlParams_.Set("orderBy", orderBy)
127304	return c
127305}
127306
127307// PageToken sets the optional parameter "pageToken": Specifies a page
127308// token to use. Set `pageToken` to the `nextPageToken` returned by a
127309// previous list request to get the next page of results.
127310func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
127311	c.urlParams_.Set("pageToken", pageToken)
127312	return c
127313}
127314
127315// ReturnPartialSuccess sets the optional parameter
127316// "returnPartialSuccess": Opt-in for partial success behavior which
127317// provides partial results in case of failure. The default value is
127318// false and the logic is the same as today.
127319func (c *RegionDisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDisksListCall {
127320	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
127321	return c
127322}
127323
127324// Fields allows partial responses to be retrieved. See
127325// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127326// for more information.
127327func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
127328	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127329	return c
127330}
127331
127332// IfNoneMatch sets the optional parameter which makes the operation
127333// fail if the object's ETag matches the given value. This is useful for
127334// getting updates only after the object has changed since the last
127335// request. Use googleapi.IsNotModified to check whether the response
127336// error from Do is the result of In-None-Match.
127337func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
127338	c.ifNoneMatch_ = entityTag
127339	return c
127340}
127341
127342// Context sets the context to be used in this call's Do method. Any
127343// pending HTTP request will be aborted if the provided context is
127344// canceled.
127345func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
127346	c.ctx_ = ctx
127347	return c
127348}
127349
127350// Header returns an http.Header that can be modified by the caller to
127351// add HTTP headers to the request.
127352func (c *RegionDisksListCall) Header() http.Header {
127353	if c.header_ == nil {
127354		c.header_ = make(http.Header)
127355	}
127356	return c.header_
127357}
127358
127359func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
127360	reqHeaders := make(http.Header)
127361	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
127362	for k, v := range c.header_ {
127363		reqHeaders[k] = v
127364	}
127365	reqHeaders.Set("User-Agent", c.s.userAgent())
127366	if c.ifNoneMatch_ != "" {
127367		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127368	}
127369	var body io.Reader = nil
127370	c.urlParams_.Set("alt", alt)
127371	c.urlParams_.Set("prettyPrint", "false")
127372	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
127373	urls += "?" + c.urlParams_.Encode()
127374	req, err := http.NewRequest("GET", urls, body)
127375	if err != nil {
127376		return nil, err
127377	}
127378	req.Header = reqHeaders
127379	googleapi.Expand(req.URL, map[string]string{
127380		"project": c.project,
127381		"region":  c.region,
127382	})
127383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127384}
127385
127386// Do executes the "compute.regionDisks.list" call.
127387// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
127388// code is an error. Response headers are in either
127389// *DiskList.ServerResponse.Header or (if a response was returned at
127390// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127391// to check whether the returned error was because
127392// http.StatusNotModified was returned.
127393func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
127394	gensupport.SetOptions(c.urlParams_, opts...)
127395	res, err := c.doRequest("json")
127396	if res != nil && res.StatusCode == http.StatusNotModified {
127397		if res.Body != nil {
127398			res.Body.Close()
127399		}
127400		return nil, &googleapi.Error{
127401			Code:   res.StatusCode,
127402			Header: res.Header,
127403		}
127404	}
127405	if err != nil {
127406		return nil, err
127407	}
127408	defer googleapi.CloseBody(res)
127409	if err := googleapi.CheckResponse(res); err != nil {
127410		return nil, err
127411	}
127412	ret := &DiskList{
127413		ServerResponse: googleapi.ServerResponse{
127414			Header:         res.Header,
127415			HTTPStatusCode: res.StatusCode,
127416		},
127417	}
127418	target := &ret
127419	if err := gensupport.DecodeResponse(target, res); err != nil {
127420		return nil, err
127421	}
127422	return ret, nil
127423	// {
127424	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
127425	//   "httpMethod": "GET",
127426	//   "id": "compute.regionDisks.list",
127427	//   "parameterOrder": [
127428	//     "project",
127429	//     "region"
127430	//   ],
127431	//   "parameters": {
127432	//     "filter": {
127433	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
127434	//       "location": "query",
127435	//       "type": "string"
127436	//     },
127437	//     "maxResults": {
127438	//       "default": "500",
127439	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
127440	//       "format": "uint32",
127441	//       "location": "query",
127442	//       "minimum": "0",
127443	//       "type": "integer"
127444	//     },
127445	//     "orderBy": {
127446	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
127447	//       "location": "query",
127448	//       "type": "string"
127449	//     },
127450	//     "pageToken": {
127451	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
127452	//       "location": "query",
127453	//       "type": "string"
127454	//     },
127455	//     "project": {
127456	//       "description": "Project ID for this request.",
127457	//       "location": "path",
127458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127459	//       "required": true,
127460	//       "type": "string"
127461	//     },
127462	//     "region": {
127463	//       "description": "Name of the region for this request.",
127464	//       "location": "path",
127465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127466	//       "required": true,
127467	//       "type": "string"
127468	//     },
127469	//     "returnPartialSuccess": {
127470	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
127471	//       "location": "query",
127472	//       "type": "boolean"
127473	//     }
127474	//   },
127475	//   "path": "{project}/regions/{region}/disks",
127476	//   "response": {
127477	//     "$ref": "DiskList"
127478	//   },
127479	//   "scopes": [
127480	//     "https://www.googleapis.com/auth/cloud-platform",
127481	//     "https://www.googleapis.com/auth/compute",
127482	//     "https://www.googleapis.com/auth/compute.readonly"
127483	//   ]
127484	// }
127485
127486}
127487
127488// Pages invokes f for each page of results.
127489// A non-nil error returned from f will halt the iteration.
127490// The provided context supersedes any context provided to the Context method.
127491func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
127492	c.ctx_ = ctx
127493	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127494	for {
127495		x, err := c.Do()
127496		if err != nil {
127497			return err
127498		}
127499		if err := f(x); err != nil {
127500			return err
127501		}
127502		if x.NextPageToken == "" {
127503			return nil
127504		}
127505		c.PageToken(x.NextPageToken)
127506	}
127507}
127508
127509// method id "compute.regionDisks.removeResourcePolicies":
127510
127511type RegionDisksRemoveResourcePoliciesCall struct {
127512	s                                        *Service
127513	project                                  string
127514	region                                   string
127515	disk                                     string
127516	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
127517	urlParams_                               gensupport.URLParams
127518	ctx_                                     context.Context
127519	header_                                  http.Header
127520}
127521
127522// RemoveResourcePolicies: Removes resource policies from a regional
127523// disk.
127524func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
127525	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127526	c.project = project
127527	c.region = region
127528	c.disk = disk
127529	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
127530	return c
127531}
127532
127533// RequestId sets the optional parameter "requestId": An optional
127534// request ID to identify requests. Specify a unique request ID so that
127535// if you must retry your request, the server will know to ignore the
127536// request if it has already been completed.
127537//
127538// For example, consider a situation where you make an initial request
127539// and the request times out. If you make the request again with the
127540// same request ID, the server can check if original operation with the
127541// same request ID was received, and if so, will ignore the second
127542// request. This prevents clients from accidentally creating duplicate
127543// commitments.
127544//
127545// The request ID must be a valid UUID with the exception that zero UUID
127546// is not supported (00000000-0000-0000-0000-000000000000).
127547func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
127548	c.urlParams_.Set("requestId", requestId)
127549	return c
127550}
127551
127552// Fields allows partial responses to be retrieved. See
127553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127554// for more information.
127555func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
127556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127557	return c
127558}
127559
127560// Context sets the context to be used in this call's Do method. Any
127561// pending HTTP request will be aborted if the provided context is
127562// canceled.
127563func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
127564	c.ctx_ = ctx
127565	return c
127566}
127567
127568// Header returns an http.Header that can be modified by the caller to
127569// add HTTP headers to the request.
127570func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
127571	if c.header_ == nil {
127572		c.header_ = make(http.Header)
127573	}
127574	return c.header_
127575}
127576
127577func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
127578	reqHeaders := make(http.Header)
127579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
127580	for k, v := range c.header_ {
127581		reqHeaders[k] = v
127582	}
127583	reqHeaders.Set("User-Agent", c.s.userAgent())
127584	var body io.Reader = nil
127585	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
127586	if err != nil {
127587		return nil, err
127588	}
127589	reqHeaders.Set("Content-Type", "application/json")
127590	c.urlParams_.Set("alt", alt)
127591	c.urlParams_.Set("prettyPrint", "false")
127592	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
127593	urls += "?" + c.urlParams_.Encode()
127594	req, err := http.NewRequest("POST", urls, body)
127595	if err != nil {
127596		return nil, err
127597	}
127598	req.Header = reqHeaders
127599	googleapi.Expand(req.URL, map[string]string{
127600		"project": c.project,
127601		"region":  c.region,
127602		"disk":    c.disk,
127603	})
127604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127605}
127606
127607// Do executes the "compute.regionDisks.removeResourcePolicies" call.
127608// Exactly one of *Operation or error will be non-nil. Any non-2xx
127609// status code is an error. Response headers are in either
127610// *Operation.ServerResponse.Header or (if a response was returned at
127611// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127612// to check whether the returned error was because
127613// http.StatusNotModified was returned.
127614func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127615	gensupport.SetOptions(c.urlParams_, opts...)
127616	res, err := c.doRequest("json")
127617	if res != nil && res.StatusCode == http.StatusNotModified {
127618		if res.Body != nil {
127619			res.Body.Close()
127620		}
127621		return nil, &googleapi.Error{
127622			Code:   res.StatusCode,
127623			Header: res.Header,
127624		}
127625	}
127626	if err != nil {
127627		return nil, err
127628	}
127629	defer googleapi.CloseBody(res)
127630	if err := googleapi.CheckResponse(res); err != nil {
127631		return nil, err
127632	}
127633	ret := &Operation{
127634		ServerResponse: googleapi.ServerResponse{
127635			Header:         res.Header,
127636			HTTPStatusCode: res.StatusCode,
127637		},
127638	}
127639	target := &ret
127640	if err := gensupport.DecodeResponse(target, res); err != nil {
127641		return nil, err
127642	}
127643	return ret, nil
127644	// {
127645	//   "description": "Removes resource policies from a regional disk.",
127646	//   "httpMethod": "POST",
127647	//   "id": "compute.regionDisks.removeResourcePolicies",
127648	//   "parameterOrder": [
127649	//     "project",
127650	//     "region",
127651	//     "disk"
127652	//   ],
127653	//   "parameters": {
127654	//     "disk": {
127655	//       "description": "The disk name for this request.",
127656	//       "location": "path",
127657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127658	//       "required": true,
127659	//       "type": "string"
127660	//     },
127661	//     "project": {
127662	//       "description": "Project ID for this request.",
127663	//       "location": "path",
127664	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127665	//       "required": true,
127666	//       "type": "string"
127667	//     },
127668	//     "region": {
127669	//       "description": "The name of the region for this request.",
127670	//       "location": "path",
127671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127672	//       "required": true,
127673	//       "type": "string"
127674	//     },
127675	//     "requestId": {
127676	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127677	//       "location": "query",
127678	//       "type": "string"
127679	//     }
127680	//   },
127681	//   "path": "{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
127682	//   "request": {
127683	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
127684	//   },
127685	//   "response": {
127686	//     "$ref": "Operation"
127687	//   },
127688	//   "scopes": [
127689	//     "https://www.googleapis.com/auth/cloud-platform",
127690	//     "https://www.googleapis.com/auth/compute"
127691	//   ]
127692	// }
127693
127694}
127695
127696// method id "compute.regionDisks.resize":
127697
127698type RegionDisksResizeCall struct {
127699	s                        *Service
127700	project                  string
127701	region                   string
127702	disk                     string
127703	regiondisksresizerequest *RegionDisksResizeRequest
127704	urlParams_               gensupport.URLParams
127705	ctx_                     context.Context
127706	header_                  http.Header
127707}
127708
127709// Resize: Resizes the specified regional persistent disk.
127710func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
127711	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127712	c.project = project
127713	c.region = region
127714	c.disk = disk
127715	c.regiondisksresizerequest = regiondisksresizerequest
127716	return c
127717}
127718
127719// RequestId sets the optional parameter "requestId": An optional
127720// request ID to identify requests. Specify a unique request ID so that
127721// if you must retry your request, the server will know to ignore the
127722// request if it has already been completed.
127723//
127724// For example, consider a situation where you make an initial request
127725// and the request times out. If you make the request again with the
127726// same request ID, the server can check if original operation with the
127727// same request ID was received, and if so, will ignore the second
127728// request. This prevents clients from accidentally creating duplicate
127729// commitments.
127730//
127731// The request ID must be a valid UUID with the exception that zero UUID
127732// is not supported (00000000-0000-0000-0000-000000000000).
127733func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
127734	c.urlParams_.Set("requestId", requestId)
127735	return c
127736}
127737
127738// Fields allows partial responses to be retrieved. See
127739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127740// for more information.
127741func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
127742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127743	return c
127744}
127745
127746// Context sets the context to be used in this call's Do method. Any
127747// pending HTTP request will be aborted if the provided context is
127748// canceled.
127749func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
127750	c.ctx_ = ctx
127751	return c
127752}
127753
127754// Header returns an http.Header that can be modified by the caller to
127755// add HTTP headers to the request.
127756func (c *RegionDisksResizeCall) Header() http.Header {
127757	if c.header_ == nil {
127758		c.header_ = make(http.Header)
127759	}
127760	return c.header_
127761}
127762
127763func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
127764	reqHeaders := make(http.Header)
127765	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
127766	for k, v := range c.header_ {
127767		reqHeaders[k] = v
127768	}
127769	reqHeaders.Set("User-Agent", c.s.userAgent())
127770	var body io.Reader = nil
127771	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
127772	if err != nil {
127773		return nil, err
127774	}
127775	reqHeaders.Set("Content-Type", "application/json")
127776	c.urlParams_.Set("alt", alt)
127777	c.urlParams_.Set("prettyPrint", "false")
127778	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/resize")
127779	urls += "?" + c.urlParams_.Encode()
127780	req, err := http.NewRequest("POST", urls, body)
127781	if err != nil {
127782		return nil, err
127783	}
127784	req.Header = reqHeaders
127785	googleapi.Expand(req.URL, map[string]string{
127786		"project": c.project,
127787		"region":  c.region,
127788		"disk":    c.disk,
127789	})
127790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127791}
127792
127793// Do executes the "compute.regionDisks.resize" call.
127794// Exactly one of *Operation or error will be non-nil. Any non-2xx
127795// status code is an error. Response headers are in either
127796// *Operation.ServerResponse.Header or (if a response was returned at
127797// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127798// to check whether the returned error was because
127799// http.StatusNotModified was returned.
127800func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127801	gensupport.SetOptions(c.urlParams_, opts...)
127802	res, err := c.doRequest("json")
127803	if res != nil && res.StatusCode == http.StatusNotModified {
127804		if res.Body != nil {
127805			res.Body.Close()
127806		}
127807		return nil, &googleapi.Error{
127808			Code:   res.StatusCode,
127809			Header: res.Header,
127810		}
127811	}
127812	if err != nil {
127813		return nil, err
127814	}
127815	defer googleapi.CloseBody(res)
127816	if err := googleapi.CheckResponse(res); err != nil {
127817		return nil, err
127818	}
127819	ret := &Operation{
127820		ServerResponse: googleapi.ServerResponse{
127821			Header:         res.Header,
127822			HTTPStatusCode: res.StatusCode,
127823		},
127824	}
127825	target := &ret
127826	if err := gensupport.DecodeResponse(target, res); err != nil {
127827		return nil, err
127828	}
127829	return ret, nil
127830	// {
127831	//   "description": "Resizes the specified regional persistent disk.",
127832	//   "httpMethod": "POST",
127833	//   "id": "compute.regionDisks.resize",
127834	//   "parameterOrder": [
127835	//     "project",
127836	//     "region",
127837	//     "disk"
127838	//   ],
127839	//   "parameters": {
127840	//     "disk": {
127841	//       "description": "Name of the regional persistent disk.",
127842	//       "location": "path",
127843	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127844	//       "required": true,
127845	//       "type": "string"
127846	//     },
127847	//     "project": {
127848	//       "description": "The project ID for this request.",
127849	//       "location": "path",
127850	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127851	//       "required": true,
127852	//       "type": "string"
127853	//     },
127854	//     "region": {
127855	//       "description": "Name of the region for this request.",
127856	//       "location": "path",
127857	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127858	//       "required": true,
127859	//       "type": "string"
127860	//     },
127861	//     "requestId": {
127862	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127863	//       "location": "query",
127864	//       "type": "string"
127865	//     }
127866	//   },
127867	//   "path": "{project}/regions/{region}/disks/{disk}/resize",
127868	//   "request": {
127869	//     "$ref": "RegionDisksResizeRequest"
127870	//   },
127871	//   "response": {
127872	//     "$ref": "Operation"
127873	//   },
127874	//   "scopes": [
127875	//     "https://www.googleapis.com/auth/cloud-platform",
127876	//     "https://www.googleapis.com/auth/compute"
127877	//   ]
127878	// }
127879
127880}
127881
127882// method id "compute.regionDisks.setIamPolicy":
127883
127884type RegionDisksSetIamPolicyCall struct {
127885	s                      *Service
127886	project                string
127887	region                 string
127888	resource               string
127889	regionsetpolicyrequest *RegionSetPolicyRequest
127890	urlParams_             gensupport.URLParams
127891	ctx_                   context.Context
127892	header_                http.Header
127893}
127894
127895// SetIamPolicy: Sets the access control policy on the specified
127896// resource. Replaces any existing policy.
127897func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
127898	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127899	c.project = project
127900	c.region = region
127901	c.resource = resource
127902	c.regionsetpolicyrequest = regionsetpolicyrequest
127903	return c
127904}
127905
127906// Fields allows partial responses to be retrieved. See
127907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127908// for more information.
127909func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
127910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127911	return c
127912}
127913
127914// Context sets the context to be used in this call's Do method. Any
127915// pending HTTP request will be aborted if the provided context is
127916// canceled.
127917func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
127918	c.ctx_ = ctx
127919	return c
127920}
127921
127922// Header returns an http.Header that can be modified by the caller to
127923// add HTTP headers to the request.
127924func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
127925	if c.header_ == nil {
127926		c.header_ = make(http.Header)
127927	}
127928	return c.header_
127929}
127930
127931func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
127932	reqHeaders := make(http.Header)
127933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
127934	for k, v := range c.header_ {
127935		reqHeaders[k] = v
127936	}
127937	reqHeaders.Set("User-Agent", c.s.userAgent())
127938	var body io.Reader = nil
127939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
127940	if err != nil {
127941		return nil, err
127942	}
127943	reqHeaders.Set("Content-Type", "application/json")
127944	c.urlParams_.Set("alt", alt)
127945	c.urlParams_.Set("prettyPrint", "false")
127946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setIamPolicy")
127947	urls += "?" + c.urlParams_.Encode()
127948	req, err := http.NewRequest("POST", urls, body)
127949	if err != nil {
127950		return nil, err
127951	}
127952	req.Header = reqHeaders
127953	googleapi.Expand(req.URL, map[string]string{
127954		"project":  c.project,
127955		"region":   c.region,
127956		"resource": c.resource,
127957	})
127958	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127959}
127960
127961// Do executes the "compute.regionDisks.setIamPolicy" call.
127962// Exactly one of *Policy or error will be non-nil. Any non-2xx status
127963// code is an error. Response headers are in either
127964// *Policy.ServerResponse.Header or (if a response was returned at all)
127965// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
127966// check whether the returned error was because http.StatusNotModified
127967// was returned.
127968func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
127969	gensupport.SetOptions(c.urlParams_, opts...)
127970	res, err := c.doRequest("json")
127971	if res != nil && res.StatusCode == http.StatusNotModified {
127972		if res.Body != nil {
127973			res.Body.Close()
127974		}
127975		return nil, &googleapi.Error{
127976			Code:   res.StatusCode,
127977			Header: res.Header,
127978		}
127979	}
127980	if err != nil {
127981		return nil, err
127982	}
127983	defer googleapi.CloseBody(res)
127984	if err := googleapi.CheckResponse(res); err != nil {
127985		return nil, err
127986	}
127987	ret := &Policy{
127988		ServerResponse: googleapi.ServerResponse{
127989			Header:         res.Header,
127990			HTTPStatusCode: res.StatusCode,
127991		},
127992	}
127993	target := &ret
127994	if err := gensupport.DecodeResponse(target, res); err != nil {
127995		return nil, err
127996	}
127997	return ret, nil
127998	// {
127999	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
128000	//   "httpMethod": "POST",
128001	//   "id": "compute.regionDisks.setIamPolicy",
128002	//   "parameterOrder": [
128003	//     "project",
128004	//     "region",
128005	//     "resource"
128006	//   ],
128007	//   "parameters": {
128008	//     "project": {
128009	//       "description": "Project ID for this request.",
128010	//       "location": "path",
128011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128012	//       "required": true,
128013	//       "type": "string"
128014	//     },
128015	//     "region": {
128016	//       "description": "The name of the region for this request.",
128017	//       "location": "path",
128018	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128019	//       "required": true,
128020	//       "type": "string"
128021	//     },
128022	//     "resource": {
128023	//       "description": "Name or id of the resource for this request.",
128024	//       "location": "path",
128025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128026	//       "required": true,
128027	//       "type": "string"
128028	//     }
128029	//   },
128030	//   "path": "{project}/regions/{region}/disks/{resource}/setIamPolicy",
128031	//   "request": {
128032	//     "$ref": "RegionSetPolicyRequest"
128033	//   },
128034	//   "response": {
128035	//     "$ref": "Policy"
128036	//   },
128037	//   "scopes": [
128038	//     "https://www.googleapis.com/auth/cloud-platform",
128039	//     "https://www.googleapis.com/auth/compute"
128040	//   ]
128041	// }
128042
128043}
128044
128045// method id "compute.regionDisks.setLabels":
128046
128047type RegionDisksSetLabelsCall struct {
128048	s                      *Service
128049	project                string
128050	region                 string
128051	resource               string
128052	regionsetlabelsrequest *RegionSetLabelsRequest
128053	urlParams_             gensupport.URLParams
128054	ctx_                   context.Context
128055	header_                http.Header
128056}
128057
128058// SetLabels: Sets the labels on the target regional disk.
128059func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
128060	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128061	c.project = project
128062	c.region = region
128063	c.resource = resource
128064	c.regionsetlabelsrequest = regionsetlabelsrequest
128065	return c
128066}
128067
128068// RequestId sets the optional parameter "requestId": An optional
128069// request ID to identify requests. Specify a unique request ID so that
128070// if you must retry your request, the server will know to ignore the
128071// request if it has already been completed.
128072//
128073// For example, consider a situation where you make an initial request
128074// and the request times out. If you make the request again with the
128075// same request ID, the server can check if original operation with the
128076// same request ID was received, and if so, will ignore the second
128077// request. This prevents clients from accidentally creating duplicate
128078// commitments.
128079//
128080// The request ID must be a valid UUID with the exception that zero UUID
128081// is not supported (00000000-0000-0000-0000-000000000000).
128082func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
128083	c.urlParams_.Set("requestId", requestId)
128084	return c
128085}
128086
128087// Fields allows partial responses to be retrieved. See
128088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128089// for more information.
128090func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
128091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128092	return c
128093}
128094
128095// Context sets the context to be used in this call's Do method. Any
128096// pending HTTP request will be aborted if the provided context is
128097// canceled.
128098func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
128099	c.ctx_ = ctx
128100	return c
128101}
128102
128103// Header returns an http.Header that can be modified by the caller to
128104// add HTTP headers to the request.
128105func (c *RegionDisksSetLabelsCall) Header() http.Header {
128106	if c.header_ == nil {
128107		c.header_ = make(http.Header)
128108	}
128109	return c.header_
128110}
128111
128112func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
128113	reqHeaders := make(http.Header)
128114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
128115	for k, v := range c.header_ {
128116		reqHeaders[k] = v
128117	}
128118	reqHeaders.Set("User-Agent", c.s.userAgent())
128119	var body io.Reader = nil
128120	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
128121	if err != nil {
128122		return nil, err
128123	}
128124	reqHeaders.Set("Content-Type", "application/json")
128125	c.urlParams_.Set("alt", alt)
128126	c.urlParams_.Set("prettyPrint", "false")
128127	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setLabels")
128128	urls += "?" + c.urlParams_.Encode()
128129	req, err := http.NewRequest("POST", urls, body)
128130	if err != nil {
128131		return nil, err
128132	}
128133	req.Header = reqHeaders
128134	googleapi.Expand(req.URL, map[string]string{
128135		"project":  c.project,
128136		"region":   c.region,
128137		"resource": c.resource,
128138	})
128139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128140}
128141
128142// Do executes the "compute.regionDisks.setLabels" call.
128143// Exactly one of *Operation or error will be non-nil. Any non-2xx
128144// status code is an error. Response headers are in either
128145// *Operation.ServerResponse.Header or (if a response was returned at
128146// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128147// to check whether the returned error was because
128148// http.StatusNotModified was returned.
128149func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128150	gensupport.SetOptions(c.urlParams_, opts...)
128151	res, err := c.doRequest("json")
128152	if res != nil && res.StatusCode == http.StatusNotModified {
128153		if res.Body != nil {
128154			res.Body.Close()
128155		}
128156		return nil, &googleapi.Error{
128157			Code:   res.StatusCode,
128158			Header: res.Header,
128159		}
128160	}
128161	if err != nil {
128162		return nil, err
128163	}
128164	defer googleapi.CloseBody(res)
128165	if err := googleapi.CheckResponse(res); err != nil {
128166		return nil, err
128167	}
128168	ret := &Operation{
128169		ServerResponse: googleapi.ServerResponse{
128170			Header:         res.Header,
128171			HTTPStatusCode: res.StatusCode,
128172		},
128173	}
128174	target := &ret
128175	if err := gensupport.DecodeResponse(target, res); err != nil {
128176		return nil, err
128177	}
128178	return ret, nil
128179	// {
128180	//   "description": "Sets the labels on the target regional disk.",
128181	//   "httpMethod": "POST",
128182	//   "id": "compute.regionDisks.setLabels",
128183	//   "parameterOrder": [
128184	//     "project",
128185	//     "region",
128186	//     "resource"
128187	//   ],
128188	//   "parameters": {
128189	//     "project": {
128190	//       "description": "Project ID for this request.",
128191	//       "location": "path",
128192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128193	//       "required": true,
128194	//       "type": "string"
128195	//     },
128196	//     "region": {
128197	//       "description": "The region for this request.",
128198	//       "location": "path",
128199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128200	//       "required": true,
128201	//       "type": "string"
128202	//     },
128203	//     "requestId": {
128204	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128205	//       "location": "query",
128206	//       "type": "string"
128207	//     },
128208	//     "resource": {
128209	//       "description": "Name or id of the resource for this request.",
128210	//       "location": "path",
128211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128212	//       "required": true,
128213	//       "type": "string"
128214	//     }
128215	//   },
128216	//   "path": "{project}/regions/{region}/disks/{resource}/setLabels",
128217	//   "request": {
128218	//     "$ref": "RegionSetLabelsRequest"
128219	//   },
128220	//   "response": {
128221	//     "$ref": "Operation"
128222	//   },
128223	//   "scopes": [
128224	//     "https://www.googleapis.com/auth/cloud-platform",
128225	//     "https://www.googleapis.com/auth/compute"
128226	//   ]
128227	// }
128228
128229}
128230
128231// method id "compute.regionDisks.testIamPermissions":
128232
128233type RegionDisksTestIamPermissionsCall struct {
128234	s                      *Service
128235	project                string
128236	region                 string
128237	resource               string
128238	testpermissionsrequest *TestPermissionsRequest
128239	urlParams_             gensupport.URLParams
128240	ctx_                   context.Context
128241	header_                http.Header
128242}
128243
128244// TestIamPermissions: Returns permissions that a caller has on the
128245// specified resource.
128246func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
128247	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128248	c.project = project
128249	c.region = region
128250	c.resource = resource
128251	c.testpermissionsrequest = testpermissionsrequest
128252	return c
128253}
128254
128255// Fields allows partial responses to be retrieved. See
128256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128257// for more information.
128258func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
128259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128260	return c
128261}
128262
128263// Context sets the context to be used in this call's Do method. Any
128264// pending HTTP request will be aborted if the provided context is
128265// canceled.
128266func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
128267	c.ctx_ = ctx
128268	return c
128269}
128270
128271// Header returns an http.Header that can be modified by the caller to
128272// add HTTP headers to the request.
128273func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
128274	if c.header_ == nil {
128275		c.header_ = make(http.Header)
128276	}
128277	return c.header_
128278}
128279
128280func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
128281	reqHeaders := make(http.Header)
128282	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
128283	for k, v := range c.header_ {
128284		reqHeaders[k] = v
128285	}
128286	reqHeaders.Set("User-Agent", c.s.userAgent())
128287	var body io.Reader = nil
128288	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
128289	if err != nil {
128290		return nil, err
128291	}
128292	reqHeaders.Set("Content-Type", "application/json")
128293	c.urlParams_.Set("alt", alt)
128294	c.urlParams_.Set("prettyPrint", "false")
128295	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/testIamPermissions")
128296	urls += "?" + c.urlParams_.Encode()
128297	req, err := http.NewRequest("POST", urls, body)
128298	if err != nil {
128299		return nil, err
128300	}
128301	req.Header = reqHeaders
128302	googleapi.Expand(req.URL, map[string]string{
128303		"project":  c.project,
128304		"region":   c.region,
128305		"resource": c.resource,
128306	})
128307	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128308}
128309
128310// Do executes the "compute.regionDisks.testIamPermissions" call.
128311// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
128312// non-2xx status code is an error. Response headers are in either
128313// *TestPermissionsResponse.ServerResponse.Header or (if a response was
128314// returned at all) in error.(*googleapi.Error).Header. Use
128315// googleapi.IsNotModified to check whether the returned error was
128316// because http.StatusNotModified was returned.
128317func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
128318	gensupport.SetOptions(c.urlParams_, opts...)
128319	res, err := c.doRequest("json")
128320	if res != nil && res.StatusCode == http.StatusNotModified {
128321		if res.Body != nil {
128322			res.Body.Close()
128323		}
128324		return nil, &googleapi.Error{
128325			Code:   res.StatusCode,
128326			Header: res.Header,
128327		}
128328	}
128329	if err != nil {
128330		return nil, err
128331	}
128332	defer googleapi.CloseBody(res)
128333	if err := googleapi.CheckResponse(res); err != nil {
128334		return nil, err
128335	}
128336	ret := &TestPermissionsResponse{
128337		ServerResponse: googleapi.ServerResponse{
128338			Header:         res.Header,
128339			HTTPStatusCode: res.StatusCode,
128340		},
128341	}
128342	target := &ret
128343	if err := gensupport.DecodeResponse(target, res); err != nil {
128344		return nil, err
128345	}
128346	return ret, nil
128347	// {
128348	//   "description": "Returns permissions that a caller has on the specified resource.",
128349	//   "httpMethod": "POST",
128350	//   "id": "compute.regionDisks.testIamPermissions",
128351	//   "parameterOrder": [
128352	//     "project",
128353	//     "region",
128354	//     "resource"
128355	//   ],
128356	//   "parameters": {
128357	//     "project": {
128358	//       "description": "Project ID for this request.",
128359	//       "location": "path",
128360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128361	//       "required": true,
128362	//       "type": "string"
128363	//     },
128364	//     "region": {
128365	//       "description": "The name of the region for this request.",
128366	//       "location": "path",
128367	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128368	//       "required": true,
128369	//       "type": "string"
128370	//     },
128371	//     "resource": {
128372	//       "description": "Name or id of the resource for this request.",
128373	//       "location": "path",
128374	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128375	//       "required": true,
128376	//       "type": "string"
128377	//     }
128378	//   },
128379	//   "path": "{project}/regions/{region}/disks/{resource}/testIamPermissions",
128380	//   "request": {
128381	//     "$ref": "TestPermissionsRequest"
128382	//   },
128383	//   "response": {
128384	//     "$ref": "TestPermissionsResponse"
128385	//   },
128386	//   "scopes": [
128387	//     "https://www.googleapis.com/auth/cloud-platform",
128388	//     "https://www.googleapis.com/auth/compute",
128389	//     "https://www.googleapis.com/auth/compute.readonly"
128390	//   ]
128391	// }
128392
128393}
128394
128395// method id "compute.regionHealthCheckServices.delete":
128396
128397type RegionHealthCheckServicesDeleteCall struct {
128398	s                  *Service
128399	project            string
128400	region             string
128401	healthCheckService string
128402	urlParams_         gensupport.URLParams
128403	ctx_               context.Context
128404	header_            http.Header
128405}
128406
128407// Delete: Deletes the specified regional HealthCheckService.
128408func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
128409	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128410	c.project = project
128411	c.region = region
128412	c.healthCheckService = healthCheckService
128413	return c
128414}
128415
128416// RequestId sets the optional parameter "requestId": An optional
128417// request ID to identify requests. Specify a unique request ID so that
128418// if you must retry your request, the server will know to ignore the
128419// request if it has already been completed.
128420//
128421// For example, consider a situation where you make an initial request
128422// and the request times out. If you make the request again with the
128423// same request ID, the server can check if original operation with the
128424// same request ID was received, and if so, will ignore the second
128425// request. This prevents clients from accidentally creating duplicate
128426// commitments.
128427//
128428// The request ID must be a valid UUID with the exception that zero UUID
128429// is not supported (00000000-0000-0000-0000-000000000000).
128430func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
128431	c.urlParams_.Set("requestId", requestId)
128432	return c
128433}
128434
128435// Fields allows partial responses to be retrieved. See
128436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128437// for more information.
128438func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
128439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128440	return c
128441}
128442
128443// Context sets the context to be used in this call's Do method. Any
128444// pending HTTP request will be aborted if the provided context is
128445// canceled.
128446func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
128447	c.ctx_ = ctx
128448	return c
128449}
128450
128451// Header returns an http.Header that can be modified by the caller to
128452// add HTTP headers to the request.
128453func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
128454	if c.header_ == nil {
128455		c.header_ = make(http.Header)
128456	}
128457	return c.header_
128458}
128459
128460func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
128461	reqHeaders := make(http.Header)
128462	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
128463	for k, v := range c.header_ {
128464		reqHeaders[k] = v
128465	}
128466	reqHeaders.Set("User-Agent", c.s.userAgent())
128467	var body io.Reader = nil
128468	c.urlParams_.Set("alt", alt)
128469	c.urlParams_.Set("prettyPrint", "false")
128470	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
128471	urls += "?" + c.urlParams_.Encode()
128472	req, err := http.NewRequest("DELETE", urls, body)
128473	if err != nil {
128474		return nil, err
128475	}
128476	req.Header = reqHeaders
128477	googleapi.Expand(req.URL, map[string]string{
128478		"project":            c.project,
128479		"region":             c.region,
128480		"healthCheckService": c.healthCheckService,
128481	})
128482	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128483}
128484
128485// Do executes the "compute.regionHealthCheckServices.delete" call.
128486// Exactly one of *Operation or error will be non-nil. Any non-2xx
128487// status code is an error. Response headers are in either
128488// *Operation.ServerResponse.Header or (if a response was returned at
128489// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128490// to check whether the returned error was because
128491// http.StatusNotModified was returned.
128492func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128493	gensupport.SetOptions(c.urlParams_, opts...)
128494	res, err := c.doRequest("json")
128495	if res != nil && res.StatusCode == http.StatusNotModified {
128496		if res.Body != nil {
128497			res.Body.Close()
128498		}
128499		return nil, &googleapi.Error{
128500			Code:   res.StatusCode,
128501			Header: res.Header,
128502		}
128503	}
128504	if err != nil {
128505		return nil, err
128506	}
128507	defer googleapi.CloseBody(res)
128508	if err := googleapi.CheckResponse(res); err != nil {
128509		return nil, err
128510	}
128511	ret := &Operation{
128512		ServerResponse: googleapi.ServerResponse{
128513			Header:         res.Header,
128514			HTTPStatusCode: res.StatusCode,
128515		},
128516	}
128517	target := &ret
128518	if err := gensupport.DecodeResponse(target, res); err != nil {
128519		return nil, err
128520	}
128521	return ret, nil
128522	// {
128523	//   "description": "Deletes the specified regional HealthCheckService.",
128524	//   "httpMethod": "DELETE",
128525	//   "id": "compute.regionHealthCheckServices.delete",
128526	//   "parameterOrder": [
128527	//     "project",
128528	//     "region",
128529	//     "healthCheckService"
128530	//   ],
128531	//   "parameters": {
128532	//     "healthCheckService": {
128533	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
128534	//       "location": "path",
128535	//       "required": true,
128536	//       "type": "string"
128537	//     },
128538	//     "project": {
128539	//       "description": "Project ID for this request.",
128540	//       "location": "path",
128541	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128542	//       "required": true,
128543	//       "type": "string"
128544	//     },
128545	//     "region": {
128546	//       "description": "Name of the region scoping this request.",
128547	//       "location": "path",
128548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128549	//       "required": true,
128550	//       "type": "string"
128551	//     },
128552	//     "requestId": {
128553	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128554	//       "location": "query",
128555	//       "type": "string"
128556	//     }
128557	//   },
128558	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
128559	//   "response": {
128560	//     "$ref": "Operation"
128561	//   },
128562	//   "scopes": [
128563	//     "https://www.googleapis.com/auth/cloud-platform",
128564	//     "https://www.googleapis.com/auth/compute"
128565	//   ]
128566	// }
128567
128568}
128569
128570// method id "compute.regionHealthCheckServices.get":
128571
128572type RegionHealthCheckServicesGetCall struct {
128573	s                  *Service
128574	project            string
128575	region             string
128576	healthCheckService string
128577	urlParams_         gensupport.URLParams
128578	ifNoneMatch_       string
128579	ctx_               context.Context
128580	header_            http.Header
128581}
128582
128583// Get: Returns the specified regional HealthCheckService resource.
128584func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
128585	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128586	c.project = project
128587	c.region = region
128588	c.healthCheckService = healthCheckService
128589	return c
128590}
128591
128592// Fields allows partial responses to be retrieved. See
128593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128594// for more information.
128595func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
128596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128597	return c
128598}
128599
128600// IfNoneMatch sets the optional parameter which makes the operation
128601// fail if the object's ETag matches the given value. This is useful for
128602// getting updates only after the object has changed since the last
128603// request. Use googleapi.IsNotModified to check whether the response
128604// error from Do is the result of In-None-Match.
128605func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
128606	c.ifNoneMatch_ = entityTag
128607	return c
128608}
128609
128610// Context sets the context to be used in this call's Do method. Any
128611// pending HTTP request will be aborted if the provided context is
128612// canceled.
128613func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
128614	c.ctx_ = ctx
128615	return c
128616}
128617
128618// Header returns an http.Header that can be modified by the caller to
128619// add HTTP headers to the request.
128620func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
128621	if c.header_ == nil {
128622		c.header_ = make(http.Header)
128623	}
128624	return c.header_
128625}
128626
128627func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
128628	reqHeaders := make(http.Header)
128629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
128630	for k, v := range c.header_ {
128631		reqHeaders[k] = v
128632	}
128633	reqHeaders.Set("User-Agent", c.s.userAgent())
128634	if c.ifNoneMatch_ != "" {
128635		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128636	}
128637	var body io.Reader = nil
128638	c.urlParams_.Set("alt", alt)
128639	c.urlParams_.Set("prettyPrint", "false")
128640	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
128641	urls += "?" + c.urlParams_.Encode()
128642	req, err := http.NewRequest("GET", urls, body)
128643	if err != nil {
128644		return nil, err
128645	}
128646	req.Header = reqHeaders
128647	googleapi.Expand(req.URL, map[string]string{
128648		"project":            c.project,
128649		"region":             c.region,
128650		"healthCheckService": c.healthCheckService,
128651	})
128652	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128653}
128654
128655// Do executes the "compute.regionHealthCheckServices.get" call.
128656// Exactly one of *HealthCheckService or error will be non-nil. Any
128657// non-2xx status code is an error. Response headers are in either
128658// *HealthCheckService.ServerResponse.Header or (if a response was
128659// returned at all) in error.(*googleapi.Error).Header. Use
128660// googleapi.IsNotModified to check whether the returned error was
128661// because http.StatusNotModified was returned.
128662func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
128663	gensupport.SetOptions(c.urlParams_, opts...)
128664	res, err := c.doRequest("json")
128665	if res != nil && res.StatusCode == http.StatusNotModified {
128666		if res.Body != nil {
128667			res.Body.Close()
128668		}
128669		return nil, &googleapi.Error{
128670			Code:   res.StatusCode,
128671			Header: res.Header,
128672		}
128673	}
128674	if err != nil {
128675		return nil, err
128676	}
128677	defer googleapi.CloseBody(res)
128678	if err := googleapi.CheckResponse(res); err != nil {
128679		return nil, err
128680	}
128681	ret := &HealthCheckService{
128682		ServerResponse: googleapi.ServerResponse{
128683			Header:         res.Header,
128684			HTTPStatusCode: res.StatusCode,
128685		},
128686	}
128687	target := &ret
128688	if err := gensupport.DecodeResponse(target, res); err != nil {
128689		return nil, err
128690	}
128691	return ret, nil
128692	// {
128693	//   "description": "Returns the specified regional HealthCheckService resource.",
128694	//   "httpMethod": "GET",
128695	//   "id": "compute.regionHealthCheckServices.get",
128696	//   "parameterOrder": [
128697	//     "project",
128698	//     "region",
128699	//     "healthCheckService"
128700	//   ],
128701	//   "parameters": {
128702	//     "healthCheckService": {
128703	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
128704	//       "location": "path",
128705	//       "required": true,
128706	//       "type": "string"
128707	//     },
128708	//     "project": {
128709	//       "description": "Project ID for this request.",
128710	//       "location": "path",
128711	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128712	//       "required": true,
128713	//       "type": "string"
128714	//     },
128715	//     "region": {
128716	//       "description": "Name of the region scoping this request.",
128717	//       "location": "path",
128718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128719	//       "required": true,
128720	//       "type": "string"
128721	//     }
128722	//   },
128723	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
128724	//   "response": {
128725	//     "$ref": "HealthCheckService"
128726	//   },
128727	//   "scopes": [
128728	//     "https://www.googleapis.com/auth/cloud-platform",
128729	//     "https://www.googleapis.com/auth/compute",
128730	//     "https://www.googleapis.com/auth/compute.readonly"
128731	//   ]
128732	// }
128733
128734}
128735
128736// method id "compute.regionHealthCheckServices.insert":
128737
128738type RegionHealthCheckServicesInsertCall struct {
128739	s                  *Service
128740	project            string
128741	region             string
128742	healthcheckservice *HealthCheckService
128743	urlParams_         gensupport.URLParams
128744	ctx_               context.Context
128745	header_            http.Header
128746}
128747
128748// Insert: Creates a regional HealthCheckService resource in the
128749// specified project and region using the data included in the request.
128750func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
128751	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128752	c.project = project
128753	c.region = region
128754	c.healthcheckservice = healthcheckservice
128755	return c
128756}
128757
128758// RequestId sets the optional parameter "requestId": An optional
128759// request ID to identify requests. Specify a unique request ID so that
128760// if you must retry your request, the server will know to ignore the
128761// request if it has already been completed.
128762//
128763// For example, consider a situation where you make an initial request
128764// and the request times out. If you make the request again with the
128765// same request ID, the server can check if original operation with the
128766// same request ID was received, and if so, will ignore the second
128767// request. This prevents clients from accidentally creating duplicate
128768// commitments.
128769//
128770// The request ID must be a valid UUID with the exception that zero UUID
128771// is not supported (00000000-0000-0000-0000-000000000000).
128772func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
128773	c.urlParams_.Set("requestId", requestId)
128774	return c
128775}
128776
128777// Fields allows partial responses to be retrieved. See
128778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128779// for more information.
128780func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
128781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128782	return c
128783}
128784
128785// Context sets the context to be used in this call's Do method. Any
128786// pending HTTP request will be aborted if the provided context is
128787// canceled.
128788func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
128789	c.ctx_ = ctx
128790	return c
128791}
128792
128793// Header returns an http.Header that can be modified by the caller to
128794// add HTTP headers to the request.
128795func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
128796	if c.header_ == nil {
128797		c.header_ = make(http.Header)
128798	}
128799	return c.header_
128800}
128801
128802func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
128803	reqHeaders := make(http.Header)
128804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
128805	for k, v := range c.header_ {
128806		reqHeaders[k] = v
128807	}
128808	reqHeaders.Set("User-Agent", c.s.userAgent())
128809	var body io.Reader = nil
128810	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
128811	if err != nil {
128812		return nil, err
128813	}
128814	reqHeaders.Set("Content-Type", "application/json")
128815	c.urlParams_.Set("alt", alt)
128816	c.urlParams_.Set("prettyPrint", "false")
128817	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
128818	urls += "?" + c.urlParams_.Encode()
128819	req, err := http.NewRequest("POST", urls, body)
128820	if err != nil {
128821		return nil, err
128822	}
128823	req.Header = reqHeaders
128824	googleapi.Expand(req.URL, map[string]string{
128825		"project": c.project,
128826		"region":  c.region,
128827	})
128828	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128829}
128830
128831// Do executes the "compute.regionHealthCheckServices.insert" call.
128832// Exactly one of *Operation or error will be non-nil. Any non-2xx
128833// status code is an error. Response headers are in either
128834// *Operation.ServerResponse.Header or (if a response was returned at
128835// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128836// to check whether the returned error was because
128837// http.StatusNotModified was returned.
128838func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128839	gensupport.SetOptions(c.urlParams_, opts...)
128840	res, err := c.doRequest("json")
128841	if res != nil && res.StatusCode == http.StatusNotModified {
128842		if res.Body != nil {
128843			res.Body.Close()
128844		}
128845		return nil, &googleapi.Error{
128846			Code:   res.StatusCode,
128847			Header: res.Header,
128848		}
128849	}
128850	if err != nil {
128851		return nil, err
128852	}
128853	defer googleapi.CloseBody(res)
128854	if err := googleapi.CheckResponse(res); err != nil {
128855		return nil, err
128856	}
128857	ret := &Operation{
128858		ServerResponse: googleapi.ServerResponse{
128859			Header:         res.Header,
128860			HTTPStatusCode: res.StatusCode,
128861		},
128862	}
128863	target := &ret
128864	if err := gensupport.DecodeResponse(target, res); err != nil {
128865		return nil, err
128866	}
128867	return ret, nil
128868	// {
128869	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
128870	//   "httpMethod": "POST",
128871	//   "id": "compute.regionHealthCheckServices.insert",
128872	//   "parameterOrder": [
128873	//     "project",
128874	//     "region"
128875	//   ],
128876	//   "parameters": {
128877	//     "project": {
128878	//       "description": "Project ID for this request.",
128879	//       "location": "path",
128880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128881	//       "required": true,
128882	//       "type": "string"
128883	//     },
128884	//     "region": {
128885	//       "description": "Name of the region scoping this request.",
128886	//       "location": "path",
128887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128888	//       "required": true,
128889	//       "type": "string"
128890	//     },
128891	//     "requestId": {
128892	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128893	//       "location": "query",
128894	//       "type": "string"
128895	//     }
128896	//   },
128897	//   "path": "{project}/regions/{region}/healthCheckServices",
128898	//   "request": {
128899	//     "$ref": "HealthCheckService"
128900	//   },
128901	//   "response": {
128902	//     "$ref": "Operation"
128903	//   },
128904	//   "scopes": [
128905	//     "https://www.googleapis.com/auth/cloud-platform",
128906	//     "https://www.googleapis.com/auth/compute"
128907	//   ]
128908	// }
128909
128910}
128911
128912// method id "compute.regionHealthCheckServices.list":
128913
128914type RegionHealthCheckServicesListCall struct {
128915	s            *Service
128916	project      string
128917	region       string
128918	urlParams_   gensupport.URLParams
128919	ifNoneMatch_ string
128920	ctx_         context.Context
128921	header_      http.Header
128922}
128923
128924// List: Lists all the HealthCheckService resources that have been
128925// configured for the specified project in the given region.
128926func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
128927	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128928	c.project = project
128929	c.region = region
128930	return c
128931}
128932
128933// Filter sets the optional parameter "filter": A filter expression that
128934// filters resources listed in the response. The expression must specify
128935// the field name, a comparison operator, and the value that you want to
128936// use for filtering. The value must be a string, a number, or a
128937// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128938// `<`.
128939//
128940// For example, if you are filtering Compute Engine instances, you can
128941// exclude instances named `example-instance` by specifying `name !=
128942// example-instance`.
128943//
128944// You can also filter nested fields. For example, you could specify
128945// `scheduling.automaticRestart = false` to include instances only if
128946// they are not scheduled for automatic restarts. You can use filtering
128947// on nested fields to filter based on resource labels.
128948//
128949// To filter on multiple expressions, provide each separate expression
128950// within parentheses. For example: ``` (scheduling.automaticRestart =
128951// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
128952// is an `AND` expression. However, you can include `AND` and `OR`
128953// expressions explicitly. For example: ``` (cpuPlatform = "Intel
128954// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
128955// (scheduling.automaticRestart = true) ```
128956func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
128957	c.urlParams_.Set("filter", filter)
128958	return c
128959}
128960
128961// MaxResults sets the optional parameter "maxResults": The maximum
128962// number of results per page that should be returned. If the number of
128963// available results is larger than `maxResults`, Compute Engine returns
128964// a `nextPageToken` that can be used to get the next page of results in
128965// subsequent list requests. Acceptable values are `0` to `500`,
128966// inclusive. (Default: `500`)
128967func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
128968	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128969	return c
128970}
128971
128972// OrderBy sets the optional parameter "orderBy": Sorts list results by
128973// a certain order. By default, results are returned in alphanumerical
128974// order based on the resource name.
128975//
128976// You can also sort results in descending order based on the creation
128977// timestamp using `orderBy="creationTimestamp desc". This sorts
128978// results based on the `creationTimestamp` field in reverse
128979// chronological order (newest result first). Use this to sort resources
128980// like operations so that the newest operation is returned
128981// first.
128982//
128983// Currently, only sorting by `name` or `creationTimestamp desc` is
128984// supported.
128985func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
128986	c.urlParams_.Set("orderBy", orderBy)
128987	return c
128988}
128989
128990// PageToken sets the optional parameter "pageToken": Specifies a page
128991// token to use. Set `pageToken` to the `nextPageToken` returned by a
128992// previous list request to get the next page of results.
128993func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
128994	c.urlParams_.Set("pageToken", pageToken)
128995	return c
128996}
128997
128998// ReturnPartialSuccess sets the optional parameter
128999// "returnPartialSuccess": Opt-in for partial success behavior which
129000// provides partial results in case of failure. The default value is
129001// false and the logic is the same as today.
129002func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall {
129003	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
129004	return c
129005}
129006
129007// Fields allows partial responses to be retrieved. See
129008// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129009// for more information.
129010func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
129011	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129012	return c
129013}
129014
129015// IfNoneMatch sets the optional parameter which makes the operation
129016// fail if the object's ETag matches the given value. This is useful for
129017// getting updates only after the object has changed since the last
129018// request. Use googleapi.IsNotModified to check whether the response
129019// error from Do is the result of In-None-Match.
129020func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
129021	c.ifNoneMatch_ = entityTag
129022	return c
129023}
129024
129025// Context sets the context to be used in this call's Do method. Any
129026// pending HTTP request will be aborted if the provided context is
129027// canceled.
129028func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
129029	c.ctx_ = ctx
129030	return c
129031}
129032
129033// Header returns an http.Header that can be modified by the caller to
129034// add HTTP headers to the request.
129035func (c *RegionHealthCheckServicesListCall) Header() http.Header {
129036	if c.header_ == nil {
129037		c.header_ = make(http.Header)
129038	}
129039	return c.header_
129040}
129041
129042func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
129043	reqHeaders := make(http.Header)
129044	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
129045	for k, v := range c.header_ {
129046		reqHeaders[k] = v
129047	}
129048	reqHeaders.Set("User-Agent", c.s.userAgent())
129049	if c.ifNoneMatch_ != "" {
129050		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129051	}
129052	var body io.Reader = nil
129053	c.urlParams_.Set("alt", alt)
129054	c.urlParams_.Set("prettyPrint", "false")
129055	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
129056	urls += "?" + c.urlParams_.Encode()
129057	req, err := http.NewRequest("GET", urls, body)
129058	if err != nil {
129059		return nil, err
129060	}
129061	req.Header = reqHeaders
129062	googleapi.Expand(req.URL, map[string]string{
129063		"project": c.project,
129064		"region":  c.region,
129065	})
129066	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129067}
129068
129069// Do executes the "compute.regionHealthCheckServices.list" call.
129070// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
129071// non-2xx status code is an error. Response headers are in either
129072// *HealthCheckServicesList.ServerResponse.Header or (if a response was
129073// returned at all) in error.(*googleapi.Error).Header. Use
129074// googleapi.IsNotModified to check whether the returned error was
129075// because http.StatusNotModified was returned.
129076func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
129077	gensupport.SetOptions(c.urlParams_, opts...)
129078	res, err := c.doRequest("json")
129079	if res != nil && res.StatusCode == http.StatusNotModified {
129080		if res.Body != nil {
129081			res.Body.Close()
129082		}
129083		return nil, &googleapi.Error{
129084			Code:   res.StatusCode,
129085			Header: res.Header,
129086		}
129087	}
129088	if err != nil {
129089		return nil, err
129090	}
129091	defer googleapi.CloseBody(res)
129092	if err := googleapi.CheckResponse(res); err != nil {
129093		return nil, err
129094	}
129095	ret := &HealthCheckServicesList{
129096		ServerResponse: googleapi.ServerResponse{
129097			Header:         res.Header,
129098			HTTPStatusCode: res.StatusCode,
129099		},
129100	}
129101	target := &ret
129102	if err := gensupport.DecodeResponse(target, res); err != nil {
129103		return nil, err
129104	}
129105	return ret, nil
129106	// {
129107	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
129108	//   "httpMethod": "GET",
129109	//   "id": "compute.regionHealthCheckServices.list",
129110	//   "parameterOrder": [
129111	//     "project",
129112	//     "region"
129113	//   ],
129114	//   "parameters": {
129115	//     "filter": {
129116	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
129117	//       "location": "query",
129118	//       "type": "string"
129119	//     },
129120	//     "maxResults": {
129121	//       "default": "500",
129122	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
129123	//       "format": "uint32",
129124	//       "location": "query",
129125	//       "minimum": "0",
129126	//       "type": "integer"
129127	//     },
129128	//     "orderBy": {
129129	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
129130	//       "location": "query",
129131	//       "type": "string"
129132	//     },
129133	//     "pageToken": {
129134	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
129135	//       "location": "query",
129136	//       "type": "string"
129137	//     },
129138	//     "project": {
129139	//       "description": "Project ID for this request.",
129140	//       "location": "path",
129141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129142	//       "required": true,
129143	//       "type": "string"
129144	//     },
129145	//     "region": {
129146	//       "description": "Name of the region scoping this request.",
129147	//       "location": "path",
129148	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129149	//       "required": true,
129150	//       "type": "string"
129151	//     },
129152	//     "returnPartialSuccess": {
129153	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
129154	//       "location": "query",
129155	//       "type": "boolean"
129156	//     }
129157	//   },
129158	//   "path": "{project}/regions/{region}/healthCheckServices",
129159	//   "response": {
129160	//     "$ref": "HealthCheckServicesList"
129161	//   },
129162	//   "scopes": [
129163	//     "https://www.googleapis.com/auth/cloud-platform",
129164	//     "https://www.googleapis.com/auth/compute",
129165	//     "https://www.googleapis.com/auth/compute.readonly"
129166	//   ]
129167	// }
129168
129169}
129170
129171// Pages invokes f for each page of results.
129172// A non-nil error returned from f will halt the iteration.
129173// The provided context supersedes any context provided to the Context method.
129174func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
129175	c.ctx_ = ctx
129176	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129177	for {
129178		x, err := c.Do()
129179		if err != nil {
129180			return err
129181		}
129182		if err := f(x); err != nil {
129183			return err
129184		}
129185		if x.NextPageToken == "" {
129186			return nil
129187		}
129188		c.PageToken(x.NextPageToken)
129189	}
129190}
129191
129192// method id "compute.regionHealthCheckServices.patch":
129193
129194type RegionHealthCheckServicesPatchCall struct {
129195	s                  *Service
129196	project            string
129197	region             string
129198	healthCheckService string
129199	healthcheckservice *HealthCheckService
129200	urlParams_         gensupport.URLParams
129201	ctx_               context.Context
129202	header_            http.Header
129203}
129204
129205// Patch: Updates the specified regional HealthCheckService resource
129206// with the data included in the request. This method supports PATCH
129207// semantics and uses the JSON merge patch format and processing rules.
129208func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
129209	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129210	c.project = project
129211	c.region = region
129212	c.healthCheckService = healthCheckService
129213	c.healthcheckservice = healthcheckservice
129214	return c
129215}
129216
129217// RequestId sets the optional parameter "requestId": An optional
129218// request ID to identify requests. Specify a unique request ID so that
129219// if you must retry your request, the server will know to ignore the
129220// request if it has already been completed.
129221//
129222// For example, consider a situation where you make an initial request
129223// and the request times out. If you make the request again with the
129224// same request ID, the server can check if original operation with the
129225// same request ID was received, and if so, will ignore the second
129226// request. This prevents clients from accidentally creating duplicate
129227// commitments.
129228//
129229// The request ID must be a valid UUID with the exception that zero UUID
129230// is not supported (00000000-0000-0000-0000-000000000000).
129231func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
129232	c.urlParams_.Set("requestId", requestId)
129233	return c
129234}
129235
129236// Fields allows partial responses to be retrieved. See
129237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129238// for more information.
129239func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
129240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129241	return c
129242}
129243
129244// Context sets the context to be used in this call's Do method. Any
129245// pending HTTP request will be aborted if the provided context is
129246// canceled.
129247func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
129248	c.ctx_ = ctx
129249	return c
129250}
129251
129252// Header returns an http.Header that can be modified by the caller to
129253// add HTTP headers to the request.
129254func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
129255	if c.header_ == nil {
129256		c.header_ = make(http.Header)
129257	}
129258	return c.header_
129259}
129260
129261func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
129262	reqHeaders := make(http.Header)
129263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
129264	for k, v := range c.header_ {
129265		reqHeaders[k] = v
129266	}
129267	reqHeaders.Set("User-Agent", c.s.userAgent())
129268	var body io.Reader = nil
129269	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
129270	if err != nil {
129271		return nil, err
129272	}
129273	reqHeaders.Set("Content-Type", "application/json")
129274	c.urlParams_.Set("alt", alt)
129275	c.urlParams_.Set("prettyPrint", "false")
129276	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
129277	urls += "?" + c.urlParams_.Encode()
129278	req, err := http.NewRequest("PATCH", urls, body)
129279	if err != nil {
129280		return nil, err
129281	}
129282	req.Header = reqHeaders
129283	googleapi.Expand(req.URL, map[string]string{
129284		"project":            c.project,
129285		"region":             c.region,
129286		"healthCheckService": c.healthCheckService,
129287	})
129288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129289}
129290
129291// Do executes the "compute.regionHealthCheckServices.patch" call.
129292// Exactly one of *Operation or error will be non-nil. Any non-2xx
129293// status code is an error. Response headers are in either
129294// *Operation.ServerResponse.Header or (if a response was returned at
129295// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129296// to check whether the returned error was because
129297// http.StatusNotModified was returned.
129298func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129299	gensupport.SetOptions(c.urlParams_, opts...)
129300	res, err := c.doRequest("json")
129301	if res != nil && res.StatusCode == http.StatusNotModified {
129302		if res.Body != nil {
129303			res.Body.Close()
129304		}
129305		return nil, &googleapi.Error{
129306			Code:   res.StatusCode,
129307			Header: res.Header,
129308		}
129309	}
129310	if err != nil {
129311		return nil, err
129312	}
129313	defer googleapi.CloseBody(res)
129314	if err := googleapi.CheckResponse(res); err != nil {
129315		return nil, err
129316	}
129317	ret := &Operation{
129318		ServerResponse: googleapi.ServerResponse{
129319			Header:         res.Header,
129320			HTTPStatusCode: res.StatusCode,
129321		},
129322	}
129323	target := &ret
129324	if err := gensupport.DecodeResponse(target, res); err != nil {
129325		return nil, err
129326	}
129327	return ret, nil
129328	// {
129329	//   "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.",
129330	//   "httpMethod": "PATCH",
129331	//   "id": "compute.regionHealthCheckServices.patch",
129332	//   "parameterOrder": [
129333	//     "project",
129334	//     "region",
129335	//     "healthCheckService"
129336	//   ],
129337	//   "parameters": {
129338	//     "healthCheckService": {
129339	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
129340	//       "location": "path",
129341	//       "required": true,
129342	//       "type": "string"
129343	//     },
129344	//     "project": {
129345	//       "description": "Project ID for this request.",
129346	//       "location": "path",
129347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129348	//       "required": true,
129349	//       "type": "string"
129350	//     },
129351	//     "region": {
129352	//       "description": "Name of the region scoping this request.",
129353	//       "location": "path",
129354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129355	//       "required": true,
129356	//       "type": "string"
129357	//     },
129358	//     "requestId": {
129359	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129360	//       "location": "query",
129361	//       "type": "string"
129362	//     }
129363	//   },
129364	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
129365	//   "request": {
129366	//     "$ref": "HealthCheckService"
129367	//   },
129368	//   "response": {
129369	//     "$ref": "Operation"
129370	//   },
129371	//   "scopes": [
129372	//     "https://www.googleapis.com/auth/cloud-platform",
129373	//     "https://www.googleapis.com/auth/compute"
129374	//   ]
129375	// }
129376
129377}
129378
129379// method id "compute.regionHealthCheckServices.testIamPermissions":
129380
129381type RegionHealthCheckServicesTestIamPermissionsCall struct {
129382	s                      *Service
129383	project                string
129384	region                 string
129385	resource               string
129386	testpermissionsrequest *TestPermissionsRequest
129387	urlParams_             gensupport.URLParams
129388	ctx_                   context.Context
129389	header_                http.Header
129390}
129391
129392// TestIamPermissions: Returns permissions that a caller has on the
129393// specified resource.
129394func (r *RegionHealthCheckServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthCheckServicesTestIamPermissionsCall {
129395	c := &RegionHealthCheckServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129396	c.project = project
129397	c.region = region
129398	c.resource = resource
129399	c.testpermissionsrequest = testpermissionsrequest
129400	return c
129401}
129402
129403// Fields allows partial responses to be retrieved. See
129404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129405// for more information.
129406func (c *RegionHealthCheckServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesTestIamPermissionsCall {
129407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129408	return c
129409}
129410
129411// Context sets the context to be used in this call's Do method. Any
129412// pending HTTP request will be aborted if the provided context is
129413// canceled.
129414func (c *RegionHealthCheckServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthCheckServicesTestIamPermissionsCall {
129415	c.ctx_ = ctx
129416	return c
129417}
129418
129419// Header returns an http.Header that can be modified by the caller to
129420// add HTTP headers to the request.
129421func (c *RegionHealthCheckServicesTestIamPermissionsCall) Header() http.Header {
129422	if c.header_ == nil {
129423		c.header_ = make(http.Header)
129424	}
129425	return c.header_
129426}
129427
129428func (c *RegionHealthCheckServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
129429	reqHeaders := make(http.Header)
129430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
129431	for k, v := range c.header_ {
129432		reqHeaders[k] = v
129433	}
129434	reqHeaders.Set("User-Agent", c.s.userAgent())
129435	var body io.Reader = nil
129436	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
129437	if err != nil {
129438		return nil, err
129439	}
129440	reqHeaders.Set("Content-Type", "application/json")
129441	c.urlParams_.Set("alt", alt)
129442	c.urlParams_.Set("prettyPrint", "false")
129443	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions")
129444	urls += "?" + c.urlParams_.Encode()
129445	req, err := http.NewRequest("POST", urls, body)
129446	if err != nil {
129447		return nil, err
129448	}
129449	req.Header = reqHeaders
129450	googleapi.Expand(req.URL, map[string]string{
129451		"project":  c.project,
129452		"region":   c.region,
129453		"resource": c.resource,
129454	})
129455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129456}
129457
129458// Do executes the "compute.regionHealthCheckServices.testIamPermissions" call.
129459// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
129460// non-2xx status code is an error. Response headers are in either
129461// *TestPermissionsResponse.ServerResponse.Header or (if a response was
129462// returned at all) in error.(*googleapi.Error).Header. Use
129463// googleapi.IsNotModified to check whether the returned error was
129464// because http.StatusNotModified was returned.
129465func (c *RegionHealthCheckServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
129466	gensupport.SetOptions(c.urlParams_, opts...)
129467	res, err := c.doRequest("json")
129468	if res != nil && res.StatusCode == http.StatusNotModified {
129469		if res.Body != nil {
129470			res.Body.Close()
129471		}
129472		return nil, &googleapi.Error{
129473			Code:   res.StatusCode,
129474			Header: res.Header,
129475		}
129476	}
129477	if err != nil {
129478		return nil, err
129479	}
129480	defer googleapi.CloseBody(res)
129481	if err := googleapi.CheckResponse(res); err != nil {
129482		return nil, err
129483	}
129484	ret := &TestPermissionsResponse{
129485		ServerResponse: googleapi.ServerResponse{
129486			Header:         res.Header,
129487			HTTPStatusCode: res.StatusCode,
129488		},
129489	}
129490	target := &ret
129491	if err := gensupport.DecodeResponse(target, res); err != nil {
129492		return nil, err
129493	}
129494	return ret, nil
129495	// {
129496	//   "description": "Returns permissions that a caller has on the specified resource.",
129497	//   "httpMethod": "POST",
129498	//   "id": "compute.regionHealthCheckServices.testIamPermissions",
129499	//   "parameterOrder": [
129500	//     "project",
129501	//     "region",
129502	//     "resource"
129503	//   ],
129504	//   "parameters": {
129505	//     "project": {
129506	//       "description": "Project ID for this request.",
129507	//       "location": "path",
129508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129509	//       "required": true,
129510	//       "type": "string"
129511	//     },
129512	//     "region": {
129513	//       "description": "The name of the region for this request.",
129514	//       "location": "path",
129515	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129516	//       "required": true,
129517	//       "type": "string"
129518	//     },
129519	//     "resource": {
129520	//       "description": "Name or id of the resource for this request.",
129521	//       "location": "path",
129522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129523	//       "required": true,
129524	//       "type": "string"
129525	//     }
129526	//   },
129527	//   "path": "{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions",
129528	//   "request": {
129529	//     "$ref": "TestPermissionsRequest"
129530	//   },
129531	//   "response": {
129532	//     "$ref": "TestPermissionsResponse"
129533	//   },
129534	//   "scopes": [
129535	//     "https://www.googleapis.com/auth/cloud-platform",
129536	//     "https://www.googleapis.com/auth/compute",
129537	//     "https://www.googleapis.com/auth/compute.readonly"
129538	//   ]
129539	// }
129540
129541}
129542
129543// method id "compute.regionHealthChecks.delete":
129544
129545type RegionHealthChecksDeleteCall struct {
129546	s           *Service
129547	project     string
129548	region      string
129549	healthCheck string
129550	urlParams_  gensupport.URLParams
129551	ctx_        context.Context
129552	header_     http.Header
129553}
129554
129555// Delete: Deletes the specified HealthCheck resource.
129556func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
129557	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129558	c.project = project
129559	c.region = region
129560	c.healthCheck = healthCheck
129561	return c
129562}
129563
129564// RequestId sets the optional parameter "requestId": An optional
129565// request ID to identify requests. Specify a unique request ID so that
129566// if you must retry your request, the server will know to ignore the
129567// request if it has already been completed.
129568//
129569// For example, consider a situation where you make an initial request
129570// and the request times out. If you make the request again with the
129571// same request ID, the server can check if original operation with the
129572// same request ID was received, and if so, will ignore the second
129573// request. This prevents clients from accidentally creating duplicate
129574// commitments.
129575//
129576// The request ID must be a valid UUID with the exception that zero UUID
129577// is not supported (00000000-0000-0000-0000-000000000000).
129578func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
129579	c.urlParams_.Set("requestId", requestId)
129580	return c
129581}
129582
129583// Fields allows partial responses to be retrieved. See
129584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129585// for more information.
129586func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
129587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129588	return c
129589}
129590
129591// Context sets the context to be used in this call's Do method. Any
129592// pending HTTP request will be aborted if the provided context is
129593// canceled.
129594func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
129595	c.ctx_ = ctx
129596	return c
129597}
129598
129599// Header returns an http.Header that can be modified by the caller to
129600// add HTTP headers to the request.
129601func (c *RegionHealthChecksDeleteCall) Header() http.Header {
129602	if c.header_ == nil {
129603		c.header_ = make(http.Header)
129604	}
129605	return c.header_
129606}
129607
129608func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
129609	reqHeaders := make(http.Header)
129610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
129611	for k, v := range c.header_ {
129612		reqHeaders[k] = v
129613	}
129614	reqHeaders.Set("User-Agent", c.s.userAgent())
129615	var body io.Reader = nil
129616	c.urlParams_.Set("alt", alt)
129617	c.urlParams_.Set("prettyPrint", "false")
129618	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
129619	urls += "?" + c.urlParams_.Encode()
129620	req, err := http.NewRequest("DELETE", urls, body)
129621	if err != nil {
129622		return nil, err
129623	}
129624	req.Header = reqHeaders
129625	googleapi.Expand(req.URL, map[string]string{
129626		"project":     c.project,
129627		"region":      c.region,
129628		"healthCheck": c.healthCheck,
129629	})
129630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129631}
129632
129633// Do executes the "compute.regionHealthChecks.delete" call.
129634// Exactly one of *Operation or error will be non-nil. Any non-2xx
129635// status code is an error. Response headers are in either
129636// *Operation.ServerResponse.Header or (if a response was returned at
129637// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129638// to check whether the returned error was because
129639// http.StatusNotModified was returned.
129640func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129641	gensupport.SetOptions(c.urlParams_, opts...)
129642	res, err := c.doRequest("json")
129643	if res != nil && res.StatusCode == http.StatusNotModified {
129644		if res.Body != nil {
129645			res.Body.Close()
129646		}
129647		return nil, &googleapi.Error{
129648			Code:   res.StatusCode,
129649			Header: res.Header,
129650		}
129651	}
129652	if err != nil {
129653		return nil, err
129654	}
129655	defer googleapi.CloseBody(res)
129656	if err := googleapi.CheckResponse(res); err != nil {
129657		return nil, err
129658	}
129659	ret := &Operation{
129660		ServerResponse: googleapi.ServerResponse{
129661			Header:         res.Header,
129662			HTTPStatusCode: res.StatusCode,
129663		},
129664	}
129665	target := &ret
129666	if err := gensupport.DecodeResponse(target, res); err != nil {
129667		return nil, err
129668	}
129669	return ret, nil
129670	// {
129671	//   "description": "Deletes the specified HealthCheck resource.",
129672	//   "httpMethod": "DELETE",
129673	//   "id": "compute.regionHealthChecks.delete",
129674	//   "parameterOrder": [
129675	//     "project",
129676	//     "region",
129677	//     "healthCheck"
129678	//   ],
129679	//   "parameters": {
129680	//     "healthCheck": {
129681	//       "description": "Name of the HealthCheck resource to delete.",
129682	//       "location": "path",
129683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129684	//       "required": true,
129685	//       "type": "string"
129686	//     },
129687	//     "project": {
129688	//       "description": "Project ID for this request.",
129689	//       "location": "path",
129690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129691	//       "required": true,
129692	//       "type": "string"
129693	//     },
129694	//     "region": {
129695	//       "description": "Name of the region scoping this request.",
129696	//       "location": "path",
129697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129698	//       "required": true,
129699	//       "type": "string"
129700	//     },
129701	//     "requestId": {
129702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129703	//       "location": "query",
129704	//       "type": "string"
129705	//     }
129706	//   },
129707	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
129708	//   "response": {
129709	//     "$ref": "Operation"
129710	//   },
129711	//   "scopes": [
129712	//     "https://www.googleapis.com/auth/cloud-platform",
129713	//     "https://www.googleapis.com/auth/compute"
129714	//   ]
129715	// }
129716
129717}
129718
129719// method id "compute.regionHealthChecks.get":
129720
129721type RegionHealthChecksGetCall struct {
129722	s            *Service
129723	project      string
129724	region       string
129725	healthCheck  string
129726	urlParams_   gensupport.URLParams
129727	ifNoneMatch_ string
129728	ctx_         context.Context
129729	header_      http.Header
129730}
129731
129732// Get: Returns the specified HealthCheck resource. Gets a list of
129733// available health checks by making a list() request.
129734func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
129735	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129736	c.project = project
129737	c.region = region
129738	c.healthCheck = healthCheck
129739	return c
129740}
129741
129742// Fields allows partial responses to be retrieved. See
129743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129744// for more information.
129745func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
129746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129747	return c
129748}
129749
129750// IfNoneMatch sets the optional parameter which makes the operation
129751// fail if the object's ETag matches the given value. This is useful for
129752// getting updates only after the object has changed since the last
129753// request. Use googleapi.IsNotModified to check whether the response
129754// error from Do is the result of In-None-Match.
129755func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
129756	c.ifNoneMatch_ = entityTag
129757	return c
129758}
129759
129760// Context sets the context to be used in this call's Do method. Any
129761// pending HTTP request will be aborted if the provided context is
129762// canceled.
129763func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
129764	c.ctx_ = ctx
129765	return c
129766}
129767
129768// Header returns an http.Header that can be modified by the caller to
129769// add HTTP headers to the request.
129770func (c *RegionHealthChecksGetCall) Header() http.Header {
129771	if c.header_ == nil {
129772		c.header_ = make(http.Header)
129773	}
129774	return c.header_
129775}
129776
129777func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
129778	reqHeaders := make(http.Header)
129779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
129780	for k, v := range c.header_ {
129781		reqHeaders[k] = v
129782	}
129783	reqHeaders.Set("User-Agent", c.s.userAgent())
129784	if c.ifNoneMatch_ != "" {
129785		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129786	}
129787	var body io.Reader = nil
129788	c.urlParams_.Set("alt", alt)
129789	c.urlParams_.Set("prettyPrint", "false")
129790	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
129791	urls += "?" + c.urlParams_.Encode()
129792	req, err := http.NewRequest("GET", urls, body)
129793	if err != nil {
129794		return nil, err
129795	}
129796	req.Header = reqHeaders
129797	googleapi.Expand(req.URL, map[string]string{
129798		"project":     c.project,
129799		"region":      c.region,
129800		"healthCheck": c.healthCheck,
129801	})
129802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129803}
129804
129805// Do executes the "compute.regionHealthChecks.get" call.
129806// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
129807// status code is an error. Response headers are in either
129808// *HealthCheck.ServerResponse.Header or (if a response was returned at
129809// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129810// to check whether the returned error was because
129811// http.StatusNotModified was returned.
129812func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
129813	gensupport.SetOptions(c.urlParams_, opts...)
129814	res, err := c.doRequest("json")
129815	if res != nil && res.StatusCode == http.StatusNotModified {
129816		if res.Body != nil {
129817			res.Body.Close()
129818		}
129819		return nil, &googleapi.Error{
129820			Code:   res.StatusCode,
129821			Header: res.Header,
129822		}
129823	}
129824	if err != nil {
129825		return nil, err
129826	}
129827	defer googleapi.CloseBody(res)
129828	if err := googleapi.CheckResponse(res); err != nil {
129829		return nil, err
129830	}
129831	ret := &HealthCheck{
129832		ServerResponse: googleapi.ServerResponse{
129833			Header:         res.Header,
129834			HTTPStatusCode: res.StatusCode,
129835		},
129836	}
129837	target := &ret
129838	if err := gensupport.DecodeResponse(target, res); err != nil {
129839		return nil, err
129840	}
129841	return ret, nil
129842	// {
129843	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
129844	//   "httpMethod": "GET",
129845	//   "id": "compute.regionHealthChecks.get",
129846	//   "parameterOrder": [
129847	//     "project",
129848	//     "region",
129849	//     "healthCheck"
129850	//   ],
129851	//   "parameters": {
129852	//     "healthCheck": {
129853	//       "description": "Name of the HealthCheck resource to return.",
129854	//       "location": "path",
129855	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129856	//       "required": true,
129857	//       "type": "string"
129858	//     },
129859	//     "project": {
129860	//       "description": "Project ID for this request.",
129861	//       "location": "path",
129862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129863	//       "required": true,
129864	//       "type": "string"
129865	//     },
129866	//     "region": {
129867	//       "description": "Name of the region scoping this request.",
129868	//       "location": "path",
129869	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129870	//       "required": true,
129871	//       "type": "string"
129872	//     }
129873	//   },
129874	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
129875	//   "response": {
129876	//     "$ref": "HealthCheck"
129877	//   },
129878	//   "scopes": [
129879	//     "https://www.googleapis.com/auth/cloud-platform",
129880	//     "https://www.googleapis.com/auth/compute",
129881	//     "https://www.googleapis.com/auth/compute.readonly"
129882	//   ]
129883	// }
129884
129885}
129886
129887// method id "compute.regionHealthChecks.insert":
129888
129889type RegionHealthChecksInsertCall struct {
129890	s           *Service
129891	project     string
129892	region      string
129893	healthcheck *HealthCheck
129894	urlParams_  gensupport.URLParams
129895	ctx_        context.Context
129896	header_     http.Header
129897}
129898
129899// Insert: Creates a HealthCheck resource in the specified project using
129900// the data included in the request.
129901func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
129902	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129903	c.project = project
129904	c.region = region
129905	c.healthcheck = healthcheck
129906	return c
129907}
129908
129909// RequestId sets the optional parameter "requestId": An optional
129910// request ID to identify requests. Specify a unique request ID so that
129911// if you must retry your request, the server will know to ignore the
129912// request if it has already been completed.
129913//
129914// For example, consider a situation where you make an initial request
129915// and the request times out. If you make the request again with the
129916// same request ID, the server can check if original operation with the
129917// same request ID was received, and if so, will ignore the second
129918// request. This prevents clients from accidentally creating duplicate
129919// commitments.
129920//
129921// The request ID must be a valid UUID with the exception that zero UUID
129922// is not supported (00000000-0000-0000-0000-000000000000).
129923func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
129924	c.urlParams_.Set("requestId", requestId)
129925	return c
129926}
129927
129928// Fields allows partial responses to be retrieved. See
129929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129930// for more information.
129931func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
129932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129933	return c
129934}
129935
129936// Context sets the context to be used in this call's Do method. Any
129937// pending HTTP request will be aborted if the provided context is
129938// canceled.
129939func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
129940	c.ctx_ = ctx
129941	return c
129942}
129943
129944// Header returns an http.Header that can be modified by the caller to
129945// add HTTP headers to the request.
129946func (c *RegionHealthChecksInsertCall) Header() http.Header {
129947	if c.header_ == nil {
129948		c.header_ = make(http.Header)
129949	}
129950	return c.header_
129951}
129952
129953func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
129954	reqHeaders := make(http.Header)
129955	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
129956	for k, v := range c.header_ {
129957		reqHeaders[k] = v
129958	}
129959	reqHeaders.Set("User-Agent", c.s.userAgent())
129960	var body io.Reader = nil
129961	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
129962	if err != nil {
129963		return nil, err
129964	}
129965	reqHeaders.Set("Content-Type", "application/json")
129966	c.urlParams_.Set("alt", alt)
129967	c.urlParams_.Set("prettyPrint", "false")
129968	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
129969	urls += "?" + c.urlParams_.Encode()
129970	req, err := http.NewRequest("POST", urls, body)
129971	if err != nil {
129972		return nil, err
129973	}
129974	req.Header = reqHeaders
129975	googleapi.Expand(req.URL, map[string]string{
129976		"project": c.project,
129977		"region":  c.region,
129978	})
129979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129980}
129981
129982// Do executes the "compute.regionHealthChecks.insert" call.
129983// Exactly one of *Operation or error will be non-nil. Any non-2xx
129984// status code is an error. Response headers are in either
129985// *Operation.ServerResponse.Header or (if a response was returned at
129986// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129987// to check whether the returned error was because
129988// http.StatusNotModified was returned.
129989func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129990	gensupport.SetOptions(c.urlParams_, opts...)
129991	res, err := c.doRequest("json")
129992	if res != nil && res.StatusCode == http.StatusNotModified {
129993		if res.Body != nil {
129994			res.Body.Close()
129995		}
129996		return nil, &googleapi.Error{
129997			Code:   res.StatusCode,
129998			Header: res.Header,
129999		}
130000	}
130001	if err != nil {
130002		return nil, err
130003	}
130004	defer googleapi.CloseBody(res)
130005	if err := googleapi.CheckResponse(res); err != nil {
130006		return nil, err
130007	}
130008	ret := &Operation{
130009		ServerResponse: googleapi.ServerResponse{
130010			Header:         res.Header,
130011			HTTPStatusCode: res.StatusCode,
130012		},
130013	}
130014	target := &ret
130015	if err := gensupport.DecodeResponse(target, res); err != nil {
130016		return nil, err
130017	}
130018	return ret, nil
130019	// {
130020	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
130021	//   "httpMethod": "POST",
130022	//   "id": "compute.regionHealthChecks.insert",
130023	//   "parameterOrder": [
130024	//     "project",
130025	//     "region"
130026	//   ],
130027	//   "parameters": {
130028	//     "project": {
130029	//       "description": "Project ID for this request.",
130030	//       "location": "path",
130031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130032	//       "required": true,
130033	//       "type": "string"
130034	//     },
130035	//     "region": {
130036	//       "description": "Name of the region scoping this request.",
130037	//       "location": "path",
130038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130039	//       "required": true,
130040	//       "type": "string"
130041	//     },
130042	//     "requestId": {
130043	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130044	//       "location": "query",
130045	//       "type": "string"
130046	//     }
130047	//   },
130048	//   "path": "{project}/regions/{region}/healthChecks",
130049	//   "request": {
130050	//     "$ref": "HealthCheck"
130051	//   },
130052	//   "response": {
130053	//     "$ref": "Operation"
130054	//   },
130055	//   "scopes": [
130056	//     "https://www.googleapis.com/auth/cloud-platform",
130057	//     "https://www.googleapis.com/auth/compute"
130058	//   ]
130059	// }
130060
130061}
130062
130063// method id "compute.regionHealthChecks.list":
130064
130065type RegionHealthChecksListCall struct {
130066	s            *Service
130067	project      string
130068	region       string
130069	urlParams_   gensupport.URLParams
130070	ifNoneMatch_ string
130071	ctx_         context.Context
130072	header_      http.Header
130073}
130074
130075// List: Retrieves the list of HealthCheck resources available to the
130076// specified project.
130077func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
130078	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130079	c.project = project
130080	c.region = region
130081	return c
130082}
130083
130084// Filter sets the optional parameter "filter": A filter expression that
130085// filters resources listed in the response. The expression must specify
130086// the field name, a comparison operator, and the value that you want to
130087// use for filtering. The value must be a string, a number, or a
130088// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130089// `<`.
130090//
130091// For example, if you are filtering Compute Engine instances, you can
130092// exclude instances named `example-instance` by specifying `name !=
130093// example-instance`.
130094//
130095// You can also filter nested fields. For example, you could specify
130096// `scheduling.automaticRestart = false` to include instances only if
130097// they are not scheduled for automatic restarts. You can use filtering
130098// on nested fields to filter based on resource labels.
130099//
130100// To filter on multiple expressions, provide each separate expression
130101// within parentheses. For example: ``` (scheduling.automaticRestart =
130102// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
130103// is an `AND` expression. However, you can include `AND` and `OR`
130104// expressions explicitly. For example: ``` (cpuPlatform = "Intel
130105// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
130106// (scheduling.automaticRestart = true) ```
130107func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
130108	c.urlParams_.Set("filter", filter)
130109	return c
130110}
130111
130112// MaxResults sets the optional parameter "maxResults": The maximum
130113// number of results per page that should be returned. If the number of
130114// available results is larger than `maxResults`, Compute Engine returns
130115// a `nextPageToken` that can be used to get the next page of results in
130116// subsequent list requests. Acceptable values are `0` to `500`,
130117// inclusive. (Default: `500`)
130118func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
130119	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130120	return c
130121}
130122
130123// OrderBy sets the optional parameter "orderBy": Sorts list results by
130124// a certain order. By default, results are returned in alphanumerical
130125// order based on the resource name.
130126//
130127// You can also sort results in descending order based on the creation
130128// timestamp using `orderBy="creationTimestamp desc". This sorts
130129// results based on the `creationTimestamp` field in reverse
130130// chronological order (newest result first). Use this to sort resources
130131// like operations so that the newest operation is returned
130132// first.
130133//
130134// Currently, only sorting by `name` or `creationTimestamp desc` is
130135// supported.
130136func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
130137	c.urlParams_.Set("orderBy", orderBy)
130138	return c
130139}
130140
130141// PageToken sets the optional parameter "pageToken": Specifies a page
130142// token to use. Set `pageToken` to the `nextPageToken` returned by a
130143// previous list request to get the next page of results.
130144func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
130145	c.urlParams_.Set("pageToken", pageToken)
130146	return c
130147}
130148
130149// ReturnPartialSuccess sets the optional parameter
130150// "returnPartialSuccess": Opt-in for partial success behavior which
130151// provides partial results in case of failure. The default value is
130152// false and the logic is the same as today.
130153func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall {
130154	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130155	return c
130156}
130157
130158// Fields allows partial responses to be retrieved. See
130159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130160// for more information.
130161func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
130162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130163	return c
130164}
130165
130166// IfNoneMatch sets the optional parameter which makes the operation
130167// fail if the object's ETag matches the given value. This is useful for
130168// getting updates only after the object has changed since the last
130169// request. Use googleapi.IsNotModified to check whether the response
130170// error from Do is the result of In-None-Match.
130171func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
130172	c.ifNoneMatch_ = entityTag
130173	return c
130174}
130175
130176// Context sets the context to be used in this call's Do method. Any
130177// pending HTTP request will be aborted if the provided context is
130178// canceled.
130179func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
130180	c.ctx_ = ctx
130181	return c
130182}
130183
130184// Header returns an http.Header that can be modified by the caller to
130185// add HTTP headers to the request.
130186func (c *RegionHealthChecksListCall) Header() http.Header {
130187	if c.header_ == nil {
130188		c.header_ = make(http.Header)
130189	}
130190	return c.header_
130191}
130192
130193func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
130194	reqHeaders := make(http.Header)
130195	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
130196	for k, v := range c.header_ {
130197		reqHeaders[k] = v
130198	}
130199	reqHeaders.Set("User-Agent", c.s.userAgent())
130200	if c.ifNoneMatch_ != "" {
130201		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130202	}
130203	var body io.Reader = nil
130204	c.urlParams_.Set("alt", alt)
130205	c.urlParams_.Set("prettyPrint", "false")
130206	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
130207	urls += "?" + c.urlParams_.Encode()
130208	req, err := http.NewRequest("GET", urls, body)
130209	if err != nil {
130210		return nil, err
130211	}
130212	req.Header = reqHeaders
130213	googleapi.Expand(req.URL, map[string]string{
130214		"project": c.project,
130215		"region":  c.region,
130216	})
130217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130218}
130219
130220// Do executes the "compute.regionHealthChecks.list" call.
130221// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
130222// status code is an error. Response headers are in either
130223// *HealthCheckList.ServerResponse.Header or (if a response was returned
130224// at all) in error.(*googleapi.Error).Header. Use
130225// googleapi.IsNotModified to check whether the returned error was
130226// because http.StatusNotModified was returned.
130227func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
130228	gensupport.SetOptions(c.urlParams_, opts...)
130229	res, err := c.doRequest("json")
130230	if res != nil && res.StatusCode == http.StatusNotModified {
130231		if res.Body != nil {
130232			res.Body.Close()
130233		}
130234		return nil, &googleapi.Error{
130235			Code:   res.StatusCode,
130236			Header: res.Header,
130237		}
130238	}
130239	if err != nil {
130240		return nil, err
130241	}
130242	defer googleapi.CloseBody(res)
130243	if err := googleapi.CheckResponse(res); err != nil {
130244		return nil, err
130245	}
130246	ret := &HealthCheckList{
130247		ServerResponse: googleapi.ServerResponse{
130248			Header:         res.Header,
130249			HTTPStatusCode: res.StatusCode,
130250		},
130251	}
130252	target := &ret
130253	if err := gensupport.DecodeResponse(target, res); err != nil {
130254		return nil, err
130255	}
130256	return ret, nil
130257	// {
130258	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
130259	//   "httpMethod": "GET",
130260	//   "id": "compute.regionHealthChecks.list",
130261	//   "parameterOrder": [
130262	//     "project",
130263	//     "region"
130264	//   ],
130265	//   "parameters": {
130266	//     "filter": {
130267	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
130268	//       "location": "query",
130269	//       "type": "string"
130270	//     },
130271	//     "maxResults": {
130272	//       "default": "500",
130273	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130274	//       "format": "uint32",
130275	//       "location": "query",
130276	//       "minimum": "0",
130277	//       "type": "integer"
130278	//     },
130279	//     "orderBy": {
130280	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
130281	//       "location": "query",
130282	//       "type": "string"
130283	//     },
130284	//     "pageToken": {
130285	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130286	//       "location": "query",
130287	//       "type": "string"
130288	//     },
130289	//     "project": {
130290	//       "description": "Project ID for this request.",
130291	//       "location": "path",
130292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130293	//       "required": true,
130294	//       "type": "string"
130295	//     },
130296	//     "region": {
130297	//       "description": "Name of the region scoping this request.",
130298	//       "location": "path",
130299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130300	//       "required": true,
130301	//       "type": "string"
130302	//     },
130303	//     "returnPartialSuccess": {
130304	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
130305	//       "location": "query",
130306	//       "type": "boolean"
130307	//     }
130308	//   },
130309	//   "path": "{project}/regions/{region}/healthChecks",
130310	//   "response": {
130311	//     "$ref": "HealthCheckList"
130312	//   },
130313	//   "scopes": [
130314	//     "https://www.googleapis.com/auth/cloud-platform",
130315	//     "https://www.googleapis.com/auth/compute",
130316	//     "https://www.googleapis.com/auth/compute.readonly"
130317	//   ]
130318	// }
130319
130320}
130321
130322// Pages invokes f for each page of results.
130323// A non-nil error returned from f will halt the iteration.
130324// The provided context supersedes any context provided to the Context method.
130325func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
130326	c.ctx_ = ctx
130327	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130328	for {
130329		x, err := c.Do()
130330		if err != nil {
130331			return err
130332		}
130333		if err := f(x); err != nil {
130334			return err
130335		}
130336		if x.NextPageToken == "" {
130337			return nil
130338		}
130339		c.PageToken(x.NextPageToken)
130340	}
130341}
130342
130343// method id "compute.regionHealthChecks.patch":
130344
130345type RegionHealthChecksPatchCall struct {
130346	s           *Service
130347	project     string
130348	region      string
130349	healthCheck string
130350	healthcheck *HealthCheck
130351	urlParams_  gensupport.URLParams
130352	ctx_        context.Context
130353	header_     http.Header
130354}
130355
130356// Patch: Updates a HealthCheck resource in the specified project using
130357// the data included in the request. This method supports PATCH
130358// semantics and uses the JSON merge patch format and processing rules.
130359func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
130360	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130361	c.project = project
130362	c.region = region
130363	c.healthCheck = healthCheck
130364	c.healthcheck = healthcheck
130365	return c
130366}
130367
130368// RequestId sets the optional parameter "requestId": An optional
130369// request ID to identify requests. Specify a unique request ID so that
130370// if you must retry your request, the server will know to ignore the
130371// request if it has already been completed.
130372//
130373// For example, consider a situation where you make an initial request
130374// and the request times out. If you make the request again with the
130375// same request ID, the server can check if original operation with the
130376// same request ID was received, and if so, will ignore the second
130377// request. This prevents clients from accidentally creating duplicate
130378// commitments.
130379//
130380// The request ID must be a valid UUID with the exception that zero UUID
130381// is not supported (00000000-0000-0000-0000-000000000000).
130382func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
130383	c.urlParams_.Set("requestId", requestId)
130384	return c
130385}
130386
130387// Fields allows partial responses to be retrieved. See
130388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130389// for more information.
130390func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
130391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130392	return c
130393}
130394
130395// Context sets the context to be used in this call's Do method. Any
130396// pending HTTP request will be aborted if the provided context is
130397// canceled.
130398func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
130399	c.ctx_ = ctx
130400	return c
130401}
130402
130403// Header returns an http.Header that can be modified by the caller to
130404// add HTTP headers to the request.
130405func (c *RegionHealthChecksPatchCall) Header() http.Header {
130406	if c.header_ == nil {
130407		c.header_ = make(http.Header)
130408	}
130409	return c.header_
130410}
130411
130412func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
130413	reqHeaders := make(http.Header)
130414	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
130415	for k, v := range c.header_ {
130416		reqHeaders[k] = v
130417	}
130418	reqHeaders.Set("User-Agent", c.s.userAgent())
130419	var body io.Reader = nil
130420	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
130421	if err != nil {
130422		return nil, err
130423	}
130424	reqHeaders.Set("Content-Type", "application/json")
130425	c.urlParams_.Set("alt", alt)
130426	c.urlParams_.Set("prettyPrint", "false")
130427	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
130428	urls += "?" + c.urlParams_.Encode()
130429	req, err := http.NewRequest("PATCH", urls, body)
130430	if err != nil {
130431		return nil, err
130432	}
130433	req.Header = reqHeaders
130434	googleapi.Expand(req.URL, map[string]string{
130435		"project":     c.project,
130436		"region":      c.region,
130437		"healthCheck": c.healthCheck,
130438	})
130439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130440}
130441
130442// Do executes the "compute.regionHealthChecks.patch" call.
130443// Exactly one of *Operation or error will be non-nil. Any non-2xx
130444// status code is an error. Response headers are in either
130445// *Operation.ServerResponse.Header or (if a response was returned at
130446// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130447// to check whether the returned error was because
130448// http.StatusNotModified was returned.
130449func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130450	gensupport.SetOptions(c.urlParams_, opts...)
130451	res, err := c.doRequest("json")
130452	if res != nil && res.StatusCode == http.StatusNotModified {
130453		if res.Body != nil {
130454			res.Body.Close()
130455		}
130456		return nil, &googleapi.Error{
130457			Code:   res.StatusCode,
130458			Header: res.Header,
130459		}
130460	}
130461	if err != nil {
130462		return nil, err
130463	}
130464	defer googleapi.CloseBody(res)
130465	if err := googleapi.CheckResponse(res); err != nil {
130466		return nil, err
130467	}
130468	ret := &Operation{
130469		ServerResponse: googleapi.ServerResponse{
130470			Header:         res.Header,
130471			HTTPStatusCode: res.StatusCode,
130472		},
130473	}
130474	target := &ret
130475	if err := gensupport.DecodeResponse(target, res); err != nil {
130476		return nil, err
130477	}
130478	return ret, nil
130479	// {
130480	//   "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.",
130481	//   "httpMethod": "PATCH",
130482	//   "id": "compute.regionHealthChecks.patch",
130483	//   "parameterOrder": [
130484	//     "project",
130485	//     "region",
130486	//     "healthCheck"
130487	//   ],
130488	//   "parameters": {
130489	//     "healthCheck": {
130490	//       "description": "Name of the HealthCheck resource to patch.",
130491	//       "location": "path",
130492	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130493	//       "required": true,
130494	//       "type": "string"
130495	//     },
130496	//     "project": {
130497	//       "description": "Project ID for this request.",
130498	//       "location": "path",
130499	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130500	//       "required": true,
130501	//       "type": "string"
130502	//     },
130503	//     "region": {
130504	//       "description": "Name of the region scoping this request.",
130505	//       "location": "path",
130506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130507	//       "required": true,
130508	//       "type": "string"
130509	//     },
130510	//     "requestId": {
130511	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130512	//       "location": "query",
130513	//       "type": "string"
130514	//     }
130515	//   },
130516	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
130517	//   "request": {
130518	//     "$ref": "HealthCheck"
130519	//   },
130520	//   "response": {
130521	//     "$ref": "Operation"
130522	//   },
130523	//   "scopes": [
130524	//     "https://www.googleapis.com/auth/cloud-platform",
130525	//     "https://www.googleapis.com/auth/compute"
130526	//   ]
130527	// }
130528
130529}
130530
130531// method id "compute.regionHealthChecks.testIamPermissions":
130532
130533type RegionHealthChecksTestIamPermissionsCall struct {
130534	s                      *Service
130535	project                string
130536	region                 string
130537	resource               string
130538	testpermissionsrequest *TestPermissionsRequest
130539	urlParams_             gensupport.URLParams
130540	ctx_                   context.Context
130541	header_                http.Header
130542}
130543
130544// TestIamPermissions: Returns permissions that a caller has on the
130545// specified resource.
130546func (r *RegionHealthChecksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthChecksTestIamPermissionsCall {
130547	c := &RegionHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130548	c.project = project
130549	c.region = region
130550	c.resource = resource
130551	c.testpermissionsrequest = testpermissionsrequest
130552	return c
130553}
130554
130555// Fields allows partial responses to be retrieved. See
130556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130557// for more information.
130558func (c *RegionHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthChecksTestIamPermissionsCall {
130559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130560	return c
130561}
130562
130563// Context sets the context to be used in this call's Do method. Any
130564// pending HTTP request will be aborted if the provided context is
130565// canceled.
130566func (c *RegionHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthChecksTestIamPermissionsCall {
130567	c.ctx_ = ctx
130568	return c
130569}
130570
130571// Header returns an http.Header that can be modified by the caller to
130572// add HTTP headers to the request.
130573func (c *RegionHealthChecksTestIamPermissionsCall) Header() http.Header {
130574	if c.header_ == nil {
130575		c.header_ = make(http.Header)
130576	}
130577	return c.header_
130578}
130579
130580func (c *RegionHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
130581	reqHeaders := make(http.Header)
130582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
130583	for k, v := range c.header_ {
130584		reqHeaders[k] = v
130585	}
130586	reqHeaders.Set("User-Agent", c.s.userAgent())
130587	var body io.Reader = nil
130588	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
130589	if err != nil {
130590		return nil, err
130591	}
130592	reqHeaders.Set("Content-Type", "application/json")
130593	c.urlParams_.Set("alt", alt)
130594	c.urlParams_.Set("prettyPrint", "false")
130595	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{resource}/testIamPermissions")
130596	urls += "?" + c.urlParams_.Encode()
130597	req, err := http.NewRequest("POST", urls, body)
130598	if err != nil {
130599		return nil, err
130600	}
130601	req.Header = reqHeaders
130602	googleapi.Expand(req.URL, map[string]string{
130603		"project":  c.project,
130604		"region":   c.region,
130605		"resource": c.resource,
130606	})
130607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130608}
130609
130610// Do executes the "compute.regionHealthChecks.testIamPermissions" call.
130611// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
130612// non-2xx status code is an error. Response headers are in either
130613// *TestPermissionsResponse.ServerResponse.Header or (if a response was
130614// returned at all) in error.(*googleapi.Error).Header. Use
130615// googleapi.IsNotModified to check whether the returned error was
130616// because http.StatusNotModified was returned.
130617func (c *RegionHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
130618	gensupport.SetOptions(c.urlParams_, opts...)
130619	res, err := c.doRequest("json")
130620	if res != nil && res.StatusCode == http.StatusNotModified {
130621		if res.Body != nil {
130622			res.Body.Close()
130623		}
130624		return nil, &googleapi.Error{
130625			Code:   res.StatusCode,
130626			Header: res.Header,
130627		}
130628	}
130629	if err != nil {
130630		return nil, err
130631	}
130632	defer googleapi.CloseBody(res)
130633	if err := googleapi.CheckResponse(res); err != nil {
130634		return nil, err
130635	}
130636	ret := &TestPermissionsResponse{
130637		ServerResponse: googleapi.ServerResponse{
130638			Header:         res.Header,
130639			HTTPStatusCode: res.StatusCode,
130640		},
130641	}
130642	target := &ret
130643	if err := gensupport.DecodeResponse(target, res); err != nil {
130644		return nil, err
130645	}
130646	return ret, nil
130647	// {
130648	//   "description": "Returns permissions that a caller has on the specified resource.",
130649	//   "httpMethod": "POST",
130650	//   "id": "compute.regionHealthChecks.testIamPermissions",
130651	//   "parameterOrder": [
130652	//     "project",
130653	//     "region",
130654	//     "resource"
130655	//   ],
130656	//   "parameters": {
130657	//     "project": {
130658	//       "description": "Project ID for this request.",
130659	//       "location": "path",
130660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130661	//       "required": true,
130662	//       "type": "string"
130663	//     },
130664	//     "region": {
130665	//       "description": "The name of the region for this request.",
130666	//       "location": "path",
130667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130668	//       "required": true,
130669	//       "type": "string"
130670	//     },
130671	//     "resource": {
130672	//       "description": "Name or id of the resource for this request.",
130673	//       "location": "path",
130674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130675	//       "required": true,
130676	//       "type": "string"
130677	//     }
130678	//   },
130679	//   "path": "{project}/regions/{region}/healthChecks/{resource}/testIamPermissions",
130680	//   "request": {
130681	//     "$ref": "TestPermissionsRequest"
130682	//   },
130683	//   "response": {
130684	//     "$ref": "TestPermissionsResponse"
130685	//   },
130686	//   "scopes": [
130687	//     "https://www.googleapis.com/auth/cloud-platform",
130688	//     "https://www.googleapis.com/auth/compute",
130689	//     "https://www.googleapis.com/auth/compute.readonly"
130690	//   ]
130691	// }
130692
130693}
130694
130695// method id "compute.regionHealthChecks.update":
130696
130697type RegionHealthChecksUpdateCall struct {
130698	s           *Service
130699	project     string
130700	region      string
130701	healthCheck string
130702	healthcheck *HealthCheck
130703	urlParams_  gensupport.URLParams
130704	ctx_        context.Context
130705	header_     http.Header
130706}
130707
130708// Update: Updates a HealthCheck resource in the specified project using
130709// the data included in the request.
130710func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
130711	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130712	c.project = project
130713	c.region = region
130714	c.healthCheck = healthCheck
130715	c.healthcheck = healthcheck
130716	return c
130717}
130718
130719// RequestId sets the optional parameter "requestId": An optional
130720// request ID to identify requests. Specify a unique request ID so that
130721// if you must retry your request, the server will know to ignore the
130722// request if it has already been completed.
130723//
130724// For example, consider a situation where you make an initial request
130725// and the request times out. If you make the request again with the
130726// same request ID, the server can check if original operation with the
130727// same request ID was received, and if so, will ignore the second
130728// request. This prevents clients from accidentally creating duplicate
130729// commitments.
130730//
130731// The request ID must be a valid UUID with the exception that zero UUID
130732// is not supported (00000000-0000-0000-0000-000000000000).
130733func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
130734	c.urlParams_.Set("requestId", requestId)
130735	return c
130736}
130737
130738// Fields allows partial responses to be retrieved. See
130739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130740// for more information.
130741func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
130742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130743	return c
130744}
130745
130746// Context sets the context to be used in this call's Do method. Any
130747// pending HTTP request will be aborted if the provided context is
130748// canceled.
130749func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
130750	c.ctx_ = ctx
130751	return c
130752}
130753
130754// Header returns an http.Header that can be modified by the caller to
130755// add HTTP headers to the request.
130756func (c *RegionHealthChecksUpdateCall) Header() http.Header {
130757	if c.header_ == nil {
130758		c.header_ = make(http.Header)
130759	}
130760	return c.header_
130761}
130762
130763func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
130764	reqHeaders := make(http.Header)
130765	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
130766	for k, v := range c.header_ {
130767		reqHeaders[k] = v
130768	}
130769	reqHeaders.Set("User-Agent", c.s.userAgent())
130770	var body io.Reader = nil
130771	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
130772	if err != nil {
130773		return nil, err
130774	}
130775	reqHeaders.Set("Content-Type", "application/json")
130776	c.urlParams_.Set("alt", alt)
130777	c.urlParams_.Set("prettyPrint", "false")
130778	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
130779	urls += "?" + c.urlParams_.Encode()
130780	req, err := http.NewRequest("PUT", urls, body)
130781	if err != nil {
130782		return nil, err
130783	}
130784	req.Header = reqHeaders
130785	googleapi.Expand(req.URL, map[string]string{
130786		"project":     c.project,
130787		"region":      c.region,
130788		"healthCheck": c.healthCheck,
130789	})
130790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130791}
130792
130793// Do executes the "compute.regionHealthChecks.update" call.
130794// Exactly one of *Operation or error will be non-nil. Any non-2xx
130795// status code is an error. Response headers are in either
130796// *Operation.ServerResponse.Header or (if a response was returned at
130797// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130798// to check whether the returned error was because
130799// http.StatusNotModified was returned.
130800func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130801	gensupport.SetOptions(c.urlParams_, opts...)
130802	res, err := c.doRequest("json")
130803	if res != nil && res.StatusCode == http.StatusNotModified {
130804		if res.Body != nil {
130805			res.Body.Close()
130806		}
130807		return nil, &googleapi.Error{
130808			Code:   res.StatusCode,
130809			Header: res.Header,
130810		}
130811	}
130812	if err != nil {
130813		return nil, err
130814	}
130815	defer googleapi.CloseBody(res)
130816	if err := googleapi.CheckResponse(res); err != nil {
130817		return nil, err
130818	}
130819	ret := &Operation{
130820		ServerResponse: googleapi.ServerResponse{
130821			Header:         res.Header,
130822			HTTPStatusCode: res.StatusCode,
130823		},
130824	}
130825	target := &ret
130826	if err := gensupport.DecodeResponse(target, res); err != nil {
130827		return nil, err
130828	}
130829	return ret, nil
130830	// {
130831	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
130832	//   "httpMethod": "PUT",
130833	//   "id": "compute.regionHealthChecks.update",
130834	//   "parameterOrder": [
130835	//     "project",
130836	//     "region",
130837	//     "healthCheck"
130838	//   ],
130839	//   "parameters": {
130840	//     "healthCheck": {
130841	//       "description": "Name of the HealthCheck resource to update.",
130842	//       "location": "path",
130843	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130844	//       "required": true,
130845	//       "type": "string"
130846	//     },
130847	//     "project": {
130848	//       "description": "Project ID for this request.",
130849	//       "location": "path",
130850	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130851	//       "required": true,
130852	//       "type": "string"
130853	//     },
130854	//     "region": {
130855	//       "description": "Name of the region scoping this request.",
130856	//       "location": "path",
130857	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130858	//       "required": true,
130859	//       "type": "string"
130860	//     },
130861	//     "requestId": {
130862	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130863	//       "location": "query",
130864	//       "type": "string"
130865	//     }
130866	//   },
130867	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
130868	//   "request": {
130869	//     "$ref": "HealthCheck"
130870	//   },
130871	//   "response": {
130872	//     "$ref": "Operation"
130873	//   },
130874	//   "scopes": [
130875	//     "https://www.googleapis.com/auth/cloud-platform",
130876	//     "https://www.googleapis.com/auth/compute"
130877	//   ]
130878	// }
130879
130880}
130881
130882// method id "compute.regionInPlaceSnapshots.delete":
130883
130884type RegionInPlaceSnapshotsDeleteCall struct {
130885	s               *Service
130886	project         string
130887	region          string
130888	inPlaceSnapshot string
130889	urlParams_      gensupport.URLParams
130890	ctx_            context.Context
130891	header_         http.Header
130892}
130893
130894// Delete: Deletes the specified InPlaceSnapshot resource. Keep in mind
130895// that deleting a single inPlaceSnapshot might not necessarily delete
130896// all the data on that inPlaceSnapshot. If any data on the
130897// inPlaceSnapshot that is marked for deletion is needed for subsequent
130898// inPlaceSnapshots, the data will be moved to the next corresponding
130899// inPlaceSnapshot.
130900//
130901// For more information, see Deleting inPlaceSnapshots.
130902func (r *RegionInPlaceSnapshotsService) Delete(project string, region string, inPlaceSnapshot string) *RegionInPlaceSnapshotsDeleteCall {
130903	c := &RegionInPlaceSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130904	c.project = project
130905	c.region = region
130906	c.inPlaceSnapshot = inPlaceSnapshot
130907	return c
130908}
130909
130910// RequestId sets the optional parameter "requestId": An optional
130911// request ID to identify requests. Specify a unique request ID so that
130912// if you must retry your request, the server will know to ignore the
130913// request if it has already been completed.
130914//
130915// For example, consider a situation where you make an initial request
130916// and the request times out. If you make the request again with the
130917// same request ID, the server can check if original operation with the
130918// same request ID was received, and if so, will ignore the second
130919// request. This prevents clients from accidentally creating duplicate
130920// commitments.
130921//
130922// The request ID must be a valid UUID with the exception that zero UUID
130923// is not supported (00000000-0000-0000-0000-000000000000).
130924func (c *RegionInPlaceSnapshotsDeleteCall) RequestId(requestId string) *RegionInPlaceSnapshotsDeleteCall {
130925	c.urlParams_.Set("requestId", requestId)
130926	return c
130927}
130928
130929// Fields allows partial responses to be retrieved. See
130930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130931// for more information.
130932func (c *RegionInPlaceSnapshotsDeleteCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsDeleteCall {
130933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130934	return c
130935}
130936
130937// Context sets the context to be used in this call's Do method. Any
130938// pending HTTP request will be aborted if the provided context is
130939// canceled.
130940func (c *RegionInPlaceSnapshotsDeleteCall) Context(ctx context.Context) *RegionInPlaceSnapshotsDeleteCall {
130941	c.ctx_ = ctx
130942	return c
130943}
130944
130945// Header returns an http.Header that can be modified by the caller to
130946// add HTTP headers to the request.
130947func (c *RegionInPlaceSnapshotsDeleteCall) Header() http.Header {
130948	if c.header_ == nil {
130949		c.header_ = make(http.Header)
130950	}
130951	return c.header_
130952}
130953
130954func (c *RegionInPlaceSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
130955	reqHeaders := make(http.Header)
130956	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
130957	for k, v := range c.header_ {
130958		reqHeaders[k] = v
130959	}
130960	reqHeaders.Set("User-Agent", c.s.userAgent())
130961	var body io.Reader = nil
130962	c.urlParams_.Set("alt", alt)
130963	c.urlParams_.Set("prettyPrint", "false")
130964	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots/{inPlaceSnapshot}")
130965	urls += "?" + c.urlParams_.Encode()
130966	req, err := http.NewRequest("DELETE", urls, body)
130967	if err != nil {
130968		return nil, err
130969	}
130970	req.Header = reqHeaders
130971	googleapi.Expand(req.URL, map[string]string{
130972		"project":         c.project,
130973		"region":          c.region,
130974		"inPlaceSnapshot": c.inPlaceSnapshot,
130975	})
130976	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130977}
130978
130979// Do executes the "compute.regionInPlaceSnapshots.delete" call.
130980// Exactly one of *Operation or error will be non-nil. Any non-2xx
130981// status code is an error. Response headers are in either
130982// *Operation.ServerResponse.Header or (if a response was returned at
130983// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130984// to check whether the returned error was because
130985// http.StatusNotModified was returned.
130986func (c *RegionInPlaceSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130987	gensupport.SetOptions(c.urlParams_, opts...)
130988	res, err := c.doRequest("json")
130989	if res != nil && res.StatusCode == http.StatusNotModified {
130990		if res.Body != nil {
130991			res.Body.Close()
130992		}
130993		return nil, &googleapi.Error{
130994			Code:   res.StatusCode,
130995			Header: res.Header,
130996		}
130997	}
130998	if err != nil {
130999		return nil, err
131000	}
131001	defer googleapi.CloseBody(res)
131002	if err := googleapi.CheckResponse(res); err != nil {
131003		return nil, err
131004	}
131005	ret := &Operation{
131006		ServerResponse: googleapi.ServerResponse{
131007			Header:         res.Header,
131008			HTTPStatusCode: res.StatusCode,
131009		},
131010	}
131011	target := &ret
131012	if err := gensupport.DecodeResponse(target, res); err != nil {
131013		return nil, err
131014	}
131015	return ret, nil
131016	// {
131017	//   "description": "Deletes the specified InPlaceSnapshot resource. Keep in mind that deleting a single inPlaceSnapshot might not necessarily delete all the data on that inPlaceSnapshot. If any data on the inPlaceSnapshot that is marked for deletion is needed for subsequent inPlaceSnapshots, the data will be moved to the next corresponding inPlaceSnapshot.\n\nFor more information, see Deleting inPlaceSnapshots.",
131018	//   "httpMethod": "DELETE",
131019	//   "id": "compute.regionInPlaceSnapshots.delete",
131020	//   "parameterOrder": [
131021	//     "project",
131022	//     "region",
131023	//     "inPlaceSnapshot"
131024	//   ],
131025	//   "parameters": {
131026	//     "inPlaceSnapshot": {
131027	//       "description": "Name of the InPlaceSnapshot resource to delete.",
131028	//       "location": "path",
131029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131030	//       "required": true,
131031	//       "type": "string"
131032	//     },
131033	//     "project": {
131034	//       "description": "Project ID for this request.",
131035	//       "location": "path",
131036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131037	//       "required": true,
131038	//       "type": "string"
131039	//     },
131040	//     "region": {
131041	//       "description": "The name of the region for this request.",
131042	//       "location": "path",
131043	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131044	//       "required": true,
131045	//       "type": "string"
131046	//     },
131047	//     "requestId": {
131048	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131049	//       "location": "query",
131050	//       "type": "string"
131051	//     }
131052	//   },
131053	//   "path": "{project}/regions/{region}/inPlaceSnapshots/{inPlaceSnapshot}",
131054	//   "response": {
131055	//     "$ref": "Operation"
131056	//   },
131057	//   "scopes": [
131058	//     "https://www.googleapis.com/auth/cloud-platform",
131059	//     "https://www.googleapis.com/auth/compute"
131060	//   ]
131061	// }
131062
131063}
131064
131065// method id "compute.regionInPlaceSnapshots.get":
131066
131067type RegionInPlaceSnapshotsGetCall struct {
131068	s               *Service
131069	project         string
131070	region          string
131071	inPlaceSnapshot string
131072	urlParams_      gensupport.URLParams
131073	ifNoneMatch_    string
131074	ctx_            context.Context
131075	header_         http.Header
131076}
131077
131078// Get: Returns the specified InPlaceSnapshot resource in the specified
131079// region.
131080func (r *RegionInPlaceSnapshotsService) Get(project string, region string, inPlaceSnapshot string) *RegionInPlaceSnapshotsGetCall {
131081	c := &RegionInPlaceSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131082	c.project = project
131083	c.region = region
131084	c.inPlaceSnapshot = inPlaceSnapshot
131085	return c
131086}
131087
131088// Fields allows partial responses to be retrieved. See
131089// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131090// for more information.
131091func (c *RegionInPlaceSnapshotsGetCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsGetCall {
131092	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131093	return c
131094}
131095
131096// IfNoneMatch sets the optional parameter which makes the operation
131097// fail if the object's ETag matches the given value. This is useful for
131098// getting updates only after the object has changed since the last
131099// request. Use googleapi.IsNotModified to check whether the response
131100// error from Do is the result of In-None-Match.
131101func (c *RegionInPlaceSnapshotsGetCall) IfNoneMatch(entityTag string) *RegionInPlaceSnapshotsGetCall {
131102	c.ifNoneMatch_ = entityTag
131103	return c
131104}
131105
131106// Context sets the context to be used in this call's Do method. Any
131107// pending HTTP request will be aborted if the provided context is
131108// canceled.
131109func (c *RegionInPlaceSnapshotsGetCall) Context(ctx context.Context) *RegionInPlaceSnapshotsGetCall {
131110	c.ctx_ = ctx
131111	return c
131112}
131113
131114// Header returns an http.Header that can be modified by the caller to
131115// add HTTP headers to the request.
131116func (c *RegionInPlaceSnapshotsGetCall) Header() http.Header {
131117	if c.header_ == nil {
131118		c.header_ = make(http.Header)
131119	}
131120	return c.header_
131121}
131122
131123func (c *RegionInPlaceSnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
131124	reqHeaders := make(http.Header)
131125	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
131126	for k, v := range c.header_ {
131127		reqHeaders[k] = v
131128	}
131129	reqHeaders.Set("User-Agent", c.s.userAgent())
131130	if c.ifNoneMatch_ != "" {
131131		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131132	}
131133	var body io.Reader = nil
131134	c.urlParams_.Set("alt", alt)
131135	c.urlParams_.Set("prettyPrint", "false")
131136	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots/{inPlaceSnapshot}")
131137	urls += "?" + c.urlParams_.Encode()
131138	req, err := http.NewRequest("GET", urls, body)
131139	if err != nil {
131140		return nil, err
131141	}
131142	req.Header = reqHeaders
131143	googleapi.Expand(req.URL, map[string]string{
131144		"project":         c.project,
131145		"region":          c.region,
131146		"inPlaceSnapshot": c.inPlaceSnapshot,
131147	})
131148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131149}
131150
131151// Do executes the "compute.regionInPlaceSnapshots.get" call.
131152// Exactly one of *InPlaceSnapshot or error will be non-nil. Any non-2xx
131153// status code is an error. Response headers are in either
131154// *InPlaceSnapshot.ServerResponse.Header or (if a response was returned
131155// at all) in error.(*googleapi.Error).Header. Use
131156// googleapi.IsNotModified to check whether the returned error was
131157// because http.StatusNotModified was returned.
131158func (c *RegionInPlaceSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*InPlaceSnapshot, error) {
131159	gensupport.SetOptions(c.urlParams_, opts...)
131160	res, err := c.doRequest("json")
131161	if res != nil && res.StatusCode == http.StatusNotModified {
131162		if res.Body != nil {
131163			res.Body.Close()
131164		}
131165		return nil, &googleapi.Error{
131166			Code:   res.StatusCode,
131167			Header: res.Header,
131168		}
131169	}
131170	if err != nil {
131171		return nil, err
131172	}
131173	defer googleapi.CloseBody(res)
131174	if err := googleapi.CheckResponse(res); err != nil {
131175		return nil, err
131176	}
131177	ret := &InPlaceSnapshot{
131178		ServerResponse: googleapi.ServerResponse{
131179			Header:         res.Header,
131180			HTTPStatusCode: res.StatusCode,
131181		},
131182	}
131183	target := &ret
131184	if err := gensupport.DecodeResponse(target, res); err != nil {
131185		return nil, err
131186	}
131187	return ret, nil
131188	// {
131189	//   "description": "Returns the specified InPlaceSnapshot resource in the specified region.",
131190	//   "httpMethod": "GET",
131191	//   "id": "compute.regionInPlaceSnapshots.get",
131192	//   "parameterOrder": [
131193	//     "project",
131194	//     "region",
131195	//     "inPlaceSnapshot"
131196	//   ],
131197	//   "parameters": {
131198	//     "inPlaceSnapshot": {
131199	//       "description": "Name of the InPlaceSnapshot resource to return.",
131200	//       "location": "path",
131201	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131202	//       "required": true,
131203	//       "type": "string"
131204	//     },
131205	//     "project": {
131206	//       "description": "Project ID for this request.",
131207	//       "location": "path",
131208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131209	//       "required": true,
131210	//       "type": "string"
131211	//     },
131212	//     "region": {
131213	//       "description": "The name of the region for this request.",
131214	//       "location": "path",
131215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131216	//       "required": true,
131217	//       "type": "string"
131218	//     }
131219	//   },
131220	//   "path": "{project}/regions/{region}/inPlaceSnapshots/{inPlaceSnapshot}",
131221	//   "response": {
131222	//     "$ref": "InPlaceSnapshot"
131223	//   },
131224	//   "scopes": [
131225	//     "https://www.googleapis.com/auth/cloud-platform",
131226	//     "https://www.googleapis.com/auth/compute",
131227	//     "https://www.googleapis.com/auth/compute.readonly"
131228	//   ]
131229	// }
131230
131231}
131232
131233// method id "compute.regionInPlaceSnapshots.getIamPolicy":
131234
131235type RegionInPlaceSnapshotsGetIamPolicyCall struct {
131236	s            *Service
131237	project      string
131238	region       string
131239	resource     string
131240	urlParams_   gensupport.URLParams
131241	ifNoneMatch_ string
131242	ctx_         context.Context
131243	header_      http.Header
131244}
131245
131246// GetIamPolicy: Gets the access control policy for a resource. May be
131247// empty if no such policy or resource exists.
131248func (r *RegionInPlaceSnapshotsService) GetIamPolicy(project string, region string, resource string) *RegionInPlaceSnapshotsGetIamPolicyCall {
131249	c := &RegionInPlaceSnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131250	c.project = project
131251	c.region = region
131252	c.resource = resource
131253	return c
131254}
131255
131256// OptionsRequestedPolicyVersion sets the optional parameter
131257// "optionsRequestedPolicyVersion": Requested IAM Policy version.
131258func (c *RegionInPlaceSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionInPlaceSnapshotsGetIamPolicyCall {
131259	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
131260	return c
131261}
131262
131263// Fields allows partial responses to be retrieved. See
131264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131265// for more information.
131266func (c *RegionInPlaceSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsGetIamPolicyCall {
131267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131268	return c
131269}
131270
131271// IfNoneMatch sets the optional parameter which makes the operation
131272// fail if the object's ETag matches the given value. This is useful for
131273// getting updates only after the object has changed since the last
131274// request. Use googleapi.IsNotModified to check whether the response
131275// error from Do is the result of In-None-Match.
131276func (c *RegionInPlaceSnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionInPlaceSnapshotsGetIamPolicyCall {
131277	c.ifNoneMatch_ = entityTag
131278	return c
131279}
131280
131281// Context sets the context to be used in this call's Do method. Any
131282// pending HTTP request will be aborted if the provided context is
131283// canceled.
131284func (c *RegionInPlaceSnapshotsGetIamPolicyCall) Context(ctx context.Context) *RegionInPlaceSnapshotsGetIamPolicyCall {
131285	c.ctx_ = ctx
131286	return c
131287}
131288
131289// Header returns an http.Header that can be modified by the caller to
131290// add HTTP headers to the request.
131291func (c *RegionInPlaceSnapshotsGetIamPolicyCall) Header() http.Header {
131292	if c.header_ == nil {
131293		c.header_ = make(http.Header)
131294	}
131295	return c.header_
131296}
131297
131298func (c *RegionInPlaceSnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
131299	reqHeaders := make(http.Header)
131300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
131301	for k, v := range c.header_ {
131302		reqHeaders[k] = v
131303	}
131304	reqHeaders.Set("User-Agent", c.s.userAgent())
131305	if c.ifNoneMatch_ != "" {
131306		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131307	}
131308	var body io.Reader = nil
131309	c.urlParams_.Set("alt", alt)
131310	c.urlParams_.Set("prettyPrint", "false")
131311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots/{resource}/getIamPolicy")
131312	urls += "?" + c.urlParams_.Encode()
131313	req, err := http.NewRequest("GET", urls, body)
131314	if err != nil {
131315		return nil, err
131316	}
131317	req.Header = reqHeaders
131318	googleapi.Expand(req.URL, map[string]string{
131319		"project":  c.project,
131320		"region":   c.region,
131321		"resource": c.resource,
131322	})
131323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131324}
131325
131326// Do executes the "compute.regionInPlaceSnapshots.getIamPolicy" call.
131327// Exactly one of *Policy or error will be non-nil. Any non-2xx status
131328// code is an error. Response headers are in either
131329// *Policy.ServerResponse.Header or (if a response was returned at all)
131330// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
131331// check whether the returned error was because http.StatusNotModified
131332// was returned.
131333func (c *RegionInPlaceSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
131334	gensupport.SetOptions(c.urlParams_, opts...)
131335	res, err := c.doRequest("json")
131336	if res != nil && res.StatusCode == http.StatusNotModified {
131337		if res.Body != nil {
131338			res.Body.Close()
131339		}
131340		return nil, &googleapi.Error{
131341			Code:   res.StatusCode,
131342			Header: res.Header,
131343		}
131344	}
131345	if err != nil {
131346		return nil, err
131347	}
131348	defer googleapi.CloseBody(res)
131349	if err := googleapi.CheckResponse(res); err != nil {
131350		return nil, err
131351	}
131352	ret := &Policy{
131353		ServerResponse: googleapi.ServerResponse{
131354			Header:         res.Header,
131355			HTTPStatusCode: res.StatusCode,
131356		},
131357	}
131358	target := &ret
131359	if err := gensupport.DecodeResponse(target, res); err != nil {
131360		return nil, err
131361	}
131362	return ret, nil
131363	// {
131364	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
131365	//   "httpMethod": "GET",
131366	//   "id": "compute.regionInPlaceSnapshots.getIamPolicy",
131367	//   "parameterOrder": [
131368	//     "project",
131369	//     "region",
131370	//     "resource"
131371	//   ],
131372	//   "parameters": {
131373	//     "optionsRequestedPolicyVersion": {
131374	//       "description": "Requested IAM Policy version.",
131375	//       "format": "int32",
131376	//       "location": "query",
131377	//       "type": "integer"
131378	//     },
131379	//     "project": {
131380	//       "description": "Project ID for this request.",
131381	//       "location": "path",
131382	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131383	//       "required": true,
131384	//       "type": "string"
131385	//     },
131386	//     "region": {
131387	//       "description": "The name of the region for this request.",
131388	//       "location": "path",
131389	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131390	//       "required": true,
131391	//       "type": "string"
131392	//     },
131393	//     "resource": {
131394	//       "description": "Name or id of the resource for this request.",
131395	//       "location": "path",
131396	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131397	//       "required": true,
131398	//       "type": "string"
131399	//     }
131400	//   },
131401	//   "path": "{project}/regions/{region}/inPlaceSnapshots/{resource}/getIamPolicy",
131402	//   "response": {
131403	//     "$ref": "Policy"
131404	//   },
131405	//   "scopes": [
131406	//     "https://www.googleapis.com/auth/cloud-platform",
131407	//     "https://www.googleapis.com/auth/compute",
131408	//     "https://www.googleapis.com/auth/compute.readonly"
131409	//   ]
131410	// }
131411
131412}
131413
131414// method id "compute.regionInPlaceSnapshots.insert":
131415
131416type RegionInPlaceSnapshotsInsertCall struct {
131417	s               *Service
131418	project         string
131419	region          string
131420	inplacesnapshot *InPlaceSnapshot
131421	urlParams_      gensupport.URLParams
131422	ctx_            context.Context
131423	header_         http.Header
131424}
131425
131426// Insert: Creates an in-place snapshot in the specified region.
131427func (r *RegionInPlaceSnapshotsService) Insert(project string, region string, inplacesnapshot *InPlaceSnapshot) *RegionInPlaceSnapshotsInsertCall {
131428	c := &RegionInPlaceSnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131429	c.project = project
131430	c.region = region
131431	c.inplacesnapshot = inplacesnapshot
131432	return c
131433}
131434
131435// RequestId sets the optional parameter "requestId": An optional
131436// request ID to identify requests. Specify a unique request ID so that
131437// if you must retry your request, the server will know to ignore the
131438// request if it has already been completed.
131439//
131440// For example, consider a situation where you make an initial request
131441// and the request times out. If you make the request again with the
131442// same request ID, the server can check if original operation with the
131443// same request ID was received, and if so, will ignore the second
131444// request. This prevents clients from accidentally creating duplicate
131445// commitments.
131446//
131447// The request ID must be a valid UUID with the exception that zero UUID
131448// is not supported (00000000-0000-0000-0000-000000000000).
131449func (c *RegionInPlaceSnapshotsInsertCall) RequestId(requestId string) *RegionInPlaceSnapshotsInsertCall {
131450	c.urlParams_.Set("requestId", requestId)
131451	return c
131452}
131453
131454// Fields allows partial responses to be retrieved. See
131455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131456// for more information.
131457func (c *RegionInPlaceSnapshotsInsertCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsInsertCall {
131458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131459	return c
131460}
131461
131462// Context sets the context to be used in this call's Do method. Any
131463// pending HTTP request will be aborted if the provided context is
131464// canceled.
131465func (c *RegionInPlaceSnapshotsInsertCall) Context(ctx context.Context) *RegionInPlaceSnapshotsInsertCall {
131466	c.ctx_ = ctx
131467	return c
131468}
131469
131470// Header returns an http.Header that can be modified by the caller to
131471// add HTTP headers to the request.
131472func (c *RegionInPlaceSnapshotsInsertCall) Header() http.Header {
131473	if c.header_ == nil {
131474		c.header_ = make(http.Header)
131475	}
131476	return c.header_
131477}
131478
131479func (c *RegionInPlaceSnapshotsInsertCall) doRequest(alt string) (*http.Response, error) {
131480	reqHeaders := make(http.Header)
131481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
131482	for k, v := range c.header_ {
131483		reqHeaders[k] = v
131484	}
131485	reqHeaders.Set("User-Agent", c.s.userAgent())
131486	var body io.Reader = nil
131487	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inplacesnapshot)
131488	if err != nil {
131489		return nil, err
131490	}
131491	reqHeaders.Set("Content-Type", "application/json")
131492	c.urlParams_.Set("alt", alt)
131493	c.urlParams_.Set("prettyPrint", "false")
131494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots")
131495	urls += "?" + c.urlParams_.Encode()
131496	req, err := http.NewRequest("POST", urls, body)
131497	if err != nil {
131498		return nil, err
131499	}
131500	req.Header = reqHeaders
131501	googleapi.Expand(req.URL, map[string]string{
131502		"project": c.project,
131503		"region":  c.region,
131504	})
131505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131506}
131507
131508// Do executes the "compute.regionInPlaceSnapshots.insert" call.
131509// Exactly one of *Operation or error will be non-nil. Any non-2xx
131510// status code is an error. Response headers are in either
131511// *Operation.ServerResponse.Header or (if a response was returned at
131512// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131513// to check whether the returned error was because
131514// http.StatusNotModified was returned.
131515func (c *RegionInPlaceSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131516	gensupport.SetOptions(c.urlParams_, opts...)
131517	res, err := c.doRequest("json")
131518	if res != nil && res.StatusCode == http.StatusNotModified {
131519		if res.Body != nil {
131520			res.Body.Close()
131521		}
131522		return nil, &googleapi.Error{
131523			Code:   res.StatusCode,
131524			Header: res.Header,
131525		}
131526	}
131527	if err != nil {
131528		return nil, err
131529	}
131530	defer googleapi.CloseBody(res)
131531	if err := googleapi.CheckResponse(res); err != nil {
131532		return nil, err
131533	}
131534	ret := &Operation{
131535		ServerResponse: googleapi.ServerResponse{
131536			Header:         res.Header,
131537			HTTPStatusCode: res.StatusCode,
131538		},
131539	}
131540	target := &ret
131541	if err := gensupport.DecodeResponse(target, res); err != nil {
131542		return nil, err
131543	}
131544	return ret, nil
131545	// {
131546	//   "description": "Creates an in-place snapshot in the specified region.",
131547	//   "httpMethod": "POST",
131548	//   "id": "compute.regionInPlaceSnapshots.insert",
131549	//   "parameterOrder": [
131550	//     "project",
131551	//     "region"
131552	//   ],
131553	//   "parameters": {
131554	//     "project": {
131555	//       "description": "Project ID for this request.",
131556	//       "location": "path",
131557	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131558	//       "required": true,
131559	//       "type": "string"
131560	//     },
131561	//     "region": {
131562	//       "description": "Name of the region for this request.",
131563	//       "location": "path",
131564	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131565	//       "required": true,
131566	//       "type": "string"
131567	//     },
131568	//     "requestId": {
131569	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131570	//       "location": "query",
131571	//       "type": "string"
131572	//     }
131573	//   },
131574	//   "path": "{project}/regions/{region}/inPlaceSnapshots",
131575	//   "request": {
131576	//     "$ref": "InPlaceSnapshot"
131577	//   },
131578	//   "response": {
131579	//     "$ref": "Operation"
131580	//   },
131581	//   "scopes": [
131582	//     "https://www.googleapis.com/auth/cloud-platform",
131583	//     "https://www.googleapis.com/auth/compute"
131584	//   ]
131585	// }
131586
131587}
131588
131589// method id "compute.regionInPlaceSnapshots.list":
131590
131591type RegionInPlaceSnapshotsListCall struct {
131592	s            *Service
131593	project      string
131594	region       string
131595	urlParams_   gensupport.URLParams
131596	ifNoneMatch_ string
131597	ctx_         context.Context
131598	header_      http.Header
131599}
131600
131601// List: Retrieves the list of InPlaceSnapshot resources contained
131602// within the specified region.
131603func (r *RegionInPlaceSnapshotsService) List(project string, region string) *RegionInPlaceSnapshotsListCall {
131604	c := &RegionInPlaceSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131605	c.project = project
131606	c.region = region
131607	return c
131608}
131609
131610// Filter sets the optional parameter "filter": A filter expression that
131611// filters resources listed in the response. The expression must specify
131612// the field name, a comparison operator, and the value that you want to
131613// use for filtering. The value must be a string, a number, or a
131614// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131615// `<`.
131616//
131617// For example, if you are filtering Compute Engine instances, you can
131618// exclude instances named `example-instance` by specifying `name !=
131619// example-instance`.
131620//
131621// You can also filter nested fields. For example, you could specify
131622// `scheduling.automaticRestart = false` to include instances only if
131623// they are not scheduled for automatic restarts. You can use filtering
131624// on nested fields to filter based on resource labels.
131625//
131626// To filter on multiple expressions, provide each separate expression
131627// within parentheses. For example: ``` (scheduling.automaticRestart =
131628// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
131629// is an `AND` expression. However, you can include `AND` and `OR`
131630// expressions explicitly. For example: ``` (cpuPlatform = "Intel
131631// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
131632// (scheduling.automaticRestart = true) ```
131633func (c *RegionInPlaceSnapshotsListCall) Filter(filter string) *RegionInPlaceSnapshotsListCall {
131634	c.urlParams_.Set("filter", filter)
131635	return c
131636}
131637
131638// MaxResults sets the optional parameter "maxResults": The maximum
131639// number of results per page that should be returned. If the number of
131640// available results is larger than `maxResults`, Compute Engine returns
131641// a `nextPageToken` that can be used to get the next page of results in
131642// subsequent list requests. Acceptable values are `0` to `500`,
131643// inclusive. (Default: `500`)
131644func (c *RegionInPlaceSnapshotsListCall) MaxResults(maxResults int64) *RegionInPlaceSnapshotsListCall {
131645	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131646	return c
131647}
131648
131649// OrderBy sets the optional parameter "orderBy": Sorts list results by
131650// a certain order. By default, results are returned in alphanumerical
131651// order based on the resource name.
131652//
131653// You can also sort results in descending order based on the creation
131654// timestamp using `orderBy="creationTimestamp desc". This sorts
131655// results based on the `creationTimestamp` field in reverse
131656// chronological order (newest result first). Use this to sort resources
131657// like operations so that the newest operation is returned
131658// first.
131659//
131660// Currently, only sorting by `name` or `creationTimestamp desc` is
131661// supported.
131662func (c *RegionInPlaceSnapshotsListCall) OrderBy(orderBy string) *RegionInPlaceSnapshotsListCall {
131663	c.urlParams_.Set("orderBy", orderBy)
131664	return c
131665}
131666
131667// PageToken sets the optional parameter "pageToken": Specifies a page
131668// token to use. Set `pageToken` to the `nextPageToken` returned by a
131669// previous list request to get the next page of results.
131670func (c *RegionInPlaceSnapshotsListCall) PageToken(pageToken string) *RegionInPlaceSnapshotsListCall {
131671	c.urlParams_.Set("pageToken", pageToken)
131672	return c
131673}
131674
131675// ReturnPartialSuccess sets the optional parameter
131676// "returnPartialSuccess": Opt-in for partial success behavior which
131677// provides partial results in case of failure. The default value is
131678// false and the logic is the same as today.
131679func (c *RegionInPlaceSnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInPlaceSnapshotsListCall {
131680	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
131681	return c
131682}
131683
131684// Fields allows partial responses to be retrieved. See
131685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131686// for more information.
131687func (c *RegionInPlaceSnapshotsListCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsListCall {
131688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131689	return c
131690}
131691
131692// IfNoneMatch sets the optional parameter which makes the operation
131693// fail if the object's ETag matches the given value. This is useful for
131694// getting updates only after the object has changed since the last
131695// request. Use googleapi.IsNotModified to check whether the response
131696// error from Do is the result of In-None-Match.
131697func (c *RegionInPlaceSnapshotsListCall) IfNoneMatch(entityTag string) *RegionInPlaceSnapshotsListCall {
131698	c.ifNoneMatch_ = entityTag
131699	return c
131700}
131701
131702// Context sets the context to be used in this call's Do method. Any
131703// pending HTTP request will be aborted if the provided context is
131704// canceled.
131705func (c *RegionInPlaceSnapshotsListCall) Context(ctx context.Context) *RegionInPlaceSnapshotsListCall {
131706	c.ctx_ = ctx
131707	return c
131708}
131709
131710// Header returns an http.Header that can be modified by the caller to
131711// add HTTP headers to the request.
131712func (c *RegionInPlaceSnapshotsListCall) Header() http.Header {
131713	if c.header_ == nil {
131714		c.header_ = make(http.Header)
131715	}
131716	return c.header_
131717}
131718
131719func (c *RegionInPlaceSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
131720	reqHeaders := make(http.Header)
131721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
131722	for k, v := range c.header_ {
131723		reqHeaders[k] = v
131724	}
131725	reqHeaders.Set("User-Agent", c.s.userAgent())
131726	if c.ifNoneMatch_ != "" {
131727		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131728	}
131729	var body io.Reader = nil
131730	c.urlParams_.Set("alt", alt)
131731	c.urlParams_.Set("prettyPrint", "false")
131732	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots")
131733	urls += "?" + c.urlParams_.Encode()
131734	req, err := http.NewRequest("GET", urls, body)
131735	if err != nil {
131736		return nil, err
131737	}
131738	req.Header = reqHeaders
131739	googleapi.Expand(req.URL, map[string]string{
131740		"project": c.project,
131741		"region":  c.region,
131742	})
131743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131744}
131745
131746// Do executes the "compute.regionInPlaceSnapshots.list" call.
131747// Exactly one of *InPlaceSnapshotList or error will be non-nil. Any
131748// non-2xx status code is an error. Response headers are in either
131749// *InPlaceSnapshotList.ServerResponse.Header or (if a response was
131750// returned at all) in error.(*googleapi.Error).Header. Use
131751// googleapi.IsNotModified to check whether the returned error was
131752// because http.StatusNotModified was returned.
131753func (c *RegionInPlaceSnapshotsListCall) Do(opts ...googleapi.CallOption) (*InPlaceSnapshotList, error) {
131754	gensupport.SetOptions(c.urlParams_, opts...)
131755	res, err := c.doRequest("json")
131756	if res != nil && res.StatusCode == http.StatusNotModified {
131757		if res.Body != nil {
131758			res.Body.Close()
131759		}
131760		return nil, &googleapi.Error{
131761			Code:   res.StatusCode,
131762			Header: res.Header,
131763		}
131764	}
131765	if err != nil {
131766		return nil, err
131767	}
131768	defer googleapi.CloseBody(res)
131769	if err := googleapi.CheckResponse(res); err != nil {
131770		return nil, err
131771	}
131772	ret := &InPlaceSnapshotList{
131773		ServerResponse: googleapi.ServerResponse{
131774			Header:         res.Header,
131775			HTTPStatusCode: res.StatusCode,
131776		},
131777	}
131778	target := &ret
131779	if err := gensupport.DecodeResponse(target, res); err != nil {
131780		return nil, err
131781	}
131782	return ret, nil
131783	// {
131784	//   "description": "Retrieves the list of InPlaceSnapshot resources contained within the specified region.",
131785	//   "httpMethod": "GET",
131786	//   "id": "compute.regionInPlaceSnapshots.list",
131787	//   "parameterOrder": [
131788	//     "project",
131789	//     "region"
131790	//   ],
131791	//   "parameters": {
131792	//     "filter": {
131793	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
131794	//       "location": "query",
131795	//       "type": "string"
131796	//     },
131797	//     "maxResults": {
131798	//       "default": "500",
131799	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
131800	//       "format": "uint32",
131801	//       "location": "query",
131802	//       "minimum": "0",
131803	//       "type": "integer"
131804	//     },
131805	//     "orderBy": {
131806	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
131807	//       "location": "query",
131808	//       "type": "string"
131809	//     },
131810	//     "pageToken": {
131811	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
131812	//       "location": "query",
131813	//       "type": "string"
131814	//     },
131815	//     "project": {
131816	//       "description": "Project ID for this request.",
131817	//       "location": "path",
131818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131819	//       "required": true,
131820	//       "type": "string"
131821	//     },
131822	//     "region": {
131823	//       "description": "The name of the region for this request.",
131824	//       "location": "path",
131825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131826	//       "required": true,
131827	//       "type": "string"
131828	//     },
131829	//     "returnPartialSuccess": {
131830	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
131831	//       "location": "query",
131832	//       "type": "boolean"
131833	//     }
131834	//   },
131835	//   "path": "{project}/regions/{region}/inPlaceSnapshots",
131836	//   "response": {
131837	//     "$ref": "InPlaceSnapshotList"
131838	//   },
131839	//   "scopes": [
131840	//     "https://www.googleapis.com/auth/cloud-platform",
131841	//     "https://www.googleapis.com/auth/compute",
131842	//     "https://www.googleapis.com/auth/compute.readonly"
131843	//   ]
131844	// }
131845
131846}
131847
131848// Pages invokes f for each page of results.
131849// A non-nil error returned from f will halt the iteration.
131850// The provided context supersedes any context provided to the Context method.
131851func (c *RegionInPlaceSnapshotsListCall) Pages(ctx context.Context, f func(*InPlaceSnapshotList) error) error {
131852	c.ctx_ = ctx
131853	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131854	for {
131855		x, err := c.Do()
131856		if err != nil {
131857			return err
131858		}
131859		if err := f(x); err != nil {
131860			return err
131861		}
131862		if x.NextPageToken == "" {
131863			return nil
131864		}
131865		c.PageToken(x.NextPageToken)
131866	}
131867}
131868
131869// method id "compute.regionInPlaceSnapshots.setIamPolicy":
131870
131871type RegionInPlaceSnapshotsSetIamPolicyCall struct {
131872	s                      *Service
131873	project                string
131874	region                 string
131875	resource               string
131876	regionsetpolicyrequest *RegionSetPolicyRequest
131877	urlParams_             gensupport.URLParams
131878	ctx_                   context.Context
131879	header_                http.Header
131880}
131881
131882// SetIamPolicy: Sets the access control policy on the specified
131883// resource. Replaces any existing policy.
131884func (r *RegionInPlaceSnapshotsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionInPlaceSnapshotsSetIamPolicyCall {
131885	c := &RegionInPlaceSnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131886	c.project = project
131887	c.region = region
131888	c.resource = resource
131889	c.regionsetpolicyrequest = regionsetpolicyrequest
131890	return c
131891}
131892
131893// Fields allows partial responses to be retrieved. See
131894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131895// for more information.
131896func (c *RegionInPlaceSnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsSetIamPolicyCall {
131897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131898	return c
131899}
131900
131901// Context sets the context to be used in this call's Do method. Any
131902// pending HTTP request will be aborted if the provided context is
131903// canceled.
131904func (c *RegionInPlaceSnapshotsSetIamPolicyCall) Context(ctx context.Context) *RegionInPlaceSnapshotsSetIamPolicyCall {
131905	c.ctx_ = ctx
131906	return c
131907}
131908
131909// Header returns an http.Header that can be modified by the caller to
131910// add HTTP headers to the request.
131911func (c *RegionInPlaceSnapshotsSetIamPolicyCall) Header() http.Header {
131912	if c.header_ == nil {
131913		c.header_ = make(http.Header)
131914	}
131915	return c.header_
131916}
131917
131918func (c *RegionInPlaceSnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
131919	reqHeaders := make(http.Header)
131920	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
131921	for k, v := range c.header_ {
131922		reqHeaders[k] = v
131923	}
131924	reqHeaders.Set("User-Agent", c.s.userAgent())
131925	var body io.Reader = nil
131926	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
131927	if err != nil {
131928		return nil, err
131929	}
131930	reqHeaders.Set("Content-Type", "application/json")
131931	c.urlParams_.Set("alt", alt)
131932	c.urlParams_.Set("prettyPrint", "false")
131933	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots/{resource}/setIamPolicy")
131934	urls += "?" + c.urlParams_.Encode()
131935	req, err := http.NewRequest("POST", urls, body)
131936	if err != nil {
131937		return nil, err
131938	}
131939	req.Header = reqHeaders
131940	googleapi.Expand(req.URL, map[string]string{
131941		"project":  c.project,
131942		"region":   c.region,
131943		"resource": c.resource,
131944	})
131945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131946}
131947
131948// Do executes the "compute.regionInPlaceSnapshots.setIamPolicy" call.
131949// Exactly one of *Policy or error will be non-nil. Any non-2xx status
131950// code is an error. Response headers are in either
131951// *Policy.ServerResponse.Header or (if a response was returned at all)
131952// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
131953// check whether the returned error was because http.StatusNotModified
131954// was returned.
131955func (c *RegionInPlaceSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
131956	gensupport.SetOptions(c.urlParams_, opts...)
131957	res, err := c.doRequest("json")
131958	if res != nil && res.StatusCode == http.StatusNotModified {
131959		if res.Body != nil {
131960			res.Body.Close()
131961		}
131962		return nil, &googleapi.Error{
131963			Code:   res.StatusCode,
131964			Header: res.Header,
131965		}
131966	}
131967	if err != nil {
131968		return nil, err
131969	}
131970	defer googleapi.CloseBody(res)
131971	if err := googleapi.CheckResponse(res); err != nil {
131972		return nil, err
131973	}
131974	ret := &Policy{
131975		ServerResponse: googleapi.ServerResponse{
131976			Header:         res.Header,
131977			HTTPStatusCode: res.StatusCode,
131978		},
131979	}
131980	target := &ret
131981	if err := gensupport.DecodeResponse(target, res); err != nil {
131982		return nil, err
131983	}
131984	return ret, nil
131985	// {
131986	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
131987	//   "httpMethod": "POST",
131988	//   "id": "compute.regionInPlaceSnapshots.setIamPolicy",
131989	//   "parameterOrder": [
131990	//     "project",
131991	//     "region",
131992	//     "resource"
131993	//   ],
131994	//   "parameters": {
131995	//     "project": {
131996	//       "description": "Project ID for this request.",
131997	//       "location": "path",
131998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131999	//       "required": true,
132000	//       "type": "string"
132001	//     },
132002	//     "region": {
132003	//       "description": "The name of the region for this request.",
132004	//       "location": "path",
132005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132006	//       "required": true,
132007	//       "type": "string"
132008	//     },
132009	//     "resource": {
132010	//       "description": "Name or id of the resource for this request.",
132011	//       "location": "path",
132012	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132013	//       "required": true,
132014	//       "type": "string"
132015	//     }
132016	//   },
132017	//   "path": "{project}/regions/{region}/inPlaceSnapshots/{resource}/setIamPolicy",
132018	//   "request": {
132019	//     "$ref": "RegionSetPolicyRequest"
132020	//   },
132021	//   "response": {
132022	//     "$ref": "Policy"
132023	//   },
132024	//   "scopes": [
132025	//     "https://www.googleapis.com/auth/cloud-platform",
132026	//     "https://www.googleapis.com/auth/compute"
132027	//   ]
132028	// }
132029
132030}
132031
132032// method id "compute.regionInPlaceSnapshots.setLabels":
132033
132034type RegionInPlaceSnapshotsSetLabelsCall struct {
132035	s                      *Service
132036	project                string
132037	region                 string
132038	resource               string
132039	regionsetlabelsrequest *RegionSetLabelsRequest
132040	urlParams_             gensupport.URLParams
132041	ctx_                   context.Context
132042	header_                http.Header
132043}
132044
132045// SetLabels: Sets the labels on a inPlaceSnapshot in the given region.
132046// To learn more about labels, read the Labeling Resources
132047// documentation.
132048func (r *RegionInPlaceSnapshotsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionInPlaceSnapshotsSetLabelsCall {
132049	c := &RegionInPlaceSnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132050	c.project = project
132051	c.region = region
132052	c.resource = resource
132053	c.regionsetlabelsrequest = regionsetlabelsrequest
132054	return c
132055}
132056
132057// RequestId sets the optional parameter "requestId": An optional
132058// request ID to identify requests. Specify a unique request ID so that
132059// if you must retry your request, the server will know to ignore the
132060// request if it has already been completed.
132061//
132062// For example, consider a situation where you make an initial request
132063// and the request times out. If you make the request again with the
132064// same request ID, the server can check if original operation with the
132065// same request ID was received, and if so, will ignore the second
132066// request. This prevents clients from accidentally creating duplicate
132067// commitments.
132068//
132069// The request ID must be a valid UUID with the exception that zero UUID
132070// is not supported (00000000-0000-0000-0000-000000000000).
132071func (c *RegionInPlaceSnapshotsSetLabelsCall) RequestId(requestId string) *RegionInPlaceSnapshotsSetLabelsCall {
132072	c.urlParams_.Set("requestId", requestId)
132073	return c
132074}
132075
132076// Fields allows partial responses to be retrieved. See
132077// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132078// for more information.
132079func (c *RegionInPlaceSnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsSetLabelsCall {
132080	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132081	return c
132082}
132083
132084// Context sets the context to be used in this call's Do method. Any
132085// pending HTTP request will be aborted if the provided context is
132086// canceled.
132087func (c *RegionInPlaceSnapshotsSetLabelsCall) Context(ctx context.Context) *RegionInPlaceSnapshotsSetLabelsCall {
132088	c.ctx_ = ctx
132089	return c
132090}
132091
132092// Header returns an http.Header that can be modified by the caller to
132093// add HTTP headers to the request.
132094func (c *RegionInPlaceSnapshotsSetLabelsCall) Header() http.Header {
132095	if c.header_ == nil {
132096		c.header_ = make(http.Header)
132097	}
132098	return c.header_
132099}
132100
132101func (c *RegionInPlaceSnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
132102	reqHeaders := make(http.Header)
132103	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
132104	for k, v := range c.header_ {
132105		reqHeaders[k] = v
132106	}
132107	reqHeaders.Set("User-Agent", c.s.userAgent())
132108	var body io.Reader = nil
132109	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
132110	if err != nil {
132111		return nil, err
132112	}
132113	reqHeaders.Set("Content-Type", "application/json")
132114	c.urlParams_.Set("alt", alt)
132115	c.urlParams_.Set("prettyPrint", "false")
132116	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots/{resource}/setLabels")
132117	urls += "?" + c.urlParams_.Encode()
132118	req, err := http.NewRequest("POST", urls, body)
132119	if err != nil {
132120		return nil, err
132121	}
132122	req.Header = reqHeaders
132123	googleapi.Expand(req.URL, map[string]string{
132124		"project":  c.project,
132125		"region":   c.region,
132126		"resource": c.resource,
132127	})
132128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132129}
132130
132131// Do executes the "compute.regionInPlaceSnapshots.setLabels" call.
132132// Exactly one of *Operation or error will be non-nil. Any non-2xx
132133// status code is an error. Response headers are in either
132134// *Operation.ServerResponse.Header or (if a response was returned at
132135// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132136// to check whether the returned error was because
132137// http.StatusNotModified was returned.
132138func (c *RegionInPlaceSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132139	gensupport.SetOptions(c.urlParams_, opts...)
132140	res, err := c.doRequest("json")
132141	if res != nil && res.StatusCode == http.StatusNotModified {
132142		if res.Body != nil {
132143			res.Body.Close()
132144		}
132145		return nil, &googleapi.Error{
132146			Code:   res.StatusCode,
132147			Header: res.Header,
132148		}
132149	}
132150	if err != nil {
132151		return nil, err
132152	}
132153	defer googleapi.CloseBody(res)
132154	if err := googleapi.CheckResponse(res); err != nil {
132155		return nil, err
132156	}
132157	ret := &Operation{
132158		ServerResponse: googleapi.ServerResponse{
132159			Header:         res.Header,
132160			HTTPStatusCode: res.StatusCode,
132161		},
132162	}
132163	target := &ret
132164	if err := gensupport.DecodeResponse(target, res); err != nil {
132165		return nil, err
132166	}
132167	return ret, nil
132168	// {
132169	//   "description": "Sets the labels on a inPlaceSnapshot in the given region. To learn more about labels, read the Labeling Resources documentation.",
132170	//   "httpMethod": "POST",
132171	//   "id": "compute.regionInPlaceSnapshots.setLabels",
132172	//   "parameterOrder": [
132173	//     "project",
132174	//     "region",
132175	//     "resource"
132176	//   ],
132177	//   "parameters": {
132178	//     "project": {
132179	//       "description": "Project ID for this request.",
132180	//       "location": "path",
132181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132182	//       "required": true,
132183	//       "type": "string"
132184	//     },
132185	//     "region": {
132186	//       "description": "The region for this request.",
132187	//       "location": "path",
132188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132189	//       "required": true,
132190	//       "type": "string"
132191	//     },
132192	//     "requestId": {
132193	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132194	//       "location": "query",
132195	//       "type": "string"
132196	//     },
132197	//     "resource": {
132198	//       "description": "Name or id of the resource for this request.",
132199	//       "location": "path",
132200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132201	//       "required": true,
132202	//       "type": "string"
132203	//     }
132204	//   },
132205	//   "path": "{project}/regions/{region}/inPlaceSnapshots/{resource}/setLabels",
132206	//   "request": {
132207	//     "$ref": "RegionSetLabelsRequest"
132208	//   },
132209	//   "response": {
132210	//     "$ref": "Operation"
132211	//   },
132212	//   "scopes": [
132213	//     "https://www.googleapis.com/auth/cloud-platform",
132214	//     "https://www.googleapis.com/auth/compute"
132215	//   ]
132216	// }
132217
132218}
132219
132220// method id "compute.regionInPlaceSnapshots.testIamPermissions":
132221
132222type RegionInPlaceSnapshotsTestIamPermissionsCall struct {
132223	s                      *Service
132224	project                string
132225	region                 string
132226	resource               string
132227	testpermissionsrequest *TestPermissionsRequest
132228	urlParams_             gensupport.URLParams
132229	ctx_                   context.Context
132230	header_                http.Header
132231}
132232
132233// TestIamPermissions: Returns permissions that a caller has on the
132234// specified resource.
132235func (r *RegionInPlaceSnapshotsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInPlaceSnapshotsTestIamPermissionsCall {
132236	c := &RegionInPlaceSnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132237	c.project = project
132238	c.region = region
132239	c.resource = resource
132240	c.testpermissionsrequest = testpermissionsrequest
132241	return c
132242}
132243
132244// Fields allows partial responses to be retrieved. See
132245// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132246// for more information.
132247func (c *RegionInPlaceSnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInPlaceSnapshotsTestIamPermissionsCall {
132248	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132249	return c
132250}
132251
132252// Context sets the context to be used in this call's Do method. Any
132253// pending HTTP request will be aborted if the provided context is
132254// canceled.
132255func (c *RegionInPlaceSnapshotsTestIamPermissionsCall) Context(ctx context.Context) *RegionInPlaceSnapshotsTestIamPermissionsCall {
132256	c.ctx_ = ctx
132257	return c
132258}
132259
132260// Header returns an http.Header that can be modified by the caller to
132261// add HTTP headers to the request.
132262func (c *RegionInPlaceSnapshotsTestIamPermissionsCall) Header() http.Header {
132263	if c.header_ == nil {
132264		c.header_ = make(http.Header)
132265	}
132266	return c.header_
132267}
132268
132269func (c *RegionInPlaceSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
132270	reqHeaders := make(http.Header)
132271	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
132272	for k, v := range c.header_ {
132273		reqHeaders[k] = v
132274	}
132275	reqHeaders.Set("User-Agent", c.s.userAgent())
132276	var body io.Reader = nil
132277	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
132278	if err != nil {
132279		return nil, err
132280	}
132281	reqHeaders.Set("Content-Type", "application/json")
132282	c.urlParams_.Set("alt", alt)
132283	c.urlParams_.Set("prettyPrint", "false")
132284	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/inPlaceSnapshots/{resource}/testIamPermissions")
132285	urls += "?" + c.urlParams_.Encode()
132286	req, err := http.NewRequest("POST", urls, body)
132287	if err != nil {
132288		return nil, err
132289	}
132290	req.Header = reqHeaders
132291	googleapi.Expand(req.URL, map[string]string{
132292		"project":  c.project,
132293		"region":   c.region,
132294		"resource": c.resource,
132295	})
132296	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132297}
132298
132299// Do executes the "compute.regionInPlaceSnapshots.testIamPermissions" call.
132300// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
132301// non-2xx status code is an error. Response headers are in either
132302// *TestPermissionsResponse.ServerResponse.Header or (if a response was
132303// returned at all) in error.(*googleapi.Error).Header. Use
132304// googleapi.IsNotModified to check whether the returned error was
132305// because http.StatusNotModified was returned.
132306func (c *RegionInPlaceSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
132307	gensupport.SetOptions(c.urlParams_, opts...)
132308	res, err := c.doRequest("json")
132309	if res != nil && res.StatusCode == http.StatusNotModified {
132310		if res.Body != nil {
132311			res.Body.Close()
132312		}
132313		return nil, &googleapi.Error{
132314			Code:   res.StatusCode,
132315			Header: res.Header,
132316		}
132317	}
132318	if err != nil {
132319		return nil, err
132320	}
132321	defer googleapi.CloseBody(res)
132322	if err := googleapi.CheckResponse(res); err != nil {
132323		return nil, err
132324	}
132325	ret := &TestPermissionsResponse{
132326		ServerResponse: googleapi.ServerResponse{
132327			Header:         res.Header,
132328			HTTPStatusCode: res.StatusCode,
132329		},
132330	}
132331	target := &ret
132332	if err := gensupport.DecodeResponse(target, res); err != nil {
132333		return nil, err
132334	}
132335	return ret, nil
132336	// {
132337	//   "description": "Returns permissions that a caller has on the specified resource.",
132338	//   "httpMethod": "POST",
132339	//   "id": "compute.regionInPlaceSnapshots.testIamPermissions",
132340	//   "parameterOrder": [
132341	//     "project",
132342	//     "region",
132343	//     "resource"
132344	//   ],
132345	//   "parameters": {
132346	//     "project": {
132347	//       "description": "Project ID for this request.",
132348	//       "location": "path",
132349	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132350	//       "required": true,
132351	//       "type": "string"
132352	//     },
132353	//     "region": {
132354	//       "description": "The name of the region for this request.",
132355	//       "location": "path",
132356	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132357	//       "required": true,
132358	//       "type": "string"
132359	//     },
132360	//     "resource": {
132361	//       "description": "Name or id of the resource for this request.",
132362	//       "location": "path",
132363	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132364	//       "required": true,
132365	//       "type": "string"
132366	//     }
132367	//   },
132368	//   "path": "{project}/regions/{region}/inPlaceSnapshots/{resource}/testIamPermissions",
132369	//   "request": {
132370	//     "$ref": "TestPermissionsRequest"
132371	//   },
132372	//   "response": {
132373	//     "$ref": "TestPermissionsResponse"
132374	//   },
132375	//   "scopes": [
132376	//     "https://www.googleapis.com/auth/cloud-platform",
132377	//     "https://www.googleapis.com/auth/compute",
132378	//     "https://www.googleapis.com/auth/compute.readonly"
132379	//   ]
132380	// }
132381
132382}
132383
132384// method id "compute.regionInstanceGroupManagers.abandonInstances":
132385
132386type RegionInstanceGroupManagersAbandonInstancesCall struct {
132387	s                                                  *Service
132388	project                                            string
132389	region                                             string
132390	instanceGroupManager                               string
132391	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
132392	urlParams_                                         gensupport.URLParams
132393	ctx_                                               context.Context
132394	header_                                            http.Header
132395}
132396
132397// AbandonInstances: Flags the specified instances to be immediately
132398// removed from the managed instance group. Abandoning an instance does
132399// not delete the instance, but it does remove the instance from any
132400// target pools that are applied by the managed instance group. This
132401// method reduces the targetSize of the managed instance group by the
132402// number of instances that you abandon. This operation is marked as
132403// DONE when the action is scheduled even if the instances have not yet
132404// been removed from the group. You must separately verify the status of
132405// the abandoning action with the listmanagedinstances method.
132406//
132407// If the group is part of a backend service that has enabled connection
132408// draining, it can take up to 60 seconds after the connection draining
132409// duration has elapsed before the VM instance is removed or
132410// deleted.
132411//
132412// You can specify a maximum of 1000 instances with this method per
132413// request.
132414func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
132415	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132416	c.project = project
132417	c.region = region
132418	c.instanceGroupManager = instanceGroupManager
132419	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
132420	return c
132421}
132422
132423// RequestId sets the optional parameter "requestId": An optional
132424// request ID to identify requests. Specify a unique request ID so that
132425// if you must retry your request, the server will know to ignore the
132426// request if it has already been completed.
132427//
132428// For example, consider a situation where you make an initial request
132429// and the request times out. If you make the request again with the
132430// same request ID, the server can check if original operation with the
132431// same request ID was received, and if so, will ignore the second
132432// request. This prevents clients from accidentally creating duplicate
132433// commitments.
132434//
132435// The request ID must be a valid UUID with the exception that zero UUID
132436// is not supported (00000000-0000-0000-0000-000000000000).
132437func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
132438	c.urlParams_.Set("requestId", requestId)
132439	return c
132440}
132441
132442// Fields allows partial responses to be retrieved. See
132443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132444// for more information.
132445func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
132446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132447	return c
132448}
132449
132450// Context sets the context to be used in this call's Do method. Any
132451// pending HTTP request will be aborted if the provided context is
132452// canceled.
132453func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
132454	c.ctx_ = ctx
132455	return c
132456}
132457
132458// Header returns an http.Header that can be modified by the caller to
132459// add HTTP headers to the request.
132460func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
132461	if c.header_ == nil {
132462		c.header_ = make(http.Header)
132463	}
132464	return c.header_
132465}
132466
132467func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
132468	reqHeaders := make(http.Header)
132469	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
132470	for k, v := range c.header_ {
132471		reqHeaders[k] = v
132472	}
132473	reqHeaders.Set("User-Agent", c.s.userAgent())
132474	var body io.Reader = nil
132475	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
132476	if err != nil {
132477		return nil, err
132478	}
132479	reqHeaders.Set("Content-Type", "application/json")
132480	c.urlParams_.Set("alt", alt)
132481	c.urlParams_.Set("prettyPrint", "false")
132482	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
132483	urls += "?" + c.urlParams_.Encode()
132484	req, err := http.NewRequest("POST", urls, body)
132485	if err != nil {
132486		return nil, err
132487	}
132488	req.Header = reqHeaders
132489	googleapi.Expand(req.URL, map[string]string{
132490		"project":              c.project,
132491		"region":               c.region,
132492		"instanceGroupManager": c.instanceGroupManager,
132493	})
132494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132495}
132496
132497// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
132498// Exactly one of *Operation or error will be non-nil. Any non-2xx
132499// status code is an error. Response headers are in either
132500// *Operation.ServerResponse.Header or (if a response was returned at
132501// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132502// to check whether the returned error was because
132503// http.StatusNotModified was returned.
132504func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132505	gensupport.SetOptions(c.urlParams_, opts...)
132506	res, err := c.doRequest("json")
132507	if res != nil && res.StatusCode == http.StatusNotModified {
132508		if res.Body != nil {
132509			res.Body.Close()
132510		}
132511		return nil, &googleapi.Error{
132512			Code:   res.StatusCode,
132513			Header: res.Header,
132514		}
132515	}
132516	if err != nil {
132517		return nil, err
132518	}
132519	defer googleapi.CloseBody(res)
132520	if err := googleapi.CheckResponse(res); err != nil {
132521		return nil, err
132522	}
132523	ret := &Operation{
132524		ServerResponse: googleapi.ServerResponse{
132525			Header:         res.Header,
132526			HTTPStatusCode: res.StatusCode,
132527		},
132528	}
132529	target := &ret
132530	if err := gensupport.DecodeResponse(target, res); err != nil {
132531		return nil, err
132532	}
132533	return ret, nil
132534	// {
132535	//   "description": "Flags the specified instances to be immediately removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
132536	//   "httpMethod": "POST",
132537	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
132538	//   "parameterOrder": [
132539	//     "project",
132540	//     "region",
132541	//     "instanceGroupManager"
132542	//   ],
132543	//   "parameters": {
132544	//     "instanceGroupManager": {
132545	//       "description": "Name of the managed instance group.",
132546	//       "location": "path",
132547	//       "required": true,
132548	//       "type": "string"
132549	//     },
132550	//     "project": {
132551	//       "description": "Project ID for this request.",
132552	//       "location": "path",
132553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132554	//       "required": true,
132555	//       "type": "string"
132556	//     },
132557	//     "region": {
132558	//       "description": "Name of the region scoping this request.",
132559	//       "location": "path",
132560	//       "required": true,
132561	//       "type": "string"
132562	//     },
132563	//     "requestId": {
132564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132565	//       "location": "query",
132566	//       "type": "string"
132567	//     }
132568	//   },
132569	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
132570	//   "request": {
132571	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
132572	//   },
132573	//   "response": {
132574	//     "$ref": "Operation"
132575	//   },
132576	//   "scopes": [
132577	//     "https://www.googleapis.com/auth/cloud-platform",
132578	//     "https://www.googleapis.com/auth/compute"
132579	//   ]
132580	// }
132581
132582}
132583
132584// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
132585
132586type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
132587	s                                              *Service
132588	project                                        string
132589	region                                         string
132590	instanceGroupManager                           string
132591	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
132592	urlParams_                                     gensupport.URLParams
132593	ctx_                                           context.Context
132594	header_                                        http.Header
132595}
132596
132597// ApplyUpdatesToInstances: Apply updates to selected instances the
132598// managed instance group.
132599func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
132600	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132601	c.project = project
132602	c.region = region
132603	c.instanceGroupManager = instanceGroupManager
132604	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
132605	return c
132606}
132607
132608// Fields allows partial responses to be retrieved. See
132609// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132610// for more information.
132611func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
132612	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132613	return c
132614}
132615
132616// Context sets the context to be used in this call's Do method. Any
132617// pending HTTP request will be aborted if the provided context is
132618// canceled.
132619func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
132620	c.ctx_ = ctx
132621	return c
132622}
132623
132624// Header returns an http.Header that can be modified by the caller to
132625// add HTTP headers to the request.
132626func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
132627	if c.header_ == nil {
132628		c.header_ = make(http.Header)
132629	}
132630	return c.header_
132631}
132632
132633func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
132634	reqHeaders := make(http.Header)
132635	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
132636	for k, v := range c.header_ {
132637		reqHeaders[k] = v
132638	}
132639	reqHeaders.Set("User-Agent", c.s.userAgent())
132640	var body io.Reader = nil
132641	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
132642	if err != nil {
132643		return nil, err
132644	}
132645	reqHeaders.Set("Content-Type", "application/json")
132646	c.urlParams_.Set("alt", alt)
132647	c.urlParams_.Set("prettyPrint", "false")
132648	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
132649	urls += "?" + c.urlParams_.Encode()
132650	req, err := http.NewRequest("POST", urls, body)
132651	if err != nil {
132652		return nil, err
132653	}
132654	req.Header = reqHeaders
132655	googleapi.Expand(req.URL, map[string]string{
132656		"project":              c.project,
132657		"region":               c.region,
132658		"instanceGroupManager": c.instanceGroupManager,
132659	})
132660	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132661}
132662
132663// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
132664// Exactly one of *Operation or error will be non-nil. Any non-2xx
132665// status code is an error. Response headers are in either
132666// *Operation.ServerResponse.Header or (if a response was returned at
132667// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132668// to check whether the returned error was because
132669// http.StatusNotModified was returned.
132670func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132671	gensupport.SetOptions(c.urlParams_, opts...)
132672	res, err := c.doRequest("json")
132673	if res != nil && res.StatusCode == http.StatusNotModified {
132674		if res.Body != nil {
132675			res.Body.Close()
132676		}
132677		return nil, &googleapi.Error{
132678			Code:   res.StatusCode,
132679			Header: res.Header,
132680		}
132681	}
132682	if err != nil {
132683		return nil, err
132684	}
132685	defer googleapi.CloseBody(res)
132686	if err := googleapi.CheckResponse(res); err != nil {
132687		return nil, err
132688	}
132689	ret := &Operation{
132690		ServerResponse: googleapi.ServerResponse{
132691			Header:         res.Header,
132692			HTTPStatusCode: res.StatusCode,
132693		},
132694	}
132695	target := &ret
132696	if err := gensupport.DecodeResponse(target, res); err != nil {
132697		return nil, err
132698	}
132699	return ret, nil
132700	// {
132701	//   "description": "Apply updates to selected instances the managed instance group.",
132702	//   "httpMethod": "POST",
132703	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
132704	//   "parameterOrder": [
132705	//     "project",
132706	//     "region",
132707	//     "instanceGroupManager"
132708	//   ],
132709	//   "parameters": {
132710	//     "instanceGroupManager": {
132711	//       "description": "The name of the managed instance group, should conform to RFC1035.",
132712	//       "location": "path",
132713	//       "required": true,
132714	//       "type": "string"
132715	//     },
132716	//     "project": {
132717	//       "description": "Project ID for this request.",
132718	//       "location": "path",
132719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132720	//       "required": true,
132721	//       "type": "string"
132722	//     },
132723	//     "region": {
132724	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
132725	//       "location": "path",
132726	//       "required": true,
132727	//       "type": "string"
132728	//     }
132729	//   },
132730	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
132731	//   "request": {
132732	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
132733	//   },
132734	//   "response": {
132735	//     "$ref": "Operation"
132736	//   },
132737	//   "scopes": [
132738	//     "https://www.googleapis.com/auth/cloud-platform",
132739	//     "https://www.googleapis.com/auth/compute"
132740	//   ]
132741	// }
132742
132743}
132744
132745// method id "compute.regionInstanceGroupManagers.createInstances":
132746
132747type RegionInstanceGroupManagersCreateInstancesCall struct {
132748	s                                                 *Service
132749	project                                           string
132750	region                                            string
132751	instanceGroupManager                              string
132752	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
132753	urlParams_                                        gensupport.URLParams
132754	ctx_                                              context.Context
132755	header_                                           http.Header
132756}
132757
132758// CreateInstances: Creates instances with per-instance configs in this
132759// regional managed instance group. Instances are created using the
132760// current instance template. The create instances operation is marked
132761// DONE if the createInstances request is successful. The underlying
132762// actions take additional time. You must separately verify the status
132763// of the creating or actions with the listmanagedinstances method.
132764func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
132765	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132766	c.project = project
132767	c.region = region
132768	c.instanceGroupManager = instanceGroupManager
132769	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
132770	return c
132771}
132772
132773// RequestId sets the optional parameter "requestId": An optional
132774// request ID to identify requests. Specify a unique request ID so that
132775// if you must retry your request, the server will know to ignore the
132776// request if it has already been completed.
132777//
132778// For example, consider a situation where you make an initial request
132779// and the request times out. If you make the request again with the
132780// same request ID, the server can check if original operation with the
132781// same request ID was received, and if so, will ignore the second
132782// request.
132783//
132784// The request ID must be a valid UUID with the exception that zero UUID
132785// is not supported (00000000-0000-0000-0000-000000000000).
132786func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
132787	c.urlParams_.Set("requestId", requestId)
132788	return c
132789}
132790
132791// Fields allows partial responses to be retrieved. See
132792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132793// for more information.
132794func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
132795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132796	return c
132797}
132798
132799// Context sets the context to be used in this call's Do method. Any
132800// pending HTTP request will be aborted if the provided context is
132801// canceled.
132802func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
132803	c.ctx_ = ctx
132804	return c
132805}
132806
132807// Header returns an http.Header that can be modified by the caller to
132808// add HTTP headers to the request.
132809func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
132810	if c.header_ == nil {
132811		c.header_ = make(http.Header)
132812	}
132813	return c.header_
132814}
132815
132816func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
132817	reqHeaders := make(http.Header)
132818	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
132819	for k, v := range c.header_ {
132820		reqHeaders[k] = v
132821	}
132822	reqHeaders.Set("User-Agent", c.s.userAgent())
132823	var body io.Reader = nil
132824	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
132825	if err != nil {
132826		return nil, err
132827	}
132828	reqHeaders.Set("Content-Type", "application/json")
132829	c.urlParams_.Set("alt", alt)
132830	c.urlParams_.Set("prettyPrint", "false")
132831	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
132832	urls += "?" + c.urlParams_.Encode()
132833	req, err := http.NewRequest("POST", urls, body)
132834	if err != nil {
132835		return nil, err
132836	}
132837	req.Header = reqHeaders
132838	googleapi.Expand(req.URL, map[string]string{
132839		"project":              c.project,
132840		"region":               c.region,
132841		"instanceGroupManager": c.instanceGroupManager,
132842	})
132843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132844}
132845
132846// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
132847// Exactly one of *Operation or error will be non-nil. Any non-2xx
132848// status code is an error. Response headers are in either
132849// *Operation.ServerResponse.Header or (if a response was returned at
132850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132851// to check whether the returned error was because
132852// http.StatusNotModified was returned.
132853func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132854	gensupport.SetOptions(c.urlParams_, opts...)
132855	res, err := c.doRequest("json")
132856	if res != nil && res.StatusCode == http.StatusNotModified {
132857		if res.Body != nil {
132858			res.Body.Close()
132859		}
132860		return nil, &googleapi.Error{
132861			Code:   res.StatusCode,
132862			Header: res.Header,
132863		}
132864	}
132865	if err != nil {
132866		return nil, err
132867	}
132868	defer googleapi.CloseBody(res)
132869	if err := googleapi.CheckResponse(res); err != nil {
132870		return nil, err
132871	}
132872	ret := &Operation{
132873		ServerResponse: googleapi.ServerResponse{
132874			Header:         res.Header,
132875			HTTPStatusCode: res.StatusCode,
132876		},
132877	}
132878	target := &ret
132879	if err := gensupport.DecodeResponse(target, res); err != nil {
132880		return nil, err
132881	}
132882	return ret, nil
132883	// {
132884	//   "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.",
132885	//   "httpMethod": "POST",
132886	//   "id": "compute.regionInstanceGroupManagers.createInstances",
132887	//   "parameterOrder": [
132888	//     "project",
132889	//     "region",
132890	//     "instanceGroupManager"
132891	//   ],
132892	//   "parameters": {
132893	//     "instanceGroupManager": {
132894	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
132895	//       "location": "path",
132896	//       "required": true,
132897	//       "type": "string"
132898	//     },
132899	//     "project": {
132900	//       "description": "Project ID for this request.",
132901	//       "location": "path",
132902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132903	//       "required": true,
132904	//       "type": "string"
132905	//     },
132906	//     "region": {
132907	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
132908	//       "location": "path",
132909	//       "required": true,
132910	//       "type": "string"
132911	//     },
132912	//     "requestId": {
132913	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132914	//       "location": "query",
132915	//       "type": "string"
132916	//     }
132917	//   },
132918	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
132919	//   "request": {
132920	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
132921	//   },
132922	//   "response": {
132923	//     "$ref": "Operation"
132924	//   },
132925	//   "scopes": [
132926	//     "https://www.googleapis.com/auth/cloud-platform",
132927	//     "https://www.googleapis.com/auth/compute"
132928	//   ]
132929	// }
132930
132931}
132932
132933// method id "compute.regionInstanceGroupManagers.delete":
132934
132935type RegionInstanceGroupManagersDeleteCall struct {
132936	s                    *Service
132937	project              string
132938	region               string
132939	instanceGroupManager string
132940	urlParams_           gensupport.URLParams
132941	ctx_                 context.Context
132942	header_              http.Header
132943}
132944
132945// Delete: Deletes the specified managed instance group and all of the
132946// instances in that group.
132947func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
132948	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132949	c.project = project
132950	c.region = region
132951	c.instanceGroupManager = instanceGroupManager
132952	return c
132953}
132954
132955// RequestId sets the optional parameter "requestId": An optional
132956// request ID to identify requests. Specify a unique request ID so that
132957// if you must retry your request, the server will know to ignore the
132958// request if it has already been completed.
132959//
132960// For example, consider a situation where you make an initial request
132961// and the request times out. If you make the request again with the
132962// same request ID, the server can check if original operation with the
132963// same request ID was received, and if so, will ignore the second
132964// request. This prevents clients from accidentally creating duplicate
132965// commitments.
132966//
132967// The request ID must be a valid UUID with the exception that zero UUID
132968// is not supported (00000000-0000-0000-0000-000000000000).
132969func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
132970	c.urlParams_.Set("requestId", requestId)
132971	return c
132972}
132973
132974// Fields allows partial responses to be retrieved. See
132975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132976// for more information.
132977func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
132978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132979	return c
132980}
132981
132982// Context sets the context to be used in this call's Do method. Any
132983// pending HTTP request will be aborted if the provided context is
132984// canceled.
132985func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
132986	c.ctx_ = ctx
132987	return c
132988}
132989
132990// Header returns an http.Header that can be modified by the caller to
132991// add HTTP headers to the request.
132992func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
132993	if c.header_ == nil {
132994		c.header_ = make(http.Header)
132995	}
132996	return c.header_
132997}
132998
132999func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
133000	reqHeaders := make(http.Header)
133001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
133002	for k, v := range c.header_ {
133003		reqHeaders[k] = v
133004	}
133005	reqHeaders.Set("User-Agent", c.s.userAgent())
133006	var body io.Reader = nil
133007	c.urlParams_.Set("alt", alt)
133008	c.urlParams_.Set("prettyPrint", "false")
133009	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
133010	urls += "?" + c.urlParams_.Encode()
133011	req, err := http.NewRequest("DELETE", urls, body)
133012	if err != nil {
133013		return nil, err
133014	}
133015	req.Header = reqHeaders
133016	googleapi.Expand(req.URL, map[string]string{
133017		"project":              c.project,
133018		"region":               c.region,
133019		"instanceGroupManager": c.instanceGroupManager,
133020	})
133021	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133022}
133023
133024// Do executes the "compute.regionInstanceGroupManagers.delete" call.
133025// Exactly one of *Operation or error will be non-nil. Any non-2xx
133026// status code is an error. Response headers are in either
133027// *Operation.ServerResponse.Header or (if a response was returned at
133028// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133029// to check whether the returned error was because
133030// http.StatusNotModified was returned.
133031func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133032	gensupport.SetOptions(c.urlParams_, opts...)
133033	res, err := c.doRequest("json")
133034	if res != nil && res.StatusCode == http.StatusNotModified {
133035		if res.Body != nil {
133036			res.Body.Close()
133037		}
133038		return nil, &googleapi.Error{
133039			Code:   res.StatusCode,
133040			Header: res.Header,
133041		}
133042	}
133043	if err != nil {
133044		return nil, err
133045	}
133046	defer googleapi.CloseBody(res)
133047	if err := googleapi.CheckResponse(res); err != nil {
133048		return nil, err
133049	}
133050	ret := &Operation{
133051		ServerResponse: googleapi.ServerResponse{
133052			Header:         res.Header,
133053			HTTPStatusCode: res.StatusCode,
133054		},
133055	}
133056	target := &ret
133057	if err := gensupport.DecodeResponse(target, res); err != nil {
133058		return nil, err
133059	}
133060	return ret, nil
133061	// {
133062	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
133063	//   "httpMethod": "DELETE",
133064	//   "id": "compute.regionInstanceGroupManagers.delete",
133065	//   "parameterOrder": [
133066	//     "project",
133067	//     "region",
133068	//     "instanceGroupManager"
133069	//   ],
133070	//   "parameters": {
133071	//     "instanceGroupManager": {
133072	//       "description": "Name of the managed instance group to delete.",
133073	//       "location": "path",
133074	//       "required": true,
133075	//       "type": "string"
133076	//     },
133077	//     "project": {
133078	//       "description": "Project ID for this request.",
133079	//       "location": "path",
133080	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133081	//       "required": true,
133082	//       "type": "string"
133083	//     },
133084	//     "region": {
133085	//       "description": "Name of the region scoping this request.",
133086	//       "location": "path",
133087	//       "required": true,
133088	//       "type": "string"
133089	//     },
133090	//     "requestId": {
133091	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133092	//       "location": "query",
133093	//       "type": "string"
133094	//     }
133095	//   },
133096	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
133097	//   "response": {
133098	//     "$ref": "Operation"
133099	//   },
133100	//   "scopes": [
133101	//     "https://www.googleapis.com/auth/cloud-platform",
133102	//     "https://www.googleapis.com/auth/compute"
133103	//   ]
133104	// }
133105
133106}
133107
133108// method id "compute.regionInstanceGroupManagers.deleteInstances":
133109
133110type RegionInstanceGroupManagersDeleteInstancesCall struct {
133111	s                                                 *Service
133112	project                                           string
133113	region                                            string
133114	instanceGroupManager                              string
133115	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
133116	urlParams_                                        gensupport.URLParams
133117	ctx_                                              context.Context
133118	header_                                           http.Header
133119}
133120
133121// DeleteInstances: Flags the specified instances in the managed
133122// instance group to be immediately deleted. The instances are also
133123// removed from any target pools of which they were a member. This
133124// method reduces the targetSize of the managed instance group by the
133125// number of instances that you delete. The deleteInstances operation is
133126// marked DONE if the deleteInstances request is successful. The
133127// underlying actions take additional time. You must separately verify
133128// the status of the deleting action with the listmanagedinstances
133129// method.
133130//
133131// If the group is part of a backend service that has enabled connection
133132// draining, it can take up to 60 seconds after the connection draining
133133// duration has elapsed before the VM instance is removed or
133134// deleted.
133135//
133136// You can specify a maximum of 1000 instances with this method per
133137// request.
133138func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
133139	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133140	c.project = project
133141	c.region = region
133142	c.instanceGroupManager = instanceGroupManager
133143	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
133144	return c
133145}
133146
133147// RequestId sets the optional parameter "requestId": An optional
133148// request ID to identify requests. Specify a unique request ID so that
133149// if you must retry your request, the server will know to ignore the
133150// request if it has already been completed.
133151//
133152// For example, consider a situation where you make an initial request
133153// and the request times out. If you make the request again with the
133154// same request ID, the server can check if original operation with the
133155// same request ID was received, and if so, will ignore the second
133156// request. This prevents clients from accidentally creating duplicate
133157// commitments.
133158//
133159// The request ID must be a valid UUID with the exception that zero UUID
133160// is not supported (00000000-0000-0000-0000-000000000000).
133161func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
133162	c.urlParams_.Set("requestId", requestId)
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 *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
133170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133171	return c
133172}
133173
133174// Context sets the context to be used in this call's Do method. Any
133175// pending HTTP request will be aborted if the provided context is
133176// canceled.
133177func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
133178	c.ctx_ = ctx
133179	return c
133180}
133181
133182// Header returns an http.Header that can be modified by the caller to
133183// add HTTP headers to the request.
133184func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
133185	if c.header_ == nil {
133186		c.header_ = make(http.Header)
133187	}
133188	return c.header_
133189}
133190
133191func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
133192	reqHeaders := make(http.Header)
133193	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
133194	for k, v := range c.header_ {
133195		reqHeaders[k] = v
133196	}
133197	reqHeaders.Set("User-Agent", c.s.userAgent())
133198	var body io.Reader = nil
133199	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
133200	if err != nil {
133201		return nil, err
133202	}
133203	reqHeaders.Set("Content-Type", "application/json")
133204	c.urlParams_.Set("alt", alt)
133205	c.urlParams_.Set("prettyPrint", "false")
133206	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
133207	urls += "?" + c.urlParams_.Encode()
133208	req, err := http.NewRequest("POST", urls, body)
133209	if err != nil {
133210		return nil, err
133211	}
133212	req.Header = reqHeaders
133213	googleapi.Expand(req.URL, map[string]string{
133214		"project":              c.project,
133215		"region":               c.region,
133216		"instanceGroupManager": c.instanceGroupManager,
133217	})
133218	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133219}
133220
133221// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
133222// Exactly one of *Operation or error will be non-nil. Any non-2xx
133223// status code is an error. Response headers are in either
133224// *Operation.ServerResponse.Header or (if a response was returned at
133225// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133226// to check whether the returned error was because
133227// http.StatusNotModified was returned.
133228func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133229	gensupport.SetOptions(c.urlParams_, opts...)
133230	res, err := c.doRequest("json")
133231	if res != nil && res.StatusCode == http.StatusNotModified {
133232		if res.Body != nil {
133233			res.Body.Close()
133234		}
133235		return nil, &googleapi.Error{
133236			Code:   res.StatusCode,
133237			Header: res.Header,
133238		}
133239	}
133240	if err != nil {
133241		return nil, err
133242	}
133243	defer googleapi.CloseBody(res)
133244	if err := googleapi.CheckResponse(res); err != nil {
133245		return nil, err
133246	}
133247	ret := &Operation{
133248		ServerResponse: googleapi.ServerResponse{
133249			Header:         res.Header,
133250			HTTPStatusCode: res.StatusCode,
133251		},
133252	}
133253	target := &ret
133254	if err := gensupport.DecodeResponse(target, res); err != nil {
133255		return nil, err
133256	}
133257	return ret, nil
133258	// {
133259	//   "description": "Flags the specified instances in the managed instance group to be immediately deleted. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. The deleteInstances operation is marked DONE if the deleteInstances request is successful. The underlying actions take additional time. You must separately verify the status of the deleting action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
133260	//   "httpMethod": "POST",
133261	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
133262	//   "parameterOrder": [
133263	//     "project",
133264	//     "region",
133265	//     "instanceGroupManager"
133266	//   ],
133267	//   "parameters": {
133268	//     "instanceGroupManager": {
133269	//       "description": "Name of the managed instance group.",
133270	//       "location": "path",
133271	//       "required": true,
133272	//       "type": "string"
133273	//     },
133274	//     "project": {
133275	//       "description": "Project ID for this request.",
133276	//       "location": "path",
133277	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133278	//       "required": true,
133279	//       "type": "string"
133280	//     },
133281	//     "region": {
133282	//       "description": "Name of the region scoping this request.",
133283	//       "location": "path",
133284	//       "required": true,
133285	//       "type": "string"
133286	//     },
133287	//     "requestId": {
133288	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133289	//       "location": "query",
133290	//       "type": "string"
133291	//     }
133292	//   },
133293	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
133294	//   "request": {
133295	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
133296	//   },
133297	//   "response": {
133298	//     "$ref": "Operation"
133299	//   },
133300	//   "scopes": [
133301	//     "https://www.googleapis.com/auth/cloud-platform",
133302	//     "https://www.googleapis.com/auth/compute"
133303	//   ]
133304	// }
133305
133306}
133307
133308// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
133309
133310type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
133311	s                                                 *Service
133312	project                                           string
133313	region                                            string
133314	instanceGroupManager                              string
133315	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
133316	urlParams_                                        gensupport.URLParams
133317	ctx_                                              context.Context
133318	header_                                           http.Header
133319}
133320
133321// DeletePerInstanceConfigs: Deletes selected per-instance configs for
133322// the managed instance group.
133323func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
133324	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133325	c.project = project
133326	c.region = region
133327	c.instanceGroupManager = instanceGroupManager
133328	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
133329	return c
133330}
133331
133332// Fields allows partial responses to be retrieved. See
133333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133334// for more information.
133335func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
133336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133337	return c
133338}
133339
133340// Context sets the context to be used in this call's Do method. Any
133341// pending HTTP request will be aborted if the provided context is
133342// canceled.
133343func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
133344	c.ctx_ = ctx
133345	return c
133346}
133347
133348// Header returns an http.Header that can be modified by the caller to
133349// add HTTP headers to the request.
133350func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
133351	if c.header_ == nil {
133352		c.header_ = make(http.Header)
133353	}
133354	return c.header_
133355}
133356
133357func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
133358	reqHeaders := make(http.Header)
133359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
133360	for k, v := range c.header_ {
133361		reqHeaders[k] = v
133362	}
133363	reqHeaders.Set("User-Agent", c.s.userAgent())
133364	var body io.Reader = nil
133365	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
133366	if err != nil {
133367		return nil, err
133368	}
133369	reqHeaders.Set("Content-Type", "application/json")
133370	c.urlParams_.Set("alt", alt)
133371	c.urlParams_.Set("prettyPrint", "false")
133372	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
133373	urls += "?" + c.urlParams_.Encode()
133374	req, err := http.NewRequest("POST", urls, body)
133375	if err != nil {
133376		return nil, err
133377	}
133378	req.Header = reqHeaders
133379	googleapi.Expand(req.URL, map[string]string{
133380		"project":              c.project,
133381		"region":               c.region,
133382		"instanceGroupManager": c.instanceGroupManager,
133383	})
133384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133385}
133386
133387// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
133388// Exactly one of *Operation or error will be non-nil. Any non-2xx
133389// status code is an error. Response headers are in either
133390// *Operation.ServerResponse.Header or (if a response was returned at
133391// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133392// to check whether the returned error was because
133393// http.StatusNotModified was returned.
133394func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133395	gensupport.SetOptions(c.urlParams_, opts...)
133396	res, err := c.doRequest("json")
133397	if res != nil && res.StatusCode == http.StatusNotModified {
133398		if res.Body != nil {
133399			res.Body.Close()
133400		}
133401		return nil, &googleapi.Error{
133402			Code:   res.StatusCode,
133403			Header: res.Header,
133404		}
133405	}
133406	if err != nil {
133407		return nil, err
133408	}
133409	defer googleapi.CloseBody(res)
133410	if err := googleapi.CheckResponse(res); err != nil {
133411		return nil, err
133412	}
133413	ret := &Operation{
133414		ServerResponse: googleapi.ServerResponse{
133415			Header:         res.Header,
133416			HTTPStatusCode: res.StatusCode,
133417		},
133418	}
133419	target := &ret
133420	if err := gensupport.DecodeResponse(target, res); err != nil {
133421		return nil, err
133422	}
133423	return ret, nil
133424	// {
133425	//   "description": "Deletes selected per-instance configs for the managed instance group.",
133426	//   "httpMethod": "POST",
133427	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
133428	//   "parameterOrder": [
133429	//     "project",
133430	//     "region",
133431	//     "instanceGroupManager"
133432	//   ],
133433	//   "parameters": {
133434	//     "instanceGroupManager": {
133435	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
133436	//       "location": "path",
133437	//       "required": true,
133438	//       "type": "string"
133439	//     },
133440	//     "project": {
133441	//       "description": "Project ID for this request.",
133442	//       "location": "path",
133443	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133444	//       "required": true,
133445	//       "type": "string"
133446	//     },
133447	//     "region": {
133448	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
133449	//       "location": "path",
133450	//       "required": true,
133451	//       "type": "string"
133452	//     }
133453	//   },
133454	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
133455	//   "request": {
133456	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
133457	//   },
133458	//   "response": {
133459	//     "$ref": "Operation"
133460	//   },
133461	//   "scopes": [
133462	//     "https://www.googleapis.com/auth/cloud-platform",
133463	//     "https://www.googleapis.com/auth/compute"
133464	//   ]
133465	// }
133466
133467}
133468
133469// method id "compute.regionInstanceGroupManagers.get":
133470
133471type RegionInstanceGroupManagersGetCall struct {
133472	s                    *Service
133473	project              string
133474	region               string
133475	instanceGroupManager string
133476	urlParams_           gensupport.URLParams
133477	ifNoneMatch_         string
133478	ctx_                 context.Context
133479	header_              http.Header
133480}
133481
133482// Get: Returns all of the details about the specified managed instance
133483// group.
133484func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
133485	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133486	c.project = project
133487	c.region = region
133488	c.instanceGroupManager = instanceGroupManager
133489	return c
133490}
133491
133492// Fields allows partial responses to be retrieved. See
133493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133494// for more information.
133495func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
133496	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133497	return c
133498}
133499
133500// IfNoneMatch sets the optional parameter which makes the operation
133501// fail if the object's ETag matches the given value. This is useful for
133502// getting updates only after the object has changed since the last
133503// request. Use googleapi.IsNotModified to check whether the response
133504// error from Do is the result of In-None-Match.
133505func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
133506	c.ifNoneMatch_ = entityTag
133507	return c
133508}
133509
133510// Context sets the context to be used in this call's Do method. Any
133511// pending HTTP request will be aborted if the provided context is
133512// canceled.
133513func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
133514	c.ctx_ = ctx
133515	return c
133516}
133517
133518// Header returns an http.Header that can be modified by the caller to
133519// add HTTP headers to the request.
133520func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
133521	if c.header_ == nil {
133522		c.header_ = make(http.Header)
133523	}
133524	return c.header_
133525}
133526
133527func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
133528	reqHeaders := make(http.Header)
133529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
133530	for k, v := range c.header_ {
133531		reqHeaders[k] = v
133532	}
133533	reqHeaders.Set("User-Agent", c.s.userAgent())
133534	if c.ifNoneMatch_ != "" {
133535		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133536	}
133537	var body io.Reader = nil
133538	c.urlParams_.Set("alt", alt)
133539	c.urlParams_.Set("prettyPrint", "false")
133540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
133541	urls += "?" + c.urlParams_.Encode()
133542	req, err := http.NewRequest("GET", urls, body)
133543	if err != nil {
133544		return nil, err
133545	}
133546	req.Header = reqHeaders
133547	googleapi.Expand(req.URL, map[string]string{
133548		"project":              c.project,
133549		"region":               c.region,
133550		"instanceGroupManager": c.instanceGroupManager,
133551	})
133552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133553}
133554
133555// Do executes the "compute.regionInstanceGroupManagers.get" call.
133556// Exactly one of *InstanceGroupManager or error will be non-nil. Any
133557// non-2xx status code is an error. Response headers are in either
133558// *InstanceGroupManager.ServerResponse.Header or (if a response was
133559// returned at all) in error.(*googleapi.Error).Header. Use
133560// googleapi.IsNotModified to check whether the returned error was
133561// because http.StatusNotModified was returned.
133562func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
133563	gensupport.SetOptions(c.urlParams_, opts...)
133564	res, err := c.doRequest("json")
133565	if res != nil && res.StatusCode == http.StatusNotModified {
133566		if res.Body != nil {
133567			res.Body.Close()
133568		}
133569		return nil, &googleapi.Error{
133570			Code:   res.StatusCode,
133571			Header: res.Header,
133572		}
133573	}
133574	if err != nil {
133575		return nil, err
133576	}
133577	defer googleapi.CloseBody(res)
133578	if err := googleapi.CheckResponse(res); err != nil {
133579		return nil, err
133580	}
133581	ret := &InstanceGroupManager{
133582		ServerResponse: googleapi.ServerResponse{
133583			Header:         res.Header,
133584			HTTPStatusCode: res.StatusCode,
133585		},
133586	}
133587	target := &ret
133588	if err := gensupport.DecodeResponse(target, res); err != nil {
133589		return nil, err
133590	}
133591	return ret, nil
133592	// {
133593	//   "description": "Returns all of the details about the specified managed instance group.",
133594	//   "httpMethod": "GET",
133595	//   "id": "compute.regionInstanceGroupManagers.get",
133596	//   "parameterOrder": [
133597	//     "project",
133598	//     "region",
133599	//     "instanceGroupManager"
133600	//   ],
133601	//   "parameters": {
133602	//     "instanceGroupManager": {
133603	//       "description": "Name of the managed instance group to return.",
133604	//       "location": "path",
133605	//       "required": true,
133606	//       "type": "string"
133607	//     },
133608	//     "project": {
133609	//       "description": "Project ID for this request.",
133610	//       "location": "path",
133611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133612	//       "required": true,
133613	//       "type": "string"
133614	//     },
133615	//     "region": {
133616	//       "description": "Name of the region scoping this request.",
133617	//       "location": "path",
133618	//       "required": true,
133619	//       "type": "string"
133620	//     }
133621	//   },
133622	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
133623	//   "response": {
133624	//     "$ref": "InstanceGroupManager"
133625	//   },
133626	//   "scopes": [
133627	//     "https://www.googleapis.com/auth/cloud-platform",
133628	//     "https://www.googleapis.com/auth/compute",
133629	//     "https://www.googleapis.com/auth/compute.readonly"
133630	//   ]
133631	// }
133632
133633}
133634
133635// method id "compute.regionInstanceGroupManagers.insert":
133636
133637type RegionInstanceGroupManagersInsertCall struct {
133638	s                    *Service
133639	project              string
133640	region               string
133641	instancegroupmanager *InstanceGroupManager
133642	urlParams_           gensupport.URLParams
133643	ctx_                 context.Context
133644	header_              http.Header
133645}
133646
133647// Insert: Creates a managed instance group using the information that
133648// you specify in the request. After the group is created, instances in
133649// the group are created using the specified instance template. This
133650// operation is marked as DONE when the group is created even if the
133651// instances in the group have not yet been created. You must separately
133652// verify the status of the individual instances with the
133653// listmanagedinstances method.
133654//
133655// A regional managed instance group can contain up to 2000 instances.
133656func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
133657	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133658	c.project = project
133659	c.region = region
133660	c.instancegroupmanager = instancegroupmanager
133661	return c
133662}
133663
133664// RequestId sets the optional parameter "requestId": An optional
133665// request ID to identify requests. Specify a unique request ID so that
133666// if you must retry your request, the server will know to ignore the
133667// request if it has already been completed.
133668//
133669// For example, consider a situation where you make an initial request
133670// and the request times out. If you make the request again with the
133671// same request ID, the server can check if original operation with the
133672// same request ID was received, and if so, will ignore the second
133673// request. This prevents clients from accidentally creating duplicate
133674// commitments.
133675//
133676// The request ID must be a valid UUID with the exception that zero UUID
133677// is not supported (00000000-0000-0000-0000-000000000000).
133678func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
133679	c.urlParams_.Set("requestId", requestId)
133680	return c
133681}
133682
133683// Fields allows partial responses to be retrieved. See
133684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133685// for more information.
133686func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
133687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133688	return c
133689}
133690
133691// Context sets the context to be used in this call's Do method. Any
133692// pending HTTP request will be aborted if the provided context is
133693// canceled.
133694func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
133695	c.ctx_ = ctx
133696	return c
133697}
133698
133699// Header returns an http.Header that can be modified by the caller to
133700// add HTTP headers to the request.
133701func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
133702	if c.header_ == nil {
133703		c.header_ = make(http.Header)
133704	}
133705	return c.header_
133706}
133707
133708func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
133709	reqHeaders := make(http.Header)
133710	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
133711	for k, v := range c.header_ {
133712		reqHeaders[k] = v
133713	}
133714	reqHeaders.Set("User-Agent", c.s.userAgent())
133715	var body io.Reader = nil
133716	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
133717	if err != nil {
133718		return nil, err
133719	}
133720	reqHeaders.Set("Content-Type", "application/json")
133721	c.urlParams_.Set("alt", alt)
133722	c.urlParams_.Set("prettyPrint", "false")
133723	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
133724	urls += "?" + c.urlParams_.Encode()
133725	req, err := http.NewRequest("POST", urls, body)
133726	if err != nil {
133727		return nil, err
133728	}
133729	req.Header = reqHeaders
133730	googleapi.Expand(req.URL, map[string]string{
133731		"project": c.project,
133732		"region":  c.region,
133733	})
133734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133735}
133736
133737// Do executes the "compute.regionInstanceGroupManagers.insert" call.
133738// Exactly one of *Operation or error will be non-nil. Any non-2xx
133739// status code is an error. Response headers are in either
133740// *Operation.ServerResponse.Header or (if a response was returned at
133741// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133742// to check whether the returned error was because
133743// http.StatusNotModified was returned.
133744func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133745	gensupport.SetOptions(c.urlParams_, opts...)
133746	res, err := c.doRequest("json")
133747	if res != nil && res.StatusCode == http.StatusNotModified {
133748		if res.Body != nil {
133749			res.Body.Close()
133750		}
133751		return nil, &googleapi.Error{
133752			Code:   res.StatusCode,
133753			Header: res.Header,
133754		}
133755	}
133756	if err != nil {
133757		return nil, err
133758	}
133759	defer googleapi.CloseBody(res)
133760	if err := googleapi.CheckResponse(res); err != nil {
133761		return nil, err
133762	}
133763	ret := &Operation{
133764		ServerResponse: googleapi.ServerResponse{
133765			Header:         res.Header,
133766			HTTPStatusCode: res.StatusCode,
133767		},
133768	}
133769	target := &ret
133770	if err := gensupport.DecodeResponse(target, res); err != nil {
133771		return nil, err
133772	}
133773	return ret, nil
133774	// {
133775	//   "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.\n\nA regional managed instance group can contain up to 2000 instances.",
133776	//   "httpMethod": "POST",
133777	//   "id": "compute.regionInstanceGroupManagers.insert",
133778	//   "parameterOrder": [
133779	//     "project",
133780	//     "region"
133781	//   ],
133782	//   "parameters": {
133783	//     "project": {
133784	//       "description": "Project ID for this request.",
133785	//       "location": "path",
133786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133787	//       "required": true,
133788	//       "type": "string"
133789	//     },
133790	//     "region": {
133791	//       "description": "Name of the region scoping this request.",
133792	//       "location": "path",
133793	//       "required": true,
133794	//       "type": "string"
133795	//     },
133796	//     "requestId": {
133797	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133798	//       "location": "query",
133799	//       "type": "string"
133800	//     }
133801	//   },
133802	//   "path": "{project}/regions/{region}/instanceGroupManagers",
133803	//   "request": {
133804	//     "$ref": "InstanceGroupManager"
133805	//   },
133806	//   "response": {
133807	//     "$ref": "Operation"
133808	//   },
133809	//   "scopes": [
133810	//     "https://www.googleapis.com/auth/cloud-platform",
133811	//     "https://www.googleapis.com/auth/compute"
133812	//   ]
133813	// }
133814
133815}
133816
133817// method id "compute.regionInstanceGroupManagers.list":
133818
133819type RegionInstanceGroupManagersListCall struct {
133820	s            *Service
133821	project      string
133822	region       string
133823	urlParams_   gensupport.URLParams
133824	ifNoneMatch_ string
133825	ctx_         context.Context
133826	header_      http.Header
133827}
133828
133829// List: Retrieves the list of managed instance groups that are
133830// contained within the specified region.
133831func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
133832	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133833	c.project = project
133834	c.region = region
133835	return c
133836}
133837
133838// Filter sets the optional parameter "filter": A filter expression that
133839// filters resources listed in the response. The expression must specify
133840// the field name, a comparison operator, and the value that you want to
133841// use for filtering. The value must be a string, a number, or a
133842// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133843// `<`.
133844//
133845// For example, if you are filtering Compute Engine instances, you can
133846// exclude instances named `example-instance` by specifying `name !=
133847// example-instance`.
133848//
133849// You can also filter nested fields. For example, you could specify
133850// `scheduling.automaticRestart = false` to include instances only if
133851// they are not scheduled for automatic restarts. You can use filtering
133852// on nested fields to filter based on resource labels.
133853//
133854// To filter on multiple expressions, provide each separate expression
133855// within parentheses. For example: ``` (scheduling.automaticRestart =
133856// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
133857// is an `AND` expression. However, you can include `AND` and `OR`
133858// expressions explicitly. For example: ``` (cpuPlatform = "Intel
133859// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
133860// (scheduling.automaticRestart = true) ```
133861func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
133862	c.urlParams_.Set("filter", filter)
133863	return c
133864}
133865
133866// MaxResults sets the optional parameter "maxResults": The maximum
133867// number of results per page that should be returned. If the number of
133868// available results is larger than `maxResults`, Compute Engine returns
133869// a `nextPageToken` that can be used to get the next page of results in
133870// subsequent list requests. Acceptable values are `0` to `500`,
133871// inclusive. (Default: `500`)
133872func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
133873	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133874	return c
133875}
133876
133877// OrderBy sets the optional parameter "orderBy": Sorts list results by
133878// a certain order. By default, results are returned in alphanumerical
133879// order based on the resource name.
133880//
133881// You can also sort results in descending order based on the creation
133882// timestamp using `orderBy="creationTimestamp desc". This sorts
133883// results based on the `creationTimestamp` field in reverse
133884// chronological order (newest result first). Use this to sort resources
133885// like operations so that the newest operation is returned
133886// first.
133887//
133888// Currently, only sorting by `name` or `creationTimestamp desc` is
133889// supported.
133890func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
133891	c.urlParams_.Set("orderBy", orderBy)
133892	return c
133893}
133894
133895// PageToken sets the optional parameter "pageToken": Specifies a page
133896// token to use. Set `pageToken` to the `nextPageToken` returned by a
133897// previous list request to get the next page of results.
133898func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
133899	c.urlParams_.Set("pageToken", pageToken)
133900	return c
133901}
133902
133903// ReturnPartialSuccess sets the optional parameter
133904// "returnPartialSuccess": Opt-in for partial success behavior which
133905// provides partial results in case of failure. The default value is
133906// false and the logic is the same as today.
133907func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall {
133908	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
133909	return c
133910}
133911
133912// Fields allows partial responses to be retrieved. See
133913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133914// for more information.
133915func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
133916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133917	return c
133918}
133919
133920// IfNoneMatch sets the optional parameter which makes the operation
133921// fail if the object's ETag matches the given value. This is useful for
133922// getting updates only after the object has changed since the last
133923// request. Use googleapi.IsNotModified to check whether the response
133924// error from Do is the result of In-None-Match.
133925func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
133926	c.ifNoneMatch_ = entityTag
133927	return c
133928}
133929
133930// Context sets the context to be used in this call's Do method. Any
133931// pending HTTP request will be aborted if the provided context is
133932// canceled.
133933func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
133934	c.ctx_ = ctx
133935	return c
133936}
133937
133938// Header returns an http.Header that can be modified by the caller to
133939// add HTTP headers to the request.
133940func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
133941	if c.header_ == nil {
133942		c.header_ = make(http.Header)
133943	}
133944	return c.header_
133945}
133946
133947func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
133948	reqHeaders := make(http.Header)
133949	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
133950	for k, v := range c.header_ {
133951		reqHeaders[k] = v
133952	}
133953	reqHeaders.Set("User-Agent", c.s.userAgent())
133954	if c.ifNoneMatch_ != "" {
133955		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133956	}
133957	var body io.Reader = nil
133958	c.urlParams_.Set("alt", alt)
133959	c.urlParams_.Set("prettyPrint", "false")
133960	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
133961	urls += "?" + c.urlParams_.Encode()
133962	req, err := http.NewRequest("GET", urls, body)
133963	if err != nil {
133964		return nil, err
133965	}
133966	req.Header = reqHeaders
133967	googleapi.Expand(req.URL, map[string]string{
133968		"project": c.project,
133969		"region":  c.region,
133970	})
133971	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133972}
133973
133974// Do executes the "compute.regionInstanceGroupManagers.list" call.
133975// Exactly one of *RegionInstanceGroupManagerList or error will be
133976// non-nil. Any non-2xx status code is an error. Response headers are in
133977// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
133978// response was returned at all) in error.(*googleapi.Error).Header. Use
133979// googleapi.IsNotModified to check whether the returned error was
133980// because http.StatusNotModified was returned.
133981func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
133982	gensupport.SetOptions(c.urlParams_, opts...)
133983	res, err := c.doRequest("json")
133984	if res != nil && res.StatusCode == http.StatusNotModified {
133985		if res.Body != nil {
133986			res.Body.Close()
133987		}
133988		return nil, &googleapi.Error{
133989			Code:   res.StatusCode,
133990			Header: res.Header,
133991		}
133992	}
133993	if err != nil {
133994		return nil, err
133995	}
133996	defer googleapi.CloseBody(res)
133997	if err := googleapi.CheckResponse(res); err != nil {
133998		return nil, err
133999	}
134000	ret := &RegionInstanceGroupManagerList{
134001		ServerResponse: googleapi.ServerResponse{
134002			Header:         res.Header,
134003			HTTPStatusCode: res.StatusCode,
134004		},
134005	}
134006	target := &ret
134007	if err := gensupport.DecodeResponse(target, res); err != nil {
134008		return nil, err
134009	}
134010	return ret, nil
134011	// {
134012	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
134013	//   "httpMethod": "GET",
134014	//   "id": "compute.regionInstanceGroupManagers.list",
134015	//   "parameterOrder": [
134016	//     "project",
134017	//     "region"
134018	//   ],
134019	//   "parameters": {
134020	//     "filter": {
134021	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134022	//       "location": "query",
134023	//       "type": "string"
134024	//     },
134025	//     "maxResults": {
134026	//       "default": "500",
134027	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134028	//       "format": "uint32",
134029	//       "location": "query",
134030	//       "minimum": "0",
134031	//       "type": "integer"
134032	//     },
134033	//     "orderBy": {
134034	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134035	//       "location": "query",
134036	//       "type": "string"
134037	//     },
134038	//     "pageToken": {
134039	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134040	//       "location": "query",
134041	//       "type": "string"
134042	//     },
134043	//     "project": {
134044	//       "description": "Project ID for this request.",
134045	//       "location": "path",
134046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134047	//       "required": true,
134048	//       "type": "string"
134049	//     },
134050	//     "region": {
134051	//       "description": "Name of the region scoping this request.",
134052	//       "location": "path",
134053	//       "required": true,
134054	//       "type": "string"
134055	//     },
134056	//     "returnPartialSuccess": {
134057	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
134058	//       "location": "query",
134059	//       "type": "boolean"
134060	//     }
134061	//   },
134062	//   "path": "{project}/regions/{region}/instanceGroupManagers",
134063	//   "response": {
134064	//     "$ref": "RegionInstanceGroupManagerList"
134065	//   },
134066	//   "scopes": [
134067	//     "https://www.googleapis.com/auth/cloud-platform",
134068	//     "https://www.googleapis.com/auth/compute",
134069	//     "https://www.googleapis.com/auth/compute.readonly"
134070	//   ]
134071	// }
134072
134073}
134074
134075// Pages invokes f for each page of results.
134076// A non-nil error returned from f will halt the iteration.
134077// The provided context supersedes any context provided to the Context method.
134078func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
134079	c.ctx_ = ctx
134080	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134081	for {
134082		x, err := c.Do()
134083		if err != nil {
134084			return err
134085		}
134086		if err := f(x); err != nil {
134087			return err
134088		}
134089		if x.NextPageToken == "" {
134090			return nil
134091		}
134092		c.PageToken(x.NextPageToken)
134093	}
134094}
134095
134096// method id "compute.regionInstanceGroupManagers.listErrors":
134097
134098type RegionInstanceGroupManagersListErrorsCall struct {
134099	s                    *Service
134100	project              string
134101	region               string
134102	instanceGroupManager string
134103	urlParams_           gensupport.URLParams
134104	ifNoneMatch_         string
134105	ctx_                 context.Context
134106	header_              http.Header
134107}
134108
134109// ListErrors: Lists all errors thrown by actions on instances for a
134110// given regional managed instance group.
134111func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
134112	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134113	c.project = project
134114	c.region = region
134115	c.instanceGroupManager = instanceGroupManager
134116	return c
134117}
134118
134119// Filter sets the optional parameter "filter": A filter expression that
134120// filters resources listed in the response. The expression must specify
134121// the field name, a comparison operator, and the value that you want to
134122// use for filtering. The value must be a string, a number, or a
134123// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134124// `<`.
134125//
134126// For example, if you are filtering Compute Engine instances, you can
134127// exclude instances named `example-instance` by specifying `name !=
134128// example-instance`.
134129//
134130// You can also filter nested fields. For example, you could specify
134131// `scheduling.automaticRestart = false` to include instances only if
134132// they are not scheduled for automatic restarts. You can use filtering
134133// on nested fields to filter based on resource labels.
134134//
134135// To filter on multiple expressions, provide each separate expression
134136// within parentheses. For example: ``` (scheduling.automaticRestart =
134137// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134138// is an `AND` expression. However, you can include `AND` and `OR`
134139// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134140// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134141// (scheduling.automaticRestart = true) ```
134142func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
134143	c.urlParams_.Set("filter", filter)
134144	return c
134145}
134146
134147// MaxResults sets the optional parameter "maxResults": The maximum
134148// number of results per page that should be returned. If the number of
134149// available results is larger than `maxResults`, Compute Engine returns
134150// a `nextPageToken` that can be used to get the next page of results in
134151// subsequent list requests. Acceptable values are `0` to `500`,
134152// inclusive. (Default: `500`)
134153func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
134154	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134155	return c
134156}
134157
134158// OrderBy sets the optional parameter "orderBy": Sorts list results by
134159// a certain order. By default, results are returned in alphanumerical
134160// order based on the resource name.
134161//
134162// You can also sort results in descending order based on the creation
134163// timestamp using `orderBy="creationTimestamp desc". This sorts
134164// results based on the `creationTimestamp` field in reverse
134165// chronological order (newest result first). Use this to sort resources
134166// like operations so that the newest operation is returned
134167// first.
134168//
134169// Currently, only sorting by `name` or `creationTimestamp desc` is
134170// supported.
134171func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
134172	c.urlParams_.Set("orderBy", orderBy)
134173	return c
134174}
134175
134176// PageToken sets the optional parameter "pageToken": Specifies a page
134177// token to use. Set `pageToken` to the `nextPageToken` returned by a
134178// previous list request to get the next page of results.
134179func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
134180	c.urlParams_.Set("pageToken", pageToken)
134181	return c
134182}
134183
134184// ReturnPartialSuccess sets the optional parameter
134185// "returnPartialSuccess": Opt-in for partial success behavior which
134186// provides partial results in case of failure. The default value is
134187// false and the logic is the same as today.
134188func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall {
134189	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134190	return c
134191}
134192
134193// Fields allows partial responses to be retrieved. See
134194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134195// for more information.
134196func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
134197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134198	return c
134199}
134200
134201// IfNoneMatch sets the optional parameter which makes the operation
134202// fail if the object's ETag matches the given value. This is useful for
134203// getting updates only after the object has changed since the last
134204// request. Use googleapi.IsNotModified to check whether the response
134205// error from Do is the result of In-None-Match.
134206func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
134207	c.ifNoneMatch_ = entityTag
134208	return c
134209}
134210
134211// Context sets the context to be used in this call's Do method. Any
134212// pending HTTP request will be aborted if the provided context is
134213// canceled.
134214func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
134215	c.ctx_ = ctx
134216	return c
134217}
134218
134219// Header returns an http.Header that can be modified by the caller to
134220// add HTTP headers to the request.
134221func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
134222	if c.header_ == nil {
134223		c.header_ = make(http.Header)
134224	}
134225	return c.header_
134226}
134227
134228func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
134229	reqHeaders := make(http.Header)
134230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
134231	for k, v := range c.header_ {
134232		reqHeaders[k] = v
134233	}
134234	reqHeaders.Set("User-Agent", c.s.userAgent())
134235	if c.ifNoneMatch_ != "" {
134236		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134237	}
134238	var body io.Reader = nil
134239	c.urlParams_.Set("alt", alt)
134240	c.urlParams_.Set("prettyPrint", "false")
134241	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
134242	urls += "?" + c.urlParams_.Encode()
134243	req, err := http.NewRequest("GET", urls, body)
134244	if err != nil {
134245		return nil, err
134246	}
134247	req.Header = reqHeaders
134248	googleapi.Expand(req.URL, map[string]string{
134249		"project":              c.project,
134250		"region":               c.region,
134251		"instanceGroupManager": c.instanceGroupManager,
134252	})
134253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134254}
134255
134256// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
134257// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
134258// error will be non-nil. Any non-2xx status code is an error. Response
134259// headers are in either
134260// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
134261// or (if a response was returned at all) in
134262// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
134263// whether the returned error was because http.StatusNotModified was
134264// returned.
134265func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
134266	gensupport.SetOptions(c.urlParams_, opts...)
134267	res, err := c.doRequest("json")
134268	if res != nil && res.StatusCode == http.StatusNotModified {
134269		if res.Body != nil {
134270			res.Body.Close()
134271		}
134272		return nil, &googleapi.Error{
134273			Code:   res.StatusCode,
134274			Header: res.Header,
134275		}
134276	}
134277	if err != nil {
134278		return nil, err
134279	}
134280	defer googleapi.CloseBody(res)
134281	if err := googleapi.CheckResponse(res); err != nil {
134282		return nil, err
134283	}
134284	ret := &RegionInstanceGroupManagersListErrorsResponse{
134285		ServerResponse: googleapi.ServerResponse{
134286			Header:         res.Header,
134287			HTTPStatusCode: res.StatusCode,
134288		},
134289	}
134290	target := &ret
134291	if err := gensupport.DecodeResponse(target, res); err != nil {
134292		return nil, err
134293	}
134294	return ret, nil
134295	// {
134296	//   "description": "Lists all errors thrown by actions on instances for a given regional managed instance group.",
134297	//   "httpMethod": "GET",
134298	//   "id": "compute.regionInstanceGroupManagers.listErrors",
134299	//   "parameterOrder": [
134300	//     "project",
134301	//     "region",
134302	//     "instanceGroupManager"
134303	//   ],
134304	//   "parameters": {
134305	//     "filter": {
134306	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134307	//       "location": "query",
134308	//       "type": "string"
134309	//     },
134310	//     "instanceGroupManager": {
134311	//       "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.",
134312	//       "location": "path",
134313	//       "required": true,
134314	//       "type": "string"
134315	//     },
134316	//     "maxResults": {
134317	//       "default": "500",
134318	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134319	//       "format": "uint32",
134320	//       "location": "query",
134321	//       "minimum": "0",
134322	//       "type": "integer"
134323	//     },
134324	//     "orderBy": {
134325	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134326	//       "location": "query",
134327	//       "type": "string"
134328	//     },
134329	//     "pageToken": {
134330	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134331	//       "location": "query",
134332	//       "type": "string"
134333	//     },
134334	//     "project": {
134335	//       "description": "Project ID for this request.",
134336	//       "location": "path",
134337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134338	//       "required": true,
134339	//       "type": "string"
134340	//     },
134341	//     "region": {
134342	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
134343	//       "location": "path",
134344	//       "required": true,
134345	//       "type": "string"
134346	//     },
134347	//     "returnPartialSuccess": {
134348	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
134349	//       "location": "query",
134350	//       "type": "boolean"
134351	//     }
134352	//   },
134353	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
134354	//   "response": {
134355	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
134356	//   },
134357	//   "scopes": [
134358	//     "https://www.googleapis.com/auth/cloud-platform",
134359	//     "https://www.googleapis.com/auth/compute",
134360	//     "https://www.googleapis.com/auth/compute.readonly"
134361	//   ]
134362	// }
134363
134364}
134365
134366// Pages invokes f for each page of results.
134367// A non-nil error returned from f will halt the iteration.
134368// The provided context supersedes any context provided to the Context method.
134369func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
134370	c.ctx_ = ctx
134371	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134372	for {
134373		x, err := c.Do()
134374		if err != nil {
134375			return err
134376		}
134377		if err := f(x); err != nil {
134378			return err
134379		}
134380		if x.NextPageToken == "" {
134381			return nil
134382		}
134383		c.PageToken(x.NextPageToken)
134384	}
134385}
134386
134387// method id "compute.regionInstanceGroupManagers.listManagedInstances":
134388
134389type RegionInstanceGroupManagersListManagedInstancesCall struct {
134390	s                    *Service
134391	project              string
134392	region               string
134393	instanceGroupManager string
134394	urlParams_           gensupport.URLParams
134395	ctx_                 context.Context
134396	header_              http.Header
134397}
134398
134399// ListManagedInstances: Lists the instances in the managed instance
134400// group and instances that are scheduled to be created. The list
134401// includes any current actions that the group has scheduled for its
134402// instances.
134403func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
134404	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134405	c.project = project
134406	c.region = region
134407	c.instanceGroupManager = instanceGroupManager
134408	return c
134409}
134410
134411// Filter sets the optional parameter "filter": A filter expression that
134412// filters resources listed in the response. The expression must specify
134413// the field name, a comparison operator, and the value that you want to
134414// use for filtering. The value must be a string, a number, or a
134415// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134416// `<`.
134417//
134418// For example, if you are filtering Compute Engine instances, you can
134419// exclude instances named `example-instance` by specifying `name !=
134420// example-instance`.
134421//
134422// You can also filter nested fields. For example, you could specify
134423// `scheduling.automaticRestart = false` to include instances only if
134424// they are not scheduled for automatic restarts. You can use filtering
134425// on nested fields to filter based on resource labels.
134426//
134427// To filter on multiple expressions, provide each separate expression
134428// within parentheses. For example: ``` (scheduling.automaticRestart =
134429// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134430// is an `AND` expression. However, you can include `AND` and `OR`
134431// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134432// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134433// (scheduling.automaticRestart = true) ```
134434func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
134435	c.urlParams_.Set("filter", filter)
134436	return c
134437}
134438
134439// MaxResults sets the optional parameter "maxResults": The maximum
134440// number of results per page that should be returned. If the number of
134441// available results is larger than `maxResults`, Compute Engine returns
134442// a `nextPageToken` that can be used to get the next page of results in
134443// subsequent list requests. Acceptable values are `0` to `500`,
134444// inclusive. (Default: `500`)
134445func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
134446	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134447	return c
134448}
134449
134450// OrderBy sets the optional parameter "orderBy": Sorts list results by
134451// a certain order. By default, results are returned in alphanumerical
134452// order based on the resource name.
134453//
134454// You can also sort results in descending order based on the creation
134455// timestamp using `orderBy="creationTimestamp desc". This sorts
134456// results based on the `creationTimestamp` field in reverse
134457// chronological order (newest result first). Use this to sort resources
134458// like operations so that the newest operation is returned
134459// first.
134460//
134461// Currently, only sorting by `name` or `creationTimestamp desc` is
134462// supported.
134463func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
134464	c.urlParams_.Set("orderBy", orderBy)
134465	return c
134466}
134467
134468// PageToken sets the optional parameter "pageToken": Specifies a page
134469// token to use. Set `pageToken` to the `nextPageToken` returned by a
134470// previous list request to get the next page of results.
134471func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
134472	c.urlParams_.Set("pageToken", pageToken)
134473	return c
134474}
134475
134476// Fields allows partial responses to be retrieved. See
134477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134478// for more information.
134479func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
134480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134481	return c
134482}
134483
134484// Context sets the context to be used in this call's Do method. Any
134485// pending HTTP request will be aborted if the provided context is
134486// canceled.
134487func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
134488	c.ctx_ = ctx
134489	return c
134490}
134491
134492// Header returns an http.Header that can be modified by the caller to
134493// add HTTP headers to the request.
134494func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
134495	if c.header_ == nil {
134496		c.header_ = make(http.Header)
134497	}
134498	return c.header_
134499}
134500
134501func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
134502	reqHeaders := make(http.Header)
134503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
134504	for k, v := range c.header_ {
134505		reqHeaders[k] = v
134506	}
134507	reqHeaders.Set("User-Agent", c.s.userAgent())
134508	var body io.Reader = nil
134509	c.urlParams_.Set("alt", alt)
134510	c.urlParams_.Set("prettyPrint", "false")
134511	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
134512	urls += "?" + c.urlParams_.Encode()
134513	req, err := http.NewRequest("POST", urls, body)
134514	if err != nil {
134515		return nil, err
134516	}
134517	req.Header = reqHeaders
134518	googleapi.Expand(req.URL, map[string]string{
134519		"project":              c.project,
134520		"region":               c.region,
134521		"instanceGroupManager": c.instanceGroupManager,
134522	})
134523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134524}
134525
134526// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
134527// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
134528// error will be non-nil. Any non-2xx status code is an error. Response
134529// headers are in either
134530// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
134531// r or (if a response was returned at all) in
134532// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
134533// whether the returned error was because http.StatusNotModified was
134534// returned.
134535func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
134536	gensupport.SetOptions(c.urlParams_, opts...)
134537	res, err := c.doRequest("json")
134538	if res != nil && res.StatusCode == http.StatusNotModified {
134539		if res.Body != nil {
134540			res.Body.Close()
134541		}
134542		return nil, &googleapi.Error{
134543			Code:   res.StatusCode,
134544			Header: res.Header,
134545		}
134546	}
134547	if err != nil {
134548		return nil, err
134549	}
134550	defer googleapi.CloseBody(res)
134551	if err := googleapi.CheckResponse(res); err != nil {
134552		return nil, err
134553	}
134554	ret := &RegionInstanceGroupManagersListInstancesResponse{
134555		ServerResponse: googleapi.ServerResponse{
134556			Header:         res.Header,
134557			HTTPStatusCode: res.StatusCode,
134558		},
134559	}
134560	target := &ret
134561	if err := gensupport.DecodeResponse(target, res); err != nil {
134562		return nil, err
134563	}
134564	return ret, nil
134565	// {
134566	//   "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.",
134567	//   "httpMethod": "POST",
134568	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
134569	//   "parameterOrder": [
134570	//     "project",
134571	//     "region",
134572	//     "instanceGroupManager"
134573	//   ],
134574	//   "parameters": {
134575	//     "filter": {
134576	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134577	//       "location": "query",
134578	//       "type": "string"
134579	//     },
134580	//     "instanceGroupManager": {
134581	//       "description": "The name of the managed instance group.",
134582	//       "location": "path",
134583	//       "required": true,
134584	//       "type": "string"
134585	//     },
134586	//     "maxResults": {
134587	//       "default": "500",
134588	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134589	//       "format": "uint32",
134590	//       "location": "query",
134591	//       "minimum": "0",
134592	//       "type": "integer"
134593	//     },
134594	//     "orderBy": {
134595	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134596	//       "location": "query",
134597	//       "type": "string"
134598	//     },
134599	//     "pageToken": {
134600	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134601	//       "location": "query",
134602	//       "type": "string"
134603	//     },
134604	//     "project": {
134605	//       "description": "Project ID for this request.",
134606	//       "location": "path",
134607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134608	//       "required": true,
134609	//       "type": "string"
134610	//     },
134611	//     "region": {
134612	//       "description": "Name of the region scoping this request.",
134613	//       "location": "path",
134614	//       "required": true,
134615	//       "type": "string"
134616	//     }
134617	//   },
134618	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
134619	//   "response": {
134620	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
134621	//   },
134622	//   "scopes": [
134623	//     "https://www.googleapis.com/auth/cloud-platform",
134624	//     "https://www.googleapis.com/auth/compute",
134625	//     "https://www.googleapis.com/auth/compute.readonly"
134626	//   ]
134627	// }
134628
134629}
134630
134631// Pages invokes f for each page of results.
134632// A non-nil error returned from f will halt the iteration.
134633// The provided context supersedes any context provided to the Context method.
134634func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
134635	c.ctx_ = ctx
134636	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134637	for {
134638		x, err := c.Do()
134639		if err != nil {
134640			return err
134641		}
134642		if err := f(x); err != nil {
134643			return err
134644		}
134645		if x.NextPageToken == "" {
134646			return nil
134647		}
134648		c.PageToken(x.NextPageToken)
134649	}
134650}
134651
134652// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
134653
134654type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
134655	s                    *Service
134656	project              string
134657	region               string
134658	instanceGroupManager string
134659	urlParams_           gensupport.URLParams
134660	ctx_                 context.Context
134661	header_              http.Header
134662}
134663
134664// ListPerInstanceConfigs: Lists all of the per-instance configs defined
134665// for the managed instance group.
134666func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134667	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134668	c.project = project
134669	c.region = region
134670	c.instanceGroupManager = instanceGroupManager
134671	return c
134672}
134673
134674// Filter sets the optional parameter "filter": A filter expression that
134675// filters resources listed in the response. The expression must specify
134676// the field name, a comparison operator, and the value that you want to
134677// use for filtering. The value must be a string, a number, or a
134678// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134679// `<`.
134680//
134681// For example, if you are filtering Compute Engine instances, you can
134682// exclude instances named `example-instance` by specifying `name !=
134683// example-instance`.
134684//
134685// You can also filter nested fields. For example, you could specify
134686// `scheduling.automaticRestart = false` to include instances only if
134687// they are not scheduled for automatic restarts. You can use filtering
134688// on nested fields to filter based on resource labels.
134689//
134690// To filter on multiple expressions, provide each separate expression
134691// within parentheses. For example: ``` (scheduling.automaticRestart =
134692// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134693// is an `AND` expression. However, you can include `AND` and `OR`
134694// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134695// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134696// (scheduling.automaticRestart = true) ```
134697func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134698	c.urlParams_.Set("filter", filter)
134699	return c
134700}
134701
134702// MaxResults sets the optional parameter "maxResults": The maximum
134703// number of results per page that should be returned. If the number of
134704// available results is larger than `maxResults`, Compute Engine returns
134705// a `nextPageToken` that can be used to get the next page of results in
134706// subsequent list requests. Acceptable values are `0` to `500`,
134707// inclusive. (Default: `500`)
134708func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134709	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134710	return c
134711}
134712
134713// OrderBy sets the optional parameter "orderBy": Sorts list results by
134714// a certain order. By default, results are returned in alphanumerical
134715// order based on the resource name.
134716//
134717// You can also sort results in descending order based on the creation
134718// timestamp using `orderBy="creationTimestamp desc". This sorts
134719// results based on the `creationTimestamp` field in reverse
134720// chronological order (newest result first). Use this to sort resources
134721// like operations so that the newest operation is returned
134722// first.
134723//
134724// Currently, only sorting by `name` or `creationTimestamp desc` is
134725// supported.
134726func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134727	c.urlParams_.Set("orderBy", orderBy)
134728	return c
134729}
134730
134731// PageToken sets the optional parameter "pageToken": Specifies a page
134732// token to use. Set `pageToken` to the `nextPageToken` returned by a
134733// previous list request to get the next page of results.
134734func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134735	c.urlParams_.Set("pageToken", pageToken)
134736	return c
134737}
134738
134739// ReturnPartialSuccess sets the optional parameter
134740// "returnPartialSuccess": Opt-in for partial success behavior which
134741// provides partial results in case of failure. The default value is
134742// false and the logic is the same as today.
134743func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134744	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134745	return c
134746}
134747
134748// Fields allows partial responses to be retrieved. See
134749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134750// for more information.
134751func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134753	return c
134754}
134755
134756// Context sets the context to be used in this call's Do method. Any
134757// pending HTTP request will be aborted if the provided context is
134758// canceled.
134759func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134760	c.ctx_ = ctx
134761	return c
134762}
134763
134764// Header returns an http.Header that can be modified by the caller to
134765// add HTTP headers to the request.
134766func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
134767	if c.header_ == nil {
134768		c.header_ = make(http.Header)
134769	}
134770	return c.header_
134771}
134772
134773func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
134774	reqHeaders := make(http.Header)
134775	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
134776	for k, v := range c.header_ {
134777		reqHeaders[k] = v
134778	}
134779	reqHeaders.Set("User-Agent", c.s.userAgent())
134780	var body io.Reader = nil
134781	c.urlParams_.Set("alt", alt)
134782	c.urlParams_.Set("prettyPrint", "false")
134783	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
134784	urls += "?" + c.urlParams_.Encode()
134785	req, err := http.NewRequest("POST", urls, body)
134786	if err != nil {
134787		return nil, err
134788	}
134789	req.Header = reqHeaders
134790	googleapi.Expand(req.URL, map[string]string{
134791		"project":              c.project,
134792		"region":               c.region,
134793		"instanceGroupManager": c.instanceGroupManager,
134794	})
134795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134796}
134797
134798// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
134799// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
134800// error will be non-nil. Any non-2xx status code is an error. Response
134801// headers are in either
134802// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
134803// der or (if a response was returned at all) in
134804// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
134805// whether the returned error was because http.StatusNotModified was
134806// returned.
134807func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
134808	gensupport.SetOptions(c.urlParams_, opts...)
134809	res, err := c.doRequest("json")
134810	if res != nil && res.StatusCode == http.StatusNotModified {
134811		if res.Body != nil {
134812			res.Body.Close()
134813		}
134814		return nil, &googleapi.Error{
134815			Code:   res.StatusCode,
134816			Header: res.Header,
134817		}
134818	}
134819	if err != nil {
134820		return nil, err
134821	}
134822	defer googleapi.CloseBody(res)
134823	if err := googleapi.CheckResponse(res); err != nil {
134824		return nil, err
134825	}
134826	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
134827		ServerResponse: googleapi.ServerResponse{
134828			Header:         res.Header,
134829			HTTPStatusCode: res.StatusCode,
134830		},
134831	}
134832	target := &ret
134833	if err := gensupport.DecodeResponse(target, res); err != nil {
134834		return nil, err
134835	}
134836	return ret, nil
134837	// {
134838	//   "description": "Lists all of the per-instance configs defined for the managed instance group.",
134839	//   "httpMethod": "POST",
134840	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
134841	//   "parameterOrder": [
134842	//     "project",
134843	//     "region",
134844	//     "instanceGroupManager"
134845	//   ],
134846	//   "parameters": {
134847	//     "filter": {
134848	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134849	//       "location": "query",
134850	//       "type": "string"
134851	//     },
134852	//     "instanceGroupManager": {
134853	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
134854	//       "location": "path",
134855	//       "required": true,
134856	//       "type": "string"
134857	//     },
134858	//     "maxResults": {
134859	//       "default": "500",
134860	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134861	//       "format": "uint32",
134862	//       "location": "query",
134863	//       "minimum": "0",
134864	//       "type": "integer"
134865	//     },
134866	//     "orderBy": {
134867	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134868	//       "location": "query",
134869	//       "type": "string"
134870	//     },
134871	//     "pageToken": {
134872	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134873	//       "location": "query",
134874	//       "type": "string"
134875	//     },
134876	//     "project": {
134877	//       "description": "Project ID for this request.",
134878	//       "location": "path",
134879	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134880	//       "required": true,
134881	//       "type": "string"
134882	//     },
134883	//     "region": {
134884	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
134885	//       "location": "path",
134886	//       "required": true,
134887	//       "type": "string"
134888	//     },
134889	//     "returnPartialSuccess": {
134890	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
134891	//       "location": "query",
134892	//       "type": "boolean"
134893	//     }
134894	//   },
134895	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
134896	//   "response": {
134897	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
134898	//   },
134899	//   "scopes": [
134900	//     "https://www.googleapis.com/auth/cloud-platform",
134901	//     "https://www.googleapis.com/auth/compute",
134902	//     "https://www.googleapis.com/auth/compute.readonly"
134903	//   ]
134904	// }
134905
134906}
134907
134908// Pages invokes f for each page of results.
134909// A non-nil error returned from f will halt the iteration.
134910// The provided context supersedes any context provided to the Context method.
134911func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
134912	c.ctx_ = ctx
134913	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134914	for {
134915		x, err := c.Do()
134916		if err != nil {
134917			return err
134918		}
134919		if err := f(x); err != nil {
134920			return err
134921		}
134922		if x.NextPageToken == "" {
134923			return nil
134924		}
134925		c.PageToken(x.NextPageToken)
134926	}
134927}
134928
134929// method id "compute.regionInstanceGroupManagers.patch":
134930
134931type RegionInstanceGroupManagersPatchCall struct {
134932	s                    *Service
134933	project              string
134934	region               string
134935	instanceGroupManager string
134936	instancegroupmanager *InstanceGroupManager
134937	urlParams_           gensupport.URLParams
134938	ctx_                 context.Context
134939	header_              http.Header
134940}
134941
134942// Patch: Updates a managed instance group using the information that
134943// you specify in the request. This operation is marked as DONE when the
134944// group is patched even if the instances in the group are still in the
134945// process of being patched. You must separately verify the status of
134946// the individual instances with the listmanagedinstances method. This
134947// method supports PATCH semantics and uses the JSON merge patch format
134948// and processing rules.
134949func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
134950	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134951	c.project = project
134952	c.region = region
134953	c.instanceGroupManager = instanceGroupManager
134954	c.instancegroupmanager = instancegroupmanager
134955	return c
134956}
134957
134958// RequestId sets the optional parameter "requestId": An optional
134959// request ID to identify requests. Specify a unique request ID so that
134960// if you must retry your request, the server will know to ignore the
134961// request if it has already been completed.
134962//
134963// For example, consider a situation where you make an initial request
134964// and the request times out. If you make the request again with the
134965// same request ID, the server can check if original operation with the
134966// same request ID was received, and if so, will ignore the second
134967// request. This prevents clients from accidentally creating duplicate
134968// commitments.
134969//
134970// The request ID must be a valid UUID with the exception that zero UUID
134971// is not supported (00000000-0000-0000-0000-000000000000).
134972func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
134973	c.urlParams_.Set("requestId", requestId)
134974	return c
134975}
134976
134977// Fields allows partial responses to be retrieved. See
134978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134979// for more information.
134980func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
134981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134982	return c
134983}
134984
134985// Context sets the context to be used in this call's Do method. Any
134986// pending HTTP request will be aborted if the provided context is
134987// canceled.
134988func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
134989	c.ctx_ = ctx
134990	return c
134991}
134992
134993// Header returns an http.Header that can be modified by the caller to
134994// add HTTP headers to the request.
134995func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
134996	if c.header_ == nil {
134997		c.header_ = make(http.Header)
134998	}
134999	return c.header_
135000}
135001
135002func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
135003	reqHeaders := make(http.Header)
135004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
135005	for k, v := range c.header_ {
135006		reqHeaders[k] = v
135007	}
135008	reqHeaders.Set("User-Agent", c.s.userAgent())
135009	var body io.Reader = nil
135010	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
135011	if err != nil {
135012		return nil, err
135013	}
135014	reqHeaders.Set("Content-Type", "application/json")
135015	c.urlParams_.Set("alt", alt)
135016	c.urlParams_.Set("prettyPrint", "false")
135017	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
135018	urls += "?" + c.urlParams_.Encode()
135019	req, err := http.NewRequest("PATCH", urls, body)
135020	if err != nil {
135021		return nil, err
135022	}
135023	req.Header = reqHeaders
135024	googleapi.Expand(req.URL, map[string]string{
135025		"project":              c.project,
135026		"region":               c.region,
135027		"instanceGroupManager": c.instanceGroupManager,
135028	})
135029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135030}
135031
135032// Do executes the "compute.regionInstanceGroupManagers.patch" call.
135033// Exactly one of *Operation or error will be non-nil. Any non-2xx
135034// status code is an error. Response headers are in either
135035// *Operation.ServerResponse.Header or (if a response was returned at
135036// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135037// to check whether the returned error was because
135038// http.StatusNotModified was returned.
135039func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135040	gensupport.SetOptions(c.urlParams_, opts...)
135041	res, err := c.doRequest("json")
135042	if res != nil && res.StatusCode == http.StatusNotModified {
135043		if res.Body != nil {
135044			res.Body.Close()
135045		}
135046		return nil, &googleapi.Error{
135047			Code:   res.StatusCode,
135048			Header: res.Header,
135049		}
135050	}
135051	if err != nil {
135052		return nil, err
135053	}
135054	defer googleapi.CloseBody(res)
135055	if err := googleapi.CheckResponse(res); err != nil {
135056		return nil, err
135057	}
135058	ret := &Operation{
135059		ServerResponse: googleapi.ServerResponse{
135060			Header:         res.Header,
135061			HTTPStatusCode: res.StatusCode,
135062		},
135063	}
135064	target := &ret
135065	if err := gensupport.DecodeResponse(target, res); err != nil {
135066		return nil, err
135067	}
135068	return ret, nil
135069	// {
135070	//   "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.",
135071	//   "httpMethod": "PATCH",
135072	//   "id": "compute.regionInstanceGroupManagers.patch",
135073	//   "parameterOrder": [
135074	//     "project",
135075	//     "region",
135076	//     "instanceGroupManager"
135077	//   ],
135078	//   "parameters": {
135079	//     "instanceGroupManager": {
135080	//       "description": "The name of the instance group manager.",
135081	//       "location": "path",
135082	//       "required": true,
135083	//       "type": "string"
135084	//     },
135085	//     "project": {
135086	//       "description": "Project ID for this request.",
135087	//       "location": "path",
135088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135089	//       "required": true,
135090	//       "type": "string"
135091	//     },
135092	//     "region": {
135093	//       "description": "Name of the region scoping this request.",
135094	//       "location": "path",
135095	//       "required": true,
135096	//       "type": "string"
135097	//     },
135098	//     "requestId": {
135099	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135100	//       "location": "query",
135101	//       "type": "string"
135102	//     }
135103	//   },
135104	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
135105	//   "request": {
135106	//     "$ref": "InstanceGroupManager"
135107	//   },
135108	//   "response": {
135109	//     "$ref": "Operation"
135110	//   },
135111	//   "scopes": [
135112	//     "https://www.googleapis.com/auth/cloud-platform",
135113	//     "https://www.googleapis.com/auth/compute"
135114	//   ]
135115	// }
135116
135117}
135118
135119// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
135120
135121type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
135122	s                                                *Service
135123	project                                          string
135124	region                                           string
135125	instanceGroupManager                             string
135126	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
135127	urlParams_                                       gensupport.URLParams
135128	ctx_                                             context.Context
135129	header_                                          http.Header
135130}
135131
135132// PatchPerInstanceConfigs: Insert or patch (for the ones that already
135133// exist) per-instance configs for the managed instance group.
135134// perInstanceConfig.instance serves as a key used to distinguish
135135// whether to perform insert or patch.
135136func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
135137	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135138	c.project = project
135139	c.region = region
135140	c.instanceGroupManager = instanceGroupManager
135141	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
135142	return c
135143}
135144
135145// RequestId sets the optional parameter "requestId": An optional
135146// request ID to identify requests. Specify a unique request ID so that
135147// if you must retry your request, the server will know to ignore the
135148// request if it has already been completed.
135149//
135150// For example, consider a situation where you make an initial request
135151// and the request times out. If you make the request again with the
135152// same request ID, the server can check if original operation with the
135153// same request ID was received, and if so, will ignore the second
135154// request. This prevents clients from accidentally creating duplicate
135155// commitments.
135156//
135157// The request ID must be a valid UUID with the exception that zero UUID
135158// is not supported (00000000-0000-0000-0000-000000000000).
135159func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
135160	c.urlParams_.Set("requestId", requestId)
135161	return c
135162}
135163
135164// Fields allows partial responses to be retrieved. See
135165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135166// for more information.
135167func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
135168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135169	return c
135170}
135171
135172// Context sets the context to be used in this call's Do method. Any
135173// pending HTTP request will be aborted if the provided context is
135174// canceled.
135175func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
135176	c.ctx_ = ctx
135177	return c
135178}
135179
135180// Header returns an http.Header that can be modified by the caller to
135181// add HTTP headers to the request.
135182func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
135183	if c.header_ == nil {
135184		c.header_ = make(http.Header)
135185	}
135186	return c.header_
135187}
135188
135189func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
135190	reqHeaders := make(http.Header)
135191	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
135192	for k, v := range c.header_ {
135193		reqHeaders[k] = v
135194	}
135195	reqHeaders.Set("User-Agent", c.s.userAgent())
135196	var body io.Reader = nil
135197	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
135198	if err != nil {
135199		return nil, err
135200	}
135201	reqHeaders.Set("Content-Type", "application/json")
135202	c.urlParams_.Set("alt", alt)
135203	c.urlParams_.Set("prettyPrint", "false")
135204	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
135205	urls += "?" + c.urlParams_.Encode()
135206	req, err := http.NewRequest("POST", urls, body)
135207	if err != nil {
135208		return nil, err
135209	}
135210	req.Header = reqHeaders
135211	googleapi.Expand(req.URL, map[string]string{
135212		"project":              c.project,
135213		"region":               c.region,
135214		"instanceGroupManager": c.instanceGroupManager,
135215	})
135216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135217}
135218
135219// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
135220// Exactly one of *Operation or error will be non-nil. Any non-2xx
135221// status code is an error. Response headers are in either
135222// *Operation.ServerResponse.Header or (if a response was returned at
135223// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135224// to check whether the returned error was because
135225// http.StatusNotModified was returned.
135226func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135227	gensupport.SetOptions(c.urlParams_, opts...)
135228	res, err := c.doRequest("json")
135229	if res != nil && res.StatusCode == http.StatusNotModified {
135230		if res.Body != nil {
135231			res.Body.Close()
135232		}
135233		return nil, &googleapi.Error{
135234			Code:   res.StatusCode,
135235			Header: res.Header,
135236		}
135237	}
135238	if err != nil {
135239		return nil, err
135240	}
135241	defer googleapi.CloseBody(res)
135242	if err := googleapi.CheckResponse(res); err != nil {
135243		return nil, err
135244	}
135245	ret := &Operation{
135246		ServerResponse: googleapi.ServerResponse{
135247			Header:         res.Header,
135248			HTTPStatusCode: res.StatusCode,
135249		},
135250	}
135251	target := &ret
135252	if err := gensupport.DecodeResponse(target, res); err != nil {
135253		return nil, err
135254	}
135255	return ret, nil
135256	// {
135257	//   "description": "Insert or patch (for the ones that already exist) per-instance configs for the managed instance group. perInstanceConfig.instance serves as a key used to distinguish whether to perform insert or patch.",
135258	//   "httpMethod": "POST",
135259	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
135260	//   "parameterOrder": [
135261	//     "project",
135262	//     "region",
135263	//     "instanceGroupManager"
135264	//   ],
135265	//   "parameters": {
135266	//     "instanceGroupManager": {
135267	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
135268	//       "location": "path",
135269	//       "required": true,
135270	//       "type": "string"
135271	//     },
135272	//     "project": {
135273	//       "description": "Project ID for this request.",
135274	//       "location": "path",
135275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135276	//       "required": true,
135277	//       "type": "string"
135278	//     },
135279	//     "region": {
135280	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
135281	//       "location": "path",
135282	//       "required": true,
135283	//       "type": "string"
135284	//     },
135285	//     "requestId": {
135286	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135287	//       "location": "query",
135288	//       "type": "string"
135289	//     }
135290	//   },
135291	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
135292	//   "request": {
135293	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
135294	//   },
135295	//   "response": {
135296	//     "$ref": "Operation"
135297	//   },
135298	//   "scopes": [
135299	//     "https://www.googleapis.com/auth/cloud-platform",
135300	//     "https://www.googleapis.com/auth/compute"
135301	//   ]
135302	// }
135303
135304}
135305
135306// method id "compute.regionInstanceGroupManagers.recreateInstances":
135307
135308type RegionInstanceGroupManagersRecreateInstancesCall struct {
135309	s                                          *Service
135310	project                                    string
135311	region                                     string
135312	instanceGroupManager                       string
135313	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
135314	urlParams_                                 gensupport.URLParams
135315	ctx_                                       context.Context
135316	header_                                    http.Header
135317}
135318
135319// RecreateInstances: Flags the specified instances in the managed
135320// instance group to be immediately recreated. The instances are deleted
135321// and recreated using the current instance template for the managed
135322// instance group. This operation is marked as DONE when the flag is set
135323// even if the instances have not yet been recreated. You must
135324// separately verify the status of the recreating action with the
135325// listmanagedinstances method.
135326//
135327// If the group is part of a backend service that has enabled connection
135328// draining, it can take up to 60 seconds after the connection draining
135329// duration has elapsed before the VM instance is removed or
135330// deleted.
135331//
135332// You can specify a maximum of 1000 instances with this method per
135333// request.
135334func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
135335	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135336	c.project = project
135337	c.region = region
135338	c.instanceGroupManager = instanceGroupManager
135339	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
135340	return c
135341}
135342
135343// RequestId sets the optional parameter "requestId": An optional
135344// request ID to identify requests. Specify a unique request ID so that
135345// if you must retry your request, the server will know to ignore the
135346// request if it has already been completed.
135347//
135348// For example, consider a situation where you make an initial request
135349// and the request times out. If you make the request again with the
135350// same request ID, the server can check if original operation with the
135351// same request ID was received, and if so, will ignore the second
135352// request. This prevents clients from accidentally creating duplicate
135353// commitments.
135354//
135355// The request ID must be a valid UUID with the exception that zero UUID
135356// is not supported (00000000-0000-0000-0000-000000000000).
135357func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
135358	c.urlParams_.Set("requestId", requestId)
135359	return c
135360}
135361
135362// Fields allows partial responses to be retrieved. See
135363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135364// for more information.
135365func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
135366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135367	return c
135368}
135369
135370// Context sets the context to be used in this call's Do method. Any
135371// pending HTTP request will be aborted if the provided context is
135372// canceled.
135373func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
135374	c.ctx_ = ctx
135375	return c
135376}
135377
135378// Header returns an http.Header that can be modified by the caller to
135379// add HTTP headers to the request.
135380func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
135381	if c.header_ == nil {
135382		c.header_ = make(http.Header)
135383	}
135384	return c.header_
135385}
135386
135387func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
135388	reqHeaders := make(http.Header)
135389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
135390	for k, v := range c.header_ {
135391		reqHeaders[k] = v
135392	}
135393	reqHeaders.Set("User-Agent", c.s.userAgent())
135394	var body io.Reader = nil
135395	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
135396	if err != nil {
135397		return nil, err
135398	}
135399	reqHeaders.Set("Content-Type", "application/json")
135400	c.urlParams_.Set("alt", alt)
135401	c.urlParams_.Set("prettyPrint", "false")
135402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
135403	urls += "?" + c.urlParams_.Encode()
135404	req, err := http.NewRequest("POST", urls, body)
135405	if err != nil {
135406		return nil, err
135407	}
135408	req.Header = reqHeaders
135409	googleapi.Expand(req.URL, map[string]string{
135410		"project":              c.project,
135411		"region":               c.region,
135412		"instanceGroupManager": c.instanceGroupManager,
135413	})
135414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135415}
135416
135417// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
135418// Exactly one of *Operation or error will be non-nil. Any non-2xx
135419// status code is an error. Response headers are in either
135420// *Operation.ServerResponse.Header or (if a response was returned at
135421// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135422// to check whether the returned error was because
135423// http.StatusNotModified was returned.
135424func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135425	gensupport.SetOptions(c.urlParams_, opts...)
135426	res, err := c.doRequest("json")
135427	if res != nil && res.StatusCode == http.StatusNotModified {
135428		if res.Body != nil {
135429			res.Body.Close()
135430		}
135431		return nil, &googleapi.Error{
135432			Code:   res.StatusCode,
135433			Header: res.Header,
135434		}
135435	}
135436	if err != nil {
135437		return nil, err
135438	}
135439	defer googleapi.CloseBody(res)
135440	if err := googleapi.CheckResponse(res); err != nil {
135441		return nil, err
135442	}
135443	ret := &Operation{
135444		ServerResponse: googleapi.ServerResponse{
135445			Header:         res.Header,
135446			HTTPStatusCode: res.StatusCode,
135447		},
135448	}
135449	target := &ret
135450	if err := gensupport.DecodeResponse(target, res); err != nil {
135451		return nil, err
135452	}
135453	return ret, nil
135454	// {
135455	//   "description": "Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
135456	//   "httpMethod": "POST",
135457	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
135458	//   "parameterOrder": [
135459	//     "project",
135460	//     "region",
135461	//     "instanceGroupManager"
135462	//   ],
135463	//   "parameters": {
135464	//     "instanceGroupManager": {
135465	//       "description": "Name of the managed instance group.",
135466	//       "location": "path",
135467	//       "required": true,
135468	//       "type": "string"
135469	//     },
135470	//     "project": {
135471	//       "description": "Project ID for this request.",
135472	//       "location": "path",
135473	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135474	//       "required": true,
135475	//       "type": "string"
135476	//     },
135477	//     "region": {
135478	//       "description": "Name of the region scoping this request.",
135479	//       "location": "path",
135480	//       "required": true,
135481	//       "type": "string"
135482	//     },
135483	//     "requestId": {
135484	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135485	//       "location": "query",
135486	//       "type": "string"
135487	//     }
135488	//   },
135489	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
135490	//   "request": {
135491	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
135492	//   },
135493	//   "response": {
135494	//     "$ref": "Operation"
135495	//   },
135496	//   "scopes": [
135497	//     "https://www.googleapis.com/auth/cloud-platform",
135498	//     "https://www.googleapis.com/auth/compute"
135499	//   ]
135500	// }
135501
135502}
135503
135504// method id "compute.regionInstanceGroupManagers.resize":
135505
135506type RegionInstanceGroupManagersResizeCall struct {
135507	s                    *Service
135508	project              string
135509	region               string
135510	instanceGroupManager string
135511	urlParams_           gensupport.URLParams
135512	ctx_                 context.Context
135513	header_              http.Header
135514}
135515
135516// Resize: Changes the intended size of the managed instance group. If
135517// you increase the size, the group creates new instances using the
135518// current instance template. If you decrease the size, the group
135519// deletes one or more instances.
135520//
135521// The resize operation is marked DONE if the resize request is
135522// successful. The underlying actions take additional time. You must
135523// separately verify the status of the creating or deleting actions with
135524// the listmanagedinstances method.
135525//
135526// If the group is part of a backend service that has enabled connection
135527// draining, it can take up to 60 seconds after the connection draining
135528// duration has elapsed before the VM instance is removed or deleted.
135529func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
135530	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135531	c.project = project
135532	c.region = region
135533	c.instanceGroupManager = instanceGroupManager
135534	c.urlParams_.Set("size", fmt.Sprint(size))
135535	return c
135536}
135537
135538// RequestId sets the optional parameter "requestId": An optional
135539// request ID to identify requests. Specify a unique request ID so that
135540// if you must retry your request, the server will know to ignore the
135541// request if it has already been completed.
135542//
135543// For example, consider a situation where you make an initial request
135544// and the request times out. If you make the request again with the
135545// same request ID, the server can check if original operation with the
135546// same request ID was received, and if so, will ignore the second
135547// request. This prevents clients from accidentally creating duplicate
135548// commitments.
135549//
135550// The request ID must be a valid UUID with the exception that zero UUID
135551// is not supported (00000000-0000-0000-0000-000000000000).
135552func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
135553	c.urlParams_.Set("requestId", requestId)
135554	return c
135555}
135556
135557// Fields allows partial responses to be retrieved. See
135558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135559// for more information.
135560func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
135561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135562	return c
135563}
135564
135565// Context sets the context to be used in this call's Do method. Any
135566// pending HTTP request will be aborted if the provided context is
135567// canceled.
135568func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
135569	c.ctx_ = ctx
135570	return c
135571}
135572
135573// Header returns an http.Header that can be modified by the caller to
135574// add HTTP headers to the request.
135575func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
135576	if c.header_ == nil {
135577		c.header_ = make(http.Header)
135578	}
135579	return c.header_
135580}
135581
135582func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
135583	reqHeaders := make(http.Header)
135584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
135585	for k, v := range c.header_ {
135586		reqHeaders[k] = v
135587	}
135588	reqHeaders.Set("User-Agent", c.s.userAgent())
135589	var body io.Reader = nil
135590	c.urlParams_.Set("alt", alt)
135591	c.urlParams_.Set("prettyPrint", "false")
135592	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
135593	urls += "?" + c.urlParams_.Encode()
135594	req, err := http.NewRequest("POST", urls, body)
135595	if err != nil {
135596		return nil, err
135597	}
135598	req.Header = reqHeaders
135599	googleapi.Expand(req.URL, map[string]string{
135600		"project":              c.project,
135601		"region":               c.region,
135602		"instanceGroupManager": c.instanceGroupManager,
135603	})
135604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135605}
135606
135607// Do executes the "compute.regionInstanceGroupManagers.resize" call.
135608// Exactly one of *Operation or error will be non-nil. Any non-2xx
135609// status code is an error. Response headers are in either
135610// *Operation.ServerResponse.Header or (if a response was returned at
135611// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135612// to check whether the returned error was because
135613// http.StatusNotModified was returned.
135614func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135615	gensupport.SetOptions(c.urlParams_, opts...)
135616	res, err := c.doRequest("json")
135617	if res != nil && res.StatusCode == http.StatusNotModified {
135618		if res.Body != nil {
135619			res.Body.Close()
135620		}
135621		return nil, &googleapi.Error{
135622			Code:   res.StatusCode,
135623			Header: res.Header,
135624		}
135625	}
135626	if err != nil {
135627		return nil, err
135628	}
135629	defer googleapi.CloseBody(res)
135630	if err := googleapi.CheckResponse(res); err != nil {
135631		return nil, err
135632	}
135633	ret := &Operation{
135634		ServerResponse: googleapi.ServerResponse{
135635			Header:         res.Header,
135636			HTTPStatusCode: res.StatusCode,
135637		},
135638	}
135639	target := &ret
135640	if err := gensupport.DecodeResponse(target, res); err != nil {
135641		return nil, err
135642	}
135643	return ret, nil
135644	// {
135645	//   "description": "Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances.\n\nThe resize operation is marked DONE if the resize request is successful. The underlying actions take additional time. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.",
135646	//   "httpMethod": "POST",
135647	//   "id": "compute.regionInstanceGroupManagers.resize",
135648	//   "parameterOrder": [
135649	//     "project",
135650	//     "region",
135651	//     "instanceGroupManager",
135652	//     "size"
135653	//   ],
135654	//   "parameters": {
135655	//     "instanceGroupManager": {
135656	//       "description": "Name of the managed instance group.",
135657	//       "location": "path",
135658	//       "required": true,
135659	//       "type": "string"
135660	//     },
135661	//     "project": {
135662	//       "description": "Project ID for this request.",
135663	//       "location": "path",
135664	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135665	//       "required": true,
135666	//       "type": "string"
135667	//     },
135668	//     "region": {
135669	//       "description": "Name of the region scoping this request.",
135670	//       "location": "path",
135671	//       "required": true,
135672	//       "type": "string"
135673	//     },
135674	//     "requestId": {
135675	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135676	//       "location": "query",
135677	//       "type": "string"
135678	//     },
135679	//     "size": {
135680	//       "description": "Number of instances that should exist in this instance group manager.",
135681	//       "format": "int32",
135682	//       "location": "query",
135683	//       "minimum": "0",
135684	//       "required": true,
135685	//       "type": "integer"
135686	//     }
135687	//   },
135688	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
135689	//   "response": {
135690	//     "$ref": "Operation"
135691	//   },
135692	//   "scopes": [
135693	//     "https://www.googleapis.com/auth/cloud-platform",
135694	//     "https://www.googleapis.com/auth/compute"
135695	//   ]
135696	// }
135697
135698}
135699
135700// method id "compute.regionInstanceGroupManagers.setAutoHealingPolicies":
135701
135702type RegionInstanceGroupManagersSetAutoHealingPoliciesCall struct {
135703	s                                                *Service
135704	project                                          string
135705	region                                           string
135706	instanceGroupManager                             string
135707	regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest
135708	urlParams_                                       gensupport.URLParams
135709	ctx_                                             context.Context
135710	header_                                          http.Header
135711}
135712
135713// SetAutoHealingPolicies: Modifies the autohealing policy for the
135714// instances in this managed instance group. [Deprecated] This method is
135715// deprecated. Please use Patch instead.
135716func (r *RegionInstanceGroupManagersService) SetAutoHealingPolicies(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135717	c := &RegionInstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135718	c.project = project
135719	c.region = region
135720	c.instanceGroupManager = instanceGroupManager
135721	c.regioninstancegroupmanagerssetautohealingrequest = regioninstancegroupmanagerssetautohealingrequest
135722	return c
135723}
135724
135725// RequestId sets the optional parameter "requestId": An optional
135726// request ID to identify requests. Specify a unique request ID so that
135727// if you must retry your request, the server will know to ignore the
135728// request if it has already been completed.
135729//
135730// For example, consider a situation where you make an initial request
135731// and the request times out. If you make the request again with the
135732// same request ID, the server can check if original operation with the
135733// same request ID was received, and if so, will ignore the second
135734// request. This prevents clients from accidentally creating duplicate
135735// commitments.
135736//
135737// The request ID must be a valid UUID with the exception that zero UUID
135738// is not supported (00000000-0000-0000-0000-000000000000).
135739func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135740	c.urlParams_.Set("requestId", requestId)
135741	return c
135742}
135743
135744// Fields allows partial responses to be retrieved. See
135745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135746// for more information.
135747func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135749	return c
135750}
135751
135752// Context sets the context to be used in this call's Do method. Any
135753// pending HTTP request will be aborted if the provided context is
135754// canceled.
135755func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135756	c.ctx_ = ctx
135757	return c
135758}
135759
135760// Header returns an http.Header that can be modified by the caller to
135761// add HTTP headers to the request.
135762func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
135763	if c.header_ == nil {
135764		c.header_ = make(http.Header)
135765	}
135766	return c.header_
135767}
135768
135769func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
135770	reqHeaders := make(http.Header)
135771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
135772	for k, v := range c.header_ {
135773		reqHeaders[k] = v
135774	}
135775	reqHeaders.Set("User-Agent", c.s.userAgent())
135776	var body io.Reader = nil
135777	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssetautohealingrequest)
135778	if err != nil {
135779		return nil, err
135780	}
135781	reqHeaders.Set("Content-Type", "application/json")
135782	c.urlParams_.Set("alt", alt)
135783	c.urlParams_.Set("prettyPrint", "false")
135784	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
135785	urls += "?" + c.urlParams_.Encode()
135786	req, err := http.NewRequest("POST", urls, body)
135787	if err != nil {
135788		return nil, err
135789	}
135790	req.Header = reqHeaders
135791	googleapi.Expand(req.URL, map[string]string{
135792		"project":              c.project,
135793		"region":               c.region,
135794		"instanceGroupManager": c.instanceGroupManager,
135795	})
135796	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135797}
135798
135799// Do executes the "compute.regionInstanceGroupManagers.setAutoHealingPolicies" call.
135800// Exactly one of *Operation or error will be non-nil. Any non-2xx
135801// status code is an error. Response headers are in either
135802// *Operation.ServerResponse.Header or (if a response was returned at
135803// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135804// to check whether the returned error was because
135805// http.StatusNotModified was returned.
135806func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135807	gensupport.SetOptions(c.urlParams_, opts...)
135808	res, err := c.doRequest("json")
135809	if res != nil && res.StatusCode == http.StatusNotModified {
135810		if res.Body != nil {
135811			res.Body.Close()
135812		}
135813		return nil, &googleapi.Error{
135814			Code:   res.StatusCode,
135815			Header: res.Header,
135816		}
135817	}
135818	if err != nil {
135819		return nil, err
135820	}
135821	defer googleapi.CloseBody(res)
135822	if err := googleapi.CheckResponse(res); err != nil {
135823		return nil, err
135824	}
135825	ret := &Operation{
135826		ServerResponse: googleapi.ServerResponse{
135827			Header:         res.Header,
135828			HTTPStatusCode: res.StatusCode,
135829		},
135830	}
135831	target := &ret
135832	if err := gensupport.DecodeResponse(target, res); err != nil {
135833		return nil, err
135834	}
135835	return ret, nil
135836	// {
135837	//   "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Please use Patch instead.",
135838	//   "httpMethod": "POST",
135839	//   "id": "compute.regionInstanceGroupManagers.setAutoHealingPolicies",
135840	//   "parameterOrder": [
135841	//     "project",
135842	//     "region",
135843	//     "instanceGroupManager"
135844	//   ],
135845	//   "parameters": {
135846	//     "instanceGroupManager": {
135847	//       "description": "Name of the managed instance group.",
135848	//       "location": "path",
135849	//       "required": true,
135850	//       "type": "string"
135851	//     },
135852	//     "project": {
135853	//       "description": "Project ID for this request.",
135854	//       "location": "path",
135855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135856	//       "required": true,
135857	//       "type": "string"
135858	//     },
135859	//     "region": {
135860	//       "description": "Name of the region scoping this request.",
135861	//       "location": "path",
135862	//       "required": true,
135863	//       "type": "string"
135864	//     },
135865	//     "requestId": {
135866	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135867	//       "location": "query",
135868	//       "type": "string"
135869	//     }
135870	//   },
135871	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
135872	//   "request": {
135873	//     "$ref": "RegionInstanceGroupManagersSetAutoHealingRequest"
135874	//   },
135875	//   "response": {
135876	//     "$ref": "Operation"
135877	//   },
135878	//   "scopes": [
135879	//     "https://www.googleapis.com/auth/cloud-platform",
135880	//     "https://www.googleapis.com/auth/compute"
135881	//   ]
135882	// }
135883
135884}
135885
135886// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
135887
135888type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
135889	s                                             *Service
135890	project                                       string
135891	region                                        string
135892	instanceGroupManager                          string
135893	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
135894	urlParams_                                    gensupport.URLParams
135895	ctx_                                          context.Context
135896	header_                                       http.Header
135897}
135898
135899// SetInstanceTemplate: Sets the instance template to use when creating
135900// new instances or recreating instances in this group. Existing
135901// instances are not affected.
135902func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135903	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135904	c.project = project
135905	c.region = region
135906	c.instanceGroupManager = instanceGroupManager
135907	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
135908	return c
135909}
135910
135911// RequestId sets the optional parameter "requestId": An optional
135912// request ID to identify requests. Specify a unique request ID so that
135913// if you must retry your request, the server will know to ignore the
135914// request if it has already been completed.
135915//
135916// For example, consider a situation where you make an initial request
135917// and the request times out. If you make the request again with the
135918// same request ID, the server can check if original operation with the
135919// same request ID was received, and if so, will ignore the second
135920// request. This prevents clients from accidentally creating duplicate
135921// commitments.
135922//
135923// The request ID must be a valid UUID with the exception that zero UUID
135924// is not supported (00000000-0000-0000-0000-000000000000).
135925func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135926	c.urlParams_.Set("requestId", requestId)
135927	return c
135928}
135929
135930// Fields allows partial responses to be retrieved. See
135931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135932// for more information.
135933func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135935	return c
135936}
135937
135938// Context sets the context to be used in this call's Do method. Any
135939// pending HTTP request will be aborted if the provided context is
135940// canceled.
135941func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135942	c.ctx_ = ctx
135943	return c
135944}
135945
135946// Header returns an http.Header that can be modified by the caller to
135947// add HTTP headers to the request.
135948func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
135949	if c.header_ == nil {
135950		c.header_ = make(http.Header)
135951	}
135952	return c.header_
135953}
135954
135955func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
135956	reqHeaders := make(http.Header)
135957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
135958	for k, v := range c.header_ {
135959		reqHeaders[k] = v
135960	}
135961	reqHeaders.Set("User-Agent", c.s.userAgent())
135962	var body io.Reader = nil
135963	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
135964	if err != nil {
135965		return nil, err
135966	}
135967	reqHeaders.Set("Content-Type", "application/json")
135968	c.urlParams_.Set("alt", alt)
135969	c.urlParams_.Set("prettyPrint", "false")
135970	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
135971	urls += "?" + c.urlParams_.Encode()
135972	req, err := http.NewRequest("POST", urls, body)
135973	if err != nil {
135974		return nil, err
135975	}
135976	req.Header = reqHeaders
135977	googleapi.Expand(req.URL, map[string]string{
135978		"project":              c.project,
135979		"region":               c.region,
135980		"instanceGroupManager": c.instanceGroupManager,
135981	})
135982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135983}
135984
135985// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
135986// Exactly one of *Operation or error will be non-nil. Any non-2xx
135987// status code is an error. Response headers are in either
135988// *Operation.ServerResponse.Header or (if a response was returned at
135989// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135990// to check whether the returned error was because
135991// http.StatusNotModified was returned.
135992func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135993	gensupport.SetOptions(c.urlParams_, opts...)
135994	res, err := c.doRequest("json")
135995	if res != nil && res.StatusCode == http.StatusNotModified {
135996		if res.Body != nil {
135997			res.Body.Close()
135998		}
135999		return nil, &googleapi.Error{
136000			Code:   res.StatusCode,
136001			Header: res.Header,
136002		}
136003	}
136004	if err != nil {
136005		return nil, err
136006	}
136007	defer googleapi.CloseBody(res)
136008	if err := googleapi.CheckResponse(res); err != nil {
136009		return nil, err
136010	}
136011	ret := &Operation{
136012		ServerResponse: googleapi.ServerResponse{
136013			Header:         res.Header,
136014			HTTPStatusCode: res.StatusCode,
136015		},
136016	}
136017	target := &ret
136018	if err := gensupport.DecodeResponse(target, res); err != nil {
136019		return nil, err
136020	}
136021	return ret, nil
136022	// {
136023	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
136024	//   "httpMethod": "POST",
136025	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
136026	//   "parameterOrder": [
136027	//     "project",
136028	//     "region",
136029	//     "instanceGroupManager"
136030	//   ],
136031	//   "parameters": {
136032	//     "instanceGroupManager": {
136033	//       "description": "The name of the managed instance group.",
136034	//       "location": "path",
136035	//       "required": true,
136036	//       "type": "string"
136037	//     },
136038	//     "project": {
136039	//       "description": "Project ID for this request.",
136040	//       "location": "path",
136041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136042	//       "required": true,
136043	//       "type": "string"
136044	//     },
136045	//     "region": {
136046	//       "description": "Name of the region scoping this request.",
136047	//       "location": "path",
136048	//       "required": true,
136049	//       "type": "string"
136050	//     },
136051	//     "requestId": {
136052	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136053	//       "location": "query",
136054	//       "type": "string"
136055	//     }
136056	//   },
136057	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
136058	//   "request": {
136059	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
136060	//   },
136061	//   "response": {
136062	//     "$ref": "Operation"
136063	//   },
136064	//   "scopes": [
136065	//     "https://www.googleapis.com/auth/cloud-platform",
136066	//     "https://www.googleapis.com/auth/compute"
136067	//   ]
136068	// }
136069
136070}
136071
136072// method id "compute.regionInstanceGroupManagers.setTargetPools":
136073
136074type RegionInstanceGroupManagersSetTargetPoolsCall struct {
136075	s                                                *Service
136076	project                                          string
136077	region                                           string
136078	instanceGroupManager                             string
136079	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
136080	urlParams_                                       gensupport.URLParams
136081	ctx_                                             context.Context
136082	header_                                          http.Header
136083}
136084
136085// SetTargetPools: Modifies the target pools to which all new instances
136086// in this group are assigned. Existing instances in the group are not
136087// affected.
136088func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
136089	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136090	c.project = project
136091	c.region = region
136092	c.instanceGroupManager = instanceGroupManager
136093	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
136094	return c
136095}
136096
136097// RequestId sets the optional parameter "requestId": An optional
136098// request ID to identify requests. Specify a unique request ID so that
136099// if you must retry your request, the server will know to ignore the
136100// request if it has already been completed.
136101//
136102// For example, consider a situation where you make an initial request
136103// and the request times out. If you make the request again with the
136104// same request ID, the server can check if original operation with the
136105// same request ID was received, and if so, will ignore the second
136106// request. This prevents clients from accidentally creating duplicate
136107// commitments.
136108//
136109// The request ID must be a valid UUID with the exception that zero UUID
136110// is not supported (00000000-0000-0000-0000-000000000000).
136111func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
136112	c.urlParams_.Set("requestId", requestId)
136113	return c
136114}
136115
136116// Fields allows partial responses to be retrieved. See
136117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136118// for more information.
136119func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
136120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136121	return c
136122}
136123
136124// Context sets the context to be used in this call's Do method. Any
136125// pending HTTP request will be aborted if the provided context is
136126// canceled.
136127func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
136128	c.ctx_ = ctx
136129	return c
136130}
136131
136132// Header returns an http.Header that can be modified by the caller to
136133// add HTTP headers to the request.
136134func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
136135	if c.header_ == nil {
136136		c.header_ = make(http.Header)
136137	}
136138	return c.header_
136139}
136140
136141func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
136142	reqHeaders := make(http.Header)
136143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
136144	for k, v := range c.header_ {
136145		reqHeaders[k] = v
136146	}
136147	reqHeaders.Set("User-Agent", c.s.userAgent())
136148	var body io.Reader = nil
136149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
136150	if err != nil {
136151		return nil, err
136152	}
136153	reqHeaders.Set("Content-Type", "application/json")
136154	c.urlParams_.Set("alt", alt)
136155	c.urlParams_.Set("prettyPrint", "false")
136156	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
136157	urls += "?" + c.urlParams_.Encode()
136158	req, err := http.NewRequest("POST", urls, body)
136159	if err != nil {
136160		return nil, err
136161	}
136162	req.Header = reqHeaders
136163	googleapi.Expand(req.URL, map[string]string{
136164		"project":              c.project,
136165		"region":               c.region,
136166		"instanceGroupManager": c.instanceGroupManager,
136167	})
136168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136169}
136170
136171// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
136172// Exactly one of *Operation or error will be non-nil. Any non-2xx
136173// status code is an error. Response headers are in either
136174// *Operation.ServerResponse.Header or (if a response was returned at
136175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136176// to check whether the returned error was because
136177// http.StatusNotModified was returned.
136178func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136179	gensupport.SetOptions(c.urlParams_, opts...)
136180	res, err := c.doRequest("json")
136181	if res != nil && res.StatusCode == http.StatusNotModified {
136182		if res.Body != nil {
136183			res.Body.Close()
136184		}
136185		return nil, &googleapi.Error{
136186			Code:   res.StatusCode,
136187			Header: res.Header,
136188		}
136189	}
136190	if err != nil {
136191		return nil, err
136192	}
136193	defer googleapi.CloseBody(res)
136194	if err := googleapi.CheckResponse(res); err != nil {
136195		return nil, err
136196	}
136197	ret := &Operation{
136198		ServerResponse: googleapi.ServerResponse{
136199			Header:         res.Header,
136200			HTTPStatusCode: res.StatusCode,
136201		},
136202	}
136203	target := &ret
136204	if err := gensupport.DecodeResponse(target, res); err != nil {
136205		return nil, err
136206	}
136207	return ret, nil
136208	// {
136209	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
136210	//   "httpMethod": "POST",
136211	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
136212	//   "parameterOrder": [
136213	//     "project",
136214	//     "region",
136215	//     "instanceGroupManager"
136216	//   ],
136217	//   "parameters": {
136218	//     "instanceGroupManager": {
136219	//       "description": "Name of the managed instance group.",
136220	//       "location": "path",
136221	//       "required": true,
136222	//       "type": "string"
136223	//     },
136224	//     "project": {
136225	//       "description": "Project ID for this request.",
136226	//       "location": "path",
136227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136228	//       "required": true,
136229	//       "type": "string"
136230	//     },
136231	//     "region": {
136232	//       "description": "Name of the region scoping this request.",
136233	//       "location": "path",
136234	//       "required": true,
136235	//       "type": "string"
136236	//     },
136237	//     "requestId": {
136238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136239	//       "location": "query",
136240	//       "type": "string"
136241	//     }
136242	//   },
136243	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
136244	//   "request": {
136245	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
136246	//   },
136247	//   "response": {
136248	//     "$ref": "Operation"
136249	//   },
136250	//   "scopes": [
136251	//     "https://www.googleapis.com/auth/cloud-platform",
136252	//     "https://www.googleapis.com/auth/compute"
136253	//   ]
136254	// }
136255
136256}
136257
136258// method id "compute.regionInstanceGroupManagers.testIamPermissions":
136259
136260type RegionInstanceGroupManagersTestIamPermissionsCall struct {
136261	s                      *Service
136262	project                string
136263	region                 string
136264	resource               string
136265	testpermissionsrequest *TestPermissionsRequest
136266	urlParams_             gensupport.URLParams
136267	ctx_                   context.Context
136268	header_                http.Header
136269}
136270
136271// TestIamPermissions: Returns permissions that a caller has on the
136272// specified resource.
136273func (r *RegionInstanceGroupManagersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupManagersTestIamPermissionsCall {
136274	c := &RegionInstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136275	c.project = project
136276	c.region = region
136277	c.resource = resource
136278	c.testpermissionsrequest = testpermissionsrequest
136279	return c
136280}
136281
136282// Fields allows partial responses to be retrieved. See
136283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136284// for more information.
136285func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersTestIamPermissionsCall {
136286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136287	return c
136288}
136289
136290// Context sets the context to be used in this call's Do method. Any
136291// pending HTTP request will be aborted if the provided context is
136292// canceled.
136293func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupManagersTestIamPermissionsCall {
136294	c.ctx_ = ctx
136295	return c
136296}
136297
136298// Header returns an http.Header that can be modified by the caller to
136299// add HTTP headers to the request.
136300func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
136301	if c.header_ == nil {
136302		c.header_ = make(http.Header)
136303	}
136304	return c.header_
136305}
136306
136307func (c *RegionInstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
136308	reqHeaders := make(http.Header)
136309	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
136310	for k, v := range c.header_ {
136311		reqHeaders[k] = v
136312	}
136313	reqHeaders.Set("User-Agent", c.s.userAgent())
136314	var body io.Reader = nil
136315	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
136316	if err != nil {
136317		return nil, err
136318	}
136319	reqHeaders.Set("Content-Type", "application/json")
136320	c.urlParams_.Set("alt", alt)
136321	c.urlParams_.Set("prettyPrint", "false")
136322	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions")
136323	urls += "?" + c.urlParams_.Encode()
136324	req, err := http.NewRequest("POST", urls, body)
136325	if err != nil {
136326		return nil, err
136327	}
136328	req.Header = reqHeaders
136329	googleapi.Expand(req.URL, map[string]string{
136330		"project":  c.project,
136331		"region":   c.region,
136332		"resource": c.resource,
136333	})
136334	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136335}
136336
136337// Do executes the "compute.regionInstanceGroupManagers.testIamPermissions" call.
136338// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
136339// non-2xx status code is an error. Response headers are in either
136340// *TestPermissionsResponse.ServerResponse.Header or (if a response was
136341// returned at all) in error.(*googleapi.Error).Header. Use
136342// googleapi.IsNotModified to check whether the returned error was
136343// because http.StatusNotModified was returned.
136344func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
136345	gensupport.SetOptions(c.urlParams_, opts...)
136346	res, err := c.doRequest("json")
136347	if res != nil && res.StatusCode == http.StatusNotModified {
136348		if res.Body != nil {
136349			res.Body.Close()
136350		}
136351		return nil, &googleapi.Error{
136352			Code:   res.StatusCode,
136353			Header: res.Header,
136354		}
136355	}
136356	if err != nil {
136357		return nil, err
136358	}
136359	defer googleapi.CloseBody(res)
136360	if err := googleapi.CheckResponse(res); err != nil {
136361		return nil, err
136362	}
136363	ret := &TestPermissionsResponse{
136364		ServerResponse: googleapi.ServerResponse{
136365			Header:         res.Header,
136366			HTTPStatusCode: res.StatusCode,
136367		},
136368	}
136369	target := &ret
136370	if err := gensupport.DecodeResponse(target, res); err != nil {
136371		return nil, err
136372	}
136373	return ret, nil
136374	// {
136375	//   "description": "Returns permissions that a caller has on the specified resource.",
136376	//   "httpMethod": "POST",
136377	//   "id": "compute.regionInstanceGroupManagers.testIamPermissions",
136378	//   "parameterOrder": [
136379	//     "project",
136380	//     "region",
136381	//     "resource"
136382	//   ],
136383	//   "parameters": {
136384	//     "project": {
136385	//       "description": "Project ID for this request.",
136386	//       "location": "path",
136387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136388	//       "required": true,
136389	//       "type": "string"
136390	//     },
136391	//     "region": {
136392	//       "description": "The name of the region for this request.",
136393	//       "location": "path",
136394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136395	//       "required": true,
136396	//       "type": "string"
136397	//     },
136398	//     "resource": {
136399	//       "description": "Name or id of the resource for this request.",
136400	//       "location": "path",
136401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136402	//       "required": true,
136403	//       "type": "string"
136404	//     }
136405	//   },
136406	//   "path": "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions",
136407	//   "request": {
136408	//     "$ref": "TestPermissionsRequest"
136409	//   },
136410	//   "response": {
136411	//     "$ref": "TestPermissionsResponse"
136412	//   },
136413	//   "scopes": [
136414	//     "https://www.googleapis.com/auth/cloud-platform",
136415	//     "https://www.googleapis.com/auth/compute",
136416	//     "https://www.googleapis.com/auth/compute.readonly"
136417	//   ]
136418	// }
136419
136420}
136421
136422// method id "compute.regionInstanceGroupManagers.update":
136423
136424type RegionInstanceGroupManagersUpdateCall struct {
136425	s                    *Service
136426	project              string
136427	region               string
136428	instanceGroupManager string
136429	instancegroupmanager *InstanceGroupManager
136430	urlParams_           gensupport.URLParams
136431	ctx_                 context.Context
136432	header_              http.Header
136433}
136434
136435// Update: Updates a managed instance group using the information that
136436// you specify in the request. This operation is marked as DONE when the
136437// group is updated even if the instances in the group have not yet been
136438// updated. You must separately verify the status of the individual
136439// instances with the listmanagedinstances method.
136440func (r *RegionInstanceGroupManagersService) Update(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersUpdateCall {
136441	c := &RegionInstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136442	c.project = project
136443	c.region = region
136444	c.instanceGroupManager = instanceGroupManager
136445	c.instancegroupmanager = instancegroupmanager
136446	return c
136447}
136448
136449// RequestId sets the optional parameter "requestId": An optional
136450// request ID to identify requests. Specify a unique request ID so that
136451// if you must retry your request, the server will know to ignore the
136452// request if it has already been completed.
136453//
136454// For example, consider a situation where you make an initial request
136455// and the request times out. If you make the request again with the
136456// same request ID, the server can check if original operation with the
136457// same request ID was received, and if so, will ignore the second
136458// request. This prevents clients from accidentally creating duplicate
136459// commitments.
136460//
136461// The request ID must be a valid UUID with the exception that zero UUID
136462// is not supported (00000000-0000-0000-0000-000000000000).
136463func (c *RegionInstanceGroupManagersUpdateCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdateCall {
136464	c.urlParams_.Set("requestId", requestId)
136465	return c
136466}
136467
136468// Fields allows partial responses to be retrieved. See
136469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136470// for more information.
136471func (c *RegionInstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdateCall {
136472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136473	return c
136474}
136475
136476// Context sets the context to be used in this call's Do method. Any
136477// pending HTTP request will be aborted if the provided context is
136478// canceled.
136479func (c *RegionInstanceGroupManagersUpdateCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdateCall {
136480	c.ctx_ = ctx
136481	return c
136482}
136483
136484// Header returns an http.Header that can be modified by the caller to
136485// add HTTP headers to the request.
136486func (c *RegionInstanceGroupManagersUpdateCall) Header() http.Header {
136487	if c.header_ == nil {
136488		c.header_ = make(http.Header)
136489	}
136490	return c.header_
136491}
136492
136493func (c *RegionInstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
136494	reqHeaders := make(http.Header)
136495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
136496	for k, v := range c.header_ {
136497		reqHeaders[k] = v
136498	}
136499	reqHeaders.Set("User-Agent", c.s.userAgent())
136500	var body io.Reader = nil
136501	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
136502	if err != nil {
136503		return nil, err
136504	}
136505	reqHeaders.Set("Content-Type", "application/json")
136506	c.urlParams_.Set("alt", alt)
136507	c.urlParams_.Set("prettyPrint", "false")
136508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
136509	urls += "?" + c.urlParams_.Encode()
136510	req, err := http.NewRequest("PUT", urls, body)
136511	if err != nil {
136512		return nil, err
136513	}
136514	req.Header = reqHeaders
136515	googleapi.Expand(req.URL, map[string]string{
136516		"project":              c.project,
136517		"region":               c.region,
136518		"instanceGroupManager": c.instanceGroupManager,
136519	})
136520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136521}
136522
136523// Do executes the "compute.regionInstanceGroupManagers.update" call.
136524// Exactly one of *Operation or error will be non-nil. Any non-2xx
136525// status code is an error. Response headers are in either
136526// *Operation.ServerResponse.Header or (if a response was returned at
136527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136528// to check whether the returned error was because
136529// http.StatusNotModified was returned.
136530func (c *RegionInstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136531	gensupport.SetOptions(c.urlParams_, opts...)
136532	res, err := c.doRequest("json")
136533	if res != nil && res.StatusCode == http.StatusNotModified {
136534		if res.Body != nil {
136535			res.Body.Close()
136536		}
136537		return nil, &googleapi.Error{
136538			Code:   res.StatusCode,
136539			Header: res.Header,
136540		}
136541	}
136542	if err != nil {
136543		return nil, err
136544	}
136545	defer googleapi.CloseBody(res)
136546	if err := googleapi.CheckResponse(res); err != nil {
136547		return nil, err
136548	}
136549	ret := &Operation{
136550		ServerResponse: googleapi.ServerResponse{
136551			Header:         res.Header,
136552			HTTPStatusCode: res.StatusCode,
136553		},
136554	}
136555	target := &ret
136556	if err := gensupport.DecodeResponse(target, res); err != nil {
136557		return nil, err
136558	}
136559	return ret, nil
136560	// {
136561	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.",
136562	//   "httpMethod": "PUT",
136563	//   "id": "compute.regionInstanceGroupManagers.update",
136564	//   "parameterOrder": [
136565	//     "project",
136566	//     "region",
136567	//     "instanceGroupManager"
136568	//   ],
136569	//   "parameters": {
136570	//     "instanceGroupManager": {
136571	//       "description": "The name of the instance group manager.",
136572	//       "location": "path",
136573	//       "required": true,
136574	//       "type": "string"
136575	//     },
136576	//     "project": {
136577	//       "description": "Project ID for this request.",
136578	//       "location": "path",
136579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136580	//       "required": true,
136581	//       "type": "string"
136582	//     },
136583	//     "region": {
136584	//       "description": "Name of the region scoping this request.",
136585	//       "location": "path",
136586	//       "required": true,
136587	//       "type": "string"
136588	//     },
136589	//     "requestId": {
136590	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136591	//       "location": "query",
136592	//       "type": "string"
136593	//     }
136594	//   },
136595	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
136596	//   "request": {
136597	//     "$ref": "InstanceGroupManager"
136598	//   },
136599	//   "response": {
136600	//     "$ref": "Operation"
136601	//   },
136602	//   "scopes": [
136603	//     "https://www.googleapis.com/auth/cloud-platform",
136604	//     "https://www.googleapis.com/auth/compute"
136605	//   ]
136606	// }
136607
136608}
136609
136610// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
136611
136612type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
136613	s                                                 *Service
136614	project                                           string
136615	region                                            string
136616	instanceGroupManager                              string
136617	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
136618	urlParams_                                        gensupport.URLParams
136619	ctx_                                              context.Context
136620	header_                                           http.Header
136621}
136622
136623// UpdatePerInstanceConfigs: Insert or update (for the ones that already
136624// exist) per-instance configs for the managed instance group.
136625// perInstanceConfig.instance serves as a key used to distinguish
136626// whether to perform insert or patch.
136627func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136628	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136629	c.project = project
136630	c.region = region
136631	c.instanceGroupManager = instanceGroupManager
136632	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
136633	return c
136634}
136635
136636// RequestId sets the optional parameter "requestId": An optional
136637// request ID to identify requests. Specify a unique request ID so that
136638// if you must retry your request, the server will know to ignore the
136639// request if it has already been completed.
136640//
136641// For example, consider a situation where you make an initial request
136642// and the request times out. If you make the request again with the
136643// same request ID, the server can check if original operation with the
136644// same request ID was received, and if so, will ignore the second
136645// request. This prevents clients from accidentally creating duplicate
136646// commitments.
136647//
136648// The request ID must be a valid UUID with the exception that zero UUID
136649// is not supported (00000000-0000-0000-0000-000000000000).
136650func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136651	c.urlParams_.Set("requestId", requestId)
136652	return c
136653}
136654
136655// Fields allows partial responses to be retrieved. See
136656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136657// for more information.
136658func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136660	return c
136661}
136662
136663// Context sets the context to be used in this call's Do method. Any
136664// pending HTTP request will be aborted if the provided context is
136665// canceled.
136666func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136667	c.ctx_ = ctx
136668	return c
136669}
136670
136671// Header returns an http.Header that can be modified by the caller to
136672// add HTTP headers to the request.
136673func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
136674	if c.header_ == nil {
136675		c.header_ = make(http.Header)
136676	}
136677	return c.header_
136678}
136679
136680func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
136681	reqHeaders := make(http.Header)
136682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
136683	for k, v := range c.header_ {
136684		reqHeaders[k] = v
136685	}
136686	reqHeaders.Set("User-Agent", c.s.userAgent())
136687	var body io.Reader = nil
136688	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
136689	if err != nil {
136690		return nil, err
136691	}
136692	reqHeaders.Set("Content-Type", "application/json")
136693	c.urlParams_.Set("alt", alt)
136694	c.urlParams_.Set("prettyPrint", "false")
136695	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
136696	urls += "?" + c.urlParams_.Encode()
136697	req, err := http.NewRequest("POST", urls, body)
136698	if err != nil {
136699		return nil, err
136700	}
136701	req.Header = reqHeaders
136702	googleapi.Expand(req.URL, map[string]string{
136703		"project":              c.project,
136704		"region":               c.region,
136705		"instanceGroupManager": c.instanceGroupManager,
136706	})
136707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136708}
136709
136710// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
136711// Exactly one of *Operation or error will be non-nil. Any non-2xx
136712// status code is an error. Response headers are in either
136713// *Operation.ServerResponse.Header or (if a response was returned at
136714// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136715// to check whether the returned error was because
136716// http.StatusNotModified was returned.
136717func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136718	gensupport.SetOptions(c.urlParams_, opts...)
136719	res, err := c.doRequest("json")
136720	if res != nil && res.StatusCode == http.StatusNotModified {
136721		if res.Body != nil {
136722			res.Body.Close()
136723		}
136724		return nil, &googleapi.Error{
136725			Code:   res.StatusCode,
136726			Header: res.Header,
136727		}
136728	}
136729	if err != nil {
136730		return nil, err
136731	}
136732	defer googleapi.CloseBody(res)
136733	if err := googleapi.CheckResponse(res); err != nil {
136734		return nil, err
136735	}
136736	ret := &Operation{
136737		ServerResponse: googleapi.ServerResponse{
136738			Header:         res.Header,
136739			HTTPStatusCode: res.StatusCode,
136740		},
136741	}
136742	target := &ret
136743	if err := gensupport.DecodeResponse(target, res); err != nil {
136744		return nil, err
136745	}
136746	return ret, nil
136747	// {
136748	//   "description": "Insert or update (for the ones that already exist) per-instance configs for the managed instance group. perInstanceConfig.instance serves as a key used to distinguish whether to perform insert or patch.",
136749	//   "httpMethod": "POST",
136750	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
136751	//   "parameterOrder": [
136752	//     "project",
136753	//     "region",
136754	//     "instanceGroupManager"
136755	//   ],
136756	//   "parameters": {
136757	//     "instanceGroupManager": {
136758	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
136759	//       "location": "path",
136760	//       "required": true,
136761	//       "type": "string"
136762	//     },
136763	//     "project": {
136764	//       "description": "Project ID for this request.",
136765	//       "location": "path",
136766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136767	//       "required": true,
136768	//       "type": "string"
136769	//     },
136770	//     "region": {
136771	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
136772	//       "location": "path",
136773	//       "required": true,
136774	//       "type": "string"
136775	//     },
136776	//     "requestId": {
136777	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136778	//       "location": "query",
136779	//       "type": "string"
136780	//     }
136781	//   },
136782	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
136783	//   "request": {
136784	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
136785	//   },
136786	//   "response": {
136787	//     "$ref": "Operation"
136788	//   },
136789	//   "scopes": [
136790	//     "https://www.googleapis.com/auth/cloud-platform",
136791	//     "https://www.googleapis.com/auth/compute"
136792	//   ]
136793	// }
136794
136795}
136796
136797// method id "compute.regionInstanceGroups.get":
136798
136799type RegionInstanceGroupsGetCall struct {
136800	s             *Service
136801	project       string
136802	region        string
136803	instanceGroup string
136804	urlParams_    gensupport.URLParams
136805	ifNoneMatch_  string
136806	ctx_          context.Context
136807	header_       http.Header
136808}
136809
136810// Get: Returns the specified instance group resource.
136811func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
136812	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136813	c.project = project
136814	c.region = region
136815	c.instanceGroup = instanceGroup
136816	return c
136817}
136818
136819// Fields allows partial responses to be retrieved. See
136820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136821// for more information.
136822func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
136823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136824	return c
136825}
136826
136827// IfNoneMatch sets the optional parameter which makes the operation
136828// fail if the object's ETag matches the given value. This is useful for
136829// getting updates only after the object has changed since the last
136830// request. Use googleapi.IsNotModified to check whether the response
136831// error from Do is the result of In-None-Match.
136832func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
136833	c.ifNoneMatch_ = entityTag
136834	return c
136835}
136836
136837// Context sets the context to be used in this call's Do method. Any
136838// pending HTTP request will be aborted if the provided context is
136839// canceled.
136840func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
136841	c.ctx_ = ctx
136842	return c
136843}
136844
136845// Header returns an http.Header that can be modified by the caller to
136846// add HTTP headers to the request.
136847func (c *RegionInstanceGroupsGetCall) Header() http.Header {
136848	if c.header_ == nil {
136849		c.header_ = make(http.Header)
136850	}
136851	return c.header_
136852}
136853
136854func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
136855	reqHeaders := make(http.Header)
136856	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
136857	for k, v := range c.header_ {
136858		reqHeaders[k] = v
136859	}
136860	reqHeaders.Set("User-Agent", c.s.userAgent())
136861	if c.ifNoneMatch_ != "" {
136862		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136863	}
136864	var body io.Reader = nil
136865	c.urlParams_.Set("alt", alt)
136866	c.urlParams_.Set("prettyPrint", "false")
136867	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
136868	urls += "?" + c.urlParams_.Encode()
136869	req, err := http.NewRequest("GET", urls, body)
136870	if err != nil {
136871		return nil, err
136872	}
136873	req.Header = reqHeaders
136874	googleapi.Expand(req.URL, map[string]string{
136875		"project":       c.project,
136876		"region":        c.region,
136877		"instanceGroup": c.instanceGroup,
136878	})
136879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136880}
136881
136882// Do executes the "compute.regionInstanceGroups.get" call.
136883// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
136884// status code is an error. Response headers are in either
136885// *InstanceGroup.ServerResponse.Header or (if a response was returned
136886// at all) in error.(*googleapi.Error).Header. Use
136887// googleapi.IsNotModified to check whether the returned error was
136888// because http.StatusNotModified was returned.
136889func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
136890	gensupport.SetOptions(c.urlParams_, opts...)
136891	res, err := c.doRequest("json")
136892	if res != nil && res.StatusCode == http.StatusNotModified {
136893		if res.Body != nil {
136894			res.Body.Close()
136895		}
136896		return nil, &googleapi.Error{
136897			Code:   res.StatusCode,
136898			Header: res.Header,
136899		}
136900	}
136901	if err != nil {
136902		return nil, err
136903	}
136904	defer googleapi.CloseBody(res)
136905	if err := googleapi.CheckResponse(res); err != nil {
136906		return nil, err
136907	}
136908	ret := &InstanceGroup{
136909		ServerResponse: googleapi.ServerResponse{
136910			Header:         res.Header,
136911			HTTPStatusCode: res.StatusCode,
136912		},
136913	}
136914	target := &ret
136915	if err := gensupport.DecodeResponse(target, res); err != nil {
136916		return nil, err
136917	}
136918	return ret, nil
136919	// {
136920	//   "description": "Returns the specified instance group resource.",
136921	//   "httpMethod": "GET",
136922	//   "id": "compute.regionInstanceGroups.get",
136923	//   "parameterOrder": [
136924	//     "project",
136925	//     "region",
136926	//     "instanceGroup"
136927	//   ],
136928	//   "parameters": {
136929	//     "instanceGroup": {
136930	//       "description": "Name of the instance group resource to return.",
136931	//       "location": "path",
136932	//       "required": true,
136933	//       "type": "string"
136934	//     },
136935	//     "project": {
136936	//       "description": "Project ID for this request.",
136937	//       "location": "path",
136938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136939	//       "required": true,
136940	//       "type": "string"
136941	//     },
136942	//     "region": {
136943	//       "description": "Name of the region scoping this request.",
136944	//       "location": "path",
136945	//       "required": true,
136946	//       "type": "string"
136947	//     }
136948	//   },
136949	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
136950	//   "response": {
136951	//     "$ref": "InstanceGroup"
136952	//   },
136953	//   "scopes": [
136954	//     "https://www.googleapis.com/auth/cloud-platform",
136955	//     "https://www.googleapis.com/auth/compute",
136956	//     "https://www.googleapis.com/auth/compute.readonly"
136957	//   ]
136958	// }
136959
136960}
136961
136962// method id "compute.regionInstanceGroups.list":
136963
136964type RegionInstanceGroupsListCall struct {
136965	s            *Service
136966	project      string
136967	region       string
136968	urlParams_   gensupport.URLParams
136969	ifNoneMatch_ string
136970	ctx_         context.Context
136971	header_      http.Header
136972}
136973
136974// List: Retrieves the list of instance group resources contained within
136975// the specified region.
136976func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
136977	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136978	c.project = project
136979	c.region = region
136980	return c
136981}
136982
136983// Filter sets the optional parameter "filter": A filter expression that
136984// filters resources listed in the response. The expression must specify
136985// the field name, a comparison operator, and the value that you want to
136986// use for filtering. The value must be a string, a number, or a
136987// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136988// `<`.
136989//
136990// For example, if you are filtering Compute Engine instances, you can
136991// exclude instances named `example-instance` by specifying `name !=
136992// example-instance`.
136993//
136994// You can also filter nested fields. For example, you could specify
136995// `scheduling.automaticRestart = false` to include instances only if
136996// they are not scheduled for automatic restarts. You can use filtering
136997// on nested fields to filter based on resource labels.
136998//
136999// To filter on multiple expressions, provide each separate expression
137000// within parentheses. For example: ``` (scheduling.automaticRestart =
137001// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137002// is an `AND` expression. However, you can include `AND` and `OR`
137003// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137004// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137005// (scheduling.automaticRestart = true) ```
137006func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
137007	c.urlParams_.Set("filter", filter)
137008	return c
137009}
137010
137011// MaxResults sets the optional parameter "maxResults": The maximum
137012// number of results per page that should be returned. If the number of
137013// available results is larger than `maxResults`, Compute Engine returns
137014// a `nextPageToken` that can be used to get the next page of results in
137015// subsequent list requests. Acceptable values are `0` to `500`,
137016// inclusive. (Default: `500`)
137017func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
137018	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137019	return c
137020}
137021
137022// OrderBy sets the optional parameter "orderBy": Sorts list results by
137023// a certain order. By default, results are returned in alphanumerical
137024// order based on the resource name.
137025//
137026// You can also sort results in descending order based on the creation
137027// timestamp using `orderBy="creationTimestamp desc". This sorts
137028// results based on the `creationTimestamp` field in reverse
137029// chronological order (newest result first). Use this to sort resources
137030// like operations so that the newest operation is returned
137031// first.
137032//
137033// Currently, only sorting by `name` or `creationTimestamp desc` is
137034// supported.
137035func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
137036	c.urlParams_.Set("orderBy", orderBy)
137037	return c
137038}
137039
137040// PageToken sets the optional parameter "pageToken": Specifies a page
137041// token to use. Set `pageToken` to the `nextPageToken` returned by a
137042// previous list request to get the next page of results.
137043func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
137044	c.urlParams_.Set("pageToken", pageToken)
137045	return c
137046}
137047
137048// ReturnPartialSuccess sets the optional parameter
137049// "returnPartialSuccess": Opt-in for partial success behavior which
137050// provides partial results in case of failure. The default value is
137051// false and the logic is the same as today.
137052func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall {
137053	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137054	return c
137055}
137056
137057// Fields allows partial responses to be retrieved. See
137058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137059// for more information.
137060func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
137061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137062	return c
137063}
137064
137065// IfNoneMatch sets the optional parameter which makes the operation
137066// fail if the object's ETag matches the given value. This is useful for
137067// getting updates only after the object has changed since the last
137068// request. Use googleapi.IsNotModified to check whether the response
137069// error from Do is the result of In-None-Match.
137070func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
137071	c.ifNoneMatch_ = entityTag
137072	return c
137073}
137074
137075// Context sets the context to be used in this call's Do method. Any
137076// pending HTTP request will be aborted if the provided context is
137077// canceled.
137078func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
137079	c.ctx_ = ctx
137080	return c
137081}
137082
137083// Header returns an http.Header that can be modified by the caller to
137084// add HTTP headers to the request.
137085func (c *RegionInstanceGroupsListCall) Header() http.Header {
137086	if c.header_ == nil {
137087		c.header_ = make(http.Header)
137088	}
137089	return c.header_
137090}
137091
137092func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
137093	reqHeaders := make(http.Header)
137094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
137095	for k, v := range c.header_ {
137096		reqHeaders[k] = v
137097	}
137098	reqHeaders.Set("User-Agent", c.s.userAgent())
137099	if c.ifNoneMatch_ != "" {
137100		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137101	}
137102	var body io.Reader = nil
137103	c.urlParams_.Set("alt", alt)
137104	c.urlParams_.Set("prettyPrint", "false")
137105	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
137106	urls += "?" + c.urlParams_.Encode()
137107	req, err := http.NewRequest("GET", urls, body)
137108	if err != nil {
137109		return nil, err
137110	}
137111	req.Header = reqHeaders
137112	googleapi.Expand(req.URL, map[string]string{
137113		"project": c.project,
137114		"region":  c.region,
137115	})
137116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137117}
137118
137119// Do executes the "compute.regionInstanceGroups.list" call.
137120// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
137121// non-2xx status code is an error. Response headers are in either
137122// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
137123// returned at all) in error.(*googleapi.Error).Header. Use
137124// googleapi.IsNotModified to check whether the returned error was
137125// because http.StatusNotModified was returned.
137126func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
137127	gensupport.SetOptions(c.urlParams_, opts...)
137128	res, err := c.doRequest("json")
137129	if res != nil && res.StatusCode == http.StatusNotModified {
137130		if res.Body != nil {
137131			res.Body.Close()
137132		}
137133		return nil, &googleapi.Error{
137134			Code:   res.StatusCode,
137135			Header: res.Header,
137136		}
137137	}
137138	if err != nil {
137139		return nil, err
137140	}
137141	defer googleapi.CloseBody(res)
137142	if err := googleapi.CheckResponse(res); err != nil {
137143		return nil, err
137144	}
137145	ret := &RegionInstanceGroupList{
137146		ServerResponse: googleapi.ServerResponse{
137147			Header:         res.Header,
137148			HTTPStatusCode: res.StatusCode,
137149		},
137150	}
137151	target := &ret
137152	if err := gensupport.DecodeResponse(target, res); err != nil {
137153		return nil, err
137154	}
137155	return ret, nil
137156	// {
137157	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
137158	//   "httpMethod": "GET",
137159	//   "id": "compute.regionInstanceGroups.list",
137160	//   "parameterOrder": [
137161	//     "project",
137162	//     "region"
137163	//   ],
137164	//   "parameters": {
137165	//     "filter": {
137166	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137167	//       "location": "query",
137168	//       "type": "string"
137169	//     },
137170	//     "maxResults": {
137171	//       "default": "500",
137172	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137173	//       "format": "uint32",
137174	//       "location": "query",
137175	//       "minimum": "0",
137176	//       "type": "integer"
137177	//     },
137178	//     "orderBy": {
137179	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
137180	//       "location": "query",
137181	//       "type": "string"
137182	//     },
137183	//     "pageToken": {
137184	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137185	//       "location": "query",
137186	//       "type": "string"
137187	//     },
137188	//     "project": {
137189	//       "description": "Project ID for this request.",
137190	//       "location": "path",
137191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137192	//       "required": true,
137193	//       "type": "string"
137194	//     },
137195	//     "region": {
137196	//       "description": "Name of the region scoping this request.",
137197	//       "location": "path",
137198	//       "required": true,
137199	//       "type": "string"
137200	//     },
137201	//     "returnPartialSuccess": {
137202	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
137203	//       "location": "query",
137204	//       "type": "boolean"
137205	//     }
137206	//   },
137207	//   "path": "{project}/regions/{region}/instanceGroups",
137208	//   "response": {
137209	//     "$ref": "RegionInstanceGroupList"
137210	//   },
137211	//   "scopes": [
137212	//     "https://www.googleapis.com/auth/cloud-platform",
137213	//     "https://www.googleapis.com/auth/compute",
137214	//     "https://www.googleapis.com/auth/compute.readonly"
137215	//   ]
137216	// }
137217
137218}
137219
137220// Pages invokes f for each page of results.
137221// A non-nil error returned from f will halt the iteration.
137222// The provided context supersedes any context provided to the Context method.
137223func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
137224	c.ctx_ = ctx
137225	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137226	for {
137227		x, err := c.Do()
137228		if err != nil {
137229			return err
137230		}
137231		if err := f(x); err != nil {
137232			return err
137233		}
137234		if x.NextPageToken == "" {
137235			return nil
137236		}
137237		c.PageToken(x.NextPageToken)
137238	}
137239}
137240
137241// method id "compute.regionInstanceGroups.listInstances":
137242
137243type RegionInstanceGroupsListInstancesCall struct {
137244	s                                        *Service
137245	project                                  string
137246	region                                   string
137247	instanceGroup                            string
137248	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
137249	urlParams_                               gensupport.URLParams
137250	ctx_                                     context.Context
137251	header_                                  http.Header
137252}
137253
137254// ListInstances: Lists the instances in the specified instance group
137255// and displays information about the named ports. Depending on the
137256// specified options, this method can list all instances or only the
137257// instances that are running.
137258func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
137259	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137260	c.project = project
137261	c.region = region
137262	c.instanceGroup = instanceGroup
137263	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
137264	return c
137265}
137266
137267// Filter sets the optional parameter "filter": A filter expression that
137268// filters resources listed in the response. The expression must specify
137269// the field name, a comparison operator, and the value that you want to
137270// use for filtering. The value must be a string, a number, or a
137271// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137272// `<`.
137273//
137274// For example, if you are filtering Compute Engine instances, you can
137275// exclude instances named `example-instance` by specifying `name !=
137276// example-instance`.
137277//
137278// You can also filter nested fields. For example, you could specify
137279// `scheduling.automaticRestart = false` to include instances only if
137280// they are not scheduled for automatic restarts. You can use filtering
137281// on nested fields to filter based on resource labels.
137282//
137283// To filter on multiple expressions, provide each separate expression
137284// within parentheses. For example: ``` (scheduling.automaticRestart =
137285// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137286// is an `AND` expression. However, you can include `AND` and `OR`
137287// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137288// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137289// (scheduling.automaticRestart = true) ```
137290func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
137291	c.urlParams_.Set("filter", filter)
137292	return c
137293}
137294
137295// MaxResults sets the optional parameter "maxResults": The maximum
137296// number of results per page that should be returned. If the number of
137297// available results is larger than `maxResults`, Compute Engine returns
137298// a `nextPageToken` that can be used to get the next page of results in
137299// subsequent list requests. Acceptable values are `0` to `500`,
137300// inclusive. (Default: `500`)
137301func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
137302	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137303	return c
137304}
137305
137306// OrderBy sets the optional parameter "orderBy": Sorts list results by
137307// a certain order. By default, results are returned in alphanumerical
137308// order based on the resource name.
137309//
137310// You can also sort results in descending order based on the creation
137311// timestamp using `orderBy="creationTimestamp desc". This sorts
137312// results based on the `creationTimestamp` field in reverse
137313// chronological order (newest result first). Use this to sort resources
137314// like operations so that the newest operation is returned
137315// first.
137316//
137317// Currently, only sorting by `name` or `creationTimestamp desc` is
137318// supported.
137319func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
137320	c.urlParams_.Set("orderBy", orderBy)
137321	return c
137322}
137323
137324// PageToken sets the optional parameter "pageToken": Specifies a page
137325// token to use. Set `pageToken` to the `nextPageToken` returned by a
137326// previous list request to get the next page of results.
137327func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
137328	c.urlParams_.Set("pageToken", pageToken)
137329	return c
137330}
137331
137332// ReturnPartialSuccess sets the optional parameter
137333// "returnPartialSuccess": Opt-in for partial success behavior which
137334// provides partial results in case of failure. The default value is
137335// false and the logic is the same as today.
137336func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall {
137337	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137338	return c
137339}
137340
137341// Fields allows partial responses to be retrieved. See
137342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137343// for more information.
137344func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
137345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137346	return c
137347}
137348
137349// Context sets the context to be used in this call's Do method. Any
137350// pending HTTP request will be aborted if the provided context is
137351// canceled.
137352func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
137353	c.ctx_ = ctx
137354	return c
137355}
137356
137357// Header returns an http.Header that can be modified by the caller to
137358// add HTTP headers to the request.
137359func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
137360	if c.header_ == nil {
137361		c.header_ = make(http.Header)
137362	}
137363	return c.header_
137364}
137365
137366func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
137367	reqHeaders := make(http.Header)
137368	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
137369	for k, v := range c.header_ {
137370		reqHeaders[k] = v
137371	}
137372	reqHeaders.Set("User-Agent", c.s.userAgent())
137373	var body io.Reader = nil
137374	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
137375	if err != nil {
137376		return nil, err
137377	}
137378	reqHeaders.Set("Content-Type", "application/json")
137379	c.urlParams_.Set("alt", alt)
137380	c.urlParams_.Set("prettyPrint", "false")
137381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
137382	urls += "?" + c.urlParams_.Encode()
137383	req, err := http.NewRequest("POST", urls, body)
137384	if err != nil {
137385		return nil, err
137386	}
137387	req.Header = reqHeaders
137388	googleapi.Expand(req.URL, map[string]string{
137389		"project":       c.project,
137390		"region":        c.region,
137391		"instanceGroup": c.instanceGroup,
137392	})
137393	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137394}
137395
137396// Do executes the "compute.regionInstanceGroups.listInstances" call.
137397// Exactly one of *RegionInstanceGroupsListInstances or error will be
137398// non-nil. Any non-2xx status code is an error. Response headers are in
137399// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
137400// (if a response was returned at all) in
137401// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
137402// whether the returned error was because http.StatusNotModified was
137403// returned.
137404func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
137405	gensupport.SetOptions(c.urlParams_, opts...)
137406	res, err := c.doRequest("json")
137407	if res != nil && res.StatusCode == http.StatusNotModified {
137408		if res.Body != nil {
137409			res.Body.Close()
137410		}
137411		return nil, &googleapi.Error{
137412			Code:   res.StatusCode,
137413			Header: res.Header,
137414		}
137415	}
137416	if err != nil {
137417		return nil, err
137418	}
137419	defer googleapi.CloseBody(res)
137420	if err := googleapi.CheckResponse(res); err != nil {
137421		return nil, err
137422	}
137423	ret := &RegionInstanceGroupsListInstances{
137424		ServerResponse: googleapi.ServerResponse{
137425			Header:         res.Header,
137426			HTTPStatusCode: res.StatusCode,
137427		},
137428	}
137429	target := &ret
137430	if err := gensupport.DecodeResponse(target, res); err != nil {
137431		return nil, err
137432	}
137433	return ret, nil
137434	// {
137435	//   "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.",
137436	//   "httpMethod": "POST",
137437	//   "id": "compute.regionInstanceGroups.listInstances",
137438	//   "parameterOrder": [
137439	//     "project",
137440	//     "region",
137441	//     "instanceGroup"
137442	//   ],
137443	//   "parameters": {
137444	//     "filter": {
137445	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137446	//       "location": "query",
137447	//       "type": "string"
137448	//     },
137449	//     "instanceGroup": {
137450	//       "description": "Name of the regional instance group for which we want to list the instances.",
137451	//       "location": "path",
137452	//       "required": true,
137453	//       "type": "string"
137454	//     },
137455	//     "maxResults": {
137456	//       "default": "500",
137457	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137458	//       "format": "uint32",
137459	//       "location": "query",
137460	//       "minimum": "0",
137461	//       "type": "integer"
137462	//     },
137463	//     "orderBy": {
137464	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
137465	//       "location": "query",
137466	//       "type": "string"
137467	//     },
137468	//     "pageToken": {
137469	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137470	//       "location": "query",
137471	//       "type": "string"
137472	//     },
137473	//     "project": {
137474	//       "description": "Project ID for this request.",
137475	//       "location": "path",
137476	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137477	//       "required": true,
137478	//       "type": "string"
137479	//     },
137480	//     "region": {
137481	//       "description": "Name of the region scoping this request.",
137482	//       "location": "path",
137483	//       "required": true,
137484	//       "type": "string"
137485	//     },
137486	//     "returnPartialSuccess": {
137487	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
137488	//       "location": "query",
137489	//       "type": "boolean"
137490	//     }
137491	//   },
137492	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
137493	//   "request": {
137494	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
137495	//   },
137496	//   "response": {
137497	//     "$ref": "RegionInstanceGroupsListInstances"
137498	//   },
137499	//   "scopes": [
137500	//     "https://www.googleapis.com/auth/cloud-platform",
137501	//     "https://www.googleapis.com/auth/compute",
137502	//     "https://www.googleapis.com/auth/compute.readonly"
137503	//   ]
137504	// }
137505
137506}
137507
137508// Pages invokes f for each page of results.
137509// A non-nil error returned from f will halt the iteration.
137510// The provided context supersedes any context provided to the Context method.
137511func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
137512	c.ctx_ = ctx
137513	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137514	for {
137515		x, err := c.Do()
137516		if err != nil {
137517			return err
137518		}
137519		if err := f(x); err != nil {
137520			return err
137521		}
137522		if x.NextPageToken == "" {
137523			return nil
137524		}
137525		c.PageToken(x.NextPageToken)
137526	}
137527}
137528
137529// method id "compute.regionInstanceGroups.setNamedPorts":
137530
137531type RegionInstanceGroupsSetNamedPortsCall struct {
137532	s                                        *Service
137533	project                                  string
137534	region                                   string
137535	instanceGroup                            string
137536	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
137537	urlParams_                               gensupport.URLParams
137538	ctx_                                     context.Context
137539	header_                                  http.Header
137540}
137541
137542// SetNamedPorts: Sets the named ports for the specified regional
137543// instance group.
137544func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
137545	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137546	c.project = project
137547	c.region = region
137548	c.instanceGroup = instanceGroup
137549	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
137550	return c
137551}
137552
137553// RequestId sets the optional parameter "requestId": An optional
137554// request ID to identify requests. Specify a unique request ID so that
137555// if you must retry your request, the server will know to ignore the
137556// request if it has already been completed.
137557//
137558// For example, consider a situation where you make an initial request
137559// and the request times out. If you make the request again with the
137560// same request ID, the server can check if original operation with the
137561// same request ID was received, and if so, will ignore the second
137562// request. This prevents clients from accidentally creating duplicate
137563// commitments.
137564//
137565// The request ID must be a valid UUID with the exception that zero UUID
137566// is not supported (00000000-0000-0000-0000-000000000000).
137567func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
137568	c.urlParams_.Set("requestId", requestId)
137569	return c
137570}
137571
137572// Fields allows partial responses to be retrieved. See
137573// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137574// for more information.
137575func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
137576	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137577	return c
137578}
137579
137580// Context sets the context to be used in this call's Do method. Any
137581// pending HTTP request will be aborted if the provided context is
137582// canceled.
137583func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
137584	c.ctx_ = ctx
137585	return c
137586}
137587
137588// Header returns an http.Header that can be modified by the caller to
137589// add HTTP headers to the request.
137590func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
137591	if c.header_ == nil {
137592		c.header_ = make(http.Header)
137593	}
137594	return c.header_
137595}
137596
137597func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
137598	reqHeaders := make(http.Header)
137599	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
137600	for k, v := range c.header_ {
137601		reqHeaders[k] = v
137602	}
137603	reqHeaders.Set("User-Agent", c.s.userAgent())
137604	var body io.Reader = nil
137605	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
137606	if err != nil {
137607		return nil, err
137608	}
137609	reqHeaders.Set("Content-Type", "application/json")
137610	c.urlParams_.Set("alt", alt)
137611	c.urlParams_.Set("prettyPrint", "false")
137612	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
137613	urls += "?" + c.urlParams_.Encode()
137614	req, err := http.NewRequest("POST", urls, body)
137615	if err != nil {
137616		return nil, err
137617	}
137618	req.Header = reqHeaders
137619	googleapi.Expand(req.URL, map[string]string{
137620		"project":       c.project,
137621		"region":        c.region,
137622		"instanceGroup": c.instanceGroup,
137623	})
137624	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137625}
137626
137627// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
137628// Exactly one of *Operation or error will be non-nil. Any non-2xx
137629// status code is an error. Response headers are in either
137630// *Operation.ServerResponse.Header or (if a response was returned at
137631// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137632// to check whether the returned error was because
137633// http.StatusNotModified was returned.
137634func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137635	gensupport.SetOptions(c.urlParams_, opts...)
137636	res, err := c.doRequest("json")
137637	if res != nil && res.StatusCode == http.StatusNotModified {
137638		if res.Body != nil {
137639			res.Body.Close()
137640		}
137641		return nil, &googleapi.Error{
137642			Code:   res.StatusCode,
137643			Header: res.Header,
137644		}
137645	}
137646	if err != nil {
137647		return nil, err
137648	}
137649	defer googleapi.CloseBody(res)
137650	if err := googleapi.CheckResponse(res); err != nil {
137651		return nil, err
137652	}
137653	ret := &Operation{
137654		ServerResponse: googleapi.ServerResponse{
137655			Header:         res.Header,
137656			HTTPStatusCode: res.StatusCode,
137657		},
137658	}
137659	target := &ret
137660	if err := gensupport.DecodeResponse(target, res); err != nil {
137661		return nil, err
137662	}
137663	return ret, nil
137664	// {
137665	//   "description": "Sets the named ports for the specified regional instance group.",
137666	//   "httpMethod": "POST",
137667	//   "id": "compute.regionInstanceGroups.setNamedPorts",
137668	//   "parameterOrder": [
137669	//     "project",
137670	//     "region",
137671	//     "instanceGroup"
137672	//   ],
137673	//   "parameters": {
137674	//     "instanceGroup": {
137675	//       "description": "The name of the regional instance group where the named ports are updated.",
137676	//       "location": "path",
137677	//       "required": true,
137678	//       "type": "string"
137679	//     },
137680	//     "project": {
137681	//       "description": "Project ID for this request.",
137682	//       "location": "path",
137683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137684	//       "required": true,
137685	//       "type": "string"
137686	//     },
137687	//     "region": {
137688	//       "description": "Name of the region scoping this request.",
137689	//       "location": "path",
137690	//       "required": true,
137691	//       "type": "string"
137692	//     },
137693	//     "requestId": {
137694	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137695	//       "location": "query",
137696	//       "type": "string"
137697	//     }
137698	//   },
137699	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
137700	//   "request": {
137701	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
137702	//   },
137703	//   "response": {
137704	//     "$ref": "Operation"
137705	//   },
137706	//   "scopes": [
137707	//     "https://www.googleapis.com/auth/cloud-platform",
137708	//     "https://www.googleapis.com/auth/compute"
137709	//   ]
137710	// }
137711
137712}
137713
137714// method id "compute.regionInstanceGroups.testIamPermissions":
137715
137716type RegionInstanceGroupsTestIamPermissionsCall struct {
137717	s                      *Service
137718	project                string
137719	region                 string
137720	resource               string
137721	testpermissionsrequest *TestPermissionsRequest
137722	urlParams_             gensupport.URLParams
137723	ctx_                   context.Context
137724	header_                http.Header
137725}
137726
137727// TestIamPermissions: Returns permissions that a caller has on the
137728// specified resource.
137729func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall {
137730	c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137731	c.project = project
137732	c.region = region
137733	c.resource = resource
137734	c.testpermissionsrequest = testpermissionsrequest
137735	return c
137736}
137737
137738// Fields allows partial responses to be retrieved. See
137739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137740// for more information.
137741func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall {
137742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137743	return c
137744}
137745
137746// Context sets the context to be used in this call's Do method. Any
137747// pending HTTP request will be aborted if the provided context is
137748// canceled.
137749func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall {
137750	c.ctx_ = ctx
137751	return c
137752}
137753
137754// Header returns an http.Header that can be modified by the caller to
137755// add HTTP headers to the request.
137756func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header {
137757	if c.header_ == nil {
137758		c.header_ = make(http.Header)
137759	}
137760	return c.header_
137761}
137762
137763func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
137764	reqHeaders := make(http.Header)
137765	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
137766	for k, v := range c.header_ {
137767		reqHeaders[k] = v
137768	}
137769	reqHeaders.Set("User-Agent", c.s.userAgent())
137770	var body io.Reader = nil
137771	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
137772	if err != nil {
137773		return nil, err
137774	}
137775	reqHeaders.Set("Content-Type", "application/json")
137776	c.urlParams_.Set("alt", alt)
137777	c.urlParams_.Set("prettyPrint", "false")
137778	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions")
137779	urls += "?" + c.urlParams_.Encode()
137780	req, err := http.NewRequest("POST", urls, body)
137781	if err != nil {
137782		return nil, err
137783	}
137784	req.Header = reqHeaders
137785	googleapi.Expand(req.URL, map[string]string{
137786		"project":  c.project,
137787		"region":   c.region,
137788		"resource": c.resource,
137789	})
137790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137791}
137792
137793// Do executes the "compute.regionInstanceGroups.testIamPermissions" call.
137794// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
137795// non-2xx status code is an error. Response headers are in either
137796// *TestPermissionsResponse.ServerResponse.Header or (if a response was
137797// returned at all) in error.(*googleapi.Error).Header. Use
137798// googleapi.IsNotModified to check whether the returned error was
137799// because http.StatusNotModified was returned.
137800func (c *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
137801	gensupport.SetOptions(c.urlParams_, opts...)
137802	res, err := c.doRequest("json")
137803	if res != nil && res.StatusCode == http.StatusNotModified {
137804		if res.Body != nil {
137805			res.Body.Close()
137806		}
137807		return nil, &googleapi.Error{
137808			Code:   res.StatusCode,
137809			Header: res.Header,
137810		}
137811	}
137812	if err != nil {
137813		return nil, err
137814	}
137815	defer googleapi.CloseBody(res)
137816	if err := googleapi.CheckResponse(res); err != nil {
137817		return nil, err
137818	}
137819	ret := &TestPermissionsResponse{
137820		ServerResponse: googleapi.ServerResponse{
137821			Header:         res.Header,
137822			HTTPStatusCode: res.StatusCode,
137823		},
137824	}
137825	target := &ret
137826	if err := gensupport.DecodeResponse(target, res); err != nil {
137827		return nil, err
137828	}
137829	return ret, nil
137830	// {
137831	//   "description": "Returns permissions that a caller has on the specified resource.",
137832	//   "httpMethod": "POST",
137833	//   "id": "compute.regionInstanceGroups.testIamPermissions",
137834	//   "parameterOrder": [
137835	//     "project",
137836	//     "region",
137837	//     "resource"
137838	//   ],
137839	//   "parameters": {
137840	//     "project": {
137841	//       "description": "Project ID for this request.",
137842	//       "location": "path",
137843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137844	//       "required": true,
137845	//       "type": "string"
137846	//     },
137847	//     "region": {
137848	//       "description": "The name of the region for this request.",
137849	//       "location": "path",
137850	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137851	//       "required": true,
137852	//       "type": "string"
137853	//     },
137854	//     "resource": {
137855	//       "description": "Name or id of the resource for this request.",
137856	//       "location": "path",
137857	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137858	//       "required": true,
137859	//       "type": "string"
137860	//     }
137861	//   },
137862	//   "path": "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
137863	//   "request": {
137864	//     "$ref": "TestPermissionsRequest"
137865	//   },
137866	//   "response": {
137867	//     "$ref": "TestPermissionsResponse"
137868	//   },
137869	//   "scopes": [
137870	//     "https://www.googleapis.com/auth/cloud-platform",
137871	//     "https://www.googleapis.com/auth/compute",
137872	//     "https://www.googleapis.com/auth/compute.readonly"
137873	//   ]
137874	// }
137875
137876}
137877
137878// method id "compute.regionInstances.bulkInsert":
137879
137880type RegionInstancesBulkInsertCall struct {
137881	s                          *Service
137882	project                    string
137883	region                     string
137884	bulkinsertinstanceresource *BulkInsertInstanceResource
137885	urlParams_                 gensupport.URLParams
137886	ctx_                       context.Context
137887	header_                    http.Header
137888}
137889
137890// BulkInsert: Creates multiple instances in a given region. Count
137891// specifies the number of instances to create.
137892func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall {
137893	c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137894	c.project = project
137895	c.region = region
137896	c.bulkinsertinstanceresource = bulkinsertinstanceresource
137897	return c
137898}
137899
137900// RequestId sets the optional parameter "requestId": An optional
137901// request ID to identify requests. Specify a unique request ID so that
137902// if you must retry your request, the server will know to ignore the
137903// request if it has already been completed.
137904//
137905// For example, consider a situation where you make an initial request
137906// and the request times out. If you make the request again with the
137907// same request ID, the server can check if original operation with the
137908// same request ID was received, and if so, will ignore the second
137909// request. This prevents clients from accidentally creating duplicate
137910// commitments.
137911//
137912// The request ID must be a valid UUID with the exception that zero UUID
137913// is not supported (00000000-0000-0000-0000-000000000000).
137914func (c *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall {
137915	c.urlParams_.Set("requestId", requestId)
137916	return c
137917}
137918
137919// Fields allows partial responses to be retrieved. See
137920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137921// for more information.
137922func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall {
137923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137924	return c
137925}
137926
137927// Context sets the context to be used in this call's Do method. Any
137928// pending HTTP request will be aborted if the provided context is
137929// canceled.
137930func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall {
137931	c.ctx_ = ctx
137932	return c
137933}
137934
137935// Header returns an http.Header that can be modified by the caller to
137936// add HTTP headers to the request.
137937func (c *RegionInstancesBulkInsertCall) Header() http.Header {
137938	if c.header_ == nil {
137939		c.header_ = make(http.Header)
137940	}
137941	return c.header_
137942}
137943
137944func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
137945	reqHeaders := make(http.Header)
137946	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
137947	for k, v := range c.header_ {
137948		reqHeaders[k] = v
137949	}
137950	reqHeaders.Set("User-Agent", c.s.userAgent())
137951	var body io.Reader = nil
137952	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
137953	if err != nil {
137954		return nil, err
137955	}
137956	reqHeaders.Set("Content-Type", "application/json")
137957	c.urlParams_.Set("alt", alt)
137958	c.urlParams_.Set("prettyPrint", "false")
137959	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instances/bulkInsert")
137960	urls += "?" + c.urlParams_.Encode()
137961	req, err := http.NewRequest("POST", urls, body)
137962	if err != nil {
137963		return nil, err
137964	}
137965	req.Header = reqHeaders
137966	googleapi.Expand(req.URL, map[string]string{
137967		"project": c.project,
137968		"region":  c.region,
137969	})
137970	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137971}
137972
137973// Do executes the "compute.regionInstances.bulkInsert" call.
137974// Exactly one of *Operation or error will be non-nil. Any non-2xx
137975// status code is an error. Response headers are in either
137976// *Operation.ServerResponse.Header or (if a response was returned at
137977// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137978// to check whether the returned error was because
137979// http.StatusNotModified was returned.
137980func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137981	gensupport.SetOptions(c.urlParams_, opts...)
137982	res, err := c.doRequest("json")
137983	if res != nil && res.StatusCode == http.StatusNotModified {
137984		if res.Body != nil {
137985			res.Body.Close()
137986		}
137987		return nil, &googleapi.Error{
137988			Code:   res.StatusCode,
137989			Header: res.Header,
137990		}
137991	}
137992	if err != nil {
137993		return nil, err
137994	}
137995	defer googleapi.CloseBody(res)
137996	if err := googleapi.CheckResponse(res); err != nil {
137997		return nil, err
137998	}
137999	ret := &Operation{
138000		ServerResponse: googleapi.ServerResponse{
138001			Header:         res.Header,
138002			HTTPStatusCode: res.StatusCode,
138003		},
138004	}
138005	target := &ret
138006	if err := gensupport.DecodeResponse(target, res); err != nil {
138007		return nil, err
138008	}
138009	return ret, nil
138010	// {
138011	//   "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.",
138012	//   "httpMethod": "POST",
138013	//   "id": "compute.regionInstances.bulkInsert",
138014	//   "parameterOrder": [
138015	//     "project",
138016	//     "region"
138017	//   ],
138018	//   "parameters": {
138019	//     "project": {
138020	//       "description": "Project ID for this request.",
138021	//       "location": "path",
138022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138023	//       "required": true,
138024	//       "type": "string"
138025	//     },
138026	//     "region": {
138027	//       "description": "The name of the region for this request.",
138028	//       "location": "path",
138029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138030	//       "required": true,
138031	//       "type": "string"
138032	//     },
138033	//     "requestId": {
138034	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138035	//       "location": "query",
138036	//       "type": "string"
138037	//     }
138038	//   },
138039	//   "path": "{project}/regions/{region}/instances/bulkInsert",
138040	//   "request": {
138041	//     "$ref": "BulkInsertInstanceResource"
138042	//   },
138043	//   "response": {
138044	//     "$ref": "Operation"
138045	//   },
138046	//   "scopes": [
138047	//     "https://www.googleapis.com/auth/cloud-platform",
138048	//     "https://www.googleapis.com/auth/compute"
138049	//   ]
138050	// }
138051
138052}
138053
138054// method id "compute.regionNetworkEndpointGroups.delete":
138055
138056type RegionNetworkEndpointGroupsDeleteCall struct {
138057	s                    *Service
138058	project              string
138059	region               string
138060	networkEndpointGroup string
138061	urlParams_           gensupport.URLParams
138062	ctx_                 context.Context
138063	header_              http.Header
138064}
138065
138066// Delete: Deletes the specified network endpoint group. Note that the
138067// NEG cannot be deleted if it is configured as a backend of a backend
138068// service.
138069func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
138070	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138071	c.project = project
138072	c.region = region
138073	c.networkEndpointGroup = networkEndpointGroup
138074	return c
138075}
138076
138077// RequestId sets the optional parameter "requestId": An optional
138078// request ID to identify requests. Specify a unique request ID so that
138079// if you must retry your request, the server will know to ignore the
138080// request if it has already been completed.
138081//
138082// For example, consider a situation where you make an initial request
138083// and the request times out. If you make the request again with the
138084// same request ID, the server can check if original operation with the
138085// same request ID was received, and if so, will ignore the second
138086// request. This prevents clients from accidentally creating duplicate
138087// commitments.
138088//
138089// The request ID must be a valid UUID with the exception that zero UUID
138090// is not supported (00000000-0000-0000-0000-000000000000).
138091func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
138092	c.urlParams_.Set("requestId", requestId)
138093	return c
138094}
138095
138096// Fields allows partial responses to be retrieved. See
138097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138098// for more information.
138099func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
138100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138101	return c
138102}
138103
138104// Context sets the context to be used in this call's Do method. Any
138105// pending HTTP request will be aborted if the provided context is
138106// canceled.
138107func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
138108	c.ctx_ = ctx
138109	return c
138110}
138111
138112// Header returns an http.Header that can be modified by the caller to
138113// add HTTP headers to the request.
138114func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
138115	if c.header_ == nil {
138116		c.header_ = make(http.Header)
138117	}
138118	return c.header_
138119}
138120
138121func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
138122	reqHeaders := make(http.Header)
138123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
138124	for k, v := range c.header_ {
138125		reqHeaders[k] = v
138126	}
138127	reqHeaders.Set("User-Agent", c.s.userAgent())
138128	var body io.Reader = nil
138129	c.urlParams_.Set("alt", alt)
138130	c.urlParams_.Set("prettyPrint", "false")
138131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
138132	urls += "?" + c.urlParams_.Encode()
138133	req, err := http.NewRequest("DELETE", urls, body)
138134	if err != nil {
138135		return nil, err
138136	}
138137	req.Header = reqHeaders
138138	googleapi.Expand(req.URL, map[string]string{
138139		"project":              c.project,
138140		"region":               c.region,
138141		"networkEndpointGroup": c.networkEndpointGroup,
138142	})
138143	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138144}
138145
138146// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
138147// Exactly one of *Operation or error will be non-nil. Any non-2xx
138148// status code is an error. Response headers are in either
138149// *Operation.ServerResponse.Header or (if a response was returned at
138150// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138151// to check whether the returned error was because
138152// http.StatusNotModified was returned.
138153func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138154	gensupport.SetOptions(c.urlParams_, opts...)
138155	res, err := c.doRequest("json")
138156	if res != nil && res.StatusCode == http.StatusNotModified {
138157		if res.Body != nil {
138158			res.Body.Close()
138159		}
138160		return nil, &googleapi.Error{
138161			Code:   res.StatusCode,
138162			Header: res.Header,
138163		}
138164	}
138165	if err != nil {
138166		return nil, err
138167	}
138168	defer googleapi.CloseBody(res)
138169	if err := googleapi.CheckResponse(res); err != nil {
138170		return nil, err
138171	}
138172	ret := &Operation{
138173		ServerResponse: googleapi.ServerResponse{
138174			Header:         res.Header,
138175			HTTPStatusCode: res.StatusCode,
138176		},
138177	}
138178	target := &ret
138179	if err := gensupport.DecodeResponse(target, res); err != nil {
138180		return nil, err
138181	}
138182	return ret, nil
138183	// {
138184	//   "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.",
138185	//   "httpMethod": "DELETE",
138186	//   "id": "compute.regionNetworkEndpointGroups.delete",
138187	//   "parameterOrder": [
138188	//     "project",
138189	//     "region",
138190	//     "networkEndpointGroup"
138191	//   ],
138192	//   "parameters": {
138193	//     "networkEndpointGroup": {
138194	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
138195	//       "location": "path",
138196	//       "required": true,
138197	//       "type": "string"
138198	//     },
138199	//     "project": {
138200	//       "description": "Project ID for this request.",
138201	//       "location": "path",
138202	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138203	//       "required": true,
138204	//       "type": "string"
138205	//     },
138206	//     "region": {
138207	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
138208	//       "location": "path",
138209	//       "required": true,
138210	//       "type": "string"
138211	//     },
138212	//     "requestId": {
138213	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138214	//       "location": "query",
138215	//       "type": "string"
138216	//     }
138217	//   },
138218	//   "path": "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
138219	//   "response": {
138220	//     "$ref": "Operation"
138221	//   },
138222	//   "scopes": [
138223	//     "https://www.googleapis.com/auth/cloud-platform",
138224	//     "https://www.googleapis.com/auth/compute"
138225	//   ]
138226	// }
138227
138228}
138229
138230// method id "compute.regionNetworkEndpointGroups.get":
138231
138232type RegionNetworkEndpointGroupsGetCall struct {
138233	s                    *Service
138234	project              string
138235	region               string
138236	networkEndpointGroup string
138237	urlParams_           gensupport.URLParams
138238	ifNoneMatch_         string
138239	ctx_                 context.Context
138240	header_              http.Header
138241}
138242
138243// Get: Returns the specified network endpoint group. Gets a list of
138244// available network endpoint groups by making a list() request.
138245func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
138246	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138247	c.project = project
138248	c.region = region
138249	c.networkEndpointGroup = networkEndpointGroup
138250	return c
138251}
138252
138253// Fields allows partial responses to be retrieved. See
138254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138255// for more information.
138256func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
138257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138258	return c
138259}
138260
138261// IfNoneMatch sets the optional parameter which makes the operation
138262// fail if the object's ETag matches the given value. This is useful for
138263// getting updates only after the object has changed since the last
138264// request. Use googleapi.IsNotModified to check whether the response
138265// error from Do is the result of In-None-Match.
138266func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
138267	c.ifNoneMatch_ = entityTag
138268	return c
138269}
138270
138271// Context sets the context to be used in this call's Do method. Any
138272// pending HTTP request will be aborted if the provided context is
138273// canceled.
138274func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
138275	c.ctx_ = ctx
138276	return c
138277}
138278
138279// Header returns an http.Header that can be modified by the caller to
138280// add HTTP headers to the request.
138281func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
138282	if c.header_ == nil {
138283		c.header_ = make(http.Header)
138284	}
138285	return c.header_
138286}
138287
138288func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
138289	reqHeaders := make(http.Header)
138290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
138291	for k, v := range c.header_ {
138292		reqHeaders[k] = v
138293	}
138294	reqHeaders.Set("User-Agent", c.s.userAgent())
138295	if c.ifNoneMatch_ != "" {
138296		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138297	}
138298	var body io.Reader = nil
138299	c.urlParams_.Set("alt", alt)
138300	c.urlParams_.Set("prettyPrint", "false")
138301	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
138302	urls += "?" + c.urlParams_.Encode()
138303	req, err := http.NewRequest("GET", urls, body)
138304	if err != nil {
138305		return nil, err
138306	}
138307	req.Header = reqHeaders
138308	googleapi.Expand(req.URL, map[string]string{
138309		"project":              c.project,
138310		"region":               c.region,
138311		"networkEndpointGroup": c.networkEndpointGroup,
138312	})
138313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138314}
138315
138316// Do executes the "compute.regionNetworkEndpointGroups.get" call.
138317// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
138318// non-2xx status code is an error. Response headers are in either
138319// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
138320// returned at all) in error.(*googleapi.Error).Header. Use
138321// googleapi.IsNotModified to check whether the returned error was
138322// because http.StatusNotModified was returned.
138323func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
138324	gensupport.SetOptions(c.urlParams_, opts...)
138325	res, err := c.doRequest("json")
138326	if res != nil && res.StatusCode == http.StatusNotModified {
138327		if res.Body != nil {
138328			res.Body.Close()
138329		}
138330		return nil, &googleapi.Error{
138331			Code:   res.StatusCode,
138332			Header: res.Header,
138333		}
138334	}
138335	if err != nil {
138336		return nil, err
138337	}
138338	defer googleapi.CloseBody(res)
138339	if err := googleapi.CheckResponse(res); err != nil {
138340		return nil, err
138341	}
138342	ret := &NetworkEndpointGroup{
138343		ServerResponse: googleapi.ServerResponse{
138344			Header:         res.Header,
138345			HTTPStatusCode: res.StatusCode,
138346		},
138347	}
138348	target := &ret
138349	if err := gensupport.DecodeResponse(target, res); err != nil {
138350		return nil, err
138351	}
138352	return ret, nil
138353	// {
138354	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
138355	//   "httpMethod": "GET",
138356	//   "id": "compute.regionNetworkEndpointGroups.get",
138357	//   "parameterOrder": [
138358	//     "project",
138359	//     "region",
138360	//     "networkEndpointGroup"
138361	//   ],
138362	//   "parameters": {
138363	//     "networkEndpointGroup": {
138364	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
138365	//       "location": "path",
138366	//       "required": true,
138367	//       "type": "string"
138368	//     },
138369	//     "project": {
138370	//       "description": "Project ID for this request.",
138371	//       "location": "path",
138372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138373	//       "required": true,
138374	//       "type": "string"
138375	//     },
138376	//     "region": {
138377	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
138378	//       "location": "path",
138379	//       "required": true,
138380	//       "type": "string"
138381	//     }
138382	//   },
138383	//   "path": "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
138384	//   "response": {
138385	//     "$ref": "NetworkEndpointGroup"
138386	//   },
138387	//   "scopes": [
138388	//     "https://www.googleapis.com/auth/cloud-platform",
138389	//     "https://www.googleapis.com/auth/compute",
138390	//     "https://www.googleapis.com/auth/compute.readonly"
138391	//   ]
138392	// }
138393
138394}
138395
138396// method id "compute.regionNetworkEndpointGroups.insert":
138397
138398type RegionNetworkEndpointGroupsInsertCall struct {
138399	s                    *Service
138400	project              string
138401	region               string
138402	networkendpointgroup *NetworkEndpointGroup
138403	urlParams_           gensupport.URLParams
138404	ctx_                 context.Context
138405	header_              http.Header
138406}
138407
138408// Insert: Creates a network endpoint group in the specified project
138409// using the parameters that are included in the request.
138410func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
138411	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138412	c.project = project
138413	c.region = region
138414	c.networkendpointgroup = networkendpointgroup
138415	return c
138416}
138417
138418// RequestId sets the optional parameter "requestId": An optional
138419// request ID to identify requests. Specify a unique request ID so that
138420// if you must retry your request, the server will know to ignore the
138421// request if it has already been completed.
138422//
138423// For example, consider a situation where you make an initial request
138424// and the request times out. If you make the request again with the
138425// same request ID, the server can check if original operation with the
138426// same request ID was received, and if so, will ignore the second
138427// request. This prevents clients from accidentally creating duplicate
138428// commitments.
138429//
138430// The request ID must be a valid UUID with the exception that zero UUID
138431// is not supported (00000000-0000-0000-0000-000000000000).
138432func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
138433	c.urlParams_.Set("requestId", requestId)
138434	return c
138435}
138436
138437// Fields allows partial responses to be retrieved. See
138438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138439// for more information.
138440func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
138441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138442	return c
138443}
138444
138445// Context sets the context to be used in this call's Do method. Any
138446// pending HTTP request will be aborted if the provided context is
138447// canceled.
138448func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
138449	c.ctx_ = ctx
138450	return c
138451}
138452
138453// Header returns an http.Header that can be modified by the caller to
138454// add HTTP headers to the request.
138455func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
138456	if c.header_ == nil {
138457		c.header_ = make(http.Header)
138458	}
138459	return c.header_
138460}
138461
138462func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
138463	reqHeaders := make(http.Header)
138464	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
138465	for k, v := range c.header_ {
138466		reqHeaders[k] = v
138467	}
138468	reqHeaders.Set("User-Agent", c.s.userAgent())
138469	var body io.Reader = nil
138470	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
138471	if err != nil {
138472		return nil, err
138473	}
138474	reqHeaders.Set("Content-Type", "application/json")
138475	c.urlParams_.Set("alt", alt)
138476	c.urlParams_.Set("prettyPrint", "false")
138477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups")
138478	urls += "?" + c.urlParams_.Encode()
138479	req, err := http.NewRequest("POST", urls, body)
138480	if err != nil {
138481		return nil, err
138482	}
138483	req.Header = reqHeaders
138484	googleapi.Expand(req.URL, map[string]string{
138485		"project": c.project,
138486		"region":  c.region,
138487	})
138488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138489}
138490
138491// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
138492// Exactly one of *Operation or error will be non-nil. Any non-2xx
138493// status code is an error. Response headers are in either
138494// *Operation.ServerResponse.Header or (if a response was returned at
138495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138496// to check whether the returned error was because
138497// http.StatusNotModified was returned.
138498func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138499	gensupport.SetOptions(c.urlParams_, opts...)
138500	res, err := c.doRequest("json")
138501	if res != nil && res.StatusCode == http.StatusNotModified {
138502		if res.Body != nil {
138503			res.Body.Close()
138504		}
138505		return nil, &googleapi.Error{
138506			Code:   res.StatusCode,
138507			Header: res.Header,
138508		}
138509	}
138510	if err != nil {
138511		return nil, err
138512	}
138513	defer googleapi.CloseBody(res)
138514	if err := googleapi.CheckResponse(res); err != nil {
138515		return nil, err
138516	}
138517	ret := &Operation{
138518		ServerResponse: googleapi.ServerResponse{
138519			Header:         res.Header,
138520			HTTPStatusCode: res.StatusCode,
138521		},
138522	}
138523	target := &ret
138524	if err := gensupport.DecodeResponse(target, res); err != nil {
138525		return nil, err
138526	}
138527	return ret, nil
138528	// {
138529	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
138530	//   "httpMethod": "POST",
138531	//   "id": "compute.regionNetworkEndpointGroups.insert",
138532	//   "parameterOrder": [
138533	//     "project",
138534	//     "region"
138535	//   ],
138536	//   "parameters": {
138537	//     "project": {
138538	//       "description": "Project ID for this request.",
138539	//       "location": "path",
138540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138541	//       "required": true,
138542	//       "type": "string"
138543	//     },
138544	//     "region": {
138545	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
138546	//       "location": "path",
138547	//       "required": true,
138548	//       "type": "string"
138549	//     },
138550	//     "requestId": {
138551	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138552	//       "location": "query",
138553	//       "type": "string"
138554	//     }
138555	//   },
138556	//   "path": "{project}/regions/{region}/networkEndpointGroups",
138557	//   "request": {
138558	//     "$ref": "NetworkEndpointGroup"
138559	//   },
138560	//   "response": {
138561	//     "$ref": "Operation"
138562	//   },
138563	//   "scopes": [
138564	//     "https://www.googleapis.com/auth/cloud-platform",
138565	//     "https://www.googleapis.com/auth/compute"
138566	//   ]
138567	// }
138568
138569}
138570
138571// method id "compute.regionNetworkEndpointGroups.list":
138572
138573type RegionNetworkEndpointGroupsListCall struct {
138574	s            *Service
138575	project      string
138576	region       string
138577	urlParams_   gensupport.URLParams
138578	ifNoneMatch_ string
138579	ctx_         context.Context
138580	header_      http.Header
138581}
138582
138583// List: Retrieves the list of regional network endpoint groups
138584// available to the specified project in the given region.
138585func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
138586	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138587	c.project = project
138588	c.region = region
138589	return c
138590}
138591
138592// Filter sets the optional parameter "filter": A filter expression that
138593// filters resources listed in the response. The expression must specify
138594// the field name, a comparison operator, and the value that you want to
138595// use for filtering. The value must be a string, a number, or a
138596// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138597// `<`.
138598//
138599// For example, if you are filtering Compute Engine instances, you can
138600// exclude instances named `example-instance` by specifying `name !=
138601// example-instance`.
138602//
138603// You can also filter nested fields. For example, you could specify
138604// `scheduling.automaticRestart = false` to include instances only if
138605// they are not scheduled for automatic restarts. You can use filtering
138606// on nested fields to filter based on resource labels.
138607//
138608// To filter on multiple expressions, provide each separate expression
138609// within parentheses. For example: ``` (scheduling.automaticRestart =
138610// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
138611// is an `AND` expression. However, you can include `AND` and `OR`
138612// expressions explicitly. For example: ``` (cpuPlatform = "Intel
138613// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
138614// (scheduling.automaticRestart = true) ```
138615func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
138616	c.urlParams_.Set("filter", filter)
138617	return c
138618}
138619
138620// MaxResults sets the optional parameter "maxResults": The maximum
138621// number of results per page that should be returned. If the number of
138622// available results is larger than `maxResults`, Compute Engine returns
138623// a `nextPageToken` that can be used to get the next page of results in
138624// subsequent list requests. Acceptable values are `0` to `500`,
138625// inclusive. (Default: `500`)
138626func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
138627	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138628	return c
138629}
138630
138631// OrderBy sets the optional parameter "orderBy": Sorts list results by
138632// a certain order. By default, results are returned in alphanumerical
138633// order based on the resource name.
138634//
138635// You can also sort results in descending order based on the creation
138636// timestamp using `orderBy="creationTimestamp desc". This sorts
138637// results based on the `creationTimestamp` field in reverse
138638// chronological order (newest result first). Use this to sort resources
138639// like operations so that the newest operation is returned
138640// first.
138641//
138642// Currently, only sorting by `name` or `creationTimestamp desc` is
138643// supported.
138644func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
138645	c.urlParams_.Set("orderBy", orderBy)
138646	return c
138647}
138648
138649// PageToken sets the optional parameter "pageToken": Specifies a page
138650// token to use. Set `pageToken` to the `nextPageToken` returned by a
138651// previous list request to get the next page of results.
138652func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
138653	c.urlParams_.Set("pageToken", pageToken)
138654	return c
138655}
138656
138657// ReturnPartialSuccess sets the optional parameter
138658// "returnPartialSuccess": Opt-in for partial success behavior which
138659// provides partial results in case of failure. The default value is
138660// false and the logic is the same as today.
138661func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall {
138662	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
138663	return c
138664}
138665
138666// Fields allows partial responses to be retrieved. See
138667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138668// for more information.
138669func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
138670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138671	return c
138672}
138673
138674// IfNoneMatch sets the optional parameter which makes the operation
138675// fail if the object's ETag matches the given value. This is useful for
138676// getting updates only after the object has changed since the last
138677// request. Use googleapi.IsNotModified to check whether the response
138678// error from Do is the result of In-None-Match.
138679func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
138680	c.ifNoneMatch_ = entityTag
138681	return c
138682}
138683
138684// Context sets the context to be used in this call's Do method. Any
138685// pending HTTP request will be aborted if the provided context is
138686// canceled.
138687func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
138688	c.ctx_ = ctx
138689	return c
138690}
138691
138692// Header returns an http.Header that can be modified by the caller to
138693// add HTTP headers to the request.
138694func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
138695	if c.header_ == nil {
138696		c.header_ = make(http.Header)
138697	}
138698	return c.header_
138699}
138700
138701func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
138702	reqHeaders := make(http.Header)
138703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
138704	for k, v := range c.header_ {
138705		reqHeaders[k] = v
138706	}
138707	reqHeaders.Set("User-Agent", c.s.userAgent())
138708	if c.ifNoneMatch_ != "" {
138709		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138710	}
138711	var body io.Reader = nil
138712	c.urlParams_.Set("alt", alt)
138713	c.urlParams_.Set("prettyPrint", "false")
138714	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups")
138715	urls += "?" + c.urlParams_.Encode()
138716	req, err := http.NewRequest("GET", urls, body)
138717	if err != nil {
138718		return nil, err
138719	}
138720	req.Header = reqHeaders
138721	googleapi.Expand(req.URL, map[string]string{
138722		"project": c.project,
138723		"region":  c.region,
138724	})
138725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138726}
138727
138728// Do executes the "compute.regionNetworkEndpointGroups.list" call.
138729// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
138730// Any non-2xx status code is an error. Response headers are in either
138731// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
138732// returned at all) in error.(*googleapi.Error).Header. Use
138733// googleapi.IsNotModified to check whether the returned error was
138734// because http.StatusNotModified was returned.
138735func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
138736	gensupport.SetOptions(c.urlParams_, opts...)
138737	res, err := c.doRequest("json")
138738	if res != nil && res.StatusCode == http.StatusNotModified {
138739		if res.Body != nil {
138740			res.Body.Close()
138741		}
138742		return nil, &googleapi.Error{
138743			Code:   res.StatusCode,
138744			Header: res.Header,
138745		}
138746	}
138747	if err != nil {
138748		return nil, err
138749	}
138750	defer googleapi.CloseBody(res)
138751	if err := googleapi.CheckResponse(res); err != nil {
138752		return nil, err
138753	}
138754	ret := &NetworkEndpointGroupList{
138755		ServerResponse: googleapi.ServerResponse{
138756			Header:         res.Header,
138757			HTTPStatusCode: res.StatusCode,
138758		},
138759	}
138760	target := &ret
138761	if err := gensupport.DecodeResponse(target, res); err != nil {
138762		return nil, err
138763	}
138764	return ret, nil
138765	// {
138766	//   "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
138767	//   "httpMethod": "GET",
138768	//   "id": "compute.regionNetworkEndpointGroups.list",
138769	//   "parameterOrder": [
138770	//     "project",
138771	//     "region"
138772	//   ],
138773	//   "parameters": {
138774	//     "filter": {
138775	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
138776	//       "location": "query",
138777	//       "type": "string"
138778	//     },
138779	//     "maxResults": {
138780	//       "default": "500",
138781	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138782	//       "format": "uint32",
138783	//       "location": "query",
138784	//       "minimum": "0",
138785	//       "type": "integer"
138786	//     },
138787	//     "orderBy": {
138788	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
138789	//       "location": "query",
138790	//       "type": "string"
138791	//     },
138792	//     "pageToken": {
138793	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138794	//       "location": "query",
138795	//       "type": "string"
138796	//     },
138797	//     "project": {
138798	//       "description": "Project ID for this request.",
138799	//       "location": "path",
138800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138801	//       "required": true,
138802	//       "type": "string"
138803	//     },
138804	//     "region": {
138805	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
138806	//       "location": "path",
138807	//       "required": true,
138808	//       "type": "string"
138809	//     },
138810	//     "returnPartialSuccess": {
138811	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
138812	//       "location": "query",
138813	//       "type": "boolean"
138814	//     }
138815	//   },
138816	//   "path": "{project}/regions/{region}/networkEndpointGroups",
138817	//   "response": {
138818	//     "$ref": "NetworkEndpointGroupList"
138819	//   },
138820	//   "scopes": [
138821	//     "https://www.googleapis.com/auth/cloud-platform",
138822	//     "https://www.googleapis.com/auth/compute",
138823	//     "https://www.googleapis.com/auth/compute.readonly"
138824	//   ]
138825	// }
138826
138827}
138828
138829// Pages invokes f for each page of results.
138830// A non-nil error returned from f will halt the iteration.
138831// The provided context supersedes any context provided to the Context method.
138832func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
138833	c.ctx_ = ctx
138834	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138835	for {
138836		x, err := c.Do()
138837		if err != nil {
138838			return err
138839		}
138840		if err := f(x); err != nil {
138841			return err
138842		}
138843		if x.NextPageToken == "" {
138844			return nil
138845		}
138846		c.PageToken(x.NextPageToken)
138847	}
138848}
138849
138850// method id "compute.regionNotificationEndpoints.delete":
138851
138852type RegionNotificationEndpointsDeleteCall struct {
138853	s                    *Service
138854	project              string
138855	region               string
138856	notificationEndpoint string
138857	urlParams_           gensupport.URLParams
138858	ctx_                 context.Context
138859	header_              http.Header
138860}
138861
138862// Delete: Deletes the specified NotificationEndpoint in the given
138863// region
138864func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
138865	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138866	c.project = project
138867	c.region = region
138868	c.notificationEndpoint = notificationEndpoint
138869	return c
138870}
138871
138872// RequestId sets the optional parameter "requestId": An optional
138873// request ID to identify requests. Specify a unique request ID so that
138874// if you must retry your request, the server will know to ignore the
138875// request if it has already been completed.
138876//
138877// For example, consider a situation where you make an initial request
138878// and the request times out. If you make the request again with the
138879// same request ID, the server can check if original operation with the
138880// same request ID was received, and if so, will ignore the second
138881// request. This prevents clients from accidentally creating duplicate
138882// commitments.
138883//
138884// The request ID must be a valid UUID with the exception that zero UUID
138885// is not supported (00000000-0000-0000-0000-000000000000).
138886func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
138887	c.urlParams_.Set("requestId", requestId)
138888	return c
138889}
138890
138891// Fields allows partial responses to be retrieved. See
138892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138893// for more information.
138894func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
138895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138896	return c
138897}
138898
138899// Context sets the context to be used in this call's Do method. Any
138900// pending HTTP request will be aborted if the provided context is
138901// canceled.
138902func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
138903	c.ctx_ = ctx
138904	return c
138905}
138906
138907// Header returns an http.Header that can be modified by the caller to
138908// add HTTP headers to the request.
138909func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
138910	if c.header_ == nil {
138911		c.header_ = make(http.Header)
138912	}
138913	return c.header_
138914}
138915
138916func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
138917	reqHeaders := make(http.Header)
138918	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
138919	for k, v := range c.header_ {
138920		reqHeaders[k] = v
138921	}
138922	reqHeaders.Set("User-Agent", c.s.userAgent())
138923	var body io.Reader = nil
138924	c.urlParams_.Set("alt", alt)
138925	c.urlParams_.Set("prettyPrint", "false")
138926	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
138927	urls += "?" + c.urlParams_.Encode()
138928	req, err := http.NewRequest("DELETE", urls, body)
138929	if err != nil {
138930		return nil, err
138931	}
138932	req.Header = reqHeaders
138933	googleapi.Expand(req.URL, map[string]string{
138934		"project":              c.project,
138935		"region":               c.region,
138936		"notificationEndpoint": c.notificationEndpoint,
138937	})
138938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138939}
138940
138941// Do executes the "compute.regionNotificationEndpoints.delete" call.
138942// Exactly one of *Operation or error will be non-nil. Any non-2xx
138943// status code is an error. Response headers are in either
138944// *Operation.ServerResponse.Header or (if a response was returned at
138945// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138946// to check whether the returned error was because
138947// http.StatusNotModified was returned.
138948func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138949	gensupport.SetOptions(c.urlParams_, opts...)
138950	res, err := c.doRequest("json")
138951	if res != nil && res.StatusCode == http.StatusNotModified {
138952		if res.Body != nil {
138953			res.Body.Close()
138954		}
138955		return nil, &googleapi.Error{
138956			Code:   res.StatusCode,
138957			Header: res.Header,
138958		}
138959	}
138960	if err != nil {
138961		return nil, err
138962	}
138963	defer googleapi.CloseBody(res)
138964	if err := googleapi.CheckResponse(res); err != nil {
138965		return nil, err
138966	}
138967	ret := &Operation{
138968		ServerResponse: googleapi.ServerResponse{
138969			Header:         res.Header,
138970			HTTPStatusCode: res.StatusCode,
138971		},
138972	}
138973	target := &ret
138974	if err := gensupport.DecodeResponse(target, res); err != nil {
138975		return nil, err
138976	}
138977	return ret, nil
138978	// {
138979	//   "description": "Deletes the specified NotificationEndpoint in the given region",
138980	//   "httpMethod": "DELETE",
138981	//   "id": "compute.regionNotificationEndpoints.delete",
138982	//   "parameterOrder": [
138983	//     "project",
138984	//     "region",
138985	//     "notificationEndpoint"
138986	//   ],
138987	//   "parameters": {
138988	//     "notificationEndpoint": {
138989	//       "description": "Name of the NotificationEndpoint resource to delete.",
138990	//       "location": "path",
138991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138992	//       "required": true,
138993	//       "type": "string"
138994	//     },
138995	//     "project": {
138996	//       "description": "Project ID for this request.",
138997	//       "location": "path",
138998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138999	//       "required": true,
139000	//       "type": "string"
139001	//     },
139002	//     "region": {
139003	//       "description": "Name of the region scoping this request.",
139004	//       "location": "path",
139005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139006	//       "required": true,
139007	//       "type": "string"
139008	//     },
139009	//     "requestId": {
139010	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139011	//       "location": "query",
139012	//       "type": "string"
139013	//     }
139014	//   },
139015	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
139016	//   "response": {
139017	//     "$ref": "Operation"
139018	//   },
139019	//   "scopes": [
139020	//     "https://www.googleapis.com/auth/cloud-platform",
139021	//     "https://www.googleapis.com/auth/compute"
139022	//   ]
139023	// }
139024
139025}
139026
139027// method id "compute.regionNotificationEndpoints.get":
139028
139029type RegionNotificationEndpointsGetCall struct {
139030	s                    *Service
139031	project              string
139032	region               string
139033	notificationEndpoint string
139034	urlParams_           gensupport.URLParams
139035	ifNoneMatch_         string
139036	ctx_                 context.Context
139037	header_              http.Header
139038}
139039
139040// Get: Returns the specified NotificationEndpoint resource in the given
139041// region.
139042func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
139043	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139044	c.project = project
139045	c.region = region
139046	c.notificationEndpoint = notificationEndpoint
139047	return c
139048}
139049
139050// Fields allows partial responses to be retrieved. See
139051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139052// for more information.
139053func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
139054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139055	return c
139056}
139057
139058// IfNoneMatch sets the optional parameter which makes the operation
139059// fail if the object's ETag matches the given value. This is useful for
139060// getting updates only after the object has changed since the last
139061// request. Use googleapi.IsNotModified to check whether the response
139062// error from Do is the result of In-None-Match.
139063func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
139064	c.ifNoneMatch_ = entityTag
139065	return c
139066}
139067
139068// Context sets the context to be used in this call's Do method. Any
139069// pending HTTP request will be aborted if the provided context is
139070// canceled.
139071func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
139072	c.ctx_ = ctx
139073	return c
139074}
139075
139076// Header returns an http.Header that can be modified by the caller to
139077// add HTTP headers to the request.
139078func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
139079	if c.header_ == nil {
139080		c.header_ = make(http.Header)
139081	}
139082	return c.header_
139083}
139084
139085func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
139086	reqHeaders := make(http.Header)
139087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
139088	for k, v := range c.header_ {
139089		reqHeaders[k] = v
139090	}
139091	reqHeaders.Set("User-Agent", c.s.userAgent())
139092	if c.ifNoneMatch_ != "" {
139093		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139094	}
139095	var body io.Reader = nil
139096	c.urlParams_.Set("alt", alt)
139097	c.urlParams_.Set("prettyPrint", "false")
139098	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
139099	urls += "?" + c.urlParams_.Encode()
139100	req, err := http.NewRequest("GET", urls, body)
139101	if err != nil {
139102		return nil, err
139103	}
139104	req.Header = reqHeaders
139105	googleapi.Expand(req.URL, map[string]string{
139106		"project":              c.project,
139107		"region":               c.region,
139108		"notificationEndpoint": c.notificationEndpoint,
139109	})
139110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139111}
139112
139113// Do executes the "compute.regionNotificationEndpoints.get" call.
139114// Exactly one of *NotificationEndpoint or error will be non-nil. Any
139115// non-2xx status code is an error. Response headers are in either
139116// *NotificationEndpoint.ServerResponse.Header or (if a response was
139117// returned at all) in error.(*googleapi.Error).Header. Use
139118// googleapi.IsNotModified to check whether the returned error was
139119// because http.StatusNotModified was returned.
139120func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
139121	gensupport.SetOptions(c.urlParams_, opts...)
139122	res, err := c.doRequest("json")
139123	if res != nil && res.StatusCode == http.StatusNotModified {
139124		if res.Body != nil {
139125			res.Body.Close()
139126		}
139127		return nil, &googleapi.Error{
139128			Code:   res.StatusCode,
139129			Header: res.Header,
139130		}
139131	}
139132	if err != nil {
139133		return nil, err
139134	}
139135	defer googleapi.CloseBody(res)
139136	if err := googleapi.CheckResponse(res); err != nil {
139137		return nil, err
139138	}
139139	ret := &NotificationEndpoint{
139140		ServerResponse: googleapi.ServerResponse{
139141			Header:         res.Header,
139142			HTTPStatusCode: res.StatusCode,
139143		},
139144	}
139145	target := &ret
139146	if err := gensupport.DecodeResponse(target, res); err != nil {
139147		return nil, err
139148	}
139149	return ret, nil
139150	// {
139151	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
139152	//   "httpMethod": "GET",
139153	//   "id": "compute.regionNotificationEndpoints.get",
139154	//   "parameterOrder": [
139155	//     "project",
139156	//     "region",
139157	//     "notificationEndpoint"
139158	//   ],
139159	//   "parameters": {
139160	//     "notificationEndpoint": {
139161	//       "description": "Name of the NotificationEndpoint resource to return.",
139162	//       "location": "path",
139163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139164	//       "required": true,
139165	//       "type": "string"
139166	//     },
139167	//     "project": {
139168	//       "description": "Project ID for this request.",
139169	//       "location": "path",
139170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139171	//       "required": true,
139172	//       "type": "string"
139173	//     },
139174	//     "region": {
139175	//       "description": "Name of the region scoping this request.",
139176	//       "location": "path",
139177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139178	//       "required": true,
139179	//       "type": "string"
139180	//     }
139181	//   },
139182	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
139183	//   "response": {
139184	//     "$ref": "NotificationEndpoint"
139185	//   },
139186	//   "scopes": [
139187	//     "https://www.googleapis.com/auth/cloud-platform",
139188	//     "https://www.googleapis.com/auth/compute",
139189	//     "https://www.googleapis.com/auth/compute.readonly"
139190	//   ]
139191	// }
139192
139193}
139194
139195// method id "compute.regionNotificationEndpoints.insert":
139196
139197type RegionNotificationEndpointsInsertCall struct {
139198	s                    *Service
139199	project              string
139200	region               string
139201	notificationendpoint *NotificationEndpoint
139202	urlParams_           gensupport.URLParams
139203	ctx_                 context.Context
139204	header_              http.Header
139205}
139206
139207// Insert: Create a NotificationEndpoint in the specified project in the
139208// given region using the parameters that are included in the request.
139209func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
139210	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139211	c.project = project
139212	c.region = region
139213	c.notificationendpoint = notificationendpoint
139214	return c
139215}
139216
139217// RequestId sets the optional parameter "requestId": An optional
139218// request ID to identify requests. Specify a unique request ID so that
139219// if you must retry your request, the server will know to ignore the
139220// request if it has already been completed.
139221//
139222// For example, consider a situation where you make an initial request
139223// and the request times out. If you make the request again with the
139224// same request ID, the server can check if original operation with the
139225// same request ID was received, and if so, will ignore the second
139226// request. This prevents clients from accidentally creating duplicate
139227// commitments.
139228//
139229// The request ID must be a valid UUID with the exception that zero UUID
139230// is not supported (00000000-0000-0000-0000-000000000000).
139231func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
139232	c.urlParams_.Set("requestId", requestId)
139233	return c
139234}
139235
139236// Fields allows partial responses to be retrieved. See
139237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139238// for more information.
139239func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
139240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139241	return c
139242}
139243
139244// Context sets the context to be used in this call's Do method. Any
139245// pending HTTP request will be aborted if the provided context is
139246// canceled.
139247func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
139248	c.ctx_ = ctx
139249	return c
139250}
139251
139252// Header returns an http.Header that can be modified by the caller to
139253// add HTTP headers to the request.
139254func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
139255	if c.header_ == nil {
139256		c.header_ = make(http.Header)
139257	}
139258	return c.header_
139259}
139260
139261func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
139262	reqHeaders := make(http.Header)
139263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
139264	for k, v := range c.header_ {
139265		reqHeaders[k] = v
139266	}
139267	reqHeaders.Set("User-Agent", c.s.userAgent())
139268	var body io.Reader = nil
139269	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
139270	if err != nil {
139271		return nil, err
139272	}
139273	reqHeaders.Set("Content-Type", "application/json")
139274	c.urlParams_.Set("alt", alt)
139275	c.urlParams_.Set("prettyPrint", "false")
139276	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
139277	urls += "?" + c.urlParams_.Encode()
139278	req, err := http.NewRequest("POST", urls, body)
139279	if err != nil {
139280		return nil, err
139281	}
139282	req.Header = reqHeaders
139283	googleapi.Expand(req.URL, map[string]string{
139284		"project": c.project,
139285		"region":  c.region,
139286	})
139287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139288}
139289
139290// Do executes the "compute.regionNotificationEndpoints.insert" call.
139291// Exactly one of *Operation or error will be non-nil. Any non-2xx
139292// status code is an error. Response headers are in either
139293// *Operation.ServerResponse.Header or (if a response was returned at
139294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139295// to check whether the returned error was because
139296// http.StatusNotModified was returned.
139297func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139298	gensupport.SetOptions(c.urlParams_, opts...)
139299	res, err := c.doRequest("json")
139300	if res != nil && res.StatusCode == http.StatusNotModified {
139301		if res.Body != nil {
139302			res.Body.Close()
139303		}
139304		return nil, &googleapi.Error{
139305			Code:   res.StatusCode,
139306			Header: res.Header,
139307		}
139308	}
139309	if err != nil {
139310		return nil, err
139311	}
139312	defer googleapi.CloseBody(res)
139313	if err := googleapi.CheckResponse(res); err != nil {
139314		return nil, err
139315	}
139316	ret := &Operation{
139317		ServerResponse: googleapi.ServerResponse{
139318			Header:         res.Header,
139319			HTTPStatusCode: res.StatusCode,
139320		},
139321	}
139322	target := &ret
139323	if err := gensupport.DecodeResponse(target, res); err != nil {
139324		return nil, err
139325	}
139326	return ret, nil
139327	// {
139328	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
139329	//   "httpMethod": "POST",
139330	//   "id": "compute.regionNotificationEndpoints.insert",
139331	//   "parameterOrder": [
139332	//     "project",
139333	//     "region"
139334	//   ],
139335	//   "parameters": {
139336	//     "project": {
139337	//       "description": "Project ID for this request.",
139338	//       "location": "path",
139339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139340	//       "required": true,
139341	//       "type": "string"
139342	//     },
139343	//     "region": {
139344	//       "description": "Name of the region scoping this request.",
139345	//       "location": "path",
139346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139347	//       "required": true,
139348	//       "type": "string"
139349	//     },
139350	//     "requestId": {
139351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139352	//       "location": "query",
139353	//       "type": "string"
139354	//     }
139355	//   },
139356	//   "path": "{project}/regions/{region}/notificationEndpoints",
139357	//   "request": {
139358	//     "$ref": "NotificationEndpoint"
139359	//   },
139360	//   "response": {
139361	//     "$ref": "Operation"
139362	//   },
139363	//   "scopes": [
139364	//     "https://www.googleapis.com/auth/cloud-platform",
139365	//     "https://www.googleapis.com/auth/compute"
139366	//   ]
139367	// }
139368
139369}
139370
139371// method id "compute.regionNotificationEndpoints.list":
139372
139373type RegionNotificationEndpointsListCall struct {
139374	s            *Service
139375	project      string
139376	region       string
139377	urlParams_   gensupport.URLParams
139378	ifNoneMatch_ string
139379	ctx_         context.Context
139380	header_      http.Header
139381}
139382
139383// List: Lists the NotificationEndpoints for a project in the given
139384// region.
139385func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
139386	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139387	c.project = project
139388	c.region = region
139389	return c
139390}
139391
139392// Filter sets the optional parameter "filter": A filter expression that
139393// filters resources listed in the response. The expression must specify
139394// the field name, a comparison operator, and the value that you want to
139395// use for filtering. The value must be a string, a number, or a
139396// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139397// `<`.
139398//
139399// For example, if you are filtering Compute Engine instances, you can
139400// exclude instances named `example-instance` by specifying `name !=
139401// example-instance`.
139402//
139403// You can also filter nested fields. For example, you could specify
139404// `scheduling.automaticRestart = false` to include instances only if
139405// they are not scheduled for automatic restarts. You can use filtering
139406// on nested fields to filter based on resource labels.
139407//
139408// To filter on multiple expressions, provide each separate expression
139409// within parentheses. For example: ``` (scheduling.automaticRestart =
139410// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
139411// is an `AND` expression. However, you can include `AND` and `OR`
139412// expressions explicitly. For example: ``` (cpuPlatform = "Intel
139413// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
139414// (scheduling.automaticRestart = true) ```
139415func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
139416	c.urlParams_.Set("filter", filter)
139417	return c
139418}
139419
139420// MaxResults sets the optional parameter "maxResults": The maximum
139421// number of results per page that should be returned. If the number of
139422// available results is larger than `maxResults`, Compute Engine returns
139423// a `nextPageToken` that can be used to get the next page of results in
139424// subsequent list requests. Acceptable values are `0` to `500`,
139425// inclusive. (Default: `500`)
139426func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
139427	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139428	return c
139429}
139430
139431// OrderBy sets the optional parameter "orderBy": Sorts list results by
139432// a certain order. By default, results are returned in alphanumerical
139433// order based on the resource name.
139434//
139435// You can also sort results in descending order based on the creation
139436// timestamp using `orderBy="creationTimestamp desc". This sorts
139437// results based on the `creationTimestamp` field in reverse
139438// chronological order (newest result first). Use this to sort resources
139439// like operations so that the newest operation is returned
139440// first.
139441//
139442// Currently, only sorting by `name` or `creationTimestamp desc` is
139443// supported.
139444func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
139445	c.urlParams_.Set("orderBy", orderBy)
139446	return c
139447}
139448
139449// PageToken sets the optional parameter "pageToken": Specifies a page
139450// token to use. Set `pageToken` to the `nextPageToken` returned by a
139451// previous list request to get the next page of results.
139452func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
139453	c.urlParams_.Set("pageToken", pageToken)
139454	return c
139455}
139456
139457// ReturnPartialSuccess sets the optional parameter
139458// "returnPartialSuccess": Opt-in for partial success behavior which
139459// provides partial results in case of failure. The default value is
139460// false and the logic is the same as today.
139461func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall {
139462	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
139463	return c
139464}
139465
139466// Fields allows partial responses to be retrieved. See
139467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139468// for more information.
139469func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
139470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139471	return c
139472}
139473
139474// IfNoneMatch sets the optional parameter which makes the operation
139475// fail if the object's ETag matches the given value. This is useful for
139476// getting updates only after the object has changed since the last
139477// request. Use googleapi.IsNotModified to check whether the response
139478// error from Do is the result of In-None-Match.
139479func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
139480	c.ifNoneMatch_ = entityTag
139481	return c
139482}
139483
139484// Context sets the context to be used in this call's Do method. Any
139485// pending HTTP request will be aborted if the provided context is
139486// canceled.
139487func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
139488	c.ctx_ = ctx
139489	return c
139490}
139491
139492// Header returns an http.Header that can be modified by the caller to
139493// add HTTP headers to the request.
139494func (c *RegionNotificationEndpointsListCall) Header() http.Header {
139495	if c.header_ == nil {
139496		c.header_ = make(http.Header)
139497	}
139498	return c.header_
139499}
139500
139501func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
139502	reqHeaders := make(http.Header)
139503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
139504	for k, v := range c.header_ {
139505		reqHeaders[k] = v
139506	}
139507	reqHeaders.Set("User-Agent", c.s.userAgent())
139508	if c.ifNoneMatch_ != "" {
139509		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139510	}
139511	var body io.Reader = nil
139512	c.urlParams_.Set("alt", alt)
139513	c.urlParams_.Set("prettyPrint", "false")
139514	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
139515	urls += "?" + c.urlParams_.Encode()
139516	req, err := http.NewRequest("GET", urls, body)
139517	if err != nil {
139518		return nil, err
139519	}
139520	req.Header = reqHeaders
139521	googleapi.Expand(req.URL, map[string]string{
139522		"project": c.project,
139523		"region":  c.region,
139524	})
139525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139526}
139527
139528// Do executes the "compute.regionNotificationEndpoints.list" call.
139529// Exactly one of *NotificationEndpointList or error will be non-nil.
139530// Any non-2xx status code is an error. Response headers are in either
139531// *NotificationEndpointList.ServerResponse.Header or (if a response was
139532// returned at all) in error.(*googleapi.Error).Header. Use
139533// googleapi.IsNotModified to check whether the returned error was
139534// because http.StatusNotModified was returned.
139535func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
139536	gensupport.SetOptions(c.urlParams_, opts...)
139537	res, err := c.doRequest("json")
139538	if res != nil && res.StatusCode == http.StatusNotModified {
139539		if res.Body != nil {
139540			res.Body.Close()
139541		}
139542		return nil, &googleapi.Error{
139543			Code:   res.StatusCode,
139544			Header: res.Header,
139545		}
139546	}
139547	if err != nil {
139548		return nil, err
139549	}
139550	defer googleapi.CloseBody(res)
139551	if err := googleapi.CheckResponse(res); err != nil {
139552		return nil, err
139553	}
139554	ret := &NotificationEndpointList{
139555		ServerResponse: googleapi.ServerResponse{
139556			Header:         res.Header,
139557			HTTPStatusCode: res.StatusCode,
139558		},
139559	}
139560	target := &ret
139561	if err := gensupport.DecodeResponse(target, res); err != nil {
139562		return nil, err
139563	}
139564	return ret, nil
139565	// {
139566	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
139567	//   "httpMethod": "GET",
139568	//   "id": "compute.regionNotificationEndpoints.list",
139569	//   "parameterOrder": [
139570	//     "project",
139571	//     "region"
139572	//   ],
139573	//   "parameters": {
139574	//     "filter": {
139575	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
139576	//       "location": "query",
139577	//       "type": "string"
139578	//     },
139579	//     "maxResults": {
139580	//       "default": "500",
139581	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
139582	//       "format": "uint32",
139583	//       "location": "query",
139584	//       "minimum": "0",
139585	//       "type": "integer"
139586	//     },
139587	//     "orderBy": {
139588	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
139589	//       "location": "query",
139590	//       "type": "string"
139591	//     },
139592	//     "pageToken": {
139593	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
139594	//       "location": "query",
139595	//       "type": "string"
139596	//     },
139597	//     "project": {
139598	//       "description": "Project ID for this request.",
139599	//       "location": "path",
139600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139601	//       "required": true,
139602	//       "type": "string"
139603	//     },
139604	//     "region": {
139605	//       "description": "Name of the region scoping this request.",
139606	//       "location": "path",
139607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139608	//       "required": true,
139609	//       "type": "string"
139610	//     },
139611	//     "returnPartialSuccess": {
139612	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
139613	//       "location": "query",
139614	//       "type": "boolean"
139615	//     }
139616	//   },
139617	//   "path": "{project}/regions/{region}/notificationEndpoints",
139618	//   "response": {
139619	//     "$ref": "NotificationEndpointList"
139620	//   },
139621	//   "scopes": [
139622	//     "https://www.googleapis.com/auth/cloud-platform",
139623	//     "https://www.googleapis.com/auth/compute",
139624	//     "https://www.googleapis.com/auth/compute.readonly"
139625	//   ]
139626	// }
139627
139628}
139629
139630// Pages invokes f for each page of results.
139631// A non-nil error returned from f will halt the iteration.
139632// The provided context supersedes any context provided to the Context method.
139633func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
139634	c.ctx_ = ctx
139635	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139636	for {
139637		x, err := c.Do()
139638		if err != nil {
139639			return err
139640		}
139641		if err := f(x); err != nil {
139642			return err
139643		}
139644		if x.NextPageToken == "" {
139645			return nil
139646		}
139647		c.PageToken(x.NextPageToken)
139648	}
139649}
139650
139651// method id "compute.regionNotificationEndpoints.testIamPermissions":
139652
139653type RegionNotificationEndpointsTestIamPermissionsCall struct {
139654	s                      *Service
139655	project                string
139656	region                 string
139657	resource               string
139658	testpermissionsrequest *TestPermissionsRequest
139659	urlParams_             gensupport.URLParams
139660	ctx_                   context.Context
139661	header_                http.Header
139662}
139663
139664// TestIamPermissions: Returns permissions that a caller has on the
139665// specified resource.
139666func (r *RegionNotificationEndpointsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNotificationEndpointsTestIamPermissionsCall {
139667	c := &RegionNotificationEndpointsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139668	c.project = project
139669	c.region = region
139670	c.resource = resource
139671	c.testpermissionsrequest = testpermissionsrequest
139672	return c
139673}
139674
139675// Fields allows partial responses to be retrieved. See
139676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139677// for more information.
139678func (c *RegionNotificationEndpointsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsTestIamPermissionsCall {
139679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139680	return c
139681}
139682
139683// Context sets the context to be used in this call's Do method. Any
139684// pending HTTP request will be aborted if the provided context is
139685// canceled.
139686func (c *RegionNotificationEndpointsTestIamPermissionsCall) Context(ctx context.Context) *RegionNotificationEndpointsTestIamPermissionsCall {
139687	c.ctx_ = ctx
139688	return c
139689}
139690
139691// Header returns an http.Header that can be modified by the caller to
139692// add HTTP headers to the request.
139693func (c *RegionNotificationEndpointsTestIamPermissionsCall) Header() http.Header {
139694	if c.header_ == nil {
139695		c.header_ = make(http.Header)
139696	}
139697	return c.header_
139698}
139699
139700func (c *RegionNotificationEndpointsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
139701	reqHeaders := make(http.Header)
139702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
139703	for k, v := range c.header_ {
139704		reqHeaders[k] = v
139705	}
139706	reqHeaders.Set("User-Agent", c.s.userAgent())
139707	var body io.Reader = nil
139708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
139709	if err != nil {
139710		return nil, err
139711	}
139712	reqHeaders.Set("Content-Type", "application/json")
139713	c.urlParams_.Set("alt", alt)
139714	c.urlParams_.Set("prettyPrint", "false")
139715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions")
139716	urls += "?" + c.urlParams_.Encode()
139717	req, err := http.NewRequest("POST", urls, body)
139718	if err != nil {
139719		return nil, err
139720	}
139721	req.Header = reqHeaders
139722	googleapi.Expand(req.URL, map[string]string{
139723		"project":  c.project,
139724		"region":   c.region,
139725		"resource": c.resource,
139726	})
139727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139728}
139729
139730// Do executes the "compute.regionNotificationEndpoints.testIamPermissions" call.
139731// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
139732// non-2xx status code is an error. Response headers are in either
139733// *TestPermissionsResponse.ServerResponse.Header or (if a response was
139734// returned at all) in error.(*googleapi.Error).Header. Use
139735// googleapi.IsNotModified to check whether the returned error was
139736// because http.StatusNotModified was returned.
139737func (c *RegionNotificationEndpointsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
139738	gensupport.SetOptions(c.urlParams_, opts...)
139739	res, err := c.doRequest("json")
139740	if res != nil && res.StatusCode == http.StatusNotModified {
139741		if res.Body != nil {
139742			res.Body.Close()
139743		}
139744		return nil, &googleapi.Error{
139745			Code:   res.StatusCode,
139746			Header: res.Header,
139747		}
139748	}
139749	if err != nil {
139750		return nil, err
139751	}
139752	defer googleapi.CloseBody(res)
139753	if err := googleapi.CheckResponse(res); err != nil {
139754		return nil, err
139755	}
139756	ret := &TestPermissionsResponse{
139757		ServerResponse: googleapi.ServerResponse{
139758			Header:         res.Header,
139759			HTTPStatusCode: res.StatusCode,
139760		},
139761	}
139762	target := &ret
139763	if err := gensupport.DecodeResponse(target, res); err != nil {
139764		return nil, err
139765	}
139766	return ret, nil
139767	// {
139768	//   "description": "Returns permissions that a caller has on the specified resource.",
139769	//   "httpMethod": "POST",
139770	//   "id": "compute.regionNotificationEndpoints.testIamPermissions",
139771	//   "parameterOrder": [
139772	//     "project",
139773	//     "region",
139774	//     "resource"
139775	//   ],
139776	//   "parameters": {
139777	//     "project": {
139778	//       "description": "Project ID for this request.",
139779	//       "location": "path",
139780	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139781	//       "required": true,
139782	//       "type": "string"
139783	//     },
139784	//     "region": {
139785	//       "description": "The name of the region for this request.",
139786	//       "location": "path",
139787	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139788	//       "required": true,
139789	//       "type": "string"
139790	//     },
139791	//     "resource": {
139792	//       "description": "Name or id of the resource for this request.",
139793	//       "location": "path",
139794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139795	//       "required": true,
139796	//       "type": "string"
139797	//     }
139798	//   },
139799	//   "path": "{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions",
139800	//   "request": {
139801	//     "$ref": "TestPermissionsRequest"
139802	//   },
139803	//   "response": {
139804	//     "$ref": "TestPermissionsResponse"
139805	//   },
139806	//   "scopes": [
139807	//     "https://www.googleapis.com/auth/cloud-platform",
139808	//     "https://www.googleapis.com/auth/compute",
139809	//     "https://www.googleapis.com/auth/compute.readonly"
139810	//   ]
139811	// }
139812
139813}
139814
139815// method id "compute.regionOperations.delete":
139816
139817type RegionOperationsDeleteCall struct {
139818	s          *Service
139819	project    string
139820	region     string
139821	operation  string
139822	urlParams_ gensupport.URLParams
139823	ctx_       context.Context
139824	header_    http.Header
139825}
139826
139827// Delete: Deletes the specified region-specific Operations resource.
139828// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
139829func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
139830	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139831	c.project = project
139832	c.region = region
139833	c.operation = operation
139834	return c
139835}
139836
139837// Fields allows partial responses to be retrieved. See
139838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139839// for more information.
139840func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
139841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139842	return c
139843}
139844
139845// Context sets the context to be used in this call's Do method. Any
139846// pending HTTP request will be aborted if the provided context is
139847// canceled.
139848func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
139849	c.ctx_ = ctx
139850	return c
139851}
139852
139853// Header returns an http.Header that can be modified by the caller to
139854// add HTTP headers to the request.
139855func (c *RegionOperationsDeleteCall) Header() http.Header {
139856	if c.header_ == nil {
139857		c.header_ = make(http.Header)
139858	}
139859	return c.header_
139860}
139861
139862func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
139863	reqHeaders := make(http.Header)
139864	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
139865	for k, v := range c.header_ {
139866		reqHeaders[k] = v
139867	}
139868	reqHeaders.Set("User-Agent", c.s.userAgent())
139869	var body io.Reader = nil
139870	c.urlParams_.Set("alt", alt)
139871	c.urlParams_.Set("prettyPrint", "false")
139872	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
139873	urls += "?" + c.urlParams_.Encode()
139874	req, err := http.NewRequest("DELETE", urls, body)
139875	if err != nil {
139876		return nil, err
139877	}
139878	req.Header = reqHeaders
139879	googleapi.Expand(req.URL, map[string]string{
139880		"project":   c.project,
139881		"region":    c.region,
139882		"operation": c.operation,
139883	})
139884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139885}
139886
139887// Do executes the "compute.regionOperations.delete" call.
139888func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
139889	gensupport.SetOptions(c.urlParams_, opts...)
139890	res, err := c.doRequest("json")
139891	if err != nil {
139892		return err
139893	}
139894	defer googleapi.CloseBody(res)
139895	if err := googleapi.CheckResponse(res); err != nil {
139896		return err
139897	}
139898	return nil
139899	// {
139900	//   "description": "Deletes the specified region-specific Operations resource.",
139901	//   "httpMethod": "DELETE",
139902	//   "id": "compute.regionOperations.delete",
139903	//   "parameterOrder": [
139904	//     "project",
139905	//     "region",
139906	//     "operation"
139907	//   ],
139908	//   "parameters": {
139909	//     "operation": {
139910	//       "description": "Name of the Operations resource to delete.",
139911	//       "location": "path",
139912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139913	//       "required": true,
139914	//       "type": "string"
139915	//     },
139916	//     "project": {
139917	//       "description": "Project ID for this request.",
139918	//       "location": "path",
139919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139920	//       "required": true,
139921	//       "type": "string"
139922	//     },
139923	//     "region": {
139924	//       "description": "Name of the region for this request.",
139925	//       "location": "path",
139926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139927	//       "required": true,
139928	//       "type": "string"
139929	//     }
139930	//   },
139931	//   "path": "{project}/regions/{region}/operations/{operation}",
139932	//   "scopes": [
139933	//     "https://www.googleapis.com/auth/cloud-platform",
139934	//     "https://www.googleapis.com/auth/compute"
139935	//   ]
139936	// }
139937
139938}
139939
139940// method id "compute.regionOperations.get":
139941
139942type RegionOperationsGetCall struct {
139943	s            *Service
139944	project      string
139945	region       string
139946	operation    string
139947	urlParams_   gensupport.URLParams
139948	ifNoneMatch_ string
139949	ctx_         context.Context
139950	header_      http.Header
139951}
139952
139953// Get: Retrieves the specified region-specific Operations resource.
139954// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
139955func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
139956	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139957	c.project = project
139958	c.region = region
139959	c.operation = operation
139960	return c
139961}
139962
139963// Fields allows partial responses to be retrieved. See
139964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139965// for more information.
139966func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
139967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139968	return c
139969}
139970
139971// IfNoneMatch sets the optional parameter which makes the operation
139972// fail if the object's ETag matches the given value. This is useful for
139973// getting updates only after the object has changed since the last
139974// request. Use googleapi.IsNotModified to check whether the response
139975// error from Do is the result of In-None-Match.
139976func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
139977	c.ifNoneMatch_ = entityTag
139978	return c
139979}
139980
139981// Context sets the context to be used in this call's Do method. Any
139982// pending HTTP request will be aborted if the provided context is
139983// canceled.
139984func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
139985	c.ctx_ = ctx
139986	return c
139987}
139988
139989// Header returns an http.Header that can be modified by the caller to
139990// add HTTP headers to the request.
139991func (c *RegionOperationsGetCall) Header() http.Header {
139992	if c.header_ == nil {
139993		c.header_ = make(http.Header)
139994	}
139995	return c.header_
139996}
139997
139998func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
139999	reqHeaders := make(http.Header)
140000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
140001	for k, v := range c.header_ {
140002		reqHeaders[k] = v
140003	}
140004	reqHeaders.Set("User-Agent", c.s.userAgent())
140005	if c.ifNoneMatch_ != "" {
140006		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140007	}
140008	var body io.Reader = nil
140009	c.urlParams_.Set("alt", alt)
140010	c.urlParams_.Set("prettyPrint", "false")
140011	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
140012	urls += "?" + c.urlParams_.Encode()
140013	req, err := http.NewRequest("GET", urls, body)
140014	if err != nil {
140015		return nil, err
140016	}
140017	req.Header = reqHeaders
140018	googleapi.Expand(req.URL, map[string]string{
140019		"project":   c.project,
140020		"region":    c.region,
140021		"operation": c.operation,
140022	})
140023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140024}
140025
140026// Do executes the "compute.regionOperations.get" call.
140027// Exactly one of *Operation or error will be non-nil. Any non-2xx
140028// status code is an error. Response headers are in either
140029// *Operation.ServerResponse.Header or (if a response was returned at
140030// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140031// to check whether the returned error was because
140032// http.StatusNotModified was returned.
140033func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140034	gensupport.SetOptions(c.urlParams_, opts...)
140035	res, err := c.doRequest("json")
140036	if res != nil && res.StatusCode == http.StatusNotModified {
140037		if res.Body != nil {
140038			res.Body.Close()
140039		}
140040		return nil, &googleapi.Error{
140041			Code:   res.StatusCode,
140042			Header: res.Header,
140043		}
140044	}
140045	if err != nil {
140046		return nil, err
140047	}
140048	defer googleapi.CloseBody(res)
140049	if err := googleapi.CheckResponse(res); err != nil {
140050		return nil, err
140051	}
140052	ret := &Operation{
140053		ServerResponse: googleapi.ServerResponse{
140054			Header:         res.Header,
140055			HTTPStatusCode: res.StatusCode,
140056		},
140057	}
140058	target := &ret
140059	if err := gensupport.DecodeResponse(target, res); err != nil {
140060		return nil, err
140061	}
140062	return ret, nil
140063	// {
140064	//   "description": "Retrieves the specified region-specific Operations resource.",
140065	//   "httpMethod": "GET",
140066	//   "id": "compute.regionOperations.get",
140067	//   "parameterOrder": [
140068	//     "project",
140069	//     "region",
140070	//     "operation"
140071	//   ],
140072	//   "parameters": {
140073	//     "operation": {
140074	//       "description": "Name of the Operations resource to return.",
140075	//       "location": "path",
140076	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140077	//       "required": true,
140078	//       "type": "string"
140079	//     },
140080	//     "project": {
140081	//       "description": "Project ID for this request.",
140082	//       "location": "path",
140083	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140084	//       "required": true,
140085	//       "type": "string"
140086	//     },
140087	//     "region": {
140088	//       "description": "Name of the region for this request.",
140089	//       "location": "path",
140090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140091	//       "required": true,
140092	//       "type": "string"
140093	//     }
140094	//   },
140095	//   "path": "{project}/regions/{region}/operations/{operation}",
140096	//   "response": {
140097	//     "$ref": "Operation"
140098	//   },
140099	//   "scopes": [
140100	//     "https://www.googleapis.com/auth/cloud-platform",
140101	//     "https://www.googleapis.com/auth/compute",
140102	//     "https://www.googleapis.com/auth/compute.readonly"
140103	//   ]
140104	// }
140105
140106}
140107
140108// method id "compute.regionOperations.list":
140109
140110type RegionOperationsListCall struct {
140111	s            *Service
140112	project      string
140113	region       string
140114	urlParams_   gensupport.URLParams
140115	ifNoneMatch_ string
140116	ctx_         context.Context
140117	header_      http.Header
140118}
140119
140120// List: Retrieves a list of Operation resources contained within the
140121// specified region.
140122// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
140123func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
140124	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140125	c.project = project
140126	c.region = region
140127	return c
140128}
140129
140130// Filter sets the optional parameter "filter": A filter expression that
140131// filters resources listed in the response. The expression must specify
140132// the field name, a comparison operator, and the value that you want to
140133// use for filtering. The value must be a string, a number, or a
140134// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140135// `<`.
140136//
140137// For example, if you are filtering Compute Engine instances, you can
140138// exclude instances named `example-instance` by specifying `name !=
140139// example-instance`.
140140//
140141// You can also filter nested fields. For example, you could specify
140142// `scheduling.automaticRestart = false` to include instances only if
140143// they are not scheduled for automatic restarts. You can use filtering
140144// on nested fields to filter based on resource labels.
140145//
140146// To filter on multiple expressions, provide each separate expression
140147// within parentheses. For example: ``` (scheduling.automaticRestart =
140148// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
140149// is an `AND` expression. However, you can include `AND` and `OR`
140150// expressions explicitly. For example: ``` (cpuPlatform = "Intel
140151// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
140152// (scheduling.automaticRestart = true) ```
140153func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
140154	c.urlParams_.Set("filter", filter)
140155	return c
140156}
140157
140158// MaxResults sets the optional parameter "maxResults": The maximum
140159// number of results per page that should be returned. If the number of
140160// available results is larger than `maxResults`, Compute Engine returns
140161// a `nextPageToken` that can be used to get the next page of results in
140162// subsequent list requests. Acceptable values are `0` to `500`,
140163// inclusive. (Default: `500`)
140164func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
140165	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140166	return c
140167}
140168
140169// OrderBy sets the optional parameter "orderBy": Sorts list results by
140170// a certain order. By default, results are returned in alphanumerical
140171// order based on the resource name.
140172//
140173// You can also sort results in descending order based on the creation
140174// timestamp using `orderBy="creationTimestamp desc". This sorts
140175// results based on the `creationTimestamp` field in reverse
140176// chronological order (newest result first). Use this to sort resources
140177// like operations so that the newest operation is returned
140178// first.
140179//
140180// Currently, only sorting by `name` or `creationTimestamp desc` is
140181// supported.
140182func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
140183	c.urlParams_.Set("orderBy", orderBy)
140184	return c
140185}
140186
140187// PageToken sets the optional parameter "pageToken": Specifies a page
140188// token to use. Set `pageToken` to the `nextPageToken` returned by a
140189// previous list request to get the next page of results.
140190func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
140191	c.urlParams_.Set("pageToken", pageToken)
140192	return c
140193}
140194
140195// ReturnPartialSuccess sets the optional parameter
140196// "returnPartialSuccess": Opt-in for partial success behavior which
140197// provides partial results in case of failure. The default value is
140198// false and the logic is the same as today.
140199func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall {
140200	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140201	return c
140202}
140203
140204// Fields allows partial responses to be retrieved. See
140205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140206// for more information.
140207func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
140208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140209	return c
140210}
140211
140212// IfNoneMatch sets the optional parameter which makes the operation
140213// fail if the object's ETag matches the given value. This is useful for
140214// getting updates only after the object has changed since the last
140215// request. Use googleapi.IsNotModified to check whether the response
140216// error from Do is the result of In-None-Match.
140217func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
140218	c.ifNoneMatch_ = entityTag
140219	return c
140220}
140221
140222// Context sets the context to be used in this call's Do method. Any
140223// pending HTTP request will be aborted if the provided context is
140224// canceled.
140225func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
140226	c.ctx_ = ctx
140227	return c
140228}
140229
140230// Header returns an http.Header that can be modified by the caller to
140231// add HTTP headers to the request.
140232func (c *RegionOperationsListCall) Header() http.Header {
140233	if c.header_ == nil {
140234		c.header_ = make(http.Header)
140235	}
140236	return c.header_
140237}
140238
140239func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
140240	reqHeaders := make(http.Header)
140241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
140242	for k, v := range c.header_ {
140243		reqHeaders[k] = v
140244	}
140245	reqHeaders.Set("User-Agent", c.s.userAgent())
140246	if c.ifNoneMatch_ != "" {
140247		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140248	}
140249	var body io.Reader = nil
140250	c.urlParams_.Set("alt", alt)
140251	c.urlParams_.Set("prettyPrint", "false")
140252	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
140253	urls += "?" + c.urlParams_.Encode()
140254	req, err := http.NewRequest("GET", urls, body)
140255	if err != nil {
140256		return nil, err
140257	}
140258	req.Header = reqHeaders
140259	googleapi.Expand(req.URL, map[string]string{
140260		"project": c.project,
140261		"region":  c.region,
140262	})
140263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140264}
140265
140266// Do executes the "compute.regionOperations.list" call.
140267// Exactly one of *OperationList or error will be non-nil. Any non-2xx
140268// status code is an error. Response headers are in either
140269// *OperationList.ServerResponse.Header or (if a response was returned
140270// at all) in error.(*googleapi.Error).Header. Use
140271// googleapi.IsNotModified to check whether the returned error was
140272// because http.StatusNotModified was returned.
140273func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
140274	gensupport.SetOptions(c.urlParams_, opts...)
140275	res, err := c.doRequest("json")
140276	if res != nil && res.StatusCode == http.StatusNotModified {
140277		if res.Body != nil {
140278			res.Body.Close()
140279		}
140280		return nil, &googleapi.Error{
140281			Code:   res.StatusCode,
140282			Header: res.Header,
140283		}
140284	}
140285	if err != nil {
140286		return nil, err
140287	}
140288	defer googleapi.CloseBody(res)
140289	if err := googleapi.CheckResponse(res); err != nil {
140290		return nil, err
140291	}
140292	ret := &OperationList{
140293		ServerResponse: googleapi.ServerResponse{
140294			Header:         res.Header,
140295			HTTPStatusCode: res.StatusCode,
140296		},
140297	}
140298	target := &ret
140299	if err := gensupport.DecodeResponse(target, res); err != nil {
140300		return nil, err
140301	}
140302	return ret, nil
140303	// {
140304	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
140305	//   "httpMethod": "GET",
140306	//   "id": "compute.regionOperations.list",
140307	//   "parameterOrder": [
140308	//     "project",
140309	//     "region"
140310	//   ],
140311	//   "parameters": {
140312	//     "filter": {
140313	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140314	//       "location": "query",
140315	//       "type": "string"
140316	//     },
140317	//     "maxResults": {
140318	//       "default": "500",
140319	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140320	//       "format": "uint32",
140321	//       "location": "query",
140322	//       "minimum": "0",
140323	//       "type": "integer"
140324	//     },
140325	//     "orderBy": {
140326	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140327	//       "location": "query",
140328	//       "type": "string"
140329	//     },
140330	//     "pageToken": {
140331	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140332	//       "location": "query",
140333	//       "type": "string"
140334	//     },
140335	//     "project": {
140336	//       "description": "Project ID for this request.",
140337	//       "location": "path",
140338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140339	//       "required": true,
140340	//       "type": "string"
140341	//     },
140342	//     "region": {
140343	//       "description": "Name of the region for this request.",
140344	//       "location": "path",
140345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140346	//       "required": true,
140347	//       "type": "string"
140348	//     },
140349	//     "returnPartialSuccess": {
140350	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
140351	//       "location": "query",
140352	//       "type": "boolean"
140353	//     }
140354	//   },
140355	//   "path": "{project}/regions/{region}/operations",
140356	//   "response": {
140357	//     "$ref": "OperationList"
140358	//   },
140359	//   "scopes": [
140360	//     "https://www.googleapis.com/auth/cloud-platform",
140361	//     "https://www.googleapis.com/auth/compute",
140362	//     "https://www.googleapis.com/auth/compute.readonly"
140363	//   ]
140364	// }
140365
140366}
140367
140368// Pages invokes f for each page of results.
140369// A non-nil error returned from f will halt the iteration.
140370// The provided context supersedes any context provided to the Context method.
140371func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
140372	c.ctx_ = ctx
140373	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140374	for {
140375		x, err := c.Do()
140376		if err != nil {
140377			return err
140378		}
140379		if err := f(x); err != nil {
140380			return err
140381		}
140382		if x.NextPageToken == "" {
140383			return nil
140384		}
140385		c.PageToken(x.NextPageToken)
140386	}
140387}
140388
140389// method id "compute.regionOperations.wait":
140390
140391type RegionOperationsWaitCall struct {
140392	s          *Service
140393	project    string
140394	region     string
140395	operation  string
140396	urlParams_ gensupport.URLParams
140397	ctx_       context.Context
140398	header_    http.Header
140399}
140400
140401// Wait: Waits for the specified Operation resource to return as `DONE`
140402// or for the request to approach the 2 minute deadline, and retrieves
140403// the specified Operation resource. This method differs from the `GET`
140404// method in that it waits for no more than the default deadline (2
140405// minutes) and then returns the current state of the operation, which
140406// might be `DONE` or still in progress.
140407//
140408// This method is called on a best-effort basis. Specifically:
140409// - In uncommon cases, when the server is overloaded, the request might
140410// return before the default deadline is reached, or might return after
140411// zero seconds.
140412// - If the default deadline is reached, there is no guarantee that the
140413// operation is actually done when the method returns. Be prepared to
140414// retry if the operation is not `DONE`.
140415func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
140416	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140417	c.project = project
140418	c.region = region
140419	c.operation = operation
140420	return c
140421}
140422
140423// Fields allows partial responses to be retrieved. See
140424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140425// for more information.
140426func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
140427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140428	return c
140429}
140430
140431// Context sets the context to be used in this call's Do method. Any
140432// pending HTTP request will be aborted if the provided context is
140433// canceled.
140434func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
140435	c.ctx_ = ctx
140436	return c
140437}
140438
140439// Header returns an http.Header that can be modified by the caller to
140440// add HTTP headers to the request.
140441func (c *RegionOperationsWaitCall) Header() http.Header {
140442	if c.header_ == nil {
140443		c.header_ = make(http.Header)
140444	}
140445	return c.header_
140446}
140447
140448func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
140449	reqHeaders := make(http.Header)
140450	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
140451	for k, v := range c.header_ {
140452		reqHeaders[k] = v
140453	}
140454	reqHeaders.Set("User-Agent", c.s.userAgent())
140455	var body io.Reader = nil
140456	c.urlParams_.Set("alt", alt)
140457	c.urlParams_.Set("prettyPrint", "false")
140458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}/wait")
140459	urls += "?" + c.urlParams_.Encode()
140460	req, err := http.NewRequest("POST", urls, body)
140461	if err != nil {
140462		return nil, err
140463	}
140464	req.Header = reqHeaders
140465	googleapi.Expand(req.URL, map[string]string{
140466		"project":   c.project,
140467		"region":    c.region,
140468		"operation": c.operation,
140469	})
140470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140471}
140472
140473// Do executes the "compute.regionOperations.wait" call.
140474// Exactly one of *Operation or error will be non-nil. Any non-2xx
140475// status code is an error. Response headers are in either
140476// *Operation.ServerResponse.Header or (if a response was returned at
140477// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140478// to check whether the returned error was because
140479// http.StatusNotModified was returned.
140480func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140481	gensupport.SetOptions(c.urlParams_, opts...)
140482	res, err := c.doRequest("json")
140483	if res != nil && res.StatusCode == http.StatusNotModified {
140484		if res.Body != nil {
140485			res.Body.Close()
140486		}
140487		return nil, &googleapi.Error{
140488			Code:   res.StatusCode,
140489			Header: res.Header,
140490		}
140491	}
140492	if err != nil {
140493		return nil, err
140494	}
140495	defer googleapi.CloseBody(res)
140496	if err := googleapi.CheckResponse(res); err != nil {
140497		return nil, err
140498	}
140499	ret := &Operation{
140500		ServerResponse: googleapi.ServerResponse{
140501			Header:         res.Header,
140502			HTTPStatusCode: res.StatusCode,
140503		},
140504	}
140505	target := &ret
140506	if err := gensupport.DecodeResponse(target, res); err != nil {
140507		return nil, err
140508	}
140509	return ret, nil
140510	// {
140511	//   "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:  \n- In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. \n- If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`.",
140512	//   "httpMethod": "POST",
140513	//   "id": "compute.regionOperations.wait",
140514	//   "parameterOrder": [
140515	//     "project",
140516	//     "region",
140517	//     "operation"
140518	//   ],
140519	//   "parameters": {
140520	//     "operation": {
140521	//       "description": "Name of the Operations resource to return.",
140522	//       "location": "path",
140523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140524	//       "required": true,
140525	//       "type": "string"
140526	//     },
140527	//     "project": {
140528	//       "description": "Project ID for this request.",
140529	//       "location": "path",
140530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140531	//       "required": true,
140532	//       "type": "string"
140533	//     },
140534	//     "region": {
140535	//       "description": "Name of the region for this request.",
140536	//       "location": "path",
140537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140538	//       "required": true,
140539	//       "type": "string"
140540	//     }
140541	//   },
140542	//   "path": "{project}/regions/{region}/operations/{operation}/wait",
140543	//   "response": {
140544	//     "$ref": "Operation"
140545	//   },
140546	//   "scopes": [
140547	//     "https://www.googleapis.com/auth/cloud-platform",
140548	//     "https://www.googleapis.com/auth/compute",
140549	//     "https://www.googleapis.com/auth/compute.readonly"
140550	//   ]
140551	// }
140552
140553}
140554
140555// method id "compute.regionSslCertificates.delete":
140556
140557type RegionSslCertificatesDeleteCall struct {
140558	s              *Service
140559	project        string
140560	region         string
140561	sslCertificate string
140562	urlParams_     gensupport.URLParams
140563	ctx_           context.Context
140564	header_        http.Header
140565}
140566
140567// Delete: Deletes the specified SslCertificate resource in the region.
140568func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
140569	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140570	c.project = project
140571	c.region = region
140572	c.sslCertificate = sslCertificate
140573	return c
140574}
140575
140576// RequestId sets the optional parameter "requestId": An optional
140577// request ID to identify requests. Specify a unique request ID so that
140578// if you must retry your request, the server will know to ignore the
140579// request if it has already been completed.
140580//
140581// For example, consider a situation where you make an initial request
140582// and the request times out. If you make the request again with the
140583// same request ID, the server can check if original operation with the
140584// same request ID was received, and if so, will ignore the second
140585// request. This prevents clients from accidentally creating duplicate
140586// commitments.
140587//
140588// The request ID must be a valid UUID with the exception that zero UUID
140589// is not supported (00000000-0000-0000-0000-000000000000).
140590func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
140591	c.urlParams_.Set("requestId", requestId)
140592	return c
140593}
140594
140595// Fields allows partial responses to be retrieved. See
140596// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140597// for more information.
140598func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
140599	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140600	return c
140601}
140602
140603// Context sets the context to be used in this call's Do method. Any
140604// pending HTTP request will be aborted if the provided context is
140605// canceled.
140606func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
140607	c.ctx_ = ctx
140608	return c
140609}
140610
140611// Header returns an http.Header that can be modified by the caller to
140612// add HTTP headers to the request.
140613func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
140614	if c.header_ == nil {
140615		c.header_ = make(http.Header)
140616	}
140617	return c.header_
140618}
140619
140620func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
140621	reqHeaders := make(http.Header)
140622	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
140623	for k, v := range c.header_ {
140624		reqHeaders[k] = v
140625	}
140626	reqHeaders.Set("User-Agent", c.s.userAgent())
140627	var body io.Reader = nil
140628	c.urlParams_.Set("alt", alt)
140629	c.urlParams_.Set("prettyPrint", "false")
140630	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
140631	urls += "?" + c.urlParams_.Encode()
140632	req, err := http.NewRequest("DELETE", urls, body)
140633	if err != nil {
140634		return nil, err
140635	}
140636	req.Header = reqHeaders
140637	googleapi.Expand(req.URL, map[string]string{
140638		"project":        c.project,
140639		"region":         c.region,
140640		"sslCertificate": c.sslCertificate,
140641	})
140642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140643}
140644
140645// Do executes the "compute.regionSslCertificates.delete" call.
140646// Exactly one of *Operation or error will be non-nil. Any non-2xx
140647// status code is an error. Response headers are in either
140648// *Operation.ServerResponse.Header or (if a response was returned at
140649// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140650// to check whether the returned error was because
140651// http.StatusNotModified was returned.
140652func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140653	gensupport.SetOptions(c.urlParams_, opts...)
140654	res, err := c.doRequest("json")
140655	if res != nil && res.StatusCode == http.StatusNotModified {
140656		if res.Body != nil {
140657			res.Body.Close()
140658		}
140659		return nil, &googleapi.Error{
140660			Code:   res.StatusCode,
140661			Header: res.Header,
140662		}
140663	}
140664	if err != nil {
140665		return nil, err
140666	}
140667	defer googleapi.CloseBody(res)
140668	if err := googleapi.CheckResponse(res); err != nil {
140669		return nil, err
140670	}
140671	ret := &Operation{
140672		ServerResponse: googleapi.ServerResponse{
140673			Header:         res.Header,
140674			HTTPStatusCode: res.StatusCode,
140675		},
140676	}
140677	target := &ret
140678	if err := gensupport.DecodeResponse(target, res); err != nil {
140679		return nil, err
140680	}
140681	return ret, nil
140682	// {
140683	//   "description": "Deletes the specified SslCertificate resource in the region.",
140684	//   "httpMethod": "DELETE",
140685	//   "id": "compute.regionSslCertificates.delete",
140686	//   "parameterOrder": [
140687	//     "project",
140688	//     "region",
140689	//     "sslCertificate"
140690	//   ],
140691	//   "parameters": {
140692	//     "project": {
140693	//       "description": "Project ID for this request.",
140694	//       "location": "path",
140695	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140696	//       "required": true,
140697	//       "type": "string"
140698	//     },
140699	//     "region": {
140700	//       "description": "Name of the region scoping this request.",
140701	//       "location": "path",
140702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140703	//       "required": true,
140704	//       "type": "string"
140705	//     },
140706	//     "requestId": {
140707	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140708	//       "location": "query",
140709	//       "type": "string"
140710	//     },
140711	//     "sslCertificate": {
140712	//       "description": "Name of the SslCertificate resource to delete.",
140713	//       "location": "path",
140714	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140715	//       "required": true,
140716	//       "type": "string"
140717	//     }
140718	//   },
140719	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
140720	//   "response": {
140721	//     "$ref": "Operation"
140722	//   },
140723	//   "scopes": [
140724	//     "https://www.googleapis.com/auth/cloud-platform",
140725	//     "https://www.googleapis.com/auth/compute"
140726	//   ]
140727	// }
140728
140729}
140730
140731// method id "compute.regionSslCertificates.get":
140732
140733type RegionSslCertificatesGetCall struct {
140734	s              *Service
140735	project        string
140736	region         string
140737	sslCertificate string
140738	urlParams_     gensupport.URLParams
140739	ifNoneMatch_   string
140740	ctx_           context.Context
140741	header_        http.Header
140742}
140743
140744// Get: Returns the specified SslCertificate resource in the specified
140745// region. Get a list of available SSL certificates by making a list()
140746// request.
140747func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
140748	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140749	c.project = project
140750	c.region = region
140751	c.sslCertificate = sslCertificate
140752	return c
140753}
140754
140755// Fields allows partial responses to be retrieved. See
140756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140757// for more information.
140758func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
140759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140760	return c
140761}
140762
140763// IfNoneMatch sets the optional parameter which makes the operation
140764// fail if the object's ETag matches the given value. This is useful for
140765// getting updates only after the object has changed since the last
140766// request. Use googleapi.IsNotModified to check whether the response
140767// error from Do is the result of In-None-Match.
140768func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
140769	c.ifNoneMatch_ = entityTag
140770	return c
140771}
140772
140773// Context sets the context to be used in this call's Do method. Any
140774// pending HTTP request will be aborted if the provided context is
140775// canceled.
140776func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
140777	c.ctx_ = ctx
140778	return c
140779}
140780
140781// Header returns an http.Header that can be modified by the caller to
140782// add HTTP headers to the request.
140783func (c *RegionSslCertificatesGetCall) Header() http.Header {
140784	if c.header_ == nil {
140785		c.header_ = make(http.Header)
140786	}
140787	return c.header_
140788}
140789
140790func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
140791	reqHeaders := make(http.Header)
140792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
140793	for k, v := range c.header_ {
140794		reqHeaders[k] = v
140795	}
140796	reqHeaders.Set("User-Agent", c.s.userAgent())
140797	if c.ifNoneMatch_ != "" {
140798		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140799	}
140800	var body io.Reader = nil
140801	c.urlParams_.Set("alt", alt)
140802	c.urlParams_.Set("prettyPrint", "false")
140803	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
140804	urls += "?" + c.urlParams_.Encode()
140805	req, err := http.NewRequest("GET", urls, body)
140806	if err != nil {
140807		return nil, err
140808	}
140809	req.Header = reqHeaders
140810	googleapi.Expand(req.URL, map[string]string{
140811		"project":        c.project,
140812		"region":         c.region,
140813		"sslCertificate": c.sslCertificate,
140814	})
140815	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140816}
140817
140818// Do executes the "compute.regionSslCertificates.get" call.
140819// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
140820// status code is an error. Response headers are in either
140821// *SslCertificate.ServerResponse.Header or (if a response was returned
140822// at all) in error.(*googleapi.Error).Header. Use
140823// googleapi.IsNotModified to check whether the returned error was
140824// because http.StatusNotModified was returned.
140825func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
140826	gensupport.SetOptions(c.urlParams_, opts...)
140827	res, err := c.doRequest("json")
140828	if res != nil && res.StatusCode == http.StatusNotModified {
140829		if res.Body != nil {
140830			res.Body.Close()
140831		}
140832		return nil, &googleapi.Error{
140833			Code:   res.StatusCode,
140834			Header: res.Header,
140835		}
140836	}
140837	if err != nil {
140838		return nil, err
140839	}
140840	defer googleapi.CloseBody(res)
140841	if err := googleapi.CheckResponse(res); err != nil {
140842		return nil, err
140843	}
140844	ret := &SslCertificate{
140845		ServerResponse: googleapi.ServerResponse{
140846			Header:         res.Header,
140847			HTTPStatusCode: res.StatusCode,
140848		},
140849	}
140850	target := &ret
140851	if err := gensupport.DecodeResponse(target, res); err != nil {
140852		return nil, err
140853	}
140854	return ret, nil
140855	// {
140856	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
140857	//   "httpMethod": "GET",
140858	//   "id": "compute.regionSslCertificates.get",
140859	//   "parameterOrder": [
140860	//     "project",
140861	//     "region",
140862	//     "sslCertificate"
140863	//   ],
140864	//   "parameters": {
140865	//     "project": {
140866	//       "description": "Project ID for this request.",
140867	//       "location": "path",
140868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140869	//       "required": true,
140870	//       "type": "string"
140871	//     },
140872	//     "region": {
140873	//       "description": "Name of the region scoping this request.",
140874	//       "location": "path",
140875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140876	//       "required": true,
140877	//       "type": "string"
140878	//     },
140879	//     "sslCertificate": {
140880	//       "description": "Name of the SslCertificate resource to return.",
140881	//       "location": "path",
140882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140883	//       "required": true,
140884	//       "type": "string"
140885	//     }
140886	//   },
140887	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
140888	//   "response": {
140889	//     "$ref": "SslCertificate"
140890	//   },
140891	//   "scopes": [
140892	//     "https://www.googleapis.com/auth/cloud-platform",
140893	//     "https://www.googleapis.com/auth/compute",
140894	//     "https://www.googleapis.com/auth/compute.readonly"
140895	//   ]
140896	// }
140897
140898}
140899
140900// method id "compute.regionSslCertificates.insert":
140901
140902type RegionSslCertificatesInsertCall struct {
140903	s              *Service
140904	project        string
140905	region         string
140906	sslcertificate *SslCertificate
140907	urlParams_     gensupport.URLParams
140908	ctx_           context.Context
140909	header_        http.Header
140910}
140911
140912// Insert: Creates a SslCertificate resource in the specified project
140913// and region using the data included in the request
140914func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
140915	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140916	c.project = project
140917	c.region = region
140918	c.sslcertificate = sslcertificate
140919	return c
140920}
140921
140922// RequestId sets the optional parameter "requestId": An optional
140923// request ID to identify requests. Specify a unique request ID so that
140924// if you must retry your request, the server will know to ignore the
140925// request if it has already been completed.
140926//
140927// For example, consider a situation where you make an initial request
140928// and the request times out. If you make the request again with the
140929// same request ID, the server can check if original operation with the
140930// same request ID was received, and if so, will ignore the second
140931// request. This prevents clients from accidentally creating duplicate
140932// commitments.
140933//
140934// The request ID must be a valid UUID with the exception that zero UUID
140935// is not supported (00000000-0000-0000-0000-000000000000).
140936func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
140937	c.urlParams_.Set("requestId", requestId)
140938	return c
140939}
140940
140941// Fields allows partial responses to be retrieved. See
140942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140943// for more information.
140944func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
140945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140946	return c
140947}
140948
140949// Context sets the context to be used in this call's Do method. Any
140950// pending HTTP request will be aborted if the provided context is
140951// canceled.
140952func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
140953	c.ctx_ = ctx
140954	return c
140955}
140956
140957// Header returns an http.Header that can be modified by the caller to
140958// add HTTP headers to the request.
140959func (c *RegionSslCertificatesInsertCall) Header() http.Header {
140960	if c.header_ == nil {
140961		c.header_ = make(http.Header)
140962	}
140963	return c.header_
140964}
140965
140966func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
140967	reqHeaders := make(http.Header)
140968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
140969	for k, v := range c.header_ {
140970		reqHeaders[k] = v
140971	}
140972	reqHeaders.Set("User-Agent", c.s.userAgent())
140973	var body io.Reader = nil
140974	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
140975	if err != nil {
140976		return nil, err
140977	}
140978	reqHeaders.Set("Content-Type", "application/json")
140979	c.urlParams_.Set("alt", alt)
140980	c.urlParams_.Set("prettyPrint", "false")
140981	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
140982	urls += "?" + c.urlParams_.Encode()
140983	req, err := http.NewRequest("POST", urls, body)
140984	if err != nil {
140985		return nil, err
140986	}
140987	req.Header = reqHeaders
140988	googleapi.Expand(req.URL, map[string]string{
140989		"project": c.project,
140990		"region":  c.region,
140991	})
140992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140993}
140994
140995// Do executes the "compute.regionSslCertificates.insert" call.
140996// Exactly one of *Operation or error will be non-nil. Any non-2xx
140997// status code is an error. Response headers are in either
140998// *Operation.ServerResponse.Header or (if a response was returned at
140999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141000// to check whether the returned error was because
141001// http.StatusNotModified was returned.
141002func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141003	gensupport.SetOptions(c.urlParams_, opts...)
141004	res, err := c.doRequest("json")
141005	if res != nil && res.StatusCode == http.StatusNotModified {
141006		if res.Body != nil {
141007			res.Body.Close()
141008		}
141009		return nil, &googleapi.Error{
141010			Code:   res.StatusCode,
141011			Header: res.Header,
141012		}
141013	}
141014	if err != nil {
141015		return nil, err
141016	}
141017	defer googleapi.CloseBody(res)
141018	if err := googleapi.CheckResponse(res); err != nil {
141019		return nil, err
141020	}
141021	ret := &Operation{
141022		ServerResponse: googleapi.ServerResponse{
141023			Header:         res.Header,
141024			HTTPStatusCode: res.StatusCode,
141025		},
141026	}
141027	target := &ret
141028	if err := gensupport.DecodeResponse(target, res); err != nil {
141029		return nil, err
141030	}
141031	return ret, nil
141032	// {
141033	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
141034	//   "httpMethod": "POST",
141035	//   "id": "compute.regionSslCertificates.insert",
141036	//   "parameterOrder": [
141037	//     "project",
141038	//     "region"
141039	//   ],
141040	//   "parameters": {
141041	//     "project": {
141042	//       "description": "Project ID for this request.",
141043	//       "location": "path",
141044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141045	//       "required": true,
141046	//       "type": "string"
141047	//     },
141048	//     "region": {
141049	//       "description": "Name of the region scoping this request.",
141050	//       "location": "path",
141051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141052	//       "required": true,
141053	//       "type": "string"
141054	//     },
141055	//     "requestId": {
141056	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141057	//       "location": "query",
141058	//       "type": "string"
141059	//     }
141060	//   },
141061	//   "path": "{project}/regions/{region}/sslCertificates",
141062	//   "request": {
141063	//     "$ref": "SslCertificate"
141064	//   },
141065	//   "response": {
141066	//     "$ref": "Operation"
141067	//   },
141068	//   "scopes": [
141069	//     "https://www.googleapis.com/auth/cloud-platform",
141070	//     "https://www.googleapis.com/auth/compute"
141071	//   ]
141072	// }
141073
141074}
141075
141076// method id "compute.regionSslCertificates.list":
141077
141078type RegionSslCertificatesListCall struct {
141079	s            *Service
141080	project      string
141081	region       string
141082	urlParams_   gensupport.URLParams
141083	ifNoneMatch_ string
141084	ctx_         context.Context
141085	header_      http.Header
141086}
141087
141088// List: Retrieves the list of SslCertificate resources available to the
141089// specified project in the specified region.
141090func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
141091	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141092	c.project = project
141093	c.region = region
141094	return c
141095}
141096
141097// Filter sets the optional parameter "filter": A filter expression that
141098// filters resources listed in the response. The expression must specify
141099// the field name, a comparison operator, and the value that you want to
141100// use for filtering. The value must be a string, a number, or a
141101// boolean. The comparison operator must be either `=`, `!=`, `>`, or
141102// `<`.
141103//
141104// For example, if you are filtering Compute Engine instances, you can
141105// exclude instances named `example-instance` by specifying `name !=
141106// example-instance`.
141107//
141108// You can also filter nested fields. For example, you could specify
141109// `scheduling.automaticRestart = false` to include instances only if
141110// they are not scheduled for automatic restarts. You can use filtering
141111// on nested fields to filter based on resource labels.
141112//
141113// To filter on multiple expressions, provide each separate expression
141114// within parentheses. For example: ``` (scheduling.automaticRestart =
141115// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
141116// is an `AND` expression. However, you can include `AND` and `OR`
141117// expressions explicitly. For example: ``` (cpuPlatform = "Intel
141118// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
141119// (scheduling.automaticRestart = true) ```
141120func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
141121	c.urlParams_.Set("filter", filter)
141122	return c
141123}
141124
141125// MaxResults sets the optional parameter "maxResults": The maximum
141126// number of results per page that should be returned. If the number of
141127// available results is larger than `maxResults`, Compute Engine returns
141128// a `nextPageToken` that can be used to get the next page of results in
141129// subsequent list requests. Acceptable values are `0` to `500`,
141130// inclusive. (Default: `500`)
141131func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
141132	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141133	return c
141134}
141135
141136// OrderBy sets the optional parameter "orderBy": Sorts list results by
141137// a certain order. By default, results are returned in alphanumerical
141138// order based on the resource name.
141139//
141140// You can also sort results in descending order based on the creation
141141// timestamp using `orderBy="creationTimestamp desc". This sorts
141142// results based on the `creationTimestamp` field in reverse
141143// chronological order (newest result first). Use this to sort resources
141144// like operations so that the newest operation is returned
141145// first.
141146//
141147// Currently, only sorting by `name` or `creationTimestamp desc` is
141148// supported.
141149func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
141150	c.urlParams_.Set("orderBy", orderBy)
141151	return c
141152}
141153
141154// PageToken sets the optional parameter "pageToken": Specifies a page
141155// token to use. Set `pageToken` to the `nextPageToken` returned by a
141156// previous list request to get the next page of results.
141157func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
141158	c.urlParams_.Set("pageToken", pageToken)
141159	return c
141160}
141161
141162// ReturnPartialSuccess sets the optional parameter
141163// "returnPartialSuccess": Opt-in for partial success behavior which
141164// provides partial results in case of failure. The default value is
141165// false and the logic is the same as today.
141166func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall {
141167	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
141168	return c
141169}
141170
141171// Fields allows partial responses to be retrieved. See
141172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141173// for more information.
141174func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
141175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141176	return c
141177}
141178
141179// IfNoneMatch sets the optional parameter which makes the operation
141180// fail if the object's ETag matches the given value. This is useful for
141181// getting updates only after the object has changed since the last
141182// request. Use googleapi.IsNotModified to check whether the response
141183// error from Do is the result of In-None-Match.
141184func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
141185	c.ifNoneMatch_ = entityTag
141186	return c
141187}
141188
141189// Context sets the context to be used in this call's Do method. Any
141190// pending HTTP request will be aborted if the provided context is
141191// canceled.
141192func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
141193	c.ctx_ = ctx
141194	return c
141195}
141196
141197// Header returns an http.Header that can be modified by the caller to
141198// add HTTP headers to the request.
141199func (c *RegionSslCertificatesListCall) Header() http.Header {
141200	if c.header_ == nil {
141201		c.header_ = make(http.Header)
141202	}
141203	return c.header_
141204}
141205
141206func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
141207	reqHeaders := make(http.Header)
141208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
141209	for k, v := range c.header_ {
141210		reqHeaders[k] = v
141211	}
141212	reqHeaders.Set("User-Agent", c.s.userAgent())
141213	if c.ifNoneMatch_ != "" {
141214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141215	}
141216	var body io.Reader = nil
141217	c.urlParams_.Set("alt", alt)
141218	c.urlParams_.Set("prettyPrint", "false")
141219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
141220	urls += "?" + c.urlParams_.Encode()
141221	req, err := http.NewRequest("GET", urls, body)
141222	if err != nil {
141223		return nil, err
141224	}
141225	req.Header = reqHeaders
141226	googleapi.Expand(req.URL, map[string]string{
141227		"project": c.project,
141228		"region":  c.region,
141229	})
141230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141231}
141232
141233// Do executes the "compute.regionSslCertificates.list" call.
141234// Exactly one of *SslCertificateList or error will be non-nil. Any
141235// non-2xx status code is an error. Response headers are in either
141236// *SslCertificateList.ServerResponse.Header or (if a response was
141237// returned at all) in error.(*googleapi.Error).Header. Use
141238// googleapi.IsNotModified to check whether the returned error was
141239// because http.StatusNotModified was returned.
141240func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
141241	gensupport.SetOptions(c.urlParams_, opts...)
141242	res, err := c.doRequest("json")
141243	if res != nil && res.StatusCode == http.StatusNotModified {
141244		if res.Body != nil {
141245			res.Body.Close()
141246		}
141247		return nil, &googleapi.Error{
141248			Code:   res.StatusCode,
141249			Header: res.Header,
141250		}
141251	}
141252	if err != nil {
141253		return nil, err
141254	}
141255	defer googleapi.CloseBody(res)
141256	if err := googleapi.CheckResponse(res); err != nil {
141257		return nil, err
141258	}
141259	ret := &SslCertificateList{
141260		ServerResponse: googleapi.ServerResponse{
141261			Header:         res.Header,
141262			HTTPStatusCode: res.StatusCode,
141263		},
141264	}
141265	target := &ret
141266	if err := gensupport.DecodeResponse(target, res); err != nil {
141267		return nil, err
141268	}
141269	return ret, nil
141270	// {
141271	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
141272	//   "httpMethod": "GET",
141273	//   "id": "compute.regionSslCertificates.list",
141274	//   "parameterOrder": [
141275	//     "project",
141276	//     "region"
141277	//   ],
141278	//   "parameters": {
141279	//     "filter": {
141280	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
141281	//       "location": "query",
141282	//       "type": "string"
141283	//     },
141284	//     "maxResults": {
141285	//       "default": "500",
141286	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
141287	//       "format": "uint32",
141288	//       "location": "query",
141289	//       "minimum": "0",
141290	//       "type": "integer"
141291	//     },
141292	//     "orderBy": {
141293	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
141294	//       "location": "query",
141295	//       "type": "string"
141296	//     },
141297	//     "pageToken": {
141298	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
141299	//       "location": "query",
141300	//       "type": "string"
141301	//     },
141302	//     "project": {
141303	//       "description": "Project ID for this request.",
141304	//       "location": "path",
141305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141306	//       "required": true,
141307	//       "type": "string"
141308	//     },
141309	//     "region": {
141310	//       "description": "Name of the region scoping this request.",
141311	//       "location": "path",
141312	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141313	//       "required": true,
141314	//       "type": "string"
141315	//     },
141316	//     "returnPartialSuccess": {
141317	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
141318	//       "location": "query",
141319	//       "type": "boolean"
141320	//     }
141321	//   },
141322	//   "path": "{project}/regions/{region}/sslCertificates",
141323	//   "response": {
141324	//     "$ref": "SslCertificateList"
141325	//   },
141326	//   "scopes": [
141327	//     "https://www.googleapis.com/auth/cloud-platform",
141328	//     "https://www.googleapis.com/auth/compute",
141329	//     "https://www.googleapis.com/auth/compute.readonly"
141330	//   ]
141331	// }
141332
141333}
141334
141335// Pages invokes f for each page of results.
141336// A non-nil error returned from f will halt the iteration.
141337// The provided context supersedes any context provided to the Context method.
141338func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
141339	c.ctx_ = ctx
141340	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141341	for {
141342		x, err := c.Do()
141343		if err != nil {
141344			return err
141345		}
141346		if err := f(x); err != nil {
141347			return err
141348		}
141349		if x.NextPageToken == "" {
141350			return nil
141351		}
141352		c.PageToken(x.NextPageToken)
141353	}
141354}
141355
141356// method id "compute.regionSslCertificates.testIamPermissions":
141357
141358type RegionSslCertificatesTestIamPermissionsCall struct {
141359	s                      *Service
141360	project                string
141361	region                 string
141362	resource               string
141363	testpermissionsrequest *TestPermissionsRequest
141364	urlParams_             gensupport.URLParams
141365	ctx_                   context.Context
141366	header_                http.Header
141367}
141368
141369// TestIamPermissions: Returns permissions that a caller has on the
141370// specified resource and region.
141371func (r *RegionSslCertificatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionSslCertificatesTestIamPermissionsCall {
141372	c := &RegionSslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141373	c.project = project
141374	c.region = region
141375	c.resource = resource
141376	c.testpermissionsrequest = testpermissionsrequest
141377	return c
141378}
141379
141380// Fields allows partial responses to be retrieved. See
141381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141382// for more information.
141383func (c *RegionSslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionSslCertificatesTestIamPermissionsCall {
141384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141385	return c
141386}
141387
141388// Context sets the context to be used in this call's Do method. Any
141389// pending HTTP request will be aborted if the provided context is
141390// canceled.
141391func (c *RegionSslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *RegionSslCertificatesTestIamPermissionsCall {
141392	c.ctx_ = ctx
141393	return c
141394}
141395
141396// Header returns an http.Header that can be modified by the caller to
141397// add HTTP headers to the request.
141398func (c *RegionSslCertificatesTestIamPermissionsCall) Header() http.Header {
141399	if c.header_ == nil {
141400		c.header_ = make(http.Header)
141401	}
141402	return c.header_
141403}
141404
141405func (c *RegionSslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
141406	reqHeaders := make(http.Header)
141407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
141408	for k, v := range c.header_ {
141409		reqHeaders[k] = v
141410	}
141411	reqHeaders.Set("User-Agent", c.s.userAgent())
141412	var body io.Reader = nil
141413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
141414	if err != nil {
141415		return nil, err
141416	}
141417	reqHeaders.Set("Content-Type", "application/json")
141418	c.urlParams_.Set("alt", alt)
141419	c.urlParams_.Set("prettyPrint", "false")
141420	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions")
141421	urls += "?" + c.urlParams_.Encode()
141422	req, err := http.NewRequest("POST", urls, body)
141423	if err != nil {
141424		return nil, err
141425	}
141426	req.Header = reqHeaders
141427	googleapi.Expand(req.URL, map[string]string{
141428		"project":  c.project,
141429		"region":   c.region,
141430		"resource": c.resource,
141431	})
141432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141433}
141434
141435// Do executes the "compute.regionSslCertificates.testIamPermissions" call.
141436// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
141437// non-2xx status code is an error. Response headers are in either
141438// *TestPermissionsResponse.ServerResponse.Header or (if a response was
141439// returned at all) in error.(*googleapi.Error).Header. Use
141440// googleapi.IsNotModified to check whether the returned error was
141441// because http.StatusNotModified was returned.
141442func (c *RegionSslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
141443	gensupport.SetOptions(c.urlParams_, opts...)
141444	res, err := c.doRequest("json")
141445	if res != nil && res.StatusCode == http.StatusNotModified {
141446		if res.Body != nil {
141447			res.Body.Close()
141448		}
141449		return nil, &googleapi.Error{
141450			Code:   res.StatusCode,
141451			Header: res.Header,
141452		}
141453	}
141454	if err != nil {
141455		return nil, err
141456	}
141457	defer googleapi.CloseBody(res)
141458	if err := googleapi.CheckResponse(res); err != nil {
141459		return nil, err
141460	}
141461	ret := &TestPermissionsResponse{
141462		ServerResponse: googleapi.ServerResponse{
141463			Header:         res.Header,
141464			HTTPStatusCode: res.StatusCode,
141465		},
141466	}
141467	target := &ret
141468	if err := gensupport.DecodeResponse(target, res); err != nil {
141469		return nil, err
141470	}
141471	return ret, nil
141472	// {
141473	//   "description": "Returns permissions that a caller has on the specified resource and region.",
141474	//   "httpMethod": "POST",
141475	//   "id": "compute.regionSslCertificates.testIamPermissions",
141476	//   "parameterOrder": [
141477	//     "project",
141478	//     "region",
141479	//     "resource"
141480	//   ],
141481	//   "parameters": {
141482	//     "project": {
141483	//       "description": "Project ID for this request.",
141484	//       "location": "path",
141485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141486	//       "required": true,
141487	//       "type": "string"
141488	//     },
141489	//     "region": {
141490	//       "description": "The name of the region for this request.",
141491	//       "location": "path",
141492	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141493	//       "required": true,
141494	//       "type": "string"
141495	//     },
141496	//     "resource": {
141497	//       "description": "Name or id of the resource for this request.",
141498	//       "location": "path",
141499	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141500	//       "required": true,
141501	//       "type": "string"
141502	//     }
141503	//   },
141504	//   "path": "{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions",
141505	//   "request": {
141506	//     "$ref": "TestPermissionsRequest"
141507	//   },
141508	//   "response": {
141509	//     "$ref": "TestPermissionsResponse"
141510	//   },
141511	//   "scopes": [
141512	//     "https://www.googleapis.com/auth/cloud-platform",
141513	//     "https://www.googleapis.com/auth/compute",
141514	//     "https://www.googleapis.com/auth/compute.readonly"
141515	//   ]
141516	// }
141517
141518}
141519
141520// method id "compute.regionTargetHttpProxies.delete":
141521
141522type RegionTargetHttpProxiesDeleteCall struct {
141523	s               *Service
141524	project         string
141525	region          string
141526	targetHttpProxy string
141527	urlParams_      gensupport.URLParams
141528	ctx_            context.Context
141529	header_         http.Header
141530}
141531
141532// Delete: Deletes the specified TargetHttpProxy resource.
141533func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
141534	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141535	c.project = project
141536	c.region = region
141537	c.targetHttpProxy = targetHttpProxy
141538	return c
141539}
141540
141541// RequestId sets the optional parameter "requestId": An optional
141542// request ID to identify requests. Specify a unique request ID so that
141543// if you must retry your request, the server will know to ignore the
141544// request if it has already been completed.
141545//
141546// For example, consider a situation where you make an initial request
141547// and the request times out. If you make the request again with the
141548// same request ID, the server can check if original operation with the
141549// same request ID was received, and if so, will ignore the second
141550// request. This prevents clients from accidentally creating duplicate
141551// commitments.
141552//
141553// The request ID must be a valid UUID with the exception that zero UUID
141554// is not supported (00000000-0000-0000-0000-000000000000).
141555func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
141556	c.urlParams_.Set("requestId", requestId)
141557	return c
141558}
141559
141560// Fields allows partial responses to be retrieved. See
141561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141562// for more information.
141563func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
141564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141565	return c
141566}
141567
141568// Context sets the context to be used in this call's Do method. Any
141569// pending HTTP request will be aborted if the provided context is
141570// canceled.
141571func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
141572	c.ctx_ = ctx
141573	return c
141574}
141575
141576// Header returns an http.Header that can be modified by the caller to
141577// add HTTP headers to the request.
141578func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
141579	if c.header_ == nil {
141580		c.header_ = make(http.Header)
141581	}
141582	return c.header_
141583}
141584
141585func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
141586	reqHeaders := make(http.Header)
141587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
141588	for k, v := range c.header_ {
141589		reqHeaders[k] = v
141590	}
141591	reqHeaders.Set("User-Agent", c.s.userAgent())
141592	var body io.Reader = nil
141593	c.urlParams_.Set("alt", alt)
141594	c.urlParams_.Set("prettyPrint", "false")
141595	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
141596	urls += "?" + c.urlParams_.Encode()
141597	req, err := http.NewRequest("DELETE", urls, body)
141598	if err != nil {
141599		return nil, err
141600	}
141601	req.Header = reqHeaders
141602	googleapi.Expand(req.URL, map[string]string{
141603		"project":         c.project,
141604		"region":          c.region,
141605		"targetHttpProxy": c.targetHttpProxy,
141606	})
141607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141608}
141609
141610// Do executes the "compute.regionTargetHttpProxies.delete" call.
141611// Exactly one of *Operation or error will be non-nil. Any non-2xx
141612// status code is an error. Response headers are in either
141613// *Operation.ServerResponse.Header or (if a response was returned at
141614// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141615// to check whether the returned error was because
141616// http.StatusNotModified was returned.
141617func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141618	gensupport.SetOptions(c.urlParams_, opts...)
141619	res, err := c.doRequest("json")
141620	if res != nil && res.StatusCode == http.StatusNotModified {
141621		if res.Body != nil {
141622			res.Body.Close()
141623		}
141624		return nil, &googleapi.Error{
141625			Code:   res.StatusCode,
141626			Header: res.Header,
141627		}
141628	}
141629	if err != nil {
141630		return nil, err
141631	}
141632	defer googleapi.CloseBody(res)
141633	if err := googleapi.CheckResponse(res); err != nil {
141634		return nil, err
141635	}
141636	ret := &Operation{
141637		ServerResponse: googleapi.ServerResponse{
141638			Header:         res.Header,
141639			HTTPStatusCode: res.StatusCode,
141640		},
141641	}
141642	target := &ret
141643	if err := gensupport.DecodeResponse(target, res); err != nil {
141644		return nil, err
141645	}
141646	return ret, nil
141647	// {
141648	//   "description": "Deletes the specified TargetHttpProxy resource.",
141649	//   "httpMethod": "DELETE",
141650	//   "id": "compute.regionTargetHttpProxies.delete",
141651	//   "parameterOrder": [
141652	//     "project",
141653	//     "region",
141654	//     "targetHttpProxy"
141655	//   ],
141656	//   "parameters": {
141657	//     "project": {
141658	//       "description": "Project ID for this request.",
141659	//       "location": "path",
141660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141661	//       "required": true,
141662	//       "type": "string"
141663	//     },
141664	//     "region": {
141665	//       "description": "Name of the region scoping this request.",
141666	//       "location": "path",
141667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141668	//       "required": true,
141669	//       "type": "string"
141670	//     },
141671	//     "requestId": {
141672	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141673	//       "location": "query",
141674	//       "type": "string"
141675	//     },
141676	//     "targetHttpProxy": {
141677	//       "description": "Name of the TargetHttpProxy resource to delete.",
141678	//       "location": "path",
141679	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141680	//       "required": true,
141681	//       "type": "string"
141682	//     }
141683	//   },
141684	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
141685	//   "response": {
141686	//     "$ref": "Operation"
141687	//   },
141688	//   "scopes": [
141689	//     "https://www.googleapis.com/auth/cloud-platform",
141690	//     "https://www.googleapis.com/auth/compute"
141691	//   ]
141692	// }
141693
141694}
141695
141696// method id "compute.regionTargetHttpProxies.get":
141697
141698type RegionTargetHttpProxiesGetCall struct {
141699	s               *Service
141700	project         string
141701	region          string
141702	targetHttpProxy string
141703	urlParams_      gensupport.URLParams
141704	ifNoneMatch_    string
141705	ctx_            context.Context
141706	header_         http.Header
141707}
141708
141709// Get: Returns the specified TargetHttpProxy resource in the specified
141710// region. Gets a list of available target HTTP proxies by making a
141711// list() request.
141712func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
141713	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141714	c.project = project
141715	c.region = region
141716	c.targetHttpProxy = targetHttpProxy
141717	return c
141718}
141719
141720// Fields allows partial responses to be retrieved. See
141721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141722// for more information.
141723func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
141724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141725	return c
141726}
141727
141728// IfNoneMatch sets the optional parameter which makes the operation
141729// fail if the object's ETag matches the given value. This is useful for
141730// getting updates only after the object has changed since the last
141731// request. Use googleapi.IsNotModified to check whether the response
141732// error from Do is the result of In-None-Match.
141733func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
141734	c.ifNoneMatch_ = entityTag
141735	return c
141736}
141737
141738// Context sets the context to be used in this call's Do method. Any
141739// pending HTTP request will be aborted if the provided context is
141740// canceled.
141741func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
141742	c.ctx_ = ctx
141743	return c
141744}
141745
141746// Header returns an http.Header that can be modified by the caller to
141747// add HTTP headers to the request.
141748func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
141749	if c.header_ == nil {
141750		c.header_ = make(http.Header)
141751	}
141752	return c.header_
141753}
141754
141755func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
141756	reqHeaders := make(http.Header)
141757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
141758	for k, v := range c.header_ {
141759		reqHeaders[k] = v
141760	}
141761	reqHeaders.Set("User-Agent", c.s.userAgent())
141762	if c.ifNoneMatch_ != "" {
141763		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141764	}
141765	var body io.Reader = nil
141766	c.urlParams_.Set("alt", alt)
141767	c.urlParams_.Set("prettyPrint", "false")
141768	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
141769	urls += "?" + c.urlParams_.Encode()
141770	req, err := http.NewRequest("GET", urls, body)
141771	if err != nil {
141772		return nil, err
141773	}
141774	req.Header = reqHeaders
141775	googleapi.Expand(req.URL, map[string]string{
141776		"project":         c.project,
141777		"region":          c.region,
141778		"targetHttpProxy": c.targetHttpProxy,
141779	})
141780	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141781}
141782
141783// Do executes the "compute.regionTargetHttpProxies.get" call.
141784// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
141785// status code is an error. Response headers are in either
141786// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
141787// at all) in error.(*googleapi.Error).Header. Use
141788// googleapi.IsNotModified to check whether the returned error was
141789// because http.StatusNotModified was returned.
141790func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
141791	gensupport.SetOptions(c.urlParams_, opts...)
141792	res, err := c.doRequest("json")
141793	if res != nil && res.StatusCode == http.StatusNotModified {
141794		if res.Body != nil {
141795			res.Body.Close()
141796		}
141797		return nil, &googleapi.Error{
141798			Code:   res.StatusCode,
141799			Header: res.Header,
141800		}
141801	}
141802	if err != nil {
141803		return nil, err
141804	}
141805	defer googleapi.CloseBody(res)
141806	if err := googleapi.CheckResponse(res); err != nil {
141807		return nil, err
141808	}
141809	ret := &TargetHttpProxy{
141810		ServerResponse: googleapi.ServerResponse{
141811			Header:         res.Header,
141812			HTTPStatusCode: res.StatusCode,
141813		},
141814	}
141815	target := &ret
141816	if err := gensupport.DecodeResponse(target, res); err != nil {
141817		return nil, err
141818	}
141819	return ret, nil
141820	// {
141821	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
141822	//   "httpMethod": "GET",
141823	//   "id": "compute.regionTargetHttpProxies.get",
141824	//   "parameterOrder": [
141825	//     "project",
141826	//     "region",
141827	//     "targetHttpProxy"
141828	//   ],
141829	//   "parameters": {
141830	//     "project": {
141831	//       "description": "Project ID for this request.",
141832	//       "location": "path",
141833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141834	//       "required": true,
141835	//       "type": "string"
141836	//     },
141837	//     "region": {
141838	//       "description": "Name of the region scoping this request.",
141839	//       "location": "path",
141840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141841	//       "required": true,
141842	//       "type": "string"
141843	//     },
141844	//     "targetHttpProxy": {
141845	//       "description": "Name of the TargetHttpProxy resource to return.",
141846	//       "location": "path",
141847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141848	//       "required": true,
141849	//       "type": "string"
141850	//     }
141851	//   },
141852	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
141853	//   "response": {
141854	//     "$ref": "TargetHttpProxy"
141855	//   },
141856	//   "scopes": [
141857	//     "https://www.googleapis.com/auth/cloud-platform",
141858	//     "https://www.googleapis.com/auth/compute",
141859	//     "https://www.googleapis.com/auth/compute.readonly"
141860	//   ]
141861	// }
141862
141863}
141864
141865// method id "compute.regionTargetHttpProxies.insert":
141866
141867type RegionTargetHttpProxiesInsertCall struct {
141868	s               *Service
141869	project         string
141870	region          string
141871	targethttpproxy *TargetHttpProxy
141872	urlParams_      gensupport.URLParams
141873	ctx_            context.Context
141874	header_         http.Header
141875}
141876
141877// Insert: Creates a TargetHttpProxy resource in the specified project
141878// and region using the data included in the request.
141879func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
141880	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141881	c.project = project
141882	c.region = region
141883	c.targethttpproxy = targethttpproxy
141884	return c
141885}
141886
141887// RequestId sets the optional parameter "requestId": An optional
141888// request ID to identify requests. Specify a unique request ID so that
141889// if you must retry your request, the server will know to ignore the
141890// request if it has already been completed.
141891//
141892// For example, consider a situation where you make an initial request
141893// and the request times out. If you make the request again with the
141894// same request ID, the server can check if original operation with the
141895// same request ID was received, and if so, will ignore the second
141896// request. This prevents clients from accidentally creating duplicate
141897// commitments.
141898//
141899// The request ID must be a valid UUID with the exception that zero UUID
141900// is not supported (00000000-0000-0000-0000-000000000000).
141901func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
141902	c.urlParams_.Set("requestId", requestId)
141903	return c
141904}
141905
141906// Fields allows partial responses to be retrieved. See
141907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141908// for more information.
141909func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
141910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141911	return c
141912}
141913
141914// Context sets the context to be used in this call's Do method. Any
141915// pending HTTP request will be aborted if the provided context is
141916// canceled.
141917func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
141918	c.ctx_ = ctx
141919	return c
141920}
141921
141922// Header returns an http.Header that can be modified by the caller to
141923// add HTTP headers to the request.
141924func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
141925	if c.header_ == nil {
141926		c.header_ = make(http.Header)
141927	}
141928	return c.header_
141929}
141930
141931func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
141932	reqHeaders := make(http.Header)
141933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
141934	for k, v := range c.header_ {
141935		reqHeaders[k] = v
141936	}
141937	reqHeaders.Set("User-Agent", c.s.userAgent())
141938	var body io.Reader = nil
141939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
141940	if err != nil {
141941		return nil, err
141942	}
141943	reqHeaders.Set("Content-Type", "application/json")
141944	c.urlParams_.Set("alt", alt)
141945	c.urlParams_.Set("prettyPrint", "false")
141946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
141947	urls += "?" + c.urlParams_.Encode()
141948	req, err := http.NewRequest("POST", urls, body)
141949	if err != nil {
141950		return nil, err
141951	}
141952	req.Header = reqHeaders
141953	googleapi.Expand(req.URL, map[string]string{
141954		"project": c.project,
141955		"region":  c.region,
141956	})
141957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141958}
141959
141960// Do executes the "compute.regionTargetHttpProxies.insert" call.
141961// Exactly one of *Operation or error will be non-nil. Any non-2xx
141962// status code is an error. Response headers are in either
141963// *Operation.ServerResponse.Header or (if a response was returned at
141964// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141965// to check whether the returned error was because
141966// http.StatusNotModified was returned.
141967func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141968	gensupport.SetOptions(c.urlParams_, opts...)
141969	res, err := c.doRequest("json")
141970	if res != nil && res.StatusCode == http.StatusNotModified {
141971		if res.Body != nil {
141972			res.Body.Close()
141973		}
141974		return nil, &googleapi.Error{
141975			Code:   res.StatusCode,
141976			Header: res.Header,
141977		}
141978	}
141979	if err != nil {
141980		return nil, err
141981	}
141982	defer googleapi.CloseBody(res)
141983	if err := googleapi.CheckResponse(res); err != nil {
141984		return nil, err
141985	}
141986	ret := &Operation{
141987		ServerResponse: googleapi.ServerResponse{
141988			Header:         res.Header,
141989			HTTPStatusCode: res.StatusCode,
141990		},
141991	}
141992	target := &ret
141993	if err := gensupport.DecodeResponse(target, res); err != nil {
141994		return nil, err
141995	}
141996	return ret, nil
141997	// {
141998	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
141999	//   "httpMethod": "POST",
142000	//   "id": "compute.regionTargetHttpProxies.insert",
142001	//   "parameterOrder": [
142002	//     "project",
142003	//     "region"
142004	//   ],
142005	//   "parameters": {
142006	//     "project": {
142007	//       "description": "Project ID for this request.",
142008	//       "location": "path",
142009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142010	//       "required": true,
142011	//       "type": "string"
142012	//     },
142013	//     "region": {
142014	//       "description": "Name of the region scoping this request.",
142015	//       "location": "path",
142016	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142017	//       "required": true,
142018	//       "type": "string"
142019	//     },
142020	//     "requestId": {
142021	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142022	//       "location": "query",
142023	//       "type": "string"
142024	//     }
142025	//   },
142026	//   "path": "{project}/regions/{region}/targetHttpProxies",
142027	//   "request": {
142028	//     "$ref": "TargetHttpProxy"
142029	//   },
142030	//   "response": {
142031	//     "$ref": "Operation"
142032	//   },
142033	//   "scopes": [
142034	//     "https://www.googleapis.com/auth/cloud-platform",
142035	//     "https://www.googleapis.com/auth/compute"
142036	//   ]
142037	// }
142038
142039}
142040
142041// method id "compute.regionTargetHttpProxies.list":
142042
142043type RegionTargetHttpProxiesListCall struct {
142044	s            *Service
142045	project      string
142046	region       string
142047	urlParams_   gensupport.URLParams
142048	ifNoneMatch_ string
142049	ctx_         context.Context
142050	header_      http.Header
142051}
142052
142053// List: Retrieves the list of TargetHttpProxy resources available to
142054// the specified project in the specified region.
142055func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
142056	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142057	c.project = project
142058	c.region = region
142059	return c
142060}
142061
142062// Filter sets the optional parameter "filter": A filter expression that
142063// filters resources listed in the response. The expression must specify
142064// the field name, a comparison operator, and the value that you want to
142065// use for filtering. The value must be a string, a number, or a
142066// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142067// `<`.
142068//
142069// For example, if you are filtering Compute Engine instances, you can
142070// exclude instances named `example-instance` by specifying `name !=
142071// example-instance`.
142072//
142073// You can also filter nested fields. For example, you could specify
142074// `scheduling.automaticRestart = false` to include instances only if
142075// they are not scheduled for automatic restarts. You can use filtering
142076// on nested fields to filter based on resource labels.
142077//
142078// To filter on multiple expressions, provide each separate expression
142079// within parentheses. For example: ``` (scheduling.automaticRestart =
142080// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142081// is an `AND` expression. However, you can include `AND` and `OR`
142082// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142083// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142084// (scheduling.automaticRestart = true) ```
142085func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
142086	c.urlParams_.Set("filter", filter)
142087	return c
142088}
142089
142090// MaxResults sets the optional parameter "maxResults": The maximum
142091// number of results per page that should be returned. If the number of
142092// available results is larger than `maxResults`, Compute Engine returns
142093// a `nextPageToken` that can be used to get the next page of results in
142094// subsequent list requests. Acceptable values are `0` to `500`,
142095// inclusive. (Default: `500`)
142096func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
142097	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142098	return c
142099}
142100
142101// OrderBy sets the optional parameter "orderBy": Sorts list results by
142102// a certain order. By default, results are returned in alphanumerical
142103// order based on the resource name.
142104//
142105// You can also sort results in descending order based on the creation
142106// timestamp using `orderBy="creationTimestamp desc". This sorts
142107// results based on the `creationTimestamp` field in reverse
142108// chronological order (newest result first). Use this to sort resources
142109// like operations so that the newest operation is returned
142110// first.
142111//
142112// Currently, only sorting by `name` or `creationTimestamp desc` is
142113// supported.
142114func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
142115	c.urlParams_.Set("orderBy", orderBy)
142116	return c
142117}
142118
142119// PageToken sets the optional parameter "pageToken": Specifies a page
142120// token to use. Set `pageToken` to the `nextPageToken` returned by a
142121// previous list request to get the next page of results.
142122func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
142123	c.urlParams_.Set("pageToken", pageToken)
142124	return c
142125}
142126
142127// ReturnPartialSuccess sets the optional parameter
142128// "returnPartialSuccess": Opt-in for partial success behavior which
142129// provides partial results in case of failure. The default value is
142130// false and the logic is the same as today.
142131func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall {
142132	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
142133	return c
142134}
142135
142136// Fields allows partial responses to be retrieved. See
142137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142138// for more information.
142139func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
142140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142141	return c
142142}
142143
142144// IfNoneMatch sets the optional parameter which makes the operation
142145// fail if the object's ETag matches the given value. This is useful for
142146// getting updates only after the object has changed since the last
142147// request. Use googleapi.IsNotModified to check whether the response
142148// error from Do is the result of In-None-Match.
142149func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
142150	c.ifNoneMatch_ = entityTag
142151	return c
142152}
142153
142154// Context sets the context to be used in this call's Do method. Any
142155// pending HTTP request will be aborted if the provided context is
142156// canceled.
142157func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
142158	c.ctx_ = ctx
142159	return c
142160}
142161
142162// Header returns an http.Header that can be modified by the caller to
142163// add HTTP headers to the request.
142164func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
142165	if c.header_ == nil {
142166		c.header_ = make(http.Header)
142167	}
142168	return c.header_
142169}
142170
142171func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
142172	reqHeaders := make(http.Header)
142173	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
142174	for k, v := range c.header_ {
142175		reqHeaders[k] = v
142176	}
142177	reqHeaders.Set("User-Agent", c.s.userAgent())
142178	if c.ifNoneMatch_ != "" {
142179		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142180	}
142181	var body io.Reader = nil
142182	c.urlParams_.Set("alt", alt)
142183	c.urlParams_.Set("prettyPrint", "false")
142184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
142185	urls += "?" + c.urlParams_.Encode()
142186	req, err := http.NewRequest("GET", urls, body)
142187	if err != nil {
142188		return nil, err
142189	}
142190	req.Header = reqHeaders
142191	googleapi.Expand(req.URL, map[string]string{
142192		"project": c.project,
142193		"region":  c.region,
142194	})
142195	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142196}
142197
142198// Do executes the "compute.regionTargetHttpProxies.list" call.
142199// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
142200// non-2xx status code is an error. Response headers are in either
142201// *TargetHttpProxyList.ServerResponse.Header or (if a response was
142202// returned at all) in error.(*googleapi.Error).Header. Use
142203// googleapi.IsNotModified to check whether the returned error was
142204// because http.StatusNotModified was returned.
142205func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
142206	gensupport.SetOptions(c.urlParams_, opts...)
142207	res, err := c.doRequest("json")
142208	if res != nil && res.StatusCode == http.StatusNotModified {
142209		if res.Body != nil {
142210			res.Body.Close()
142211		}
142212		return nil, &googleapi.Error{
142213			Code:   res.StatusCode,
142214			Header: res.Header,
142215		}
142216	}
142217	if err != nil {
142218		return nil, err
142219	}
142220	defer googleapi.CloseBody(res)
142221	if err := googleapi.CheckResponse(res); err != nil {
142222		return nil, err
142223	}
142224	ret := &TargetHttpProxyList{
142225		ServerResponse: googleapi.ServerResponse{
142226			Header:         res.Header,
142227			HTTPStatusCode: res.StatusCode,
142228		},
142229	}
142230	target := &ret
142231	if err := gensupport.DecodeResponse(target, res); err != nil {
142232		return nil, err
142233	}
142234	return ret, nil
142235	// {
142236	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
142237	//   "httpMethod": "GET",
142238	//   "id": "compute.regionTargetHttpProxies.list",
142239	//   "parameterOrder": [
142240	//     "project",
142241	//     "region"
142242	//   ],
142243	//   "parameters": {
142244	//     "filter": {
142245	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
142246	//       "location": "query",
142247	//       "type": "string"
142248	//     },
142249	//     "maxResults": {
142250	//       "default": "500",
142251	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142252	//       "format": "uint32",
142253	//       "location": "query",
142254	//       "minimum": "0",
142255	//       "type": "integer"
142256	//     },
142257	//     "orderBy": {
142258	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
142259	//       "location": "query",
142260	//       "type": "string"
142261	//     },
142262	//     "pageToken": {
142263	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142264	//       "location": "query",
142265	//       "type": "string"
142266	//     },
142267	//     "project": {
142268	//       "description": "Project ID for this request.",
142269	//       "location": "path",
142270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142271	//       "required": true,
142272	//       "type": "string"
142273	//     },
142274	//     "region": {
142275	//       "description": "Name of the region scoping this request.",
142276	//       "location": "path",
142277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142278	//       "required": true,
142279	//       "type": "string"
142280	//     },
142281	//     "returnPartialSuccess": {
142282	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
142283	//       "location": "query",
142284	//       "type": "boolean"
142285	//     }
142286	//   },
142287	//   "path": "{project}/regions/{region}/targetHttpProxies",
142288	//   "response": {
142289	//     "$ref": "TargetHttpProxyList"
142290	//   },
142291	//   "scopes": [
142292	//     "https://www.googleapis.com/auth/cloud-platform",
142293	//     "https://www.googleapis.com/auth/compute",
142294	//     "https://www.googleapis.com/auth/compute.readonly"
142295	//   ]
142296	// }
142297
142298}
142299
142300// Pages invokes f for each page of results.
142301// A non-nil error returned from f will halt the iteration.
142302// The provided context supersedes any context provided to the Context method.
142303func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
142304	c.ctx_ = ctx
142305	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142306	for {
142307		x, err := c.Do()
142308		if err != nil {
142309			return err
142310		}
142311		if err := f(x); err != nil {
142312			return err
142313		}
142314		if x.NextPageToken == "" {
142315			return nil
142316		}
142317		c.PageToken(x.NextPageToken)
142318	}
142319}
142320
142321// method id "compute.regionTargetHttpProxies.setUrlMap":
142322
142323type RegionTargetHttpProxiesSetUrlMapCall struct {
142324	s               *Service
142325	project         string
142326	region          string
142327	targetHttpProxy string
142328	urlmapreference *UrlMapReference
142329	urlParams_      gensupport.URLParams
142330	ctx_            context.Context
142331	header_         http.Header
142332}
142333
142334// SetUrlMap: Changes the URL map for TargetHttpProxy.
142335func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
142336	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142337	c.project = project
142338	c.region = region
142339	c.targetHttpProxy = targetHttpProxy
142340	c.urlmapreference = urlmapreference
142341	return c
142342}
142343
142344// RequestId sets the optional parameter "requestId": An optional
142345// request ID to identify requests. Specify a unique request ID so that
142346// if you must retry your request, the server will know to ignore the
142347// request if it has already been completed.
142348//
142349// For example, consider a situation where you make an initial request
142350// and the request times out. If you make the request again with the
142351// same request ID, the server can check if original operation with the
142352// same request ID was received, and if so, will ignore the second
142353// request. This prevents clients from accidentally creating duplicate
142354// commitments.
142355//
142356// The request ID must be a valid UUID with the exception that zero UUID
142357// is not supported (00000000-0000-0000-0000-000000000000).
142358func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
142359	c.urlParams_.Set("requestId", requestId)
142360	return c
142361}
142362
142363// Fields allows partial responses to be retrieved. See
142364// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142365// for more information.
142366func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
142367	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142368	return c
142369}
142370
142371// Context sets the context to be used in this call's Do method. Any
142372// pending HTTP request will be aborted if the provided context is
142373// canceled.
142374func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
142375	c.ctx_ = ctx
142376	return c
142377}
142378
142379// Header returns an http.Header that can be modified by the caller to
142380// add HTTP headers to the request.
142381func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
142382	if c.header_ == nil {
142383		c.header_ = make(http.Header)
142384	}
142385	return c.header_
142386}
142387
142388func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
142389	reqHeaders := make(http.Header)
142390	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
142391	for k, v := range c.header_ {
142392		reqHeaders[k] = v
142393	}
142394	reqHeaders.Set("User-Agent", c.s.userAgent())
142395	var body io.Reader = nil
142396	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
142397	if err != nil {
142398		return nil, err
142399	}
142400	reqHeaders.Set("Content-Type", "application/json")
142401	c.urlParams_.Set("alt", alt)
142402	c.urlParams_.Set("prettyPrint", "false")
142403	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
142404	urls += "?" + c.urlParams_.Encode()
142405	req, err := http.NewRequest("POST", urls, body)
142406	if err != nil {
142407		return nil, err
142408	}
142409	req.Header = reqHeaders
142410	googleapi.Expand(req.URL, map[string]string{
142411		"project":         c.project,
142412		"region":          c.region,
142413		"targetHttpProxy": c.targetHttpProxy,
142414	})
142415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142416}
142417
142418// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
142419// Exactly one of *Operation or error will be non-nil. Any non-2xx
142420// status code is an error. Response headers are in either
142421// *Operation.ServerResponse.Header or (if a response was returned at
142422// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142423// to check whether the returned error was because
142424// http.StatusNotModified was returned.
142425func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142426	gensupport.SetOptions(c.urlParams_, opts...)
142427	res, err := c.doRequest("json")
142428	if res != nil && res.StatusCode == http.StatusNotModified {
142429		if res.Body != nil {
142430			res.Body.Close()
142431		}
142432		return nil, &googleapi.Error{
142433			Code:   res.StatusCode,
142434			Header: res.Header,
142435		}
142436	}
142437	if err != nil {
142438		return nil, err
142439	}
142440	defer googleapi.CloseBody(res)
142441	if err := googleapi.CheckResponse(res); err != nil {
142442		return nil, err
142443	}
142444	ret := &Operation{
142445		ServerResponse: googleapi.ServerResponse{
142446			Header:         res.Header,
142447			HTTPStatusCode: res.StatusCode,
142448		},
142449	}
142450	target := &ret
142451	if err := gensupport.DecodeResponse(target, res); err != nil {
142452		return nil, err
142453	}
142454	return ret, nil
142455	// {
142456	//   "description": "Changes the URL map for TargetHttpProxy.",
142457	//   "httpMethod": "POST",
142458	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
142459	//   "parameterOrder": [
142460	//     "project",
142461	//     "region",
142462	//     "targetHttpProxy"
142463	//   ],
142464	//   "parameters": {
142465	//     "project": {
142466	//       "description": "Project ID for this request.",
142467	//       "location": "path",
142468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142469	//       "required": true,
142470	//       "type": "string"
142471	//     },
142472	//     "region": {
142473	//       "description": "Name of the region scoping this request.",
142474	//       "location": "path",
142475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142476	//       "required": true,
142477	//       "type": "string"
142478	//     },
142479	//     "requestId": {
142480	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142481	//       "location": "query",
142482	//       "type": "string"
142483	//     },
142484	//     "targetHttpProxy": {
142485	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
142486	//       "location": "path",
142487	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142488	//       "required": true,
142489	//       "type": "string"
142490	//     }
142491	//   },
142492	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
142493	//   "request": {
142494	//     "$ref": "UrlMapReference"
142495	//   },
142496	//   "response": {
142497	//     "$ref": "Operation"
142498	//   },
142499	//   "scopes": [
142500	//     "https://www.googleapis.com/auth/cloud-platform",
142501	//     "https://www.googleapis.com/auth/compute"
142502	//   ]
142503	// }
142504
142505}
142506
142507// method id "compute.regionTargetHttpProxies.testIamPermissions":
142508
142509type RegionTargetHttpProxiesTestIamPermissionsCall struct {
142510	s                      *Service
142511	project                string
142512	region                 string
142513	resource               string
142514	testpermissionsrequest *TestPermissionsRequest
142515	urlParams_             gensupport.URLParams
142516	ctx_                   context.Context
142517	header_                http.Header
142518}
142519
142520// TestIamPermissions: Returns permissions that a caller has on the
142521// specified resource.
142522func (r *RegionTargetHttpProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpProxiesTestIamPermissionsCall {
142523	c := &RegionTargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142524	c.project = project
142525	c.region = region
142526	c.resource = resource
142527	c.testpermissionsrequest = testpermissionsrequest
142528	return c
142529}
142530
142531// Fields allows partial responses to be retrieved. See
142532// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142533// for more information.
142534func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesTestIamPermissionsCall {
142535	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142536	return c
142537}
142538
142539// Context sets the context to be used in this call's Do method. Any
142540// pending HTTP request will be aborted if the provided context is
142541// canceled.
142542func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpProxiesTestIamPermissionsCall {
142543	c.ctx_ = ctx
142544	return c
142545}
142546
142547// Header returns an http.Header that can be modified by the caller to
142548// add HTTP headers to the request.
142549func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
142550	if c.header_ == nil {
142551		c.header_ = make(http.Header)
142552	}
142553	return c.header_
142554}
142555
142556func (c *RegionTargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
142557	reqHeaders := make(http.Header)
142558	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
142559	for k, v := range c.header_ {
142560		reqHeaders[k] = v
142561	}
142562	reqHeaders.Set("User-Agent", c.s.userAgent())
142563	var body io.Reader = nil
142564	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
142565	if err != nil {
142566		return nil, err
142567	}
142568	reqHeaders.Set("Content-Type", "application/json")
142569	c.urlParams_.Set("alt", alt)
142570	c.urlParams_.Set("prettyPrint", "false")
142571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions")
142572	urls += "?" + c.urlParams_.Encode()
142573	req, err := http.NewRequest("POST", urls, body)
142574	if err != nil {
142575		return nil, err
142576	}
142577	req.Header = reqHeaders
142578	googleapi.Expand(req.URL, map[string]string{
142579		"project":  c.project,
142580		"region":   c.region,
142581		"resource": c.resource,
142582	})
142583	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142584}
142585
142586// Do executes the "compute.regionTargetHttpProxies.testIamPermissions" call.
142587// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
142588// non-2xx status code is an error. Response headers are in either
142589// *TestPermissionsResponse.ServerResponse.Header or (if a response was
142590// returned at all) in error.(*googleapi.Error).Header. Use
142591// googleapi.IsNotModified to check whether the returned error was
142592// because http.StatusNotModified was returned.
142593func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
142594	gensupport.SetOptions(c.urlParams_, opts...)
142595	res, err := c.doRequest("json")
142596	if res != nil && res.StatusCode == http.StatusNotModified {
142597		if res.Body != nil {
142598			res.Body.Close()
142599		}
142600		return nil, &googleapi.Error{
142601			Code:   res.StatusCode,
142602			Header: res.Header,
142603		}
142604	}
142605	if err != nil {
142606		return nil, err
142607	}
142608	defer googleapi.CloseBody(res)
142609	if err := googleapi.CheckResponse(res); err != nil {
142610		return nil, err
142611	}
142612	ret := &TestPermissionsResponse{
142613		ServerResponse: googleapi.ServerResponse{
142614			Header:         res.Header,
142615			HTTPStatusCode: res.StatusCode,
142616		},
142617	}
142618	target := &ret
142619	if err := gensupport.DecodeResponse(target, res); err != nil {
142620		return nil, err
142621	}
142622	return ret, nil
142623	// {
142624	//   "description": "Returns permissions that a caller has on the specified resource.",
142625	//   "httpMethod": "POST",
142626	//   "id": "compute.regionTargetHttpProxies.testIamPermissions",
142627	//   "parameterOrder": [
142628	//     "project",
142629	//     "region",
142630	//     "resource"
142631	//   ],
142632	//   "parameters": {
142633	//     "project": {
142634	//       "description": "Project ID for this request.",
142635	//       "location": "path",
142636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142637	//       "required": true,
142638	//       "type": "string"
142639	//     },
142640	//     "region": {
142641	//       "description": "The name of the region for this request.",
142642	//       "location": "path",
142643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142644	//       "required": true,
142645	//       "type": "string"
142646	//     },
142647	//     "resource": {
142648	//       "description": "Name or id of the resource for this request.",
142649	//       "location": "path",
142650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142651	//       "required": true,
142652	//       "type": "string"
142653	//     }
142654	//   },
142655	//   "path": "{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions",
142656	//   "request": {
142657	//     "$ref": "TestPermissionsRequest"
142658	//   },
142659	//   "response": {
142660	//     "$ref": "TestPermissionsResponse"
142661	//   },
142662	//   "scopes": [
142663	//     "https://www.googleapis.com/auth/cloud-platform",
142664	//     "https://www.googleapis.com/auth/compute",
142665	//     "https://www.googleapis.com/auth/compute.readonly"
142666	//   ]
142667	// }
142668
142669}
142670
142671// method id "compute.regionTargetHttpsProxies.delete":
142672
142673type RegionTargetHttpsProxiesDeleteCall struct {
142674	s                *Service
142675	project          string
142676	region           string
142677	targetHttpsProxy string
142678	urlParams_       gensupport.URLParams
142679	ctx_             context.Context
142680	header_          http.Header
142681}
142682
142683// Delete: Deletes the specified TargetHttpsProxy resource.
142684func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
142685	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142686	c.project = project
142687	c.region = region
142688	c.targetHttpsProxy = targetHttpsProxy
142689	return c
142690}
142691
142692// RequestId sets the optional parameter "requestId": An optional
142693// request ID to identify requests. Specify a unique request ID so that
142694// if you must retry your request, the server will know to ignore the
142695// request if it has already been completed.
142696//
142697// For example, consider a situation where you make an initial request
142698// and the request times out. If you make the request again with the
142699// same request ID, the server can check if original operation with the
142700// same request ID was received, and if so, will ignore the second
142701// request. This prevents clients from accidentally creating duplicate
142702// commitments.
142703//
142704// The request ID must be a valid UUID with the exception that zero UUID
142705// is not supported (00000000-0000-0000-0000-000000000000).
142706func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
142707	c.urlParams_.Set("requestId", requestId)
142708	return c
142709}
142710
142711// Fields allows partial responses to be retrieved. See
142712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142713// for more information.
142714func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
142715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142716	return c
142717}
142718
142719// Context sets the context to be used in this call's Do method. Any
142720// pending HTTP request will be aborted if the provided context is
142721// canceled.
142722func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
142723	c.ctx_ = ctx
142724	return c
142725}
142726
142727// Header returns an http.Header that can be modified by the caller to
142728// add HTTP headers to the request.
142729func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
142730	if c.header_ == nil {
142731		c.header_ = make(http.Header)
142732	}
142733	return c.header_
142734}
142735
142736func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
142737	reqHeaders := make(http.Header)
142738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
142739	for k, v := range c.header_ {
142740		reqHeaders[k] = v
142741	}
142742	reqHeaders.Set("User-Agent", c.s.userAgent())
142743	var body io.Reader = nil
142744	c.urlParams_.Set("alt", alt)
142745	c.urlParams_.Set("prettyPrint", "false")
142746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
142747	urls += "?" + c.urlParams_.Encode()
142748	req, err := http.NewRequest("DELETE", urls, body)
142749	if err != nil {
142750		return nil, err
142751	}
142752	req.Header = reqHeaders
142753	googleapi.Expand(req.URL, map[string]string{
142754		"project":          c.project,
142755		"region":           c.region,
142756		"targetHttpsProxy": c.targetHttpsProxy,
142757	})
142758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142759}
142760
142761// Do executes the "compute.regionTargetHttpsProxies.delete" call.
142762// Exactly one of *Operation or error will be non-nil. Any non-2xx
142763// status code is an error. Response headers are in either
142764// *Operation.ServerResponse.Header or (if a response was returned at
142765// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142766// to check whether the returned error was because
142767// http.StatusNotModified was returned.
142768func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142769	gensupport.SetOptions(c.urlParams_, opts...)
142770	res, err := c.doRequest("json")
142771	if res != nil && res.StatusCode == http.StatusNotModified {
142772		if res.Body != nil {
142773			res.Body.Close()
142774		}
142775		return nil, &googleapi.Error{
142776			Code:   res.StatusCode,
142777			Header: res.Header,
142778		}
142779	}
142780	if err != nil {
142781		return nil, err
142782	}
142783	defer googleapi.CloseBody(res)
142784	if err := googleapi.CheckResponse(res); err != nil {
142785		return nil, err
142786	}
142787	ret := &Operation{
142788		ServerResponse: googleapi.ServerResponse{
142789			Header:         res.Header,
142790			HTTPStatusCode: res.StatusCode,
142791		},
142792	}
142793	target := &ret
142794	if err := gensupport.DecodeResponse(target, res); err != nil {
142795		return nil, err
142796	}
142797	return ret, nil
142798	// {
142799	//   "description": "Deletes the specified TargetHttpsProxy resource.",
142800	//   "httpMethod": "DELETE",
142801	//   "id": "compute.regionTargetHttpsProxies.delete",
142802	//   "parameterOrder": [
142803	//     "project",
142804	//     "region",
142805	//     "targetHttpsProxy"
142806	//   ],
142807	//   "parameters": {
142808	//     "project": {
142809	//       "description": "Project ID for this request.",
142810	//       "location": "path",
142811	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142812	//       "required": true,
142813	//       "type": "string"
142814	//     },
142815	//     "region": {
142816	//       "description": "Name of the region scoping this request.",
142817	//       "location": "path",
142818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142819	//       "required": true,
142820	//       "type": "string"
142821	//     },
142822	//     "requestId": {
142823	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142824	//       "location": "query",
142825	//       "type": "string"
142826	//     },
142827	//     "targetHttpsProxy": {
142828	//       "description": "Name of the TargetHttpsProxy resource to delete.",
142829	//       "location": "path",
142830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142831	//       "required": true,
142832	//       "type": "string"
142833	//     }
142834	//   },
142835	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
142836	//   "response": {
142837	//     "$ref": "Operation"
142838	//   },
142839	//   "scopes": [
142840	//     "https://www.googleapis.com/auth/cloud-platform",
142841	//     "https://www.googleapis.com/auth/compute"
142842	//   ]
142843	// }
142844
142845}
142846
142847// method id "compute.regionTargetHttpsProxies.get":
142848
142849type RegionTargetHttpsProxiesGetCall struct {
142850	s                *Service
142851	project          string
142852	region           string
142853	targetHttpsProxy string
142854	urlParams_       gensupport.URLParams
142855	ifNoneMatch_     string
142856	ctx_             context.Context
142857	header_          http.Header
142858}
142859
142860// Get: Returns the specified TargetHttpsProxy resource in the specified
142861// region. Gets a list of available target HTTP proxies by making a
142862// list() request.
142863func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
142864	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142865	c.project = project
142866	c.region = region
142867	c.targetHttpsProxy = targetHttpsProxy
142868	return c
142869}
142870
142871// Fields allows partial responses to be retrieved. See
142872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142873// for more information.
142874func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
142875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142876	return c
142877}
142878
142879// IfNoneMatch sets the optional parameter which makes the operation
142880// fail if the object's ETag matches the given value. This is useful for
142881// getting updates only after the object has changed since the last
142882// request. Use googleapi.IsNotModified to check whether the response
142883// error from Do is the result of In-None-Match.
142884func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
142885	c.ifNoneMatch_ = entityTag
142886	return c
142887}
142888
142889// Context sets the context to be used in this call's Do method. Any
142890// pending HTTP request will be aborted if the provided context is
142891// canceled.
142892func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
142893	c.ctx_ = ctx
142894	return c
142895}
142896
142897// Header returns an http.Header that can be modified by the caller to
142898// add HTTP headers to the request.
142899func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
142900	if c.header_ == nil {
142901		c.header_ = make(http.Header)
142902	}
142903	return c.header_
142904}
142905
142906func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
142907	reqHeaders := make(http.Header)
142908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
142909	for k, v := range c.header_ {
142910		reqHeaders[k] = v
142911	}
142912	reqHeaders.Set("User-Agent", c.s.userAgent())
142913	if c.ifNoneMatch_ != "" {
142914		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142915	}
142916	var body io.Reader = nil
142917	c.urlParams_.Set("alt", alt)
142918	c.urlParams_.Set("prettyPrint", "false")
142919	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
142920	urls += "?" + c.urlParams_.Encode()
142921	req, err := http.NewRequest("GET", urls, body)
142922	if err != nil {
142923		return nil, err
142924	}
142925	req.Header = reqHeaders
142926	googleapi.Expand(req.URL, map[string]string{
142927		"project":          c.project,
142928		"region":           c.region,
142929		"targetHttpsProxy": c.targetHttpsProxy,
142930	})
142931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142932}
142933
142934// Do executes the "compute.regionTargetHttpsProxies.get" call.
142935// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
142936// non-2xx status code is an error. Response headers are in either
142937// *TargetHttpsProxy.ServerResponse.Header or (if a response was
142938// returned at all) in error.(*googleapi.Error).Header. Use
142939// googleapi.IsNotModified to check whether the returned error was
142940// because http.StatusNotModified was returned.
142941func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
142942	gensupport.SetOptions(c.urlParams_, opts...)
142943	res, err := c.doRequest("json")
142944	if res != nil && res.StatusCode == http.StatusNotModified {
142945		if res.Body != nil {
142946			res.Body.Close()
142947		}
142948		return nil, &googleapi.Error{
142949			Code:   res.StatusCode,
142950			Header: res.Header,
142951		}
142952	}
142953	if err != nil {
142954		return nil, err
142955	}
142956	defer googleapi.CloseBody(res)
142957	if err := googleapi.CheckResponse(res); err != nil {
142958		return nil, err
142959	}
142960	ret := &TargetHttpsProxy{
142961		ServerResponse: googleapi.ServerResponse{
142962			Header:         res.Header,
142963			HTTPStatusCode: res.StatusCode,
142964		},
142965	}
142966	target := &ret
142967	if err := gensupport.DecodeResponse(target, res); err != nil {
142968		return nil, err
142969	}
142970	return ret, nil
142971	// {
142972	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
142973	//   "httpMethod": "GET",
142974	//   "id": "compute.regionTargetHttpsProxies.get",
142975	//   "parameterOrder": [
142976	//     "project",
142977	//     "region",
142978	//     "targetHttpsProxy"
142979	//   ],
142980	//   "parameters": {
142981	//     "project": {
142982	//       "description": "Project ID for this request.",
142983	//       "location": "path",
142984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142985	//       "required": true,
142986	//       "type": "string"
142987	//     },
142988	//     "region": {
142989	//       "description": "Name of the region scoping this request.",
142990	//       "location": "path",
142991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142992	//       "required": true,
142993	//       "type": "string"
142994	//     },
142995	//     "targetHttpsProxy": {
142996	//       "description": "Name of the TargetHttpsProxy resource to return.",
142997	//       "location": "path",
142998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142999	//       "required": true,
143000	//       "type": "string"
143001	//     }
143002	//   },
143003	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
143004	//   "response": {
143005	//     "$ref": "TargetHttpsProxy"
143006	//   },
143007	//   "scopes": [
143008	//     "https://www.googleapis.com/auth/cloud-platform",
143009	//     "https://www.googleapis.com/auth/compute",
143010	//     "https://www.googleapis.com/auth/compute.readonly"
143011	//   ]
143012	// }
143013
143014}
143015
143016// method id "compute.regionTargetHttpsProxies.insert":
143017
143018type RegionTargetHttpsProxiesInsertCall struct {
143019	s                *Service
143020	project          string
143021	region           string
143022	targethttpsproxy *TargetHttpsProxy
143023	urlParams_       gensupport.URLParams
143024	ctx_             context.Context
143025	header_          http.Header
143026}
143027
143028// Insert: Creates a TargetHttpsProxy resource in the specified project
143029// and region using the data included in the request.
143030func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
143031	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143032	c.project = project
143033	c.region = region
143034	c.targethttpsproxy = targethttpsproxy
143035	return c
143036}
143037
143038// RequestId sets the optional parameter "requestId": An optional
143039// request ID to identify requests. Specify a unique request ID so that
143040// if you must retry your request, the server will know to ignore the
143041// request if it has already been completed.
143042//
143043// For example, consider a situation where you make an initial request
143044// and the request times out. If you make the request again with the
143045// same request ID, the server can check if original operation with the
143046// same request ID was received, and if so, will ignore the second
143047// request. This prevents clients from accidentally creating duplicate
143048// commitments.
143049//
143050// The request ID must be a valid UUID with the exception that zero UUID
143051// is not supported (00000000-0000-0000-0000-000000000000).
143052func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
143053	c.urlParams_.Set("requestId", requestId)
143054	return c
143055}
143056
143057// Fields allows partial responses to be retrieved. See
143058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143059// for more information.
143060func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
143061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143062	return c
143063}
143064
143065// Context sets the context to be used in this call's Do method. Any
143066// pending HTTP request will be aborted if the provided context is
143067// canceled.
143068func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
143069	c.ctx_ = ctx
143070	return c
143071}
143072
143073// Header returns an http.Header that can be modified by the caller to
143074// add HTTP headers to the request.
143075func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
143076	if c.header_ == nil {
143077		c.header_ = make(http.Header)
143078	}
143079	return c.header_
143080}
143081
143082func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
143083	reqHeaders := make(http.Header)
143084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
143085	for k, v := range c.header_ {
143086		reqHeaders[k] = v
143087	}
143088	reqHeaders.Set("User-Agent", c.s.userAgent())
143089	var body io.Reader = nil
143090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
143091	if err != nil {
143092		return nil, err
143093	}
143094	reqHeaders.Set("Content-Type", "application/json")
143095	c.urlParams_.Set("alt", alt)
143096	c.urlParams_.Set("prettyPrint", "false")
143097	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
143098	urls += "?" + c.urlParams_.Encode()
143099	req, err := http.NewRequest("POST", urls, body)
143100	if err != nil {
143101		return nil, err
143102	}
143103	req.Header = reqHeaders
143104	googleapi.Expand(req.URL, map[string]string{
143105		"project": c.project,
143106		"region":  c.region,
143107	})
143108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143109}
143110
143111// Do executes the "compute.regionTargetHttpsProxies.insert" call.
143112// Exactly one of *Operation or error will be non-nil. Any non-2xx
143113// status code is an error. Response headers are in either
143114// *Operation.ServerResponse.Header or (if a response was returned at
143115// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143116// to check whether the returned error was because
143117// http.StatusNotModified was returned.
143118func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143119	gensupport.SetOptions(c.urlParams_, opts...)
143120	res, err := c.doRequest("json")
143121	if res != nil && res.StatusCode == http.StatusNotModified {
143122		if res.Body != nil {
143123			res.Body.Close()
143124		}
143125		return nil, &googleapi.Error{
143126			Code:   res.StatusCode,
143127			Header: res.Header,
143128		}
143129	}
143130	if err != nil {
143131		return nil, err
143132	}
143133	defer googleapi.CloseBody(res)
143134	if err := googleapi.CheckResponse(res); err != nil {
143135		return nil, err
143136	}
143137	ret := &Operation{
143138		ServerResponse: googleapi.ServerResponse{
143139			Header:         res.Header,
143140			HTTPStatusCode: res.StatusCode,
143141		},
143142	}
143143	target := &ret
143144	if err := gensupport.DecodeResponse(target, res); err != nil {
143145		return nil, err
143146	}
143147	return ret, nil
143148	// {
143149	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
143150	//   "httpMethod": "POST",
143151	//   "id": "compute.regionTargetHttpsProxies.insert",
143152	//   "parameterOrder": [
143153	//     "project",
143154	//     "region"
143155	//   ],
143156	//   "parameters": {
143157	//     "project": {
143158	//       "description": "Project ID for this request.",
143159	//       "location": "path",
143160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143161	//       "required": true,
143162	//       "type": "string"
143163	//     },
143164	//     "region": {
143165	//       "description": "Name of the region scoping this request.",
143166	//       "location": "path",
143167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143168	//       "required": true,
143169	//       "type": "string"
143170	//     },
143171	//     "requestId": {
143172	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143173	//       "location": "query",
143174	//       "type": "string"
143175	//     }
143176	//   },
143177	//   "path": "{project}/regions/{region}/targetHttpsProxies",
143178	//   "request": {
143179	//     "$ref": "TargetHttpsProxy"
143180	//   },
143181	//   "response": {
143182	//     "$ref": "Operation"
143183	//   },
143184	//   "scopes": [
143185	//     "https://www.googleapis.com/auth/cloud-platform",
143186	//     "https://www.googleapis.com/auth/compute"
143187	//   ]
143188	// }
143189
143190}
143191
143192// method id "compute.regionTargetHttpsProxies.list":
143193
143194type RegionTargetHttpsProxiesListCall struct {
143195	s            *Service
143196	project      string
143197	region       string
143198	urlParams_   gensupport.URLParams
143199	ifNoneMatch_ string
143200	ctx_         context.Context
143201	header_      http.Header
143202}
143203
143204// List: Retrieves the list of TargetHttpsProxy resources available to
143205// the specified project in the specified region.
143206func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
143207	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143208	c.project = project
143209	c.region = region
143210	return c
143211}
143212
143213// Filter sets the optional parameter "filter": A filter expression that
143214// filters resources listed in the response. The expression must specify
143215// the field name, a comparison operator, and the value that you want to
143216// use for filtering. The value must be a string, a number, or a
143217// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143218// `<`.
143219//
143220// For example, if you are filtering Compute Engine instances, you can
143221// exclude instances named `example-instance` by specifying `name !=
143222// example-instance`.
143223//
143224// You can also filter nested fields. For example, you could specify
143225// `scheduling.automaticRestart = false` to include instances only if
143226// they are not scheduled for automatic restarts. You can use filtering
143227// on nested fields to filter based on resource labels.
143228//
143229// To filter on multiple expressions, provide each separate expression
143230// within parentheses. For example: ``` (scheduling.automaticRestart =
143231// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
143232// is an `AND` expression. However, you can include `AND` and `OR`
143233// expressions explicitly. For example: ``` (cpuPlatform = "Intel
143234// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
143235// (scheduling.automaticRestart = true) ```
143236func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
143237	c.urlParams_.Set("filter", filter)
143238	return c
143239}
143240
143241// MaxResults sets the optional parameter "maxResults": The maximum
143242// number of results per page that should be returned. If the number of
143243// available results is larger than `maxResults`, Compute Engine returns
143244// a `nextPageToken` that can be used to get the next page of results in
143245// subsequent list requests. Acceptable values are `0` to `500`,
143246// inclusive. (Default: `500`)
143247func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
143248	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143249	return c
143250}
143251
143252// OrderBy sets the optional parameter "orderBy": Sorts list results by
143253// a certain order. By default, results are returned in alphanumerical
143254// order based on the resource name.
143255//
143256// You can also sort results in descending order based on the creation
143257// timestamp using `orderBy="creationTimestamp desc". This sorts
143258// results based on the `creationTimestamp` field in reverse
143259// chronological order (newest result first). Use this to sort resources
143260// like operations so that the newest operation is returned
143261// first.
143262//
143263// Currently, only sorting by `name` or `creationTimestamp desc` is
143264// supported.
143265func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
143266	c.urlParams_.Set("orderBy", orderBy)
143267	return c
143268}
143269
143270// PageToken sets the optional parameter "pageToken": Specifies a page
143271// token to use. Set `pageToken` to the `nextPageToken` returned by a
143272// previous list request to get the next page of results.
143273func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
143274	c.urlParams_.Set("pageToken", pageToken)
143275	return c
143276}
143277
143278// ReturnPartialSuccess sets the optional parameter
143279// "returnPartialSuccess": Opt-in for partial success behavior which
143280// provides partial results in case of failure. The default value is
143281// false and the logic is the same as today.
143282func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall {
143283	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
143284	return c
143285}
143286
143287// Fields allows partial responses to be retrieved. See
143288// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143289// for more information.
143290func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
143291	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143292	return c
143293}
143294
143295// IfNoneMatch sets the optional parameter which makes the operation
143296// fail if the object's ETag matches the given value. This is useful for
143297// getting updates only after the object has changed since the last
143298// request. Use googleapi.IsNotModified to check whether the response
143299// error from Do is the result of In-None-Match.
143300func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
143301	c.ifNoneMatch_ = entityTag
143302	return c
143303}
143304
143305// Context sets the context to be used in this call's Do method. Any
143306// pending HTTP request will be aborted if the provided context is
143307// canceled.
143308func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
143309	c.ctx_ = ctx
143310	return c
143311}
143312
143313// Header returns an http.Header that can be modified by the caller to
143314// add HTTP headers to the request.
143315func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
143316	if c.header_ == nil {
143317		c.header_ = make(http.Header)
143318	}
143319	return c.header_
143320}
143321
143322func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
143323	reqHeaders := make(http.Header)
143324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
143325	for k, v := range c.header_ {
143326		reqHeaders[k] = v
143327	}
143328	reqHeaders.Set("User-Agent", c.s.userAgent())
143329	if c.ifNoneMatch_ != "" {
143330		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143331	}
143332	var body io.Reader = nil
143333	c.urlParams_.Set("alt", alt)
143334	c.urlParams_.Set("prettyPrint", "false")
143335	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
143336	urls += "?" + c.urlParams_.Encode()
143337	req, err := http.NewRequest("GET", urls, body)
143338	if err != nil {
143339		return nil, err
143340	}
143341	req.Header = reqHeaders
143342	googleapi.Expand(req.URL, map[string]string{
143343		"project": c.project,
143344		"region":  c.region,
143345	})
143346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143347}
143348
143349// Do executes the "compute.regionTargetHttpsProxies.list" call.
143350// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
143351// non-2xx status code is an error. Response headers are in either
143352// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
143353// returned at all) in error.(*googleapi.Error).Header. Use
143354// googleapi.IsNotModified to check whether the returned error was
143355// because http.StatusNotModified was returned.
143356func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
143357	gensupport.SetOptions(c.urlParams_, opts...)
143358	res, err := c.doRequest("json")
143359	if res != nil && res.StatusCode == http.StatusNotModified {
143360		if res.Body != nil {
143361			res.Body.Close()
143362		}
143363		return nil, &googleapi.Error{
143364			Code:   res.StatusCode,
143365			Header: res.Header,
143366		}
143367	}
143368	if err != nil {
143369		return nil, err
143370	}
143371	defer googleapi.CloseBody(res)
143372	if err := googleapi.CheckResponse(res); err != nil {
143373		return nil, err
143374	}
143375	ret := &TargetHttpsProxyList{
143376		ServerResponse: googleapi.ServerResponse{
143377			Header:         res.Header,
143378			HTTPStatusCode: res.StatusCode,
143379		},
143380	}
143381	target := &ret
143382	if err := gensupport.DecodeResponse(target, res); err != nil {
143383		return nil, err
143384	}
143385	return ret, nil
143386	// {
143387	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
143388	//   "httpMethod": "GET",
143389	//   "id": "compute.regionTargetHttpsProxies.list",
143390	//   "parameterOrder": [
143391	//     "project",
143392	//     "region"
143393	//   ],
143394	//   "parameters": {
143395	//     "filter": {
143396	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
143397	//       "location": "query",
143398	//       "type": "string"
143399	//     },
143400	//     "maxResults": {
143401	//       "default": "500",
143402	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143403	//       "format": "uint32",
143404	//       "location": "query",
143405	//       "minimum": "0",
143406	//       "type": "integer"
143407	//     },
143408	//     "orderBy": {
143409	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
143410	//       "location": "query",
143411	//       "type": "string"
143412	//     },
143413	//     "pageToken": {
143414	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143415	//       "location": "query",
143416	//       "type": "string"
143417	//     },
143418	//     "project": {
143419	//       "description": "Project ID for this request.",
143420	//       "location": "path",
143421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143422	//       "required": true,
143423	//       "type": "string"
143424	//     },
143425	//     "region": {
143426	//       "description": "Name of the region scoping this request.",
143427	//       "location": "path",
143428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143429	//       "required": true,
143430	//       "type": "string"
143431	//     },
143432	//     "returnPartialSuccess": {
143433	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
143434	//       "location": "query",
143435	//       "type": "boolean"
143436	//     }
143437	//   },
143438	//   "path": "{project}/regions/{region}/targetHttpsProxies",
143439	//   "response": {
143440	//     "$ref": "TargetHttpsProxyList"
143441	//   },
143442	//   "scopes": [
143443	//     "https://www.googleapis.com/auth/cloud-platform",
143444	//     "https://www.googleapis.com/auth/compute",
143445	//     "https://www.googleapis.com/auth/compute.readonly"
143446	//   ]
143447	// }
143448
143449}
143450
143451// Pages invokes f for each page of results.
143452// A non-nil error returned from f will halt the iteration.
143453// The provided context supersedes any context provided to the Context method.
143454func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
143455	c.ctx_ = ctx
143456	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143457	for {
143458		x, err := c.Do()
143459		if err != nil {
143460			return err
143461		}
143462		if err := f(x); err != nil {
143463			return err
143464		}
143465		if x.NextPageToken == "" {
143466			return nil
143467		}
143468		c.PageToken(x.NextPageToken)
143469	}
143470}
143471
143472// method id "compute.regionTargetHttpsProxies.setSslCertificates":
143473
143474type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
143475	s                                                 *Service
143476	project                                           string
143477	region                                            string
143478	targetHttpsProxy                                  string
143479	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
143480	urlParams_                                        gensupport.URLParams
143481	ctx_                                              context.Context
143482	header_                                           http.Header
143483}
143484
143485// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
143486func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143487	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143488	c.project = project
143489	c.region = region
143490	c.targetHttpsProxy = targetHttpsProxy
143491	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
143492	return c
143493}
143494
143495// RequestId sets the optional parameter "requestId": An optional
143496// request ID to identify requests. Specify a unique request ID so that
143497// if you must retry your request, the server will know to ignore the
143498// request if it has already been completed.
143499//
143500// For example, consider a situation where you make an initial request
143501// and the request times out. If you make the request again with the
143502// same request ID, the server can check if original operation with the
143503// same request ID was received, and if so, will ignore the second
143504// request. This prevents clients from accidentally creating duplicate
143505// commitments.
143506//
143507// The request ID must be a valid UUID with the exception that zero UUID
143508// is not supported (00000000-0000-0000-0000-000000000000).
143509func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143510	c.urlParams_.Set("requestId", requestId)
143511	return c
143512}
143513
143514// Fields allows partial responses to be retrieved. See
143515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143516// for more information.
143517func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143519	return c
143520}
143521
143522// Context sets the context to be used in this call's Do method. Any
143523// pending HTTP request will be aborted if the provided context is
143524// canceled.
143525func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143526	c.ctx_ = ctx
143527	return c
143528}
143529
143530// Header returns an http.Header that can be modified by the caller to
143531// add HTTP headers to the request.
143532func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
143533	if c.header_ == nil {
143534		c.header_ = make(http.Header)
143535	}
143536	return c.header_
143537}
143538
143539func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
143540	reqHeaders := make(http.Header)
143541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
143542	for k, v := range c.header_ {
143543		reqHeaders[k] = v
143544	}
143545	reqHeaders.Set("User-Agent", c.s.userAgent())
143546	var body io.Reader = nil
143547	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
143548	if err != nil {
143549		return nil, err
143550	}
143551	reqHeaders.Set("Content-Type", "application/json")
143552	c.urlParams_.Set("alt", alt)
143553	c.urlParams_.Set("prettyPrint", "false")
143554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
143555	urls += "?" + c.urlParams_.Encode()
143556	req, err := http.NewRequest("POST", urls, body)
143557	if err != nil {
143558		return nil, err
143559	}
143560	req.Header = reqHeaders
143561	googleapi.Expand(req.URL, map[string]string{
143562		"project":          c.project,
143563		"region":           c.region,
143564		"targetHttpsProxy": c.targetHttpsProxy,
143565	})
143566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143567}
143568
143569// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
143570// Exactly one of *Operation or error will be non-nil. Any non-2xx
143571// status code is an error. Response headers are in either
143572// *Operation.ServerResponse.Header or (if a response was returned at
143573// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143574// to check whether the returned error was because
143575// http.StatusNotModified was returned.
143576func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143577	gensupport.SetOptions(c.urlParams_, opts...)
143578	res, err := c.doRequest("json")
143579	if res != nil && res.StatusCode == http.StatusNotModified {
143580		if res.Body != nil {
143581			res.Body.Close()
143582		}
143583		return nil, &googleapi.Error{
143584			Code:   res.StatusCode,
143585			Header: res.Header,
143586		}
143587	}
143588	if err != nil {
143589		return nil, err
143590	}
143591	defer googleapi.CloseBody(res)
143592	if err := googleapi.CheckResponse(res); err != nil {
143593		return nil, err
143594	}
143595	ret := &Operation{
143596		ServerResponse: googleapi.ServerResponse{
143597			Header:         res.Header,
143598			HTTPStatusCode: res.StatusCode,
143599		},
143600	}
143601	target := &ret
143602	if err := gensupport.DecodeResponse(target, res); err != nil {
143603		return nil, err
143604	}
143605	return ret, nil
143606	// {
143607	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
143608	//   "httpMethod": "POST",
143609	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
143610	//   "parameterOrder": [
143611	//     "project",
143612	//     "region",
143613	//     "targetHttpsProxy"
143614	//   ],
143615	//   "parameters": {
143616	//     "project": {
143617	//       "description": "Project ID for this request.",
143618	//       "location": "path",
143619	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143620	//       "required": true,
143621	//       "type": "string"
143622	//     },
143623	//     "region": {
143624	//       "description": "Name of the region scoping this request.",
143625	//       "location": "path",
143626	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143627	//       "required": true,
143628	//       "type": "string"
143629	//     },
143630	//     "requestId": {
143631	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143632	//       "location": "query",
143633	//       "type": "string"
143634	//     },
143635	//     "targetHttpsProxy": {
143636	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
143637	//       "location": "path",
143638	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143639	//       "required": true,
143640	//       "type": "string"
143641	//     }
143642	//   },
143643	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
143644	//   "request": {
143645	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
143646	//   },
143647	//   "response": {
143648	//     "$ref": "Operation"
143649	//   },
143650	//   "scopes": [
143651	//     "https://www.googleapis.com/auth/cloud-platform",
143652	//     "https://www.googleapis.com/auth/compute"
143653	//   ]
143654	// }
143655
143656}
143657
143658// method id "compute.regionTargetHttpsProxies.setUrlMap":
143659
143660type RegionTargetHttpsProxiesSetUrlMapCall struct {
143661	s                *Service
143662	project          string
143663	region           string
143664	targetHttpsProxy string
143665	urlmapreference  *UrlMapReference
143666	urlParams_       gensupport.URLParams
143667	ctx_             context.Context
143668	header_          http.Header
143669}
143670
143671// SetUrlMap: Changes the URL map for TargetHttpsProxy.
143672func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
143673	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143674	c.project = project
143675	c.region = region
143676	c.targetHttpsProxy = targetHttpsProxy
143677	c.urlmapreference = urlmapreference
143678	return c
143679}
143680
143681// RequestId sets the optional parameter "requestId": An optional
143682// request ID to identify requests. Specify a unique request ID so that
143683// if you must retry your request, the server will know to ignore the
143684// request if it has already been completed.
143685//
143686// For example, consider a situation where you make an initial request
143687// and the request times out. If you make the request again with the
143688// same request ID, the server can check if original operation with the
143689// same request ID was received, and if so, will ignore the second
143690// request. This prevents clients from accidentally creating duplicate
143691// commitments.
143692//
143693// The request ID must be a valid UUID with the exception that zero UUID
143694// is not supported (00000000-0000-0000-0000-000000000000).
143695func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
143696	c.urlParams_.Set("requestId", requestId)
143697	return c
143698}
143699
143700// Fields allows partial responses to be retrieved. See
143701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143702// for more information.
143703func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
143704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143705	return c
143706}
143707
143708// Context sets the context to be used in this call's Do method. Any
143709// pending HTTP request will be aborted if the provided context is
143710// canceled.
143711func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
143712	c.ctx_ = ctx
143713	return c
143714}
143715
143716// Header returns an http.Header that can be modified by the caller to
143717// add HTTP headers to the request.
143718func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
143719	if c.header_ == nil {
143720		c.header_ = make(http.Header)
143721	}
143722	return c.header_
143723}
143724
143725func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
143726	reqHeaders := make(http.Header)
143727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
143728	for k, v := range c.header_ {
143729		reqHeaders[k] = v
143730	}
143731	reqHeaders.Set("User-Agent", c.s.userAgent())
143732	var body io.Reader = nil
143733	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
143734	if err != nil {
143735		return nil, err
143736	}
143737	reqHeaders.Set("Content-Type", "application/json")
143738	c.urlParams_.Set("alt", alt)
143739	c.urlParams_.Set("prettyPrint", "false")
143740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
143741	urls += "?" + c.urlParams_.Encode()
143742	req, err := http.NewRequest("POST", urls, body)
143743	if err != nil {
143744		return nil, err
143745	}
143746	req.Header = reqHeaders
143747	googleapi.Expand(req.URL, map[string]string{
143748		"project":          c.project,
143749		"region":           c.region,
143750		"targetHttpsProxy": c.targetHttpsProxy,
143751	})
143752	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143753}
143754
143755// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
143756// Exactly one of *Operation or error will be non-nil. Any non-2xx
143757// status code is an error. Response headers are in either
143758// *Operation.ServerResponse.Header or (if a response was returned at
143759// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143760// to check whether the returned error was because
143761// http.StatusNotModified was returned.
143762func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143763	gensupport.SetOptions(c.urlParams_, opts...)
143764	res, err := c.doRequest("json")
143765	if res != nil && res.StatusCode == http.StatusNotModified {
143766		if res.Body != nil {
143767			res.Body.Close()
143768		}
143769		return nil, &googleapi.Error{
143770			Code:   res.StatusCode,
143771			Header: res.Header,
143772		}
143773	}
143774	if err != nil {
143775		return nil, err
143776	}
143777	defer googleapi.CloseBody(res)
143778	if err := googleapi.CheckResponse(res); err != nil {
143779		return nil, err
143780	}
143781	ret := &Operation{
143782		ServerResponse: googleapi.ServerResponse{
143783			Header:         res.Header,
143784			HTTPStatusCode: res.StatusCode,
143785		},
143786	}
143787	target := &ret
143788	if err := gensupport.DecodeResponse(target, res); err != nil {
143789		return nil, err
143790	}
143791	return ret, nil
143792	// {
143793	//   "description": "Changes the URL map for TargetHttpsProxy.",
143794	//   "httpMethod": "POST",
143795	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
143796	//   "parameterOrder": [
143797	//     "project",
143798	//     "region",
143799	//     "targetHttpsProxy"
143800	//   ],
143801	//   "parameters": {
143802	//     "project": {
143803	//       "description": "Project ID for this request.",
143804	//       "location": "path",
143805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143806	//       "required": true,
143807	//       "type": "string"
143808	//     },
143809	//     "region": {
143810	//       "description": "Name of the region scoping this request.",
143811	//       "location": "path",
143812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143813	//       "required": true,
143814	//       "type": "string"
143815	//     },
143816	//     "requestId": {
143817	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143818	//       "location": "query",
143819	//       "type": "string"
143820	//     },
143821	//     "targetHttpsProxy": {
143822	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
143823	//       "location": "path",
143824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143825	//       "required": true,
143826	//       "type": "string"
143827	//     }
143828	//   },
143829	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
143830	//   "request": {
143831	//     "$ref": "UrlMapReference"
143832	//   },
143833	//   "response": {
143834	//     "$ref": "Operation"
143835	//   },
143836	//   "scopes": [
143837	//     "https://www.googleapis.com/auth/cloud-platform",
143838	//     "https://www.googleapis.com/auth/compute"
143839	//   ]
143840	// }
143841
143842}
143843
143844// method id "compute.regionTargetHttpsProxies.testIamPermissions":
143845
143846type RegionTargetHttpsProxiesTestIamPermissionsCall struct {
143847	s                      *Service
143848	project                string
143849	region                 string
143850	resource               string
143851	testpermissionsrequest *TestPermissionsRequest
143852	urlParams_             gensupport.URLParams
143853	ctx_                   context.Context
143854	header_                http.Header
143855}
143856
143857// TestIamPermissions: Returns permissions that a caller has on the
143858// specified resource.
143859func (r *RegionTargetHttpsProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpsProxiesTestIamPermissionsCall {
143860	c := &RegionTargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143861	c.project = project
143862	c.region = region
143863	c.resource = resource
143864	c.testpermissionsrequest = testpermissionsrequest
143865	return c
143866}
143867
143868// Fields allows partial responses to be retrieved. See
143869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143870// for more information.
143871func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesTestIamPermissionsCall {
143872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143873	return c
143874}
143875
143876// Context sets the context to be used in this call's Do method. Any
143877// pending HTTP request will be aborted if the provided context is
143878// canceled.
143879func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpsProxiesTestIamPermissionsCall {
143880	c.ctx_ = ctx
143881	return c
143882}
143883
143884// Header returns an http.Header that can be modified by the caller to
143885// add HTTP headers to the request.
143886func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
143887	if c.header_ == nil {
143888		c.header_ = make(http.Header)
143889	}
143890	return c.header_
143891}
143892
143893func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
143894	reqHeaders := make(http.Header)
143895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
143896	for k, v := range c.header_ {
143897		reqHeaders[k] = v
143898	}
143899	reqHeaders.Set("User-Agent", c.s.userAgent())
143900	var body io.Reader = nil
143901	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
143902	if err != nil {
143903		return nil, err
143904	}
143905	reqHeaders.Set("Content-Type", "application/json")
143906	c.urlParams_.Set("alt", alt)
143907	c.urlParams_.Set("prettyPrint", "false")
143908	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions")
143909	urls += "?" + c.urlParams_.Encode()
143910	req, err := http.NewRequest("POST", urls, body)
143911	if err != nil {
143912		return nil, err
143913	}
143914	req.Header = reqHeaders
143915	googleapi.Expand(req.URL, map[string]string{
143916		"project":  c.project,
143917		"region":   c.region,
143918		"resource": c.resource,
143919	})
143920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143921}
143922
143923// Do executes the "compute.regionTargetHttpsProxies.testIamPermissions" call.
143924// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
143925// non-2xx status code is an error. Response headers are in either
143926// *TestPermissionsResponse.ServerResponse.Header or (if a response was
143927// returned at all) in error.(*googleapi.Error).Header. Use
143928// googleapi.IsNotModified to check whether the returned error was
143929// because http.StatusNotModified was returned.
143930func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
143931	gensupport.SetOptions(c.urlParams_, opts...)
143932	res, err := c.doRequest("json")
143933	if res != nil && res.StatusCode == http.StatusNotModified {
143934		if res.Body != nil {
143935			res.Body.Close()
143936		}
143937		return nil, &googleapi.Error{
143938			Code:   res.StatusCode,
143939			Header: res.Header,
143940		}
143941	}
143942	if err != nil {
143943		return nil, err
143944	}
143945	defer googleapi.CloseBody(res)
143946	if err := googleapi.CheckResponse(res); err != nil {
143947		return nil, err
143948	}
143949	ret := &TestPermissionsResponse{
143950		ServerResponse: googleapi.ServerResponse{
143951			Header:         res.Header,
143952			HTTPStatusCode: res.StatusCode,
143953		},
143954	}
143955	target := &ret
143956	if err := gensupport.DecodeResponse(target, res); err != nil {
143957		return nil, err
143958	}
143959	return ret, nil
143960	// {
143961	//   "description": "Returns permissions that a caller has on the specified resource.",
143962	//   "httpMethod": "POST",
143963	//   "id": "compute.regionTargetHttpsProxies.testIamPermissions",
143964	//   "parameterOrder": [
143965	//     "project",
143966	//     "region",
143967	//     "resource"
143968	//   ],
143969	//   "parameters": {
143970	//     "project": {
143971	//       "description": "Project ID for this request.",
143972	//       "location": "path",
143973	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143974	//       "required": true,
143975	//       "type": "string"
143976	//     },
143977	//     "region": {
143978	//       "description": "The name of the region for this request.",
143979	//       "location": "path",
143980	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143981	//       "required": true,
143982	//       "type": "string"
143983	//     },
143984	//     "resource": {
143985	//       "description": "Name or id of the resource for this request.",
143986	//       "location": "path",
143987	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143988	//       "required": true,
143989	//       "type": "string"
143990	//     }
143991	//   },
143992	//   "path": "{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions",
143993	//   "request": {
143994	//     "$ref": "TestPermissionsRequest"
143995	//   },
143996	//   "response": {
143997	//     "$ref": "TestPermissionsResponse"
143998	//   },
143999	//   "scopes": [
144000	//     "https://www.googleapis.com/auth/cloud-platform",
144001	//     "https://www.googleapis.com/auth/compute",
144002	//     "https://www.googleapis.com/auth/compute.readonly"
144003	//   ]
144004	// }
144005
144006}
144007
144008// method id "compute.regionUrlMaps.delete":
144009
144010type RegionUrlMapsDeleteCall struct {
144011	s          *Service
144012	project    string
144013	region     string
144014	urlMap     string
144015	urlParams_ gensupport.URLParams
144016	ctx_       context.Context
144017	header_    http.Header
144018}
144019
144020// Delete: Deletes the specified UrlMap resource.
144021func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
144022	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144023	c.project = project
144024	c.region = region
144025	c.urlMap = urlMap
144026	return c
144027}
144028
144029// RequestId sets the optional parameter "requestId": begin_interface:
144030// MixerMutationRequestBuilder Request ID to support idempotency.
144031func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
144032	c.urlParams_.Set("requestId", requestId)
144033	return c
144034}
144035
144036// Fields allows partial responses to be retrieved. See
144037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144038// for more information.
144039func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
144040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144041	return c
144042}
144043
144044// Context sets the context to be used in this call's Do method. Any
144045// pending HTTP request will be aborted if the provided context is
144046// canceled.
144047func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
144048	c.ctx_ = ctx
144049	return c
144050}
144051
144052// Header returns an http.Header that can be modified by the caller to
144053// add HTTP headers to the request.
144054func (c *RegionUrlMapsDeleteCall) Header() http.Header {
144055	if c.header_ == nil {
144056		c.header_ = make(http.Header)
144057	}
144058	return c.header_
144059}
144060
144061func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
144062	reqHeaders := make(http.Header)
144063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
144064	for k, v := range c.header_ {
144065		reqHeaders[k] = v
144066	}
144067	reqHeaders.Set("User-Agent", c.s.userAgent())
144068	var body io.Reader = nil
144069	c.urlParams_.Set("alt", alt)
144070	c.urlParams_.Set("prettyPrint", "false")
144071	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
144072	urls += "?" + c.urlParams_.Encode()
144073	req, err := http.NewRequest("DELETE", urls, body)
144074	if err != nil {
144075		return nil, err
144076	}
144077	req.Header = reqHeaders
144078	googleapi.Expand(req.URL, map[string]string{
144079		"project": c.project,
144080		"region":  c.region,
144081		"urlMap":  c.urlMap,
144082	})
144083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144084}
144085
144086// Do executes the "compute.regionUrlMaps.delete" call.
144087// Exactly one of *Operation or error will be non-nil. Any non-2xx
144088// status code is an error. Response headers are in either
144089// *Operation.ServerResponse.Header or (if a response was returned at
144090// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144091// to check whether the returned error was because
144092// http.StatusNotModified was returned.
144093func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144094	gensupport.SetOptions(c.urlParams_, opts...)
144095	res, err := c.doRequest("json")
144096	if res != nil && res.StatusCode == http.StatusNotModified {
144097		if res.Body != nil {
144098			res.Body.Close()
144099		}
144100		return nil, &googleapi.Error{
144101			Code:   res.StatusCode,
144102			Header: res.Header,
144103		}
144104	}
144105	if err != nil {
144106		return nil, err
144107	}
144108	defer googleapi.CloseBody(res)
144109	if err := googleapi.CheckResponse(res); err != nil {
144110		return nil, err
144111	}
144112	ret := &Operation{
144113		ServerResponse: googleapi.ServerResponse{
144114			Header:         res.Header,
144115			HTTPStatusCode: res.StatusCode,
144116		},
144117	}
144118	target := &ret
144119	if err := gensupport.DecodeResponse(target, res); err != nil {
144120		return nil, err
144121	}
144122	return ret, nil
144123	// {
144124	//   "description": "Deletes the specified UrlMap resource.",
144125	//   "httpMethod": "DELETE",
144126	//   "id": "compute.regionUrlMaps.delete",
144127	//   "parameterOrder": [
144128	//     "project",
144129	//     "region",
144130	//     "urlMap"
144131	//   ],
144132	//   "parameters": {
144133	//     "project": {
144134	//       "description": "Project ID for this request.",
144135	//       "location": "path",
144136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144137	//       "required": true,
144138	//       "type": "string"
144139	//     },
144140	//     "region": {
144141	//       "description": "Name of the region scoping this request.",
144142	//       "location": "path",
144143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144144	//       "required": true,
144145	//       "type": "string"
144146	//     },
144147	//     "requestId": {
144148	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
144149	//       "location": "query",
144150	//       "type": "string"
144151	//     },
144152	//     "urlMap": {
144153	//       "description": "Name of the UrlMap resource to delete.",
144154	//       "location": "path",
144155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144156	//       "required": true,
144157	//       "type": "string"
144158	//     }
144159	//   },
144160	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
144161	//   "response": {
144162	//     "$ref": "Operation"
144163	//   },
144164	//   "scopes": [
144165	//     "https://www.googleapis.com/auth/cloud-platform",
144166	//     "https://www.googleapis.com/auth/compute"
144167	//   ]
144168	// }
144169
144170}
144171
144172// method id "compute.regionUrlMaps.get":
144173
144174type RegionUrlMapsGetCall struct {
144175	s            *Service
144176	project      string
144177	region       string
144178	urlMap       string
144179	urlParams_   gensupport.URLParams
144180	ifNoneMatch_ string
144181	ctx_         context.Context
144182	header_      http.Header
144183}
144184
144185// Get: Returns the specified UrlMap resource. Gets a list of available
144186// URL maps by making a list() request.
144187func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
144188	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144189	c.project = project
144190	c.region = region
144191	c.urlMap = urlMap
144192	return c
144193}
144194
144195// Fields allows partial responses to be retrieved. See
144196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144197// for more information.
144198func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
144199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144200	return c
144201}
144202
144203// IfNoneMatch sets the optional parameter which makes the operation
144204// fail if the object's ETag matches the given value. This is useful for
144205// getting updates only after the object has changed since the last
144206// request. Use googleapi.IsNotModified to check whether the response
144207// error from Do is the result of In-None-Match.
144208func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
144209	c.ifNoneMatch_ = entityTag
144210	return c
144211}
144212
144213// Context sets the context to be used in this call's Do method. Any
144214// pending HTTP request will be aborted if the provided context is
144215// canceled.
144216func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
144217	c.ctx_ = ctx
144218	return c
144219}
144220
144221// Header returns an http.Header that can be modified by the caller to
144222// add HTTP headers to the request.
144223func (c *RegionUrlMapsGetCall) Header() http.Header {
144224	if c.header_ == nil {
144225		c.header_ = make(http.Header)
144226	}
144227	return c.header_
144228}
144229
144230func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
144231	reqHeaders := make(http.Header)
144232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
144233	for k, v := range c.header_ {
144234		reqHeaders[k] = v
144235	}
144236	reqHeaders.Set("User-Agent", c.s.userAgent())
144237	if c.ifNoneMatch_ != "" {
144238		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144239	}
144240	var body io.Reader = nil
144241	c.urlParams_.Set("alt", alt)
144242	c.urlParams_.Set("prettyPrint", "false")
144243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
144244	urls += "?" + c.urlParams_.Encode()
144245	req, err := http.NewRequest("GET", urls, body)
144246	if err != nil {
144247		return nil, err
144248	}
144249	req.Header = reqHeaders
144250	googleapi.Expand(req.URL, map[string]string{
144251		"project": c.project,
144252		"region":  c.region,
144253		"urlMap":  c.urlMap,
144254	})
144255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144256}
144257
144258// Do executes the "compute.regionUrlMaps.get" call.
144259// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
144260// code is an error. Response headers are in either
144261// *UrlMap.ServerResponse.Header or (if a response was returned at all)
144262// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
144263// check whether the returned error was because http.StatusNotModified
144264// was returned.
144265func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
144266	gensupport.SetOptions(c.urlParams_, opts...)
144267	res, err := c.doRequest("json")
144268	if res != nil && res.StatusCode == http.StatusNotModified {
144269		if res.Body != nil {
144270			res.Body.Close()
144271		}
144272		return nil, &googleapi.Error{
144273			Code:   res.StatusCode,
144274			Header: res.Header,
144275		}
144276	}
144277	if err != nil {
144278		return nil, err
144279	}
144280	defer googleapi.CloseBody(res)
144281	if err := googleapi.CheckResponse(res); err != nil {
144282		return nil, err
144283	}
144284	ret := &UrlMap{
144285		ServerResponse: googleapi.ServerResponse{
144286			Header:         res.Header,
144287			HTTPStatusCode: res.StatusCode,
144288		},
144289	}
144290	target := &ret
144291	if err := gensupport.DecodeResponse(target, res); err != nil {
144292		return nil, err
144293	}
144294	return ret, nil
144295	// {
144296	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
144297	//   "httpMethod": "GET",
144298	//   "id": "compute.regionUrlMaps.get",
144299	//   "parameterOrder": [
144300	//     "project",
144301	//     "region",
144302	//     "urlMap"
144303	//   ],
144304	//   "parameters": {
144305	//     "project": {
144306	//       "description": "Project ID for this request.",
144307	//       "location": "path",
144308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144309	//       "required": true,
144310	//       "type": "string"
144311	//     },
144312	//     "region": {
144313	//       "description": "Name of the region scoping this request.",
144314	//       "location": "path",
144315	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144316	//       "required": true,
144317	//       "type": "string"
144318	//     },
144319	//     "urlMap": {
144320	//       "description": "Name of the UrlMap resource to return.",
144321	//       "location": "path",
144322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144323	//       "required": true,
144324	//       "type": "string"
144325	//     }
144326	//   },
144327	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
144328	//   "response": {
144329	//     "$ref": "UrlMap"
144330	//   },
144331	//   "scopes": [
144332	//     "https://www.googleapis.com/auth/cloud-platform",
144333	//     "https://www.googleapis.com/auth/compute",
144334	//     "https://www.googleapis.com/auth/compute.readonly"
144335	//   ]
144336	// }
144337
144338}
144339
144340// method id "compute.regionUrlMaps.insert":
144341
144342type RegionUrlMapsInsertCall struct {
144343	s          *Service
144344	project    string
144345	region     string
144346	urlmap     *UrlMap
144347	urlParams_ gensupport.URLParams
144348	ctx_       context.Context
144349	header_    http.Header
144350}
144351
144352// Insert: Creates a UrlMap resource in the specified project using the
144353// data included in the request.
144354func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
144355	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144356	c.project = project
144357	c.region = region
144358	c.urlmap = urlmap
144359	return c
144360}
144361
144362// RequestId sets the optional parameter "requestId": begin_interface:
144363// MixerMutationRequestBuilder Request ID to support idempotency.
144364func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
144365	c.urlParams_.Set("requestId", requestId)
144366	return c
144367}
144368
144369// Fields allows partial responses to be retrieved. See
144370// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144371// for more information.
144372func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
144373	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144374	return c
144375}
144376
144377// Context sets the context to be used in this call's Do method. Any
144378// pending HTTP request will be aborted if the provided context is
144379// canceled.
144380func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
144381	c.ctx_ = ctx
144382	return c
144383}
144384
144385// Header returns an http.Header that can be modified by the caller to
144386// add HTTP headers to the request.
144387func (c *RegionUrlMapsInsertCall) Header() http.Header {
144388	if c.header_ == nil {
144389		c.header_ = make(http.Header)
144390	}
144391	return c.header_
144392}
144393
144394func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
144395	reqHeaders := make(http.Header)
144396	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
144397	for k, v := range c.header_ {
144398		reqHeaders[k] = v
144399	}
144400	reqHeaders.Set("User-Agent", c.s.userAgent())
144401	var body io.Reader = nil
144402	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
144403	if err != nil {
144404		return nil, err
144405	}
144406	reqHeaders.Set("Content-Type", "application/json")
144407	c.urlParams_.Set("alt", alt)
144408	c.urlParams_.Set("prettyPrint", "false")
144409	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
144410	urls += "?" + c.urlParams_.Encode()
144411	req, err := http.NewRequest("POST", urls, body)
144412	if err != nil {
144413		return nil, err
144414	}
144415	req.Header = reqHeaders
144416	googleapi.Expand(req.URL, map[string]string{
144417		"project": c.project,
144418		"region":  c.region,
144419	})
144420	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144421}
144422
144423// Do executes the "compute.regionUrlMaps.insert" call.
144424// Exactly one of *Operation or error will be non-nil. Any non-2xx
144425// status code is an error. Response headers are in either
144426// *Operation.ServerResponse.Header or (if a response was returned at
144427// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144428// to check whether the returned error was because
144429// http.StatusNotModified was returned.
144430func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144431	gensupport.SetOptions(c.urlParams_, opts...)
144432	res, err := c.doRequest("json")
144433	if res != nil && res.StatusCode == http.StatusNotModified {
144434		if res.Body != nil {
144435			res.Body.Close()
144436		}
144437		return nil, &googleapi.Error{
144438			Code:   res.StatusCode,
144439			Header: res.Header,
144440		}
144441	}
144442	if err != nil {
144443		return nil, err
144444	}
144445	defer googleapi.CloseBody(res)
144446	if err := googleapi.CheckResponse(res); err != nil {
144447		return nil, err
144448	}
144449	ret := &Operation{
144450		ServerResponse: googleapi.ServerResponse{
144451			Header:         res.Header,
144452			HTTPStatusCode: res.StatusCode,
144453		},
144454	}
144455	target := &ret
144456	if err := gensupport.DecodeResponse(target, res); err != nil {
144457		return nil, err
144458	}
144459	return ret, nil
144460	// {
144461	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
144462	//   "httpMethod": "POST",
144463	//   "id": "compute.regionUrlMaps.insert",
144464	//   "parameterOrder": [
144465	//     "project",
144466	//     "region"
144467	//   ],
144468	//   "parameters": {
144469	//     "project": {
144470	//       "description": "Project ID for this request.",
144471	//       "location": "path",
144472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144473	//       "required": true,
144474	//       "type": "string"
144475	//     },
144476	//     "region": {
144477	//       "description": "Name of the region scoping this request.",
144478	//       "location": "path",
144479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144480	//       "required": true,
144481	//       "type": "string"
144482	//     },
144483	//     "requestId": {
144484	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
144485	//       "location": "query",
144486	//       "type": "string"
144487	//     }
144488	//   },
144489	//   "path": "{project}/regions/{region}/urlMaps",
144490	//   "request": {
144491	//     "$ref": "UrlMap"
144492	//   },
144493	//   "response": {
144494	//     "$ref": "Operation"
144495	//   },
144496	//   "scopes": [
144497	//     "https://www.googleapis.com/auth/cloud-platform",
144498	//     "https://www.googleapis.com/auth/compute"
144499	//   ]
144500	// }
144501
144502}
144503
144504// method id "compute.regionUrlMaps.invalidateCache":
144505
144506type RegionUrlMapsInvalidateCacheCall struct {
144507	s                     *Service
144508	project               string
144509	region                string
144510	urlMap                string
144511	cacheinvalidationrule *CacheInvalidationRule
144512	urlParams_            gensupport.URLParams
144513	ctx_                  context.Context
144514	header_               http.Header
144515}
144516
144517// InvalidateCache: Initiates a cache invalidation operation,
144518// invalidating the specified path, scoped to the specified UrlMap.
144519func (r *RegionUrlMapsService) InvalidateCache(project string, region string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *RegionUrlMapsInvalidateCacheCall {
144520	c := &RegionUrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144521	c.project = project
144522	c.region = region
144523	c.urlMap = urlMap
144524	c.cacheinvalidationrule = cacheinvalidationrule
144525	return c
144526}
144527
144528// RequestId sets the optional parameter "requestId": begin_interface:
144529// MixerMutationRequestBuilder Request ID to support idempotency.
144530func (c *RegionUrlMapsInvalidateCacheCall) RequestId(requestId string) *RegionUrlMapsInvalidateCacheCall {
144531	c.urlParams_.Set("requestId", requestId)
144532	return c
144533}
144534
144535// Fields allows partial responses to be retrieved. See
144536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144537// for more information.
144538func (c *RegionUrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *RegionUrlMapsInvalidateCacheCall {
144539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144540	return c
144541}
144542
144543// Context sets the context to be used in this call's Do method. Any
144544// pending HTTP request will be aborted if the provided context is
144545// canceled.
144546func (c *RegionUrlMapsInvalidateCacheCall) Context(ctx context.Context) *RegionUrlMapsInvalidateCacheCall {
144547	c.ctx_ = ctx
144548	return c
144549}
144550
144551// Header returns an http.Header that can be modified by the caller to
144552// add HTTP headers to the request.
144553func (c *RegionUrlMapsInvalidateCacheCall) Header() http.Header {
144554	if c.header_ == nil {
144555		c.header_ = make(http.Header)
144556	}
144557	return c.header_
144558}
144559
144560func (c *RegionUrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
144561	reqHeaders := make(http.Header)
144562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
144563	for k, v := range c.header_ {
144564		reqHeaders[k] = v
144565	}
144566	reqHeaders.Set("User-Agent", c.s.userAgent())
144567	var body io.Reader = nil
144568	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
144569	if err != nil {
144570		return nil, err
144571	}
144572	reqHeaders.Set("Content-Type", "application/json")
144573	c.urlParams_.Set("alt", alt)
144574	c.urlParams_.Set("prettyPrint", "false")
144575	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache")
144576	urls += "?" + c.urlParams_.Encode()
144577	req, err := http.NewRequest("POST", urls, body)
144578	if err != nil {
144579		return nil, err
144580	}
144581	req.Header = reqHeaders
144582	googleapi.Expand(req.URL, map[string]string{
144583		"project": c.project,
144584		"region":  c.region,
144585		"urlMap":  c.urlMap,
144586	})
144587	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144588}
144589
144590// Do executes the "compute.regionUrlMaps.invalidateCache" call.
144591// Exactly one of *Operation or error will be non-nil. Any non-2xx
144592// status code is an error. Response headers are in either
144593// *Operation.ServerResponse.Header or (if a response was returned at
144594// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144595// to check whether the returned error was because
144596// http.StatusNotModified was returned.
144597func (c *RegionUrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144598	gensupport.SetOptions(c.urlParams_, opts...)
144599	res, err := c.doRequest("json")
144600	if res != nil && res.StatusCode == http.StatusNotModified {
144601		if res.Body != nil {
144602			res.Body.Close()
144603		}
144604		return nil, &googleapi.Error{
144605			Code:   res.StatusCode,
144606			Header: res.Header,
144607		}
144608	}
144609	if err != nil {
144610		return nil, err
144611	}
144612	defer googleapi.CloseBody(res)
144613	if err := googleapi.CheckResponse(res); err != nil {
144614		return nil, err
144615	}
144616	ret := &Operation{
144617		ServerResponse: googleapi.ServerResponse{
144618			Header:         res.Header,
144619			HTTPStatusCode: res.StatusCode,
144620		},
144621	}
144622	target := &ret
144623	if err := gensupport.DecodeResponse(target, res); err != nil {
144624		return nil, err
144625	}
144626	return ret, nil
144627	// {
144628	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
144629	//   "httpMethod": "POST",
144630	//   "id": "compute.regionUrlMaps.invalidateCache",
144631	//   "parameterOrder": [
144632	//     "project",
144633	//     "region",
144634	//     "urlMap"
144635	//   ],
144636	//   "parameters": {
144637	//     "project": {
144638	//       "description": "Project ID for this request.",
144639	//       "location": "path",
144640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144641	//       "required": true,
144642	//       "type": "string"
144643	//     },
144644	//     "region": {
144645	//       "description": "Name of the region scoping this request.",
144646	//       "location": "path",
144647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144648	//       "required": true,
144649	//       "type": "string"
144650	//     },
144651	//     "requestId": {
144652	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
144653	//       "location": "query",
144654	//       "type": "string"
144655	//     },
144656	//     "urlMap": {
144657	//       "description": "Name of the UrlMap scoping this request.",
144658	//       "location": "path",
144659	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144660	//       "required": true,
144661	//       "type": "string"
144662	//     }
144663	//   },
144664	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache",
144665	//   "request": {
144666	//     "$ref": "CacheInvalidationRule"
144667	//   },
144668	//   "response": {
144669	//     "$ref": "Operation"
144670	//   },
144671	//   "scopes": [
144672	//     "https://www.googleapis.com/auth/cloud-platform",
144673	//     "https://www.googleapis.com/auth/compute"
144674	//   ]
144675	// }
144676
144677}
144678
144679// method id "compute.regionUrlMaps.list":
144680
144681type RegionUrlMapsListCall struct {
144682	s            *Service
144683	project      string
144684	region       string
144685	urlParams_   gensupport.URLParams
144686	ifNoneMatch_ string
144687	ctx_         context.Context
144688	header_      http.Header
144689}
144690
144691// List: Retrieves the list of UrlMap resources available to the
144692// specified project in the specified region.
144693func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
144694	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144695	c.project = project
144696	c.region = region
144697	return c
144698}
144699
144700// Filter sets the optional parameter "filter": A filter expression that
144701// filters resources listed in the response. The expression must specify
144702// the field name, a comparison operator, and the value that you want to
144703// use for filtering. The value must be a string, a number, or a
144704// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144705// `<`.
144706//
144707// For example, if you are filtering Compute Engine instances, you can
144708// exclude instances named `example-instance` by specifying `name !=
144709// example-instance`.
144710//
144711// You can also filter nested fields. For example, you could specify
144712// `scheduling.automaticRestart = false` to include instances only if
144713// they are not scheduled for automatic restarts. You can use filtering
144714// on nested fields to filter based on resource labels.
144715//
144716// To filter on multiple expressions, provide each separate expression
144717// within parentheses. For example: ``` (scheduling.automaticRestart =
144718// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
144719// is an `AND` expression. However, you can include `AND` and `OR`
144720// expressions explicitly. For example: ``` (cpuPlatform = "Intel
144721// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
144722// (scheduling.automaticRestart = true) ```
144723func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
144724	c.urlParams_.Set("filter", filter)
144725	return c
144726}
144727
144728// MaxResults sets the optional parameter "maxResults": The maximum
144729// number of results per page that should be returned. If the number of
144730// available results is larger than `maxResults`, Compute Engine returns
144731// a `nextPageToken` that can be used to get the next page of results in
144732// subsequent list requests. Acceptable values are `0` to `500`,
144733// inclusive. (Default: `500`)
144734func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
144735	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144736	return c
144737}
144738
144739// OrderBy sets the optional parameter "orderBy": Sorts list results by
144740// a certain order. By default, results are returned in alphanumerical
144741// order based on the resource name.
144742//
144743// You can also sort results in descending order based on the creation
144744// timestamp using `orderBy="creationTimestamp desc". This sorts
144745// results based on the `creationTimestamp` field in reverse
144746// chronological order (newest result first). Use this to sort resources
144747// like operations so that the newest operation is returned
144748// first.
144749//
144750// Currently, only sorting by `name` or `creationTimestamp desc` is
144751// supported.
144752func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
144753	c.urlParams_.Set("orderBy", orderBy)
144754	return c
144755}
144756
144757// PageToken sets the optional parameter "pageToken": Specifies a page
144758// token to use. Set `pageToken` to the `nextPageToken` returned by a
144759// previous list request to get the next page of results.
144760func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
144761	c.urlParams_.Set("pageToken", pageToken)
144762	return c
144763}
144764
144765// ReturnPartialSuccess sets the optional parameter
144766// "returnPartialSuccess": Opt-in for partial success behavior which
144767// provides partial results in case of failure. The default value is
144768// false and the logic is the same as today.
144769func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall {
144770	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
144771	return c
144772}
144773
144774// Fields allows partial responses to be retrieved. See
144775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144776// for more information.
144777func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
144778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144779	return c
144780}
144781
144782// IfNoneMatch sets the optional parameter which makes the operation
144783// fail if the object's ETag matches the given value. This is useful for
144784// getting updates only after the object has changed since the last
144785// request. Use googleapi.IsNotModified to check whether the response
144786// error from Do is the result of In-None-Match.
144787func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
144788	c.ifNoneMatch_ = entityTag
144789	return c
144790}
144791
144792// Context sets the context to be used in this call's Do method. Any
144793// pending HTTP request will be aborted if the provided context is
144794// canceled.
144795func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
144796	c.ctx_ = ctx
144797	return c
144798}
144799
144800// Header returns an http.Header that can be modified by the caller to
144801// add HTTP headers to the request.
144802func (c *RegionUrlMapsListCall) Header() http.Header {
144803	if c.header_ == nil {
144804		c.header_ = make(http.Header)
144805	}
144806	return c.header_
144807}
144808
144809func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
144810	reqHeaders := make(http.Header)
144811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
144812	for k, v := range c.header_ {
144813		reqHeaders[k] = v
144814	}
144815	reqHeaders.Set("User-Agent", c.s.userAgent())
144816	if c.ifNoneMatch_ != "" {
144817		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144818	}
144819	var body io.Reader = nil
144820	c.urlParams_.Set("alt", alt)
144821	c.urlParams_.Set("prettyPrint", "false")
144822	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
144823	urls += "?" + c.urlParams_.Encode()
144824	req, err := http.NewRequest("GET", urls, body)
144825	if err != nil {
144826		return nil, err
144827	}
144828	req.Header = reqHeaders
144829	googleapi.Expand(req.URL, map[string]string{
144830		"project": c.project,
144831		"region":  c.region,
144832	})
144833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144834}
144835
144836// Do executes the "compute.regionUrlMaps.list" call.
144837// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
144838// status code is an error. Response headers are in either
144839// *UrlMapList.ServerResponse.Header or (if a response was returned at
144840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144841// to check whether the returned error was because
144842// http.StatusNotModified was returned.
144843func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
144844	gensupport.SetOptions(c.urlParams_, opts...)
144845	res, err := c.doRequest("json")
144846	if res != nil && res.StatusCode == http.StatusNotModified {
144847		if res.Body != nil {
144848			res.Body.Close()
144849		}
144850		return nil, &googleapi.Error{
144851			Code:   res.StatusCode,
144852			Header: res.Header,
144853		}
144854	}
144855	if err != nil {
144856		return nil, err
144857	}
144858	defer googleapi.CloseBody(res)
144859	if err := googleapi.CheckResponse(res); err != nil {
144860		return nil, err
144861	}
144862	ret := &UrlMapList{
144863		ServerResponse: googleapi.ServerResponse{
144864			Header:         res.Header,
144865			HTTPStatusCode: res.StatusCode,
144866		},
144867	}
144868	target := &ret
144869	if err := gensupport.DecodeResponse(target, res); err != nil {
144870		return nil, err
144871	}
144872	return ret, nil
144873	// {
144874	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
144875	//   "httpMethod": "GET",
144876	//   "id": "compute.regionUrlMaps.list",
144877	//   "parameterOrder": [
144878	//     "project",
144879	//     "region"
144880	//   ],
144881	//   "parameters": {
144882	//     "filter": {
144883	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
144884	//       "location": "query",
144885	//       "type": "string"
144886	//     },
144887	//     "maxResults": {
144888	//       "default": "500",
144889	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144890	//       "format": "uint32",
144891	//       "location": "query",
144892	//       "minimum": "0",
144893	//       "type": "integer"
144894	//     },
144895	//     "orderBy": {
144896	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
144897	//       "location": "query",
144898	//       "type": "string"
144899	//     },
144900	//     "pageToken": {
144901	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144902	//       "location": "query",
144903	//       "type": "string"
144904	//     },
144905	//     "project": {
144906	//       "description": "Project ID for this request.",
144907	//       "location": "path",
144908	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144909	//       "required": true,
144910	//       "type": "string"
144911	//     },
144912	//     "region": {
144913	//       "description": "Name of the region scoping this request.",
144914	//       "location": "path",
144915	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144916	//       "required": true,
144917	//       "type": "string"
144918	//     },
144919	//     "returnPartialSuccess": {
144920	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
144921	//       "location": "query",
144922	//       "type": "boolean"
144923	//     }
144924	//   },
144925	//   "path": "{project}/regions/{region}/urlMaps",
144926	//   "response": {
144927	//     "$ref": "UrlMapList"
144928	//   },
144929	//   "scopes": [
144930	//     "https://www.googleapis.com/auth/cloud-platform",
144931	//     "https://www.googleapis.com/auth/compute",
144932	//     "https://www.googleapis.com/auth/compute.readonly"
144933	//   ]
144934	// }
144935
144936}
144937
144938// Pages invokes f for each page of results.
144939// A non-nil error returned from f will halt the iteration.
144940// The provided context supersedes any context provided to the Context method.
144941func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
144942	c.ctx_ = ctx
144943	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144944	for {
144945		x, err := c.Do()
144946		if err != nil {
144947			return err
144948		}
144949		if err := f(x); err != nil {
144950			return err
144951		}
144952		if x.NextPageToken == "" {
144953			return nil
144954		}
144955		c.PageToken(x.NextPageToken)
144956	}
144957}
144958
144959// method id "compute.regionUrlMaps.patch":
144960
144961type RegionUrlMapsPatchCall struct {
144962	s          *Service
144963	project    string
144964	region     string
144965	urlMap     string
144966	urlmap     *UrlMap
144967	urlParams_ gensupport.URLParams
144968	ctx_       context.Context
144969	header_    http.Header
144970}
144971
144972// Patch: Patches the specified UrlMap resource with the data included
144973// in the request. This method supports PATCH semantics and uses JSON
144974// merge patch format and processing rules.
144975func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
144976	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144977	c.project = project
144978	c.region = region
144979	c.urlMap = urlMap
144980	c.urlmap = urlmap
144981	return c
144982}
144983
144984// RequestId sets the optional parameter "requestId": begin_interface:
144985// MixerMutationRequestBuilder Request ID to support idempotency.
144986func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
144987	c.urlParams_.Set("requestId", requestId)
144988	return c
144989}
144990
144991// Fields allows partial responses to be retrieved. See
144992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144993// for more information.
144994func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
144995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144996	return c
144997}
144998
144999// Context sets the context to be used in this call's Do method. Any
145000// pending HTTP request will be aborted if the provided context is
145001// canceled.
145002func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
145003	c.ctx_ = ctx
145004	return c
145005}
145006
145007// Header returns an http.Header that can be modified by the caller to
145008// add HTTP headers to the request.
145009func (c *RegionUrlMapsPatchCall) Header() http.Header {
145010	if c.header_ == nil {
145011		c.header_ = make(http.Header)
145012	}
145013	return c.header_
145014}
145015
145016func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
145017	reqHeaders := make(http.Header)
145018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
145019	for k, v := range c.header_ {
145020		reqHeaders[k] = v
145021	}
145022	reqHeaders.Set("User-Agent", c.s.userAgent())
145023	var body io.Reader = nil
145024	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
145025	if err != nil {
145026		return nil, err
145027	}
145028	reqHeaders.Set("Content-Type", "application/json")
145029	c.urlParams_.Set("alt", alt)
145030	c.urlParams_.Set("prettyPrint", "false")
145031	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
145032	urls += "?" + c.urlParams_.Encode()
145033	req, err := http.NewRequest("PATCH", urls, body)
145034	if err != nil {
145035		return nil, err
145036	}
145037	req.Header = reqHeaders
145038	googleapi.Expand(req.URL, map[string]string{
145039		"project": c.project,
145040		"region":  c.region,
145041		"urlMap":  c.urlMap,
145042	})
145043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145044}
145045
145046// Do executes the "compute.regionUrlMaps.patch" call.
145047// Exactly one of *Operation or error will be non-nil. Any non-2xx
145048// status code is an error. Response headers are in either
145049// *Operation.ServerResponse.Header or (if a response was returned at
145050// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145051// to check whether the returned error was because
145052// http.StatusNotModified was returned.
145053func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145054	gensupport.SetOptions(c.urlParams_, opts...)
145055	res, err := c.doRequest("json")
145056	if res != nil && res.StatusCode == http.StatusNotModified {
145057		if res.Body != nil {
145058			res.Body.Close()
145059		}
145060		return nil, &googleapi.Error{
145061			Code:   res.StatusCode,
145062			Header: res.Header,
145063		}
145064	}
145065	if err != nil {
145066		return nil, err
145067	}
145068	defer googleapi.CloseBody(res)
145069	if err := googleapi.CheckResponse(res); err != nil {
145070		return nil, err
145071	}
145072	ret := &Operation{
145073		ServerResponse: googleapi.ServerResponse{
145074			Header:         res.Header,
145075			HTTPStatusCode: res.StatusCode,
145076		},
145077	}
145078	target := &ret
145079	if err := gensupport.DecodeResponse(target, res); err != nil {
145080		return nil, err
145081	}
145082	return ret, nil
145083	// {
145084	//   "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.",
145085	//   "httpMethod": "PATCH",
145086	//   "id": "compute.regionUrlMaps.patch",
145087	//   "parameterOrder": [
145088	//     "project",
145089	//     "region",
145090	//     "urlMap"
145091	//   ],
145092	//   "parameters": {
145093	//     "project": {
145094	//       "description": "Project ID for this request.",
145095	//       "location": "path",
145096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145097	//       "required": true,
145098	//       "type": "string"
145099	//     },
145100	//     "region": {
145101	//       "description": "Name of the region scoping this request.",
145102	//       "location": "path",
145103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145104	//       "required": true,
145105	//       "type": "string"
145106	//     },
145107	//     "requestId": {
145108	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
145109	//       "location": "query",
145110	//       "type": "string"
145111	//     },
145112	//     "urlMap": {
145113	//       "description": "Name of the UrlMap resource to patch.",
145114	//       "location": "path",
145115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145116	//       "required": true,
145117	//       "type": "string"
145118	//     }
145119	//   },
145120	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
145121	//   "request": {
145122	//     "$ref": "UrlMap"
145123	//   },
145124	//   "response": {
145125	//     "$ref": "Operation"
145126	//   },
145127	//   "scopes": [
145128	//     "https://www.googleapis.com/auth/cloud-platform",
145129	//     "https://www.googleapis.com/auth/compute"
145130	//   ]
145131	// }
145132
145133}
145134
145135// method id "compute.regionUrlMaps.testIamPermissions":
145136
145137type RegionUrlMapsTestIamPermissionsCall struct {
145138	s                      *Service
145139	project                string
145140	region                 string
145141	resource               string
145142	testpermissionsrequest *TestPermissionsRequest
145143	urlParams_             gensupport.URLParams
145144	ctx_                   context.Context
145145	header_                http.Header
145146}
145147
145148// TestIamPermissions: Returns permissions that a caller has on the
145149// specified resource.
145150func (r *RegionUrlMapsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionUrlMapsTestIamPermissionsCall {
145151	c := &RegionUrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145152	c.project = project
145153	c.region = region
145154	c.resource = resource
145155	c.testpermissionsrequest = testpermissionsrequest
145156	return c
145157}
145158
145159// Fields allows partial responses to be retrieved. See
145160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145161// for more information.
145162func (c *RegionUrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionUrlMapsTestIamPermissionsCall {
145163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145164	return c
145165}
145166
145167// Context sets the context to be used in this call's Do method. Any
145168// pending HTTP request will be aborted if the provided context is
145169// canceled.
145170func (c *RegionUrlMapsTestIamPermissionsCall) Context(ctx context.Context) *RegionUrlMapsTestIamPermissionsCall {
145171	c.ctx_ = ctx
145172	return c
145173}
145174
145175// Header returns an http.Header that can be modified by the caller to
145176// add HTTP headers to the request.
145177func (c *RegionUrlMapsTestIamPermissionsCall) Header() http.Header {
145178	if c.header_ == nil {
145179		c.header_ = make(http.Header)
145180	}
145181	return c.header_
145182}
145183
145184func (c *RegionUrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
145185	reqHeaders := make(http.Header)
145186	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
145187	for k, v := range c.header_ {
145188		reqHeaders[k] = v
145189	}
145190	reqHeaders.Set("User-Agent", c.s.userAgent())
145191	var body io.Reader = nil
145192	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
145193	if err != nil {
145194		return nil, err
145195	}
145196	reqHeaders.Set("Content-Type", "application/json")
145197	c.urlParams_.Set("alt", alt)
145198	c.urlParams_.Set("prettyPrint", "false")
145199	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{resource}/testIamPermissions")
145200	urls += "?" + c.urlParams_.Encode()
145201	req, err := http.NewRequest("POST", urls, body)
145202	if err != nil {
145203		return nil, err
145204	}
145205	req.Header = reqHeaders
145206	googleapi.Expand(req.URL, map[string]string{
145207		"project":  c.project,
145208		"region":   c.region,
145209		"resource": c.resource,
145210	})
145211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145212}
145213
145214// Do executes the "compute.regionUrlMaps.testIamPermissions" call.
145215// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
145216// non-2xx status code is an error. Response headers are in either
145217// *TestPermissionsResponse.ServerResponse.Header or (if a response was
145218// returned at all) in error.(*googleapi.Error).Header. Use
145219// googleapi.IsNotModified to check whether the returned error was
145220// because http.StatusNotModified was returned.
145221func (c *RegionUrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
145222	gensupport.SetOptions(c.urlParams_, opts...)
145223	res, err := c.doRequest("json")
145224	if res != nil && res.StatusCode == http.StatusNotModified {
145225		if res.Body != nil {
145226			res.Body.Close()
145227		}
145228		return nil, &googleapi.Error{
145229			Code:   res.StatusCode,
145230			Header: res.Header,
145231		}
145232	}
145233	if err != nil {
145234		return nil, err
145235	}
145236	defer googleapi.CloseBody(res)
145237	if err := googleapi.CheckResponse(res); err != nil {
145238		return nil, err
145239	}
145240	ret := &TestPermissionsResponse{
145241		ServerResponse: googleapi.ServerResponse{
145242			Header:         res.Header,
145243			HTTPStatusCode: res.StatusCode,
145244		},
145245	}
145246	target := &ret
145247	if err := gensupport.DecodeResponse(target, res); err != nil {
145248		return nil, err
145249	}
145250	return ret, nil
145251	// {
145252	//   "description": "Returns permissions that a caller has on the specified resource.",
145253	//   "httpMethod": "POST",
145254	//   "id": "compute.regionUrlMaps.testIamPermissions",
145255	//   "parameterOrder": [
145256	//     "project",
145257	//     "region",
145258	//     "resource"
145259	//   ],
145260	//   "parameters": {
145261	//     "project": {
145262	//       "description": "Project ID for this request.",
145263	//       "location": "path",
145264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145265	//       "required": true,
145266	//       "type": "string"
145267	//     },
145268	//     "region": {
145269	//       "description": "The name of the region for this request.",
145270	//       "location": "path",
145271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145272	//       "required": true,
145273	//       "type": "string"
145274	//     },
145275	//     "resource": {
145276	//       "description": "Name or id of the resource for this request.",
145277	//       "location": "path",
145278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145279	//       "required": true,
145280	//       "type": "string"
145281	//     }
145282	//   },
145283	//   "path": "{project}/regions/{region}/urlMaps/{resource}/testIamPermissions",
145284	//   "request": {
145285	//     "$ref": "TestPermissionsRequest"
145286	//   },
145287	//   "response": {
145288	//     "$ref": "TestPermissionsResponse"
145289	//   },
145290	//   "scopes": [
145291	//     "https://www.googleapis.com/auth/cloud-platform",
145292	//     "https://www.googleapis.com/auth/compute",
145293	//     "https://www.googleapis.com/auth/compute.readonly"
145294	//   ]
145295	// }
145296
145297}
145298
145299// method id "compute.regionUrlMaps.update":
145300
145301type RegionUrlMapsUpdateCall struct {
145302	s          *Service
145303	project    string
145304	region     string
145305	urlMap     string
145306	urlmap     *UrlMap
145307	urlParams_ gensupport.URLParams
145308	ctx_       context.Context
145309	header_    http.Header
145310}
145311
145312// Update: Updates the specified UrlMap resource with the data included
145313// in the request.
145314func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
145315	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145316	c.project = project
145317	c.region = region
145318	c.urlMap = urlMap
145319	c.urlmap = urlmap
145320	return c
145321}
145322
145323// RequestId sets the optional parameter "requestId": begin_interface:
145324// MixerMutationRequestBuilder Request ID to support idempotency.
145325func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
145326	c.urlParams_.Set("requestId", requestId)
145327	return c
145328}
145329
145330// Fields allows partial responses to be retrieved. See
145331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145332// for more information.
145333func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
145334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145335	return c
145336}
145337
145338// Context sets the context to be used in this call's Do method. Any
145339// pending HTTP request will be aborted if the provided context is
145340// canceled.
145341func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
145342	c.ctx_ = ctx
145343	return c
145344}
145345
145346// Header returns an http.Header that can be modified by the caller to
145347// add HTTP headers to the request.
145348func (c *RegionUrlMapsUpdateCall) Header() http.Header {
145349	if c.header_ == nil {
145350		c.header_ = make(http.Header)
145351	}
145352	return c.header_
145353}
145354
145355func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
145356	reqHeaders := make(http.Header)
145357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
145358	for k, v := range c.header_ {
145359		reqHeaders[k] = v
145360	}
145361	reqHeaders.Set("User-Agent", c.s.userAgent())
145362	var body io.Reader = nil
145363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
145364	if err != nil {
145365		return nil, err
145366	}
145367	reqHeaders.Set("Content-Type", "application/json")
145368	c.urlParams_.Set("alt", alt)
145369	c.urlParams_.Set("prettyPrint", "false")
145370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
145371	urls += "?" + c.urlParams_.Encode()
145372	req, err := http.NewRequest("PUT", urls, body)
145373	if err != nil {
145374		return nil, err
145375	}
145376	req.Header = reqHeaders
145377	googleapi.Expand(req.URL, map[string]string{
145378		"project": c.project,
145379		"region":  c.region,
145380		"urlMap":  c.urlMap,
145381	})
145382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145383}
145384
145385// Do executes the "compute.regionUrlMaps.update" call.
145386// Exactly one of *Operation or error will be non-nil. Any non-2xx
145387// status code is an error. Response headers are in either
145388// *Operation.ServerResponse.Header or (if a response was returned at
145389// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145390// to check whether the returned error was because
145391// http.StatusNotModified was returned.
145392func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145393	gensupport.SetOptions(c.urlParams_, opts...)
145394	res, err := c.doRequest("json")
145395	if res != nil && res.StatusCode == http.StatusNotModified {
145396		if res.Body != nil {
145397			res.Body.Close()
145398		}
145399		return nil, &googleapi.Error{
145400			Code:   res.StatusCode,
145401			Header: res.Header,
145402		}
145403	}
145404	if err != nil {
145405		return nil, err
145406	}
145407	defer googleapi.CloseBody(res)
145408	if err := googleapi.CheckResponse(res); err != nil {
145409		return nil, err
145410	}
145411	ret := &Operation{
145412		ServerResponse: googleapi.ServerResponse{
145413			Header:         res.Header,
145414			HTTPStatusCode: res.StatusCode,
145415		},
145416	}
145417	target := &ret
145418	if err := gensupport.DecodeResponse(target, res); err != nil {
145419		return nil, err
145420	}
145421	return ret, nil
145422	// {
145423	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
145424	//   "httpMethod": "PUT",
145425	//   "id": "compute.regionUrlMaps.update",
145426	//   "parameterOrder": [
145427	//     "project",
145428	//     "region",
145429	//     "urlMap"
145430	//   ],
145431	//   "parameters": {
145432	//     "project": {
145433	//       "description": "Project ID for this request.",
145434	//       "location": "path",
145435	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145436	//       "required": true,
145437	//       "type": "string"
145438	//     },
145439	//     "region": {
145440	//       "description": "Name of the region scoping this request.",
145441	//       "location": "path",
145442	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145443	//       "required": true,
145444	//       "type": "string"
145445	//     },
145446	//     "requestId": {
145447	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
145448	//       "location": "query",
145449	//       "type": "string"
145450	//     },
145451	//     "urlMap": {
145452	//       "description": "Name of the UrlMap resource to update.",
145453	//       "location": "path",
145454	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145455	//       "required": true,
145456	//       "type": "string"
145457	//     }
145458	//   },
145459	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
145460	//   "request": {
145461	//     "$ref": "UrlMap"
145462	//   },
145463	//   "response": {
145464	//     "$ref": "Operation"
145465	//   },
145466	//   "scopes": [
145467	//     "https://www.googleapis.com/auth/cloud-platform",
145468	//     "https://www.googleapis.com/auth/compute"
145469	//   ]
145470	// }
145471
145472}
145473
145474// method id "compute.regionUrlMaps.validate":
145475
145476type RegionUrlMapsValidateCall struct {
145477	s                            *Service
145478	project                      string
145479	region                       string
145480	urlMap                       string
145481	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
145482	urlParams_                   gensupport.URLParams
145483	ctx_                         context.Context
145484	header_                      http.Header
145485}
145486
145487// Validate: Runs static validation for the UrlMap. In particular, the
145488// tests of the provided UrlMap will be run. Calling this method does
145489// NOT create the UrlMap.
145490func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
145491	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145492	c.project = project
145493	c.region = region
145494	c.urlMap = urlMap
145495	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
145496	return c
145497}
145498
145499// Fields allows partial responses to be retrieved. See
145500// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145501// for more information.
145502func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
145503	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145504	return c
145505}
145506
145507// Context sets the context to be used in this call's Do method. Any
145508// pending HTTP request will be aborted if the provided context is
145509// canceled.
145510func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
145511	c.ctx_ = ctx
145512	return c
145513}
145514
145515// Header returns an http.Header that can be modified by the caller to
145516// add HTTP headers to the request.
145517func (c *RegionUrlMapsValidateCall) Header() http.Header {
145518	if c.header_ == nil {
145519		c.header_ = make(http.Header)
145520	}
145521	return c.header_
145522}
145523
145524func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
145525	reqHeaders := make(http.Header)
145526	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
145527	for k, v := range c.header_ {
145528		reqHeaders[k] = v
145529	}
145530	reqHeaders.Set("User-Agent", c.s.userAgent())
145531	var body io.Reader = nil
145532	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
145533	if err != nil {
145534		return nil, err
145535	}
145536	reqHeaders.Set("Content-Type", "application/json")
145537	c.urlParams_.Set("alt", alt)
145538	c.urlParams_.Set("prettyPrint", "false")
145539	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/validate")
145540	urls += "?" + c.urlParams_.Encode()
145541	req, err := http.NewRequest("POST", urls, body)
145542	if err != nil {
145543		return nil, err
145544	}
145545	req.Header = reqHeaders
145546	googleapi.Expand(req.URL, map[string]string{
145547		"project": c.project,
145548		"region":  c.region,
145549		"urlMap":  c.urlMap,
145550	})
145551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145552}
145553
145554// Do executes the "compute.regionUrlMaps.validate" call.
145555// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
145556// non-2xx status code is an error. Response headers are in either
145557// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
145558// returned at all) in error.(*googleapi.Error).Header. Use
145559// googleapi.IsNotModified to check whether the returned error was
145560// because http.StatusNotModified was returned.
145561func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
145562	gensupport.SetOptions(c.urlParams_, opts...)
145563	res, err := c.doRequest("json")
145564	if res != nil && res.StatusCode == http.StatusNotModified {
145565		if res.Body != nil {
145566			res.Body.Close()
145567		}
145568		return nil, &googleapi.Error{
145569			Code:   res.StatusCode,
145570			Header: res.Header,
145571		}
145572	}
145573	if err != nil {
145574		return nil, err
145575	}
145576	defer googleapi.CloseBody(res)
145577	if err := googleapi.CheckResponse(res); err != nil {
145578		return nil, err
145579	}
145580	ret := &UrlMapsValidateResponse{
145581		ServerResponse: googleapi.ServerResponse{
145582			Header:         res.Header,
145583			HTTPStatusCode: res.StatusCode,
145584		},
145585	}
145586	target := &ret
145587	if err := gensupport.DecodeResponse(target, res); err != nil {
145588		return nil, err
145589	}
145590	return ret, nil
145591	// {
145592	//   "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.",
145593	//   "httpMethod": "POST",
145594	//   "id": "compute.regionUrlMaps.validate",
145595	//   "parameterOrder": [
145596	//     "project",
145597	//     "region",
145598	//     "urlMap"
145599	//   ],
145600	//   "parameters": {
145601	//     "project": {
145602	//       "description": "Project ID for this request.",
145603	//       "location": "path",
145604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145605	//       "required": true,
145606	//       "type": "string"
145607	//     },
145608	//     "region": {
145609	//       "description": "Name of the region scoping this request.",
145610	//       "location": "path",
145611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145612	//       "required": true,
145613	//       "type": "string"
145614	//     },
145615	//     "urlMap": {
145616	//       "description": "Name of the UrlMap resource to be validated as.",
145617	//       "location": "path",
145618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145619	//       "required": true,
145620	//       "type": "string"
145621	//     }
145622	//   },
145623	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/validate",
145624	//   "request": {
145625	//     "$ref": "RegionUrlMapsValidateRequest"
145626	//   },
145627	//   "response": {
145628	//     "$ref": "UrlMapsValidateResponse"
145629	//   },
145630	//   "scopes": [
145631	//     "https://www.googleapis.com/auth/cloud-platform",
145632	//     "https://www.googleapis.com/auth/compute"
145633	//   ]
145634	// }
145635
145636}
145637
145638// method id "compute.regions.get":
145639
145640type RegionsGetCall struct {
145641	s            *Service
145642	project      string
145643	region       string
145644	urlParams_   gensupport.URLParams
145645	ifNoneMatch_ string
145646	ctx_         context.Context
145647	header_      http.Header
145648}
145649
145650// Get: Returns the specified Region resource. Gets a list of available
145651// regions by making a list() request.
145652// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
145653func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
145654	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145655	c.project = project
145656	c.region = region
145657	return c
145658}
145659
145660// Fields allows partial responses to be retrieved. See
145661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145662// for more information.
145663func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
145664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145665	return c
145666}
145667
145668// IfNoneMatch sets the optional parameter which makes the operation
145669// fail if the object's ETag matches the given value. This is useful for
145670// getting updates only after the object has changed since the last
145671// request. Use googleapi.IsNotModified to check whether the response
145672// error from Do is the result of In-None-Match.
145673func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
145674	c.ifNoneMatch_ = entityTag
145675	return c
145676}
145677
145678// Context sets the context to be used in this call's Do method. Any
145679// pending HTTP request will be aborted if the provided context is
145680// canceled.
145681func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
145682	c.ctx_ = ctx
145683	return c
145684}
145685
145686// Header returns an http.Header that can be modified by the caller to
145687// add HTTP headers to the request.
145688func (c *RegionsGetCall) Header() http.Header {
145689	if c.header_ == nil {
145690		c.header_ = make(http.Header)
145691	}
145692	return c.header_
145693}
145694
145695func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
145696	reqHeaders := make(http.Header)
145697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
145698	for k, v := range c.header_ {
145699		reqHeaders[k] = v
145700	}
145701	reqHeaders.Set("User-Agent", c.s.userAgent())
145702	if c.ifNoneMatch_ != "" {
145703		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145704	}
145705	var body io.Reader = nil
145706	c.urlParams_.Set("alt", alt)
145707	c.urlParams_.Set("prettyPrint", "false")
145708	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
145709	urls += "?" + c.urlParams_.Encode()
145710	req, err := http.NewRequest("GET", urls, body)
145711	if err != nil {
145712		return nil, err
145713	}
145714	req.Header = reqHeaders
145715	googleapi.Expand(req.URL, map[string]string{
145716		"project": c.project,
145717		"region":  c.region,
145718	})
145719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145720}
145721
145722// Do executes the "compute.regions.get" call.
145723// Exactly one of *Region or error will be non-nil. Any non-2xx status
145724// code is an error. Response headers are in either
145725// *Region.ServerResponse.Header or (if a response was returned at all)
145726// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
145727// check whether the returned error was because http.StatusNotModified
145728// was returned.
145729func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
145730	gensupport.SetOptions(c.urlParams_, opts...)
145731	res, err := c.doRequest("json")
145732	if res != nil && res.StatusCode == http.StatusNotModified {
145733		if res.Body != nil {
145734			res.Body.Close()
145735		}
145736		return nil, &googleapi.Error{
145737			Code:   res.StatusCode,
145738			Header: res.Header,
145739		}
145740	}
145741	if err != nil {
145742		return nil, err
145743	}
145744	defer googleapi.CloseBody(res)
145745	if err := googleapi.CheckResponse(res); err != nil {
145746		return nil, err
145747	}
145748	ret := &Region{
145749		ServerResponse: googleapi.ServerResponse{
145750			Header:         res.Header,
145751			HTTPStatusCode: res.StatusCode,
145752		},
145753	}
145754	target := &ret
145755	if err := gensupport.DecodeResponse(target, res); err != nil {
145756		return nil, err
145757	}
145758	return ret, nil
145759	// {
145760	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
145761	//   "httpMethod": "GET",
145762	//   "id": "compute.regions.get",
145763	//   "parameterOrder": [
145764	//     "project",
145765	//     "region"
145766	//   ],
145767	//   "parameters": {
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 resource to return.",
145777	//       "location": "path",
145778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145779	//       "required": true,
145780	//       "type": "string"
145781	//     }
145782	//   },
145783	//   "path": "{project}/regions/{region}",
145784	//   "response": {
145785	//     "$ref": "Region"
145786	//   },
145787	//   "scopes": [
145788	//     "https://www.googleapis.com/auth/cloud-platform",
145789	//     "https://www.googleapis.com/auth/compute",
145790	//     "https://www.googleapis.com/auth/compute.readonly"
145791	//   ]
145792	// }
145793
145794}
145795
145796// method id "compute.regions.list":
145797
145798type RegionsListCall struct {
145799	s            *Service
145800	project      string
145801	urlParams_   gensupport.URLParams
145802	ifNoneMatch_ string
145803	ctx_         context.Context
145804	header_      http.Header
145805}
145806
145807// List: Retrieves the list of region resources available to the
145808// specified project.
145809// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
145810func (r *RegionsService) List(project string) *RegionsListCall {
145811	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145812	c.project = project
145813	return c
145814}
145815
145816// Filter sets the optional parameter "filter": A filter expression that
145817// filters resources listed in the response. The expression must specify
145818// the field name, a comparison operator, and the value that you want to
145819// use for filtering. The value must be a string, a number, or a
145820// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145821// `<`.
145822//
145823// For example, if you are filtering Compute Engine instances, you can
145824// exclude instances named `example-instance` by specifying `name !=
145825// example-instance`.
145826//
145827// You can also filter nested fields. For example, you could specify
145828// `scheduling.automaticRestart = false` to include instances only if
145829// they are not scheduled for automatic restarts. You can use filtering
145830// on nested fields to filter based on resource labels.
145831//
145832// To filter on multiple expressions, provide each separate expression
145833// within parentheses. For example: ``` (scheduling.automaticRestart =
145834// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
145835// is an `AND` expression. However, you can include `AND` and `OR`
145836// expressions explicitly. For example: ``` (cpuPlatform = "Intel
145837// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
145838// (scheduling.automaticRestart = true) ```
145839func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
145840	c.urlParams_.Set("filter", filter)
145841	return c
145842}
145843
145844// MaxResults sets the optional parameter "maxResults": The maximum
145845// number of results per page that should be returned. If the number of
145846// available results is larger than `maxResults`, Compute Engine returns
145847// a `nextPageToken` that can be used to get the next page of results in
145848// subsequent list requests. Acceptable values are `0` to `500`,
145849// inclusive. (Default: `500`)
145850func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
145851	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145852	return c
145853}
145854
145855// OrderBy sets the optional parameter "orderBy": Sorts list results by
145856// a certain order. By default, results are returned in alphanumerical
145857// order based on the resource name.
145858//
145859// You can also sort results in descending order based on the creation
145860// timestamp using `orderBy="creationTimestamp desc". This sorts
145861// results based on the `creationTimestamp` field in reverse
145862// chronological order (newest result first). Use this to sort resources
145863// like operations so that the newest operation is returned
145864// first.
145865//
145866// Currently, only sorting by `name` or `creationTimestamp desc` is
145867// supported.
145868func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
145869	c.urlParams_.Set("orderBy", orderBy)
145870	return c
145871}
145872
145873// PageToken sets the optional parameter "pageToken": Specifies a page
145874// token to use. Set `pageToken` to the `nextPageToken` returned by a
145875// previous list request to get the next page of results.
145876func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
145877	c.urlParams_.Set("pageToken", pageToken)
145878	return c
145879}
145880
145881// ReturnPartialSuccess sets the optional parameter
145882// "returnPartialSuccess": Opt-in for partial success behavior which
145883// provides partial results in case of failure. The default value is
145884// false and the logic is the same as today.
145885func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall {
145886	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145887	return c
145888}
145889
145890// Fields allows partial responses to be retrieved. See
145891// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145892// for more information.
145893func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
145894	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145895	return c
145896}
145897
145898// IfNoneMatch sets the optional parameter which makes the operation
145899// fail if the object's ETag matches the given value. This is useful for
145900// getting updates only after the object has changed since the last
145901// request. Use googleapi.IsNotModified to check whether the response
145902// error from Do is the result of In-None-Match.
145903func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
145904	c.ifNoneMatch_ = entityTag
145905	return c
145906}
145907
145908// Context sets the context to be used in this call's Do method. Any
145909// pending HTTP request will be aborted if the provided context is
145910// canceled.
145911func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
145912	c.ctx_ = ctx
145913	return c
145914}
145915
145916// Header returns an http.Header that can be modified by the caller to
145917// add HTTP headers to the request.
145918func (c *RegionsListCall) Header() http.Header {
145919	if c.header_ == nil {
145920		c.header_ = make(http.Header)
145921	}
145922	return c.header_
145923}
145924
145925func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
145926	reqHeaders := make(http.Header)
145927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
145928	for k, v := range c.header_ {
145929		reqHeaders[k] = v
145930	}
145931	reqHeaders.Set("User-Agent", c.s.userAgent())
145932	if c.ifNoneMatch_ != "" {
145933		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145934	}
145935	var body io.Reader = nil
145936	c.urlParams_.Set("alt", alt)
145937	c.urlParams_.Set("prettyPrint", "false")
145938	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
145939	urls += "?" + c.urlParams_.Encode()
145940	req, err := http.NewRequest("GET", urls, body)
145941	if err != nil {
145942		return nil, err
145943	}
145944	req.Header = reqHeaders
145945	googleapi.Expand(req.URL, map[string]string{
145946		"project": c.project,
145947	})
145948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145949}
145950
145951// Do executes the "compute.regions.list" call.
145952// Exactly one of *RegionList or error will be non-nil. Any non-2xx
145953// status code is an error. Response headers are in either
145954// *RegionList.ServerResponse.Header or (if a response was returned at
145955// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145956// to check whether the returned error was because
145957// http.StatusNotModified was returned.
145958func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
145959	gensupport.SetOptions(c.urlParams_, opts...)
145960	res, err := c.doRequest("json")
145961	if res != nil && res.StatusCode == http.StatusNotModified {
145962		if res.Body != nil {
145963			res.Body.Close()
145964		}
145965		return nil, &googleapi.Error{
145966			Code:   res.StatusCode,
145967			Header: res.Header,
145968		}
145969	}
145970	if err != nil {
145971		return nil, err
145972	}
145973	defer googleapi.CloseBody(res)
145974	if err := googleapi.CheckResponse(res); err != nil {
145975		return nil, err
145976	}
145977	ret := &RegionList{
145978		ServerResponse: googleapi.ServerResponse{
145979			Header:         res.Header,
145980			HTTPStatusCode: res.StatusCode,
145981		},
145982	}
145983	target := &ret
145984	if err := gensupport.DecodeResponse(target, res); err != nil {
145985		return nil, err
145986	}
145987	return ret, nil
145988	// {
145989	//   "description": "Retrieves the list of region resources available to the specified project.",
145990	//   "httpMethod": "GET",
145991	//   "id": "compute.regions.list",
145992	//   "parameterOrder": [
145993	//     "project"
145994	//   ],
145995	//   "parameters": {
145996	//     "filter": {
145997	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
145998	//       "location": "query",
145999	//       "type": "string"
146000	//     },
146001	//     "maxResults": {
146002	//       "default": "500",
146003	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
146004	//       "format": "uint32",
146005	//       "location": "query",
146006	//       "minimum": "0",
146007	//       "type": "integer"
146008	//     },
146009	//     "orderBy": {
146010	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
146011	//       "location": "query",
146012	//       "type": "string"
146013	//     },
146014	//     "pageToken": {
146015	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
146016	//       "location": "query",
146017	//       "type": "string"
146018	//     },
146019	//     "project": {
146020	//       "description": "Project ID for this request.",
146021	//       "location": "path",
146022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146023	//       "required": true,
146024	//       "type": "string"
146025	//     },
146026	//     "returnPartialSuccess": {
146027	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
146028	//       "location": "query",
146029	//       "type": "boolean"
146030	//     }
146031	//   },
146032	//   "path": "{project}/regions",
146033	//   "response": {
146034	//     "$ref": "RegionList"
146035	//   },
146036	//   "scopes": [
146037	//     "https://www.googleapis.com/auth/cloud-platform",
146038	//     "https://www.googleapis.com/auth/compute",
146039	//     "https://www.googleapis.com/auth/compute.readonly"
146040	//   ]
146041	// }
146042
146043}
146044
146045// Pages invokes f for each page of results.
146046// A non-nil error returned from f will halt the iteration.
146047// The provided context supersedes any context provided to the Context method.
146048func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
146049	c.ctx_ = ctx
146050	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146051	for {
146052		x, err := c.Do()
146053		if err != nil {
146054			return err
146055		}
146056		if err := f(x); err != nil {
146057			return err
146058		}
146059		if x.NextPageToken == "" {
146060			return nil
146061		}
146062		c.PageToken(x.NextPageToken)
146063	}
146064}
146065
146066// method id "compute.reservations.aggregatedList":
146067
146068type ReservationsAggregatedListCall struct {
146069	s            *Service
146070	project      string
146071	urlParams_   gensupport.URLParams
146072	ifNoneMatch_ string
146073	ctx_         context.Context
146074	header_      http.Header
146075}
146076
146077// AggregatedList: Retrieves an aggregated list of reservations.
146078func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
146079	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146080	c.project = project
146081	return c
146082}
146083
146084// Filter sets the optional parameter "filter": A filter expression that
146085// filters resources listed in the response. The expression must specify
146086// the field name, a comparison operator, and the value that you want to
146087// use for filtering. The value must be a string, a number, or a
146088// boolean. The comparison operator must be either `=`, `!=`, `>`, or
146089// `<`.
146090//
146091// For example, if you are filtering Compute Engine instances, you can
146092// exclude instances named `example-instance` by specifying `name !=
146093// example-instance`.
146094//
146095// You can also filter nested fields. For example, you could specify
146096// `scheduling.automaticRestart = false` to include instances only if
146097// they are not scheduled for automatic restarts. You can use filtering
146098// on nested fields to filter based on resource labels.
146099//
146100// To filter on multiple expressions, provide each separate expression
146101// within parentheses. For example: ``` (scheduling.automaticRestart =
146102// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
146103// is an `AND` expression. However, you can include `AND` and `OR`
146104// expressions explicitly. For example: ``` (cpuPlatform = "Intel
146105// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
146106// (scheduling.automaticRestart = true) ```
146107func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
146108	c.urlParams_.Set("filter", filter)
146109	return c
146110}
146111
146112// IncludeAllScopes sets the optional parameter "includeAllScopes":
146113// Indicates whether every visible scope for each scope type (zone,
146114// region, global) should be included in the response. For new resource
146115// types added after this field, the flag has no effect as new resource
146116// types will always include every visible scope for each scope type in
146117// response. For resource types which predate this field, if this flag
146118// is omitted or false, only scopes of the scope types where the
146119// resource type is expected to be found will be included.
146120func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
146121	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
146122	return c
146123}
146124
146125// MaxResults sets the optional parameter "maxResults": The maximum
146126// number of results per page that should be returned. If the number of
146127// available results is larger than `maxResults`, Compute Engine returns
146128// a `nextPageToken` that can be used to get the next page of results in
146129// subsequent list requests. Acceptable values are `0` to `500`,
146130// inclusive. (Default: `500`)
146131func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
146132	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146133	return c
146134}
146135
146136// OrderBy sets the optional parameter "orderBy": Sorts list results by
146137// a certain order. By default, results are returned in alphanumerical
146138// order based on the resource name.
146139//
146140// You can also sort results in descending order based on the creation
146141// timestamp using `orderBy="creationTimestamp desc". This sorts
146142// results based on the `creationTimestamp` field in reverse
146143// chronological order (newest result first). Use this to sort resources
146144// like operations so that the newest operation is returned
146145// first.
146146//
146147// Currently, only sorting by `name` or `creationTimestamp desc` is
146148// supported.
146149func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
146150	c.urlParams_.Set("orderBy", orderBy)
146151	return c
146152}
146153
146154// PageToken sets the optional parameter "pageToken": Specifies a page
146155// token to use. Set `pageToken` to the `nextPageToken` returned by a
146156// previous list request to get the next page of results.
146157func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
146158	c.urlParams_.Set("pageToken", pageToken)
146159	return c
146160}
146161
146162// ReturnPartialSuccess sets the optional parameter
146163// "returnPartialSuccess": Opt-in for partial success behavior which
146164// provides partial results in case of failure. The default value is
146165// false and the logic is the same as today.
146166func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall {
146167	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
146168	return c
146169}
146170
146171// Fields allows partial responses to be retrieved. See
146172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146173// for more information.
146174func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
146175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146176	return c
146177}
146178
146179// IfNoneMatch sets the optional parameter which makes the operation
146180// fail if the object's ETag matches the given value. This is useful for
146181// getting updates only after the object has changed since the last
146182// request. Use googleapi.IsNotModified to check whether the response
146183// error from Do is the result of In-None-Match.
146184func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
146185	c.ifNoneMatch_ = entityTag
146186	return c
146187}
146188
146189// Context sets the context to be used in this call's Do method. Any
146190// pending HTTP request will be aborted if the provided context is
146191// canceled.
146192func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
146193	c.ctx_ = ctx
146194	return c
146195}
146196
146197// Header returns an http.Header that can be modified by the caller to
146198// add HTTP headers to the request.
146199func (c *ReservationsAggregatedListCall) Header() http.Header {
146200	if c.header_ == nil {
146201		c.header_ = make(http.Header)
146202	}
146203	return c.header_
146204}
146205
146206func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
146207	reqHeaders := make(http.Header)
146208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
146209	for k, v := range c.header_ {
146210		reqHeaders[k] = v
146211	}
146212	reqHeaders.Set("User-Agent", c.s.userAgent())
146213	if c.ifNoneMatch_ != "" {
146214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146215	}
146216	var body io.Reader = nil
146217	c.urlParams_.Set("alt", alt)
146218	c.urlParams_.Set("prettyPrint", "false")
146219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/reservations")
146220	urls += "?" + c.urlParams_.Encode()
146221	req, err := http.NewRequest("GET", urls, body)
146222	if err != nil {
146223		return nil, err
146224	}
146225	req.Header = reqHeaders
146226	googleapi.Expand(req.URL, map[string]string{
146227		"project": c.project,
146228	})
146229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146230}
146231
146232// Do executes the "compute.reservations.aggregatedList" call.
146233// Exactly one of *ReservationAggregatedList or error will be non-nil.
146234// Any non-2xx status code is an error. Response headers are in either
146235// *ReservationAggregatedList.ServerResponse.Header or (if a response
146236// was returned at all) in error.(*googleapi.Error).Header. Use
146237// googleapi.IsNotModified to check whether the returned error was
146238// because http.StatusNotModified was returned.
146239func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
146240	gensupport.SetOptions(c.urlParams_, opts...)
146241	res, err := c.doRequest("json")
146242	if res != nil && res.StatusCode == http.StatusNotModified {
146243		if res.Body != nil {
146244			res.Body.Close()
146245		}
146246		return nil, &googleapi.Error{
146247			Code:   res.StatusCode,
146248			Header: res.Header,
146249		}
146250	}
146251	if err != nil {
146252		return nil, err
146253	}
146254	defer googleapi.CloseBody(res)
146255	if err := googleapi.CheckResponse(res); err != nil {
146256		return nil, err
146257	}
146258	ret := &ReservationAggregatedList{
146259		ServerResponse: googleapi.ServerResponse{
146260			Header:         res.Header,
146261			HTTPStatusCode: res.StatusCode,
146262		},
146263	}
146264	target := &ret
146265	if err := gensupport.DecodeResponse(target, res); err != nil {
146266		return nil, err
146267	}
146268	return ret, nil
146269	// {
146270	//   "description": "Retrieves an aggregated list of reservations.",
146271	//   "httpMethod": "GET",
146272	//   "id": "compute.reservations.aggregatedList",
146273	//   "parameterOrder": [
146274	//     "project"
146275	//   ],
146276	//   "parameters": {
146277	//     "filter": {
146278	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
146279	//       "location": "query",
146280	//       "type": "string"
146281	//     },
146282	//     "includeAllScopes": {
146283	//       "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.",
146284	//       "location": "query",
146285	//       "type": "boolean"
146286	//     },
146287	//     "maxResults": {
146288	//       "default": "500",
146289	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
146290	//       "format": "uint32",
146291	//       "location": "query",
146292	//       "minimum": "0",
146293	//       "type": "integer"
146294	//     },
146295	//     "orderBy": {
146296	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
146297	//       "location": "query",
146298	//       "type": "string"
146299	//     },
146300	//     "pageToken": {
146301	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
146302	//       "location": "query",
146303	//       "type": "string"
146304	//     },
146305	//     "project": {
146306	//       "description": "Project ID for this request.",
146307	//       "location": "path",
146308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146309	//       "required": true,
146310	//       "type": "string"
146311	//     },
146312	//     "returnPartialSuccess": {
146313	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
146314	//       "location": "query",
146315	//       "type": "boolean"
146316	//     }
146317	//   },
146318	//   "path": "{project}/aggregated/reservations",
146319	//   "response": {
146320	//     "$ref": "ReservationAggregatedList"
146321	//   },
146322	//   "scopes": [
146323	//     "https://www.googleapis.com/auth/cloud-platform",
146324	//     "https://www.googleapis.com/auth/compute",
146325	//     "https://www.googleapis.com/auth/compute.readonly"
146326	//   ]
146327	// }
146328
146329}
146330
146331// Pages invokes f for each page of results.
146332// A non-nil error returned from f will halt the iteration.
146333// The provided context supersedes any context provided to the Context method.
146334func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
146335	c.ctx_ = ctx
146336	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146337	for {
146338		x, err := c.Do()
146339		if err != nil {
146340			return err
146341		}
146342		if err := f(x); err != nil {
146343			return err
146344		}
146345		if x.NextPageToken == "" {
146346			return nil
146347		}
146348		c.PageToken(x.NextPageToken)
146349	}
146350}
146351
146352// method id "compute.reservations.delete":
146353
146354type ReservationsDeleteCall struct {
146355	s           *Service
146356	project     string
146357	zone        string
146358	reservation string
146359	urlParams_  gensupport.URLParams
146360	ctx_        context.Context
146361	header_     http.Header
146362}
146363
146364// Delete: Deletes the specified reservation.
146365func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
146366	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146367	c.project = project
146368	c.zone = zone
146369	c.reservation = reservation
146370	return c
146371}
146372
146373// RequestId sets the optional parameter "requestId": An optional
146374// request ID to identify requests. Specify a unique request ID so that
146375// if you must retry your request, the server will know to ignore the
146376// request if it has already been completed.
146377//
146378// For example, consider a situation where you make an initial request
146379// and the request times out. If you make the request again with the
146380// same request ID, the server can check if original operation with the
146381// same request ID was received, and if so, will ignore the second
146382// request. This prevents clients from accidentally creating duplicate
146383// commitments.
146384//
146385// The request ID must be a valid UUID with the exception that zero UUID
146386// is not supported (00000000-0000-0000-0000-000000000000).
146387func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
146388	c.urlParams_.Set("requestId", requestId)
146389	return c
146390}
146391
146392// Fields allows partial responses to be retrieved. See
146393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146394// for more information.
146395func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
146396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146397	return c
146398}
146399
146400// Context sets the context to be used in this call's Do method. Any
146401// pending HTTP request will be aborted if the provided context is
146402// canceled.
146403func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
146404	c.ctx_ = ctx
146405	return c
146406}
146407
146408// Header returns an http.Header that can be modified by the caller to
146409// add HTTP headers to the request.
146410func (c *ReservationsDeleteCall) Header() http.Header {
146411	if c.header_ == nil {
146412		c.header_ = make(http.Header)
146413	}
146414	return c.header_
146415}
146416
146417func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
146418	reqHeaders := make(http.Header)
146419	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
146420	for k, v := range c.header_ {
146421		reqHeaders[k] = v
146422	}
146423	reqHeaders.Set("User-Agent", c.s.userAgent())
146424	var body io.Reader = nil
146425	c.urlParams_.Set("alt", alt)
146426	c.urlParams_.Set("prettyPrint", "false")
146427	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
146428	urls += "?" + c.urlParams_.Encode()
146429	req, err := http.NewRequest("DELETE", urls, body)
146430	if err != nil {
146431		return nil, err
146432	}
146433	req.Header = reqHeaders
146434	googleapi.Expand(req.URL, map[string]string{
146435		"project":     c.project,
146436		"zone":        c.zone,
146437		"reservation": c.reservation,
146438	})
146439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146440}
146441
146442// Do executes the "compute.reservations.delete" call.
146443// Exactly one of *Operation or error will be non-nil. Any non-2xx
146444// status code is an error. Response headers are in either
146445// *Operation.ServerResponse.Header or (if a response was returned at
146446// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146447// to check whether the returned error was because
146448// http.StatusNotModified was returned.
146449func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146450	gensupport.SetOptions(c.urlParams_, opts...)
146451	res, err := c.doRequest("json")
146452	if res != nil && res.StatusCode == http.StatusNotModified {
146453		if res.Body != nil {
146454			res.Body.Close()
146455		}
146456		return nil, &googleapi.Error{
146457			Code:   res.StatusCode,
146458			Header: res.Header,
146459		}
146460	}
146461	if err != nil {
146462		return nil, err
146463	}
146464	defer googleapi.CloseBody(res)
146465	if err := googleapi.CheckResponse(res); err != nil {
146466		return nil, err
146467	}
146468	ret := &Operation{
146469		ServerResponse: googleapi.ServerResponse{
146470			Header:         res.Header,
146471			HTTPStatusCode: res.StatusCode,
146472		},
146473	}
146474	target := &ret
146475	if err := gensupport.DecodeResponse(target, res); err != nil {
146476		return nil, err
146477	}
146478	return ret, nil
146479	// {
146480	//   "description": "Deletes the specified reservation.",
146481	//   "httpMethod": "DELETE",
146482	//   "id": "compute.reservations.delete",
146483	//   "parameterOrder": [
146484	//     "project",
146485	//     "zone",
146486	//     "reservation"
146487	//   ],
146488	//   "parameters": {
146489	//     "project": {
146490	//       "description": "Project ID for this request.",
146491	//       "location": "path",
146492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146493	//       "required": true,
146494	//       "type": "string"
146495	//     },
146496	//     "requestId": {
146497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146498	//       "location": "query",
146499	//       "type": "string"
146500	//     },
146501	//     "reservation": {
146502	//       "description": "Name of the reservation to delete.",
146503	//       "location": "path",
146504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146505	//       "required": true,
146506	//       "type": "string"
146507	//     },
146508	//     "zone": {
146509	//       "description": "Name of the zone for this request.",
146510	//       "location": "path",
146511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146512	//       "required": true,
146513	//       "type": "string"
146514	//     }
146515	//   },
146516	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
146517	//   "response": {
146518	//     "$ref": "Operation"
146519	//   },
146520	//   "scopes": [
146521	//     "https://www.googleapis.com/auth/cloud-platform",
146522	//     "https://www.googleapis.com/auth/compute"
146523	//   ]
146524	// }
146525
146526}
146527
146528// method id "compute.reservations.get":
146529
146530type ReservationsGetCall struct {
146531	s            *Service
146532	project      string
146533	zone         string
146534	reservation  string
146535	urlParams_   gensupport.URLParams
146536	ifNoneMatch_ string
146537	ctx_         context.Context
146538	header_      http.Header
146539}
146540
146541// Get: Retrieves information about the specified reservation.
146542func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
146543	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146544	c.project = project
146545	c.zone = zone
146546	c.reservation = reservation
146547	return c
146548}
146549
146550// Fields allows partial responses to be retrieved. See
146551// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146552// for more information.
146553func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
146554	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146555	return c
146556}
146557
146558// IfNoneMatch sets the optional parameter which makes the operation
146559// fail if the object's ETag matches the given value. This is useful for
146560// getting updates only after the object has changed since the last
146561// request. Use googleapi.IsNotModified to check whether the response
146562// error from Do is the result of In-None-Match.
146563func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
146564	c.ifNoneMatch_ = entityTag
146565	return c
146566}
146567
146568// Context sets the context to be used in this call's Do method. Any
146569// pending HTTP request will be aborted if the provided context is
146570// canceled.
146571func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
146572	c.ctx_ = ctx
146573	return c
146574}
146575
146576// Header returns an http.Header that can be modified by the caller to
146577// add HTTP headers to the request.
146578func (c *ReservationsGetCall) Header() http.Header {
146579	if c.header_ == nil {
146580		c.header_ = make(http.Header)
146581	}
146582	return c.header_
146583}
146584
146585func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
146586	reqHeaders := make(http.Header)
146587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
146588	for k, v := range c.header_ {
146589		reqHeaders[k] = v
146590	}
146591	reqHeaders.Set("User-Agent", c.s.userAgent())
146592	if c.ifNoneMatch_ != "" {
146593		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146594	}
146595	var body io.Reader = nil
146596	c.urlParams_.Set("alt", alt)
146597	c.urlParams_.Set("prettyPrint", "false")
146598	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
146599	urls += "?" + c.urlParams_.Encode()
146600	req, err := http.NewRequest("GET", urls, body)
146601	if err != nil {
146602		return nil, err
146603	}
146604	req.Header = reqHeaders
146605	googleapi.Expand(req.URL, map[string]string{
146606		"project":     c.project,
146607		"zone":        c.zone,
146608		"reservation": c.reservation,
146609	})
146610	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146611}
146612
146613// Do executes the "compute.reservations.get" call.
146614// Exactly one of *Reservation or error will be non-nil. Any non-2xx
146615// status code is an error. Response headers are in either
146616// *Reservation.ServerResponse.Header or (if a response was returned at
146617// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146618// to check whether the returned error was because
146619// http.StatusNotModified was returned.
146620func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
146621	gensupport.SetOptions(c.urlParams_, opts...)
146622	res, err := c.doRequest("json")
146623	if res != nil && res.StatusCode == http.StatusNotModified {
146624		if res.Body != nil {
146625			res.Body.Close()
146626		}
146627		return nil, &googleapi.Error{
146628			Code:   res.StatusCode,
146629			Header: res.Header,
146630		}
146631	}
146632	if err != nil {
146633		return nil, err
146634	}
146635	defer googleapi.CloseBody(res)
146636	if err := googleapi.CheckResponse(res); err != nil {
146637		return nil, err
146638	}
146639	ret := &Reservation{
146640		ServerResponse: googleapi.ServerResponse{
146641			Header:         res.Header,
146642			HTTPStatusCode: res.StatusCode,
146643		},
146644	}
146645	target := &ret
146646	if err := gensupport.DecodeResponse(target, res); err != nil {
146647		return nil, err
146648	}
146649	return ret, nil
146650	// {
146651	//   "description": "Retrieves information about the specified reservation.",
146652	//   "httpMethod": "GET",
146653	//   "id": "compute.reservations.get",
146654	//   "parameterOrder": [
146655	//     "project",
146656	//     "zone",
146657	//     "reservation"
146658	//   ],
146659	//   "parameters": {
146660	//     "project": {
146661	//       "description": "Project ID for this request.",
146662	//       "location": "path",
146663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146664	//       "required": true,
146665	//       "type": "string"
146666	//     },
146667	//     "reservation": {
146668	//       "description": "Name of the reservation to retrieve.",
146669	//       "location": "path",
146670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146671	//       "required": true,
146672	//       "type": "string"
146673	//     },
146674	//     "zone": {
146675	//       "description": "Name of the zone for this request.",
146676	//       "location": "path",
146677	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146678	//       "required": true,
146679	//       "type": "string"
146680	//     }
146681	//   },
146682	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
146683	//   "response": {
146684	//     "$ref": "Reservation"
146685	//   },
146686	//   "scopes": [
146687	//     "https://www.googleapis.com/auth/cloud-platform",
146688	//     "https://www.googleapis.com/auth/compute",
146689	//     "https://www.googleapis.com/auth/compute.readonly"
146690	//   ]
146691	// }
146692
146693}
146694
146695// method id "compute.reservations.getIamPolicy":
146696
146697type ReservationsGetIamPolicyCall struct {
146698	s            *Service
146699	project      string
146700	zone         string
146701	resource     string
146702	urlParams_   gensupport.URLParams
146703	ifNoneMatch_ string
146704	ctx_         context.Context
146705	header_      http.Header
146706}
146707
146708// GetIamPolicy: Gets the access control policy for a resource. May be
146709// empty if no such policy or resource exists.
146710func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
146711	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146712	c.project = project
146713	c.zone = zone
146714	c.resource = resource
146715	return c
146716}
146717
146718// OptionsRequestedPolicyVersion sets the optional parameter
146719// "optionsRequestedPolicyVersion": Requested IAM Policy version.
146720func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
146721	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
146722	return c
146723}
146724
146725// Fields allows partial responses to be retrieved. See
146726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146727// for more information.
146728func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
146729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146730	return c
146731}
146732
146733// IfNoneMatch sets the optional parameter which makes the operation
146734// fail if the object's ETag matches the given value. This is useful for
146735// getting updates only after the object has changed since the last
146736// request. Use googleapi.IsNotModified to check whether the response
146737// error from Do is the result of In-None-Match.
146738func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
146739	c.ifNoneMatch_ = entityTag
146740	return c
146741}
146742
146743// Context sets the context to be used in this call's Do method. Any
146744// pending HTTP request will be aborted if the provided context is
146745// canceled.
146746func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
146747	c.ctx_ = ctx
146748	return c
146749}
146750
146751// Header returns an http.Header that can be modified by the caller to
146752// add HTTP headers to the request.
146753func (c *ReservationsGetIamPolicyCall) Header() http.Header {
146754	if c.header_ == nil {
146755		c.header_ = make(http.Header)
146756	}
146757	return c.header_
146758}
146759
146760func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
146761	reqHeaders := make(http.Header)
146762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
146763	for k, v := range c.header_ {
146764		reqHeaders[k] = v
146765	}
146766	reqHeaders.Set("User-Agent", c.s.userAgent())
146767	if c.ifNoneMatch_ != "" {
146768		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146769	}
146770	var body io.Reader = nil
146771	c.urlParams_.Set("alt", alt)
146772	c.urlParams_.Set("prettyPrint", "false")
146773	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
146774	urls += "?" + c.urlParams_.Encode()
146775	req, err := http.NewRequest("GET", urls, body)
146776	if err != nil {
146777		return nil, err
146778	}
146779	req.Header = reqHeaders
146780	googleapi.Expand(req.URL, map[string]string{
146781		"project":  c.project,
146782		"zone":     c.zone,
146783		"resource": c.resource,
146784	})
146785	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146786}
146787
146788// Do executes the "compute.reservations.getIamPolicy" call.
146789// Exactly one of *Policy or error will be non-nil. Any non-2xx status
146790// code is an error. Response headers are in either
146791// *Policy.ServerResponse.Header or (if a response was returned at all)
146792// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146793// check whether the returned error was because http.StatusNotModified
146794// was returned.
146795func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
146796	gensupport.SetOptions(c.urlParams_, opts...)
146797	res, err := c.doRequest("json")
146798	if res != nil && res.StatusCode == http.StatusNotModified {
146799		if res.Body != nil {
146800			res.Body.Close()
146801		}
146802		return nil, &googleapi.Error{
146803			Code:   res.StatusCode,
146804			Header: res.Header,
146805		}
146806	}
146807	if err != nil {
146808		return nil, err
146809	}
146810	defer googleapi.CloseBody(res)
146811	if err := googleapi.CheckResponse(res); err != nil {
146812		return nil, err
146813	}
146814	ret := &Policy{
146815		ServerResponse: googleapi.ServerResponse{
146816			Header:         res.Header,
146817			HTTPStatusCode: res.StatusCode,
146818		},
146819	}
146820	target := &ret
146821	if err := gensupport.DecodeResponse(target, res); err != nil {
146822		return nil, err
146823	}
146824	return ret, nil
146825	// {
146826	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
146827	//   "httpMethod": "GET",
146828	//   "id": "compute.reservations.getIamPolicy",
146829	//   "parameterOrder": [
146830	//     "project",
146831	//     "zone",
146832	//     "resource"
146833	//   ],
146834	//   "parameters": {
146835	//     "optionsRequestedPolicyVersion": {
146836	//       "description": "Requested IAM Policy version.",
146837	//       "format": "int32",
146838	//       "location": "query",
146839	//       "type": "integer"
146840	//     },
146841	//     "project": {
146842	//       "description": "Project ID for this request.",
146843	//       "location": "path",
146844	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146845	//       "required": true,
146846	//       "type": "string"
146847	//     },
146848	//     "resource": {
146849	//       "description": "Name or id of the resource for this request.",
146850	//       "location": "path",
146851	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146852	//       "required": true,
146853	//       "type": "string"
146854	//     },
146855	//     "zone": {
146856	//       "description": "The name of the zone for this request.",
146857	//       "location": "path",
146858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146859	//       "required": true,
146860	//       "type": "string"
146861	//     }
146862	//   },
146863	//   "path": "{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
146864	//   "response": {
146865	//     "$ref": "Policy"
146866	//   },
146867	//   "scopes": [
146868	//     "https://www.googleapis.com/auth/cloud-platform",
146869	//     "https://www.googleapis.com/auth/compute",
146870	//     "https://www.googleapis.com/auth/compute.readonly"
146871	//   ]
146872	// }
146873
146874}
146875
146876// method id "compute.reservations.insert":
146877
146878type ReservationsInsertCall struct {
146879	s           *Service
146880	project     string
146881	zone        string
146882	reservation *Reservation
146883	urlParams_  gensupport.URLParams
146884	ctx_        context.Context
146885	header_     http.Header
146886}
146887
146888// Insert: Creates a new reservation. For more information, read
146889// Reserving zonal resources.
146890func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
146891	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146892	c.project = project
146893	c.zone = zone
146894	c.reservation = reservation
146895	return c
146896}
146897
146898// RequestId sets the optional parameter "requestId": An optional
146899// request ID to identify requests. Specify a unique request ID so that
146900// if you must retry your request, the server will know to ignore the
146901// request if it has already been completed.
146902//
146903// For example, consider a situation where you make an initial request
146904// and the request times out. If you make the request again with the
146905// same request ID, the server can check if original operation with the
146906// same request ID was received, and if so, will ignore the second
146907// request. This prevents clients from accidentally creating duplicate
146908// commitments.
146909//
146910// The request ID must be a valid UUID with the exception that zero UUID
146911// is not supported (00000000-0000-0000-0000-000000000000).
146912func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
146913	c.urlParams_.Set("requestId", requestId)
146914	return c
146915}
146916
146917// Fields allows partial responses to be retrieved. See
146918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146919// for more information.
146920func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
146921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146922	return c
146923}
146924
146925// Context sets the context to be used in this call's Do method. Any
146926// pending HTTP request will be aborted if the provided context is
146927// canceled.
146928func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
146929	c.ctx_ = ctx
146930	return c
146931}
146932
146933// Header returns an http.Header that can be modified by the caller to
146934// add HTTP headers to the request.
146935func (c *ReservationsInsertCall) Header() http.Header {
146936	if c.header_ == nil {
146937		c.header_ = make(http.Header)
146938	}
146939	return c.header_
146940}
146941
146942func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
146943	reqHeaders := make(http.Header)
146944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
146945	for k, v := range c.header_ {
146946		reqHeaders[k] = v
146947	}
146948	reqHeaders.Set("User-Agent", c.s.userAgent())
146949	var body io.Reader = nil
146950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
146951	if err != nil {
146952		return nil, err
146953	}
146954	reqHeaders.Set("Content-Type", "application/json")
146955	c.urlParams_.Set("alt", alt)
146956	c.urlParams_.Set("prettyPrint", "false")
146957	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
146958	urls += "?" + c.urlParams_.Encode()
146959	req, err := http.NewRequest("POST", urls, body)
146960	if err != nil {
146961		return nil, err
146962	}
146963	req.Header = reqHeaders
146964	googleapi.Expand(req.URL, map[string]string{
146965		"project": c.project,
146966		"zone":    c.zone,
146967	})
146968	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146969}
146970
146971// Do executes the "compute.reservations.insert" call.
146972// Exactly one of *Operation or error will be non-nil. Any non-2xx
146973// status code is an error. Response headers are in either
146974// *Operation.ServerResponse.Header or (if a response was returned at
146975// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146976// to check whether the returned error was because
146977// http.StatusNotModified was returned.
146978func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146979	gensupport.SetOptions(c.urlParams_, opts...)
146980	res, err := c.doRequest("json")
146981	if res != nil && res.StatusCode == http.StatusNotModified {
146982		if res.Body != nil {
146983			res.Body.Close()
146984		}
146985		return nil, &googleapi.Error{
146986			Code:   res.StatusCode,
146987			Header: res.Header,
146988		}
146989	}
146990	if err != nil {
146991		return nil, err
146992	}
146993	defer googleapi.CloseBody(res)
146994	if err := googleapi.CheckResponse(res); err != nil {
146995		return nil, err
146996	}
146997	ret := &Operation{
146998		ServerResponse: googleapi.ServerResponse{
146999			Header:         res.Header,
147000			HTTPStatusCode: res.StatusCode,
147001		},
147002	}
147003	target := &ret
147004	if err := gensupport.DecodeResponse(target, res); err != nil {
147005		return nil, err
147006	}
147007	return ret, nil
147008	// {
147009	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
147010	//   "httpMethod": "POST",
147011	//   "id": "compute.reservations.insert",
147012	//   "parameterOrder": [
147013	//     "project",
147014	//     "zone"
147015	//   ],
147016	//   "parameters": {
147017	//     "project": {
147018	//       "description": "Project ID for this request.",
147019	//       "location": "path",
147020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147021	//       "required": true,
147022	//       "type": "string"
147023	//     },
147024	//     "requestId": {
147025	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147026	//       "location": "query",
147027	//       "type": "string"
147028	//     },
147029	//     "zone": {
147030	//       "description": "Name of the zone for this request.",
147031	//       "location": "path",
147032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147033	//       "required": true,
147034	//       "type": "string"
147035	//     }
147036	//   },
147037	//   "path": "{project}/zones/{zone}/reservations",
147038	//   "request": {
147039	//     "$ref": "Reservation"
147040	//   },
147041	//   "response": {
147042	//     "$ref": "Operation"
147043	//   },
147044	//   "scopes": [
147045	//     "https://www.googleapis.com/auth/cloud-platform",
147046	//     "https://www.googleapis.com/auth/compute"
147047	//   ]
147048	// }
147049
147050}
147051
147052// method id "compute.reservations.list":
147053
147054type ReservationsListCall struct {
147055	s            *Service
147056	project      string
147057	zone         string
147058	urlParams_   gensupport.URLParams
147059	ifNoneMatch_ string
147060	ctx_         context.Context
147061	header_      http.Header
147062}
147063
147064// List: A list of all the reservations that have been configured for
147065// the specified project in specified zone.
147066func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
147067	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147068	c.project = project
147069	c.zone = zone
147070	return c
147071}
147072
147073// Filter sets the optional parameter "filter": A filter expression that
147074// filters resources listed in the response. The expression must specify
147075// the field name, a comparison operator, and the value that you want to
147076// use for filtering. The value must be a string, a number, or a
147077// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147078// `<`.
147079//
147080// For example, if you are filtering Compute Engine instances, you can
147081// exclude instances named `example-instance` by specifying `name !=
147082// example-instance`.
147083//
147084// You can also filter nested fields. For example, you could specify
147085// `scheduling.automaticRestart = false` to include instances only if
147086// they are not scheduled for automatic restarts. You can use filtering
147087// on nested fields to filter based on resource labels.
147088//
147089// To filter on multiple expressions, provide each separate expression
147090// within parentheses. For example: ``` (scheduling.automaticRestart =
147091// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
147092// is an `AND` expression. However, you can include `AND` and `OR`
147093// expressions explicitly. For example: ``` (cpuPlatform = "Intel
147094// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
147095// (scheduling.automaticRestart = true) ```
147096func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
147097	c.urlParams_.Set("filter", filter)
147098	return c
147099}
147100
147101// MaxResults sets the optional parameter "maxResults": The maximum
147102// number of results per page that should be returned. If the number of
147103// available results is larger than `maxResults`, Compute Engine returns
147104// a `nextPageToken` that can be used to get the next page of results in
147105// subsequent list requests. Acceptable values are `0` to `500`,
147106// inclusive. (Default: `500`)
147107func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
147108	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147109	return c
147110}
147111
147112// OrderBy sets the optional parameter "orderBy": Sorts list results by
147113// a certain order. By default, results are returned in alphanumerical
147114// order based on the resource name.
147115//
147116// You can also sort results in descending order based on the creation
147117// timestamp using `orderBy="creationTimestamp desc". This sorts
147118// results based on the `creationTimestamp` field in reverse
147119// chronological order (newest result first). Use this to sort resources
147120// like operations so that the newest operation is returned
147121// first.
147122//
147123// Currently, only sorting by `name` or `creationTimestamp desc` is
147124// supported.
147125func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
147126	c.urlParams_.Set("orderBy", orderBy)
147127	return c
147128}
147129
147130// PageToken sets the optional parameter "pageToken": Specifies a page
147131// token to use. Set `pageToken` to the `nextPageToken` returned by a
147132// previous list request to get the next page of results.
147133func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
147134	c.urlParams_.Set("pageToken", pageToken)
147135	return c
147136}
147137
147138// ReturnPartialSuccess sets the optional parameter
147139// "returnPartialSuccess": Opt-in for partial success behavior which
147140// provides partial results in case of failure. The default value is
147141// false and the logic is the same as today.
147142func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall {
147143	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147144	return c
147145}
147146
147147// Fields allows partial responses to be retrieved. See
147148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147149// for more information.
147150func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
147151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147152	return c
147153}
147154
147155// IfNoneMatch sets the optional parameter which makes the operation
147156// fail if the object's ETag matches the given value. This is useful for
147157// getting updates only after the object has changed since the last
147158// request. Use googleapi.IsNotModified to check whether the response
147159// error from Do is the result of In-None-Match.
147160func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
147161	c.ifNoneMatch_ = entityTag
147162	return c
147163}
147164
147165// Context sets the context to be used in this call's Do method. Any
147166// pending HTTP request will be aborted if the provided context is
147167// canceled.
147168func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
147169	c.ctx_ = ctx
147170	return c
147171}
147172
147173// Header returns an http.Header that can be modified by the caller to
147174// add HTTP headers to the request.
147175func (c *ReservationsListCall) Header() http.Header {
147176	if c.header_ == nil {
147177		c.header_ = make(http.Header)
147178	}
147179	return c.header_
147180}
147181
147182func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
147183	reqHeaders := make(http.Header)
147184	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
147185	for k, v := range c.header_ {
147186		reqHeaders[k] = v
147187	}
147188	reqHeaders.Set("User-Agent", c.s.userAgent())
147189	if c.ifNoneMatch_ != "" {
147190		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147191	}
147192	var body io.Reader = nil
147193	c.urlParams_.Set("alt", alt)
147194	c.urlParams_.Set("prettyPrint", "false")
147195	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
147196	urls += "?" + c.urlParams_.Encode()
147197	req, err := http.NewRequest("GET", urls, body)
147198	if err != nil {
147199		return nil, err
147200	}
147201	req.Header = reqHeaders
147202	googleapi.Expand(req.URL, map[string]string{
147203		"project": c.project,
147204		"zone":    c.zone,
147205	})
147206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147207}
147208
147209// Do executes the "compute.reservations.list" call.
147210// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
147211// status code is an error. Response headers are in either
147212// *ReservationList.ServerResponse.Header or (if a response was returned
147213// at all) in error.(*googleapi.Error).Header. Use
147214// googleapi.IsNotModified to check whether the returned error was
147215// because http.StatusNotModified was returned.
147216func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
147217	gensupport.SetOptions(c.urlParams_, opts...)
147218	res, err := c.doRequest("json")
147219	if res != nil && res.StatusCode == http.StatusNotModified {
147220		if res.Body != nil {
147221			res.Body.Close()
147222		}
147223		return nil, &googleapi.Error{
147224			Code:   res.StatusCode,
147225			Header: res.Header,
147226		}
147227	}
147228	if err != nil {
147229		return nil, err
147230	}
147231	defer googleapi.CloseBody(res)
147232	if err := googleapi.CheckResponse(res); err != nil {
147233		return nil, err
147234	}
147235	ret := &ReservationList{
147236		ServerResponse: googleapi.ServerResponse{
147237			Header:         res.Header,
147238			HTTPStatusCode: res.StatusCode,
147239		},
147240	}
147241	target := &ret
147242	if err := gensupport.DecodeResponse(target, res); err != nil {
147243		return nil, err
147244	}
147245	return ret, nil
147246	// {
147247	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
147248	//   "httpMethod": "GET",
147249	//   "id": "compute.reservations.list",
147250	//   "parameterOrder": [
147251	//     "project",
147252	//     "zone"
147253	//   ],
147254	//   "parameters": {
147255	//     "filter": {
147256	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
147257	//       "location": "query",
147258	//       "type": "string"
147259	//     },
147260	//     "maxResults": {
147261	//       "default": "500",
147262	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147263	//       "format": "uint32",
147264	//       "location": "query",
147265	//       "minimum": "0",
147266	//       "type": "integer"
147267	//     },
147268	//     "orderBy": {
147269	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
147270	//       "location": "query",
147271	//       "type": "string"
147272	//     },
147273	//     "pageToken": {
147274	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147275	//       "location": "query",
147276	//       "type": "string"
147277	//     },
147278	//     "project": {
147279	//       "description": "Project ID for this request.",
147280	//       "location": "path",
147281	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147282	//       "required": true,
147283	//       "type": "string"
147284	//     },
147285	//     "returnPartialSuccess": {
147286	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
147287	//       "location": "query",
147288	//       "type": "boolean"
147289	//     },
147290	//     "zone": {
147291	//       "description": "Name of the zone for this request.",
147292	//       "location": "path",
147293	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147294	//       "required": true,
147295	//       "type": "string"
147296	//     }
147297	//   },
147298	//   "path": "{project}/zones/{zone}/reservations",
147299	//   "response": {
147300	//     "$ref": "ReservationList"
147301	//   },
147302	//   "scopes": [
147303	//     "https://www.googleapis.com/auth/cloud-platform",
147304	//     "https://www.googleapis.com/auth/compute",
147305	//     "https://www.googleapis.com/auth/compute.readonly"
147306	//   ]
147307	// }
147308
147309}
147310
147311// Pages invokes f for each page of results.
147312// A non-nil error returned from f will halt the iteration.
147313// The provided context supersedes any context provided to the Context method.
147314func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
147315	c.ctx_ = ctx
147316	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147317	for {
147318		x, err := c.Do()
147319		if err != nil {
147320			return err
147321		}
147322		if err := f(x); err != nil {
147323			return err
147324		}
147325		if x.NextPageToken == "" {
147326			return nil
147327		}
147328		c.PageToken(x.NextPageToken)
147329	}
147330}
147331
147332// method id "compute.reservations.resize":
147333
147334type ReservationsResizeCall struct {
147335	s                         *Service
147336	project                   string
147337	zone                      string
147338	reservation               string
147339	reservationsresizerequest *ReservationsResizeRequest
147340	urlParams_                gensupport.URLParams
147341	ctx_                      context.Context
147342	header_                   http.Header
147343}
147344
147345// Resize: Resizes the reservation (applicable to standalone
147346// reservations only). For more information, read Modifying
147347// reservations.
147348func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
147349	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147350	c.project = project
147351	c.zone = zone
147352	c.reservation = reservation
147353	c.reservationsresizerequest = reservationsresizerequest
147354	return c
147355}
147356
147357// RequestId sets the optional parameter "requestId": An optional
147358// request ID to identify requests. Specify a unique request ID so that
147359// if you must retry your request, the server will know to ignore the
147360// request if it has already been completed.
147361//
147362// For example, consider a situation where you make an initial request
147363// and the request times out. If you make the request again with the
147364// same request ID, the server can check if original operation with the
147365// same request ID was received, and if so, will ignore the second
147366// request. This prevents clients from accidentally creating duplicate
147367// commitments.
147368//
147369// The request ID must be a valid UUID with the exception that zero UUID
147370// is not supported (00000000-0000-0000-0000-000000000000).
147371func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
147372	c.urlParams_.Set("requestId", requestId)
147373	return c
147374}
147375
147376// Fields allows partial responses to be retrieved. See
147377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147378// for more information.
147379func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
147380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147381	return c
147382}
147383
147384// Context sets the context to be used in this call's Do method. Any
147385// pending HTTP request will be aborted if the provided context is
147386// canceled.
147387func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
147388	c.ctx_ = ctx
147389	return c
147390}
147391
147392// Header returns an http.Header that can be modified by the caller to
147393// add HTTP headers to the request.
147394func (c *ReservationsResizeCall) Header() http.Header {
147395	if c.header_ == nil {
147396		c.header_ = make(http.Header)
147397	}
147398	return c.header_
147399}
147400
147401func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
147402	reqHeaders := make(http.Header)
147403	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
147404	for k, v := range c.header_ {
147405		reqHeaders[k] = v
147406	}
147407	reqHeaders.Set("User-Agent", c.s.userAgent())
147408	var body io.Reader = nil
147409	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
147410	if err != nil {
147411		return nil, err
147412	}
147413	reqHeaders.Set("Content-Type", "application/json")
147414	c.urlParams_.Set("alt", alt)
147415	c.urlParams_.Set("prettyPrint", "false")
147416	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}/resize")
147417	urls += "?" + c.urlParams_.Encode()
147418	req, err := http.NewRequest("POST", urls, body)
147419	if err != nil {
147420		return nil, err
147421	}
147422	req.Header = reqHeaders
147423	googleapi.Expand(req.URL, map[string]string{
147424		"project":     c.project,
147425		"zone":        c.zone,
147426		"reservation": c.reservation,
147427	})
147428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147429}
147430
147431// Do executes the "compute.reservations.resize" call.
147432// Exactly one of *Operation or error will be non-nil. Any non-2xx
147433// status code is an error. Response headers are in either
147434// *Operation.ServerResponse.Header or (if a response was returned at
147435// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147436// to check whether the returned error was because
147437// http.StatusNotModified was returned.
147438func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147439	gensupport.SetOptions(c.urlParams_, opts...)
147440	res, err := c.doRequest("json")
147441	if res != nil && res.StatusCode == http.StatusNotModified {
147442		if res.Body != nil {
147443			res.Body.Close()
147444		}
147445		return nil, &googleapi.Error{
147446			Code:   res.StatusCode,
147447			Header: res.Header,
147448		}
147449	}
147450	if err != nil {
147451		return nil, err
147452	}
147453	defer googleapi.CloseBody(res)
147454	if err := googleapi.CheckResponse(res); err != nil {
147455		return nil, err
147456	}
147457	ret := &Operation{
147458		ServerResponse: googleapi.ServerResponse{
147459			Header:         res.Header,
147460			HTTPStatusCode: res.StatusCode,
147461		},
147462	}
147463	target := &ret
147464	if err := gensupport.DecodeResponse(target, res); err != nil {
147465		return nil, err
147466	}
147467	return ret, nil
147468	// {
147469	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
147470	//   "httpMethod": "POST",
147471	//   "id": "compute.reservations.resize",
147472	//   "parameterOrder": [
147473	//     "project",
147474	//     "zone",
147475	//     "reservation"
147476	//   ],
147477	//   "parameters": {
147478	//     "project": {
147479	//       "description": "Project ID for this request.",
147480	//       "location": "path",
147481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147482	//       "required": true,
147483	//       "type": "string"
147484	//     },
147485	//     "requestId": {
147486	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147487	//       "location": "query",
147488	//       "type": "string"
147489	//     },
147490	//     "reservation": {
147491	//       "description": "Name of the reservation to update.",
147492	//       "location": "path",
147493	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147494	//       "required": true,
147495	//       "type": "string"
147496	//     },
147497	//     "zone": {
147498	//       "description": "Name of the zone for this request.",
147499	//       "location": "path",
147500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147501	//       "required": true,
147502	//       "type": "string"
147503	//     }
147504	//   },
147505	//   "path": "{project}/zones/{zone}/reservations/{reservation}/resize",
147506	//   "request": {
147507	//     "$ref": "ReservationsResizeRequest"
147508	//   },
147509	//   "response": {
147510	//     "$ref": "Operation"
147511	//   },
147512	//   "scopes": [
147513	//     "https://www.googleapis.com/auth/cloud-platform",
147514	//     "https://www.googleapis.com/auth/compute"
147515	//   ]
147516	// }
147517
147518}
147519
147520// method id "compute.reservations.setIamPolicy":
147521
147522type ReservationsSetIamPolicyCall struct {
147523	s                    *Service
147524	project              string
147525	zone                 string
147526	resource             string
147527	zonesetpolicyrequest *ZoneSetPolicyRequest
147528	urlParams_           gensupport.URLParams
147529	ctx_                 context.Context
147530	header_              http.Header
147531}
147532
147533// SetIamPolicy: Sets the access control policy on the specified
147534// resource. Replaces any existing policy.
147535func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
147536	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147537	c.project = project
147538	c.zone = zone
147539	c.resource = resource
147540	c.zonesetpolicyrequest = zonesetpolicyrequest
147541	return c
147542}
147543
147544// Fields allows partial responses to be retrieved. See
147545// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147546// for more information.
147547func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
147548	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147549	return c
147550}
147551
147552// Context sets the context to be used in this call's Do method. Any
147553// pending HTTP request will be aborted if the provided context is
147554// canceled.
147555func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
147556	c.ctx_ = ctx
147557	return c
147558}
147559
147560// Header returns an http.Header that can be modified by the caller to
147561// add HTTP headers to the request.
147562func (c *ReservationsSetIamPolicyCall) Header() http.Header {
147563	if c.header_ == nil {
147564		c.header_ = make(http.Header)
147565	}
147566	return c.header_
147567}
147568
147569func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
147570	reqHeaders := make(http.Header)
147571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
147572	for k, v := range c.header_ {
147573		reqHeaders[k] = v
147574	}
147575	reqHeaders.Set("User-Agent", c.s.userAgent())
147576	var body io.Reader = nil
147577	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
147578	if err != nil {
147579		return nil, err
147580	}
147581	reqHeaders.Set("Content-Type", "application/json")
147582	c.urlParams_.Set("alt", alt)
147583	c.urlParams_.Set("prettyPrint", "false")
147584	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
147585	urls += "?" + c.urlParams_.Encode()
147586	req, err := http.NewRequest("POST", urls, body)
147587	if err != nil {
147588		return nil, err
147589	}
147590	req.Header = reqHeaders
147591	googleapi.Expand(req.URL, map[string]string{
147592		"project":  c.project,
147593		"zone":     c.zone,
147594		"resource": c.resource,
147595	})
147596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147597}
147598
147599// Do executes the "compute.reservations.setIamPolicy" call.
147600// Exactly one of *Policy or error will be non-nil. Any non-2xx status
147601// code is an error. Response headers are in either
147602// *Policy.ServerResponse.Header or (if a response was returned at all)
147603// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
147604// check whether the returned error was because http.StatusNotModified
147605// was returned.
147606func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
147607	gensupport.SetOptions(c.urlParams_, opts...)
147608	res, err := c.doRequest("json")
147609	if res != nil && res.StatusCode == http.StatusNotModified {
147610		if res.Body != nil {
147611			res.Body.Close()
147612		}
147613		return nil, &googleapi.Error{
147614			Code:   res.StatusCode,
147615			Header: res.Header,
147616		}
147617	}
147618	if err != nil {
147619		return nil, err
147620	}
147621	defer googleapi.CloseBody(res)
147622	if err := googleapi.CheckResponse(res); err != nil {
147623		return nil, err
147624	}
147625	ret := &Policy{
147626		ServerResponse: googleapi.ServerResponse{
147627			Header:         res.Header,
147628			HTTPStatusCode: res.StatusCode,
147629		},
147630	}
147631	target := &ret
147632	if err := gensupport.DecodeResponse(target, res); err != nil {
147633		return nil, err
147634	}
147635	return ret, nil
147636	// {
147637	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
147638	//   "httpMethod": "POST",
147639	//   "id": "compute.reservations.setIamPolicy",
147640	//   "parameterOrder": [
147641	//     "project",
147642	//     "zone",
147643	//     "resource"
147644	//   ],
147645	//   "parameters": {
147646	//     "project": {
147647	//       "description": "Project ID for this request.",
147648	//       "location": "path",
147649	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147650	//       "required": true,
147651	//       "type": "string"
147652	//     },
147653	//     "resource": {
147654	//       "description": "Name or id of the resource for this request.",
147655	//       "location": "path",
147656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147657	//       "required": true,
147658	//       "type": "string"
147659	//     },
147660	//     "zone": {
147661	//       "description": "The name of the zone for this request.",
147662	//       "location": "path",
147663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147664	//       "required": true,
147665	//       "type": "string"
147666	//     }
147667	//   },
147668	//   "path": "{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
147669	//   "request": {
147670	//     "$ref": "ZoneSetPolicyRequest"
147671	//   },
147672	//   "response": {
147673	//     "$ref": "Policy"
147674	//   },
147675	//   "scopes": [
147676	//     "https://www.googleapis.com/auth/cloud-platform",
147677	//     "https://www.googleapis.com/auth/compute"
147678	//   ]
147679	// }
147680
147681}
147682
147683// method id "compute.reservations.testIamPermissions":
147684
147685type ReservationsTestIamPermissionsCall struct {
147686	s                      *Service
147687	project                string
147688	zone                   string
147689	resource               string
147690	testpermissionsrequest *TestPermissionsRequest
147691	urlParams_             gensupport.URLParams
147692	ctx_                   context.Context
147693	header_                http.Header
147694}
147695
147696// TestIamPermissions: Returns permissions that a caller has on the
147697// specified resource.
147698func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
147699	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147700	c.project = project
147701	c.zone = zone
147702	c.resource = resource
147703	c.testpermissionsrequest = testpermissionsrequest
147704	return c
147705}
147706
147707// Fields allows partial responses to be retrieved. See
147708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147709// for more information.
147710func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
147711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147712	return c
147713}
147714
147715// Context sets the context to be used in this call's Do method. Any
147716// pending HTTP request will be aborted if the provided context is
147717// canceled.
147718func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
147719	c.ctx_ = ctx
147720	return c
147721}
147722
147723// Header returns an http.Header that can be modified by the caller to
147724// add HTTP headers to the request.
147725func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
147726	if c.header_ == nil {
147727		c.header_ = make(http.Header)
147728	}
147729	return c.header_
147730}
147731
147732func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
147733	reqHeaders := make(http.Header)
147734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
147735	for k, v := range c.header_ {
147736		reqHeaders[k] = v
147737	}
147738	reqHeaders.Set("User-Agent", c.s.userAgent())
147739	var body io.Reader = nil
147740	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
147741	if err != nil {
147742		return nil, err
147743	}
147744	reqHeaders.Set("Content-Type", "application/json")
147745	c.urlParams_.Set("alt", alt)
147746	c.urlParams_.Set("prettyPrint", "false")
147747	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
147748	urls += "?" + c.urlParams_.Encode()
147749	req, err := http.NewRequest("POST", urls, body)
147750	if err != nil {
147751		return nil, err
147752	}
147753	req.Header = reqHeaders
147754	googleapi.Expand(req.URL, map[string]string{
147755		"project":  c.project,
147756		"zone":     c.zone,
147757		"resource": c.resource,
147758	})
147759	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147760}
147761
147762// Do executes the "compute.reservations.testIamPermissions" call.
147763// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147764// non-2xx status code is an error. Response headers are in either
147765// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147766// returned at all) in error.(*googleapi.Error).Header. Use
147767// googleapi.IsNotModified to check whether the returned error was
147768// because http.StatusNotModified was returned.
147769func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147770	gensupport.SetOptions(c.urlParams_, opts...)
147771	res, err := c.doRequest("json")
147772	if res != nil && res.StatusCode == http.StatusNotModified {
147773		if res.Body != nil {
147774			res.Body.Close()
147775		}
147776		return nil, &googleapi.Error{
147777			Code:   res.StatusCode,
147778			Header: res.Header,
147779		}
147780	}
147781	if err != nil {
147782		return nil, err
147783	}
147784	defer googleapi.CloseBody(res)
147785	if err := googleapi.CheckResponse(res); err != nil {
147786		return nil, err
147787	}
147788	ret := &TestPermissionsResponse{
147789		ServerResponse: googleapi.ServerResponse{
147790			Header:         res.Header,
147791			HTTPStatusCode: res.StatusCode,
147792		},
147793	}
147794	target := &ret
147795	if err := gensupport.DecodeResponse(target, res); err != nil {
147796		return nil, err
147797	}
147798	return ret, nil
147799	// {
147800	//   "description": "Returns permissions that a caller has on the specified resource.",
147801	//   "httpMethod": "POST",
147802	//   "id": "compute.reservations.testIamPermissions",
147803	//   "parameterOrder": [
147804	//     "project",
147805	//     "zone",
147806	//     "resource"
147807	//   ],
147808	//   "parameters": {
147809	//     "project": {
147810	//       "description": "Project ID for this request.",
147811	//       "location": "path",
147812	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147813	//       "required": true,
147814	//       "type": "string"
147815	//     },
147816	//     "resource": {
147817	//       "description": "Name or id of the resource for this request.",
147818	//       "location": "path",
147819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147820	//       "required": true,
147821	//       "type": "string"
147822	//     },
147823	//     "zone": {
147824	//       "description": "The name of the zone for this request.",
147825	//       "location": "path",
147826	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147827	//       "required": true,
147828	//       "type": "string"
147829	//     }
147830	//   },
147831	//   "path": "{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
147832	//   "request": {
147833	//     "$ref": "TestPermissionsRequest"
147834	//   },
147835	//   "response": {
147836	//     "$ref": "TestPermissionsResponse"
147837	//   },
147838	//   "scopes": [
147839	//     "https://www.googleapis.com/auth/cloud-platform",
147840	//     "https://www.googleapis.com/auth/compute",
147841	//     "https://www.googleapis.com/auth/compute.readonly"
147842	//   ]
147843	// }
147844
147845}
147846
147847// method id "compute.resourcePolicies.aggregatedList":
147848
147849type ResourcePoliciesAggregatedListCall struct {
147850	s            *Service
147851	project      string
147852	urlParams_   gensupport.URLParams
147853	ifNoneMatch_ string
147854	ctx_         context.Context
147855	header_      http.Header
147856}
147857
147858// AggregatedList: Retrieves an aggregated list of resource policies.
147859func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
147860	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147861	c.project = project
147862	return c
147863}
147864
147865// Filter sets the optional parameter "filter": A filter expression that
147866// filters resources listed in the response. The expression must specify
147867// the field name, a comparison operator, and the value that you want to
147868// use for filtering. The value must be a string, a number, or a
147869// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147870// `<`.
147871//
147872// For example, if you are filtering Compute Engine instances, you can
147873// exclude instances named `example-instance` by specifying `name !=
147874// example-instance`.
147875//
147876// You can also filter nested fields. For example, you could specify
147877// `scheduling.automaticRestart = false` to include instances only if
147878// they are not scheduled for automatic restarts. You can use filtering
147879// on nested fields to filter based on resource labels.
147880//
147881// To filter on multiple expressions, provide each separate expression
147882// within parentheses. For example: ``` (scheduling.automaticRestart =
147883// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
147884// is an `AND` expression. However, you can include `AND` and `OR`
147885// expressions explicitly. For example: ``` (cpuPlatform = "Intel
147886// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
147887// (scheduling.automaticRestart = true) ```
147888func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
147889	c.urlParams_.Set("filter", filter)
147890	return c
147891}
147892
147893// IncludeAllScopes sets the optional parameter "includeAllScopes":
147894// Indicates whether every visible scope for each scope type (zone,
147895// region, global) should be included in the response. For new resource
147896// types added after this field, the flag has no effect as new resource
147897// types will always include every visible scope for each scope type in
147898// response. For resource types which predate this field, if this flag
147899// is omitted or false, only scopes of the scope types where the
147900// resource type is expected to be found will be included.
147901func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
147902	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
147903	return c
147904}
147905
147906// MaxResults sets the optional parameter "maxResults": The maximum
147907// number of results per page that should be returned. If the number of
147908// available results is larger than `maxResults`, Compute Engine returns
147909// a `nextPageToken` that can be used to get the next page of results in
147910// subsequent list requests. Acceptable values are `0` to `500`,
147911// inclusive. (Default: `500`)
147912func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
147913	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147914	return c
147915}
147916
147917// OrderBy sets the optional parameter "orderBy": Sorts list results by
147918// a certain order. By default, results are returned in alphanumerical
147919// order based on the resource name.
147920//
147921// You can also sort results in descending order based on the creation
147922// timestamp using `orderBy="creationTimestamp desc". This sorts
147923// results based on the `creationTimestamp` field in reverse
147924// chronological order (newest result first). Use this to sort resources
147925// like operations so that the newest operation is returned
147926// first.
147927//
147928// Currently, only sorting by `name` or `creationTimestamp desc` is
147929// supported.
147930func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
147931	c.urlParams_.Set("orderBy", orderBy)
147932	return c
147933}
147934
147935// PageToken sets the optional parameter "pageToken": Specifies a page
147936// token to use. Set `pageToken` to the `nextPageToken` returned by a
147937// previous list request to get the next page of results.
147938func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
147939	c.urlParams_.Set("pageToken", pageToken)
147940	return c
147941}
147942
147943// ReturnPartialSuccess sets the optional parameter
147944// "returnPartialSuccess": Opt-in for partial success behavior which
147945// provides partial results in case of failure. The default value is
147946// false and the logic is the same as today.
147947func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall {
147948	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147949	return c
147950}
147951
147952// Fields allows partial responses to be retrieved. See
147953// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147954// for more information.
147955func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
147956	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147957	return c
147958}
147959
147960// IfNoneMatch sets the optional parameter which makes the operation
147961// fail if the object's ETag matches the given value. This is useful for
147962// getting updates only after the object has changed since the last
147963// request. Use googleapi.IsNotModified to check whether the response
147964// error from Do is the result of In-None-Match.
147965func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
147966	c.ifNoneMatch_ = entityTag
147967	return c
147968}
147969
147970// Context sets the context to be used in this call's Do method. Any
147971// pending HTTP request will be aborted if the provided context is
147972// canceled.
147973func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
147974	c.ctx_ = ctx
147975	return c
147976}
147977
147978// Header returns an http.Header that can be modified by the caller to
147979// add HTTP headers to the request.
147980func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
147981	if c.header_ == nil {
147982		c.header_ = make(http.Header)
147983	}
147984	return c.header_
147985}
147986
147987func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
147988	reqHeaders := make(http.Header)
147989	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
147990	for k, v := range c.header_ {
147991		reqHeaders[k] = v
147992	}
147993	reqHeaders.Set("User-Agent", c.s.userAgent())
147994	if c.ifNoneMatch_ != "" {
147995		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147996	}
147997	var body io.Reader = nil
147998	c.urlParams_.Set("alt", alt)
147999	c.urlParams_.Set("prettyPrint", "false")
148000	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/resourcePolicies")
148001	urls += "?" + c.urlParams_.Encode()
148002	req, err := http.NewRequest("GET", urls, body)
148003	if err != nil {
148004		return nil, err
148005	}
148006	req.Header = reqHeaders
148007	googleapi.Expand(req.URL, map[string]string{
148008		"project": c.project,
148009	})
148010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148011}
148012
148013// Do executes the "compute.resourcePolicies.aggregatedList" call.
148014// Exactly one of *ResourcePolicyAggregatedList or error will be
148015// non-nil. Any non-2xx status code is an error. Response headers are in
148016// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
148017// response was returned at all) in error.(*googleapi.Error).Header. Use
148018// googleapi.IsNotModified to check whether the returned error was
148019// because http.StatusNotModified was returned.
148020func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
148021	gensupport.SetOptions(c.urlParams_, opts...)
148022	res, err := c.doRequest("json")
148023	if res != nil && res.StatusCode == http.StatusNotModified {
148024		if res.Body != nil {
148025			res.Body.Close()
148026		}
148027		return nil, &googleapi.Error{
148028			Code:   res.StatusCode,
148029			Header: res.Header,
148030		}
148031	}
148032	if err != nil {
148033		return nil, err
148034	}
148035	defer googleapi.CloseBody(res)
148036	if err := googleapi.CheckResponse(res); err != nil {
148037		return nil, err
148038	}
148039	ret := &ResourcePolicyAggregatedList{
148040		ServerResponse: googleapi.ServerResponse{
148041			Header:         res.Header,
148042			HTTPStatusCode: res.StatusCode,
148043		},
148044	}
148045	target := &ret
148046	if err := gensupport.DecodeResponse(target, res); err != nil {
148047		return nil, err
148048	}
148049	return ret, nil
148050	// {
148051	//   "description": "Retrieves an aggregated list of resource policies.",
148052	//   "httpMethod": "GET",
148053	//   "id": "compute.resourcePolicies.aggregatedList",
148054	//   "parameterOrder": [
148055	//     "project"
148056	//   ],
148057	//   "parameters": {
148058	//     "filter": {
148059	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
148060	//       "location": "query",
148061	//       "type": "string"
148062	//     },
148063	//     "includeAllScopes": {
148064	//       "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.",
148065	//       "location": "query",
148066	//       "type": "boolean"
148067	//     },
148068	//     "maxResults": {
148069	//       "default": "500",
148070	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148071	//       "format": "uint32",
148072	//       "location": "query",
148073	//       "minimum": "0",
148074	//       "type": "integer"
148075	//     },
148076	//     "orderBy": {
148077	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
148078	//       "location": "query",
148079	//       "type": "string"
148080	//     },
148081	//     "pageToken": {
148082	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148083	//       "location": "query",
148084	//       "type": "string"
148085	//     },
148086	//     "project": {
148087	//       "description": "Project ID for this request.",
148088	//       "location": "path",
148089	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148090	//       "required": true,
148091	//       "type": "string"
148092	//     },
148093	//     "returnPartialSuccess": {
148094	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
148095	//       "location": "query",
148096	//       "type": "boolean"
148097	//     }
148098	//   },
148099	//   "path": "{project}/aggregated/resourcePolicies",
148100	//   "response": {
148101	//     "$ref": "ResourcePolicyAggregatedList"
148102	//   },
148103	//   "scopes": [
148104	//     "https://www.googleapis.com/auth/cloud-platform",
148105	//     "https://www.googleapis.com/auth/compute",
148106	//     "https://www.googleapis.com/auth/compute.readonly"
148107	//   ]
148108	// }
148109
148110}
148111
148112// Pages invokes f for each page of results.
148113// A non-nil error returned from f will halt the iteration.
148114// The provided context supersedes any context provided to the Context method.
148115func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
148116	c.ctx_ = ctx
148117	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148118	for {
148119		x, err := c.Do()
148120		if err != nil {
148121			return err
148122		}
148123		if err := f(x); err != nil {
148124			return err
148125		}
148126		if x.NextPageToken == "" {
148127			return nil
148128		}
148129		c.PageToken(x.NextPageToken)
148130	}
148131}
148132
148133// method id "compute.resourcePolicies.delete":
148134
148135type ResourcePoliciesDeleteCall struct {
148136	s              *Service
148137	project        string
148138	region         string
148139	resourcePolicy string
148140	urlParams_     gensupport.URLParams
148141	ctx_           context.Context
148142	header_        http.Header
148143}
148144
148145// Delete: Deletes the specified resource policy.
148146func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
148147	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148148	c.project = project
148149	c.region = region
148150	c.resourcePolicy = resourcePolicy
148151	return c
148152}
148153
148154// RequestId sets the optional parameter "requestId": An optional
148155// request ID to identify requests. Specify a unique request ID so that
148156// if you must retry your request, the server will know to ignore the
148157// request if it has already been completed.
148158//
148159// For example, consider a situation where you make an initial request
148160// and the request times out. If you make the request again with the
148161// same request ID, the server can check if original operation with the
148162// same request ID was received, and if so, will ignore the second
148163// request. This prevents clients from accidentally creating duplicate
148164// commitments.
148165//
148166// The request ID must be a valid UUID with the exception that zero UUID
148167// is not supported (00000000-0000-0000-0000-000000000000).
148168func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
148169	c.urlParams_.Set("requestId", requestId)
148170	return c
148171}
148172
148173// Fields allows partial responses to be retrieved. See
148174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148175// for more information.
148176func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
148177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148178	return c
148179}
148180
148181// Context sets the context to be used in this call's Do method. Any
148182// pending HTTP request will be aborted if the provided context is
148183// canceled.
148184func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
148185	c.ctx_ = ctx
148186	return c
148187}
148188
148189// Header returns an http.Header that can be modified by the caller to
148190// add HTTP headers to the request.
148191func (c *ResourcePoliciesDeleteCall) Header() http.Header {
148192	if c.header_ == nil {
148193		c.header_ = make(http.Header)
148194	}
148195	return c.header_
148196}
148197
148198func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
148199	reqHeaders := make(http.Header)
148200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
148201	for k, v := range c.header_ {
148202		reqHeaders[k] = v
148203	}
148204	reqHeaders.Set("User-Agent", c.s.userAgent())
148205	var body io.Reader = nil
148206	c.urlParams_.Set("alt", alt)
148207	c.urlParams_.Set("prettyPrint", "false")
148208	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
148209	urls += "?" + c.urlParams_.Encode()
148210	req, err := http.NewRequest("DELETE", urls, body)
148211	if err != nil {
148212		return nil, err
148213	}
148214	req.Header = reqHeaders
148215	googleapi.Expand(req.URL, map[string]string{
148216		"project":        c.project,
148217		"region":         c.region,
148218		"resourcePolicy": c.resourcePolicy,
148219	})
148220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148221}
148222
148223// Do executes the "compute.resourcePolicies.delete" call.
148224// Exactly one of *Operation or error will be non-nil. Any non-2xx
148225// status code is an error. Response headers are in either
148226// *Operation.ServerResponse.Header or (if a response was returned at
148227// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148228// to check whether the returned error was because
148229// http.StatusNotModified was returned.
148230func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148231	gensupport.SetOptions(c.urlParams_, opts...)
148232	res, err := c.doRequest("json")
148233	if res != nil && res.StatusCode == http.StatusNotModified {
148234		if res.Body != nil {
148235			res.Body.Close()
148236		}
148237		return nil, &googleapi.Error{
148238			Code:   res.StatusCode,
148239			Header: res.Header,
148240		}
148241	}
148242	if err != nil {
148243		return nil, err
148244	}
148245	defer googleapi.CloseBody(res)
148246	if err := googleapi.CheckResponse(res); err != nil {
148247		return nil, err
148248	}
148249	ret := &Operation{
148250		ServerResponse: googleapi.ServerResponse{
148251			Header:         res.Header,
148252			HTTPStatusCode: res.StatusCode,
148253		},
148254	}
148255	target := &ret
148256	if err := gensupport.DecodeResponse(target, res); err != nil {
148257		return nil, err
148258	}
148259	return ret, nil
148260	// {
148261	//   "description": "Deletes the specified resource policy.",
148262	//   "httpMethod": "DELETE",
148263	//   "id": "compute.resourcePolicies.delete",
148264	//   "parameterOrder": [
148265	//     "project",
148266	//     "region",
148267	//     "resourcePolicy"
148268	//   ],
148269	//   "parameters": {
148270	//     "project": {
148271	//       "description": "Project ID for this request.",
148272	//       "location": "path",
148273	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148274	//       "required": true,
148275	//       "type": "string"
148276	//     },
148277	//     "region": {
148278	//       "description": "Name of the region for this request.",
148279	//       "location": "path",
148280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148281	//       "required": true,
148282	//       "type": "string"
148283	//     },
148284	//     "requestId": {
148285	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148286	//       "location": "query",
148287	//       "type": "string"
148288	//     },
148289	//     "resourcePolicy": {
148290	//       "description": "Name of the resource policy to delete.",
148291	//       "location": "path",
148292	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148293	//       "required": true,
148294	//       "type": "string"
148295	//     }
148296	//   },
148297	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
148298	//   "response": {
148299	//     "$ref": "Operation"
148300	//   },
148301	//   "scopes": [
148302	//     "https://www.googleapis.com/auth/cloud-platform",
148303	//     "https://www.googleapis.com/auth/compute"
148304	//   ]
148305	// }
148306
148307}
148308
148309// method id "compute.resourcePolicies.get":
148310
148311type ResourcePoliciesGetCall struct {
148312	s              *Service
148313	project        string
148314	region         string
148315	resourcePolicy string
148316	urlParams_     gensupport.URLParams
148317	ifNoneMatch_   string
148318	ctx_           context.Context
148319	header_        http.Header
148320}
148321
148322// Get: Retrieves all information of the specified resource policy.
148323func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
148324	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148325	c.project = project
148326	c.region = region
148327	c.resourcePolicy = resourcePolicy
148328	return c
148329}
148330
148331// Fields allows partial responses to be retrieved. See
148332// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148333// for more information.
148334func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
148335	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148336	return c
148337}
148338
148339// IfNoneMatch sets the optional parameter which makes the operation
148340// fail if the object's ETag matches the given value. This is useful for
148341// getting updates only after the object has changed since the last
148342// request. Use googleapi.IsNotModified to check whether the response
148343// error from Do is the result of In-None-Match.
148344func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
148345	c.ifNoneMatch_ = entityTag
148346	return c
148347}
148348
148349// Context sets the context to be used in this call's Do method. Any
148350// pending HTTP request will be aborted if the provided context is
148351// canceled.
148352func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
148353	c.ctx_ = ctx
148354	return c
148355}
148356
148357// Header returns an http.Header that can be modified by the caller to
148358// add HTTP headers to the request.
148359func (c *ResourcePoliciesGetCall) Header() http.Header {
148360	if c.header_ == nil {
148361		c.header_ = make(http.Header)
148362	}
148363	return c.header_
148364}
148365
148366func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
148367	reqHeaders := make(http.Header)
148368	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
148369	for k, v := range c.header_ {
148370		reqHeaders[k] = v
148371	}
148372	reqHeaders.Set("User-Agent", c.s.userAgent())
148373	if c.ifNoneMatch_ != "" {
148374		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148375	}
148376	var body io.Reader = nil
148377	c.urlParams_.Set("alt", alt)
148378	c.urlParams_.Set("prettyPrint", "false")
148379	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
148380	urls += "?" + c.urlParams_.Encode()
148381	req, err := http.NewRequest("GET", urls, body)
148382	if err != nil {
148383		return nil, err
148384	}
148385	req.Header = reqHeaders
148386	googleapi.Expand(req.URL, map[string]string{
148387		"project":        c.project,
148388		"region":         c.region,
148389		"resourcePolicy": c.resourcePolicy,
148390	})
148391	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148392}
148393
148394// Do executes the "compute.resourcePolicies.get" call.
148395// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
148396// status code is an error. Response headers are in either
148397// *ResourcePolicy.ServerResponse.Header or (if a response was returned
148398// at all) in error.(*googleapi.Error).Header. Use
148399// googleapi.IsNotModified to check whether the returned error was
148400// because http.StatusNotModified was returned.
148401func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
148402	gensupport.SetOptions(c.urlParams_, opts...)
148403	res, err := c.doRequest("json")
148404	if res != nil && res.StatusCode == http.StatusNotModified {
148405		if res.Body != nil {
148406			res.Body.Close()
148407		}
148408		return nil, &googleapi.Error{
148409			Code:   res.StatusCode,
148410			Header: res.Header,
148411		}
148412	}
148413	if err != nil {
148414		return nil, err
148415	}
148416	defer googleapi.CloseBody(res)
148417	if err := googleapi.CheckResponse(res); err != nil {
148418		return nil, err
148419	}
148420	ret := &ResourcePolicy{
148421		ServerResponse: googleapi.ServerResponse{
148422			Header:         res.Header,
148423			HTTPStatusCode: res.StatusCode,
148424		},
148425	}
148426	target := &ret
148427	if err := gensupport.DecodeResponse(target, res); err != nil {
148428		return nil, err
148429	}
148430	return ret, nil
148431	// {
148432	//   "description": "Retrieves all information of the specified resource policy.",
148433	//   "httpMethod": "GET",
148434	//   "id": "compute.resourcePolicies.get",
148435	//   "parameterOrder": [
148436	//     "project",
148437	//     "region",
148438	//     "resourcePolicy"
148439	//   ],
148440	//   "parameters": {
148441	//     "project": {
148442	//       "description": "Project ID for this request.",
148443	//       "location": "path",
148444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148445	//       "required": true,
148446	//       "type": "string"
148447	//     },
148448	//     "region": {
148449	//       "description": "Name of the region for this request.",
148450	//       "location": "path",
148451	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148452	//       "required": true,
148453	//       "type": "string"
148454	//     },
148455	//     "resourcePolicy": {
148456	//       "description": "Name of the resource policy to retrieve.",
148457	//       "location": "path",
148458	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148459	//       "required": true,
148460	//       "type": "string"
148461	//     }
148462	//   },
148463	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
148464	//   "response": {
148465	//     "$ref": "ResourcePolicy"
148466	//   },
148467	//   "scopes": [
148468	//     "https://www.googleapis.com/auth/cloud-platform",
148469	//     "https://www.googleapis.com/auth/compute",
148470	//     "https://www.googleapis.com/auth/compute.readonly"
148471	//   ]
148472	// }
148473
148474}
148475
148476// method id "compute.resourcePolicies.getIamPolicy":
148477
148478type ResourcePoliciesGetIamPolicyCall struct {
148479	s            *Service
148480	project      string
148481	region       string
148482	resource     string
148483	urlParams_   gensupport.URLParams
148484	ifNoneMatch_ string
148485	ctx_         context.Context
148486	header_      http.Header
148487}
148488
148489// GetIamPolicy: Gets the access control policy for a resource. May be
148490// empty if no such policy or resource exists.
148491func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
148492	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148493	c.project = project
148494	c.region = region
148495	c.resource = resource
148496	return c
148497}
148498
148499// OptionsRequestedPolicyVersion sets the optional parameter
148500// "optionsRequestedPolicyVersion": Requested IAM Policy version.
148501func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
148502	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
148503	return c
148504}
148505
148506// Fields allows partial responses to be retrieved. See
148507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148508// for more information.
148509func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
148510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148511	return c
148512}
148513
148514// IfNoneMatch sets the optional parameter which makes the operation
148515// fail if the object's ETag matches the given value. This is useful for
148516// getting updates only after the object has changed since the last
148517// request. Use googleapi.IsNotModified to check whether the response
148518// error from Do is the result of In-None-Match.
148519func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
148520	c.ifNoneMatch_ = entityTag
148521	return c
148522}
148523
148524// Context sets the context to be used in this call's Do method. Any
148525// pending HTTP request will be aborted if the provided context is
148526// canceled.
148527func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
148528	c.ctx_ = ctx
148529	return c
148530}
148531
148532// Header returns an http.Header that can be modified by the caller to
148533// add HTTP headers to the request.
148534func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
148535	if c.header_ == nil {
148536		c.header_ = make(http.Header)
148537	}
148538	return c.header_
148539}
148540
148541func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
148542	reqHeaders := make(http.Header)
148543	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
148544	for k, v := range c.header_ {
148545		reqHeaders[k] = v
148546	}
148547	reqHeaders.Set("User-Agent", c.s.userAgent())
148548	if c.ifNoneMatch_ != "" {
148549		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148550	}
148551	var body io.Reader = nil
148552	c.urlParams_.Set("alt", alt)
148553	c.urlParams_.Set("prettyPrint", "false")
148554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
148555	urls += "?" + c.urlParams_.Encode()
148556	req, err := http.NewRequest("GET", urls, body)
148557	if err != nil {
148558		return nil, err
148559	}
148560	req.Header = reqHeaders
148561	googleapi.Expand(req.URL, map[string]string{
148562		"project":  c.project,
148563		"region":   c.region,
148564		"resource": c.resource,
148565	})
148566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148567}
148568
148569// Do executes the "compute.resourcePolicies.getIamPolicy" call.
148570// Exactly one of *Policy or error will be non-nil. Any non-2xx status
148571// code is an error. Response headers are in either
148572// *Policy.ServerResponse.Header or (if a response was returned at all)
148573// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
148574// check whether the returned error was because http.StatusNotModified
148575// was returned.
148576func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
148577	gensupport.SetOptions(c.urlParams_, opts...)
148578	res, err := c.doRequest("json")
148579	if res != nil && res.StatusCode == http.StatusNotModified {
148580		if res.Body != nil {
148581			res.Body.Close()
148582		}
148583		return nil, &googleapi.Error{
148584			Code:   res.StatusCode,
148585			Header: res.Header,
148586		}
148587	}
148588	if err != nil {
148589		return nil, err
148590	}
148591	defer googleapi.CloseBody(res)
148592	if err := googleapi.CheckResponse(res); err != nil {
148593		return nil, err
148594	}
148595	ret := &Policy{
148596		ServerResponse: googleapi.ServerResponse{
148597			Header:         res.Header,
148598			HTTPStatusCode: res.StatusCode,
148599		},
148600	}
148601	target := &ret
148602	if err := gensupport.DecodeResponse(target, res); err != nil {
148603		return nil, err
148604	}
148605	return ret, nil
148606	// {
148607	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
148608	//   "httpMethod": "GET",
148609	//   "id": "compute.resourcePolicies.getIamPolicy",
148610	//   "parameterOrder": [
148611	//     "project",
148612	//     "region",
148613	//     "resource"
148614	//   ],
148615	//   "parameters": {
148616	//     "optionsRequestedPolicyVersion": {
148617	//       "description": "Requested IAM Policy version.",
148618	//       "format": "int32",
148619	//       "location": "query",
148620	//       "type": "integer"
148621	//     },
148622	//     "project": {
148623	//       "description": "Project ID for this request.",
148624	//       "location": "path",
148625	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148626	//       "required": true,
148627	//       "type": "string"
148628	//     },
148629	//     "region": {
148630	//       "description": "The name of the region for this request.",
148631	//       "location": "path",
148632	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148633	//       "required": true,
148634	//       "type": "string"
148635	//     },
148636	//     "resource": {
148637	//       "description": "Name or id of the resource for this request.",
148638	//       "location": "path",
148639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148640	//       "required": true,
148641	//       "type": "string"
148642	//     }
148643	//   },
148644	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
148645	//   "response": {
148646	//     "$ref": "Policy"
148647	//   },
148648	//   "scopes": [
148649	//     "https://www.googleapis.com/auth/cloud-platform",
148650	//     "https://www.googleapis.com/auth/compute",
148651	//     "https://www.googleapis.com/auth/compute.readonly"
148652	//   ]
148653	// }
148654
148655}
148656
148657// method id "compute.resourcePolicies.insert":
148658
148659type ResourcePoliciesInsertCall struct {
148660	s              *Service
148661	project        string
148662	region         string
148663	resourcepolicy *ResourcePolicy
148664	urlParams_     gensupport.URLParams
148665	ctx_           context.Context
148666	header_        http.Header
148667}
148668
148669// Insert: Creates a new resource policy.
148670func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
148671	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148672	c.project = project
148673	c.region = region
148674	c.resourcepolicy = resourcepolicy
148675	return c
148676}
148677
148678// RequestId sets the optional parameter "requestId": An optional
148679// request ID to identify requests. Specify a unique request ID so that
148680// if you must retry your request, the server will know to ignore the
148681// request if it has already been completed.
148682//
148683// For example, consider a situation where you make an initial request
148684// and the request times out. If you make the request again with the
148685// same request ID, the server can check if original operation with the
148686// same request ID was received, and if so, will ignore the second
148687// request. This prevents clients from accidentally creating duplicate
148688// commitments.
148689//
148690// The request ID must be a valid UUID with the exception that zero UUID
148691// is not supported (00000000-0000-0000-0000-000000000000).
148692func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
148693	c.urlParams_.Set("requestId", requestId)
148694	return c
148695}
148696
148697// Fields allows partial responses to be retrieved. See
148698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148699// for more information.
148700func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
148701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148702	return c
148703}
148704
148705// Context sets the context to be used in this call's Do method. Any
148706// pending HTTP request will be aborted if the provided context is
148707// canceled.
148708func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
148709	c.ctx_ = ctx
148710	return c
148711}
148712
148713// Header returns an http.Header that can be modified by the caller to
148714// add HTTP headers to the request.
148715func (c *ResourcePoliciesInsertCall) Header() http.Header {
148716	if c.header_ == nil {
148717		c.header_ = make(http.Header)
148718	}
148719	return c.header_
148720}
148721
148722func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
148723	reqHeaders := make(http.Header)
148724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
148725	for k, v := range c.header_ {
148726		reqHeaders[k] = v
148727	}
148728	reqHeaders.Set("User-Agent", c.s.userAgent())
148729	var body io.Reader = nil
148730	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
148731	if err != nil {
148732		return nil, err
148733	}
148734	reqHeaders.Set("Content-Type", "application/json")
148735	c.urlParams_.Set("alt", alt)
148736	c.urlParams_.Set("prettyPrint", "false")
148737	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
148738	urls += "?" + c.urlParams_.Encode()
148739	req, err := http.NewRequest("POST", urls, body)
148740	if err != nil {
148741		return nil, err
148742	}
148743	req.Header = reqHeaders
148744	googleapi.Expand(req.URL, map[string]string{
148745		"project": c.project,
148746		"region":  c.region,
148747	})
148748	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148749}
148750
148751// Do executes the "compute.resourcePolicies.insert" call.
148752// Exactly one of *Operation or error will be non-nil. Any non-2xx
148753// status code is an error. Response headers are in either
148754// *Operation.ServerResponse.Header or (if a response was returned at
148755// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148756// to check whether the returned error was because
148757// http.StatusNotModified was returned.
148758func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148759	gensupport.SetOptions(c.urlParams_, opts...)
148760	res, err := c.doRequest("json")
148761	if res != nil && res.StatusCode == http.StatusNotModified {
148762		if res.Body != nil {
148763			res.Body.Close()
148764		}
148765		return nil, &googleapi.Error{
148766			Code:   res.StatusCode,
148767			Header: res.Header,
148768		}
148769	}
148770	if err != nil {
148771		return nil, err
148772	}
148773	defer googleapi.CloseBody(res)
148774	if err := googleapi.CheckResponse(res); err != nil {
148775		return nil, err
148776	}
148777	ret := &Operation{
148778		ServerResponse: googleapi.ServerResponse{
148779			Header:         res.Header,
148780			HTTPStatusCode: res.StatusCode,
148781		},
148782	}
148783	target := &ret
148784	if err := gensupport.DecodeResponse(target, res); err != nil {
148785		return nil, err
148786	}
148787	return ret, nil
148788	// {
148789	//   "description": "Creates a new resource policy.",
148790	//   "httpMethod": "POST",
148791	//   "id": "compute.resourcePolicies.insert",
148792	//   "parameterOrder": [
148793	//     "project",
148794	//     "region"
148795	//   ],
148796	//   "parameters": {
148797	//     "project": {
148798	//       "description": "Project ID for this request.",
148799	//       "location": "path",
148800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148801	//       "required": true,
148802	//       "type": "string"
148803	//     },
148804	//     "region": {
148805	//       "description": "Name of the region for this request.",
148806	//       "location": "path",
148807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148808	//       "required": true,
148809	//       "type": "string"
148810	//     },
148811	//     "requestId": {
148812	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148813	//       "location": "query",
148814	//       "type": "string"
148815	//     }
148816	//   },
148817	//   "path": "{project}/regions/{region}/resourcePolicies",
148818	//   "request": {
148819	//     "$ref": "ResourcePolicy"
148820	//   },
148821	//   "response": {
148822	//     "$ref": "Operation"
148823	//   },
148824	//   "scopes": [
148825	//     "https://www.googleapis.com/auth/cloud-platform",
148826	//     "https://www.googleapis.com/auth/compute"
148827	//   ]
148828	// }
148829
148830}
148831
148832// method id "compute.resourcePolicies.list":
148833
148834type ResourcePoliciesListCall struct {
148835	s            *Service
148836	project      string
148837	region       string
148838	urlParams_   gensupport.URLParams
148839	ifNoneMatch_ string
148840	ctx_         context.Context
148841	header_      http.Header
148842}
148843
148844// List: A list all the resource policies that have been configured for
148845// the specified project in specified region.
148846func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
148847	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148848	c.project = project
148849	c.region = region
148850	return c
148851}
148852
148853// Filter sets the optional parameter "filter": A filter expression that
148854// filters resources listed in the response. The expression must specify
148855// the field name, a comparison operator, and the value that you want to
148856// use for filtering. The value must be a string, a number, or a
148857// boolean. The comparison operator must be either `=`, `!=`, `>`, or
148858// `<`.
148859//
148860// For example, if you are filtering Compute Engine instances, you can
148861// exclude instances named `example-instance` by specifying `name !=
148862// example-instance`.
148863//
148864// You can also filter nested fields. For example, you could specify
148865// `scheduling.automaticRestart = false` to include instances only if
148866// they are not scheduled for automatic restarts. You can use filtering
148867// on nested fields to filter based on resource labels.
148868//
148869// To filter on multiple expressions, provide each separate expression
148870// within parentheses. For example: ``` (scheduling.automaticRestart =
148871// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
148872// is an `AND` expression. However, you can include `AND` and `OR`
148873// expressions explicitly. For example: ``` (cpuPlatform = "Intel
148874// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
148875// (scheduling.automaticRestart = true) ```
148876func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
148877	c.urlParams_.Set("filter", filter)
148878	return c
148879}
148880
148881// MaxResults sets the optional parameter "maxResults": The maximum
148882// number of results per page that should be returned. If the number of
148883// available results is larger than `maxResults`, Compute Engine returns
148884// a `nextPageToken` that can be used to get the next page of results in
148885// subsequent list requests. Acceptable values are `0` to `500`,
148886// inclusive. (Default: `500`)
148887func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
148888	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148889	return c
148890}
148891
148892// OrderBy sets the optional parameter "orderBy": Sorts list results by
148893// a certain order. By default, results are returned in alphanumerical
148894// order based on the resource name.
148895//
148896// You can also sort results in descending order based on the creation
148897// timestamp using `orderBy="creationTimestamp desc". This sorts
148898// results based on the `creationTimestamp` field in reverse
148899// chronological order (newest result first). Use this to sort resources
148900// like operations so that the newest operation is returned
148901// first.
148902//
148903// Currently, only sorting by `name` or `creationTimestamp desc` is
148904// supported.
148905func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
148906	c.urlParams_.Set("orderBy", orderBy)
148907	return c
148908}
148909
148910// PageToken sets the optional parameter "pageToken": Specifies a page
148911// token to use. Set `pageToken` to the `nextPageToken` returned by a
148912// previous list request to get the next page of results.
148913func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
148914	c.urlParams_.Set("pageToken", pageToken)
148915	return c
148916}
148917
148918// ReturnPartialSuccess sets the optional parameter
148919// "returnPartialSuccess": Opt-in for partial success behavior which
148920// provides partial results in case of failure. The default value is
148921// false and the logic is the same as today.
148922func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall {
148923	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
148924	return c
148925}
148926
148927// Fields allows partial responses to be retrieved. See
148928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148929// for more information.
148930func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
148931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148932	return c
148933}
148934
148935// IfNoneMatch sets the optional parameter which makes the operation
148936// fail if the object's ETag matches the given value. This is useful for
148937// getting updates only after the object has changed since the last
148938// request. Use googleapi.IsNotModified to check whether the response
148939// error from Do is the result of In-None-Match.
148940func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
148941	c.ifNoneMatch_ = entityTag
148942	return c
148943}
148944
148945// Context sets the context to be used in this call's Do method. Any
148946// pending HTTP request will be aborted if the provided context is
148947// canceled.
148948func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
148949	c.ctx_ = ctx
148950	return c
148951}
148952
148953// Header returns an http.Header that can be modified by the caller to
148954// add HTTP headers to the request.
148955func (c *ResourcePoliciesListCall) Header() http.Header {
148956	if c.header_ == nil {
148957		c.header_ = make(http.Header)
148958	}
148959	return c.header_
148960}
148961
148962func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
148963	reqHeaders := make(http.Header)
148964	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
148965	for k, v := range c.header_ {
148966		reqHeaders[k] = v
148967	}
148968	reqHeaders.Set("User-Agent", c.s.userAgent())
148969	if c.ifNoneMatch_ != "" {
148970		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148971	}
148972	var body io.Reader = nil
148973	c.urlParams_.Set("alt", alt)
148974	c.urlParams_.Set("prettyPrint", "false")
148975	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
148976	urls += "?" + c.urlParams_.Encode()
148977	req, err := http.NewRequest("GET", urls, body)
148978	if err != nil {
148979		return nil, err
148980	}
148981	req.Header = reqHeaders
148982	googleapi.Expand(req.URL, map[string]string{
148983		"project": c.project,
148984		"region":  c.region,
148985	})
148986	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148987}
148988
148989// Do executes the "compute.resourcePolicies.list" call.
148990// Exactly one of *ResourcePolicyList or error will be non-nil. Any
148991// non-2xx status code is an error. Response headers are in either
148992// *ResourcePolicyList.ServerResponse.Header or (if a response was
148993// returned at all) in error.(*googleapi.Error).Header. Use
148994// googleapi.IsNotModified to check whether the returned error was
148995// because http.StatusNotModified was returned.
148996func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
148997	gensupport.SetOptions(c.urlParams_, opts...)
148998	res, err := c.doRequest("json")
148999	if res != nil && res.StatusCode == http.StatusNotModified {
149000		if res.Body != nil {
149001			res.Body.Close()
149002		}
149003		return nil, &googleapi.Error{
149004			Code:   res.StatusCode,
149005			Header: res.Header,
149006		}
149007	}
149008	if err != nil {
149009		return nil, err
149010	}
149011	defer googleapi.CloseBody(res)
149012	if err := googleapi.CheckResponse(res); err != nil {
149013		return nil, err
149014	}
149015	ret := &ResourcePolicyList{
149016		ServerResponse: googleapi.ServerResponse{
149017			Header:         res.Header,
149018			HTTPStatusCode: res.StatusCode,
149019		},
149020	}
149021	target := &ret
149022	if err := gensupport.DecodeResponse(target, res); err != nil {
149023		return nil, err
149024	}
149025	return ret, nil
149026	// {
149027	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
149028	//   "httpMethod": "GET",
149029	//   "id": "compute.resourcePolicies.list",
149030	//   "parameterOrder": [
149031	//     "project",
149032	//     "region"
149033	//   ],
149034	//   "parameters": {
149035	//     "filter": {
149036	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149037	//       "location": "query",
149038	//       "type": "string"
149039	//     },
149040	//     "maxResults": {
149041	//       "default": "500",
149042	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149043	//       "format": "uint32",
149044	//       "location": "query",
149045	//       "minimum": "0",
149046	//       "type": "integer"
149047	//     },
149048	//     "orderBy": {
149049	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
149050	//       "location": "query",
149051	//       "type": "string"
149052	//     },
149053	//     "pageToken": {
149054	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149055	//       "location": "query",
149056	//       "type": "string"
149057	//     },
149058	//     "project": {
149059	//       "description": "Project ID for this request.",
149060	//       "location": "path",
149061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149062	//       "required": true,
149063	//       "type": "string"
149064	//     },
149065	//     "region": {
149066	//       "description": "Name of the region for this request.",
149067	//       "location": "path",
149068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149069	//       "required": true,
149070	//       "type": "string"
149071	//     },
149072	//     "returnPartialSuccess": {
149073	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
149074	//       "location": "query",
149075	//       "type": "boolean"
149076	//     }
149077	//   },
149078	//   "path": "{project}/regions/{region}/resourcePolicies",
149079	//   "response": {
149080	//     "$ref": "ResourcePolicyList"
149081	//   },
149082	//   "scopes": [
149083	//     "https://www.googleapis.com/auth/cloud-platform",
149084	//     "https://www.googleapis.com/auth/compute",
149085	//     "https://www.googleapis.com/auth/compute.readonly"
149086	//   ]
149087	// }
149088
149089}
149090
149091// Pages invokes f for each page of results.
149092// A non-nil error returned from f will halt the iteration.
149093// The provided context supersedes any context provided to the Context method.
149094func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
149095	c.ctx_ = ctx
149096	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149097	for {
149098		x, err := c.Do()
149099		if err != nil {
149100			return err
149101		}
149102		if err := f(x); err != nil {
149103			return err
149104		}
149105		if x.NextPageToken == "" {
149106			return nil
149107		}
149108		c.PageToken(x.NextPageToken)
149109	}
149110}
149111
149112// method id "compute.resourcePolicies.setIamPolicy":
149113
149114type ResourcePoliciesSetIamPolicyCall struct {
149115	s                      *Service
149116	project                string
149117	region                 string
149118	resource               string
149119	regionsetpolicyrequest *RegionSetPolicyRequest
149120	urlParams_             gensupport.URLParams
149121	ctx_                   context.Context
149122	header_                http.Header
149123}
149124
149125// SetIamPolicy: Sets the access control policy on the specified
149126// resource. Replaces any existing policy.
149127func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
149128	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149129	c.project = project
149130	c.region = region
149131	c.resource = resource
149132	c.regionsetpolicyrequest = regionsetpolicyrequest
149133	return c
149134}
149135
149136// Fields allows partial responses to be retrieved. See
149137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149138// for more information.
149139func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
149140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149141	return c
149142}
149143
149144// Context sets the context to be used in this call's Do method. Any
149145// pending HTTP request will be aborted if the provided context is
149146// canceled.
149147func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
149148	c.ctx_ = ctx
149149	return c
149150}
149151
149152// Header returns an http.Header that can be modified by the caller to
149153// add HTTP headers to the request.
149154func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
149155	if c.header_ == nil {
149156		c.header_ = make(http.Header)
149157	}
149158	return c.header_
149159}
149160
149161func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
149162	reqHeaders := make(http.Header)
149163	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
149164	for k, v := range c.header_ {
149165		reqHeaders[k] = v
149166	}
149167	reqHeaders.Set("User-Agent", c.s.userAgent())
149168	var body io.Reader = nil
149169	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
149170	if err != nil {
149171		return nil, err
149172	}
149173	reqHeaders.Set("Content-Type", "application/json")
149174	c.urlParams_.Set("alt", alt)
149175	c.urlParams_.Set("prettyPrint", "false")
149176	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
149177	urls += "?" + c.urlParams_.Encode()
149178	req, err := http.NewRequest("POST", urls, body)
149179	if err != nil {
149180		return nil, err
149181	}
149182	req.Header = reqHeaders
149183	googleapi.Expand(req.URL, map[string]string{
149184		"project":  c.project,
149185		"region":   c.region,
149186		"resource": c.resource,
149187	})
149188	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149189}
149190
149191// Do executes the "compute.resourcePolicies.setIamPolicy" call.
149192// Exactly one of *Policy or error will be non-nil. Any non-2xx status
149193// code is an error. Response headers are in either
149194// *Policy.ServerResponse.Header or (if a response was returned at all)
149195// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
149196// check whether the returned error was because http.StatusNotModified
149197// was returned.
149198func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
149199	gensupport.SetOptions(c.urlParams_, opts...)
149200	res, err := c.doRequest("json")
149201	if res != nil && res.StatusCode == http.StatusNotModified {
149202		if res.Body != nil {
149203			res.Body.Close()
149204		}
149205		return nil, &googleapi.Error{
149206			Code:   res.StatusCode,
149207			Header: res.Header,
149208		}
149209	}
149210	if err != nil {
149211		return nil, err
149212	}
149213	defer googleapi.CloseBody(res)
149214	if err := googleapi.CheckResponse(res); err != nil {
149215		return nil, err
149216	}
149217	ret := &Policy{
149218		ServerResponse: googleapi.ServerResponse{
149219			Header:         res.Header,
149220			HTTPStatusCode: res.StatusCode,
149221		},
149222	}
149223	target := &ret
149224	if err := gensupport.DecodeResponse(target, res); err != nil {
149225		return nil, err
149226	}
149227	return ret, nil
149228	// {
149229	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
149230	//   "httpMethod": "POST",
149231	//   "id": "compute.resourcePolicies.setIamPolicy",
149232	//   "parameterOrder": [
149233	//     "project",
149234	//     "region",
149235	//     "resource"
149236	//   ],
149237	//   "parameters": {
149238	//     "project": {
149239	//       "description": "Project ID for this request.",
149240	//       "location": "path",
149241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149242	//       "required": true,
149243	//       "type": "string"
149244	//     },
149245	//     "region": {
149246	//       "description": "The name of the region for this request.",
149247	//       "location": "path",
149248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149249	//       "required": true,
149250	//       "type": "string"
149251	//     },
149252	//     "resource": {
149253	//       "description": "Name or id of the resource for this request.",
149254	//       "location": "path",
149255	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149256	//       "required": true,
149257	//       "type": "string"
149258	//     }
149259	//   },
149260	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
149261	//   "request": {
149262	//     "$ref": "RegionSetPolicyRequest"
149263	//   },
149264	//   "response": {
149265	//     "$ref": "Policy"
149266	//   },
149267	//   "scopes": [
149268	//     "https://www.googleapis.com/auth/cloud-platform",
149269	//     "https://www.googleapis.com/auth/compute"
149270	//   ]
149271	// }
149272
149273}
149274
149275// method id "compute.resourcePolicies.testIamPermissions":
149276
149277type ResourcePoliciesTestIamPermissionsCall struct {
149278	s                      *Service
149279	project                string
149280	region                 string
149281	resource               string
149282	testpermissionsrequest *TestPermissionsRequest
149283	urlParams_             gensupport.URLParams
149284	ctx_                   context.Context
149285	header_                http.Header
149286}
149287
149288// TestIamPermissions: Returns permissions that a caller has on the
149289// specified resource.
149290func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
149291	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149292	c.project = project
149293	c.region = region
149294	c.resource = resource
149295	c.testpermissionsrequest = testpermissionsrequest
149296	return c
149297}
149298
149299// Fields allows partial responses to be retrieved. See
149300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149301// for more information.
149302func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
149303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149304	return c
149305}
149306
149307// Context sets the context to be used in this call's Do method. Any
149308// pending HTTP request will be aborted if the provided context is
149309// canceled.
149310func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
149311	c.ctx_ = ctx
149312	return c
149313}
149314
149315// Header returns an http.Header that can be modified by the caller to
149316// add HTTP headers to the request.
149317func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
149318	if c.header_ == nil {
149319		c.header_ = make(http.Header)
149320	}
149321	return c.header_
149322}
149323
149324func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
149325	reqHeaders := make(http.Header)
149326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
149327	for k, v := range c.header_ {
149328		reqHeaders[k] = v
149329	}
149330	reqHeaders.Set("User-Agent", c.s.userAgent())
149331	var body io.Reader = nil
149332	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
149333	if err != nil {
149334		return nil, err
149335	}
149336	reqHeaders.Set("Content-Type", "application/json")
149337	c.urlParams_.Set("alt", alt)
149338	c.urlParams_.Set("prettyPrint", "false")
149339	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
149340	urls += "?" + c.urlParams_.Encode()
149341	req, err := http.NewRequest("POST", urls, body)
149342	if err != nil {
149343		return nil, err
149344	}
149345	req.Header = reqHeaders
149346	googleapi.Expand(req.URL, map[string]string{
149347		"project":  c.project,
149348		"region":   c.region,
149349		"resource": c.resource,
149350	})
149351	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149352}
149353
149354// Do executes the "compute.resourcePolicies.testIamPermissions" call.
149355// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
149356// non-2xx status code is an error. Response headers are in either
149357// *TestPermissionsResponse.ServerResponse.Header or (if a response was
149358// returned at all) in error.(*googleapi.Error).Header. Use
149359// googleapi.IsNotModified to check whether the returned error was
149360// because http.StatusNotModified was returned.
149361func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
149362	gensupport.SetOptions(c.urlParams_, opts...)
149363	res, err := c.doRequest("json")
149364	if res != nil && res.StatusCode == http.StatusNotModified {
149365		if res.Body != nil {
149366			res.Body.Close()
149367		}
149368		return nil, &googleapi.Error{
149369			Code:   res.StatusCode,
149370			Header: res.Header,
149371		}
149372	}
149373	if err != nil {
149374		return nil, err
149375	}
149376	defer googleapi.CloseBody(res)
149377	if err := googleapi.CheckResponse(res); err != nil {
149378		return nil, err
149379	}
149380	ret := &TestPermissionsResponse{
149381		ServerResponse: googleapi.ServerResponse{
149382			Header:         res.Header,
149383			HTTPStatusCode: res.StatusCode,
149384		},
149385	}
149386	target := &ret
149387	if err := gensupport.DecodeResponse(target, res); err != nil {
149388		return nil, err
149389	}
149390	return ret, nil
149391	// {
149392	//   "description": "Returns permissions that a caller has on the specified resource.",
149393	//   "httpMethod": "POST",
149394	//   "id": "compute.resourcePolicies.testIamPermissions",
149395	//   "parameterOrder": [
149396	//     "project",
149397	//     "region",
149398	//     "resource"
149399	//   ],
149400	//   "parameters": {
149401	//     "project": {
149402	//       "description": "Project ID for this request.",
149403	//       "location": "path",
149404	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149405	//       "required": true,
149406	//       "type": "string"
149407	//     },
149408	//     "region": {
149409	//       "description": "The name of the region for this request.",
149410	//       "location": "path",
149411	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149412	//       "required": true,
149413	//       "type": "string"
149414	//     },
149415	//     "resource": {
149416	//       "description": "Name or id of the resource for this request.",
149417	//       "location": "path",
149418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149419	//       "required": true,
149420	//       "type": "string"
149421	//     }
149422	//   },
149423	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
149424	//   "request": {
149425	//     "$ref": "TestPermissionsRequest"
149426	//   },
149427	//   "response": {
149428	//     "$ref": "TestPermissionsResponse"
149429	//   },
149430	//   "scopes": [
149431	//     "https://www.googleapis.com/auth/cloud-platform",
149432	//     "https://www.googleapis.com/auth/compute",
149433	//     "https://www.googleapis.com/auth/compute.readonly"
149434	//   ]
149435	// }
149436
149437}
149438
149439// method id "compute.routers.aggregatedList":
149440
149441type RoutersAggregatedListCall struct {
149442	s            *Service
149443	project      string
149444	urlParams_   gensupport.URLParams
149445	ifNoneMatch_ string
149446	ctx_         context.Context
149447	header_      http.Header
149448}
149449
149450// AggregatedList: Retrieves an aggregated list of routers.
149451func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
149452	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149453	c.project = project
149454	return c
149455}
149456
149457// Filter sets the optional parameter "filter": A filter expression that
149458// filters resources listed in the response. The expression must specify
149459// the field name, a comparison operator, and the value that you want to
149460// use for filtering. The value must be a string, a number, or a
149461// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149462// `<`.
149463//
149464// For example, if you are filtering Compute Engine instances, you can
149465// exclude instances named `example-instance` by specifying `name !=
149466// example-instance`.
149467//
149468// You can also filter nested fields. For example, you could specify
149469// `scheduling.automaticRestart = false` to include instances only if
149470// they are not scheduled for automatic restarts. You can use filtering
149471// on nested fields to filter based on resource labels.
149472//
149473// To filter on multiple expressions, provide each separate expression
149474// within parentheses. For example: ``` (scheduling.automaticRestart =
149475// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
149476// is an `AND` expression. However, you can include `AND` and `OR`
149477// expressions explicitly. For example: ``` (cpuPlatform = "Intel
149478// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
149479// (scheduling.automaticRestart = true) ```
149480func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
149481	c.urlParams_.Set("filter", filter)
149482	return c
149483}
149484
149485// IncludeAllScopes sets the optional parameter "includeAllScopes":
149486// Indicates whether every visible scope for each scope type (zone,
149487// region, global) should be included in the response. For new resource
149488// types added after this field, the flag has no effect as new resource
149489// types will always include every visible scope for each scope type in
149490// response. For resource types which predate this field, if this flag
149491// is omitted or false, only scopes of the scope types where the
149492// resource type is expected to be found will be included.
149493func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
149494	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
149495	return c
149496}
149497
149498// MaxResults sets the optional parameter "maxResults": The maximum
149499// number of results per page that should be returned. If the number of
149500// available results is larger than `maxResults`, Compute Engine returns
149501// a `nextPageToken` that can be used to get the next page of results in
149502// subsequent list requests. Acceptable values are `0` to `500`,
149503// inclusive. (Default: `500`)
149504func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
149505	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149506	return c
149507}
149508
149509// OrderBy sets the optional parameter "orderBy": Sorts list results by
149510// a certain order. By default, results are returned in alphanumerical
149511// order based on the resource name.
149512//
149513// You can also sort results in descending order based on the creation
149514// timestamp using `orderBy="creationTimestamp desc". This sorts
149515// results based on the `creationTimestamp` field in reverse
149516// chronological order (newest result first). Use this to sort resources
149517// like operations so that the newest operation is returned
149518// first.
149519//
149520// Currently, only sorting by `name` or `creationTimestamp desc` is
149521// supported.
149522func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
149523	c.urlParams_.Set("orderBy", orderBy)
149524	return c
149525}
149526
149527// PageToken sets the optional parameter "pageToken": Specifies a page
149528// token to use. Set `pageToken` to the `nextPageToken` returned by a
149529// previous list request to get the next page of results.
149530func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
149531	c.urlParams_.Set("pageToken", pageToken)
149532	return c
149533}
149534
149535// ReturnPartialSuccess sets the optional parameter
149536// "returnPartialSuccess": Opt-in for partial success behavior which
149537// provides partial results in case of failure. The default value is
149538// false and the logic is the same as today.
149539func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall {
149540	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149541	return c
149542}
149543
149544// Fields allows partial responses to be retrieved. See
149545// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149546// for more information.
149547func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
149548	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149549	return c
149550}
149551
149552// IfNoneMatch sets the optional parameter which makes the operation
149553// fail if the object's ETag matches the given value. This is useful for
149554// getting updates only after the object has changed since the last
149555// request. Use googleapi.IsNotModified to check whether the response
149556// error from Do is the result of In-None-Match.
149557func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
149558	c.ifNoneMatch_ = entityTag
149559	return c
149560}
149561
149562// Context sets the context to be used in this call's Do method. Any
149563// pending HTTP request will be aborted if the provided context is
149564// canceled.
149565func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
149566	c.ctx_ = ctx
149567	return c
149568}
149569
149570// Header returns an http.Header that can be modified by the caller to
149571// add HTTP headers to the request.
149572func (c *RoutersAggregatedListCall) Header() http.Header {
149573	if c.header_ == nil {
149574		c.header_ = make(http.Header)
149575	}
149576	return c.header_
149577}
149578
149579func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149580	reqHeaders := make(http.Header)
149581	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
149582	for k, v := range c.header_ {
149583		reqHeaders[k] = v
149584	}
149585	reqHeaders.Set("User-Agent", c.s.userAgent())
149586	if c.ifNoneMatch_ != "" {
149587		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149588	}
149589	var body io.Reader = nil
149590	c.urlParams_.Set("alt", alt)
149591	c.urlParams_.Set("prettyPrint", "false")
149592	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
149593	urls += "?" + c.urlParams_.Encode()
149594	req, err := http.NewRequest("GET", urls, body)
149595	if err != nil {
149596		return nil, err
149597	}
149598	req.Header = reqHeaders
149599	googleapi.Expand(req.URL, map[string]string{
149600		"project": c.project,
149601	})
149602	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149603}
149604
149605// Do executes the "compute.routers.aggregatedList" call.
149606// Exactly one of *RouterAggregatedList or error will be non-nil. Any
149607// non-2xx status code is an error. Response headers are in either
149608// *RouterAggregatedList.ServerResponse.Header or (if a response was
149609// returned at all) in error.(*googleapi.Error).Header. Use
149610// googleapi.IsNotModified to check whether the returned error was
149611// because http.StatusNotModified was returned.
149612func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
149613	gensupport.SetOptions(c.urlParams_, opts...)
149614	res, err := c.doRequest("json")
149615	if res != nil && res.StatusCode == http.StatusNotModified {
149616		if res.Body != nil {
149617			res.Body.Close()
149618		}
149619		return nil, &googleapi.Error{
149620			Code:   res.StatusCode,
149621			Header: res.Header,
149622		}
149623	}
149624	if err != nil {
149625		return nil, err
149626	}
149627	defer googleapi.CloseBody(res)
149628	if err := googleapi.CheckResponse(res); err != nil {
149629		return nil, err
149630	}
149631	ret := &RouterAggregatedList{
149632		ServerResponse: googleapi.ServerResponse{
149633			Header:         res.Header,
149634			HTTPStatusCode: res.StatusCode,
149635		},
149636	}
149637	target := &ret
149638	if err := gensupport.DecodeResponse(target, res); err != nil {
149639		return nil, err
149640	}
149641	return ret, nil
149642	// {
149643	//   "description": "Retrieves an aggregated list of routers.",
149644	//   "httpMethod": "GET",
149645	//   "id": "compute.routers.aggregatedList",
149646	//   "parameterOrder": [
149647	//     "project"
149648	//   ],
149649	//   "parameters": {
149650	//     "filter": {
149651	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149652	//       "location": "query",
149653	//       "type": "string"
149654	//     },
149655	//     "includeAllScopes": {
149656	//       "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.",
149657	//       "location": "query",
149658	//       "type": "boolean"
149659	//     },
149660	//     "maxResults": {
149661	//       "default": "500",
149662	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149663	//       "format": "uint32",
149664	//       "location": "query",
149665	//       "minimum": "0",
149666	//       "type": "integer"
149667	//     },
149668	//     "orderBy": {
149669	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
149670	//       "location": "query",
149671	//       "type": "string"
149672	//     },
149673	//     "pageToken": {
149674	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149675	//       "location": "query",
149676	//       "type": "string"
149677	//     },
149678	//     "project": {
149679	//       "description": "Project ID for this request.",
149680	//       "location": "path",
149681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149682	//       "required": true,
149683	//       "type": "string"
149684	//     },
149685	//     "returnPartialSuccess": {
149686	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
149687	//       "location": "query",
149688	//       "type": "boolean"
149689	//     }
149690	//   },
149691	//   "path": "{project}/aggregated/routers",
149692	//   "response": {
149693	//     "$ref": "RouterAggregatedList"
149694	//   },
149695	//   "scopes": [
149696	//     "https://www.googleapis.com/auth/cloud-platform",
149697	//     "https://www.googleapis.com/auth/compute",
149698	//     "https://www.googleapis.com/auth/compute.readonly"
149699	//   ]
149700	// }
149701
149702}
149703
149704// Pages invokes f for each page of results.
149705// A non-nil error returned from f will halt the iteration.
149706// The provided context supersedes any context provided to the Context method.
149707func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
149708	c.ctx_ = ctx
149709	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149710	for {
149711		x, err := c.Do()
149712		if err != nil {
149713			return err
149714		}
149715		if err := f(x); err != nil {
149716			return err
149717		}
149718		if x.NextPageToken == "" {
149719			return nil
149720		}
149721		c.PageToken(x.NextPageToken)
149722	}
149723}
149724
149725// method id "compute.routers.delete":
149726
149727type RoutersDeleteCall struct {
149728	s          *Service
149729	project    string
149730	region     string
149731	router     string
149732	urlParams_ gensupport.URLParams
149733	ctx_       context.Context
149734	header_    http.Header
149735}
149736
149737// Delete: Deletes the specified Router resource.
149738func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
149739	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149740	c.project = project
149741	c.region = region
149742	c.router = router
149743	return c
149744}
149745
149746// RequestId sets the optional parameter "requestId": An optional
149747// request ID to identify requests. Specify a unique request ID so that
149748// if you must retry your request, the server will know to ignore the
149749// request if it has already been completed.
149750//
149751// For example, consider a situation where you make an initial request
149752// and the request times out. If you make the request again with the
149753// same request ID, the server can check if original operation with the
149754// same request ID was received, and if so, will ignore the second
149755// request. This prevents clients from accidentally creating duplicate
149756// commitments.
149757//
149758// The request ID must be a valid UUID with the exception that zero UUID
149759// is not supported (00000000-0000-0000-0000-000000000000).
149760func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
149761	c.urlParams_.Set("requestId", requestId)
149762	return c
149763}
149764
149765// Fields allows partial responses to be retrieved. See
149766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149767// for more information.
149768func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
149769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149770	return c
149771}
149772
149773// Context sets the context to be used in this call's Do method. Any
149774// pending HTTP request will be aborted if the provided context is
149775// canceled.
149776func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
149777	c.ctx_ = ctx
149778	return c
149779}
149780
149781// Header returns an http.Header that can be modified by the caller to
149782// add HTTP headers to the request.
149783func (c *RoutersDeleteCall) Header() http.Header {
149784	if c.header_ == nil {
149785		c.header_ = make(http.Header)
149786	}
149787	return c.header_
149788}
149789
149790func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
149791	reqHeaders := make(http.Header)
149792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
149793	for k, v := range c.header_ {
149794		reqHeaders[k] = v
149795	}
149796	reqHeaders.Set("User-Agent", c.s.userAgent())
149797	var body io.Reader = nil
149798	c.urlParams_.Set("alt", alt)
149799	c.urlParams_.Set("prettyPrint", "false")
149800	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
149801	urls += "?" + c.urlParams_.Encode()
149802	req, err := http.NewRequest("DELETE", urls, body)
149803	if err != nil {
149804		return nil, err
149805	}
149806	req.Header = reqHeaders
149807	googleapi.Expand(req.URL, map[string]string{
149808		"project": c.project,
149809		"region":  c.region,
149810		"router":  c.router,
149811	})
149812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149813}
149814
149815// Do executes the "compute.routers.delete" call.
149816// Exactly one of *Operation or error will be non-nil. Any non-2xx
149817// status code is an error. Response headers are in either
149818// *Operation.ServerResponse.Header or (if a response was returned at
149819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149820// to check whether the returned error was because
149821// http.StatusNotModified was returned.
149822func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149823	gensupport.SetOptions(c.urlParams_, opts...)
149824	res, err := c.doRequest("json")
149825	if res != nil && res.StatusCode == http.StatusNotModified {
149826		if res.Body != nil {
149827			res.Body.Close()
149828		}
149829		return nil, &googleapi.Error{
149830			Code:   res.StatusCode,
149831			Header: res.Header,
149832		}
149833	}
149834	if err != nil {
149835		return nil, err
149836	}
149837	defer googleapi.CloseBody(res)
149838	if err := googleapi.CheckResponse(res); err != nil {
149839		return nil, err
149840	}
149841	ret := &Operation{
149842		ServerResponse: googleapi.ServerResponse{
149843			Header:         res.Header,
149844			HTTPStatusCode: res.StatusCode,
149845		},
149846	}
149847	target := &ret
149848	if err := gensupport.DecodeResponse(target, res); err != nil {
149849		return nil, err
149850	}
149851	return ret, nil
149852	// {
149853	//   "description": "Deletes the specified Router resource.",
149854	//   "httpMethod": "DELETE",
149855	//   "id": "compute.routers.delete",
149856	//   "parameterOrder": [
149857	//     "project",
149858	//     "region",
149859	//     "router"
149860	//   ],
149861	//   "parameters": {
149862	//     "project": {
149863	//       "description": "Project ID for this request.",
149864	//       "location": "path",
149865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149866	//       "required": true,
149867	//       "type": "string"
149868	//     },
149869	//     "region": {
149870	//       "description": "Name of the region for this request.",
149871	//       "location": "path",
149872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149873	//       "required": true,
149874	//       "type": "string"
149875	//     },
149876	//     "requestId": {
149877	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149878	//       "location": "query",
149879	//       "type": "string"
149880	//     },
149881	//     "router": {
149882	//       "description": "Name of the Router resource to delete.",
149883	//       "location": "path",
149884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149885	//       "required": true,
149886	//       "type": "string"
149887	//     }
149888	//   },
149889	//   "path": "{project}/regions/{region}/routers/{router}",
149890	//   "response": {
149891	//     "$ref": "Operation"
149892	//   },
149893	//   "scopes": [
149894	//     "https://www.googleapis.com/auth/cloud-platform",
149895	//     "https://www.googleapis.com/auth/compute"
149896	//   ]
149897	// }
149898
149899}
149900
149901// method id "compute.routers.get":
149902
149903type RoutersGetCall struct {
149904	s            *Service
149905	project      string
149906	region       string
149907	router       string
149908	urlParams_   gensupport.URLParams
149909	ifNoneMatch_ string
149910	ctx_         context.Context
149911	header_      http.Header
149912}
149913
149914// Get: Returns the specified Router resource. Gets a list of available
149915// routers by making a list() request.
149916func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
149917	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149918	c.project = project
149919	c.region = region
149920	c.router = router
149921	return c
149922}
149923
149924// Fields allows partial responses to be retrieved. See
149925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149926// for more information.
149927func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
149928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149929	return c
149930}
149931
149932// IfNoneMatch sets the optional parameter which makes the operation
149933// fail if the object's ETag matches the given value. This is useful for
149934// getting updates only after the object has changed since the last
149935// request. Use googleapi.IsNotModified to check whether the response
149936// error from Do is the result of In-None-Match.
149937func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
149938	c.ifNoneMatch_ = entityTag
149939	return c
149940}
149941
149942// Context sets the context to be used in this call's Do method. Any
149943// pending HTTP request will be aborted if the provided context is
149944// canceled.
149945func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
149946	c.ctx_ = ctx
149947	return c
149948}
149949
149950// Header returns an http.Header that can be modified by the caller to
149951// add HTTP headers to the request.
149952func (c *RoutersGetCall) Header() http.Header {
149953	if c.header_ == nil {
149954		c.header_ = make(http.Header)
149955	}
149956	return c.header_
149957}
149958
149959func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
149960	reqHeaders := make(http.Header)
149961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
149962	for k, v := range c.header_ {
149963		reqHeaders[k] = v
149964	}
149965	reqHeaders.Set("User-Agent", c.s.userAgent())
149966	if c.ifNoneMatch_ != "" {
149967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149968	}
149969	var body io.Reader = nil
149970	c.urlParams_.Set("alt", alt)
149971	c.urlParams_.Set("prettyPrint", "false")
149972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
149973	urls += "?" + c.urlParams_.Encode()
149974	req, err := http.NewRequest("GET", urls, body)
149975	if err != nil {
149976		return nil, err
149977	}
149978	req.Header = reqHeaders
149979	googleapi.Expand(req.URL, map[string]string{
149980		"project": c.project,
149981		"region":  c.region,
149982		"router":  c.router,
149983	})
149984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149985}
149986
149987// Do executes the "compute.routers.get" call.
149988// Exactly one of *Router or error will be non-nil. Any non-2xx status
149989// code is an error. Response headers are in either
149990// *Router.ServerResponse.Header or (if a response was returned at all)
149991// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
149992// check whether the returned error was because http.StatusNotModified
149993// was returned.
149994func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
149995	gensupport.SetOptions(c.urlParams_, opts...)
149996	res, err := c.doRequest("json")
149997	if res != nil && res.StatusCode == http.StatusNotModified {
149998		if res.Body != nil {
149999			res.Body.Close()
150000		}
150001		return nil, &googleapi.Error{
150002			Code:   res.StatusCode,
150003			Header: res.Header,
150004		}
150005	}
150006	if err != nil {
150007		return nil, err
150008	}
150009	defer googleapi.CloseBody(res)
150010	if err := googleapi.CheckResponse(res); err != nil {
150011		return nil, err
150012	}
150013	ret := &Router{
150014		ServerResponse: googleapi.ServerResponse{
150015			Header:         res.Header,
150016			HTTPStatusCode: res.StatusCode,
150017		},
150018	}
150019	target := &ret
150020	if err := gensupport.DecodeResponse(target, res); err != nil {
150021		return nil, err
150022	}
150023	return ret, nil
150024	// {
150025	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
150026	//   "httpMethod": "GET",
150027	//   "id": "compute.routers.get",
150028	//   "parameterOrder": [
150029	//     "project",
150030	//     "region",
150031	//     "router"
150032	//   ],
150033	//   "parameters": {
150034	//     "project": {
150035	//       "description": "Project ID for this request.",
150036	//       "location": "path",
150037	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150038	//       "required": true,
150039	//       "type": "string"
150040	//     },
150041	//     "region": {
150042	//       "description": "Name of the region for this request.",
150043	//       "location": "path",
150044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150045	//       "required": true,
150046	//       "type": "string"
150047	//     },
150048	//     "router": {
150049	//       "description": "Name of the Router resource to return.",
150050	//       "location": "path",
150051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150052	//       "required": true,
150053	//       "type": "string"
150054	//     }
150055	//   },
150056	//   "path": "{project}/regions/{region}/routers/{router}",
150057	//   "response": {
150058	//     "$ref": "Router"
150059	//   },
150060	//   "scopes": [
150061	//     "https://www.googleapis.com/auth/cloud-platform",
150062	//     "https://www.googleapis.com/auth/compute",
150063	//     "https://www.googleapis.com/auth/compute.readonly"
150064	//   ]
150065	// }
150066
150067}
150068
150069// method id "compute.routers.getNatMappingInfo":
150070
150071type RoutersGetNatMappingInfoCall struct {
150072	s            *Service
150073	project      string
150074	region       string
150075	router       string
150076	urlParams_   gensupport.URLParams
150077	ifNoneMatch_ string
150078	ctx_         context.Context
150079	header_      http.Header
150080}
150081
150082// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
150083// endpoints.
150084func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
150085	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150086	c.project = project
150087	c.region = region
150088	c.router = router
150089	return c
150090}
150091
150092// Filter sets the optional parameter "filter": A filter expression that
150093// filters resources listed in the response. The expression must specify
150094// the field name, a comparison operator, and the value that you want to
150095// use for filtering. The value must be a string, a number, or a
150096// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150097// `<`.
150098//
150099// For example, if you are filtering Compute Engine instances, you can
150100// exclude instances named `example-instance` by specifying `name !=
150101// example-instance`.
150102//
150103// You can also filter nested fields. For example, you could specify
150104// `scheduling.automaticRestart = false` to include instances only if
150105// they are not scheduled for automatic restarts. You can use filtering
150106// on nested fields to filter based on resource labels.
150107//
150108// To filter on multiple expressions, provide each separate expression
150109// within parentheses. For example: ``` (scheduling.automaticRestart =
150110// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
150111// is an `AND` expression. However, you can include `AND` and `OR`
150112// expressions explicitly. For example: ``` (cpuPlatform = "Intel
150113// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
150114// (scheduling.automaticRestart = true) ```
150115func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
150116	c.urlParams_.Set("filter", filter)
150117	return c
150118}
150119
150120// MaxResults sets the optional parameter "maxResults": The maximum
150121// number of results per page that should be returned. If the number of
150122// available results is larger than `maxResults`, Compute Engine returns
150123// a `nextPageToken` that can be used to get the next page of results in
150124// subsequent list requests. Acceptable values are `0` to `500`,
150125// inclusive. (Default: `500`)
150126func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
150127	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150128	return c
150129}
150130
150131// NatName sets the optional parameter "natName": Name of the nat
150132// service to filter the Nat Mapping information. If it is omitted, all
150133// nats for this router will be returned. Name should conform to
150134// RFC1035.
150135func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall {
150136	c.urlParams_.Set("natName", natName)
150137	return c
150138}
150139
150140// OrderBy sets the optional parameter "orderBy": Sorts list results by
150141// a certain order. By default, results are returned in alphanumerical
150142// order based on the resource name.
150143//
150144// You can also sort results in descending order based on the creation
150145// timestamp using `orderBy="creationTimestamp desc". This sorts
150146// results based on the `creationTimestamp` field in reverse
150147// chronological order (newest result first). Use this to sort resources
150148// like operations so that the newest operation is returned
150149// first.
150150//
150151// Currently, only sorting by `name` or `creationTimestamp desc` is
150152// supported.
150153func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
150154	c.urlParams_.Set("orderBy", orderBy)
150155	return c
150156}
150157
150158// PageToken sets the optional parameter "pageToken": Specifies a page
150159// token to use. Set `pageToken` to the `nextPageToken` returned by a
150160// previous list request to get the next page of results.
150161func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
150162	c.urlParams_.Set("pageToken", pageToken)
150163	return c
150164}
150165
150166// ReturnPartialSuccess sets the optional parameter
150167// "returnPartialSuccess": Opt-in for partial success behavior which
150168// provides partial results in case of failure. The default value is
150169// false and the logic is the same as today.
150170func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall {
150171	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
150172	return c
150173}
150174
150175// Fields allows partial responses to be retrieved. See
150176// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150177// for more information.
150178func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
150179	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150180	return c
150181}
150182
150183// IfNoneMatch sets the optional parameter which makes the operation
150184// fail if the object's ETag matches the given value. This is useful for
150185// getting updates only after the object has changed since the last
150186// request. Use googleapi.IsNotModified to check whether the response
150187// error from Do is the result of In-None-Match.
150188func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
150189	c.ifNoneMatch_ = entityTag
150190	return c
150191}
150192
150193// Context sets the context to be used in this call's Do method. Any
150194// pending HTTP request will be aborted if the provided context is
150195// canceled.
150196func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
150197	c.ctx_ = ctx
150198	return c
150199}
150200
150201// Header returns an http.Header that can be modified by the caller to
150202// add HTTP headers to the request.
150203func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
150204	if c.header_ == nil {
150205		c.header_ = make(http.Header)
150206	}
150207	return c.header_
150208}
150209
150210func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
150211	reqHeaders := make(http.Header)
150212	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
150213	for k, v := range c.header_ {
150214		reqHeaders[k] = v
150215	}
150216	reqHeaders.Set("User-Agent", c.s.userAgent())
150217	if c.ifNoneMatch_ != "" {
150218		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150219	}
150220	var body io.Reader = nil
150221	c.urlParams_.Set("alt", alt)
150222	c.urlParams_.Set("prettyPrint", "false")
150223	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
150224	urls += "?" + c.urlParams_.Encode()
150225	req, err := http.NewRequest("GET", urls, body)
150226	if err != nil {
150227		return nil, err
150228	}
150229	req.Header = reqHeaders
150230	googleapi.Expand(req.URL, map[string]string{
150231		"project": c.project,
150232		"region":  c.region,
150233		"router":  c.router,
150234	})
150235	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150236}
150237
150238// Do executes the "compute.routers.getNatMappingInfo" call.
150239// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
150240// Any non-2xx status code is an error. Response headers are in either
150241// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
150242// was returned at all) in error.(*googleapi.Error).Header. Use
150243// googleapi.IsNotModified to check whether the returned error was
150244// because http.StatusNotModified was returned.
150245func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
150246	gensupport.SetOptions(c.urlParams_, opts...)
150247	res, err := c.doRequest("json")
150248	if res != nil && res.StatusCode == http.StatusNotModified {
150249		if res.Body != nil {
150250			res.Body.Close()
150251		}
150252		return nil, &googleapi.Error{
150253			Code:   res.StatusCode,
150254			Header: res.Header,
150255		}
150256	}
150257	if err != nil {
150258		return nil, err
150259	}
150260	defer googleapi.CloseBody(res)
150261	if err := googleapi.CheckResponse(res); err != nil {
150262		return nil, err
150263	}
150264	ret := &VmEndpointNatMappingsList{
150265		ServerResponse: googleapi.ServerResponse{
150266			Header:         res.Header,
150267			HTTPStatusCode: res.StatusCode,
150268		},
150269	}
150270	target := &ret
150271	if err := gensupport.DecodeResponse(target, res); err != nil {
150272		return nil, err
150273	}
150274	return ret, nil
150275	// {
150276	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
150277	//   "httpMethod": "GET",
150278	//   "id": "compute.routers.getNatMappingInfo",
150279	//   "parameterOrder": [
150280	//     "project",
150281	//     "region",
150282	//     "router"
150283	//   ],
150284	//   "parameters": {
150285	//     "filter": {
150286	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
150287	//       "location": "query",
150288	//       "type": "string"
150289	//     },
150290	//     "maxResults": {
150291	//       "default": "500",
150292	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
150293	//       "format": "uint32",
150294	//       "location": "query",
150295	//       "minimum": "0",
150296	//       "type": "integer"
150297	//     },
150298	//     "natName": {
150299	//       "description": "Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.",
150300	//       "location": "query",
150301	//       "type": "string"
150302	//     },
150303	//     "orderBy": {
150304	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
150305	//       "location": "query",
150306	//       "type": "string"
150307	//     },
150308	//     "pageToken": {
150309	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150310	//       "location": "query",
150311	//       "type": "string"
150312	//     },
150313	//     "project": {
150314	//       "description": "Project ID for this request.",
150315	//       "location": "path",
150316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150317	//       "required": true,
150318	//       "type": "string"
150319	//     },
150320	//     "region": {
150321	//       "description": "Name of the region for this request.",
150322	//       "location": "path",
150323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150324	//       "required": true,
150325	//       "type": "string"
150326	//     },
150327	//     "returnPartialSuccess": {
150328	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
150329	//       "location": "query",
150330	//       "type": "boolean"
150331	//     },
150332	//     "router": {
150333	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
150334	//       "location": "path",
150335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150336	//       "required": true,
150337	//       "type": "string"
150338	//     }
150339	//   },
150340	//   "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
150341	//   "response": {
150342	//     "$ref": "VmEndpointNatMappingsList"
150343	//   },
150344	//   "scopes": [
150345	//     "https://www.googleapis.com/auth/cloud-platform",
150346	//     "https://www.googleapis.com/auth/compute",
150347	//     "https://www.googleapis.com/auth/compute.readonly"
150348	//   ]
150349	// }
150350
150351}
150352
150353// Pages invokes f for each page of results.
150354// A non-nil error returned from f will halt the iteration.
150355// The provided context supersedes any context provided to the Context method.
150356func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
150357	c.ctx_ = ctx
150358	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150359	for {
150360		x, err := c.Do()
150361		if err != nil {
150362			return err
150363		}
150364		if err := f(x); err != nil {
150365			return err
150366		}
150367		if x.NextPageToken == "" {
150368			return nil
150369		}
150370		c.PageToken(x.NextPageToken)
150371	}
150372}
150373
150374// method id "compute.routers.getRouterStatus":
150375
150376type RoutersGetRouterStatusCall struct {
150377	s            *Service
150378	project      string
150379	region       string
150380	router       string
150381	urlParams_   gensupport.URLParams
150382	ifNoneMatch_ string
150383	ctx_         context.Context
150384	header_      http.Header
150385}
150386
150387// GetRouterStatus: Retrieves runtime information of the specified
150388// router.
150389func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
150390	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150391	c.project = project
150392	c.region = region
150393	c.router = router
150394	return c
150395}
150396
150397// Fields allows partial responses to be retrieved. See
150398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150399// for more information.
150400func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
150401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150402	return c
150403}
150404
150405// IfNoneMatch sets the optional parameter which makes the operation
150406// fail if the object's ETag matches the given value. This is useful for
150407// getting updates only after the object has changed since the last
150408// request. Use googleapi.IsNotModified to check whether the response
150409// error from Do is the result of In-None-Match.
150410func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
150411	c.ifNoneMatch_ = entityTag
150412	return c
150413}
150414
150415// Context sets the context to be used in this call's Do method. Any
150416// pending HTTP request will be aborted if the provided context is
150417// canceled.
150418func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
150419	c.ctx_ = ctx
150420	return c
150421}
150422
150423// Header returns an http.Header that can be modified by the caller to
150424// add HTTP headers to the request.
150425func (c *RoutersGetRouterStatusCall) Header() http.Header {
150426	if c.header_ == nil {
150427		c.header_ = make(http.Header)
150428	}
150429	return c.header_
150430}
150431
150432func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
150433	reqHeaders := make(http.Header)
150434	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
150435	for k, v := range c.header_ {
150436		reqHeaders[k] = v
150437	}
150438	reqHeaders.Set("User-Agent", c.s.userAgent())
150439	if c.ifNoneMatch_ != "" {
150440		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150441	}
150442	var body io.Reader = nil
150443	c.urlParams_.Set("alt", alt)
150444	c.urlParams_.Set("prettyPrint", "false")
150445	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
150446	urls += "?" + c.urlParams_.Encode()
150447	req, err := http.NewRequest("GET", urls, body)
150448	if err != nil {
150449		return nil, err
150450	}
150451	req.Header = reqHeaders
150452	googleapi.Expand(req.URL, map[string]string{
150453		"project": c.project,
150454		"region":  c.region,
150455		"router":  c.router,
150456	})
150457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150458}
150459
150460// Do executes the "compute.routers.getRouterStatus" call.
150461// Exactly one of *RouterStatusResponse or error will be non-nil. Any
150462// non-2xx status code is an error. Response headers are in either
150463// *RouterStatusResponse.ServerResponse.Header or (if a response was
150464// returned at all) in error.(*googleapi.Error).Header. Use
150465// googleapi.IsNotModified to check whether the returned error was
150466// because http.StatusNotModified was returned.
150467func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
150468	gensupport.SetOptions(c.urlParams_, opts...)
150469	res, err := c.doRequest("json")
150470	if res != nil && res.StatusCode == http.StatusNotModified {
150471		if res.Body != nil {
150472			res.Body.Close()
150473		}
150474		return nil, &googleapi.Error{
150475			Code:   res.StatusCode,
150476			Header: res.Header,
150477		}
150478	}
150479	if err != nil {
150480		return nil, err
150481	}
150482	defer googleapi.CloseBody(res)
150483	if err := googleapi.CheckResponse(res); err != nil {
150484		return nil, err
150485	}
150486	ret := &RouterStatusResponse{
150487		ServerResponse: googleapi.ServerResponse{
150488			Header:         res.Header,
150489			HTTPStatusCode: res.StatusCode,
150490		},
150491	}
150492	target := &ret
150493	if err := gensupport.DecodeResponse(target, res); err != nil {
150494		return nil, err
150495	}
150496	return ret, nil
150497	// {
150498	//   "description": "Retrieves runtime information of the specified router.",
150499	//   "httpMethod": "GET",
150500	//   "id": "compute.routers.getRouterStatus",
150501	//   "parameterOrder": [
150502	//     "project",
150503	//     "region",
150504	//     "router"
150505	//   ],
150506	//   "parameters": {
150507	//     "project": {
150508	//       "description": "Project ID for this request.",
150509	//       "location": "path",
150510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150511	//       "required": true,
150512	//       "type": "string"
150513	//     },
150514	//     "region": {
150515	//       "description": "Name of the region for this request.",
150516	//       "location": "path",
150517	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150518	//       "required": true,
150519	//       "type": "string"
150520	//     },
150521	//     "router": {
150522	//       "description": "Name of the Router resource to query.",
150523	//       "location": "path",
150524	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150525	//       "required": true,
150526	//       "type": "string"
150527	//     }
150528	//   },
150529	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
150530	//   "response": {
150531	//     "$ref": "RouterStatusResponse"
150532	//   },
150533	//   "scopes": [
150534	//     "https://www.googleapis.com/auth/cloud-platform",
150535	//     "https://www.googleapis.com/auth/compute",
150536	//     "https://www.googleapis.com/auth/compute.readonly"
150537	//   ]
150538	// }
150539
150540}
150541
150542// method id "compute.routers.insert":
150543
150544type RoutersInsertCall struct {
150545	s          *Service
150546	project    string
150547	region     string
150548	router     *Router
150549	urlParams_ gensupport.URLParams
150550	ctx_       context.Context
150551	header_    http.Header
150552}
150553
150554// Insert: Creates a Router resource in the specified project and region
150555// using the data included in the request.
150556func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
150557	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150558	c.project = project
150559	c.region = region
150560	c.router = router
150561	return c
150562}
150563
150564// RequestId sets the optional parameter "requestId": An optional
150565// request ID to identify requests. Specify a unique request ID so that
150566// if you must retry your request, the server will know to ignore the
150567// request if it has already been completed.
150568//
150569// For example, consider a situation where you make an initial request
150570// and the request times out. If you make the request again with the
150571// same request ID, the server can check if original operation with the
150572// same request ID was received, and if so, will ignore the second
150573// request. This prevents clients from accidentally creating duplicate
150574// commitments.
150575//
150576// The request ID must be a valid UUID with the exception that zero UUID
150577// is not supported (00000000-0000-0000-0000-000000000000).
150578func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
150579	c.urlParams_.Set("requestId", requestId)
150580	return c
150581}
150582
150583// Fields allows partial responses to be retrieved. See
150584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150585// for more information.
150586func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
150587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150588	return c
150589}
150590
150591// Context sets the context to be used in this call's Do method. Any
150592// pending HTTP request will be aborted if the provided context is
150593// canceled.
150594func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
150595	c.ctx_ = ctx
150596	return c
150597}
150598
150599// Header returns an http.Header that can be modified by the caller to
150600// add HTTP headers to the request.
150601func (c *RoutersInsertCall) Header() http.Header {
150602	if c.header_ == nil {
150603		c.header_ = make(http.Header)
150604	}
150605	return c.header_
150606}
150607
150608func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
150609	reqHeaders := make(http.Header)
150610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
150611	for k, v := range c.header_ {
150612		reqHeaders[k] = v
150613	}
150614	reqHeaders.Set("User-Agent", c.s.userAgent())
150615	var body io.Reader = nil
150616	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
150617	if err != nil {
150618		return nil, err
150619	}
150620	reqHeaders.Set("Content-Type", "application/json")
150621	c.urlParams_.Set("alt", alt)
150622	c.urlParams_.Set("prettyPrint", "false")
150623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
150624	urls += "?" + c.urlParams_.Encode()
150625	req, err := http.NewRequest("POST", urls, body)
150626	if err != nil {
150627		return nil, err
150628	}
150629	req.Header = reqHeaders
150630	googleapi.Expand(req.URL, map[string]string{
150631		"project": c.project,
150632		"region":  c.region,
150633	})
150634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150635}
150636
150637// Do executes the "compute.routers.insert" call.
150638// Exactly one of *Operation or error will be non-nil. Any non-2xx
150639// status code is an error. Response headers are in either
150640// *Operation.ServerResponse.Header or (if a response was returned at
150641// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150642// to check whether the returned error was because
150643// http.StatusNotModified was returned.
150644func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150645	gensupport.SetOptions(c.urlParams_, opts...)
150646	res, err := c.doRequest("json")
150647	if res != nil && res.StatusCode == http.StatusNotModified {
150648		if res.Body != nil {
150649			res.Body.Close()
150650		}
150651		return nil, &googleapi.Error{
150652			Code:   res.StatusCode,
150653			Header: res.Header,
150654		}
150655	}
150656	if err != nil {
150657		return nil, err
150658	}
150659	defer googleapi.CloseBody(res)
150660	if err := googleapi.CheckResponse(res); err != nil {
150661		return nil, err
150662	}
150663	ret := &Operation{
150664		ServerResponse: googleapi.ServerResponse{
150665			Header:         res.Header,
150666			HTTPStatusCode: res.StatusCode,
150667		},
150668	}
150669	target := &ret
150670	if err := gensupport.DecodeResponse(target, res); err != nil {
150671		return nil, err
150672	}
150673	return ret, nil
150674	// {
150675	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
150676	//   "httpMethod": "POST",
150677	//   "id": "compute.routers.insert",
150678	//   "parameterOrder": [
150679	//     "project",
150680	//     "region"
150681	//   ],
150682	//   "parameters": {
150683	//     "project": {
150684	//       "description": "Project ID for this request.",
150685	//       "location": "path",
150686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150687	//       "required": true,
150688	//       "type": "string"
150689	//     },
150690	//     "region": {
150691	//       "description": "Name of the region for this request.",
150692	//       "location": "path",
150693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150694	//       "required": true,
150695	//       "type": "string"
150696	//     },
150697	//     "requestId": {
150698	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150699	//       "location": "query",
150700	//       "type": "string"
150701	//     }
150702	//   },
150703	//   "path": "{project}/regions/{region}/routers",
150704	//   "request": {
150705	//     "$ref": "Router"
150706	//   },
150707	//   "response": {
150708	//     "$ref": "Operation"
150709	//   },
150710	//   "scopes": [
150711	//     "https://www.googleapis.com/auth/cloud-platform",
150712	//     "https://www.googleapis.com/auth/compute"
150713	//   ]
150714	// }
150715
150716}
150717
150718// method id "compute.routers.list":
150719
150720type RoutersListCall struct {
150721	s            *Service
150722	project      string
150723	region       string
150724	urlParams_   gensupport.URLParams
150725	ifNoneMatch_ string
150726	ctx_         context.Context
150727	header_      http.Header
150728}
150729
150730// List: Retrieves a list of Router resources available to the specified
150731// project.
150732func (r *RoutersService) List(project string, region string) *RoutersListCall {
150733	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150734	c.project = project
150735	c.region = region
150736	return c
150737}
150738
150739// Filter sets the optional parameter "filter": A filter expression that
150740// filters resources listed in the response. The expression must specify
150741// the field name, a comparison operator, and the value that you want to
150742// use for filtering. The value must be a string, a number, or a
150743// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150744// `<`.
150745//
150746// For example, if you are filtering Compute Engine instances, you can
150747// exclude instances named `example-instance` by specifying `name !=
150748// example-instance`.
150749//
150750// You can also filter nested fields. For example, you could specify
150751// `scheduling.automaticRestart = false` to include instances only if
150752// they are not scheduled for automatic restarts. You can use filtering
150753// on nested fields to filter based on resource labels.
150754//
150755// To filter on multiple expressions, provide each separate expression
150756// within parentheses. For example: ``` (scheduling.automaticRestart =
150757// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
150758// is an `AND` expression. However, you can include `AND` and `OR`
150759// expressions explicitly. For example: ``` (cpuPlatform = "Intel
150760// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
150761// (scheduling.automaticRestart = true) ```
150762func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
150763	c.urlParams_.Set("filter", filter)
150764	return c
150765}
150766
150767// MaxResults sets the optional parameter "maxResults": The maximum
150768// number of results per page that should be returned. If the number of
150769// available results is larger than `maxResults`, Compute Engine returns
150770// a `nextPageToken` that can be used to get the next page of results in
150771// subsequent list requests. Acceptable values are `0` to `500`,
150772// inclusive. (Default: `500`)
150773func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
150774	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150775	return c
150776}
150777
150778// OrderBy sets the optional parameter "orderBy": Sorts list results by
150779// a certain order. By default, results are returned in alphanumerical
150780// order based on the resource name.
150781//
150782// You can also sort results in descending order based on the creation
150783// timestamp using `orderBy="creationTimestamp desc". This sorts
150784// results based on the `creationTimestamp` field in reverse
150785// chronological order (newest result first). Use this to sort resources
150786// like operations so that the newest operation is returned
150787// first.
150788//
150789// Currently, only sorting by `name` or `creationTimestamp desc` is
150790// supported.
150791func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
150792	c.urlParams_.Set("orderBy", orderBy)
150793	return c
150794}
150795
150796// PageToken sets the optional parameter "pageToken": Specifies a page
150797// token to use. Set `pageToken` to the `nextPageToken` returned by a
150798// previous list request to get the next page of results.
150799func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
150800	c.urlParams_.Set("pageToken", pageToken)
150801	return c
150802}
150803
150804// ReturnPartialSuccess sets the optional parameter
150805// "returnPartialSuccess": Opt-in for partial success behavior which
150806// provides partial results in case of failure. The default value is
150807// false and the logic is the same as today.
150808func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall {
150809	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
150810	return c
150811}
150812
150813// Fields allows partial responses to be retrieved. See
150814// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150815// for more information.
150816func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
150817	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150818	return c
150819}
150820
150821// IfNoneMatch sets the optional parameter which makes the operation
150822// fail if the object's ETag matches the given value. This is useful for
150823// getting updates only after the object has changed since the last
150824// request. Use googleapi.IsNotModified to check whether the response
150825// error from Do is the result of In-None-Match.
150826func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
150827	c.ifNoneMatch_ = entityTag
150828	return c
150829}
150830
150831// Context sets the context to be used in this call's Do method. Any
150832// pending HTTP request will be aborted if the provided context is
150833// canceled.
150834func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
150835	c.ctx_ = ctx
150836	return c
150837}
150838
150839// Header returns an http.Header that can be modified by the caller to
150840// add HTTP headers to the request.
150841func (c *RoutersListCall) Header() http.Header {
150842	if c.header_ == nil {
150843		c.header_ = make(http.Header)
150844	}
150845	return c.header_
150846}
150847
150848func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
150849	reqHeaders := make(http.Header)
150850	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
150851	for k, v := range c.header_ {
150852		reqHeaders[k] = v
150853	}
150854	reqHeaders.Set("User-Agent", c.s.userAgent())
150855	if c.ifNoneMatch_ != "" {
150856		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150857	}
150858	var body io.Reader = nil
150859	c.urlParams_.Set("alt", alt)
150860	c.urlParams_.Set("prettyPrint", "false")
150861	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
150862	urls += "?" + c.urlParams_.Encode()
150863	req, err := http.NewRequest("GET", urls, body)
150864	if err != nil {
150865		return nil, err
150866	}
150867	req.Header = reqHeaders
150868	googleapi.Expand(req.URL, map[string]string{
150869		"project": c.project,
150870		"region":  c.region,
150871	})
150872	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150873}
150874
150875// Do executes the "compute.routers.list" call.
150876// Exactly one of *RouterList or error will be non-nil. Any non-2xx
150877// status code is an error. Response headers are in either
150878// *RouterList.ServerResponse.Header or (if a response was returned at
150879// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150880// to check whether the returned error was because
150881// http.StatusNotModified was returned.
150882func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
150883	gensupport.SetOptions(c.urlParams_, opts...)
150884	res, err := c.doRequest("json")
150885	if res != nil && res.StatusCode == http.StatusNotModified {
150886		if res.Body != nil {
150887			res.Body.Close()
150888		}
150889		return nil, &googleapi.Error{
150890			Code:   res.StatusCode,
150891			Header: res.Header,
150892		}
150893	}
150894	if err != nil {
150895		return nil, err
150896	}
150897	defer googleapi.CloseBody(res)
150898	if err := googleapi.CheckResponse(res); err != nil {
150899		return nil, err
150900	}
150901	ret := &RouterList{
150902		ServerResponse: googleapi.ServerResponse{
150903			Header:         res.Header,
150904			HTTPStatusCode: res.StatusCode,
150905		},
150906	}
150907	target := &ret
150908	if err := gensupport.DecodeResponse(target, res); err != nil {
150909		return nil, err
150910	}
150911	return ret, nil
150912	// {
150913	//   "description": "Retrieves a list of Router resources available to the specified project.",
150914	//   "httpMethod": "GET",
150915	//   "id": "compute.routers.list",
150916	//   "parameterOrder": [
150917	//     "project",
150918	//     "region"
150919	//   ],
150920	//   "parameters": {
150921	//     "filter": {
150922	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
150923	//       "location": "query",
150924	//       "type": "string"
150925	//     },
150926	//     "maxResults": {
150927	//       "default": "500",
150928	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
150929	//       "format": "uint32",
150930	//       "location": "query",
150931	//       "minimum": "0",
150932	//       "type": "integer"
150933	//     },
150934	//     "orderBy": {
150935	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
150936	//       "location": "query",
150937	//       "type": "string"
150938	//     },
150939	//     "pageToken": {
150940	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150941	//       "location": "query",
150942	//       "type": "string"
150943	//     },
150944	//     "project": {
150945	//       "description": "Project ID for this request.",
150946	//       "location": "path",
150947	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150948	//       "required": true,
150949	//       "type": "string"
150950	//     },
150951	//     "region": {
150952	//       "description": "Name of the region for this request.",
150953	//       "location": "path",
150954	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150955	//       "required": true,
150956	//       "type": "string"
150957	//     },
150958	//     "returnPartialSuccess": {
150959	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
150960	//       "location": "query",
150961	//       "type": "boolean"
150962	//     }
150963	//   },
150964	//   "path": "{project}/regions/{region}/routers",
150965	//   "response": {
150966	//     "$ref": "RouterList"
150967	//   },
150968	//   "scopes": [
150969	//     "https://www.googleapis.com/auth/cloud-platform",
150970	//     "https://www.googleapis.com/auth/compute",
150971	//     "https://www.googleapis.com/auth/compute.readonly"
150972	//   ]
150973	// }
150974
150975}
150976
150977// Pages invokes f for each page of results.
150978// A non-nil error returned from f will halt the iteration.
150979// The provided context supersedes any context provided to the Context method.
150980func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
150981	c.ctx_ = ctx
150982	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150983	for {
150984		x, err := c.Do()
150985		if err != nil {
150986			return err
150987		}
150988		if err := f(x); err != nil {
150989			return err
150990		}
150991		if x.NextPageToken == "" {
150992			return nil
150993		}
150994		c.PageToken(x.NextPageToken)
150995	}
150996}
150997
150998// method id "compute.routers.patch":
150999
151000type RoutersPatchCall struct {
151001	s          *Service
151002	project    string
151003	region     string
151004	router     string
151005	router2    *Router
151006	urlParams_ gensupport.URLParams
151007	ctx_       context.Context
151008	header_    http.Header
151009}
151010
151011// Patch: Patches the specified Router resource with the data included
151012// in the request. This method supports PATCH semantics and uses JSON
151013// merge patch format and processing rules.
151014func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
151015	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151016	c.project = project
151017	c.region = region
151018	c.router = router
151019	c.router2 = router2
151020	return c
151021}
151022
151023// RequestId sets the optional parameter "requestId": An optional
151024// request ID to identify requests. Specify a unique request ID so that
151025// if you must retry your request, the server will know to ignore the
151026// request if it has already been completed.
151027//
151028// For example, consider a situation where you make an initial request
151029// and the request times out. If you make the request again with the
151030// same request ID, the server can check if original operation with the
151031// same request ID was received, and if so, will ignore the second
151032// request. This prevents clients from accidentally creating duplicate
151033// commitments.
151034//
151035// The request ID must be a valid UUID with the exception that zero UUID
151036// is not supported (00000000-0000-0000-0000-000000000000).
151037func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
151038	c.urlParams_.Set("requestId", requestId)
151039	return c
151040}
151041
151042// Fields allows partial responses to be retrieved. See
151043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151044// for more information.
151045func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
151046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151047	return c
151048}
151049
151050// Context sets the context to be used in this call's Do method. Any
151051// pending HTTP request will be aborted if the provided context is
151052// canceled.
151053func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
151054	c.ctx_ = ctx
151055	return c
151056}
151057
151058// Header returns an http.Header that can be modified by the caller to
151059// add HTTP headers to the request.
151060func (c *RoutersPatchCall) Header() http.Header {
151061	if c.header_ == nil {
151062		c.header_ = make(http.Header)
151063	}
151064	return c.header_
151065}
151066
151067func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
151068	reqHeaders := make(http.Header)
151069	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
151070	for k, v := range c.header_ {
151071		reqHeaders[k] = v
151072	}
151073	reqHeaders.Set("User-Agent", c.s.userAgent())
151074	var body io.Reader = nil
151075	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
151076	if err != nil {
151077		return nil, err
151078	}
151079	reqHeaders.Set("Content-Type", "application/json")
151080	c.urlParams_.Set("alt", alt)
151081	c.urlParams_.Set("prettyPrint", "false")
151082	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
151083	urls += "?" + c.urlParams_.Encode()
151084	req, err := http.NewRequest("PATCH", urls, body)
151085	if err != nil {
151086		return nil, err
151087	}
151088	req.Header = reqHeaders
151089	googleapi.Expand(req.URL, map[string]string{
151090		"project": c.project,
151091		"region":  c.region,
151092		"router":  c.router,
151093	})
151094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151095}
151096
151097// Do executes the "compute.routers.patch" call.
151098// Exactly one of *Operation or error will be non-nil. Any non-2xx
151099// status code is an error. Response headers are in either
151100// *Operation.ServerResponse.Header or (if a response was returned at
151101// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151102// to check whether the returned error was because
151103// http.StatusNotModified was returned.
151104func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151105	gensupport.SetOptions(c.urlParams_, opts...)
151106	res, err := c.doRequest("json")
151107	if res != nil && res.StatusCode == http.StatusNotModified {
151108		if res.Body != nil {
151109			res.Body.Close()
151110		}
151111		return nil, &googleapi.Error{
151112			Code:   res.StatusCode,
151113			Header: res.Header,
151114		}
151115	}
151116	if err != nil {
151117		return nil, err
151118	}
151119	defer googleapi.CloseBody(res)
151120	if err := googleapi.CheckResponse(res); err != nil {
151121		return nil, err
151122	}
151123	ret := &Operation{
151124		ServerResponse: googleapi.ServerResponse{
151125			Header:         res.Header,
151126			HTTPStatusCode: res.StatusCode,
151127		},
151128	}
151129	target := &ret
151130	if err := gensupport.DecodeResponse(target, res); err != nil {
151131		return nil, err
151132	}
151133	return ret, nil
151134	// {
151135	//   "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.",
151136	//   "httpMethod": "PATCH",
151137	//   "id": "compute.routers.patch",
151138	//   "parameterOrder": [
151139	//     "project",
151140	//     "region",
151141	//     "router"
151142	//   ],
151143	//   "parameters": {
151144	//     "project": {
151145	//       "description": "Project ID for this request.",
151146	//       "location": "path",
151147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151148	//       "required": true,
151149	//       "type": "string"
151150	//     },
151151	//     "region": {
151152	//       "description": "Name of the region for this request.",
151153	//       "location": "path",
151154	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151155	//       "required": true,
151156	//       "type": "string"
151157	//     },
151158	//     "requestId": {
151159	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151160	//       "location": "query",
151161	//       "type": "string"
151162	//     },
151163	//     "router": {
151164	//       "description": "Name of the Router resource to patch.",
151165	//       "location": "path",
151166	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151167	//       "required": true,
151168	//       "type": "string"
151169	//     }
151170	//   },
151171	//   "path": "{project}/regions/{region}/routers/{router}",
151172	//   "request": {
151173	//     "$ref": "Router"
151174	//   },
151175	//   "response": {
151176	//     "$ref": "Operation"
151177	//   },
151178	//   "scopes": [
151179	//     "https://www.googleapis.com/auth/cloud-platform",
151180	//     "https://www.googleapis.com/auth/compute"
151181	//   ]
151182	// }
151183
151184}
151185
151186// method id "compute.routers.preview":
151187
151188type RoutersPreviewCall struct {
151189	s          *Service
151190	project    string
151191	region     string
151192	router     string
151193	router2    *Router
151194	urlParams_ gensupport.URLParams
151195	ctx_       context.Context
151196	header_    http.Header
151197}
151198
151199// Preview: Preview fields auto-generated during router create and
151200// update operations. Calling this method does NOT create or update the
151201// router.
151202func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
151203	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151204	c.project = project
151205	c.region = region
151206	c.router = router
151207	c.router2 = router2
151208	return c
151209}
151210
151211// Fields allows partial responses to be retrieved. See
151212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151213// for more information.
151214func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
151215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151216	return c
151217}
151218
151219// Context sets the context to be used in this call's Do method. Any
151220// pending HTTP request will be aborted if the provided context is
151221// canceled.
151222func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
151223	c.ctx_ = ctx
151224	return c
151225}
151226
151227// Header returns an http.Header that can be modified by the caller to
151228// add HTTP headers to the request.
151229func (c *RoutersPreviewCall) Header() http.Header {
151230	if c.header_ == nil {
151231		c.header_ = make(http.Header)
151232	}
151233	return c.header_
151234}
151235
151236func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
151237	reqHeaders := make(http.Header)
151238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
151239	for k, v := range c.header_ {
151240		reqHeaders[k] = v
151241	}
151242	reqHeaders.Set("User-Agent", c.s.userAgent())
151243	var body io.Reader = nil
151244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
151245	if err != nil {
151246		return nil, err
151247	}
151248	reqHeaders.Set("Content-Type", "application/json")
151249	c.urlParams_.Set("alt", alt)
151250	c.urlParams_.Set("prettyPrint", "false")
151251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
151252	urls += "?" + c.urlParams_.Encode()
151253	req, err := http.NewRequest("POST", urls, body)
151254	if err != nil {
151255		return nil, err
151256	}
151257	req.Header = reqHeaders
151258	googleapi.Expand(req.URL, map[string]string{
151259		"project": c.project,
151260		"region":  c.region,
151261		"router":  c.router,
151262	})
151263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151264}
151265
151266// Do executes the "compute.routers.preview" call.
151267// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
151268// non-2xx status code is an error. Response headers are in either
151269// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
151270// returned at all) in error.(*googleapi.Error).Header. Use
151271// googleapi.IsNotModified to check whether the returned error was
151272// because http.StatusNotModified was returned.
151273func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
151274	gensupport.SetOptions(c.urlParams_, opts...)
151275	res, err := c.doRequest("json")
151276	if res != nil && res.StatusCode == http.StatusNotModified {
151277		if res.Body != nil {
151278			res.Body.Close()
151279		}
151280		return nil, &googleapi.Error{
151281			Code:   res.StatusCode,
151282			Header: res.Header,
151283		}
151284	}
151285	if err != nil {
151286		return nil, err
151287	}
151288	defer googleapi.CloseBody(res)
151289	if err := googleapi.CheckResponse(res); err != nil {
151290		return nil, err
151291	}
151292	ret := &RoutersPreviewResponse{
151293		ServerResponse: googleapi.ServerResponse{
151294			Header:         res.Header,
151295			HTTPStatusCode: res.StatusCode,
151296		},
151297	}
151298	target := &ret
151299	if err := gensupport.DecodeResponse(target, res); err != nil {
151300		return nil, err
151301	}
151302	return ret, nil
151303	// {
151304	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
151305	//   "httpMethod": "POST",
151306	//   "id": "compute.routers.preview",
151307	//   "parameterOrder": [
151308	//     "project",
151309	//     "region",
151310	//     "router"
151311	//   ],
151312	//   "parameters": {
151313	//     "project": {
151314	//       "description": "Project ID for this request.",
151315	//       "location": "path",
151316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151317	//       "required": true,
151318	//       "type": "string"
151319	//     },
151320	//     "region": {
151321	//       "description": "Name of the region for this request.",
151322	//       "location": "path",
151323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151324	//       "required": true,
151325	//       "type": "string"
151326	//     },
151327	//     "router": {
151328	//       "description": "Name of the Router resource to query.",
151329	//       "location": "path",
151330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151331	//       "required": true,
151332	//       "type": "string"
151333	//     }
151334	//   },
151335	//   "path": "{project}/regions/{region}/routers/{router}/preview",
151336	//   "request": {
151337	//     "$ref": "Router"
151338	//   },
151339	//   "response": {
151340	//     "$ref": "RoutersPreviewResponse"
151341	//   },
151342	//   "scopes": [
151343	//     "https://www.googleapis.com/auth/cloud-platform",
151344	//     "https://www.googleapis.com/auth/compute",
151345	//     "https://www.googleapis.com/auth/compute.readonly"
151346	//   ]
151347	// }
151348
151349}
151350
151351// method id "compute.routers.testIamPermissions":
151352
151353type RoutersTestIamPermissionsCall struct {
151354	s                      *Service
151355	project                string
151356	region                 string
151357	resource               string
151358	testpermissionsrequest *TestPermissionsRequest
151359	urlParams_             gensupport.URLParams
151360	ctx_                   context.Context
151361	header_                http.Header
151362}
151363
151364// TestIamPermissions: Returns permissions that a caller has on the
151365// specified resource.
151366func (r *RoutersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutersTestIamPermissionsCall {
151367	c := &RoutersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151368	c.project = project
151369	c.region = region
151370	c.resource = resource
151371	c.testpermissionsrequest = testpermissionsrequest
151372	return c
151373}
151374
151375// Fields allows partial responses to be retrieved. See
151376// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151377// for more information.
151378func (c *RoutersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutersTestIamPermissionsCall {
151379	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151380	return c
151381}
151382
151383// Context sets the context to be used in this call's Do method. Any
151384// pending HTTP request will be aborted if the provided context is
151385// canceled.
151386func (c *RoutersTestIamPermissionsCall) Context(ctx context.Context) *RoutersTestIamPermissionsCall {
151387	c.ctx_ = ctx
151388	return c
151389}
151390
151391// Header returns an http.Header that can be modified by the caller to
151392// add HTTP headers to the request.
151393func (c *RoutersTestIamPermissionsCall) Header() http.Header {
151394	if c.header_ == nil {
151395		c.header_ = make(http.Header)
151396	}
151397	return c.header_
151398}
151399
151400func (c *RoutersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
151401	reqHeaders := make(http.Header)
151402	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
151403	for k, v := range c.header_ {
151404		reqHeaders[k] = v
151405	}
151406	reqHeaders.Set("User-Agent", c.s.userAgent())
151407	var body io.Reader = nil
151408	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
151409	if err != nil {
151410		return nil, err
151411	}
151412	reqHeaders.Set("Content-Type", "application/json")
151413	c.urlParams_.Set("alt", alt)
151414	c.urlParams_.Set("prettyPrint", "false")
151415	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{resource}/testIamPermissions")
151416	urls += "?" + c.urlParams_.Encode()
151417	req, err := http.NewRequest("POST", urls, body)
151418	if err != nil {
151419		return nil, err
151420	}
151421	req.Header = reqHeaders
151422	googleapi.Expand(req.URL, map[string]string{
151423		"project":  c.project,
151424		"region":   c.region,
151425		"resource": c.resource,
151426	})
151427	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151428}
151429
151430// Do executes the "compute.routers.testIamPermissions" call.
151431// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
151432// non-2xx status code is an error. Response headers are in either
151433// *TestPermissionsResponse.ServerResponse.Header or (if a response was
151434// returned at all) in error.(*googleapi.Error).Header. Use
151435// googleapi.IsNotModified to check whether the returned error was
151436// because http.StatusNotModified was returned.
151437func (c *RoutersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
151438	gensupport.SetOptions(c.urlParams_, opts...)
151439	res, err := c.doRequest("json")
151440	if res != nil && res.StatusCode == http.StatusNotModified {
151441		if res.Body != nil {
151442			res.Body.Close()
151443		}
151444		return nil, &googleapi.Error{
151445			Code:   res.StatusCode,
151446			Header: res.Header,
151447		}
151448	}
151449	if err != nil {
151450		return nil, err
151451	}
151452	defer googleapi.CloseBody(res)
151453	if err := googleapi.CheckResponse(res); err != nil {
151454		return nil, err
151455	}
151456	ret := &TestPermissionsResponse{
151457		ServerResponse: googleapi.ServerResponse{
151458			Header:         res.Header,
151459			HTTPStatusCode: res.StatusCode,
151460		},
151461	}
151462	target := &ret
151463	if err := gensupport.DecodeResponse(target, res); err != nil {
151464		return nil, err
151465	}
151466	return ret, nil
151467	// {
151468	//   "description": "Returns permissions that a caller has on the specified resource.",
151469	//   "httpMethod": "POST",
151470	//   "id": "compute.routers.testIamPermissions",
151471	//   "parameterOrder": [
151472	//     "project",
151473	//     "region",
151474	//     "resource"
151475	//   ],
151476	//   "parameters": {
151477	//     "project": {
151478	//       "description": "Project ID for this request.",
151479	//       "location": "path",
151480	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151481	//       "required": true,
151482	//       "type": "string"
151483	//     },
151484	//     "region": {
151485	//       "description": "The name of the region for this request.",
151486	//       "location": "path",
151487	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151488	//       "required": true,
151489	//       "type": "string"
151490	//     },
151491	//     "resource": {
151492	//       "description": "Name or id of the resource for this request.",
151493	//       "location": "path",
151494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151495	//       "required": true,
151496	//       "type": "string"
151497	//     }
151498	//   },
151499	//   "path": "{project}/regions/{region}/routers/{resource}/testIamPermissions",
151500	//   "request": {
151501	//     "$ref": "TestPermissionsRequest"
151502	//   },
151503	//   "response": {
151504	//     "$ref": "TestPermissionsResponse"
151505	//   },
151506	//   "scopes": [
151507	//     "https://www.googleapis.com/auth/cloud-platform",
151508	//     "https://www.googleapis.com/auth/compute",
151509	//     "https://www.googleapis.com/auth/compute.readonly"
151510	//   ]
151511	// }
151512
151513}
151514
151515// method id "compute.routers.update":
151516
151517type RoutersUpdateCall struct {
151518	s          *Service
151519	project    string
151520	region     string
151521	router     string
151522	router2    *Router
151523	urlParams_ gensupport.URLParams
151524	ctx_       context.Context
151525	header_    http.Header
151526}
151527
151528// Update: Updates the specified Router resource with the data included
151529// in the request. This method conforms to PUT semantics, which requests
151530// that the state of the target resource be created or replaced with the
151531// state defined by the representation enclosed in the request message
151532// payload.
151533func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
151534	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151535	c.project = project
151536	c.region = region
151537	c.router = router
151538	c.router2 = router2
151539	return c
151540}
151541
151542// RequestId sets the optional parameter "requestId": An optional
151543// request ID to identify requests. Specify a unique request ID so that
151544// if you must retry your request, the server will know to ignore the
151545// request if it has already been completed.
151546//
151547// For example, consider a situation where you make an initial request
151548// and the request times out. If you make the request again with the
151549// same request ID, the server can check if original operation with the
151550// same request ID was received, and if so, will ignore the second
151551// request. This prevents clients from accidentally creating duplicate
151552// commitments.
151553//
151554// The request ID must be a valid UUID with the exception that zero UUID
151555// is not supported (00000000-0000-0000-0000-000000000000).
151556func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
151557	c.urlParams_.Set("requestId", requestId)
151558	return c
151559}
151560
151561// Fields allows partial responses to be retrieved. See
151562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151563// for more information.
151564func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
151565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151566	return c
151567}
151568
151569// Context sets the context to be used in this call's Do method. Any
151570// pending HTTP request will be aborted if the provided context is
151571// canceled.
151572func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
151573	c.ctx_ = ctx
151574	return c
151575}
151576
151577// Header returns an http.Header that can be modified by the caller to
151578// add HTTP headers to the request.
151579func (c *RoutersUpdateCall) Header() http.Header {
151580	if c.header_ == nil {
151581		c.header_ = make(http.Header)
151582	}
151583	return c.header_
151584}
151585
151586func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
151587	reqHeaders := make(http.Header)
151588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
151589	for k, v := range c.header_ {
151590		reqHeaders[k] = v
151591	}
151592	reqHeaders.Set("User-Agent", c.s.userAgent())
151593	var body io.Reader = nil
151594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
151595	if err != nil {
151596		return nil, err
151597	}
151598	reqHeaders.Set("Content-Type", "application/json")
151599	c.urlParams_.Set("alt", alt)
151600	c.urlParams_.Set("prettyPrint", "false")
151601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
151602	urls += "?" + c.urlParams_.Encode()
151603	req, err := http.NewRequest("PUT", urls, body)
151604	if err != nil {
151605		return nil, err
151606	}
151607	req.Header = reqHeaders
151608	googleapi.Expand(req.URL, map[string]string{
151609		"project": c.project,
151610		"region":  c.region,
151611		"router":  c.router,
151612	})
151613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151614}
151615
151616// Do executes the "compute.routers.update" call.
151617// Exactly one of *Operation or error will be non-nil. Any non-2xx
151618// status code is an error. Response headers are in either
151619// *Operation.ServerResponse.Header or (if a response was returned at
151620// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151621// to check whether the returned error was because
151622// http.StatusNotModified was returned.
151623func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151624	gensupport.SetOptions(c.urlParams_, opts...)
151625	res, err := c.doRequest("json")
151626	if res != nil && res.StatusCode == http.StatusNotModified {
151627		if res.Body != nil {
151628			res.Body.Close()
151629		}
151630		return nil, &googleapi.Error{
151631			Code:   res.StatusCode,
151632			Header: res.Header,
151633		}
151634	}
151635	if err != nil {
151636		return nil, err
151637	}
151638	defer googleapi.CloseBody(res)
151639	if err := googleapi.CheckResponse(res); err != nil {
151640		return nil, err
151641	}
151642	ret := &Operation{
151643		ServerResponse: googleapi.ServerResponse{
151644			Header:         res.Header,
151645			HTTPStatusCode: res.StatusCode,
151646		},
151647	}
151648	target := &ret
151649	if err := gensupport.DecodeResponse(target, res); err != nil {
151650		return nil, err
151651	}
151652	return ret, nil
151653	// {
151654	//   "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.",
151655	//   "httpMethod": "PUT",
151656	//   "id": "compute.routers.update",
151657	//   "parameterOrder": [
151658	//     "project",
151659	//     "region",
151660	//     "router"
151661	//   ],
151662	//   "parameters": {
151663	//     "project": {
151664	//       "description": "Project ID for this request.",
151665	//       "location": "path",
151666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151667	//       "required": true,
151668	//       "type": "string"
151669	//     },
151670	//     "region": {
151671	//       "description": "Name of the region for this request.",
151672	//       "location": "path",
151673	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151674	//       "required": true,
151675	//       "type": "string"
151676	//     },
151677	//     "requestId": {
151678	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151679	//       "location": "query",
151680	//       "type": "string"
151681	//     },
151682	//     "router": {
151683	//       "description": "Name of the Router resource to update.",
151684	//       "location": "path",
151685	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151686	//       "required": true,
151687	//       "type": "string"
151688	//     }
151689	//   },
151690	//   "path": "{project}/regions/{region}/routers/{router}",
151691	//   "request": {
151692	//     "$ref": "Router"
151693	//   },
151694	//   "response": {
151695	//     "$ref": "Operation"
151696	//   },
151697	//   "scopes": [
151698	//     "https://www.googleapis.com/auth/cloud-platform",
151699	//     "https://www.googleapis.com/auth/compute"
151700	//   ]
151701	// }
151702
151703}
151704
151705// method id "compute.routes.delete":
151706
151707type RoutesDeleteCall struct {
151708	s          *Service
151709	project    string
151710	route      string
151711	urlParams_ gensupport.URLParams
151712	ctx_       context.Context
151713	header_    http.Header
151714}
151715
151716// Delete: Deletes the specified Route resource.
151717// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
151718func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
151719	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151720	c.project = project
151721	c.route = route
151722	return c
151723}
151724
151725// RequestId sets the optional parameter "requestId": An optional
151726// request ID to identify requests. Specify a unique request ID so that
151727// if you must retry your request, the server will know to ignore the
151728// request if it has already been completed.
151729//
151730// For example, consider a situation where you make an initial request
151731// and the request times out. If you make the request again with the
151732// same request ID, the server can check if original operation with the
151733// same request ID was received, and if so, will ignore the second
151734// request. This prevents clients from accidentally creating duplicate
151735// commitments.
151736//
151737// The request ID must be a valid UUID with the exception that zero UUID
151738// is not supported (00000000-0000-0000-0000-000000000000).
151739func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
151740	c.urlParams_.Set("requestId", requestId)
151741	return c
151742}
151743
151744// Fields allows partial responses to be retrieved. See
151745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151746// for more information.
151747func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
151748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151749	return c
151750}
151751
151752// Context sets the context to be used in this call's Do method. Any
151753// pending HTTP request will be aborted if the provided context is
151754// canceled.
151755func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
151756	c.ctx_ = ctx
151757	return c
151758}
151759
151760// Header returns an http.Header that can be modified by the caller to
151761// add HTTP headers to the request.
151762func (c *RoutesDeleteCall) Header() http.Header {
151763	if c.header_ == nil {
151764		c.header_ = make(http.Header)
151765	}
151766	return c.header_
151767}
151768
151769func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
151770	reqHeaders := make(http.Header)
151771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
151772	for k, v := range c.header_ {
151773		reqHeaders[k] = v
151774	}
151775	reqHeaders.Set("User-Agent", c.s.userAgent())
151776	var body io.Reader = nil
151777	c.urlParams_.Set("alt", alt)
151778	c.urlParams_.Set("prettyPrint", "false")
151779	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
151780	urls += "?" + c.urlParams_.Encode()
151781	req, err := http.NewRequest("DELETE", urls, body)
151782	if err != nil {
151783		return nil, err
151784	}
151785	req.Header = reqHeaders
151786	googleapi.Expand(req.URL, map[string]string{
151787		"project": c.project,
151788		"route":   c.route,
151789	})
151790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151791}
151792
151793// Do executes the "compute.routes.delete" call.
151794// Exactly one of *Operation or error will be non-nil. Any non-2xx
151795// status code is an error. Response headers are in either
151796// *Operation.ServerResponse.Header or (if a response was returned at
151797// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151798// to check whether the returned error was because
151799// http.StatusNotModified was returned.
151800func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151801	gensupport.SetOptions(c.urlParams_, opts...)
151802	res, err := c.doRequest("json")
151803	if res != nil && res.StatusCode == http.StatusNotModified {
151804		if res.Body != nil {
151805			res.Body.Close()
151806		}
151807		return nil, &googleapi.Error{
151808			Code:   res.StatusCode,
151809			Header: res.Header,
151810		}
151811	}
151812	if err != nil {
151813		return nil, err
151814	}
151815	defer googleapi.CloseBody(res)
151816	if err := googleapi.CheckResponse(res); err != nil {
151817		return nil, err
151818	}
151819	ret := &Operation{
151820		ServerResponse: googleapi.ServerResponse{
151821			Header:         res.Header,
151822			HTTPStatusCode: res.StatusCode,
151823		},
151824	}
151825	target := &ret
151826	if err := gensupport.DecodeResponse(target, res); err != nil {
151827		return nil, err
151828	}
151829	return ret, nil
151830	// {
151831	//   "description": "Deletes the specified Route resource.",
151832	//   "httpMethod": "DELETE",
151833	//   "id": "compute.routes.delete",
151834	//   "parameterOrder": [
151835	//     "project",
151836	//     "route"
151837	//   ],
151838	//   "parameters": {
151839	//     "project": {
151840	//       "description": "Project ID for this request.",
151841	//       "location": "path",
151842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151843	//       "required": true,
151844	//       "type": "string"
151845	//     },
151846	//     "requestId": {
151847	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151848	//       "location": "query",
151849	//       "type": "string"
151850	//     },
151851	//     "route": {
151852	//       "description": "Name of the Route resource to delete.",
151853	//       "location": "path",
151854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151855	//       "required": true,
151856	//       "type": "string"
151857	//     }
151858	//   },
151859	//   "path": "{project}/global/routes/{route}",
151860	//   "response": {
151861	//     "$ref": "Operation"
151862	//   },
151863	//   "scopes": [
151864	//     "https://www.googleapis.com/auth/cloud-platform",
151865	//     "https://www.googleapis.com/auth/compute"
151866	//   ]
151867	// }
151868
151869}
151870
151871// method id "compute.routes.get":
151872
151873type RoutesGetCall struct {
151874	s            *Service
151875	project      string
151876	route        string
151877	urlParams_   gensupport.URLParams
151878	ifNoneMatch_ string
151879	ctx_         context.Context
151880	header_      http.Header
151881}
151882
151883// Get: Returns the specified Route resource. Gets a list of available
151884// routes by making a list() request.
151885// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
151886func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
151887	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151888	c.project = project
151889	c.route = route
151890	return c
151891}
151892
151893// Fields allows partial responses to be retrieved. See
151894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151895// for more information.
151896func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
151897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151898	return c
151899}
151900
151901// IfNoneMatch sets the optional parameter which makes the operation
151902// fail if the object's ETag matches the given value. This is useful for
151903// getting updates only after the object has changed since the last
151904// request. Use googleapi.IsNotModified to check whether the response
151905// error from Do is the result of In-None-Match.
151906func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
151907	c.ifNoneMatch_ = entityTag
151908	return c
151909}
151910
151911// Context sets the context to be used in this call's Do method. Any
151912// pending HTTP request will be aborted if the provided context is
151913// canceled.
151914func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
151915	c.ctx_ = ctx
151916	return c
151917}
151918
151919// Header returns an http.Header that can be modified by the caller to
151920// add HTTP headers to the request.
151921func (c *RoutesGetCall) Header() http.Header {
151922	if c.header_ == nil {
151923		c.header_ = make(http.Header)
151924	}
151925	return c.header_
151926}
151927
151928func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
151929	reqHeaders := make(http.Header)
151930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
151931	for k, v := range c.header_ {
151932		reqHeaders[k] = v
151933	}
151934	reqHeaders.Set("User-Agent", c.s.userAgent())
151935	if c.ifNoneMatch_ != "" {
151936		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151937	}
151938	var body io.Reader = nil
151939	c.urlParams_.Set("alt", alt)
151940	c.urlParams_.Set("prettyPrint", "false")
151941	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
151942	urls += "?" + c.urlParams_.Encode()
151943	req, err := http.NewRequest("GET", urls, body)
151944	if err != nil {
151945		return nil, err
151946	}
151947	req.Header = reqHeaders
151948	googleapi.Expand(req.URL, map[string]string{
151949		"project": c.project,
151950		"route":   c.route,
151951	})
151952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151953}
151954
151955// Do executes the "compute.routes.get" call.
151956// Exactly one of *Route or error will be non-nil. Any non-2xx status
151957// code is an error. Response headers are in either
151958// *Route.ServerResponse.Header or (if a response was returned at all)
151959// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
151960// check whether the returned error was because http.StatusNotModified
151961// was returned.
151962func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
151963	gensupport.SetOptions(c.urlParams_, opts...)
151964	res, err := c.doRequest("json")
151965	if res != nil && res.StatusCode == http.StatusNotModified {
151966		if res.Body != nil {
151967			res.Body.Close()
151968		}
151969		return nil, &googleapi.Error{
151970			Code:   res.StatusCode,
151971			Header: res.Header,
151972		}
151973	}
151974	if err != nil {
151975		return nil, err
151976	}
151977	defer googleapi.CloseBody(res)
151978	if err := googleapi.CheckResponse(res); err != nil {
151979		return nil, err
151980	}
151981	ret := &Route{
151982		ServerResponse: googleapi.ServerResponse{
151983			Header:         res.Header,
151984			HTTPStatusCode: res.StatusCode,
151985		},
151986	}
151987	target := &ret
151988	if err := gensupport.DecodeResponse(target, res); err != nil {
151989		return nil, err
151990	}
151991	return ret, nil
151992	// {
151993	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
151994	//   "httpMethod": "GET",
151995	//   "id": "compute.routes.get",
151996	//   "parameterOrder": [
151997	//     "project",
151998	//     "route"
151999	//   ],
152000	//   "parameters": {
152001	//     "project": {
152002	//       "description": "Project ID for this request.",
152003	//       "location": "path",
152004	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152005	//       "required": true,
152006	//       "type": "string"
152007	//     },
152008	//     "route": {
152009	//       "description": "Name of the Route resource to return.",
152010	//       "location": "path",
152011	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152012	//       "required": true,
152013	//       "type": "string"
152014	//     }
152015	//   },
152016	//   "path": "{project}/global/routes/{route}",
152017	//   "response": {
152018	//     "$ref": "Route"
152019	//   },
152020	//   "scopes": [
152021	//     "https://www.googleapis.com/auth/cloud-platform",
152022	//     "https://www.googleapis.com/auth/compute",
152023	//     "https://www.googleapis.com/auth/compute.readonly"
152024	//   ]
152025	// }
152026
152027}
152028
152029// method id "compute.routes.insert":
152030
152031type RoutesInsertCall struct {
152032	s          *Service
152033	project    string
152034	route      *Route
152035	urlParams_ gensupport.URLParams
152036	ctx_       context.Context
152037	header_    http.Header
152038}
152039
152040// Insert: Creates a Route resource in the specified project using the
152041// data included in the request.
152042// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
152043func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
152044	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152045	c.project = project
152046	c.route = route
152047	return c
152048}
152049
152050// RequestId sets the optional parameter "requestId": An optional
152051// request ID to identify requests. Specify a unique request ID so that
152052// if you must retry your request, the server will know to ignore the
152053// request if it has already been completed.
152054//
152055// For example, consider a situation where you make an initial request
152056// and the request times out. If you make the request again with the
152057// same request ID, the server can check if original operation with the
152058// same request ID was received, and if so, will ignore the second
152059// request. This prevents clients from accidentally creating duplicate
152060// commitments.
152061//
152062// The request ID must be a valid UUID with the exception that zero UUID
152063// is not supported (00000000-0000-0000-0000-000000000000).
152064func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
152065	c.urlParams_.Set("requestId", requestId)
152066	return c
152067}
152068
152069// Fields allows partial responses to be retrieved. See
152070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152071// for more information.
152072func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
152073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152074	return c
152075}
152076
152077// Context sets the context to be used in this call's Do method. Any
152078// pending HTTP request will be aborted if the provided context is
152079// canceled.
152080func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
152081	c.ctx_ = ctx
152082	return c
152083}
152084
152085// Header returns an http.Header that can be modified by the caller to
152086// add HTTP headers to the request.
152087func (c *RoutesInsertCall) Header() http.Header {
152088	if c.header_ == nil {
152089		c.header_ = make(http.Header)
152090	}
152091	return c.header_
152092}
152093
152094func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
152095	reqHeaders := make(http.Header)
152096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
152097	for k, v := range c.header_ {
152098		reqHeaders[k] = v
152099	}
152100	reqHeaders.Set("User-Agent", c.s.userAgent())
152101	var body io.Reader = nil
152102	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
152103	if err != nil {
152104		return nil, err
152105	}
152106	reqHeaders.Set("Content-Type", "application/json")
152107	c.urlParams_.Set("alt", alt)
152108	c.urlParams_.Set("prettyPrint", "false")
152109	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
152110	urls += "?" + c.urlParams_.Encode()
152111	req, err := http.NewRequest("POST", urls, body)
152112	if err != nil {
152113		return nil, err
152114	}
152115	req.Header = reqHeaders
152116	googleapi.Expand(req.URL, map[string]string{
152117		"project": c.project,
152118	})
152119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152120}
152121
152122// Do executes the "compute.routes.insert" call.
152123// Exactly one of *Operation or error will be non-nil. Any non-2xx
152124// status code is an error. Response headers are in either
152125// *Operation.ServerResponse.Header or (if a response was returned at
152126// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152127// to check whether the returned error was because
152128// http.StatusNotModified was returned.
152129func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152130	gensupport.SetOptions(c.urlParams_, opts...)
152131	res, err := c.doRequest("json")
152132	if res != nil && res.StatusCode == http.StatusNotModified {
152133		if res.Body != nil {
152134			res.Body.Close()
152135		}
152136		return nil, &googleapi.Error{
152137			Code:   res.StatusCode,
152138			Header: res.Header,
152139		}
152140	}
152141	if err != nil {
152142		return nil, err
152143	}
152144	defer googleapi.CloseBody(res)
152145	if err := googleapi.CheckResponse(res); err != nil {
152146		return nil, err
152147	}
152148	ret := &Operation{
152149		ServerResponse: googleapi.ServerResponse{
152150			Header:         res.Header,
152151			HTTPStatusCode: res.StatusCode,
152152		},
152153	}
152154	target := &ret
152155	if err := gensupport.DecodeResponse(target, res); err != nil {
152156		return nil, err
152157	}
152158	return ret, nil
152159	// {
152160	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
152161	//   "httpMethod": "POST",
152162	//   "id": "compute.routes.insert",
152163	//   "parameterOrder": [
152164	//     "project"
152165	//   ],
152166	//   "parameters": {
152167	//     "project": {
152168	//       "description": "Project ID for this request.",
152169	//       "location": "path",
152170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152171	//       "required": true,
152172	//       "type": "string"
152173	//     },
152174	//     "requestId": {
152175	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152176	//       "location": "query",
152177	//       "type": "string"
152178	//     }
152179	//   },
152180	//   "path": "{project}/global/routes",
152181	//   "request": {
152182	//     "$ref": "Route"
152183	//   },
152184	//   "response": {
152185	//     "$ref": "Operation"
152186	//   },
152187	//   "scopes": [
152188	//     "https://www.googleapis.com/auth/cloud-platform",
152189	//     "https://www.googleapis.com/auth/compute"
152190	//   ]
152191	// }
152192
152193}
152194
152195// method id "compute.routes.list":
152196
152197type RoutesListCall struct {
152198	s            *Service
152199	project      string
152200	urlParams_   gensupport.URLParams
152201	ifNoneMatch_ string
152202	ctx_         context.Context
152203	header_      http.Header
152204}
152205
152206// List: Retrieves the list of Route resources available to the
152207// specified project.
152208// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
152209func (r *RoutesService) List(project string) *RoutesListCall {
152210	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152211	c.project = project
152212	return c
152213}
152214
152215// Filter sets the optional parameter "filter": A filter expression that
152216// filters resources listed in the response. The expression must specify
152217// the field name, a comparison operator, and the value that you want to
152218// use for filtering. The value must be a string, a number, or a
152219// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152220// `<`.
152221//
152222// For example, if you are filtering Compute Engine instances, you can
152223// exclude instances named `example-instance` by specifying `name !=
152224// example-instance`.
152225//
152226// You can also filter nested fields. For example, you could specify
152227// `scheduling.automaticRestart = false` to include instances only if
152228// they are not scheduled for automatic restarts. You can use filtering
152229// on nested fields to filter based on resource labels.
152230//
152231// To filter on multiple expressions, provide each separate expression
152232// within parentheses. For example: ``` (scheduling.automaticRestart =
152233// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
152234// is an `AND` expression. However, you can include `AND` and `OR`
152235// expressions explicitly. For example: ``` (cpuPlatform = "Intel
152236// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
152237// (scheduling.automaticRestart = true) ```
152238func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
152239	c.urlParams_.Set("filter", filter)
152240	return c
152241}
152242
152243// MaxResults sets the optional parameter "maxResults": The maximum
152244// number of results per page that should be returned. If the number of
152245// available results is larger than `maxResults`, Compute Engine returns
152246// a `nextPageToken` that can be used to get the next page of results in
152247// subsequent list requests. Acceptable values are `0` to `500`,
152248// inclusive. (Default: `500`)
152249func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
152250	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152251	return c
152252}
152253
152254// OrderBy sets the optional parameter "orderBy": Sorts list results by
152255// a certain order. By default, results are returned in alphanumerical
152256// order based on the resource name.
152257//
152258// You can also sort results in descending order based on the creation
152259// timestamp using `orderBy="creationTimestamp desc". This sorts
152260// results based on the `creationTimestamp` field in reverse
152261// chronological order (newest result first). Use this to sort resources
152262// like operations so that the newest operation is returned
152263// first.
152264//
152265// Currently, only sorting by `name` or `creationTimestamp desc` is
152266// supported.
152267func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
152268	c.urlParams_.Set("orderBy", orderBy)
152269	return c
152270}
152271
152272// PageToken sets the optional parameter "pageToken": Specifies a page
152273// token to use. Set `pageToken` to the `nextPageToken` returned by a
152274// previous list request to get the next page of results.
152275func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
152276	c.urlParams_.Set("pageToken", pageToken)
152277	return c
152278}
152279
152280// ReturnPartialSuccess sets the optional parameter
152281// "returnPartialSuccess": Opt-in for partial success behavior which
152282// provides partial results in case of failure. The default value is
152283// false and the logic is the same as today.
152284func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall {
152285	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152286	return c
152287}
152288
152289// Fields allows partial responses to be retrieved. See
152290// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152291// for more information.
152292func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
152293	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152294	return c
152295}
152296
152297// IfNoneMatch sets the optional parameter which makes the operation
152298// fail if the object's ETag matches the given value. This is useful for
152299// getting updates only after the object has changed since the last
152300// request. Use googleapi.IsNotModified to check whether the response
152301// error from Do is the result of In-None-Match.
152302func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
152303	c.ifNoneMatch_ = entityTag
152304	return c
152305}
152306
152307// Context sets the context to be used in this call's Do method. Any
152308// pending HTTP request will be aborted if the provided context is
152309// canceled.
152310func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
152311	c.ctx_ = ctx
152312	return c
152313}
152314
152315// Header returns an http.Header that can be modified by the caller to
152316// add HTTP headers to the request.
152317func (c *RoutesListCall) Header() http.Header {
152318	if c.header_ == nil {
152319		c.header_ = make(http.Header)
152320	}
152321	return c.header_
152322}
152323
152324func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
152325	reqHeaders := make(http.Header)
152326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
152327	for k, v := range c.header_ {
152328		reqHeaders[k] = v
152329	}
152330	reqHeaders.Set("User-Agent", c.s.userAgent())
152331	if c.ifNoneMatch_ != "" {
152332		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152333	}
152334	var body io.Reader = nil
152335	c.urlParams_.Set("alt", alt)
152336	c.urlParams_.Set("prettyPrint", "false")
152337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
152338	urls += "?" + c.urlParams_.Encode()
152339	req, err := http.NewRequest("GET", urls, body)
152340	if err != nil {
152341		return nil, err
152342	}
152343	req.Header = reqHeaders
152344	googleapi.Expand(req.URL, map[string]string{
152345		"project": c.project,
152346	})
152347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152348}
152349
152350// Do executes the "compute.routes.list" call.
152351// Exactly one of *RouteList or error will be non-nil. Any non-2xx
152352// status code is an error. Response headers are in either
152353// *RouteList.ServerResponse.Header or (if a response was returned at
152354// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152355// to check whether the returned error was because
152356// http.StatusNotModified was returned.
152357func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
152358	gensupport.SetOptions(c.urlParams_, opts...)
152359	res, err := c.doRequest("json")
152360	if res != nil && res.StatusCode == http.StatusNotModified {
152361		if res.Body != nil {
152362			res.Body.Close()
152363		}
152364		return nil, &googleapi.Error{
152365			Code:   res.StatusCode,
152366			Header: res.Header,
152367		}
152368	}
152369	if err != nil {
152370		return nil, err
152371	}
152372	defer googleapi.CloseBody(res)
152373	if err := googleapi.CheckResponse(res); err != nil {
152374		return nil, err
152375	}
152376	ret := &RouteList{
152377		ServerResponse: googleapi.ServerResponse{
152378			Header:         res.Header,
152379			HTTPStatusCode: res.StatusCode,
152380		},
152381	}
152382	target := &ret
152383	if err := gensupport.DecodeResponse(target, res); err != nil {
152384		return nil, err
152385	}
152386	return ret, nil
152387	// {
152388	//   "description": "Retrieves the list of Route resources available to the specified project.",
152389	//   "httpMethod": "GET",
152390	//   "id": "compute.routes.list",
152391	//   "parameterOrder": [
152392	//     "project"
152393	//   ],
152394	//   "parameters": {
152395	//     "filter": {
152396	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
152397	//       "location": "query",
152398	//       "type": "string"
152399	//     },
152400	//     "maxResults": {
152401	//       "default": "500",
152402	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
152403	//       "format": "uint32",
152404	//       "location": "query",
152405	//       "minimum": "0",
152406	//       "type": "integer"
152407	//     },
152408	//     "orderBy": {
152409	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
152410	//       "location": "query",
152411	//       "type": "string"
152412	//     },
152413	//     "pageToken": {
152414	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
152415	//       "location": "query",
152416	//       "type": "string"
152417	//     },
152418	//     "project": {
152419	//       "description": "Project ID for this request.",
152420	//       "location": "path",
152421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152422	//       "required": true,
152423	//       "type": "string"
152424	//     },
152425	//     "returnPartialSuccess": {
152426	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
152427	//       "location": "query",
152428	//       "type": "boolean"
152429	//     }
152430	//   },
152431	//   "path": "{project}/global/routes",
152432	//   "response": {
152433	//     "$ref": "RouteList"
152434	//   },
152435	//   "scopes": [
152436	//     "https://www.googleapis.com/auth/cloud-platform",
152437	//     "https://www.googleapis.com/auth/compute",
152438	//     "https://www.googleapis.com/auth/compute.readonly"
152439	//   ]
152440	// }
152441
152442}
152443
152444// Pages invokes f for each page of results.
152445// A non-nil error returned from f will halt the iteration.
152446// The provided context supersedes any context provided to the Context method.
152447func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
152448	c.ctx_ = ctx
152449	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152450	for {
152451		x, err := c.Do()
152452		if err != nil {
152453			return err
152454		}
152455		if err := f(x); err != nil {
152456			return err
152457		}
152458		if x.NextPageToken == "" {
152459			return nil
152460		}
152461		c.PageToken(x.NextPageToken)
152462	}
152463}
152464
152465// method id "compute.routes.testIamPermissions":
152466
152467type RoutesTestIamPermissionsCall struct {
152468	s                      *Service
152469	project                string
152470	resource               string
152471	testpermissionsrequest *TestPermissionsRequest
152472	urlParams_             gensupport.URLParams
152473	ctx_                   context.Context
152474	header_                http.Header
152475}
152476
152477// TestIamPermissions: Returns permissions that a caller has on the
152478// specified resource.
152479func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall {
152480	c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152481	c.project = project
152482	c.resource = resource
152483	c.testpermissionsrequest = testpermissionsrequest
152484	return c
152485}
152486
152487// Fields allows partial responses to be retrieved. See
152488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152489// for more information.
152490func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall {
152491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152492	return c
152493}
152494
152495// Context sets the context to be used in this call's Do method. Any
152496// pending HTTP request will be aborted if the provided context is
152497// canceled.
152498func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall {
152499	c.ctx_ = ctx
152500	return c
152501}
152502
152503// Header returns an http.Header that can be modified by the caller to
152504// add HTTP headers to the request.
152505func (c *RoutesTestIamPermissionsCall) Header() http.Header {
152506	if c.header_ == nil {
152507		c.header_ = make(http.Header)
152508	}
152509	return c.header_
152510}
152511
152512func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
152513	reqHeaders := make(http.Header)
152514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
152515	for k, v := range c.header_ {
152516		reqHeaders[k] = v
152517	}
152518	reqHeaders.Set("User-Agent", c.s.userAgent())
152519	var body io.Reader = nil
152520	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
152521	if err != nil {
152522		return nil, err
152523	}
152524	reqHeaders.Set("Content-Type", "application/json")
152525	c.urlParams_.Set("alt", alt)
152526	c.urlParams_.Set("prettyPrint", "false")
152527	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{resource}/testIamPermissions")
152528	urls += "?" + c.urlParams_.Encode()
152529	req, err := http.NewRequest("POST", urls, body)
152530	if err != nil {
152531		return nil, err
152532	}
152533	req.Header = reqHeaders
152534	googleapi.Expand(req.URL, map[string]string{
152535		"project":  c.project,
152536		"resource": c.resource,
152537	})
152538	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152539}
152540
152541// Do executes the "compute.routes.testIamPermissions" call.
152542// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
152543// non-2xx status code is an error. Response headers are in either
152544// *TestPermissionsResponse.ServerResponse.Header or (if a response was
152545// returned at all) in error.(*googleapi.Error).Header. Use
152546// googleapi.IsNotModified to check whether the returned error was
152547// because http.StatusNotModified was returned.
152548func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
152549	gensupport.SetOptions(c.urlParams_, opts...)
152550	res, err := c.doRequest("json")
152551	if res != nil && res.StatusCode == http.StatusNotModified {
152552		if res.Body != nil {
152553			res.Body.Close()
152554		}
152555		return nil, &googleapi.Error{
152556			Code:   res.StatusCode,
152557			Header: res.Header,
152558		}
152559	}
152560	if err != nil {
152561		return nil, err
152562	}
152563	defer googleapi.CloseBody(res)
152564	if err := googleapi.CheckResponse(res); err != nil {
152565		return nil, err
152566	}
152567	ret := &TestPermissionsResponse{
152568		ServerResponse: googleapi.ServerResponse{
152569			Header:         res.Header,
152570			HTTPStatusCode: res.StatusCode,
152571		},
152572	}
152573	target := &ret
152574	if err := gensupport.DecodeResponse(target, res); err != nil {
152575		return nil, err
152576	}
152577	return ret, nil
152578	// {
152579	//   "description": "Returns permissions that a caller has on the specified resource.",
152580	//   "httpMethod": "POST",
152581	//   "id": "compute.routes.testIamPermissions",
152582	//   "parameterOrder": [
152583	//     "project",
152584	//     "resource"
152585	//   ],
152586	//   "parameters": {
152587	//     "project": {
152588	//       "description": "Project ID for this request.",
152589	//       "location": "path",
152590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152591	//       "required": true,
152592	//       "type": "string"
152593	//     },
152594	//     "resource": {
152595	//       "description": "Name or id of the resource for this request.",
152596	//       "location": "path",
152597	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152598	//       "required": true,
152599	//       "type": "string"
152600	//     }
152601	//   },
152602	//   "path": "{project}/global/routes/{resource}/testIamPermissions",
152603	//   "request": {
152604	//     "$ref": "TestPermissionsRequest"
152605	//   },
152606	//   "response": {
152607	//     "$ref": "TestPermissionsResponse"
152608	//   },
152609	//   "scopes": [
152610	//     "https://www.googleapis.com/auth/cloud-platform",
152611	//     "https://www.googleapis.com/auth/compute",
152612	//     "https://www.googleapis.com/auth/compute.readonly"
152613	//   ]
152614	// }
152615
152616}
152617
152618// method id "compute.securityPolicies.addRule":
152619
152620type SecurityPoliciesAddRuleCall struct {
152621	s                  *Service
152622	project            string
152623	securityPolicy     string
152624	securitypolicyrule *SecurityPolicyRule
152625	urlParams_         gensupport.URLParams
152626	ctx_               context.Context
152627	header_            http.Header
152628}
152629
152630// AddRule: Inserts a rule into a security policy.
152631func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
152632	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152633	c.project = project
152634	c.securityPolicy = securityPolicy
152635	c.securitypolicyrule = securitypolicyrule
152636	return c
152637}
152638
152639// ValidateOnly sets the optional parameter "validateOnly": If true, the
152640// request will not be committed.
152641func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall {
152642	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
152643	return c
152644}
152645
152646// Fields allows partial responses to be retrieved. See
152647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152648// for more information.
152649func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
152650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152651	return c
152652}
152653
152654// Context sets the context to be used in this call's Do method. Any
152655// pending HTTP request will be aborted if the provided context is
152656// canceled.
152657func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
152658	c.ctx_ = ctx
152659	return c
152660}
152661
152662// Header returns an http.Header that can be modified by the caller to
152663// add HTTP headers to the request.
152664func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
152665	if c.header_ == nil {
152666		c.header_ = make(http.Header)
152667	}
152668	return c.header_
152669}
152670
152671func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
152672	reqHeaders := make(http.Header)
152673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
152674	for k, v := range c.header_ {
152675		reqHeaders[k] = v
152676	}
152677	reqHeaders.Set("User-Agent", c.s.userAgent())
152678	var body io.Reader = nil
152679	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
152680	if err != nil {
152681		return nil, err
152682	}
152683	reqHeaders.Set("Content-Type", "application/json")
152684	c.urlParams_.Set("alt", alt)
152685	c.urlParams_.Set("prettyPrint", "false")
152686	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule")
152687	urls += "?" + c.urlParams_.Encode()
152688	req, err := http.NewRequest("POST", urls, body)
152689	if err != nil {
152690		return nil, err
152691	}
152692	req.Header = reqHeaders
152693	googleapi.Expand(req.URL, map[string]string{
152694		"project":        c.project,
152695		"securityPolicy": c.securityPolicy,
152696	})
152697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152698}
152699
152700// Do executes the "compute.securityPolicies.addRule" call.
152701// Exactly one of *Operation or error will be non-nil. Any non-2xx
152702// status code is an error. Response headers are in either
152703// *Operation.ServerResponse.Header or (if a response was returned at
152704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152705// to check whether the returned error was because
152706// http.StatusNotModified was returned.
152707func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152708	gensupport.SetOptions(c.urlParams_, opts...)
152709	res, err := c.doRequest("json")
152710	if res != nil && res.StatusCode == http.StatusNotModified {
152711		if res.Body != nil {
152712			res.Body.Close()
152713		}
152714		return nil, &googleapi.Error{
152715			Code:   res.StatusCode,
152716			Header: res.Header,
152717		}
152718	}
152719	if err != nil {
152720		return nil, err
152721	}
152722	defer googleapi.CloseBody(res)
152723	if err := googleapi.CheckResponse(res); err != nil {
152724		return nil, err
152725	}
152726	ret := &Operation{
152727		ServerResponse: googleapi.ServerResponse{
152728			Header:         res.Header,
152729			HTTPStatusCode: res.StatusCode,
152730		},
152731	}
152732	target := &ret
152733	if err := gensupport.DecodeResponse(target, res); err != nil {
152734		return nil, err
152735	}
152736	return ret, nil
152737	// {
152738	//   "description": "Inserts a rule into a security policy.",
152739	//   "httpMethod": "POST",
152740	//   "id": "compute.securityPolicies.addRule",
152741	//   "parameterOrder": [
152742	//     "project",
152743	//     "securityPolicy"
152744	//   ],
152745	//   "parameters": {
152746	//     "project": {
152747	//       "description": "Project ID for this request.",
152748	//       "location": "path",
152749	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152750	//       "required": true,
152751	//       "type": "string"
152752	//     },
152753	//     "securityPolicy": {
152754	//       "description": "Name of the security policy to update.",
152755	//       "location": "path",
152756	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152757	//       "required": true,
152758	//       "type": "string"
152759	//     },
152760	//     "validateOnly": {
152761	//       "description": "If true, the request will not be committed.",
152762	//       "location": "query",
152763	//       "type": "boolean"
152764	//     }
152765	//   },
152766	//   "path": "{project}/global/securityPolicies/{securityPolicy}/addRule",
152767	//   "request": {
152768	//     "$ref": "SecurityPolicyRule"
152769	//   },
152770	//   "response": {
152771	//     "$ref": "Operation"
152772	//   },
152773	//   "scopes": [
152774	//     "https://www.googleapis.com/auth/cloud-platform",
152775	//     "https://www.googleapis.com/auth/compute"
152776	//   ]
152777	// }
152778
152779}
152780
152781// method id "compute.securityPolicies.delete":
152782
152783type SecurityPoliciesDeleteCall struct {
152784	s              *Service
152785	project        string
152786	securityPolicy string
152787	urlParams_     gensupport.URLParams
152788	ctx_           context.Context
152789	header_        http.Header
152790}
152791
152792// Delete: Deletes the specified policy.
152793func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
152794	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152795	c.project = project
152796	c.securityPolicy = securityPolicy
152797	return c
152798}
152799
152800// RequestId sets the optional parameter "requestId": An optional
152801// request ID to identify requests. Specify a unique request ID so that
152802// if you must retry your request, the server will know to ignore the
152803// request if it has already been completed.
152804//
152805// For example, consider a situation where you make an initial request
152806// and the request times out. If you make the request again with the
152807// same request ID, the server can check if original operation with the
152808// same request ID was received, and if so, will ignore the second
152809// request. This prevents clients from accidentally creating duplicate
152810// commitments.
152811//
152812// The request ID must be a valid UUID with the exception that zero UUID
152813// is not supported (00000000-0000-0000-0000-000000000000).
152814func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
152815	c.urlParams_.Set("requestId", requestId)
152816	return c
152817}
152818
152819// Fields allows partial responses to be retrieved. See
152820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152821// for more information.
152822func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
152823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152824	return c
152825}
152826
152827// Context sets the context to be used in this call's Do method. Any
152828// pending HTTP request will be aborted if the provided context is
152829// canceled.
152830func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
152831	c.ctx_ = ctx
152832	return c
152833}
152834
152835// Header returns an http.Header that can be modified by the caller to
152836// add HTTP headers to the request.
152837func (c *SecurityPoliciesDeleteCall) Header() http.Header {
152838	if c.header_ == nil {
152839		c.header_ = make(http.Header)
152840	}
152841	return c.header_
152842}
152843
152844func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
152845	reqHeaders := make(http.Header)
152846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
152847	for k, v := range c.header_ {
152848		reqHeaders[k] = v
152849	}
152850	reqHeaders.Set("User-Agent", c.s.userAgent())
152851	var body io.Reader = nil
152852	c.urlParams_.Set("alt", alt)
152853	c.urlParams_.Set("prettyPrint", "false")
152854	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
152855	urls += "?" + c.urlParams_.Encode()
152856	req, err := http.NewRequest("DELETE", urls, body)
152857	if err != nil {
152858		return nil, err
152859	}
152860	req.Header = reqHeaders
152861	googleapi.Expand(req.URL, map[string]string{
152862		"project":        c.project,
152863		"securityPolicy": c.securityPolicy,
152864	})
152865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152866}
152867
152868// Do executes the "compute.securityPolicies.delete" call.
152869// Exactly one of *Operation or error will be non-nil. Any non-2xx
152870// status code is an error. Response headers are in either
152871// *Operation.ServerResponse.Header or (if a response was returned at
152872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152873// to check whether the returned error was because
152874// http.StatusNotModified was returned.
152875func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152876	gensupport.SetOptions(c.urlParams_, opts...)
152877	res, err := c.doRequest("json")
152878	if res != nil && res.StatusCode == http.StatusNotModified {
152879		if res.Body != nil {
152880			res.Body.Close()
152881		}
152882		return nil, &googleapi.Error{
152883			Code:   res.StatusCode,
152884			Header: res.Header,
152885		}
152886	}
152887	if err != nil {
152888		return nil, err
152889	}
152890	defer googleapi.CloseBody(res)
152891	if err := googleapi.CheckResponse(res); err != nil {
152892		return nil, err
152893	}
152894	ret := &Operation{
152895		ServerResponse: googleapi.ServerResponse{
152896			Header:         res.Header,
152897			HTTPStatusCode: res.StatusCode,
152898		},
152899	}
152900	target := &ret
152901	if err := gensupport.DecodeResponse(target, res); err != nil {
152902		return nil, err
152903	}
152904	return ret, nil
152905	// {
152906	//   "description": "Deletes the specified policy.",
152907	//   "httpMethod": "DELETE",
152908	//   "id": "compute.securityPolicies.delete",
152909	//   "parameterOrder": [
152910	//     "project",
152911	//     "securityPolicy"
152912	//   ],
152913	//   "parameters": {
152914	//     "project": {
152915	//       "description": "Project ID for this request.",
152916	//       "location": "path",
152917	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152918	//       "required": true,
152919	//       "type": "string"
152920	//     },
152921	//     "requestId": {
152922	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152923	//       "location": "query",
152924	//       "type": "string"
152925	//     },
152926	//     "securityPolicy": {
152927	//       "description": "Name of the security policy to delete.",
152928	//       "location": "path",
152929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152930	//       "required": true,
152931	//       "type": "string"
152932	//     }
152933	//   },
152934	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
152935	//   "response": {
152936	//     "$ref": "Operation"
152937	//   },
152938	//   "scopes": [
152939	//     "https://www.googleapis.com/auth/cloud-platform",
152940	//     "https://www.googleapis.com/auth/compute"
152941	//   ]
152942	// }
152943
152944}
152945
152946// method id "compute.securityPolicies.get":
152947
152948type SecurityPoliciesGetCall struct {
152949	s              *Service
152950	project        string
152951	securityPolicy string
152952	urlParams_     gensupport.URLParams
152953	ifNoneMatch_   string
152954	ctx_           context.Context
152955	header_        http.Header
152956}
152957
152958// Get: List all of the ordered rules present in a single specified
152959// policy.
152960func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
152961	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152962	c.project = project
152963	c.securityPolicy = securityPolicy
152964	return c
152965}
152966
152967// Fields allows partial responses to be retrieved. See
152968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152969// for more information.
152970func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
152971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152972	return c
152973}
152974
152975// IfNoneMatch sets the optional parameter which makes the operation
152976// fail if the object's ETag matches the given value. This is useful for
152977// getting updates only after the object has changed since the last
152978// request. Use googleapi.IsNotModified to check whether the response
152979// error from Do is the result of In-None-Match.
152980func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
152981	c.ifNoneMatch_ = entityTag
152982	return c
152983}
152984
152985// Context sets the context to be used in this call's Do method. Any
152986// pending HTTP request will be aborted if the provided context is
152987// canceled.
152988func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
152989	c.ctx_ = ctx
152990	return c
152991}
152992
152993// Header returns an http.Header that can be modified by the caller to
152994// add HTTP headers to the request.
152995func (c *SecurityPoliciesGetCall) Header() http.Header {
152996	if c.header_ == nil {
152997		c.header_ = make(http.Header)
152998	}
152999	return c.header_
153000}
153001
153002func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
153003	reqHeaders := make(http.Header)
153004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
153005	for k, v := range c.header_ {
153006		reqHeaders[k] = v
153007	}
153008	reqHeaders.Set("User-Agent", c.s.userAgent())
153009	if c.ifNoneMatch_ != "" {
153010		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153011	}
153012	var body io.Reader = nil
153013	c.urlParams_.Set("alt", alt)
153014	c.urlParams_.Set("prettyPrint", "false")
153015	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
153016	urls += "?" + c.urlParams_.Encode()
153017	req, err := http.NewRequest("GET", urls, body)
153018	if err != nil {
153019		return nil, err
153020	}
153021	req.Header = reqHeaders
153022	googleapi.Expand(req.URL, map[string]string{
153023		"project":        c.project,
153024		"securityPolicy": c.securityPolicy,
153025	})
153026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153027}
153028
153029// Do executes the "compute.securityPolicies.get" call.
153030// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
153031// status code is an error. Response headers are in either
153032// *SecurityPolicy.ServerResponse.Header or (if a response was returned
153033// at all) in error.(*googleapi.Error).Header. Use
153034// googleapi.IsNotModified to check whether the returned error was
153035// because http.StatusNotModified was returned.
153036func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
153037	gensupport.SetOptions(c.urlParams_, opts...)
153038	res, err := c.doRequest("json")
153039	if res != nil && res.StatusCode == http.StatusNotModified {
153040		if res.Body != nil {
153041			res.Body.Close()
153042		}
153043		return nil, &googleapi.Error{
153044			Code:   res.StatusCode,
153045			Header: res.Header,
153046		}
153047	}
153048	if err != nil {
153049		return nil, err
153050	}
153051	defer googleapi.CloseBody(res)
153052	if err := googleapi.CheckResponse(res); err != nil {
153053		return nil, err
153054	}
153055	ret := &SecurityPolicy{
153056		ServerResponse: googleapi.ServerResponse{
153057			Header:         res.Header,
153058			HTTPStatusCode: res.StatusCode,
153059		},
153060	}
153061	target := &ret
153062	if err := gensupport.DecodeResponse(target, res); err != nil {
153063		return nil, err
153064	}
153065	return ret, nil
153066	// {
153067	//   "description": "List all of the ordered rules present in a single specified policy.",
153068	//   "httpMethod": "GET",
153069	//   "id": "compute.securityPolicies.get",
153070	//   "parameterOrder": [
153071	//     "project",
153072	//     "securityPolicy"
153073	//   ],
153074	//   "parameters": {
153075	//     "project": {
153076	//       "description": "Project ID for this request.",
153077	//       "location": "path",
153078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153079	//       "required": true,
153080	//       "type": "string"
153081	//     },
153082	//     "securityPolicy": {
153083	//       "description": "Name of the security policy to get.",
153084	//       "location": "path",
153085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153086	//       "required": true,
153087	//       "type": "string"
153088	//     }
153089	//   },
153090	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
153091	//   "response": {
153092	//     "$ref": "SecurityPolicy"
153093	//   },
153094	//   "scopes": [
153095	//     "https://www.googleapis.com/auth/cloud-platform",
153096	//     "https://www.googleapis.com/auth/compute",
153097	//     "https://www.googleapis.com/auth/compute.readonly"
153098	//   ]
153099	// }
153100
153101}
153102
153103// method id "compute.securityPolicies.getRule":
153104
153105type SecurityPoliciesGetRuleCall struct {
153106	s              *Service
153107	project        string
153108	securityPolicy string
153109	urlParams_     gensupport.URLParams
153110	ifNoneMatch_   string
153111	ctx_           context.Context
153112	header_        http.Header
153113}
153114
153115// GetRule: Gets a rule at the specified priority.
153116func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
153117	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153118	c.project = project
153119	c.securityPolicy = securityPolicy
153120	return c
153121}
153122
153123// Priority sets the optional parameter "priority": The priority of the
153124// rule to get from the security policy.
153125func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
153126	c.urlParams_.Set("priority", fmt.Sprint(priority))
153127	return c
153128}
153129
153130// Fields allows partial responses to be retrieved. See
153131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153132// for more information.
153133func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
153134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153135	return c
153136}
153137
153138// IfNoneMatch sets the optional parameter which makes the operation
153139// fail if the object's ETag matches the given value. This is useful for
153140// getting updates only after the object has changed since the last
153141// request. Use googleapi.IsNotModified to check whether the response
153142// error from Do is the result of In-None-Match.
153143func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
153144	c.ifNoneMatch_ = entityTag
153145	return c
153146}
153147
153148// Context sets the context to be used in this call's Do method. Any
153149// pending HTTP request will be aborted if the provided context is
153150// canceled.
153151func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
153152	c.ctx_ = ctx
153153	return c
153154}
153155
153156// Header returns an http.Header that can be modified by the caller to
153157// add HTTP headers to the request.
153158func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
153159	if c.header_ == nil {
153160		c.header_ = make(http.Header)
153161	}
153162	return c.header_
153163}
153164
153165func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
153166	reqHeaders := make(http.Header)
153167	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
153168	for k, v := range c.header_ {
153169		reqHeaders[k] = v
153170	}
153171	reqHeaders.Set("User-Agent", c.s.userAgent())
153172	if c.ifNoneMatch_ != "" {
153173		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153174	}
153175	var body io.Reader = nil
153176	c.urlParams_.Set("alt", alt)
153177	c.urlParams_.Set("prettyPrint", "false")
153178	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule")
153179	urls += "?" + c.urlParams_.Encode()
153180	req, err := http.NewRequest("GET", urls, body)
153181	if err != nil {
153182		return nil, err
153183	}
153184	req.Header = reqHeaders
153185	googleapi.Expand(req.URL, map[string]string{
153186		"project":        c.project,
153187		"securityPolicy": c.securityPolicy,
153188	})
153189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153190}
153191
153192// Do executes the "compute.securityPolicies.getRule" call.
153193// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
153194// non-2xx status code is an error. Response headers are in either
153195// *SecurityPolicyRule.ServerResponse.Header or (if a response was
153196// returned at all) in error.(*googleapi.Error).Header. Use
153197// googleapi.IsNotModified to check whether the returned error was
153198// because http.StatusNotModified was returned.
153199func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
153200	gensupport.SetOptions(c.urlParams_, opts...)
153201	res, err := c.doRequest("json")
153202	if res != nil && res.StatusCode == http.StatusNotModified {
153203		if res.Body != nil {
153204			res.Body.Close()
153205		}
153206		return nil, &googleapi.Error{
153207			Code:   res.StatusCode,
153208			Header: res.Header,
153209		}
153210	}
153211	if err != nil {
153212		return nil, err
153213	}
153214	defer googleapi.CloseBody(res)
153215	if err := googleapi.CheckResponse(res); err != nil {
153216		return nil, err
153217	}
153218	ret := &SecurityPolicyRule{
153219		ServerResponse: googleapi.ServerResponse{
153220			Header:         res.Header,
153221			HTTPStatusCode: res.StatusCode,
153222		},
153223	}
153224	target := &ret
153225	if err := gensupport.DecodeResponse(target, res); err != nil {
153226		return nil, err
153227	}
153228	return ret, nil
153229	// {
153230	//   "description": "Gets a rule at the specified priority.",
153231	//   "httpMethod": "GET",
153232	//   "id": "compute.securityPolicies.getRule",
153233	//   "parameterOrder": [
153234	//     "project",
153235	//     "securityPolicy"
153236	//   ],
153237	//   "parameters": {
153238	//     "priority": {
153239	//       "description": "The priority of the rule to get from the security policy.",
153240	//       "format": "int32",
153241	//       "location": "query",
153242	//       "type": "integer"
153243	//     },
153244	//     "project": {
153245	//       "description": "Project ID for this request.",
153246	//       "location": "path",
153247	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153248	//       "required": true,
153249	//       "type": "string"
153250	//     },
153251	//     "securityPolicy": {
153252	//       "description": "Name of the security policy to which the queried rule belongs.",
153253	//       "location": "path",
153254	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153255	//       "required": true,
153256	//       "type": "string"
153257	//     }
153258	//   },
153259	//   "path": "{project}/global/securityPolicies/{securityPolicy}/getRule",
153260	//   "response": {
153261	//     "$ref": "SecurityPolicyRule"
153262	//   },
153263	//   "scopes": [
153264	//     "https://www.googleapis.com/auth/cloud-platform",
153265	//     "https://www.googleapis.com/auth/compute",
153266	//     "https://www.googleapis.com/auth/compute.readonly"
153267	//   ]
153268	// }
153269
153270}
153271
153272// method id "compute.securityPolicies.insert":
153273
153274type SecurityPoliciesInsertCall struct {
153275	s              *Service
153276	project        string
153277	securitypolicy *SecurityPolicy
153278	urlParams_     gensupport.URLParams
153279	ctx_           context.Context
153280	header_        http.Header
153281}
153282
153283// Insert: Creates a new policy in the specified project using the data
153284// included in the request.
153285func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
153286	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153287	c.project = project
153288	c.securitypolicy = securitypolicy
153289	return c
153290}
153291
153292// RequestId sets the optional parameter "requestId": An optional
153293// request ID to identify requests. Specify a unique request ID so that
153294// if you must retry your request, the server will know to ignore the
153295// request if it has already been completed.
153296//
153297// For example, consider a situation where you make an initial request
153298// and the request times out. If you make the request again with the
153299// same request ID, the server can check if original operation with the
153300// same request ID was received, and if so, will ignore the second
153301// request. This prevents clients from accidentally creating duplicate
153302// commitments.
153303//
153304// The request ID must be a valid UUID with the exception that zero UUID
153305// is not supported (00000000-0000-0000-0000-000000000000).
153306func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
153307	c.urlParams_.Set("requestId", requestId)
153308	return c
153309}
153310
153311// ValidateOnly sets the optional parameter "validateOnly": If true, the
153312// request will not be committed.
153313func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall {
153314	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
153315	return c
153316}
153317
153318// Fields allows partial responses to be retrieved. See
153319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153320// for more information.
153321func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
153322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153323	return c
153324}
153325
153326// Context sets the context to be used in this call's Do method. Any
153327// pending HTTP request will be aborted if the provided context is
153328// canceled.
153329func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
153330	c.ctx_ = ctx
153331	return c
153332}
153333
153334// Header returns an http.Header that can be modified by the caller to
153335// add HTTP headers to the request.
153336func (c *SecurityPoliciesInsertCall) Header() http.Header {
153337	if c.header_ == nil {
153338		c.header_ = make(http.Header)
153339	}
153340	return c.header_
153341}
153342
153343func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
153344	reqHeaders := make(http.Header)
153345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
153346	for k, v := range c.header_ {
153347		reqHeaders[k] = v
153348	}
153349	reqHeaders.Set("User-Agent", c.s.userAgent())
153350	var body io.Reader = nil
153351	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
153352	if err != nil {
153353		return nil, err
153354	}
153355	reqHeaders.Set("Content-Type", "application/json")
153356	c.urlParams_.Set("alt", alt)
153357	c.urlParams_.Set("prettyPrint", "false")
153358	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
153359	urls += "?" + c.urlParams_.Encode()
153360	req, err := http.NewRequest("POST", urls, body)
153361	if err != nil {
153362		return nil, err
153363	}
153364	req.Header = reqHeaders
153365	googleapi.Expand(req.URL, map[string]string{
153366		"project": c.project,
153367	})
153368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153369}
153370
153371// Do executes the "compute.securityPolicies.insert" call.
153372// Exactly one of *Operation or error will be non-nil. Any non-2xx
153373// status code is an error. Response headers are in either
153374// *Operation.ServerResponse.Header or (if a response was returned at
153375// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153376// to check whether the returned error was because
153377// http.StatusNotModified was returned.
153378func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153379	gensupport.SetOptions(c.urlParams_, opts...)
153380	res, err := c.doRequest("json")
153381	if res != nil && res.StatusCode == http.StatusNotModified {
153382		if res.Body != nil {
153383			res.Body.Close()
153384		}
153385		return nil, &googleapi.Error{
153386			Code:   res.StatusCode,
153387			Header: res.Header,
153388		}
153389	}
153390	if err != nil {
153391		return nil, err
153392	}
153393	defer googleapi.CloseBody(res)
153394	if err := googleapi.CheckResponse(res); err != nil {
153395		return nil, err
153396	}
153397	ret := &Operation{
153398		ServerResponse: googleapi.ServerResponse{
153399			Header:         res.Header,
153400			HTTPStatusCode: res.StatusCode,
153401		},
153402	}
153403	target := &ret
153404	if err := gensupport.DecodeResponse(target, res); err != nil {
153405		return nil, err
153406	}
153407	return ret, nil
153408	// {
153409	//   "description": "Creates a new policy in the specified project using the data included in the request.",
153410	//   "httpMethod": "POST",
153411	//   "id": "compute.securityPolicies.insert",
153412	//   "parameterOrder": [
153413	//     "project"
153414	//   ],
153415	//   "parameters": {
153416	//     "project": {
153417	//       "description": "Project ID for this request.",
153418	//       "location": "path",
153419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153420	//       "required": true,
153421	//       "type": "string"
153422	//     },
153423	//     "requestId": {
153424	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153425	//       "location": "query",
153426	//       "type": "string"
153427	//     },
153428	//     "validateOnly": {
153429	//       "description": "If true, the request will not be committed.",
153430	//       "location": "query",
153431	//       "type": "boolean"
153432	//     }
153433	//   },
153434	//   "path": "{project}/global/securityPolicies",
153435	//   "request": {
153436	//     "$ref": "SecurityPolicy"
153437	//   },
153438	//   "response": {
153439	//     "$ref": "Operation"
153440	//   },
153441	//   "scopes": [
153442	//     "https://www.googleapis.com/auth/cloud-platform",
153443	//     "https://www.googleapis.com/auth/compute"
153444	//   ]
153445	// }
153446
153447}
153448
153449// method id "compute.securityPolicies.list":
153450
153451type SecurityPoliciesListCall struct {
153452	s            *Service
153453	project      string
153454	urlParams_   gensupport.URLParams
153455	ifNoneMatch_ string
153456	ctx_         context.Context
153457	header_      http.Header
153458}
153459
153460// List: List all the policies that have been configured for the
153461// specified project.
153462func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
153463	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153464	c.project = project
153465	return c
153466}
153467
153468// Filter sets the optional parameter "filter": A filter expression that
153469// filters resources listed in the response. The expression must specify
153470// the field name, a comparison operator, and the value that you want to
153471// use for filtering. The value must be a string, a number, or a
153472// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153473// `<`.
153474//
153475// For example, if you are filtering Compute Engine instances, you can
153476// exclude instances named `example-instance` by specifying `name !=
153477// example-instance`.
153478//
153479// You can also filter nested fields. For example, you could specify
153480// `scheduling.automaticRestart = false` to include instances only if
153481// they are not scheduled for automatic restarts. You can use filtering
153482// on nested fields to filter based on resource labels.
153483//
153484// To filter on multiple expressions, provide each separate expression
153485// within parentheses. For example: ``` (scheduling.automaticRestart =
153486// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
153487// is an `AND` expression. However, you can include `AND` and `OR`
153488// expressions explicitly. For example: ``` (cpuPlatform = "Intel
153489// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
153490// (scheduling.automaticRestart = true) ```
153491func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
153492	c.urlParams_.Set("filter", filter)
153493	return c
153494}
153495
153496// MaxResults sets the optional parameter "maxResults": The maximum
153497// number of results per page that should be returned. If the number of
153498// available results is larger than `maxResults`, Compute Engine returns
153499// a `nextPageToken` that can be used to get the next page of results in
153500// subsequent list requests. Acceptable values are `0` to `500`,
153501// inclusive. (Default: `500`)
153502func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
153503	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153504	return c
153505}
153506
153507// OrderBy sets the optional parameter "orderBy": Sorts list results by
153508// a certain order. By default, results are returned in alphanumerical
153509// order based on the resource name.
153510//
153511// You can also sort results in descending order based on the creation
153512// timestamp using `orderBy="creationTimestamp desc". This sorts
153513// results based on the `creationTimestamp` field in reverse
153514// chronological order (newest result first). Use this to sort resources
153515// like operations so that the newest operation is returned
153516// first.
153517//
153518// Currently, only sorting by `name` or `creationTimestamp desc` is
153519// supported.
153520func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
153521	c.urlParams_.Set("orderBy", orderBy)
153522	return c
153523}
153524
153525// PageToken sets the optional parameter "pageToken": Specifies a page
153526// token to use. Set `pageToken` to the `nextPageToken` returned by a
153527// previous list request to get the next page of results.
153528func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
153529	c.urlParams_.Set("pageToken", pageToken)
153530	return c
153531}
153532
153533// ReturnPartialSuccess sets the optional parameter
153534// "returnPartialSuccess": Opt-in for partial success behavior which
153535// provides partial results in case of failure. The default value is
153536// false and the logic is the same as today.
153537func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall {
153538	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153539	return c
153540}
153541
153542// Fields allows partial responses to be retrieved. See
153543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153544// for more information.
153545func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
153546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153547	return c
153548}
153549
153550// IfNoneMatch sets the optional parameter which makes the operation
153551// fail if the object's ETag matches the given value. This is useful for
153552// getting updates only after the object has changed since the last
153553// request. Use googleapi.IsNotModified to check whether the response
153554// error from Do is the result of In-None-Match.
153555func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
153556	c.ifNoneMatch_ = entityTag
153557	return c
153558}
153559
153560// Context sets the context to be used in this call's Do method. Any
153561// pending HTTP request will be aborted if the provided context is
153562// canceled.
153563func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
153564	c.ctx_ = ctx
153565	return c
153566}
153567
153568// Header returns an http.Header that can be modified by the caller to
153569// add HTTP headers to the request.
153570func (c *SecurityPoliciesListCall) Header() http.Header {
153571	if c.header_ == nil {
153572		c.header_ = make(http.Header)
153573	}
153574	return c.header_
153575}
153576
153577func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
153578	reqHeaders := make(http.Header)
153579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
153580	for k, v := range c.header_ {
153581		reqHeaders[k] = v
153582	}
153583	reqHeaders.Set("User-Agent", c.s.userAgent())
153584	if c.ifNoneMatch_ != "" {
153585		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153586	}
153587	var body io.Reader = nil
153588	c.urlParams_.Set("alt", alt)
153589	c.urlParams_.Set("prettyPrint", "false")
153590	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
153591	urls += "?" + c.urlParams_.Encode()
153592	req, err := http.NewRequest("GET", urls, body)
153593	if err != nil {
153594		return nil, err
153595	}
153596	req.Header = reqHeaders
153597	googleapi.Expand(req.URL, map[string]string{
153598		"project": c.project,
153599	})
153600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153601}
153602
153603// Do executes the "compute.securityPolicies.list" call.
153604// Exactly one of *SecurityPolicyList or error will be non-nil. Any
153605// non-2xx status code is an error. Response headers are in either
153606// *SecurityPolicyList.ServerResponse.Header or (if a response was
153607// returned at all) in error.(*googleapi.Error).Header. Use
153608// googleapi.IsNotModified to check whether the returned error was
153609// because http.StatusNotModified was returned.
153610func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
153611	gensupport.SetOptions(c.urlParams_, opts...)
153612	res, err := c.doRequest("json")
153613	if res != nil && res.StatusCode == http.StatusNotModified {
153614		if res.Body != nil {
153615			res.Body.Close()
153616		}
153617		return nil, &googleapi.Error{
153618			Code:   res.StatusCode,
153619			Header: res.Header,
153620		}
153621	}
153622	if err != nil {
153623		return nil, err
153624	}
153625	defer googleapi.CloseBody(res)
153626	if err := googleapi.CheckResponse(res); err != nil {
153627		return nil, err
153628	}
153629	ret := &SecurityPolicyList{
153630		ServerResponse: googleapi.ServerResponse{
153631			Header:         res.Header,
153632			HTTPStatusCode: res.StatusCode,
153633		},
153634	}
153635	target := &ret
153636	if err := gensupport.DecodeResponse(target, res); err != nil {
153637		return nil, err
153638	}
153639	return ret, nil
153640	// {
153641	//   "description": "List all the policies that have been configured for the specified project.",
153642	//   "httpMethod": "GET",
153643	//   "id": "compute.securityPolicies.list",
153644	//   "parameterOrder": [
153645	//     "project"
153646	//   ],
153647	//   "parameters": {
153648	//     "filter": {
153649	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
153650	//       "location": "query",
153651	//       "type": "string"
153652	//     },
153653	//     "maxResults": {
153654	//       "default": "500",
153655	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153656	//       "format": "uint32",
153657	//       "location": "query",
153658	//       "minimum": "0",
153659	//       "type": "integer"
153660	//     },
153661	//     "orderBy": {
153662	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
153663	//       "location": "query",
153664	//       "type": "string"
153665	//     },
153666	//     "pageToken": {
153667	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153668	//       "location": "query",
153669	//       "type": "string"
153670	//     },
153671	//     "project": {
153672	//       "description": "Project ID for this request.",
153673	//       "location": "path",
153674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153675	//       "required": true,
153676	//       "type": "string"
153677	//     },
153678	//     "returnPartialSuccess": {
153679	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
153680	//       "location": "query",
153681	//       "type": "boolean"
153682	//     }
153683	//   },
153684	//   "path": "{project}/global/securityPolicies",
153685	//   "response": {
153686	//     "$ref": "SecurityPolicyList"
153687	//   },
153688	//   "scopes": [
153689	//     "https://www.googleapis.com/auth/cloud-platform",
153690	//     "https://www.googleapis.com/auth/compute",
153691	//     "https://www.googleapis.com/auth/compute.readonly"
153692	//   ]
153693	// }
153694
153695}
153696
153697// Pages invokes f for each page of results.
153698// A non-nil error returned from f will halt the iteration.
153699// The provided context supersedes any context provided to the Context method.
153700func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
153701	c.ctx_ = ctx
153702	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153703	for {
153704		x, err := c.Do()
153705		if err != nil {
153706			return err
153707		}
153708		if err := f(x); err != nil {
153709			return err
153710		}
153711		if x.NextPageToken == "" {
153712			return nil
153713		}
153714		c.PageToken(x.NextPageToken)
153715	}
153716}
153717
153718// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
153719
153720type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
153721	s            *Service
153722	project      string
153723	urlParams_   gensupport.URLParams
153724	ifNoneMatch_ string
153725	ctx_         context.Context
153726	header_      http.Header
153727}
153728
153729// ListPreconfiguredExpressionSets: Gets the current list of
153730// preconfigured Web Application Firewall (WAF) expressions.
153731func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153732	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153733	c.project = project
153734	return c
153735}
153736
153737// Filter sets the optional parameter "filter": A filter expression that
153738// filters resources listed in the response. The expression must specify
153739// the field name, a comparison operator, and the value that you want to
153740// use for filtering. The value must be a string, a number, or a
153741// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153742// `<`.
153743//
153744// For example, if you are filtering Compute Engine instances, you can
153745// exclude instances named `example-instance` by specifying `name !=
153746// example-instance`.
153747//
153748// You can also filter nested fields. For example, you could specify
153749// `scheduling.automaticRestart = false` to include instances only if
153750// they are not scheduled for automatic restarts. You can use filtering
153751// on nested fields to filter based on resource labels.
153752//
153753// To filter on multiple expressions, provide each separate expression
153754// within parentheses. For example: ``` (scheduling.automaticRestart =
153755// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
153756// is an `AND` expression. However, you can include `AND` and `OR`
153757// expressions explicitly. For example: ``` (cpuPlatform = "Intel
153758// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
153759// (scheduling.automaticRestart = true) ```
153760func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153761	c.urlParams_.Set("filter", filter)
153762	return c
153763}
153764
153765// MaxResults sets the optional parameter "maxResults": The maximum
153766// number of results per page that should be returned. If the number of
153767// available results is larger than `maxResults`, Compute Engine returns
153768// a `nextPageToken` that can be used to get the next page of results in
153769// subsequent list requests. Acceptable values are `0` to `500`,
153770// inclusive. (Default: `500`)
153771func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153772	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153773	return c
153774}
153775
153776// OrderBy sets the optional parameter "orderBy": Sorts list results by
153777// a certain order. By default, results are returned in alphanumerical
153778// order based on the resource name.
153779//
153780// You can also sort results in descending order based on the creation
153781// timestamp using `orderBy="creationTimestamp desc". This sorts
153782// results based on the `creationTimestamp` field in reverse
153783// chronological order (newest result first). Use this to sort resources
153784// like operations so that the newest operation is returned
153785// first.
153786//
153787// Currently, only sorting by `name` or `creationTimestamp desc` is
153788// supported.
153789func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153790	c.urlParams_.Set("orderBy", orderBy)
153791	return c
153792}
153793
153794// PageToken sets the optional parameter "pageToken": Specifies a page
153795// token to use. Set `pageToken` to the `nextPageToken` returned by a
153796// previous list request to get the next page of results.
153797func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153798	c.urlParams_.Set("pageToken", pageToken)
153799	return c
153800}
153801
153802// ReturnPartialSuccess sets the optional parameter
153803// "returnPartialSuccess": Opt-in for partial success behavior which
153804// provides partial results in case of failure. The default value is
153805// false and the logic is the same as today.
153806func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153807	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153808	return c
153809}
153810
153811// Fields allows partial responses to be retrieved. See
153812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153813// for more information.
153814func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153816	return c
153817}
153818
153819// IfNoneMatch sets the optional parameter which makes the operation
153820// fail if the object's ETag matches the given value. This is useful for
153821// getting updates only after the object has changed since the last
153822// request. Use googleapi.IsNotModified to check whether the response
153823// error from Do is the result of In-None-Match.
153824func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153825	c.ifNoneMatch_ = entityTag
153826	return c
153827}
153828
153829// Context sets the context to be used in this call's Do method. Any
153830// pending HTTP request will be aborted if the provided context is
153831// canceled.
153832func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153833	c.ctx_ = ctx
153834	return c
153835}
153836
153837// Header returns an http.Header that can be modified by the caller to
153838// add HTTP headers to the request.
153839func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
153840	if c.header_ == nil {
153841		c.header_ = make(http.Header)
153842	}
153843	return c.header_
153844}
153845
153846func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
153847	reqHeaders := make(http.Header)
153848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
153849	for k, v := range c.header_ {
153850		reqHeaders[k] = v
153851	}
153852	reqHeaders.Set("User-Agent", c.s.userAgent())
153853	if c.ifNoneMatch_ != "" {
153854		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153855	}
153856	var body io.Reader = nil
153857	c.urlParams_.Set("alt", alt)
153858	c.urlParams_.Set("prettyPrint", "false")
153859	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/listPreconfiguredExpressionSets")
153860	urls += "?" + c.urlParams_.Encode()
153861	req, err := http.NewRequest("GET", urls, body)
153862	if err != nil {
153863		return nil, err
153864	}
153865	req.Header = reqHeaders
153866	googleapi.Expand(req.URL, map[string]string{
153867		"project": c.project,
153868	})
153869	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153870}
153871
153872// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
153873// Exactly one of
153874// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
153875// will be non-nil. Any non-2xx status code is an error. Response
153876// headers are in either
153877// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
153878// e.Header or (if a response was returned at all) in
153879// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
153880// whether the returned error was because http.StatusNotModified was
153881// returned.
153882func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
153883	gensupport.SetOptions(c.urlParams_, opts...)
153884	res, err := c.doRequest("json")
153885	if res != nil && res.StatusCode == http.StatusNotModified {
153886		if res.Body != nil {
153887			res.Body.Close()
153888		}
153889		return nil, &googleapi.Error{
153890			Code:   res.StatusCode,
153891			Header: res.Header,
153892		}
153893	}
153894	if err != nil {
153895		return nil, err
153896	}
153897	defer googleapi.CloseBody(res)
153898	if err := googleapi.CheckResponse(res); err != nil {
153899		return nil, err
153900	}
153901	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
153902		ServerResponse: googleapi.ServerResponse{
153903			Header:         res.Header,
153904			HTTPStatusCode: res.StatusCode,
153905		},
153906	}
153907	target := &ret
153908	if err := gensupport.DecodeResponse(target, res); err != nil {
153909		return nil, err
153910	}
153911	return ret, nil
153912	// {
153913	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
153914	//   "httpMethod": "GET",
153915	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
153916	//   "parameterOrder": [
153917	//     "project"
153918	//   ],
153919	//   "parameters": {
153920	//     "filter": {
153921	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
153922	//       "location": "query",
153923	//       "type": "string"
153924	//     },
153925	//     "maxResults": {
153926	//       "default": "500",
153927	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153928	//       "format": "uint32",
153929	//       "location": "query",
153930	//       "minimum": "0",
153931	//       "type": "integer"
153932	//     },
153933	//     "orderBy": {
153934	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
153935	//       "location": "query",
153936	//       "type": "string"
153937	//     },
153938	//     "pageToken": {
153939	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153940	//       "location": "query",
153941	//       "type": "string"
153942	//     },
153943	//     "project": {
153944	//       "description": "Project ID for this request.",
153945	//       "location": "path",
153946	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153947	//       "required": true,
153948	//       "type": "string"
153949	//     },
153950	//     "returnPartialSuccess": {
153951	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
153952	//       "location": "query",
153953	//       "type": "boolean"
153954	//     }
153955	//   },
153956	//   "path": "{project}/global/securityPolicies/listPreconfiguredExpressionSets",
153957	//   "response": {
153958	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
153959	//   },
153960	//   "scopes": [
153961	//     "https://www.googleapis.com/auth/cloud-platform",
153962	//     "https://www.googleapis.com/auth/compute"
153963	//   ]
153964	// }
153965
153966}
153967
153968// method id "compute.securityPolicies.patch":
153969
153970type SecurityPoliciesPatchCall struct {
153971	s              *Service
153972	project        string
153973	securityPolicy string
153974	securitypolicy *SecurityPolicy
153975	urlParams_     gensupport.URLParams
153976	ctx_           context.Context
153977	header_        http.Header
153978}
153979
153980// Patch: Patches the specified policy with the data included in the
153981// request.
153982func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
153983	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153984	c.project = project
153985	c.securityPolicy = securityPolicy
153986	c.securitypolicy = securitypolicy
153987	return c
153988}
153989
153990// RequestId sets the optional parameter "requestId": An optional
153991// request ID to identify requests. Specify a unique request ID so that
153992// if you must retry your request, the server will know to ignore the
153993// request if it has already been completed.
153994//
153995// For example, consider a situation where you make an initial request
153996// and the request times out. If you make the request again with the
153997// same request ID, the server can check if original operation with the
153998// same request ID was received, and if so, will ignore the second
153999// request. This prevents clients from accidentally creating duplicate
154000// commitments.
154001//
154002// The request ID must be a valid UUID with the exception that zero UUID
154003// is not supported (00000000-0000-0000-0000-000000000000).
154004func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
154005	c.urlParams_.Set("requestId", requestId)
154006	return c
154007}
154008
154009// Fields allows partial responses to be retrieved. See
154010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154011// for more information.
154012func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
154013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154014	return c
154015}
154016
154017// Context sets the context to be used in this call's Do method. Any
154018// pending HTTP request will be aborted if the provided context is
154019// canceled.
154020func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
154021	c.ctx_ = ctx
154022	return c
154023}
154024
154025// Header returns an http.Header that can be modified by the caller to
154026// add HTTP headers to the request.
154027func (c *SecurityPoliciesPatchCall) Header() http.Header {
154028	if c.header_ == nil {
154029		c.header_ = make(http.Header)
154030	}
154031	return c.header_
154032}
154033
154034func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
154035	reqHeaders := make(http.Header)
154036	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
154037	for k, v := range c.header_ {
154038		reqHeaders[k] = v
154039	}
154040	reqHeaders.Set("User-Agent", c.s.userAgent())
154041	var body io.Reader = nil
154042	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
154043	if err != nil {
154044		return nil, err
154045	}
154046	reqHeaders.Set("Content-Type", "application/json")
154047	c.urlParams_.Set("alt", alt)
154048	c.urlParams_.Set("prettyPrint", "false")
154049	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
154050	urls += "?" + c.urlParams_.Encode()
154051	req, err := http.NewRequest("PATCH", urls, body)
154052	if err != nil {
154053		return nil, err
154054	}
154055	req.Header = reqHeaders
154056	googleapi.Expand(req.URL, map[string]string{
154057		"project":        c.project,
154058		"securityPolicy": c.securityPolicy,
154059	})
154060	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154061}
154062
154063// Do executes the "compute.securityPolicies.patch" call.
154064// Exactly one of *Operation or error will be non-nil. Any non-2xx
154065// status code is an error. Response headers are in either
154066// *Operation.ServerResponse.Header or (if a response was returned at
154067// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154068// to check whether the returned error was because
154069// http.StatusNotModified was returned.
154070func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154071	gensupport.SetOptions(c.urlParams_, opts...)
154072	res, err := c.doRequest("json")
154073	if res != nil && res.StatusCode == http.StatusNotModified {
154074		if res.Body != nil {
154075			res.Body.Close()
154076		}
154077		return nil, &googleapi.Error{
154078			Code:   res.StatusCode,
154079			Header: res.Header,
154080		}
154081	}
154082	if err != nil {
154083		return nil, err
154084	}
154085	defer googleapi.CloseBody(res)
154086	if err := googleapi.CheckResponse(res); err != nil {
154087		return nil, err
154088	}
154089	ret := &Operation{
154090		ServerResponse: googleapi.ServerResponse{
154091			Header:         res.Header,
154092			HTTPStatusCode: res.StatusCode,
154093		},
154094	}
154095	target := &ret
154096	if err := gensupport.DecodeResponse(target, res); err != nil {
154097		return nil, err
154098	}
154099	return ret, nil
154100	// {
154101	//   "description": "Patches the specified policy with the data included in the request.",
154102	//   "httpMethod": "PATCH",
154103	//   "id": "compute.securityPolicies.patch",
154104	//   "parameterOrder": [
154105	//     "project",
154106	//     "securityPolicy"
154107	//   ],
154108	//   "parameters": {
154109	//     "project": {
154110	//       "description": "Project ID for this request.",
154111	//       "location": "path",
154112	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154113	//       "required": true,
154114	//       "type": "string"
154115	//     },
154116	//     "requestId": {
154117	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154118	//       "location": "query",
154119	//       "type": "string"
154120	//     },
154121	//     "securityPolicy": {
154122	//       "description": "Name of the security policy to update.",
154123	//       "location": "path",
154124	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154125	//       "required": true,
154126	//       "type": "string"
154127	//     }
154128	//   },
154129	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
154130	//   "request": {
154131	//     "$ref": "SecurityPolicy"
154132	//   },
154133	//   "response": {
154134	//     "$ref": "Operation"
154135	//   },
154136	//   "scopes": [
154137	//     "https://www.googleapis.com/auth/cloud-platform",
154138	//     "https://www.googleapis.com/auth/compute"
154139	//   ]
154140	// }
154141
154142}
154143
154144// method id "compute.securityPolicies.patchRule":
154145
154146type SecurityPoliciesPatchRuleCall struct {
154147	s                  *Service
154148	project            string
154149	securityPolicy     string
154150	securitypolicyrule *SecurityPolicyRule
154151	urlParams_         gensupport.URLParams
154152	ctx_               context.Context
154153	header_            http.Header
154154}
154155
154156// PatchRule: Patches a rule at the specified priority.
154157func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
154158	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154159	c.project = project
154160	c.securityPolicy = securityPolicy
154161	c.securitypolicyrule = securitypolicyrule
154162	return c
154163}
154164
154165// Priority sets the optional parameter "priority": The priority of the
154166// rule to patch.
154167func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
154168	c.urlParams_.Set("priority", fmt.Sprint(priority))
154169	return c
154170}
154171
154172// ValidateOnly sets the optional parameter "validateOnly": If true, the
154173// request will not be committed.
154174func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall {
154175	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
154176	return c
154177}
154178
154179// Fields allows partial responses to be retrieved. See
154180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154181// for more information.
154182func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
154183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154184	return c
154185}
154186
154187// Context sets the context to be used in this call's Do method. Any
154188// pending HTTP request will be aborted if the provided context is
154189// canceled.
154190func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
154191	c.ctx_ = ctx
154192	return c
154193}
154194
154195// Header returns an http.Header that can be modified by the caller to
154196// add HTTP headers to the request.
154197func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
154198	if c.header_ == nil {
154199		c.header_ = make(http.Header)
154200	}
154201	return c.header_
154202}
154203
154204func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
154205	reqHeaders := make(http.Header)
154206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
154207	for k, v := range c.header_ {
154208		reqHeaders[k] = v
154209	}
154210	reqHeaders.Set("User-Agent", c.s.userAgent())
154211	var body io.Reader = nil
154212	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
154213	if err != nil {
154214		return nil, err
154215	}
154216	reqHeaders.Set("Content-Type", "application/json")
154217	c.urlParams_.Set("alt", alt)
154218	c.urlParams_.Set("prettyPrint", "false")
154219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule")
154220	urls += "?" + c.urlParams_.Encode()
154221	req, err := http.NewRequest("POST", urls, body)
154222	if err != nil {
154223		return nil, err
154224	}
154225	req.Header = reqHeaders
154226	googleapi.Expand(req.URL, map[string]string{
154227		"project":        c.project,
154228		"securityPolicy": c.securityPolicy,
154229	})
154230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154231}
154232
154233// Do executes the "compute.securityPolicies.patchRule" call.
154234// Exactly one of *Operation or error will be non-nil. Any non-2xx
154235// status code is an error. Response headers are in either
154236// *Operation.ServerResponse.Header or (if a response was returned at
154237// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154238// to check whether the returned error was because
154239// http.StatusNotModified was returned.
154240func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154241	gensupport.SetOptions(c.urlParams_, opts...)
154242	res, err := c.doRequest("json")
154243	if res != nil && res.StatusCode == http.StatusNotModified {
154244		if res.Body != nil {
154245			res.Body.Close()
154246		}
154247		return nil, &googleapi.Error{
154248			Code:   res.StatusCode,
154249			Header: res.Header,
154250		}
154251	}
154252	if err != nil {
154253		return nil, err
154254	}
154255	defer googleapi.CloseBody(res)
154256	if err := googleapi.CheckResponse(res); err != nil {
154257		return nil, err
154258	}
154259	ret := &Operation{
154260		ServerResponse: googleapi.ServerResponse{
154261			Header:         res.Header,
154262			HTTPStatusCode: res.StatusCode,
154263		},
154264	}
154265	target := &ret
154266	if err := gensupport.DecodeResponse(target, res); err != nil {
154267		return nil, err
154268	}
154269	return ret, nil
154270	// {
154271	//   "description": "Patches a rule at the specified priority.",
154272	//   "httpMethod": "POST",
154273	//   "id": "compute.securityPolicies.patchRule",
154274	//   "parameterOrder": [
154275	//     "project",
154276	//     "securityPolicy"
154277	//   ],
154278	//   "parameters": {
154279	//     "priority": {
154280	//       "description": "The priority of the rule to patch.",
154281	//       "format": "int32",
154282	//       "location": "query",
154283	//       "type": "integer"
154284	//     },
154285	//     "project": {
154286	//       "description": "Project ID for this request.",
154287	//       "location": "path",
154288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154289	//       "required": true,
154290	//       "type": "string"
154291	//     },
154292	//     "securityPolicy": {
154293	//       "description": "Name of the security policy to update.",
154294	//       "location": "path",
154295	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154296	//       "required": true,
154297	//       "type": "string"
154298	//     },
154299	//     "validateOnly": {
154300	//       "description": "If true, the request will not be committed.",
154301	//       "location": "query",
154302	//       "type": "boolean"
154303	//     }
154304	//   },
154305	//   "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule",
154306	//   "request": {
154307	//     "$ref": "SecurityPolicyRule"
154308	//   },
154309	//   "response": {
154310	//     "$ref": "Operation"
154311	//   },
154312	//   "scopes": [
154313	//     "https://www.googleapis.com/auth/cloud-platform",
154314	//     "https://www.googleapis.com/auth/compute"
154315	//   ]
154316	// }
154317
154318}
154319
154320// method id "compute.securityPolicies.removeRule":
154321
154322type SecurityPoliciesRemoveRuleCall struct {
154323	s              *Service
154324	project        string
154325	securityPolicy string
154326	urlParams_     gensupport.URLParams
154327	ctx_           context.Context
154328	header_        http.Header
154329}
154330
154331// RemoveRule: Deletes a rule at the specified priority.
154332func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
154333	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154334	c.project = project
154335	c.securityPolicy = securityPolicy
154336	return c
154337}
154338
154339// Priority sets the optional parameter "priority": The priority of the
154340// rule to remove from the security policy.
154341func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
154342	c.urlParams_.Set("priority", fmt.Sprint(priority))
154343	return c
154344}
154345
154346// Fields allows partial responses to be retrieved. See
154347// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154348// for more information.
154349func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
154350	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154351	return c
154352}
154353
154354// Context sets the context to be used in this call's Do method. Any
154355// pending HTTP request will be aborted if the provided context is
154356// canceled.
154357func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
154358	c.ctx_ = ctx
154359	return c
154360}
154361
154362// Header returns an http.Header that can be modified by the caller to
154363// add HTTP headers to the request.
154364func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
154365	if c.header_ == nil {
154366		c.header_ = make(http.Header)
154367	}
154368	return c.header_
154369}
154370
154371func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
154372	reqHeaders := make(http.Header)
154373	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
154374	for k, v := range c.header_ {
154375		reqHeaders[k] = v
154376	}
154377	reqHeaders.Set("User-Agent", c.s.userAgent())
154378	var body io.Reader = nil
154379	c.urlParams_.Set("alt", alt)
154380	c.urlParams_.Set("prettyPrint", "false")
154381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule")
154382	urls += "?" + c.urlParams_.Encode()
154383	req, err := http.NewRequest("POST", urls, body)
154384	if err != nil {
154385		return nil, err
154386	}
154387	req.Header = reqHeaders
154388	googleapi.Expand(req.URL, map[string]string{
154389		"project":        c.project,
154390		"securityPolicy": c.securityPolicy,
154391	})
154392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154393}
154394
154395// Do executes the "compute.securityPolicies.removeRule" call.
154396// Exactly one of *Operation or error will be non-nil. Any non-2xx
154397// status code is an error. Response headers are in either
154398// *Operation.ServerResponse.Header or (if a response was returned at
154399// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154400// to check whether the returned error was because
154401// http.StatusNotModified was returned.
154402func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154403	gensupport.SetOptions(c.urlParams_, opts...)
154404	res, err := c.doRequest("json")
154405	if res != nil && res.StatusCode == http.StatusNotModified {
154406		if res.Body != nil {
154407			res.Body.Close()
154408		}
154409		return nil, &googleapi.Error{
154410			Code:   res.StatusCode,
154411			Header: res.Header,
154412		}
154413	}
154414	if err != nil {
154415		return nil, err
154416	}
154417	defer googleapi.CloseBody(res)
154418	if err := googleapi.CheckResponse(res); err != nil {
154419		return nil, err
154420	}
154421	ret := &Operation{
154422		ServerResponse: googleapi.ServerResponse{
154423			Header:         res.Header,
154424			HTTPStatusCode: res.StatusCode,
154425		},
154426	}
154427	target := &ret
154428	if err := gensupport.DecodeResponse(target, res); err != nil {
154429		return nil, err
154430	}
154431	return ret, nil
154432	// {
154433	//   "description": "Deletes a rule at the specified priority.",
154434	//   "httpMethod": "POST",
154435	//   "id": "compute.securityPolicies.removeRule",
154436	//   "parameterOrder": [
154437	//     "project",
154438	//     "securityPolicy"
154439	//   ],
154440	//   "parameters": {
154441	//     "priority": {
154442	//       "description": "The priority of the rule to remove from the security policy.",
154443	//       "format": "int32",
154444	//       "location": "query",
154445	//       "type": "integer"
154446	//     },
154447	//     "project": {
154448	//       "description": "Project ID for this request.",
154449	//       "location": "path",
154450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154451	//       "required": true,
154452	//       "type": "string"
154453	//     },
154454	//     "securityPolicy": {
154455	//       "description": "Name of the security policy to update.",
154456	//       "location": "path",
154457	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154458	//       "required": true,
154459	//       "type": "string"
154460	//     }
154461	//   },
154462	//   "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule",
154463	//   "response": {
154464	//     "$ref": "Operation"
154465	//   },
154466	//   "scopes": [
154467	//     "https://www.googleapis.com/auth/cloud-platform",
154468	//     "https://www.googleapis.com/auth/compute"
154469	//   ]
154470	// }
154471
154472}
154473
154474// method id "compute.securityPolicies.setLabels":
154475
154476type SecurityPoliciesSetLabelsCall struct {
154477	s                      *Service
154478	project                string
154479	resource               string
154480	globalsetlabelsrequest *GlobalSetLabelsRequest
154481	urlParams_             gensupport.URLParams
154482	ctx_                   context.Context
154483	header_                http.Header
154484}
154485
154486// SetLabels: Sets the labels on a security policy. To learn more about
154487// labels, read the Labeling Resources documentation.
154488func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall {
154489	c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154490	c.project = project
154491	c.resource = resource
154492	c.globalsetlabelsrequest = globalsetlabelsrequest
154493	return c
154494}
154495
154496// Fields allows partial responses to be retrieved. See
154497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154498// for more information.
154499func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall {
154500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154501	return c
154502}
154503
154504// Context sets the context to be used in this call's Do method. Any
154505// pending HTTP request will be aborted if the provided context is
154506// canceled.
154507func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall {
154508	c.ctx_ = ctx
154509	return c
154510}
154511
154512// Header returns an http.Header that can be modified by the caller to
154513// add HTTP headers to the request.
154514func (c *SecurityPoliciesSetLabelsCall) Header() http.Header {
154515	if c.header_ == nil {
154516		c.header_ = make(http.Header)
154517	}
154518	return c.header_
154519}
154520
154521func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
154522	reqHeaders := make(http.Header)
154523	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
154524	for k, v := range c.header_ {
154525		reqHeaders[k] = v
154526	}
154527	reqHeaders.Set("User-Agent", c.s.userAgent())
154528	var body io.Reader = nil
154529	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
154530	if err != nil {
154531		return nil, err
154532	}
154533	reqHeaders.Set("Content-Type", "application/json")
154534	c.urlParams_.Set("alt", alt)
154535	c.urlParams_.Set("prettyPrint", "false")
154536	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/setLabels")
154537	urls += "?" + c.urlParams_.Encode()
154538	req, err := http.NewRequest("POST", urls, body)
154539	if err != nil {
154540		return nil, err
154541	}
154542	req.Header = reqHeaders
154543	googleapi.Expand(req.URL, map[string]string{
154544		"project":  c.project,
154545		"resource": c.resource,
154546	})
154547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154548}
154549
154550// Do executes the "compute.securityPolicies.setLabels" call.
154551// Exactly one of *Operation or error will be non-nil. Any non-2xx
154552// status code is an error. Response headers are in either
154553// *Operation.ServerResponse.Header or (if a response was returned at
154554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154555// to check whether the returned error was because
154556// http.StatusNotModified was returned.
154557func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154558	gensupport.SetOptions(c.urlParams_, opts...)
154559	res, err := c.doRequest("json")
154560	if res != nil && res.StatusCode == http.StatusNotModified {
154561		if res.Body != nil {
154562			res.Body.Close()
154563		}
154564		return nil, &googleapi.Error{
154565			Code:   res.StatusCode,
154566			Header: res.Header,
154567		}
154568	}
154569	if err != nil {
154570		return nil, err
154571	}
154572	defer googleapi.CloseBody(res)
154573	if err := googleapi.CheckResponse(res); err != nil {
154574		return nil, err
154575	}
154576	ret := &Operation{
154577		ServerResponse: googleapi.ServerResponse{
154578			Header:         res.Header,
154579			HTTPStatusCode: res.StatusCode,
154580		},
154581	}
154582	target := &ret
154583	if err := gensupport.DecodeResponse(target, res); err != nil {
154584		return nil, err
154585	}
154586	return ret, nil
154587	// {
154588	//   "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.",
154589	//   "httpMethod": "POST",
154590	//   "id": "compute.securityPolicies.setLabels",
154591	//   "parameterOrder": [
154592	//     "project",
154593	//     "resource"
154594	//   ],
154595	//   "parameters": {
154596	//     "project": {
154597	//       "description": "Project ID for this request.",
154598	//       "location": "path",
154599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154600	//       "required": true,
154601	//       "type": "string"
154602	//     },
154603	//     "resource": {
154604	//       "description": "Name or id of the resource for this request.",
154605	//       "location": "path",
154606	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154607	//       "required": true,
154608	//       "type": "string"
154609	//     }
154610	//   },
154611	//   "path": "{project}/global/securityPolicies/{resource}/setLabels",
154612	//   "request": {
154613	//     "$ref": "GlobalSetLabelsRequest"
154614	//   },
154615	//   "response": {
154616	//     "$ref": "Operation"
154617	//   },
154618	//   "scopes": [
154619	//     "https://www.googleapis.com/auth/cloud-platform",
154620	//     "https://www.googleapis.com/auth/compute"
154621	//   ]
154622	// }
154623
154624}
154625
154626// method id "compute.securityPolicies.testIamPermissions":
154627
154628type SecurityPoliciesTestIamPermissionsCall struct {
154629	s                      *Service
154630	project                string
154631	resource               string
154632	testpermissionsrequest *TestPermissionsRequest
154633	urlParams_             gensupport.URLParams
154634	ctx_                   context.Context
154635	header_                http.Header
154636}
154637
154638// TestIamPermissions: Returns permissions that a caller has on the
154639// specified resource.
154640func (r *SecurityPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SecurityPoliciesTestIamPermissionsCall {
154641	c := &SecurityPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154642	c.project = project
154643	c.resource = resource
154644	c.testpermissionsrequest = testpermissionsrequest
154645	return c
154646}
154647
154648// Fields allows partial responses to be retrieved. See
154649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154650// for more information.
154651func (c *SecurityPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SecurityPoliciesTestIamPermissionsCall {
154652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154653	return c
154654}
154655
154656// Context sets the context to be used in this call's Do method. Any
154657// pending HTTP request will be aborted if the provided context is
154658// canceled.
154659func (c *SecurityPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SecurityPoliciesTestIamPermissionsCall {
154660	c.ctx_ = ctx
154661	return c
154662}
154663
154664// Header returns an http.Header that can be modified by the caller to
154665// add HTTP headers to the request.
154666func (c *SecurityPoliciesTestIamPermissionsCall) Header() http.Header {
154667	if c.header_ == nil {
154668		c.header_ = make(http.Header)
154669	}
154670	return c.header_
154671}
154672
154673func (c *SecurityPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
154674	reqHeaders := make(http.Header)
154675	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
154676	for k, v := range c.header_ {
154677		reqHeaders[k] = v
154678	}
154679	reqHeaders.Set("User-Agent", c.s.userAgent())
154680	var body io.Reader = nil
154681	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
154682	if err != nil {
154683		return nil, err
154684	}
154685	reqHeaders.Set("Content-Type", "application/json")
154686	c.urlParams_.Set("alt", alt)
154687	c.urlParams_.Set("prettyPrint", "false")
154688	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/testIamPermissions")
154689	urls += "?" + c.urlParams_.Encode()
154690	req, err := http.NewRequest("POST", urls, body)
154691	if err != nil {
154692		return nil, err
154693	}
154694	req.Header = reqHeaders
154695	googleapi.Expand(req.URL, map[string]string{
154696		"project":  c.project,
154697		"resource": c.resource,
154698	})
154699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154700}
154701
154702// Do executes the "compute.securityPolicies.testIamPermissions" call.
154703// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
154704// non-2xx status code is an error. Response headers are in either
154705// *TestPermissionsResponse.ServerResponse.Header or (if a response was
154706// returned at all) in error.(*googleapi.Error).Header. Use
154707// googleapi.IsNotModified to check whether the returned error was
154708// because http.StatusNotModified was returned.
154709func (c *SecurityPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
154710	gensupport.SetOptions(c.urlParams_, opts...)
154711	res, err := c.doRequest("json")
154712	if res != nil && res.StatusCode == http.StatusNotModified {
154713		if res.Body != nil {
154714			res.Body.Close()
154715		}
154716		return nil, &googleapi.Error{
154717			Code:   res.StatusCode,
154718			Header: res.Header,
154719		}
154720	}
154721	if err != nil {
154722		return nil, err
154723	}
154724	defer googleapi.CloseBody(res)
154725	if err := googleapi.CheckResponse(res); err != nil {
154726		return nil, err
154727	}
154728	ret := &TestPermissionsResponse{
154729		ServerResponse: googleapi.ServerResponse{
154730			Header:         res.Header,
154731			HTTPStatusCode: res.StatusCode,
154732		},
154733	}
154734	target := &ret
154735	if err := gensupport.DecodeResponse(target, res); err != nil {
154736		return nil, err
154737	}
154738	return ret, nil
154739	// {
154740	//   "description": "Returns permissions that a caller has on the specified resource.",
154741	//   "httpMethod": "POST",
154742	//   "id": "compute.securityPolicies.testIamPermissions",
154743	//   "parameterOrder": [
154744	//     "project",
154745	//     "resource"
154746	//   ],
154747	//   "parameters": {
154748	//     "project": {
154749	//       "description": "Project ID for this request.",
154750	//       "location": "path",
154751	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154752	//       "required": true,
154753	//       "type": "string"
154754	//     },
154755	//     "resource": {
154756	//       "description": "Name or id of the resource for this request.",
154757	//       "location": "path",
154758	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154759	//       "required": true,
154760	//       "type": "string"
154761	//     }
154762	//   },
154763	//   "path": "{project}/global/securityPolicies/{resource}/testIamPermissions",
154764	//   "request": {
154765	//     "$ref": "TestPermissionsRequest"
154766	//   },
154767	//   "response": {
154768	//     "$ref": "TestPermissionsResponse"
154769	//   },
154770	//   "scopes": [
154771	//     "https://www.googleapis.com/auth/cloud-platform",
154772	//     "https://www.googleapis.com/auth/compute",
154773	//     "https://www.googleapis.com/auth/compute.readonly"
154774	//   ]
154775	// }
154776
154777}
154778
154779// method id "compute.serviceAttachments.delete":
154780
154781type ServiceAttachmentsDeleteCall struct {
154782	s                 *Service
154783	project           string
154784	region            string
154785	serviceAttachment string
154786	urlParams_        gensupport.URLParams
154787	ctx_              context.Context
154788	header_           http.Header
154789}
154790
154791// Delete: Deletes the specified ServiceAttachment in the given scope
154792func (r *ServiceAttachmentsService) Delete(project string, region string, serviceAttachment string) *ServiceAttachmentsDeleteCall {
154793	c := &ServiceAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154794	c.project = project
154795	c.region = region
154796	c.serviceAttachment = serviceAttachment
154797	return c
154798}
154799
154800// RequestId sets the optional parameter "requestId": An optional
154801// request ID to identify requests. Specify a unique request ID so that
154802// if you must retry your request, the server will know to ignore the
154803// request if it has already been completed.
154804//
154805// For example, consider a situation where you make an initial request
154806// and the request times out. If you make the request again with the
154807// same request ID, the server can check if original operation with the
154808// same request ID was received, and if so, will ignore the second
154809// request. This prevents clients from accidentally creating duplicate
154810// commitments.
154811//
154812// The request ID must be a valid UUID with the exception that zero UUID
154813// is not supported (00000000-0000-0000-0000-000000000000).
154814func (c *ServiceAttachmentsDeleteCall) RequestId(requestId string) *ServiceAttachmentsDeleteCall {
154815	c.urlParams_.Set("requestId", requestId)
154816	return c
154817}
154818
154819// Fields allows partial responses to be retrieved. See
154820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154821// for more information.
154822func (c *ServiceAttachmentsDeleteCall) Fields(s ...googleapi.Field) *ServiceAttachmentsDeleteCall {
154823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154824	return c
154825}
154826
154827// Context sets the context to be used in this call's Do method. Any
154828// pending HTTP request will be aborted if the provided context is
154829// canceled.
154830func (c *ServiceAttachmentsDeleteCall) Context(ctx context.Context) *ServiceAttachmentsDeleteCall {
154831	c.ctx_ = ctx
154832	return c
154833}
154834
154835// Header returns an http.Header that can be modified by the caller to
154836// add HTTP headers to the request.
154837func (c *ServiceAttachmentsDeleteCall) Header() http.Header {
154838	if c.header_ == nil {
154839		c.header_ = make(http.Header)
154840	}
154841	return c.header_
154842}
154843
154844func (c *ServiceAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
154845	reqHeaders := make(http.Header)
154846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
154847	for k, v := range c.header_ {
154848		reqHeaders[k] = v
154849	}
154850	reqHeaders.Set("User-Agent", c.s.userAgent())
154851	var body io.Reader = nil
154852	c.urlParams_.Set("alt", alt)
154853	c.urlParams_.Set("prettyPrint", "false")
154854	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
154855	urls += "?" + c.urlParams_.Encode()
154856	req, err := http.NewRequest("DELETE", urls, body)
154857	if err != nil {
154858		return nil, err
154859	}
154860	req.Header = reqHeaders
154861	googleapi.Expand(req.URL, map[string]string{
154862		"project":           c.project,
154863		"region":            c.region,
154864		"serviceAttachment": c.serviceAttachment,
154865	})
154866	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154867}
154868
154869// Do executes the "compute.serviceAttachments.delete" call.
154870// Exactly one of *Operation or error will be non-nil. Any non-2xx
154871// status code is an error. Response headers are in either
154872// *Operation.ServerResponse.Header or (if a response was returned at
154873// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154874// to check whether the returned error was because
154875// http.StatusNotModified was returned.
154876func (c *ServiceAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154877	gensupport.SetOptions(c.urlParams_, opts...)
154878	res, err := c.doRequest("json")
154879	if res != nil && res.StatusCode == http.StatusNotModified {
154880		if res.Body != nil {
154881			res.Body.Close()
154882		}
154883		return nil, &googleapi.Error{
154884			Code:   res.StatusCode,
154885			Header: res.Header,
154886		}
154887	}
154888	if err != nil {
154889		return nil, err
154890	}
154891	defer googleapi.CloseBody(res)
154892	if err := googleapi.CheckResponse(res); err != nil {
154893		return nil, err
154894	}
154895	ret := &Operation{
154896		ServerResponse: googleapi.ServerResponse{
154897			Header:         res.Header,
154898			HTTPStatusCode: res.StatusCode,
154899		},
154900	}
154901	target := &ret
154902	if err := gensupport.DecodeResponse(target, res); err != nil {
154903		return nil, err
154904	}
154905	return ret, nil
154906	// {
154907	//   "description": "Deletes the specified ServiceAttachment in the given scope",
154908	//   "httpMethod": "DELETE",
154909	//   "id": "compute.serviceAttachments.delete",
154910	//   "parameterOrder": [
154911	//     "project",
154912	//     "region",
154913	//     "serviceAttachment"
154914	//   ],
154915	//   "parameters": {
154916	//     "project": {
154917	//       "description": "Project ID for this request.",
154918	//       "location": "path",
154919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154920	//       "required": true,
154921	//       "type": "string"
154922	//     },
154923	//     "region": {
154924	//       "description": "Name of the region of this request.",
154925	//       "location": "path",
154926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154927	//       "required": true,
154928	//       "type": "string"
154929	//     },
154930	//     "requestId": {
154931	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154932	//       "location": "query",
154933	//       "type": "string"
154934	//     },
154935	//     "serviceAttachment": {
154936	//       "description": "Name of the ServiceAttachment resource to delete.",
154937	//       "location": "path",
154938	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154939	//       "required": true,
154940	//       "type": "string"
154941	//     }
154942	//   },
154943	//   "path": "{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
154944	//   "response": {
154945	//     "$ref": "Operation"
154946	//   },
154947	//   "scopes": [
154948	//     "https://www.googleapis.com/auth/cloud-platform",
154949	//     "https://www.googleapis.com/auth/compute"
154950	//   ]
154951	// }
154952
154953}
154954
154955// method id "compute.serviceAttachments.get":
154956
154957type ServiceAttachmentsGetCall struct {
154958	s                 *Service
154959	project           string
154960	region            string
154961	serviceAttachment string
154962	urlParams_        gensupport.URLParams
154963	ifNoneMatch_      string
154964	ctx_              context.Context
154965	header_           http.Header
154966}
154967
154968// Get: Returns the specified ServiceAttachment resource in the given
154969// scope.
154970func (r *ServiceAttachmentsService) Get(project string, region string, serviceAttachment string) *ServiceAttachmentsGetCall {
154971	c := &ServiceAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154972	c.project = project
154973	c.region = region
154974	c.serviceAttachment = serviceAttachment
154975	return c
154976}
154977
154978// Fields allows partial responses to be retrieved. See
154979// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154980// for more information.
154981func (c *ServiceAttachmentsGetCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetCall {
154982	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154983	return c
154984}
154985
154986// IfNoneMatch sets the optional parameter which makes the operation
154987// fail if the object's ETag matches the given value. This is useful for
154988// getting updates only after the object has changed since the last
154989// request. Use googleapi.IsNotModified to check whether the response
154990// error from Do is the result of In-None-Match.
154991func (c *ServiceAttachmentsGetCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetCall {
154992	c.ifNoneMatch_ = entityTag
154993	return c
154994}
154995
154996// Context sets the context to be used in this call's Do method. Any
154997// pending HTTP request will be aborted if the provided context is
154998// canceled.
154999func (c *ServiceAttachmentsGetCall) Context(ctx context.Context) *ServiceAttachmentsGetCall {
155000	c.ctx_ = ctx
155001	return c
155002}
155003
155004// Header returns an http.Header that can be modified by the caller to
155005// add HTTP headers to the request.
155006func (c *ServiceAttachmentsGetCall) Header() http.Header {
155007	if c.header_ == nil {
155008		c.header_ = make(http.Header)
155009	}
155010	return c.header_
155011}
155012
155013func (c *ServiceAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
155014	reqHeaders := make(http.Header)
155015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
155016	for k, v := range c.header_ {
155017		reqHeaders[k] = v
155018	}
155019	reqHeaders.Set("User-Agent", c.s.userAgent())
155020	if c.ifNoneMatch_ != "" {
155021		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155022	}
155023	var body io.Reader = nil
155024	c.urlParams_.Set("alt", alt)
155025	c.urlParams_.Set("prettyPrint", "false")
155026	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
155027	urls += "?" + c.urlParams_.Encode()
155028	req, err := http.NewRequest("GET", urls, body)
155029	if err != nil {
155030		return nil, err
155031	}
155032	req.Header = reqHeaders
155033	googleapi.Expand(req.URL, map[string]string{
155034		"project":           c.project,
155035		"region":            c.region,
155036		"serviceAttachment": c.serviceAttachment,
155037	})
155038	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155039}
155040
155041// Do executes the "compute.serviceAttachments.get" call.
155042// Exactly one of *ServiceAttachment or error will be non-nil. Any
155043// non-2xx status code is an error. Response headers are in either
155044// *ServiceAttachment.ServerResponse.Header or (if a response was
155045// returned at all) in error.(*googleapi.Error).Header. Use
155046// googleapi.IsNotModified to check whether the returned error was
155047// because http.StatusNotModified was returned.
155048func (c *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAttachment, error) {
155049	gensupport.SetOptions(c.urlParams_, opts...)
155050	res, err := c.doRequest("json")
155051	if res != nil && res.StatusCode == http.StatusNotModified {
155052		if res.Body != nil {
155053			res.Body.Close()
155054		}
155055		return nil, &googleapi.Error{
155056			Code:   res.StatusCode,
155057			Header: res.Header,
155058		}
155059	}
155060	if err != nil {
155061		return nil, err
155062	}
155063	defer googleapi.CloseBody(res)
155064	if err := googleapi.CheckResponse(res); err != nil {
155065		return nil, err
155066	}
155067	ret := &ServiceAttachment{
155068		ServerResponse: googleapi.ServerResponse{
155069			Header:         res.Header,
155070			HTTPStatusCode: res.StatusCode,
155071		},
155072	}
155073	target := &ret
155074	if err := gensupport.DecodeResponse(target, res); err != nil {
155075		return nil, err
155076	}
155077	return ret, nil
155078	// {
155079	//   "description": "Returns the specified ServiceAttachment resource in the given scope.",
155080	//   "httpMethod": "GET",
155081	//   "id": "compute.serviceAttachments.get",
155082	//   "parameterOrder": [
155083	//     "project",
155084	//     "region",
155085	//     "serviceAttachment"
155086	//   ],
155087	//   "parameters": {
155088	//     "project": {
155089	//       "description": "Project ID for this request.",
155090	//       "location": "path",
155091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155092	//       "required": true,
155093	//       "type": "string"
155094	//     },
155095	//     "region": {
155096	//       "description": "Name of the region of this request.",
155097	//       "location": "path",
155098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155099	//       "required": true,
155100	//       "type": "string"
155101	//     },
155102	//     "serviceAttachment": {
155103	//       "description": "Name of the ServiceAttachment resource to return.",
155104	//       "location": "path",
155105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155106	//       "required": true,
155107	//       "type": "string"
155108	//     }
155109	//   },
155110	//   "path": "{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
155111	//   "response": {
155112	//     "$ref": "ServiceAttachment"
155113	//   },
155114	//   "scopes": [
155115	//     "https://www.googleapis.com/auth/cloud-platform",
155116	//     "https://www.googleapis.com/auth/compute",
155117	//     "https://www.googleapis.com/auth/compute.readonly"
155118	//   ]
155119	// }
155120
155121}
155122
155123// method id "compute.serviceAttachments.getIamPolicy":
155124
155125type ServiceAttachmentsGetIamPolicyCall struct {
155126	s            *Service
155127	project      string
155128	region       string
155129	resource     string
155130	urlParams_   gensupport.URLParams
155131	ifNoneMatch_ string
155132	ctx_         context.Context
155133	header_      http.Header
155134}
155135
155136// GetIamPolicy: Gets the access control policy for a resource. May be
155137// empty if no such policy or resource exists.
155138func (r *ServiceAttachmentsService) GetIamPolicy(project string, region string, resource string) *ServiceAttachmentsGetIamPolicyCall {
155139	c := &ServiceAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155140	c.project = project
155141	c.region = region
155142	c.resource = resource
155143	return c
155144}
155145
155146// OptionsRequestedPolicyVersion sets the optional parameter
155147// "optionsRequestedPolicyVersion": Requested IAM Policy version.
155148func (c *ServiceAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ServiceAttachmentsGetIamPolicyCall {
155149	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
155150	return c
155151}
155152
155153// Fields allows partial responses to be retrieved. See
155154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155155// for more information.
155156func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetIamPolicyCall {
155157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155158	return c
155159}
155160
155161// IfNoneMatch sets the optional parameter which makes the operation
155162// fail if the object's ETag matches the given value. This is useful for
155163// getting updates only after the object has changed since the last
155164// request. Use googleapi.IsNotModified to check whether the response
155165// error from Do is the result of In-None-Match.
155166func (c *ServiceAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetIamPolicyCall {
155167	c.ifNoneMatch_ = entityTag
155168	return c
155169}
155170
155171// Context sets the context to be used in this call's Do method. Any
155172// pending HTTP request will be aborted if the provided context is
155173// canceled.
155174func (c *ServiceAttachmentsGetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsGetIamPolicyCall {
155175	c.ctx_ = ctx
155176	return c
155177}
155178
155179// Header returns an http.Header that can be modified by the caller to
155180// add HTTP headers to the request.
155181func (c *ServiceAttachmentsGetIamPolicyCall) Header() http.Header {
155182	if c.header_ == nil {
155183		c.header_ = make(http.Header)
155184	}
155185	return c.header_
155186}
155187
155188func (c *ServiceAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
155189	reqHeaders := make(http.Header)
155190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
155191	for k, v := range c.header_ {
155192		reqHeaders[k] = v
155193	}
155194	reqHeaders.Set("User-Agent", c.s.userAgent())
155195	if c.ifNoneMatch_ != "" {
155196		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155197	}
155198	var body io.Reader = nil
155199	c.urlParams_.Set("alt", alt)
155200	c.urlParams_.Set("prettyPrint", "false")
155201	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy")
155202	urls += "?" + c.urlParams_.Encode()
155203	req, err := http.NewRequest("GET", urls, body)
155204	if err != nil {
155205		return nil, err
155206	}
155207	req.Header = reqHeaders
155208	googleapi.Expand(req.URL, map[string]string{
155209		"project":  c.project,
155210		"region":   c.region,
155211		"resource": c.resource,
155212	})
155213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155214}
155215
155216// Do executes the "compute.serviceAttachments.getIamPolicy" call.
155217// Exactly one of *Policy or error will be non-nil. Any non-2xx status
155218// code is an error. Response headers are in either
155219// *Policy.ServerResponse.Header or (if a response was returned at all)
155220// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
155221// check whether the returned error was because http.StatusNotModified
155222// was returned.
155223func (c *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
155224	gensupport.SetOptions(c.urlParams_, opts...)
155225	res, err := c.doRequest("json")
155226	if res != nil && res.StatusCode == http.StatusNotModified {
155227		if res.Body != nil {
155228			res.Body.Close()
155229		}
155230		return nil, &googleapi.Error{
155231			Code:   res.StatusCode,
155232			Header: res.Header,
155233		}
155234	}
155235	if err != nil {
155236		return nil, err
155237	}
155238	defer googleapi.CloseBody(res)
155239	if err := googleapi.CheckResponse(res); err != nil {
155240		return nil, err
155241	}
155242	ret := &Policy{
155243		ServerResponse: googleapi.ServerResponse{
155244			Header:         res.Header,
155245			HTTPStatusCode: res.StatusCode,
155246		},
155247	}
155248	target := &ret
155249	if err := gensupport.DecodeResponse(target, res); err != nil {
155250		return nil, err
155251	}
155252	return ret, nil
155253	// {
155254	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
155255	//   "httpMethod": "GET",
155256	//   "id": "compute.serviceAttachments.getIamPolicy",
155257	//   "parameterOrder": [
155258	//     "project",
155259	//     "region",
155260	//     "resource"
155261	//   ],
155262	//   "parameters": {
155263	//     "optionsRequestedPolicyVersion": {
155264	//       "description": "Requested IAM Policy version.",
155265	//       "format": "int32",
155266	//       "location": "query",
155267	//       "type": "integer"
155268	//     },
155269	//     "project": {
155270	//       "description": "Project ID for this request.",
155271	//       "location": "path",
155272	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155273	//       "required": true,
155274	//       "type": "string"
155275	//     },
155276	//     "region": {
155277	//       "description": "The name of the region for this request.",
155278	//       "location": "path",
155279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155280	//       "required": true,
155281	//       "type": "string"
155282	//     },
155283	//     "resource": {
155284	//       "description": "Name or id of the resource for this request.",
155285	//       "location": "path",
155286	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155287	//       "required": true,
155288	//       "type": "string"
155289	//     }
155290	//   },
155291	//   "path": "{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
155292	//   "response": {
155293	//     "$ref": "Policy"
155294	//   },
155295	//   "scopes": [
155296	//     "https://www.googleapis.com/auth/cloud-platform",
155297	//     "https://www.googleapis.com/auth/compute",
155298	//     "https://www.googleapis.com/auth/compute.readonly"
155299	//   ]
155300	// }
155301
155302}
155303
155304// method id "compute.serviceAttachments.insert":
155305
155306type ServiceAttachmentsInsertCall struct {
155307	s                 *Service
155308	project           string
155309	region            string
155310	serviceattachment *ServiceAttachment
155311	urlParams_        gensupport.URLParams
155312	ctx_              context.Context
155313	header_           http.Header
155314}
155315
155316// Insert: Creates a ServiceAttachment in the specified project in the
155317// given scope using the parameters that are included in the request.
155318func (r *ServiceAttachmentsService) Insert(project string, region string, serviceattachment *ServiceAttachment) *ServiceAttachmentsInsertCall {
155319	c := &ServiceAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155320	c.project = project
155321	c.region = region
155322	c.serviceattachment = serviceattachment
155323	return c
155324}
155325
155326// RequestId sets the optional parameter "requestId": An optional
155327// request ID to identify requests. Specify a unique request ID so that
155328// if you must retry your request, the server will know to ignore the
155329// request if it has already been completed.
155330//
155331// For example, consider a situation where you make an initial request
155332// and the request times out. If you make the request again with the
155333// same request ID, the server can check if original operation with the
155334// same request ID was received, and if so, will ignore the second
155335// request. This prevents clients from accidentally creating duplicate
155336// commitments.
155337//
155338// The request ID must be a valid UUID with the exception that zero UUID
155339// is not supported (00000000-0000-0000-0000-000000000000).
155340func (c *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttachmentsInsertCall {
155341	c.urlParams_.Set("requestId", requestId)
155342	return c
155343}
155344
155345// Fields allows partial responses to be retrieved. See
155346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155347// for more information.
155348func (c *ServiceAttachmentsInsertCall) Fields(s ...googleapi.Field) *ServiceAttachmentsInsertCall {
155349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155350	return c
155351}
155352
155353// Context sets the context to be used in this call's Do method. Any
155354// pending HTTP request will be aborted if the provided context is
155355// canceled.
155356func (c *ServiceAttachmentsInsertCall) Context(ctx context.Context) *ServiceAttachmentsInsertCall {
155357	c.ctx_ = ctx
155358	return c
155359}
155360
155361// Header returns an http.Header that can be modified by the caller to
155362// add HTTP headers to the request.
155363func (c *ServiceAttachmentsInsertCall) Header() http.Header {
155364	if c.header_ == nil {
155365		c.header_ = make(http.Header)
155366	}
155367	return c.header_
155368}
155369
155370func (c *ServiceAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
155371	reqHeaders := make(http.Header)
155372	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
155373	for k, v := range c.header_ {
155374		reqHeaders[k] = v
155375	}
155376	reqHeaders.Set("User-Agent", c.s.userAgent())
155377	var body io.Reader = nil
155378	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
155379	if err != nil {
155380		return nil, err
155381	}
155382	reqHeaders.Set("Content-Type", "application/json")
155383	c.urlParams_.Set("alt", alt)
155384	c.urlParams_.Set("prettyPrint", "false")
155385	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/serviceAttachments")
155386	urls += "?" + c.urlParams_.Encode()
155387	req, err := http.NewRequest("POST", urls, body)
155388	if err != nil {
155389		return nil, err
155390	}
155391	req.Header = reqHeaders
155392	googleapi.Expand(req.URL, map[string]string{
155393		"project": c.project,
155394		"region":  c.region,
155395	})
155396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155397}
155398
155399// Do executes the "compute.serviceAttachments.insert" call.
155400// Exactly one of *Operation or error will be non-nil. Any non-2xx
155401// status code is an error. Response headers are in either
155402// *Operation.ServerResponse.Header or (if a response was returned at
155403// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155404// to check whether the returned error was because
155405// http.StatusNotModified was returned.
155406func (c *ServiceAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155407	gensupport.SetOptions(c.urlParams_, opts...)
155408	res, err := c.doRequest("json")
155409	if res != nil && res.StatusCode == http.StatusNotModified {
155410		if res.Body != nil {
155411			res.Body.Close()
155412		}
155413		return nil, &googleapi.Error{
155414			Code:   res.StatusCode,
155415			Header: res.Header,
155416		}
155417	}
155418	if err != nil {
155419		return nil, err
155420	}
155421	defer googleapi.CloseBody(res)
155422	if err := googleapi.CheckResponse(res); err != nil {
155423		return nil, err
155424	}
155425	ret := &Operation{
155426		ServerResponse: googleapi.ServerResponse{
155427			Header:         res.Header,
155428			HTTPStatusCode: res.StatusCode,
155429		},
155430	}
155431	target := &ret
155432	if err := gensupport.DecodeResponse(target, res); err != nil {
155433		return nil, err
155434	}
155435	return ret, nil
155436	// {
155437	//   "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.",
155438	//   "httpMethod": "POST",
155439	//   "id": "compute.serviceAttachments.insert",
155440	//   "parameterOrder": [
155441	//     "project",
155442	//     "region"
155443	//   ],
155444	//   "parameters": {
155445	//     "project": {
155446	//       "description": "Project ID for this request.",
155447	//       "location": "path",
155448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155449	//       "required": true,
155450	//       "type": "string"
155451	//     },
155452	//     "region": {
155453	//       "description": "Name of the region of this request.",
155454	//       "location": "path",
155455	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155456	//       "required": true,
155457	//       "type": "string"
155458	//     },
155459	//     "requestId": {
155460	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155461	//       "location": "query",
155462	//       "type": "string"
155463	//     }
155464	//   },
155465	//   "path": "{project}/regions/{region}/serviceAttachments",
155466	//   "request": {
155467	//     "$ref": "ServiceAttachment"
155468	//   },
155469	//   "response": {
155470	//     "$ref": "Operation"
155471	//   },
155472	//   "scopes": [
155473	//     "https://www.googleapis.com/auth/cloud-platform",
155474	//     "https://www.googleapis.com/auth/compute"
155475	//   ]
155476	// }
155477
155478}
155479
155480// method id "compute.serviceAttachments.list":
155481
155482type ServiceAttachmentsListCall struct {
155483	s            *Service
155484	project      string
155485	region       string
155486	urlParams_   gensupport.URLParams
155487	ifNoneMatch_ string
155488	ctx_         context.Context
155489	header_      http.Header
155490}
155491
155492// List: Lists the ServiceAttachments for a project in the given scope.
155493func (r *ServiceAttachmentsService) List(project string, region string) *ServiceAttachmentsListCall {
155494	c := &ServiceAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155495	c.project = project
155496	c.region = region
155497	return c
155498}
155499
155500// Filter sets the optional parameter "filter": A filter expression that
155501// filters resources listed in the response. The expression must specify
155502// the field name, a comparison operator, and the value that you want to
155503// use for filtering. The value must be a string, a number, or a
155504// boolean. The comparison operator must be either `=`, `!=`, `>`, or
155505// `<`.
155506//
155507// For example, if you are filtering Compute Engine instances, you can
155508// exclude instances named `example-instance` by specifying `name !=
155509// example-instance`.
155510//
155511// You can also filter nested fields. For example, you could specify
155512// `scheduling.automaticRestart = false` to include instances only if
155513// they are not scheduled for automatic restarts. You can use filtering
155514// on nested fields to filter based on resource labels.
155515//
155516// To filter on multiple expressions, provide each separate expression
155517// within parentheses. For example: ``` (scheduling.automaticRestart =
155518// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
155519// is an `AND` expression. However, you can include `AND` and `OR`
155520// expressions explicitly. For example: ``` (cpuPlatform = "Intel
155521// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
155522// (scheduling.automaticRestart = true) ```
155523func (c *ServiceAttachmentsListCall) Filter(filter string) *ServiceAttachmentsListCall {
155524	c.urlParams_.Set("filter", filter)
155525	return c
155526}
155527
155528// MaxResults sets the optional parameter "maxResults": The maximum
155529// number of results per page that should be returned. If the number of
155530// available results is larger than `maxResults`, Compute Engine returns
155531// a `nextPageToken` that can be used to get the next page of results in
155532// subsequent list requests. Acceptable values are `0` to `500`,
155533// inclusive. (Default: `500`)
155534func (c *ServiceAttachmentsListCall) MaxResults(maxResults int64) *ServiceAttachmentsListCall {
155535	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155536	return c
155537}
155538
155539// OrderBy sets the optional parameter "orderBy": Sorts list results by
155540// a certain order. By default, results are returned in alphanumerical
155541// order based on the resource name.
155542//
155543// You can also sort results in descending order based on the creation
155544// timestamp using `orderBy="creationTimestamp desc". This sorts
155545// results based on the `creationTimestamp` field in reverse
155546// chronological order (newest result first). Use this to sort resources
155547// like operations so that the newest operation is returned
155548// first.
155549//
155550// Currently, only sorting by `name` or `creationTimestamp desc` is
155551// supported.
155552func (c *ServiceAttachmentsListCall) OrderBy(orderBy string) *ServiceAttachmentsListCall {
155553	c.urlParams_.Set("orderBy", orderBy)
155554	return c
155555}
155556
155557// PageToken sets the optional parameter "pageToken": Specifies a page
155558// token to use. Set `pageToken` to the `nextPageToken` returned by a
155559// previous list request to get the next page of results.
155560func (c *ServiceAttachmentsListCall) PageToken(pageToken string) *ServiceAttachmentsListCall {
155561	c.urlParams_.Set("pageToken", pageToken)
155562	return c
155563}
155564
155565// ReturnPartialSuccess sets the optional parameter
155566// "returnPartialSuccess": Opt-in for partial success behavior which
155567// provides partial results in case of failure. The default value is
155568// false and the logic is the same as today.
155569func (c *ServiceAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsListCall {
155570	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
155571	return c
155572}
155573
155574// Fields allows partial responses to be retrieved. See
155575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155576// for more information.
155577func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsListCall {
155578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155579	return c
155580}
155581
155582// IfNoneMatch sets the optional parameter which makes the operation
155583// fail if the object's ETag matches the given value. This is useful for
155584// getting updates only after the object has changed since the last
155585// request. Use googleapi.IsNotModified to check whether the response
155586// error from Do is the result of In-None-Match.
155587func (c *ServiceAttachmentsListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsListCall {
155588	c.ifNoneMatch_ = entityTag
155589	return c
155590}
155591
155592// Context sets the context to be used in this call's Do method. Any
155593// pending HTTP request will be aborted if the provided context is
155594// canceled.
155595func (c *ServiceAttachmentsListCall) Context(ctx context.Context) *ServiceAttachmentsListCall {
155596	c.ctx_ = ctx
155597	return c
155598}
155599
155600// Header returns an http.Header that can be modified by the caller to
155601// add HTTP headers to the request.
155602func (c *ServiceAttachmentsListCall) Header() http.Header {
155603	if c.header_ == nil {
155604		c.header_ = make(http.Header)
155605	}
155606	return c.header_
155607}
155608
155609func (c *ServiceAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
155610	reqHeaders := make(http.Header)
155611	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
155612	for k, v := range c.header_ {
155613		reqHeaders[k] = v
155614	}
155615	reqHeaders.Set("User-Agent", c.s.userAgent())
155616	if c.ifNoneMatch_ != "" {
155617		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155618	}
155619	var body io.Reader = nil
155620	c.urlParams_.Set("alt", alt)
155621	c.urlParams_.Set("prettyPrint", "false")
155622	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/serviceAttachments")
155623	urls += "?" + c.urlParams_.Encode()
155624	req, err := http.NewRequest("GET", urls, body)
155625	if err != nil {
155626		return nil, err
155627	}
155628	req.Header = reqHeaders
155629	googleapi.Expand(req.URL, map[string]string{
155630		"project": c.project,
155631		"region":  c.region,
155632	})
155633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155634}
155635
155636// Do executes the "compute.serviceAttachments.list" call.
155637// Exactly one of *ServiceAttachmentList or error will be non-nil. Any
155638// non-2xx status code is an error. Response headers are in either
155639// *ServiceAttachmentList.ServerResponse.Header or (if a response was
155640// returned at all) in error.(*googleapi.Error).Header. Use
155641// googleapi.IsNotModified to check whether the returned error was
155642// because http.StatusNotModified was returned.
155643func (c *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentList, error) {
155644	gensupport.SetOptions(c.urlParams_, opts...)
155645	res, err := c.doRequest("json")
155646	if res != nil && res.StatusCode == http.StatusNotModified {
155647		if res.Body != nil {
155648			res.Body.Close()
155649		}
155650		return nil, &googleapi.Error{
155651			Code:   res.StatusCode,
155652			Header: res.Header,
155653		}
155654	}
155655	if err != nil {
155656		return nil, err
155657	}
155658	defer googleapi.CloseBody(res)
155659	if err := googleapi.CheckResponse(res); err != nil {
155660		return nil, err
155661	}
155662	ret := &ServiceAttachmentList{
155663		ServerResponse: googleapi.ServerResponse{
155664			Header:         res.Header,
155665			HTTPStatusCode: res.StatusCode,
155666		},
155667	}
155668	target := &ret
155669	if err := gensupport.DecodeResponse(target, res); err != nil {
155670		return nil, err
155671	}
155672	return ret, nil
155673	// {
155674	//   "description": "Lists the ServiceAttachments for a project in the given scope.",
155675	//   "httpMethod": "GET",
155676	//   "id": "compute.serviceAttachments.list",
155677	//   "parameterOrder": [
155678	//     "project",
155679	//     "region"
155680	//   ],
155681	//   "parameters": {
155682	//     "filter": {
155683	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
155684	//       "location": "query",
155685	//       "type": "string"
155686	//     },
155687	//     "maxResults": {
155688	//       "default": "500",
155689	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
155690	//       "format": "uint32",
155691	//       "location": "query",
155692	//       "minimum": "0",
155693	//       "type": "integer"
155694	//     },
155695	//     "orderBy": {
155696	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
155697	//       "location": "query",
155698	//       "type": "string"
155699	//     },
155700	//     "pageToken": {
155701	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
155702	//       "location": "query",
155703	//       "type": "string"
155704	//     },
155705	//     "project": {
155706	//       "description": "Project ID for this request.",
155707	//       "location": "path",
155708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155709	//       "required": true,
155710	//       "type": "string"
155711	//     },
155712	//     "region": {
155713	//       "description": "Name of the region of this request.",
155714	//       "location": "path",
155715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155716	//       "required": true,
155717	//       "type": "string"
155718	//     },
155719	//     "returnPartialSuccess": {
155720	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
155721	//       "location": "query",
155722	//       "type": "boolean"
155723	//     }
155724	//   },
155725	//   "path": "{project}/regions/{region}/serviceAttachments",
155726	//   "response": {
155727	//     "$ref": "ServiceAttachmentList"
155728	//   },
155729	//   "scopes": [
155730	//     "https://www.googleapis.com/auth/cloud-platform",
155731	//     "https://www.googleapis.com/auth/compute",
155732	//     "https://www.googleapis.com/auth/compute.readonly"
155733	//   ]
155734	// }
155735
155736}
155737
155738// Pages invokes f for each page of results.
155739// A non-nil error returned from f will halt the iteration.
155740// The provided context supersedes any context provided to the Context method.
155741func (c *ServiceAttachmentsListCall) Pages(ctx context.Context, f func(*ServiceAttachmentList) error) error {
155742	c.ctx_ = ctx
155743	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155744	for {
155745		x, err := c.Do()
155746		if err != nil {
155747			return err
155748		}
155749		if err := f(x); err != nil {
155750			return err
155751		}
155752		if x.NextPageToken == "" {
155753			return nil
155754		}
155755		c.PageToken(x.NextPageToken)
155756	}
155757}
155758
155759// method id "compute.serviceAttachments.setIamPolicy":
155760
155761type ServiceAttachmentsSetIamPolicyCall struct {
155762	s                      *Service
155763	project                string
155764	region                 string
155765	resource               string
155766	regionsetpolicyrequest *RegionSetPolicyRequest
155767	urlParams_             gensupport.URLParams
155768	ctx_                   context.Context
155769	header_                http.Header
155770}
155771
155772// SetIamPolicy: Sets the access control policy on the specified
155773// resource. Replaces any existing policy.
155774func (r *ServiceAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ServiceAttachmentsSetIamPolicyCall {
155775	c := &ServiceAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155776	c.project = project
155777	c.region = region
155778	c.resource = resource
155779	c.regionsetpolicyrequest = regionsetpolicyrequest
155780	return c
155781}
155782
155783// Fields allows partial responses to be retrieved. See
155784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155785// for more information.
155786func (c *ServiceAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsSetIamPolicyCall {
155787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155788	return c
155789}
155790
155791// Context sets the context to be used in this call's Do method. Any
155792// pending HTTP request will be aborted if the provided context is
155793// canceled.
155794func (c *ServiceAttachmentsSetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsSetIamPolicyCall {
155795	c.ctx_ = ctx
155796	return c
155797}
155798
155799// Header returns an http.Header that can be modified by the caller to
155800// add HTTP headers to the request.
155801func (c *ServiceAttachmentsSetIamPolicyCall) Header() http.Header {
155802	if c.header_ == nil {
155803		c.header_ = make(http.Header)
155804	}
155805	return c.header_
155806}
155807
155808func (c *ServiceAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
155809	reqHeaders := make(http.Header)
155810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
155811	for k, v := range c.header_ {
155812		reqHeaders[k] = v
155813	}
155814	reqHeaders.Set("User-Agent", c.s.userAgent())
155815	var body io.Reader = nil
155816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
155817	if err != nil {
155818		return nil, err
155819	}
155820	reqHeaders.Set("Content-Type", "application/json")
155821	c.urlParams_.Set("alt", alt)
155822	c.urlParams_.Set("prettyPrint", "false")
155823	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy")
155824	urls += "?" + c.urlParams_.Encode()
155825	req, err := http.NewRequest("POST", urls, body)
155826	if err != nil {
155827		return nil, err
155828	}
155829	req.Header = reqHeaders
155830	googleapi.Expand(req.URL, map[string]string{
155831		"project":  c.project,
155832		"region":   c.region,
155833		"resource": c.resource,
155834	})
155835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155836}
155837
155838// Do executes the "compute.serviceAttachments.setIamPolicy" call.
155839// Exactly one of *Policy or error will be non-nil. Any non-2xx status
155840// code is an error. Response headers are in either
155841// *Policy.ServerResponse.Header or (if a response was returned at all)
155842// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
155843// check whether the returned error was because http.StatusNotModified
155844// was returned.
155845func (c *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
155846	gensupport.SetOptions(c.urlParams_, opts...)
155847	res, err := c.doRequest("json")
155848	if res != nil && res.StatusCode == http.StatusNotModified {
155849		if res.Body != nil {
155850			res.Body.Close()
155851		}
155852		return nil, &googleapi.Error{
155853			Code:   res.StatusCode,
155854			Header: res.Header,
155855		}
155856	}
155857	if err != nil {
155858		return nil, err
155859	}
155860	defer googleapi.CloseBody(res)
155861	if err := googleapi.CheckResponse(res); err != nil {
155862		return nil, err
155863	}
155864	ret := &Policy{
155865		ServerResponse: googleapi.ServerResponse{
155866			Header:         res.Header,
155867			HTTPStatusCode: res.StatusCode,
155868		},
155869	}
155870	target := &ret
155871	if err := gensupport.DecodeResponse(target, res); err != nil {
155872		return nil, err
155873	}
155874	return ret, nil
155875	// {
155876	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
155877	//   "httpMethod": "POST",
155878	//   "id": "compute.serviceAttachments.setIamPolicy",
155879	//   "parameterOrder": [
155880	//     "project",
155881	//     "region",
155882	//     "resource"
155883	//   ],
155884	//   "parameters": {
155885	//     "project": {
155886	//       "description": "Project ID for this request.",
155887	//       "location": "path",
155888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155889	//       "required": true,
155890	//       "type": "string"
155891	//     },
155892	//     "region": {
155893	//       "description": "The name of the region for this request.",
155894	//       "location": "path",
155895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155896	//       "required": true,
155897	//       "type": "string"
155898	//     },
155899	//     "resource": {
155900	//       "description": "Name or id of the resource for this request.",
155901	//       "location": "path",
155902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155903	//       "required": true,
155904	//       "type": "string"
155905	//     }
155906	//   },
155907	//   "path": "{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
155908	//   "request": {
155909	//     "$ref": "RegionSetPolicyRequest"
155910	//   },
155911	//   "response": {
155912	//     "$ref": "Policy"
155913	//   },
155914	//   "scopes": [
155915	//     "https://www.googleapis.com/auth/cloud-platform",
155916	//     "https://www.googleapis.com/auth/compute"
155917	//   ]
155918	// }
155919
155920}
155921
155922// method id "compute.serviceAttachments.testIamPermissions":
155923
155924type ServiceAttachmentsTestIamPermissionsCall struct {
155925	s                      *Service
155926	project                string
155927	region                 string
155928	resource               string
155929	testpermissionsrequest *TestPermissionsRequest
155930	urlParams_             gensupport.URLParams
155931	ctx_                   context.Context
155932	header_                http.Header
155933}
155934
155935// TestIamPermissions: Returns permissions that a caller has on the
155936// specified resource.
155937func (r *ServiceAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ServiceAttachmentsTestIamPermissionsCall {
155938	c := &ServiceAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155939	c.project = project
155940	c.region = region
155941	c.resource = resource
155942	c.testpermissionsrequest = testpermissionsrequest
155943	return c
155944}
155945
155946// Fields allows partial responses to be retrieved. See
155947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155948// for more information.
155949func (c *ServiceAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServiceAttachmentsTestIamPermissionsCall {
155950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155951	return c
155952}
155953
155954// Context sets the context to be used in this call's Do method. Any
155955// pending HTTP request will be aborted if the provided context is
155956// canceled.
155957func (c *ServiceAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *ServiceAttachmentsTestIamPermissionsCall {
155958	c.ctx_ = ctx
155959	return c
155960}
155961
155962// Header returns an http.Header that can be modified by the caller to
155963// add HTTP headers to the request.
155964func (c *ServiceAttachmentsTestIamPermissionsCall) Header() http.Header {
155965	if c.header_ == nil {
155966		c.header_ = make(http.Header)
155967	}
155968	return c.header_
155969}
155970
155971func (c *ServiceAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
155972	reqHeaders := make(http.Header)
155973	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
155974	for k, v := range c.header_ {
155975		reqHeaders[k] = v
155976	}
155977	reqHeaders.Set("User-Agent", c.s.userAgent())
155978	var body io.Reader = nil
155979	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
155980	if err != nil {
155981		return nil, err
155982	}
155983	reqHeaders.Set("Content-Type", "application/json")
155984	c.urlParams_.Set("alt", alt)
155985	c.urlParams_.Set("prettyPrint", "false")
155986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions")
155987	urls += "?" + c.urlParams_.Encode()
155988	req, err := http.NewRequest("POST", urls, body)
155989	if err != nil {
155990		return nil, err
155991	}
155992	req.Header = reqHeaders
155993	googleapi.Expand(req.URL, map[string]string{
155994		"project":  c.project,
155995		"region":   c.region,
155996		"resource": c.resource,
155997	})
155998	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155999}
156000
156001// Do executes the "compute.serviceAttachments.testIamPermissions" call.
156002// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
156003// non-2xx status code is an error. Response headers are in either
156004// *TestPermissionsResponse.ServerResponse.Header or (if a response was
156005// returned at all) in error.(*googleapi.Error).Header. Use
156006// googleapi.IsNotModified to check whether the returned error was
156007// because http.StatusNotModified was returned.
156008func (c *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
156009	gensupport.SetOptions(c.urlParams_, opts...)
156010	res, err := c.doRequest("json")
156011	if res != nil && res.StatusCode == http.StatusNotModified {
156012		if res.Body != nil {
156013			res.Body.Close()
156014		}
156015		return nil, &googleapi.Error{
156016			Code:   res.StatusCode,
156017			Header: res.Header,
156018		}
156019	}
156020	if err != nil {
156021		return nil, err
156022	}
156023	defer googleapi.CloseBody(res)
156024	if err := googleapi.CheckResponse(res); err != nil {
156025		return nil, err
156026	}
156027	ret := &TestPermissionsResponse{
156028		ServerResponse: googleapi.ServerResponse{
156029			Header:         res.Header,
156030			HTTPStatusCode: res.StatusCode,
156031		},
156032	}
156033	target := &ret
156034	if err := gensupport.DecodeResponse(target, res); err != nil {
156035		return nil, err
156036	}
156037	return ret, nil
156038	// {
156039	//   "description": "Returns permissions that a caller has on the specified resource.",
156040	//   "httpMethod": "POST",
156041	//   "id": "compute.serviceAttachments.testIamPermissions",
156042	//   "parameterOrder": [
156043	//     "project",
156044	//     "region",
156045	//     "resource"
156046	//   ],
156047	//   "parameters": {
156048	//     "project": {
156049	//       "description": "Project ID for this request.",
156050	//       "location": "path",
156051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156052	//       "required": true,
156053	//       "type": "string"
156054	//     },
156055	//     "region": {
156056	//       "description": "The name of the region for this request.",
156057	//       "location": "path",
156058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156059	//       "required": true,
156060	//       "type": "string"
156061	//     },
156062	//     "resource": {
156063	//       "description": "Name or id of the resource for this request.",
156064	//       "location": "path",
156065	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156066	//       "required": true,
156067	//       "type": "string"
156068	//     }
156069	//   },
156070	//   "path": "{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
156071	//   "request": {
156072	//     "$ref": "TestPermissionsRequest"
156073	//   },
156074	//   "response": {
156075	//     "$ref": "TestPermissionsResponse"
156076	//   },
156077	//   "scopes": [
156078	//     "https://www.googleapis.com/auth/cloud-platform",
156079	//     "https://www.googleapis.com/auth/compute",
156080	//     "https://www.googleapis.com/auth/compute.readonly"
156081	//   ]
156082	// }
156083
156084}
156085
156086// method id "compute.snapshots.delete":
156087
156088type SnapshotsDeleteCall struct {
156089	s          *Service
156090	project    string
156091	snapshot   string
156092	urlParams_ gensupport.URLParams
156093	ctx_       context.Context
156094	header_    http.Header
156095}
156096
156097// Delete: Deletes the specified Snapshot resource. Keep in mind that
156098// deleting a single snapshot might not necessarily delete all the data
156099// on that snapshot. If any data on the snapshot that is marked for
156100// deletion is needed for subsequent snapshots, the data will be moved
156101// to the next corresponding snapshot.
156102//
156103// For more information, see Deleting snapshots.
156104// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
156105func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
156106	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156107	c.project = project
156108	c.snapshot = snapshot
156109	return c
156110}
156111
156112// RequestId sets the optional parameter "requestId": An optional
156113// request ID to identify requests. Specify a unique request ID so that
156114// if you must retry your request, the server will know to ignore the
156115// request if it has already been completed.
156116//
156117// For example, consider a situation where you make an initial request
156118// and the request times out. If you make the request again with the
156119// same request ID, the server can check if original operation with the
156120// same request ID was received, and if so, will ignore the second
156121// request. This prevents clients from accidentally creating duplicate
156122// commitments.
156123//
156124// The request ID must be a valid UUID with the exception that zero UUID
156125// is not supported (00000000-0000-0000-0000-000000000000).
156126func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
156127	c.urlParams_.Set("requestId", requestId)
156128	return c
156129}
156130
156131// Fields allows partial responses to be retrieved. See
156132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156133// for more information.
156134func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
156135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156136	return c
156137}
156138
156139// Context sets the context to be used in this call's Do method. Any
156140// pending HTTP request will be aborted if the provided context is
156141// canceled.
156142func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
156143	c.ctx_ = ctx
156144	return c
156145}
156146
156147// Header returns an http.Header that can be modified by the caller to
156148// add HTTP headers to the request.
156149func (c *SnapshotsDeleteCall) Header() http.Header {
156150	if c.header_ == nil {
156151		c.header_ = make(http.Header)
156152	}
156153	return c.header_
156154}
156155
156156func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
156157	reqHeaders := make(http.Header)
156158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
156159	for k, v := range c.header_ {
156160		reqHeaders[k] = v
156161	}
156162	reqHeaders.Set("User-Agent", c.s.userAgent())
156163	var body io.Reader = nil
156164	c.urlParams_.Set("alt", alt)
156165	c.urlParams_.Set("prettyPrint", "false")
156166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
156167	urls += "?" + c.urlParams_.Encode()
156168	req, err := http.NewRequest("DELETE", urls, body)
156169	if err != nil {
156170		return nil, err
156171	}
156172	req.Header = reqHeaders
156173	googleapi.Expand(req.URL, map[string]string{
156174		"project":  c.project,
156175		"snapshot": c.snapshot,
156176	})
156177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156178}
156179
156180// Do executes the "compute.snapshots.delete" call.
156181// Exactly one of *Operation or error will be non-nil. Any non-2xx
156182// status code is an error. Response headers are in either
156183// *Operation.ServerResponse.Header or (if a response was returned at
156184// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156185// to check whether the returned error was because
156186// http.StatusNotModified was returned.
156187func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156188	gensupport.SetOptions(c.urlParams_, opts...)
156189	res, err := c.doRequest("json")
156190	if res != nil && res.StatusCode == http.StatusNotModified {
156191		if res.Body != nil {
156192			res.Body.Close()
156193		}
156194		return nil, &googleapi.Error{
156195			Code:   res.StatusCode,
156196			Header: res.Header,
156197		}
156198	}
156199	if err != nil {
156200		return nil, err
156201	}
156202	defer googleapi.CloseBody(res)
156203	if err := googleapi.CheckResponse(res); err != nil {
156204		return nil, err
156205	}
156206	ret := &Operation{
156207		ServerResponse: googleapi.ServerResponse{
156208			Header:         res.Header,
156209			HTTPStatusCode: res.StatusCode,
156210		},
156211	}
156212	target := &ret
156213	if err := gensupport.DecodeResponse(target, res); err != nil {
156214		return nil, err
156215	}
156216	return ret, nil
156217	// {
156218	//   "description": "Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot.\n\nFor more information, see Deleting snapshots.",
156219	//   "httpMethod": "DELETE",
156220	//   "id": "compute.snapshots.delete",
156221	//   "parameterOrder": [
156222	//     "project",
156223	//     "snapshot"
156224	//   ],
156225	//   "parameters": {
156226	//     "project": {
156227	//       "description": "Project ID for this request.",
156228	//       "location": "path",
156229	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156230	//       "required": true,
156231	//       "type": "string"
156232	//     },
156233	//     "requestId": {
156234	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156235	//       "location": "query",
156236	//       "type": "string"
156237	//     },
156238	//     "snapshot": {
156239	//       "description": "Name of the Snapshot resource to delete.",
156240	//       "location": "path",
156241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156242	//       "required": true,
156243	//       "type": "string"
156244	//     }
156245	//   },
156246	//   "path": "{project}/global/snapshots/{snapshot}",
156247	//   "response": {
156248	//     "$ref": "Operation"
156249	//   },
156250	//   "scopes": [
156251	//     "https://www.googleapis.com/auth/cloud-platform",
156252	//     "https://www.googleapis.com/auth/compute"
156253	//   ]
156254	// }
156255
156256}
156257
156258// method id "compute.snapshots.get":
156259
156260type SnapshotsGetCall struct {
156261	s            *Service
156262	project      string
156263	snapshot     string
156264	urlParams_   gensupport.URLParams
156265	ifNoneMatch_ string
156266	ctx_         context.Context
156267	header_      http.Header
156268}
156269
156270// Get: Returns the specified Snapshot resource. Gets a list of
156271// available snapshots by making a list() request.
156272// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
156273func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
156274	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156275	c.project = project
156276	c.snapshot = snapshot
156277	return c
156278}
156279
156280// Fields allows partial responses to be retrieved. See
156281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156282// for more information.
156283func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
156284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156285	return c
156286}
156287
156288// IfNoneMatch sets the optional parameter which makes the operation
156289// fail if the object's ETag matches the given value. This is useful for
156290// getting updates only after the object has changed since the last
156291// request. Use googleapi.IsNotModified to check whether the response
156292// error from Do is the result of In-None-Match.
156293func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
156294	c.ifNoneMatch_ = entityTag
156295	return c
156296}
156297
156298// Context sets the context to be used in this call's Do method. Any
156299// pending HTTP request will be aborted if the provided context is
156300// canceled.
156301func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
156302	c.ctx_ = ctx
156303	return c
156304}
156305
156306// Header returns an http.Header that can be modified by the caller to
156307// add HTTP headers to the request.
156308func (c *SnapshotsGetCall) Header() http.Header {
156309	if c.header_ == nil {
156310		c.header_ = make(http.Header)
156311	}
156312	return c.header_
156313}
156314
156315func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
156316	reqHeaders := make(http.Header)
156317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
156318	for k, v := range c.header_ {
156319		reqHeaders[k] = v
156320	}
156321	reqHeaders.Set("User-Agent", c.s.userAgent())
156322	if c.ifNoneMatch_ != "" {
156323		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156324	}
156325	var body io.Reader = nil
156326	c.urlParams_.Set("alt", alt)
156327	c.urlParams_.Set("prettyPrint", "false")
156328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
156329	urls += "?" + c.urlParams_.Encode()
156330	req, err := http.NewRequest("GET", urls, body)
156331	if err != nil {
156332		return nil, err
156333	}
156334	req.Header = reqHeaders
156335	googleapi.Expand(req.URL, map[string]string{
156336		"project":  c.project,
156337		"snapshot": c.snapshot,
156338	})
156339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156340}
156341
156342// Do executes the "compute.snapshots.get" call.
156343// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
156344// code is an error. Response headers are in either
156345// *Snapshot.ServerResponse.Header or (if a response was returned at
156346// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156347// to check whether the returned error was because
156348// http.StatusNotModified was returned.
156349func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
156350	gensupport.SetOptions(c.urlParams_, opts...)
156351	res, err := c.doRequest("json")
156352	if res != nil && res.StatusCode == http.StatusNotModified {
156353		if res.Body != nil {
156354			res.Body.Close()
156355		}
156356		return nil, &googleapi.Error{
156357			Code:   res.StatusCode,
156358			Header: res.Header,
156359		}
156360	}
156361	if err != nil {
156362		return nil, err
156363	}
156364	defer googleapi.CloseBody(res)
156365	if err := googleapi.CheckResponse(res); err != nil {
156366		return nil, err
156367	}
156368	ret := &Snapshot{
156369		ServerResponse: googleapi.ServerResponse{
156370			Header:         res.Header,
156371			HTTPStatusCode: res.StatusCode,
156372		},
156373	}
156374	target := &ret
156375	if err := gensupport.DecodeResponse(target, res); err != nil {
156376		return nil, err
156377	}
156378	return ret, nil
156379	// {
156380	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
156381	//   "httpMethod": "GET",
156382	//   "id": "compute.snapshots.get",
156383	//   "parameterOrder": [
156384	//     "project",
156385	//     "snapshot"
156386	//   ],
156387	//   "parameters": {
156388	//     "project": {
156389	//       "description": "Project ID for this request.",
156390	//       "location": "path",
156391	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156392	//       "required": true,
156393	//       "type": "string"
156394	//     },
156395	//     "snapshot": {
156396	//       "description": "Name of the Snapshot resource to return.",
156397	//       "location": "path",
156398	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156399	//       "required": true,
156400	//       "type": "string"
156401	//     }
156402	//   },
156403	//   "path": "{project}/global/snapshots/{snapshot}",
156404	//   "response": {
156405	//     "$ref": "Snapshot"
156406	//   },
156407	//   "scopes": [
156408	//     "https://www.googleapis.com/auth/cloud-platform",
156409	//     "https://www.googleapis.com/auth/compute",
156410	//     "https://www.googleapis.com/auth/compute.readonly"
156411	//   ]
156412	// }
156413
156414}
156415
156416// method id "compute.snapshots.getIamPolicy":
156417
156418type SnapshotsGetIamPolicyCall struct {
156419	s            *Service
156420	project      string
156421	resource     string
156422	urlParams_   gensupport.URLParams
156423	ifNoneMatch_ string
156424	ctx_         context.Context
156425	header_      http.Header
156426}
156427
156428// GetIamPolicy: Gets the access control policy for a resource. May be
156429// empty if no such policy or resource exists.
156430func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
156431	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156432	c.project = project
156433	c.resource = resource
156434	return c
156435}
156436
156437// OptionsRequestedPolicyVersion sets the optional parameter
156438// "optionsRequestedPolicyVersion": Requested IAM Policy version.
156439func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
156440	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
156441	return c
156442}
156443
156444// Fields allows partial responses to be retrieved. See
156445// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156446// for more information.
156447func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
156448	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156449	return c
156450}
156451
156452// IfNoneMatch sets the optional parameter which makes the operation
156453// fail if the object's ETag matches the given value. This is useful for
156454// getting updates only after the object has changed since the last
156455// request. Use googleapi.IsNotModified to check whether the response
156456// error from Do is the result of In-None-Match.
156457func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
156458	c.ifNoneMatch_ = entityTag
156459	return c
156460}
156461
156462// Context sets the context to be used in this call's Do method. Any
156463// pending HTTP request will be aborted if the provided context is
156464// canceled.
156465func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
156466	c.ctx_ = ctx
156467	return c
156468}
156469
156470// Header returns an http.Header that can be modified by the caller to
156471// add HTTP headers to the request.
156472func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
156473	if c.header_ == nil {
156474		c.header_ = make(http.Header)
156475	}
156476	return c.header_
156477}
156478
156479func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
156480	reqHeaders := make(http.Header)
156481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
156482	for k, v := range c.header_ {
156483		reqHeaders[k] = v
156484	}
156485	reqHeaders.Set("User-Agent", c.s.userAgent())
156486	if c.ifNoneMatch_ != "" {
156487		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156488	}
156489	var body io.Reader = nil
156490	c.urlParams_.Set("alt", alt)
156491	c.urlParams_.Set("prettyPrint", "false")
156492	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/getIamPolicy")
156493	urls += "?" + c.urlParams_.Encode()
156494	req, err := http.NewRequest("GET", urls, body)
156495	if err != nil {
156496		return nil, err
156497	}
156498	req.Header = reqHeaders
156499	googleapi.Expand(req.URL, map[string]string{
156500		"project":  c.project,
156501		"resource": c.resource,
156502	})
156503	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156504}
156505
156506// Do executes the "compute.snapshots.getIamPolicy" call.
156507// Exactly one of *Policy or error will be non-nil. Any non-2xx status
156508// code is an error. Response headers are in either
156509// *Policy.ServerResponse.Header or (if a response was returned at all)
156510// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
156511// check whether the returned error was because http.StatusNotModified
156512// was returned.
156513func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
156514	gensupport.SetOptions(c.urlParams_, opts...)
156515	res, err := c.doRequest("json")
156516	if res != nil && res.StatusCode == http.StatusNotModified {
156517		if res.Body != nil {
156518			res.Body.Close()
156519		}
156520		return nil, &googleapi.Error{
156521			Code:   res.StatusCode,
156522			Header: res.Header,
156523		}
156524	}
156525	if err != nil {
156526		return nil, err
156527	}
156528	defer googleapi.CloseBody(res)
156529	if err := googleapi.CheckResponse(res); err != nil {
156530		return nil, err
156531	}
156532	ret := &Policy{
156533		ServerResponse: googleapi.ServerResponse{
156534			Header:         res.Header,
156535			HTTPStatusCode: res.StatusCode,
156536		},
156537	}
156538	target := &ret
156539	if err := gensupport.DecodeResponse(target, res); err != nil {
156540		return nil, err
156541	}
156542	return ret, nil
156543	// {
156544	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
156545	//   "httpMethod": "GET",
156546	//   "id": "compute.snapshots.getIamPolicy",
156547	//   "parameterOrder": [
156548	//     "project",
156549	//     "resource"
156550	//   ],
156551	//   "parameters": {
156552	//     "optionsRequestedPolicyVersion": {
156553	//       "description": "Requested IAM Policy version.",
156554	//       "format": "int32",
156555	//       "location": "query",
156556	//       "type": "integer"
156557	//     },
156558	//     "project": {
156559	//       "description": "Project ID for this request.",
156560	//       "location": "path",
156561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156562	//       "required": true,
156563	//       "type": "string"
156564	//     },
156565	//     "resource": {
156566	//       "description": "Name or id of the resource for this request.",
156567	//       "location": "path",
156568	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156569	//       "required": true,
156570	//       "type": "string"
156571	//     }
156572	//   },
156573	//   "path": "{project}/global/snapshots/{resource}/getIamPolicy",
156574	//   "response": {
156575	//     "$ref": "Policy"
156576	//   },
156577	//   "scopes": [
156578	//     "https://www.googleapis.com/auth/cloud-platform",
156579	//     "https://www.googleapis.com/auth/compute",
156580	//     "https://www.googleapis.com/auth/compute.readonly"
156581	//   ]
156582	// }
156583
156584}
156585
156586// method id "compute.snapshots.list":
156587
156588type SnapshotsListCall struct {
156589	s            *Service
156590	project      string
156591	urlParams_   gensupport.URLParams
156592	ifNoneMatch_ string
156593	ctx_         context.Context
156594	header_      http.Header
156595}
156596
156597// List: Retrieves the list of Snapshot resources contained within the
156598// specified project.
156599// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
156600func (r *SnapshotsService) List(project string) *SnapshotsListCall {
156601	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156602	c.project = project
156603	return c
156604}
156605
156606// Filter sets the optional parameter "filter": A filter expression that
156607// filters resources listed in the response. The expression must specify
156608// the field name, a comparison operator, and the value that you want to
156609// use for filtering. The value must be a string, a number, or a
156610// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156611// `<`.
156612//
156613// For example, if you are filtering Compute Engine instances, you can
156614// exclude instances named `example-instance` by specifying `name !=
156615// example-instance`.
156616//
156617// You can also filter nested fields. For example, you could specify
156618// `scheduling.automaticRestart = false` to include instances only if
156619// they are not scheduled for automatic restarts. You can use filtering
156620// on nested fields to filter based on resource labels.
156621//
156622// To filter on multiple expressions, provide each separate expression
156623// within parentheses. For example: ``` (scheduling.automaticRestart =
156624// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
156625// is an `AND` expression. However, you can include `AND` and `OR`
156626// expressions explicitly. For example: ``` (cpuPlatform = "Intel
156627// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
156628// (scheduling.automaticRestart = true) ```
156629func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
156630	c.urlParams_.Set("filter", filter)
156631	return c
156632}
156633
156634// MaxResults sets the optional parameter "maxResults": The maximum
156635// number of results per page that should be returned. If the number of
156636// available results is larger than `maxResults`, Compute Engine returns
156637// a `nextPageToken` that can be used to get the next page of results in
156638// subsequent list requests. Acceptable values are `0` to `500`,
156639// inclusive. (Default: `500`)
156640func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
156641	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156642	return c
156643}
156644
156645// OrderBy sets the optional parameter "orderBy": Sorts list results by
156646// a certain order. By default, results are returned in alphanumerical
156647// order based on the resource name.
156648//
156649// You can also sort results in descending order based on the creation
156650// timestamp using `orderBy="creationTimestamp desc". This sorts
156651// results based on the `creationTimestamp` field in reverse
156652// chronological order (newest result first). Use this to sort resources
156653// like operations so that the newest operation is returned
156654// first.
156655//
156656// Currently, only sorting by `name` or `creationTimestamp desc` is
156657// supported.
156658func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
156659	c.urlParams_.Set("orderBy", orderBy)
156660	return c
156661}
156662
156663// PageToken sets the optional parameter "pageToken": Specifies a page
156664// token to use. Set `pageToken` to the `nextPageToken` returned by a
156665// previous list request to get the next page of results.
156666func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
156667	c.urlParams_.Set("pageToken", pageToken)
156668	return c
156669}
156670
156671// ReturnPartialSuccess sets the optional parameter
156672// "returnPartialSuccess": Opt-in for partial success behavior which
156673// provides partial results in case of failure. The default value is
156674// false and the logic is the same as today.
156675func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall {
156676	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
156677	return c
156678}
156679
156680// Fields allows partial responses to be retrieved. See
156681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156682// for more information.
156683func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
156684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156685	return c
156686}
156687
156688// IfNoneMatch sets the optional parameter which makes the operation
156689// fail if the object's ETag matches the given value. This is useful for
156690// getting updates only after the object has changed since the last
156691// request. Use googleapi.IsNotModified to check whether the response
156692// error from Do is the result of In-None-Match.
156693func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
156694	c.ifNoneMatch_ = entityTag
156695	return c
156696}
156697
156698// Context sets the context to be used in this call's Do method. Any
156699// pending HTTP request will be aborted if the provided context is
156700// canceled.
156701func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
156702	c.ctx_ = ctx
156703	return c
156704}
156705
156706// Header returns an http.Header that can be modified by the caller to
156707// add HTTP headers to the request.
156708func (c *SnapshotsListCall) Header() http.Header {
156709	if c.header_ == nil {
156710		c.header_ = make(http.Header)
156711	}
156712	return c.header_
156713}
156714
156715func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
156716	reqHeaders := make(http.Header)
156717	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
156718	for k, v := range c.header_ {
156719		reqHeaders[k] = v
156720	}
156721	reqHeaders.Set("User-Agent", c.s.userAgent())
156722	if c.ifNoneMatch_ != "" {
156723		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156724	}
156725	var body io.Reader = nil
156726	c.urlParams_.Set("alt", alt)
156727	c.urlParams_.Set("prettyPrint", "false")
156728	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
156729	urls += "?" + c.urlParams_.Encode()
156730	req, err := http.NewRequest("GET", urls, body)
156731	if err != nil {
156732		return nil, err
156733	}
156734	req.Header = reqHeaders
156735	googleapi.Expand(req.URL, map[string]string{
156736		"project": c.project,
156737	})
156738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156739}
156740
156741// Do executes the "compute.snapshots.list" call.
156742// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
156743// status code is an error. Response headers are in either
156744// *SnapshotList.ServerResponse.Header or (if a response was returned at
156745// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156746// to check whether the returned error was because
156747// http.StatusNotModified was returned.
156748func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
156749	gensupport.SetOptions(c.urlParams_, opts...)
156750	res, err := c.doRequest("json")
156751	if res != nil && res.StatusCode == http.StatusNotModified {
156752		if res.Body != nil {
156753			res.Body.Close()
156754		}
156755		return nil, &googleapi.Error{
156756			Code:   res.StatusCode,
156757			Header: res.Header,
156758		}
156759	}
156760	if err != nil {
156761		return nil, err
156762	}
156763	defer googleapi.CloseBody(res)
156764	if err := googleapi.CheckResponse(res); err != nil {
156765		return nil, err
156766	}
156767	ret := &SnapshotList{
156768		ServerResponse: googleapi.ServerResponse{
156769			Header:         res.Header,
156770			HTTPStatusCode: res.StatusCode,
156771		},
156772	}
156773	target := &ret
156774	if err := gensupport.DecodeResponse(target, res); err != nil {
156775		return nil, err
156776	}
156777	return ret, nil
156778	// {
156779	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
156780	//   "httpMethod": "GET",
156781	//   "id": "compute.snapshots.list",
156782	//   "parameterOrder": [
156783	//     "project"
156784	//   ],
156785	//   "parameters": {
156786	//     "filter": {
156787	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
156788	//       "location": "query",
156789	//       "type": "string"
156790	//     },
156791	//     "maxResults": {
156792	//       "default": "500",
156793	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
156794	//       "format": "uint32",
156795	//       "location": "query",
156796	//       "minimum": "0",
156797	//       "type": "integer"
156798	//     },
156799	//     "orderBy": {
156800	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
156801	//       "location": "query",
156802	//       "type": "string"
156803	//     },
156804	//     "pageToken": {
156805	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
156806	//       "location": "query",
156807	//       "type": "string"
156808	//     },
156809	//     "project": {
156810	//       "description": "Project ID for this request.",
156811	//       "location": "path",
156812	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156813	//       "required": true,
156814	//       "type": "string"
156815	//     },
156816	//     "returnPartialSuccess": {
156817	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
156818	//       "location": "query",
156819	//       "type": "boolean"
156820	//     }
156821	//   },
156822	//   "path": "{project}/global/snapshots",
156823	//   "response": {
156824	//     "$ref": "SnapshotList"
156825	//   },
156826	//   "scopes": [
156827	//     "https://www.googleapis.com/auth/cloud-platform",
156828	//     "https://www.googleapis.com/auth/compute",
156829	//     "https://www.googleapis.com/auth/compute.readonly"
156830	//   ]
156831	// }
156832
156833}
156834
156835// Pages invokes f for each page of results.
156836// A non-nil error returned from f will halt the iteration.
156837// The provided context supersedes any context provided to the Context method.
156838func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
156839	c.ctx_ = ctx
156840	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156841	for {
156842		x, err := c.Do()
156843		if err != nil {
156844			return err
156845		}
156846		if err := f(x); err != nil {
156847			return err
156848		}
156849		if x.NextPageToken == "" {
156850			return nil
156851		}
156852		c.PageToken(x.NextPageToken)
156853	}
156854}
156855
156856// method id "compute.snapshots.setIamPolicy":
156857
156858type SnapshotsSetIamPolicyCall struct {
156859	s                      *Service
156860	project                string
156861	resource               string
156862	globalsetpolicyrequest *GlobalSetPolicyRequest
156863	urlParams_             gensupport.URLParams
156864	ctx_                   context.Context
156865	header_                http.Header
156866}
156867
156868// SetIamPolicy: Sets the access control policy on the specified
156869// resource. Replaces any existing policy.
156870func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
156871	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156872	c.project = project
156873	c.resource = resource
156874	c.globalsetpolicyrequest = globalsetpolicyrequest
156875	return c
156876}
156877
156878// Fields allows partial responses to be retrieved. See
156879// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156880// for more information.
156881func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
156882	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156883	return c
156884}
156885
156886// Context sets the context to be used in this call's Do method. Any
156887// pending HTTP request will be aborted if the provided context is
156888// canceled.
156889func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
156890	c.ctx_ = ctx
156891	return c
156892}
156893
156894// Header returns an http.Header that can be modified by the caller to
156895// add HTTP headers to the request.
156896func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
156897	if c.header_ == nil {
156898		c.header_ = make(http.Header)
156899	}
156900	return c.header_
156901}
156902
156903func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
156904	reqHeaders := make(http.Header)
156905	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
156906	for k, v := range c.header_ {
156907		reqHeaders[k] = v
156908	}
156909	reqHeaders.Set("User-Agent", c.s.userAgent())
156910	var body io.Reader = nil
156911	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
156912	if err != nil {
156913		return nil, err
156914	}
156915	reqHeaders.Set("Content-Type", "application/json")
156916	c.urlParams_.Set("alt", alt)
156917	c.urlParams_.Set("prettyPrint", "false")
156918	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setIamPolicy")
156919	urls += "?" + c.urlParams_.Encode()
156920	req, err := http.NewRequest("POST", urls, body)
156921	if err != nil {
156922		return nil, err
156923	}
156924	req.Header = reqHeaders
156925	googleapi.Expand(req.URL, map[string]string{
156926		"project":  c.project,
156927		"resource": c.resource,
156928	})
156929	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156930}
156931
156932// Do executes the "compute.snapshots.setIamPolicy" call.
156933// Exactly one of *Policy or error will be non-nil. Any non-2xx status
156934// code is an error. Response headers are in either
156935// *Policy.ServerResponse.Header or (if a response was returned at all)
156936// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
156937// check whether the returned error was because http.StatusNotModified
156938// was returned.
156939func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
156940	gensupport.SetOptions(c.urlParams_, opts...)
156941	res, err := c.doRequest("json")
156942	if res != nil && res.StatusCode == http.StatusNotModified {
156943		if res.Body != nil {
156944			res.Body.Close()
156945		}
156946		return nil, &googleapi.Error{
156947			Code:   res.StatusCode,
156948			Header: res.Header,
156949		}
156950	}
156951	if err != nil {
156952		return nil, err
156953	}
156954	defer googleapi.CloseBody(res)
156955	if err := googleapi.CheckResponse(res); err != nil {
156956		return nil, err
156957	}
156958	ret := &Policy{
156959		ServerResponse: googleapi.ServerResponse{
156960			Header:         res.Header,
156961			HTTPStatusCode: res.StatusCode,
156962		},
156963	}
156964	target := &ret
156965	if err := gensupport.DecodeResponse(target, res); err != nil {
156966		return nil, err
156967	}
156968	return ret, nil
156969	// {
156970	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
156971	//   "httpMethod": "POST",
156972	//   "id": "compute.snapshots.setIamPolicy",
156973	//   "parameterOrder": [
156974	//     "project",
156975	//     "resource"
156976	//   ],
156977	//   "parameters": {
156978	//     "project": {
156979	//       "description": "Project ID for this request.",
156980	//       "location": "path",
156981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156982	//       "required": true,
156983	//       "type": "string"
156984	//     },
156985	//     "resource": {
156986	//       "description": "Name or id of the resource for this request.",
156987	//       "location": "path",
156988	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156989	//       "required": true,
156990	//       "type": "string"
156991	//     }
156992	//   },
156993	//   "path": "{project}/global/snapshots/{resource}/setIamPolicy",
156994	//   "request": {
156995	//     "$ref": "GlobalSetPolicyRequest"
156996	//   },
156997	//   "response": {
156998	//     "$ref": "Policy"
156999	//   },
157000	//   "scopes": [
157001	//     "https://www.googleapis.com/auth/cloud-platform",
157002	//     "https://www.googleapis.com/auth/compute"
157003	//   ]
157004	// }
157005
157006}
157007
157008// method id "compute.snapshots.setLabels":
157009
157010type SnapshotsSetLabelsCall struct {
157011	s                      *Service
157012	project                string
157013	resource               string
157014	globalsetlabelsrequest *GlobalSetLabelsRequest
157015	urlParams_             gensupport.URLParams
157016	ctx_                   context.Context
157017	header_                http.Header
157018}
157019
157020// SetLabels: Sets the labels on a snapshot. To learn more about labels,
157021// read the Labeling Resources documentation.
157022func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
157023	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157024	c.project = project
157025	c.resource = resource
157026	c.globalsetlabelsrequest = globalsetlabelsrequest
157027	return c
157028}
157029
157030// Fields allows partial responses to be retrieved. See
157031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157032// for more information.
157033func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
157034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157035	return c
157036}
157037
157038// Context sets the context to be used in this call's Do method. Any
157039// pending HTTP request will be aborted if the provided context is
157040// canceled.
157041func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
157042	c.ctx_ = ctx
157043	return c
157044}
157045
157046// Header returns an http.Header that can be modified by the caller to
157047// add HTTP headers to the request.
157048func (c *SnapshotsSetLabelsCall) Header() http.Header {
157049	if c.header_ == nil {
157050		c.header_ = make(http.Header)
157051	}
157052	return c.header_
157053}
157054
157055func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
157056	reqHeaders := make(http.Header)
157057	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
157058	for k, v := range c.header_ {
157059		reqHeaders[k] = v
157060	}
157061	reqHeaders.Set("User-Agent", c.s.userAgent())
157062	var body io.Reader = nil
157063	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
157064	if err != nil {
157065		return nil, err
157066	}
157067	reqHeaders.Set("Content-Type", "application/json")
157068	c.urlParams_.Set("alt", alt)
157069	c.urlParams_.Set("prettyPrint", "false")
157070	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
157071	urls += "?" + c.urlParams_.Encode()
157072	req, err := http.NewRequest("POST", urls, body)
157073	if err != nil {
157074		return nil, err
157075	}
157076	req.Header = reqHeaders
157077	googleapi.Expand(req.URL, map[string]string{
157078		"project":  c.project,
157079		"resource": c.resource,
157080	})
157081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157082}
157083
157084// Do executes the "compute.snapshots.setLabels" call.
157085// Exactly one of *Operation or error will be non-nil. Any non-2xx
157086// status code is an error. Response headers are in either
157087// *Operation.ServerResponse.Header or (if a response was returned at
157088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157089// to check whether the returned error was because
157090// http.StatusNotModified was returned.
157091func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157092	gensupport.SetOptions(c.urlParams_, opts...)
157093	res, err := c.doRequest("json")
157094	if res != nil && res.StatusCode == http.StatusNotModified {
157095		if res.Body != nil {
157096			res.Body.Close()
157097		}
157098		return nil, &googleapi.Error{
157099			Code:   res.StatusCode,
157100			Header: res.Header,
157101		}
157102	}
157103	if err != nil {
157104		return nil, err
157105	}
157106	defer googleapi.CloseBody(res)
157107	if err := googleapi.CheckResponse(res); err != nil {
157108		return nil, err
157109	}
157110	ret := &Operation{
157111		ServerResponse: googleapi.ServerResponse{
157112			Header:         res.Header,
157113			HTTPStatusCode: res.StatusCode,
157114		},
157115	}
157116	target := &ret
157117	if err := gensupport.DecodeResponse(target, res); err != nil {
157118		return nil, err
157119	}
157120	return ret, nil
157121	// {
157122	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
157123	//   "httpMethod": "POST",
157124	//   "id": "compute.snapshots.setLabels",
157125	//   "parameterOrder": [
157126	//     "project",
157127	//     "resource"
157128	//   ],
157129	//   "parameters": {
157130	//     "project": {
157131	//       "description": "Project ID for this request.",
157132	//       "location": "path",
157133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157134	//       "required": true,
157135	//       "type": "string"
157136	//     },
157137	//     "resource": {
157138	//       "description": "Name or id of the resource for this request.",
157139	//       "location": "path",
157140	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157141	//       "required": true,
157142	//       "type": "string"
157143	//     }
157144	//   },
157145	//   "path": "{project}/global/snapshots/{resource}/setLabels",
157146	//   "request": {
157147	//     "$ref": "GlobalSetLabelsRequest"
157148	//   },
157149	//   "response": {
157150	//     "$ref": "Operation"
157151	//   },
157152	//   "scopes": [
157153	//     "https://www.googleapis.com/auth/cloud-platform",
157154	//     "https://www.googleapis.com/auth/compute"
157155	//   ]
157156	// }
157157
157158}
157159
157160// method id "compute.snapshots.testIamPermissions":
157161
157162type SnapshotsTestIamPermissionsCall struct {
157163	s                      *Service
157164	project                string
157165	resource               string
157166	testpermissionsrequest *TestPermissionsRequest
157167	urlParams_             gensupport.URLParams
157168	ctx_                   context.Context
157169	header_                http.Header
157170}
157171
157172// TestIamPermissions: Returns permissions that a caller has on the
157173// specified resource.
157174func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
157175	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157176	c.project = project
157177	c.resource = resource
157178	c.testpermissionsrequest = testpermissionsrequest
157179	return c
157180}
157181
157182// Fields allows partial responses to be retrieved. See
157183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157184// for more information.
157185func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
157186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157187	return c
157188}
157189
157190// Context sets the context to be used in this call's Do method. Any
157191// pending HTTP request will be aborted if the provided context is
157192// canceled.
157193func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
157194	c.ctx_ = ctx
157195	return c
157196}
157197
157198// Header returns an http.Header that can be modified by the caller to
157199// add HTTP headers to the request.
157200func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
157201	if c.header_ == nil {
157202		c.header_ = make(http.Header)
157203	}
157204	return c.header_
157205}
157206
157207func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
157208	reqHeaders := make(http.Header)
157209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
157210	for k, v := range c.header_ {
157211		reqHeaders[k] = v
157212	}
157213	reqHeaders.Set("User-Agent", c.s.userAgent())
157214	var body io.Reader = nil
157215	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
157216	if err != nil {
157217		return nil, err
157218	}
157219	reqHeaders.Set("Content-Type", "application/json")
157220	c.urlParams_.Set("alt", alt)
157221	c.urlParams_.Set("prettyPrint", "false")
157222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/testIamPermissions")
157223	urls += "?" + c.urlParams_.Encode()
157224	req, err := http.NewRequest("POST", urls, body)
157225	if err != nil {
157226		return nil, err
157227	}
157228	req.Header = reqHeaders
157229	googleapi.Expand(req.URL, map[string]string{
157230		"project":  c.project,
157231		"resource": c.resource,
157232	})
157233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157234}
157235
157236// Do executes the "compute.snapshots.testIamPermissions" call.
157237// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
157238// non-2xx status code is an error. Response headers are in either
157239// *TestPermissionsResponse.ServerResponse.Header or (if a response was
157240// returned at all) in error.(*googleapi.Error).Header. Use
157241// googleapi.IsNotModified to check whether the returned error was
157242// because http.StatusNotModified was returned.
157243func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
157244	gensupport.SetOptions(c.urlParams_, opts...)
157245	res, err := c.doRequest("json")
157246	if res != nil && res.StatusCode == http.StatusNotModified {
157247		if res.Body != nil {
157248			res.Body.Close()
157249		}
157250		return nil, &googleapi.Error{
157251			Code:   res.StatusCode,
157252			Header: res.Header,
157253		}
157254	}
157255	if err != nil {
157256		return nil, err
157257	}
157258	defer googleapi.CloseBody(res)
157259	if err := googleapi.CheckResponse(res); err != nil {
157260		return nil, err
157261	}
157262	ret := &TestPermissionsResponse{
157263		ServerResponse: googleapi.ServerResponse{
157264			Header:         res.Header,
157265			HTTPStatusCode: res.StatusCode,
157266		},
157267	}
157268	target := &ret
157269	if err := gensupport.DecodeResponse(target, res); err != nil {
157270		return nil, err
157271	}
157272	return ret, nil
157273	// {
157274	//   "description": "Returns permissions that a caller has on the specified resource.",
157275	//   "httpMethod": "POST",
157276	//   "id": "compute.snapshots.testIamPermissions",
157277	//   "parameterOrder": [
157278	//     "project",
157279	//     "resource"
157280	//   ],
157281	//   "parameters": {
157282	//     "project": {
157283	//       "description": "Project ID for this request.",
157284	//       "location": "path",
157285	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157286	//       "required": true,
157287	//       "type": "string"
157288	//     },
157289	//     "resource": {
157290	//       "description": "Name or id of the resource for this request.",
157291	//       "location": "path",
157292	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157293	//       "required": true,
157294	//       "type": "string"
157295	//     }
157296	//   },
157297	//   "path": "{project}/global/snapshots/{resource}/testIamPermissions",
157298	//   "request": {
157299	//     "$ref": "TestPermissionsRequest"
157300	//   },
157301	//   "response": {
157302	//     "$ref": "TestPermissionsResponse"
157303	//   },
157304	//   "scopes": [
157305	//     "https://www.googleapis.com/auth/cloud-platform",
157306	//     "https://www.googleapis.com/auth/compute",
157307	//     "https://www.googleapis.com/auth/compute.readonly"
157308	//   ]
157309	// }
157310
157311}
157312
157313// method id "compute.sslCertificates.aggregatedList":
157314
157315type SslCertificatesAggregatedListCall struct {
157316	s            *Service
157317	project      string
157318	urlParams_   gensupport.URLParams
157319	ifNoneMatch_ string
157320	ctx_         context.Context
157321	header_      http.Header
157322}
157323
157324// AggregatedList: Retrieves the list of all SslCertificate resources,
157325// regional and global, available to the specified project.
157326func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
157327	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157328	c.project = project
157329	return c
157330}
157331
157332// Filter sets the optional parameter "filter": A filter expression that
157333// filters resources listed in the response. The expression must specify
157334// the field name, a comparison operator, and the value that you want to
157335// use for filtering. The value must be a string, a number, or a
157336// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157337// `<`.
157338//
157339// For example, if you are filtering Compute Engine instances, you can
157340// exclude instances named `example-instance` by specifying `name !=
157341// example-instance`.
157342//
157343// You can also filter nested fields. For example, you could specify
157344// `scheduling.automaticRestart = false` to include instances only if
157345// they are not scheduled for automatic restarts. You can use filtering
157346// on nested fields to filter based on resource labels.
157347//
157348// To filter on multiple expressions, provide each separate expression
157349// within parentheses. For example: ``` (scheduling.automaticRestart =
157350// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
157351// is an `AND` expression. However, you can include `AND` and `OR`
157352// expressions explicitly. For example: ``` (cpuPlatform = "Intel
157353// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
157354// (scheduling.automaticRestart = true) ```
157355func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
157356	c.urlParams_.Set("filter", filter)
157357	return c
157358}
157359
157360// IncludeAllScopes sets the optional parameter "includeAllScopes":
157361// Indicates whether every visible scope for each scope type (zone,
157362// region, global) should be included in the response. For new resource
157363// types added after this field, the flag has no effect as new resource
157364// types will always include every visible scope for each scope type in
157365// response. For resource types which predate this field, if this flag
157366// is omitted or false, only scopes of the scope types where the
157367// resource type is expected to be found will be included.
157368func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
157369	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
157370	return c
157371}
157372
157373// MaxResults sets the optional parameter "maxResults": The maximum
157374// number of results per page that should be returned. If the number of
157375// available results is larger than `maxResults`, Compute Engine returns
157376// a `nextPageToken` that can be used to get the next page of results in
157377// subsequent list requests. Acceptable values are `0` to `500`,
157378// inclusive. (Default: `500`)
157379func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
157380	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157381	return c
157382}
157383
157384// OrderBy sets the optional parameter "orderBy": Sorts list results by
157385// a certain order. By default, results are returned in alphanumerical
157386// order based on the resource name.
157387//
157388// You can also sort results in descending order based on the creation
157389// timestamp using `orderBy="creationTimestamp desc". This sorts
157390// results based on the `creationTimestamp` field in reverse
157391// chronological order (newest result first). Use this to sort resources
157392// like operations so that the newest operation is returned
157393// first.
157394//
157395// Currently, only sorting by `name` or `creationTimestamp desc` is
157396// supported.
157397func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
157398	c.urlParams_.Set("orderBy", orderBy)
157399	return c
157400}
157401
157402// PageToken sets the optional parameter "pageToken": Specifies a page
157403// token to use. Set `pageToken` to the `nextPageToken` returned by a
157404// previous list request to get the next page of results.
157405func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
157406	c.urlParams_.Set("pageToken", pageToken)
157407	return c
157408}
157409
157410// ReturnPartialSuccess sets the optional parameter
157411// "returnPartialSuccess": Opt-in for partial success behavior which
157412// provides partial results in case of failure. The default value is
157413// false and the logic is the same as today.
157414func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall {
157415	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
157416	return c
157417}
157418
157419// Fields allows partial responses to be retrieved. See
157420// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157421// for more information.
157422func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
157423	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157424	return c
157425}
157426
157427// IfNoneMatch sets the optional parameter which makes the operation
157428// fail if the object's ETag matches the given value. This is useful for
157429// getting updates only after the object has changed since the last
157430// request. Use googleapi.IsNotModified to check whether the response
157431// error from Do is the result of In-None-Match.
157432func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
157433	c.ifNoneMatch_ = entityTag
157434	return c
157435}
157436
157437// Context sets the context to be used in this call's Do method. Any
157438// pending HTTP request will be aborted if the provided context is
157439// canceled.
157440func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
157441	c.ctx_ = ctx
157442	return c
157443}
157444
157445// Header returns an http.Header that can be modified by the caller to
157446// add HTTP headers to the request.
157447func (c *SslCertificatesAggregatedListCall) Header() http.Header {
157448	if c.header_ == nil {
157449		c.header_ = make(http.Header)
157450	}
157451	return c.header_
157452}
157453
157454func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
157455	reqHeaders := make(http.Header)
157456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
157457	for k, v := range c.header_ {
157458		reqHeaders[k] = v
157459	}
157460	reqHeaders.Set("User-Agent", c.s.userAgent())
157461	if c.ifNoneMatch_ != "" {
157462		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157463	}
157464	var body io.Reader = nil
157465	c.urlParams_.Set("alt", alt)
157466	c.urlParams_.Set("prettyPrint", "false")
157467	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/sslCertificates")
157468	urls += "?" + c.urlParams_.Encode()
157469	req, err := http.NewRequest("GET", urls, body)
157470	if err != nil {
157471		return nil, err
157472	}
157473	req.Header = reqHeaders
157474	googleapi.Expand(req.URL, map[string]string{
157475		"project": c.project,
157476	})
157477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157478}
157479
157480// Do executes the "compute.sslCertificates.aggregatedList" call.
157481// Exactly one of *SslCertificateAggregatedList or error will be
157482// non-nil. Any non-2xx status code is an error. Response headers are in
157483// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
157484// response was returned at all) in error.(*googleapi.Error).Header. Use
157485// googleapi.IsNotModified to check whether the returned error was
157486// because http.StatusNotModified was returned.
157487func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
157488	gensupport.SetOptions(c.urlParams_, opts...)
157489	res, err := c.doRequest("json")
157490	if res != nil && res.StatusCode == http.StatusNotModified {
157491		if res.Body != nil {
157492			res.Body.Close()
157493		}
157494		return nil, &googleapi.Error{
157495			Code:   res.StatusCode,
157496			Header: res.Header,
157497		}
157498	}
157499	if err != nil {
157500		return nil, err
157501	}
157502	defer googleapi.CloseBody(res)
157503	if err := googleapi.CheckResponse(res); err != nil {
157504		return nil, err
157505	}
157506	ret := &SslCertificateAggregatedList{
157507		ServerResponse: googleapi.ServerResponse{
157508			Header:         res.Header,
157509			HTTPStatusCode: res.StatusCode,
157510		},
157511	}
157512	target := &ret
157513	if err := gensupport.DecodeResponse(target, res); err != nil {
157514		return nil, err
157515	}
157516	return ret, nil
157517	// {
157518	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
157519	//   "httpMethod": "GET",
157520	//   "id": "compute.sslCertificates.aggregatedList",
157521	//   "parameterOrder": [
157522	//     "project"
157523	//   ],
157524	//   "parameters": {
157525	//     "filter": {
157526	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
157527	//       "location": "query",
157528	//       "type": "string"
157529	//     },
157530	//     "includeAllScopes": {
157531	//       "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.",
157532	//       "location": "query",
157533	//       "type": "boolean"
157534	//     },
157535	//     "maxResults": {
157536	//       "default": "500",
157537	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
157538	//       "format": "uint32",
157539	//       "location": "query",
157540	//       "minimum": "0",
157541	//       "type": "integer"
157542	//     },
157543	//     "orderBy": {
157544	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
157545	//       "location": "query",
157546	//       "type": "string"
157547	//     },
157548	//     "pageToken": {
157549	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
157550	//       "location": "query",
157551	//       "type": "string"
157552	//     },
157553	//     "project": {
157554	//       "description": "Name of the project scoping this request.",
157555	//       "location": "path",
157556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157557	//       "required": true,
157558	//       "type": "string"
157559	//     },
157560	//     "returnPartialSuccess": {
157561	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
157562	//       "location": "query",
157563	//       "type": "boolean"
157564	//     }
157565	//   },
157566	//   "path": "{project}/aggregated/sslCertificates",
157567	//   "response": {
157568	//     "$ref": "SslCertificateAggregatedList"
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 *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) 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.sslCertificates.delete":
157601
157602type SslCertificatesDeleteCall struct {
157603	s              *Service
157604	project        string
157605	sslCertificate string
157606	urlParams_     gensupport.URLParams
157607	ctx_           context.Context
157608	header_        http.Header
157609}
157610
157611// Delete: Deletes the specified SslCertificate resource.
157612func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
157613	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157614	c.project = project
157615	c.sslCertificate = sslCertificate
157616	return c
157617}
157618
157619// RequestId sets the optional parameter "requestId": An optional
157620// request ID to identify requests. Specify a unique request ID so that
157621// if you must retry your request, the server will know to ignore the
157622// request if it has already been completed.
157623//
157624// For example, consider a situation where you make an initial request
157625// and the request times out. If you make the request again with the
157626// same request ID, the server can check if original operation with the
157627// same request ID was received, and if so, will ignore the second
157628// request. This prevents clients from accidentally creating duplicate
157629// commitments.
157630//
157631// The request ID must be a valid UUID with the exception that zero UUID
157632// is not supported (00000000-0000-0000-0000-000000000000).
157633func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
157634	c.urlParams_.Set("requestId", requestId)
157635	return c
157636}
157637
157638// Fields allows partial responses to be retrieved. See
157639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157640// for more information.
157641func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
157642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157643	return c
157644}
157645
157646// Context sets the context to be used in this call's Do method. Any
157647// pending HTTP request will be aborted if the provided context is
157648// canceled.
157649func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
157650	c.ctx_ = ctx
157651	return c
157652}
157653
157654// Header returns an http.Header that can be modified by the caller to
157655// add HTTP headers to the request.
157656func (c *SslCertificatesDeleteCall) Header() http.Header {
157657	if c.header_ == nil {
157658		c.header_ = make(http.Header)
157659	}
157660	return c.header_
157661}
157662
157663func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
157664	reqHeaders := make(http.Header)
157665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
157666	for k, v := range c.header_ {
157667		reqHeaders[k] = v
157668	}
157669	reqHeaders.Set("User-Agent", c.s.userAgent())
157670	var body io.Reader = nil
157671	c.urlParams_.Set("alt", alt)
157672	c.urlParams_.Set("prettyPrint", "false")
157673	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
157674	urls += "?" + c.urlParams_.Encode()
157675	req, err := http.NewRequest("DELETE", urls, body)
157676	if err != nil {
157677		return nil, err
157678	}
157679	req.Header = reqHeaders
157680	googleapi.Expand(req.URL, map[string]string{
157681		"project":        c.project,
157682		"sslCertificate": c.sslCertificate,
157683	})
157684	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157685}
157686
157687// Do executes the "compute.sslCertificates.delete" call.
157688// Exactly one of *Operation or error will be non-nil. Any non-2xx
157689// status code is an error. Response headers are in either
157690// *Operation.ServerResponse.Header or (if a response was returned at
157691// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157692// to check whether the returned error was because
157693// http.StatusNotModified was returned.
157694func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157695	gensupport.SetOptions(c.urlParams_, opts...)
157696	res, err := c.doRequest("json")
157697	if res != nil && res.StatusCode == http.StatusNotModified {
157698		if res.Body != nil {
157699			res.Body.Close()
157700		}
157701		return nil, &googleapi.Error{
157702			Code:   res.StatusCode,
157703			Header: res.Header,
157704		}
157705	}
157706	if err != nil {
157707		return nil, err
157708	}
157709	defer googleapi.CloseBody(res)
157710	if err := googleapi.CheckResponse(res); err != nil {
157711		return nil, err
157712	}
157713	ret := &Operation{
157714		ServerResponse: googleapi.ServerResponse{
157715			Header:         res.Header,
157716			HTTPStatusCode: res.StatusCode,
157717		},
157718	}
157719	target := &ret
157720	if err := gensupport.DecodeResponse(target, res); err != nil {
157721		return nil, err
157722	}
157723	return ret, nil
157724	// {
157725	//   "description": "Deletes the specified SslCertificate resource.",
157726	//   "httpMethod": "DELETE",
157727	//   "id": "compute.sslCertificates.delete",
157728	//   "parameterOrder": [
157729	//     "project",
157730	//     "sslCertificate"
157731	//   ],
157732	//   "parameters": {
157733	//     "project": {
157734	//       "description": "Project ID for this request.",
157735	//       "location": "path",
157736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157737	//       "required": true,
157738	//       "type": "string"
157739	//     },
157740	//     "requestId": {
157741	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157742	//       "location": "query",
157743	//       "type": "string"
157744	//     },
157745	//     "sslCertificate": {
157746	//       "description": "Name of the SslCertificate resource to delete.",
157747	//       "location": "path",
157748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157749	//       "required": true,
157750	//       "type": "string"
157751	//     }
157752	//   },
157753	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
157754	//   "response": {
157755	//     "$ref": "Operation"
157756	//   },
157757	//   "scopes": [
157758	//     "https://www.googleapis.com/auth/cloud-platform",
157759	//     "https://www.googleapis.com/auth/compute"
157760	//   ]
157761	// }
157762
157763}
157764
157765// method id "compute.sslCertificates.get":
157766
157767type SslCertificatesGetCall struct {
157768	s              *Service
157769	project        string
157770	sslCertificate string
157771	urlParams_     gensupport.URLParams
157772	ifNoneMatch_   string
157773	ctx_           context.Context
157774	header_        http.Header
157775}
157776
157777// Get: Returns the specified SslCertificate resource. Gets a list of
157778// available SSL certificates by making a list() request.
157779func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
157780	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157781	c.project = project
157782	c.sslCertificate = sslCertificate
157783	return c
157784}
157785
157786// Fields allows partial responses to be retrieved. See
157787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157788// for more information.
157789func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
157790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157791	return c
157792}
157793
157794// IfNoneMatch sets the optional parameter which makes the operation
157795// fail if the object's ETag matches the given value. This is useful for
157796// getting updates only after the object has changed since the last
157797// request. Use googleapi.IsNotModified to check whether the response
157798// error from Do is the result of In-None-Match.
157799func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
157800	c.ifNoneMatch_ = entityTag
157801	return c
157802}
157803
157804// Context sets the context to be used in this call's Do method. Any
157805// pending HTTP request will be aborted if the provided context is
157806// canceled.
157807func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
157808	c.ctx_ = ctx
157809	return c
157810}
157811
157812// Header returns an http.Header that can be modified by the caller to
157813// add HTTP headers to the request.
157814func (c *SslCertificatesGetCall) Header() http.Header {
157815	if c.header_ == nil {
157816		c.header_ = make(http.Header)
157817	}
157818	return c.header_
157819}
157820
157821func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
157822	reqHeaders := make(http.Header)
157823	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
157824	for k, v := range c.header_ {
157825		reqHeaders[k] = v
157826	}
157827	reqHeaders.Set("User-Agent", c.s.userAgent())
157828	if c.ifNoneMatch_ != "" {
157829		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157830	}
157831	var body io.Reader = nil
157832	c.urlParams_.Set("alt", alt)
157833	c.urlParams_.Set("prettyPrint", "false")
157834	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
157835	urls += "?" + c.urlParams_.Encode()
157836	req, err := http.NewRequest("GET", urls, body)
157837	if err != nil {
157838		return nil, err
157839	}
157840	req.Header = reqHeaders
157841	googleapi.Expand(req.URL, map[string]string{
157842		"project":        c.project,
157843		"sslCertificate": c.sslCertificate,
157844	})
157845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157846}
157847
157848// Do executes the "compute.sslCertificates.get" call.
157849// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
157850// status code is an error. Response headers are in either
157851// *SslCertificate.ServerResponse.Header or (if a response was returned
157852// at all) in error.(*googleapi.Error).Header. Use
157853// googleapi.IsNotModified to check whether the returned error was
157854// because http.StatusNotModified was returned.
157855func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
157856	gensupport.SetOptions(c.urlParams_, opts...)
157857	res, err := c.doRequest("json")
157858	if res != nil && res.StatusCode == http.StatusNotModified {
157859		if res.Body != nil {
157860			res.Body.Close()
157861		}
157862		return nil, &googleapi.Error{
157863			Code:   res.StatusCode,
157864			Header: res.Header,
157865		}
157866	}
157867	if err != nil {
157868		return nil, err
157869	}
157870	defer googleapi.CloseBody(res)
157871	if err := googleapi.CheckResponse(res); err != nil {
157872		return nil, err
157873	}
157874	ret := &SslCertificate{
157875		ServerResponse: googleapi.ServerResponse{
157876			Header:         res.Header,
157877			HTTPStatusCode: res.StatusCode,
157878		},
157879	}
157880	target := &ret
157881	if err := gensupport.DecodeResponse(target, res); err != nil {
157882		return nil, err
157883	}
157884	return ret, nil
157885	// {
157886	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
157887	//   "httpMethod": "GET",
157888	//   "id": "compute.sslCertificates.get",
157889	//   "parameterOrder": [
157890	//     "project",
157891	//     "sslCertificate"
157892	//   ],
157893	//   "parameters": {
157894	//     "project": {
157895	//       "description": "Project ID for this request.",
157896	//       "location": "path",
157897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157898	//       "required": true,
157899	//       "type": "string"
157900	//     },
157901	//     "sslCertificate": {
157902	//       "description": "Name of the SslCertificate resource to return.",
157903	//       "location": "path",
157904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157905	//       "required": true,
157906	//       "type": "string"
157907	//     }
157908	//   },
157909	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
157910	//   "response": {
157911	//     "$ref": "SslCertificate"
157912	//   },
157913	//   "scopes": [
157914	//     "https://www.googleapis.com/auth/cloud-platform",
157915	//     "https://www.googleapis.com/auth/compute",
157916	//     "https://www.googleapis.com/auth/compute.readonly"
157917	//   ]
157918	// }
157919
157920}
157921
157922// method id "compute.sslCertificates.insert":
157923
157924type SslCertificatesInsertCall struct {
157925	s              *Service
157926	project        string
157927	sslcertificate *SslCertificate
157928	urlParams_     gensupport.URLParams
157929	ctx_           context.Context
157930	header_        http.Header
157931}
157932
157933// Insert: Creates a SslCertificate resource in the specified project
157934// using the data included in the request.
157935func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
157936	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157937	c.project = project
157938	c.sslcertificate = sslcertificate
157939	return c
157940}
157941
157942// RequestId sets the optional parameter "requestId": An optional
157943// request ID to identify requests. Specify a unique request ID so that
157944// if you must retry your request, the server will know to ignore the
157945// request if it has already been completed.
157946//
157947// For example, consider a situation where you make an initial request
157948// and the request times out. If you make the request again with the
157949// same request ID, the server can check if original operation with the
157950// same request ID was received, and if so, will ignore the second
157951// request. This prevents clients from accidentally creating duplicate
157952// commitments.
157953//
157954// The request ID must be a valid UUID with the exception that zero UUID
157955// is not supported (00000000-0000-0000-0000-000000000000).
157956func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
157957	c.urlParams_.Set("requestId", requestId)
157958	return c
157959}
157960
157961// Fields allows partial responses to be retrieved. See
157962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157963// for more information.
157964func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
157965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157966	return c
157967}
157968
157969// Context sets the context to be used in this call's Do method. Any
157970// pending HTTP request will be aborted if the provided context is
157971// canceled.
157972func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
157973	c.ctx_ = ctx
157974	return c
157975}
157976
157977// Header returns an http.Header that can be modified by the caller to
157978// add HTTP headers to the request.
157979func (c *SslCertificatesInsertCall) Header() http.Header {
157980	if c.header_ == nil {
157981		c.header_ = make(http.Header)
157982	}
157983	return c.header_
157984}
157985
157986func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
157987	reqHeaders := make(http.Header)
157988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
157989	for k, v := range c.header_ {
157990		reqHeaders[k] = v
157991	}
157992	reqHeaders.Set("User-Agent", c.s.userAgent())
157993	var body io.Reader = nil
157994	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
157995	if err != nil {
157996		return nil, err
157997	}
157998	reqHeaders.Set("Content-Type", "application/json")
157999	c.urlParams_.Set("alt", alt)
158000	c.urlParams_.Set("prettyPrint", "false")
158001	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
158002	urls += "?" + c.urlParams_.Encode()
158003	req, err := http.NewRequest("POST", urls, body)
158004	if err != nil {
158005		return nil, err
158006	}
158007	req.Header = reqHeaders
158008	googleapi.Expand(req.URL, map[string]string{
158009		"project": c.project,
158010	})
158011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158012}
158013
158014// Do executes the "compute.sslCertificates.insert" call.
158015// Exactly one of *Operation or error will be non-nil. Any non-2xx
158016// status code is an error. Response headers are in either
158017// *Operation.ServerResponse.Header or (if a response was returned at
158018// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158019// to check whether the returned error was because
158020// http.StatusNotModified was returned.
158021func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158022	gensupport.SetOptions(c.urlParams_, opts...)
158023	res, err := c.doRequest("json")
158024	if res != nil && res.StatusCode == http.StatusNotModified {
158025		if res.Body != nil {
158026			res.Body.Close()
158027		}
158028		return nil, &googleapi.Error{
158029			Code:   res.StatusCode,
158030			Header: res.Header,
158031		}
158032	}
158033	if err != nil {
158034		return nil, err
158035	}
158036	defer googleapi.CloseBody(res)
158037	if err := googleapi.CheckResponse(res); err != nil {
158038		return nil, err
158039	}
158040	ret := &Operation{
158041		ServerResponse: googleapi.ServerResponse{
158042			Header:         res.Header,
158043			HTTPStatusCode: res.StatusCode,
158044		},
158045	}
158046	target := &ret
158047	if err := gensupport.DecodeResponse(target, res); err != nil {
158048		return nil, err
158049	}
158050	return ret, nil
158051	// {
158052	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
158053	//   "httpMethod": "POST",
158054	//   "id": "compute.sslCertificates.insert",
158055	//   "parameterOrder": [
158056	//     "project"
158057	//   ],
158058	//   "parameters": {
158059	//     "project": {
158060	//       "description": "Project ID for this request.",
158061	//       "location": "path",
158062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158063	//       "required": true,
158064	//       "type": "string"
158065	//     },
158066	//     "requestId": {
158067	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158068	//       "location": "query",
158069	//       "type": "string"
158070	//     }
158071	//   },
158072	//   "path": "{project}/global/sslCertificates",
158073	//   "request": {
158074	//     "$ref": "SslCertificate"
158075	//   },
158076	//   "response": {
158077	//     "$ref": "Operation"
158078	//   },
158079	//   "scopes": [
158080	//     "https://www.googleapis.com/auth/cloud-platform",
158081	//     "https://www.googleapis.com/auth/compute"
158082	//   ]
158083	// }
158084
158085}
158086
158087// method id "compute.sslCertificates.list":
158088
158089type SslCertificatesListCall struct {
158090	s            *Service
158091	project      string
158092	urlParams_   gensupport.URLParams
158093	ifNoneMatch_ string
158094	ctx_         context.Context
158095	header_      http.Header
158096}
158097
158098// List: Retrieves the list of SslCertificate resources available to the
158099// specified project.
158100func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
158101	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158102	c.project = project
158103	return c
158104}
158105
158106// Filter sets the optional parameter "filter": A filter expression that
158107// filters resources listed in the response. The expression must specify
158108// the field name, a comparison operator, and the value that you want to
158109// use for filtering. The value must be a string, a number, or a
158110// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158111// `<`.
158112//
158113// For example, if you are filtering Compute Engine instances, you can
158114// exclude instances named `example-instance` by specifying `name !=
158115// example-instance`.
158116//
158117// You can also filter nested fields. For example, you could specify
158118// `scheduling.automaticRestart = false` to include instances only if
158119// they are not scheduled for automatic restarts. You can use filtering
158120// on nested fields to filter based on resource labels.
158121//
158122// To filter on multiple expressions, provide each separate expression
158123// within parentheses. For example: ``` (scheduling.automaticRestart =
158124// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
158125// is an `AND` expression. However, you can include `AND` and `OR`
158126// expressions explicitly. For example: ``` (cpuPlatform = "Intel
158127// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
158128// (scheduling.automaticRestart = true) ```
158129func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
158130	c.urlParams_.Set("filter", filter)
158131	return c
158132}
158133
158134// MaxResults sets the optional parameter "maxResults": The maximum
158135// number of results per page that should be returned. If the number of
158136// available results is larger than `maxResults`, Compute Engine returns
158137// a `nextPageToken` that can be used to get the next page of results in
158138// subsequent list requests. Acceptable values are `0` to `500`,
158139// inclusive. (Default: `500`)
158140func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
158141	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158142	return c
158143}
158144
158145// OrderBy sets the optional parameter "orderBy": Sorts list results by
158146// a certain order. By default, results are returned in alphanumerical
158147// order based on the resource name.
158148//
158149// You can also sort results in descending order based on the creation
158150// timestamp using `orderBy="creationTimestamp desc". This sorts
158151// results based on the `creationTimestamp` field in reverse
158152// chronological order (newest result first). Use this to sort resources
158153// like operations so that the newest operation is returned
158154// first.
158155//
158156// Currently, only sorting by `name` or `creationTimestamp desc` is
158157// supported.
158158func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
158159	c.urlParams_.Set("orderBy", orderBy)
158160	return c
158161}
158162
158163// PageToken sets the optional parameter "pageToken": Specifies a page
158164// token to use. Set `pageToken` to the `nextPageToken` returned by a
158165// previous list request to get the next page of results.
158166func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
158167	c.urlParams_.Set("pageToken", pageToken)
158168	return c
158169}
158170
158171// ReturnPartialSuccess sets the optional parameter
158172// "returnPartialSuccess": Opt-in for partial success behavior which
158173// provides partial results in case of failure. The default value is
158174// false and the logic is the same as today.
158175func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall {
158176	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
158177	return c
158178}
158179
158180// Fields allows partial responses to be retrieved. See
158181// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158182// for more information.
158183func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
158184	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158185	return c
158186}
158187
158188// IfNoneMatch sets the optional parameter which makes the operation
158189// fail if the object's ETag matches the given value. This is useful for
158190// getting updates only after the object has changed since the last
158191// request. Use googleapi.IsNotModified to check whether the response
158192// error from Do is the result of In-None-Match.
158193func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
158194	c.ifNoneMatch_ = entityTag
158195	return c
158196}
158197
158198// Context sets the context to be used in this call's Do method. Any
158199// pending HTTP request will be aborted if the provided context is
158200// canceled.
158201func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
158202	c.ctx_ = ctx
158203	return c
158204}
158205
158206// Header returns an http.Header that can be modified by the caller to
158207// add HTTP headers to the request.
158208func (c *SslCertificatesListCall) Header() http.Header {
158209	if c.header_ == nil {
158210		c.header_ = make(http.Header)
158211	}
158212	return c.header_
158213}
158214
158215func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
158216	reqHeaders := make(http.Header)
158217	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
158218	for k, v := range c.header_ {
158219		reqHeaders[k] = v
158220	}
158221	reqHeaders.Set("User-Agent", c.s.userAgent())
158222	if c.ifNoneMatch_ != "" {
158223		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158224	}
158225	var body io.Reader = nil
158226	c.urlParams_.Set("alt", alt)
158227	c.urlParams_.Set("prettyPrint", "false")
158228	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
158229	urls += "?" + c.urlParams_.Encode()
158230	req, err := http.NewRequest("GET", urls, body)
158231	if err != nil {
158232		return nil, err
158233	}
158234	req.Header = reqHeaders
158235	googleapi.Expand(req.URL, map[string]string{
158236		"project": c.project,
158237	})
158238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158239}
158240
158241// Do executes the "compute.sslCertificates.list" call.
158242// Exactly one of *SslCertificateList or error will be non-nil. Any
158243// non-2xx status code is an error. Response headers are in either
158244// *SslCertificateList.ServerResponse.Header or (if a response was
158245// returned at all) in error.(*googleapi.Error).Header. Use
158246// googleapi.IsNotModified to check whether the returned error was
158247// because http.StatusNotModified was returned.
158248func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
158249	gensupport.SetOptions(c.urlParams_, opts...)
158250	res, err := c.doRequest("json")
158251	if res != nil && res.StatusCode == http.StatusNotModified {
158252		if res.Body != nil {
158253			res.Body.Close()
158254		}
158255		return nil, &googleapi.Error{
158256			Code:   res.StatusCode,
158257			Header: res.Header,
158258		}
158259	}
158260	if err != nil {
158261		return nil, err
158262	}
158263	defer googleapi.CloseBody(res)
158264	if err := googleapi.CheckResponse(res); err != nil {
158265		return nil, err
158266	}
158267	ret := &SslCertificateList{
158268		ServerResponse: googleapi.ServerResponse{
158269			Header:         res.Header,
158270			HTTPStatusCode: res.StatusCode,
158271		},
158272	}
158273	target := &ret
158274	if err := gensupport.DecodeResponse(target, res); err != nil {
158275		return nil, err
158276	}
158277	return ret, nil
158278	// {
158279	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
158280	//   "httpMethod": "GET",
158281	//   "id": "compute.sslCertificates.list",
158282	//   "parameterOrder": [
158283	//     "project"
158284	//   ],
158285	//   "parameters": {
158286	//     "filter": {
158287	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
158288	//       "location": "query",
158289	//       "type": "string"
158290	//     },
158291	//     "maxResults": {
158292	//       "default": "500",
158293	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
158294	//       "format": "uint32",
158295	//       "location": "query",
158296	//       "minimum": "0",
158297	//       "type": "integer"
158298	//     },
158299	//     "orderBy": {
158300	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
158301	//       "location": "query",
158302	//       "type": "string"
158303	//     },
158304	//     "pageToken": {
158305	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
158306	//       "location": "query",
158307	//       "type": "string"
158308	//     },
158309	//     "project": {
158310	//       "description": "Project ID for this request.",
158311	//       "location": "path",
158312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158313	//       "required": true,
158314	//       "type": "string"
158315	//     },
158316	//     "returnPartialSuccess": {
158317	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
158318	//       "location": "query",
158319	//       "type": "boolean"
158320	//     }
158321	//   },
158322	//   "path": "{project}/global/sslCertificates",
158323	//   "response": {
158324	//     "$ref": "SslCertificateList"
158325	//   },
158326	//   "scopes": [
158327	//     "https://www.googleapis.com/auth/cloud-platform",
158328	//     "https://www.googleapis.com/auth/compute",
158329	//     "https://www.googleapis.com/auth/compute.readonly"
158330	//   ]
158331	// }
158332
158333}
158334
158335// Pages invokes f for each page of results.
158336// A non-nil error returned from f will halt the iteration.
158337// The provided context supersedes any context provided to the Context method.
158338func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
158339	c.ctx_ = ctx
158340	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158341	for {
158342		x, err := c.Do()
158343		if err != nil {
158344			return err
158345		}
158346		if err := f(x); err != nil {
158347			return err
158348		}
158349		if x.NextPageToken == "" {
158350			return nil
158351		}
158352		c.PageToken(x.NextPageToken)
158353	}
158354}
158355
158356// method id "compute.sslCertificates.testIamPermissions":
158357
158358type SslCertificatesTestIamPermissionsCall struct {
158359	s                      *Service
158360	project                string
158361	resource               string
158362	testpermissionsrequest *TestPermissionsRequest
158363	urlParams_             gensupport.URLParams
158364	ctx_                   context.Context
158365	header_                http.Header
158366}
158367
158368// TestIamPermissions: Returns permissions that a caller has on the
158369// specified resource.
158370func (r *SslCertificatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslCertificatesTestIamPermissionsCall {
158371	c := &SslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158372	c.project = project
158373	c.resource = resource
158374	c.testpermissionsrequest = testpermissionsrequest
158375	return c
158376}
158377
158378// Fields allows partial responses to be retrieved. See
158379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158380// for more information.
158381func (c *SslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslCertificatesTestIamPermissionsCall {
158382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158383	return c
158384}
158385
158386// Context sets the context to be used in this call's Do method. Any
158387// pending HTTP request will be aborted if the provided context is
158388// canceled.
158389func (c *SslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *SslCertificatesTestIamPermissionsCall {
158390	c.ctx_ = ctx
158391	return c
158392}
158393
158394// Header returns an http.Header that can be modified by the caller to
158395// add HTTP headers to the request.
158396func (c *SslCertificatesTestIamPermissionsCall) Header() http.Header {
158397	if c.header_ == nil {
158398		c.header_ = make(http.Header)
158399	}
158400	return c.header_
158401}
158402
158403func (c *SslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
158404	reqHeaders := make(http.Header)
158405	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
158406	for k, v := range c.header_ {
158407		reqHeaders[k] = v
158408	}
158409	reqHeaders.Set("User-Agent", c.s.userAgent())
158410	var body io.Reader = nil
158411	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
158412	if err != nil {
158413		return nil, err
158414	}
158415	reqHeaders.Set("Content-Type", "application/json")
158416	c.urlParams_.Set("alt", alt)
158417	c.urlParams_.Set("prettyPrint", "false")
158418	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{resource}/testIamPermissions")
158419	urls += "?" + c.urlParams_.Encode()
158420	req, err := http.NewRequest("POST", urls, body)
158421	if err != nil {
158422		return nil, err
158423	}
158424	req.Header = reqHeaders
158425	googleapi.Expand(req.URL, map[string]string{
158426		"project":  c.project,
158427		"resource": c.resource,
158428	})
158429	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158430}
158431
158432// Do executes the "compute.sslCertificates.testIamPermissions" call.
158433// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
158434// non-2xx status code is an error. Response headers are in either
158435// *TestPermissionsResponse.ServerResponse.Header or (if a response was
158436// returned at all) in error.(*googleapi.Error).Header. Use
158437// googleapi.IsNotModified to check whether the returned error was
158438// because http.StatusNotModified was returned.
158439func (c *SslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
158440	gensupport.SetOptions(c.urlParams_, opts...)
158441	res, err := c.doRequest("json")
158442	if res != nil && res.StatusCode == http.StatusNotModified {
158443		if res.Body != nil {
158444			res.Body.Close()
158445		}
158446		return nil, &googleapi.Error{
158447			Code:   res.StatusCode,
158448			Header: res.Header,
158449		}
158450	}
158451	if err != nil {
158452		return nil, err
158453	}
158454	defer googleapi.CloseBody(res)
158455	if err := googleapi.CheckResponse(res); err != nil {
158456		return nil, err
158457	}
158458	ret := &TestPermissionsResponse{
158459		ServerResponse: googleapi.ServerResponse{
158460			Header:         res.Header,
158461			HTTPStatusCode: res.StatusCode,
158462		},
158463	}
158464	target := &ret
158465	if err := gensupport.DecodeResponse(target, res); err != nil {
158466		return nil, err
158467	}
158468	return ret, nil
158469	// {
158470	//   "description": "Returns permissions that a caller has on the specified resource.",
158471	//   "httpMethod": "POST",
158472	//   "id": "compute.sslCertificates.testIamPermissions",
158473	//   "parameterOrder": [
158474	//     "project",
158475	//     "resource"
158476	//   ],
158477	//   "parameters": {
158478	//     "project": {
158479	//       "description": "Project ID for this request.",
158480	//       "location": "path",
158481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158482	//       "required": true,
158483	//       "type": "string"
158484	//     },
158485	//     "resource": {
158486	//       "description": "Name or id of the resource for this request.",
158487	//       "location": "path",
158488	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158489	//       "required": true,
158490	//       "type": "string"
158491	//     }
158492	//   },
158493	//   "path": "{project}/global/sslCertificates/{resource}/testIamPermissions",
158494	//   "request": {
158495	//     "$ref": "TestPermissionsRequest"
158496	//   },
158497	//   "response": {
158498	//     "$ref": "TestPermissionsResponse"
158499	//   },
158500	//   "scopes": [
158501	//     "https://www.googleapis.com/auth/cloud-platform",
158502	//     "https://www.googleapis.com/auth/compute",
158503	//     "https://www.googleapis.com/auth/compute.readonly"
158504	//   ]
158505	// }
158506
158507}
158508
158509// method id "compute.sslPolicies.delete":
158510
158511type SslPoliciesDeleteCall struct {
158512	s          *Service
158513	project    string
158514	sslPolicy  string
158515	urlParams_ gensupport.URLParams
158516	ctx_       context.Context
158517	header_    http.Header
158518}
158519
158520// Delete: Deletes the specified SSL policy. The SSL policy resource can
158521// be deleted only if it is not in use by any TargetHttpsProxy or
158522// TargetSslProxy resources.
158523func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
158524	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158525	c.project = project
158526	c.sslPolicy = sslPolicy
158527	return c
158528}
158529
158530// RequestId sets the optional parameter "requestId": An optional
158531// request ID to identify requests. Specify a unique request ID so that
158532// if you must retry your request, the server will know to ignore the
158533// request if it has already been completed.
158534//
158535// For example, consider a situation where you make an initial request
158536// and the request times out. If you make the request again with the
158537// same request ID, the server can check if original operation with the
158538// same request ID was received, and if so, will ignore the second
158539// request. This prevents clients from accidentally creating duplicate
158540// commitments.
158541//
158542// The request ID must be a valid UUID with the exception that zero UUID
158543// is not supported (00000000-0000-0000-0000-000000000000).
158544func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
158545	c.urlParams_.Set("requestId", requestId)
158546	return c
158547}
158548
158549// Fields allows partial responses to be retrieved. See
158550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158551// for more information.
158552func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
158553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158554	return c
158555}
158556
158557// Context sets the context to be used in this call's Do method. Any
158558// pending HTTP request will be aborted if the provided context is
158559// canceled.
158560func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
158561	c.ctx_ = ctx
158562	return c
158563}
158564
158565// Header returns an http.Header that can be modified by the caller to
158566// add HTTP headers to the request.
158567func (c *SslPoliciesDeleteCall) Header() http.Header {
158568	if c.header_ == nil {
158569		c.header_ = make(http.Header)
158570	}
158571	return c.header_
158572}
158573
158574func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
158575	reqHeaders := make(http.Header)
158576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
158577	for k, v := range c.header_ {
158578		reqHeaders[k] = v
158579	}
158580	reqHeaders.Set("User-Agent", c.s.userAgent())
158581	var body io.Reader = nil
158582	c.urlParams_.Set("alt", alt)
158583	c.urlParams_.Set("prettyPrint", "false")
158584	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
158585	urls += "?" + c.urlParams_.Encode()
158586	req, err := http.NewRequest("DELETE", urls, body)
158587	if err != nil {
158588		return nil, err
158589	}
158590	req.Header = reqHeaders
158591	googleapi.Expand(req.URL, map[string]string{
158592		"project":   c.project,
158593		"sslPolicy": c.sslPolicy,
158594	})
158595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158596}
158597
158598// Do executes the "compute.sslPolicies.delete" call.
158599// Exactly one of *Operation or error will be non-nil. Any non-2xx
158600// status code is an error. Response headers are in either
158601// *Operation.ServerResponse.Header or (if a response was returned at
158602// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158603// to check whether the returned error was because
158604// http.StatusNotModified was returned.
158605func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158606	gensupport.SetOptions(c.urlParams_, opts...)
158607	res, err := c.doRequest("json")
158608	if res != nil && res.StatusCode == http.StatusNotModified {
158609		if res.Body != nil {
158610			res.Body.Close()
158611		}
158612		return nil, &googleapi.Error{
158613			Code:   res.StatusCode,
158614			Header: res.Header,
158615		}
158616	}
158617	if err != nil {
158618		return nil, err
158619	}
158620	defer googleapi.CloseBody(res)
158621	if err := googleapi.CheckResponse(res); err != nil {
158622		return nil, err
158623	}
158624	ret := &Operation{
158625		ServerResponse: googleapi.ServerResponse{
158626			Header:         res.Header,
158627			HTTPStatusCode: res.StatusCode,
158628		},
158629	}
158630	target := &ret
158631	if err := gensupport.DecodeResponse(target, res); err != nil {
158632		return nil, err
158633	}
158634	return ret, nil
158635	// {
158636	//   "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.",
158637	//   "httpMethod": "DELETE",
158638	//   "id": "compute.sslPolicies.delete",
158639	//   "parameterOrder": [
158640	//     "project",
158641	//     "sslPolicy"
158642	//   ],
158643	//   "parameters": {
158644	//     "project": {
158645	//       "description": "Project ID for this request.",
158646	//       "location": "path",
158647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158648	//       "required": true,
158649	//       "type": "string"
158650	//     },
158651	//     "requestId": {
158652	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158653	//       "location": "query",
158654	//       "type": "string"
158655	//     },
158656	//     "sslPolicy": {
158657	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
158658	//       "location": "path",
158659	//       "required": true,
158660	//       "type": "string"
158661	//     }
158662	//   },
158663	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
158664	//   "response": {
158665	//     "$ref": "Operation"
158666	//   },
158667	//   "scopes": [
158668	//     "https://www.googleapis.com/auth/cloud-platform",
158669	//     "https://www.googleapis.com/auth/compute"
158670	//   ]
158671	// }
158672
158673}
158674
158675// method id "compute.sslPolicies.get":
158676
158677type SslPoliciesGetCall struct {
158678	s            *Service
158679	project      string
158680	sslPolicy    string
158681	urlParams_   gensupport.URLParams
158682	ifNoneMatch_ string
158683	ctx_         context.Context
158684	header_      http.Header
158685}
158686
158687// Get: Lists all of the ordered rules present in a single specified
158688// policy.
158689func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
158690	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158691	c.project = project
158692	c.sslPolicy = sslPolicy
158693	return c
158694}
158695
158696// Fields allows partial responses to be retrieved. See
158697// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158698// for more information.
158699func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
158700	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158701	return c
158702}
158703
158704// IfNoneMatch sets the optional parameter which makes the operation
158705// fail if the object's ETag matches the given value. This is useful for
158706// getting updates only after the object has changed since the last
158707// request. Use googleapi.IsNotModified to check whether the response
158708// error from Do is the result of In-None-Match.
158709func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
158710	c.ifNoneMatch_ = entityTag
158711	return c
158712}
158713
158714// Context sets the context to be used in this call's Do method. Any
158715// pending HTTP request will be aborted if the provided context is
158716// canceled.
158717func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
158718	c.ctx_ = ctx
158719	return c
158720}
158721
158722// Header returns an http.Header that can be modified by the caller to
158723// add HTTP headers to the request.
158724func (c *SslPoliciesGetCall) Header() http.Header {
158725	if c.header_ == nil {
158726		c.header_ = make(http.Header)
158727	}
158728	return c.header_
158729}
158730
158731func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
158732	reqHeaders := make(http.Header)
158733	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
158734	for k, v := range c.header_ {
158735		reqHeaders[k] = v
158736	}
158737	reqHeaders.Set("User-Agent", c.s.userAgent())
158738	if c.ifNoneMatch_ != "" {
158739		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158740	}
158741	var body io.Reader = nil
158742	c.urlParams_.Set("alt", alt)
158743	c.urlParams_.Set("prettyPrint", "false")
158744	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
158745	urls += "?" + c.urlParams_.Encode()
158746	req, err := http.NewRequest("GET", urls, body)
158747	if err != nil {
158748		return nil, err
158749	}
158750	req.Header = reqHeaders
158751	googleapi.Expand(req.URL, map[string]string{
158752		"project":   c.project,
158753		"sslPolicy": c.sslPolicy,
158754	})
158755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158756}
158757
158758// Do executes the "compute.sslPolicies.get" call.
158759// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
158760// status code is an error. Response headers are in either
158761// *SslPolicy.ServerResponse.Header or (if a response was returned at
158762// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158763// to check whether the returned error was because
158764// http.StatusNotModified was returned.
158765func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
158766	gensupport.SetOptions(c.urlParams_, opts...)
158767	res, err := c.doRequest("json")
158768	if res != nil && res.StatusCode == http.StatusNotModified {
158769		if res.Body != nil {
158770			res.Body.Close()
158771		}
158772		return nil, &googleapi.Error{
158773			Code:   res.StatusCode,
158774			Header: res.Header,
158775		}
158776	}
158777	if err != nil {
158778		return nil, err
158779	}
158780	defer googleapi.CloseBody(res)
158781	if err := googleapi.CheckResponse(res); err != nil {
158782		return nil, err
158783	}
158784	ret := &SslPolicy{
158785		ServerResponse: googleapi.ServerResponse{
158786			Header:         res.Header,
158787			HTTPStatusCode: res.StatusCode,
158788		},
158789	}
158790	target := &ret
158791	if err := gensupport.DecodeResponse(target, res); err != nil {
158792		return nil, err
158793	}
158794	return ret, nil
158795	// {
158796	//   "description": "Lists all of the ordered rules present in a single specified policy.",
158797	//   "httpMethod": "GET",
158798	//   "id": "compute.sslPolicies.get",
158799	//   "parameterOrder": [
158800	//     "project",
158801	//     "sslPolicy"
158802	//   ],
158803	//   "parameters": {
158804	//     "project": {
158805	//       "description": "Project ID for this request.",
158806	//       "location": "path",
158807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158808	//       "required": true,
158809	//       "type": "string"
158810	//     },
158811	//     "sslPolicy": {
158812	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
158813	//       "location": "path",
158814	//       "required": true,
158815	//       "type": "string"
158816	//     }
158817	//   },
158818	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
158819	//   "response": {
158820	//     "$ref": "SslPolicy"
158821	//   },
158822	//   "scopes": [
158823	//     "https://www.googleapis.com/auth/cloud-platform",
158824	//     "https://www.googleapis.com/auth/compute",
158825	//     "https://www.googleapis.com/auth/compute.readonly"
158826	//   ]
158827	// }
158828
158829}
158830
158831// method id "compute.sslPolicies.insert":
158832
158833type SslPoliciesInsertCall struct {
158834	s          *Service
158835	project    string
158836	sslpolicy  *SslPolicy
158837	urlParams_ gensupport.URLParams
158838	ctx_       context.Context
158839	header_    http.Header
158840}
158841
158842// Insert: Returns the specified SSL policy resource. Gets a list of
158843// available SSL policies by making a list() request.
158844func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
158845	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158846	c.project = project
158847	c.sslpolicy = sslpolicy
158848	return c
158849}
158850
158851// RequestId sets the optional parameter "requestId": An optional
158852// request ID to identify requests. Specify a unique request ID so that
158853// if you must retry your request, the server will know to ignore the
158854// request if it has already been completed.
158855//
158856// For example, consider a situation where you make an initial request
158857// and the request times out. If you make the request again with the
158858// same request ID, the server can check if original operation with the
158859// same request ID was received, and if so, will ignore the second
158860// request. This prevents clients from accidentally creating duplicate
158861// commitments.
158862//
158863// The request ID must be a valid UUID with the exception that zero UUID
158864// is not supported (00000000-0000-0000-0000-000000000000).
158865func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
158866	c.urlParams_.Set("requestId", requestId)
158867	return c
158868}
158869
158870// Fields allows partial responses to be retrieved. See
158871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158872// for more information.
158873func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
158874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158875	return c
158876}
158877
158878// Context sets the context to be used in this call's Do method. Any
158879// pending HTTP request will be aborted if the provided context is
158880// canceled.
158881func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
158882	c.ctx_ = ctx
158883	return c
158884}
158885
158886// Header returns an http.Header that can be modified by the caller to
158887// add HTTP headers to the request.
158888func (c *SslPoliciesInsertCall) Header() http.Header {
158889	if c.header_ == nil {
158890		c.header_ = make(http.Header)
158891	}
158892	return c.header_
158893}
158894
158895func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
158896	reqHeaders := make(http.Header)
158897	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
158898	for k, v := range c.header_ {
158899		reqHeaders[k] = v
158900	}
158901	reqHeaders.Set("User-Agent", c.s.userAgent())
158902	var body io.Reader = nil
158903	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
158904	if err != nil {
158905		return nil, err
158906	}
158907	reqHeaders.Set("Content-Type", "application/json")
158908	c.urlParams_.Set("alt", alt)
158909	c.urlParams_.Set("prettyPrint", "false")
158910	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
158911	urls += "?" + c.urlParams_.Encode()
158912	req, err := http.NewRequest("POST", urls, body)
158913	if err != nil {
158914		return nil, err
158915	}
158916	req.Header = reqHeaders
158917	googleapi.Expand(req.URL, map[string]string{
158918		"project": c.project,
158919	})
158920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158921}
158922
158923// Do executes the "compute.sslPolicies.insert" call.
158924// Exactly one of *Operation or error will be non-nil. Any non-2xx
158925// status code is an error. Response headers are in either
158926// *Operation.ServerResponse.Header or (if a response was returned at
158927// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158928// to check whether the returned error was because
158929// http.StatusNotModified was returned.
158930func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158931	gensupport.SetOptions(c.urlParams_, opts...)
158932	res, err := c.doRequest("json")
158933	if res != nil && res.StatusCode == http.StatusNotModified {
158934		if res.Body != nil {
158935			res.Body.Close()
158936		}
158937		return nil, &googleapi.Error{
158938			Code:   res.StatusCode,
158939			Header: res.Header,
158940		}
158941	}
158942	if err != nil {
158943		return nil, err
158944	}
158945	defer googleapi.CloseBody(res)
158946	if err := googleapi.CheckResponse(res); err != nil {
158947		return nil, err
158948	}
158949	ret := &Operation{
158950		ServerResponse: googleapi.ServerResponse{
158951			Header:         res.Header,
158952			HTTPStatusCode: res.StatusCode,
158953		},
158954	}
158955	target := &ret
158956	if err := gensupport.DecodeResponse(target, res); err != nil {
158957		return nil, err
158958	}
158959	return ret, nil
158960	// {
158961	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
158962	//   "httpMethod": "POST",
158963	//   "id": "compute.sslPolicies.insert",
158964	//   "parameterOrder": [
158965	//     "project"
158966	//   ],
158967	//   "parameters": {
158968	//     "project": {
158969	//       "description": "Project ID for this request.",
158970	//       "location": "path",
158971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158972	//       "required": true,
158973	//       "type": "string"
158974	//     },
158975	//     "requestId": {
158976	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158977	//       "location": "query",
158978	//       "type": "string"
158979	//     }
158980	//   },
158981	//   "path": "{project}/global/sslPolicies",
158982	//   "request": {
158983	//     "$ref": "SslPolicy"
158984	//   },
158985	//   "response": {
158986	//     "$ref": "Operation"
158987	//   },
158988	//   "scopes": [
158989	//     "https://www.googleapis.com/auth/cloud-platform",
158990	//     "https://www.googleapis.com/auth/compute"
158991	//   ]
158992	// }
158993
158994}
158995
158996// method id "compute.sslPolicies.list":
158997
158998type SslPoliciesListCall struct {
158999	s            *Service
159000	project      string
159001	urlParams_   gensupport.URLParams
159002	ifNoneMatch_ string
159003	ctx_         context.Context
159004	header_      http.Header
159005}
159006
159007// List: Lists all the SSL policies that have been configured for the
159008// specified project.
159009func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
159010	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159011	c.project = project
159012	return c
159013}
159014
159015// Filter sets the optional parameter "filter": A filter expression that
159016// filters resources listed in the response. The expression must specify
159017// the field name, a comparison operator, and the value that you want to
159018// use for filtering. The value must be a string, a number, or a
159019// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159020// `<`.
159021//
159022// For example, if you are filtering Compute Engine instances, you can
159023// exclude instances named `example-instance` by specifying `name !=
159024// example-instance`.
159025//
159026// You can also filter nested fields. For example, you could specify
159027// `scheduling.automaticRestart = false` to include instances only if
159028// they are not scheduled for automatic restarts. You can use filtering
159029// on nested fields to filter based on resource labels.
159030//
159031// To filter on multiple expressions, provide each separate expression
159032// within parentheses. For example: ``` (scheduling.automaticRestart =
159033// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159034// is an `AND` expression. However, you can include `AND` and `OR`
159035// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159036// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159037// (scheduling.automaticRestart = true) ```
159038func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
159039	c.urlParams_.Set("filter", filter)
159040	return c
159041}
159042
159043// MaxResults sets the optional parameter "maxResults": The maximum
159044// number of results per page that should be returned. If the number of
159045// available results is larger than `maxResults`, Compute Engine returns
159046// a `nextPageToken` that can be used to get the next page of results in
159047// subsequent list requests. Acceptable values are `0` to `500`,
159048// inclusive. (Default: `500`)
159049func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
159050	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159051	return c
159052}
159053
159054// OrderBy sets the optional parameter "orderBy": Sorts list results by
159055// a certain order. By default, results are returned in alphanumerical
159056// order based on the resource name.
159057//
159058// You can also sort results in descending order based on the creation
159059// timestamp using `orderBy="creationTimestamp desc". This sorts
159060// results based on the `creationTimestamp` field in reverse
159061// chronological order (newest result first). Use this to sort resources
159062// like operations so that the newest operation is returned
159063// first.
159064//
159065// Currently, only sorting by `name` or `creationTimestamp desc` is
159066// supported.
159067func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
159068	c.urlParams_.Set("orderBy", orderBy)
159069	return c
159070}
159071
159072// PageToken sets the optional parameter "pageToken": Specifies a page
159073// token to use. Set `pageToken` to the `nextPageToken` returned by a
159074// previous list request to get the next page of results.
159075func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
159076	c.urlParams_.Set("pageToken", pageToken)
159077	return c
159078}
159079
159080// ReturnPartialSuccess sets the optional parameter
159081// "returnPartialSuccess": Opt-in for partial success behavior which
159082// provides partial results in case of failure. The default value is
159083// false and the logic is the same as today.
159084func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall {
159085	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159086	return c
159087}
159088
159089// Fields allows partial responses to be retrieved. See
159090// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159091// for more information.
159092func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
159093	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159094	return c
159095}
159096
159097// IfNoneMatch sets the optional parameter which makes the operation
159098// fail if the object's ETag matches the given value. This is useful for
159099// getting updates only after the object has changed since the last
159100// request. Use googleapi.IsNotModified to check whether the response
159101// error from Do is the result of In-None-Match.
159102func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
159103	c.ifNoneMatch_ = entityTag
159104	return c
159105}
159106
159107// Context sets the context to be used in this call's Do method. Any
159108// pending HTTP request will be aborted if the provided context is
159109// canceled.
159110func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
159111	c.ctx_ = ctx
159112	return c
159113}
159114
159115// Header returns an http.Header that can be modified by the caller to
159116// add HTTP headers to the request.
159117func (c *SslPoliciesListCall) Header() http.Header {
159118	if c.header_ == nil {
159119		c.header_ = make(http.Header)
159120	}
159121	return c.header_
159122}
159123
159124func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
159125	reqHeaders := make(http.Header)
159126	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
159127	for k, v := range c.header_ {
159128		reqHeaders[k] = v
159129	}
159130	reqHeaders.Set("User-Agent", c.s.userAgent())
159131	if c.ifNoneMatch_ != "" {
159132		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159133	}
159134	var body io.Reader = nil
159135	c.urlParams_.Set("alt", alt)
159136	c.urlParams_.Set("prettyPrint", "false")
159137	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
159138	urls += "?" + c.urlParams_.Encode()
159139	req, err := http.NewRequest("GET", urls, body)
159140	if err != nil {
159141		return nil, err
159142	}
159143	req.Header = reqHeaders
159144	googleapi.Expand(req.URL, map[string]string{
159145		"project": c.project,
159146	})
159147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159148}
159149
159150// Do executes the "compute.sslPolicies.list" call.
159151// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
159152// status code is an error. Response headers are in either
159153// *SslPoliciesList.ServerResponse.Header or (if a response was returned
159154// at all) in error.(*googleapi.Error).Header. Use
159155// googleapi.IsNotModified to check whether the returned error was
159156// because http.StatusNotModified was returned.
159157func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
159158	gensupport.SetOptions(c.urlParams_, opts...)
159159	res, err := c.doRequest("json")
159160	if res != nil && res.StatusCode == http.StatusNotModified {
159161		if res.Body != nil {
159162			res.Body.Close()
159163		}
159164		return nil, &googleapi.Error{
159165			Code:   res.StatusCode,
159166			Header: res.Header,
159167		}
159168	}
159169	if err != nil {
159170		return nil, err
159171	}
159172	defer googleapi.CloseBody(res)
159173	if err := googleapi.CheckResponse(res); err != nil {
159174		return nil, err
159175	}
159176	ret := &SslPoliciesList{
159177		ServerResponse: googleapi.ServerResponse{
159178			Header:         res.Header,
159179			HTTPStatusCode: res.StatusCode,
159180		},
159181	}
159182	target := &ret
159183	if err := gensupport.DecodeResponse(target, res); err != nil {
159184		return nil, err
159185	}
159186	return ret, nil
159187	// {
159188	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
159189	//   "httpMethod": "GET",
159190	//   "id": "compute.sslPolicies.list",
159191	//   "parameterOrder": [
159192	//     "project"
159193	//   ],
159194	//   "parameters": {
159195	//     "filter": {
159196	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
159197	//       "location": "query",
159198	//       "type": "string"
159199	//     },
159200	//     "maxResults": {
159201	//       "default": "500",
159202	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159203	//       "format": "uint32",
159204	//       "location": "query",
159205	//       "minimum": "0",
159206	//       "type": "integer"
159207	//     },
159208	//     "orderBy": {
159209	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
159210	//       "location": "query",
159211	//       "type": "string"
159212	//     },
159213	//     "pageToken": {
159214	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159215	//       "location": "query",
159216	//       "type": "string"
159217	//     },
159218	//     "project": {
159219	//       "description": "Project ID for this request.",
159220	//       "location": "path",
159221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159222	//       "required": true,
159223	//       "type": "string"
159224	//     },
159225	//     "returnPartialSuccess": {
159226	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
159227	//       "location": "query",
159228	//       "type": "boolean"
159229	//     }
159230	//   },
159231	//   "path": "{project}/global/sslPolicies",
159232	//   "response": {
159233	//     "$ref": "SslPoliciesList"
159234	//   },
159235	//   "scopes": [
159236	//     "https://www.googleapis.com/auth/cloud-platform",
159237	//     "https://www.googleapis.com/auth/compute",
159238	//     "https://www.googleapis.com/auth/compute.readonly"
159239	//   ]
159240	// }
159241
159242}
159243
159244// Pages invokes f for each page of results.
159245// A non-nil error returned from f will halt the iteration.
159246// The provided context supersedes any context provided to the Context method.
159247func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
159248	c.ctx_ = ctx
159249	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159250	for {
159251		x, err := c.Do()
159252		if err != nil {
159253			return err
159254		}
159255		if err := f(x); err != nil {
159256			return err
159257		}
159258		if x.NextPageToken == "" {
159259			return nil
159260		}
159261		c.PageToken(x.NextPageToken)
159262	}
159263}
159264
159265// method id "compute.sslPolicies.listAvailableFeatures":
159266
159267type SslPoliciesListAvailableFeaturesCall struct {
159268	s            *Service
159269	project      string
159270	urlParams_   gensupport.URLParams
159271	ifNoneMatch_ string
159272	ctx_         context.Context
159273	header_      http.Header
159274}
159275
159276// ListAvailableFeatures: Lists all features that can be specified in
159277// the SSL policy when using custom profile.
159278func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
159279	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159280	c.project = project
159281	return c
159282}
159283
159284// Filter sets the optional parameter "filter": A filter expression that
159285// filters resources listed in the response. The expression must specify
159286// the field name, a comparison operator, and the value that you want to
159287// use for filtering. The value must be a string, a number, or a
159288// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159289// `<`.
159290//
159291// For example, if you are filtering Compute Engine instances, you can
159292// exclude instances named `example-instance` by specifying `name !=
159293// example-instance`.
159294//
159295// You can also filter nested fields. For example, you could specify
159296// `scheduling.automaticRestart = false` to include instances only if
159297// they are not scheduled for automatic restarts. You can use filtering
159298// on nested fields to filter based on resource labels.
159299//
159300// To filter on multiple expressions, provide each separate expression
159301// within parentheses. For example: ``` (scheduling.automaticRestart =
159302// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159303// is an `AND` expression. However, you can include `AND` and `OR`
159304// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159305// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159306// (scheduling.automaticRestart = true) ```
159307func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
159308	c.urlParams_.Set("filter", filter)
159309	return c
159310}
159311
159312// MaxResults sets the optional parameter "maxResults": The maximum
159313// number of results per page that should be returned. If the number of
159314// available results is larger than `maxResults`, Compute Engine returns
159315// a `nextPageToken` that can be used to get the next page of results in
159316// subsequent list requests. Acceptable values are `0` to `500`,
159317// inclusive. (Default: `500`)
159318func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
159319	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159320	return c
159321}
159322
159323// OrderBy sets the optional parameter "orderBy": Sorts list results by
159324// a certain order. By default, results are returned in alphanumerical
159325// order based on the resource name.
159326//
159327// You can also sort results in descending order based on the creation
159328// timestamp using `orderBy="creationTimestamp desc". This sorts
159329// results based on the `creationTimestamp` field in reverse
159330// chronological order (newest result first). Use this to sort resources
159331// like operations so that the newest operation is returned
159332// first.
159333//
159334// Currently, only sorting by `name` or `creationTimestamp desc` is
159335// supported.
159336func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
159337	c.urlParams_.Set("orderBy", orderBy)
159338	return c
159339}
159340
159341// PageToken sets the optional parameter "pageToken": Specifies a page
159342// token to use. Set `pageToken` to the `nextPageToken` returned by a
159343// previous list request to get the next page of results.
159344func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
159345	c.urlParams_.Set("pageToken", pageToken)
159346	return c
159347}
159348
159349// ReturnPartialSuccess sets the optional parameter
159350// "returnPartialSuccess": Opt-in for partial success behavior which
159351// provides partial results in case of failure. The default value is
159352// false and the logic is the same as today.
159353func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall {
159354	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159355	return c
159356}
159357
159358// Fields allows partial responses to be retrieved. See
159359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159360// for more information.
159361func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
159362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159363	return c
159364}
159365
159366// IfNoneMatch sets the optional parameter which makes the operation
159367// fail if the object's ETag matches the given value. This is useful for
159368// getting updates only after the object has changed since the last
159369// request. Use googleapi.IsNotModified to check whether the response
159370// error from Do is the result of In-None-Match.
159371func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
159372	c.ifNoneMatch_ = entityTag
159373	return c
159374}
159375
159376// Context sets the context to be used in this call's Do method. Any
159377// pending HTTP request will be aborted if the provided context is
159378// canceled.
159379func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
159380	c.ctx_ = ctx
159381	return c
159382}
159383
159384// Header returns an http.Header that can be modified by the caller to
159385// add HTTP headers to the request.
159386func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
159387	if c.header_ == nil {
159388		c.header_ = make(http.Header)
159389	}
159390	return c.header_
159391}
159392
159393func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
159394	reqHeaders := make(http.Header)
159395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
159396	for k, v := range c.header_ {
159397		reqHeaders[k] = v
159398	}
159399	reqHeaders.Set("User-Agent", c.s.userAgent())
159400	if c.ifNoneMatch_ != "" {
159401		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159402	}
159403	var body io.Reader = nil
159404	c.urlParams_.Set("alt", alt)
159405	c.urlParams_.Set("prettyPrint", "false")
159406	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
159407	urls += "?" + c.urlParams_.Encode()
159408	req, err := http.NewRequest("GET", urls, body)
159409	if err != nil {
159410		return nil, err
159411	}
159412	req.Header = reqHeaders
159413	googleapi.Expand(req.URL, map[string]string{
159414		"project": c.project,
159415	})
159416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159417}
159418
159419// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
159420// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
159421// will be non-nil. Any non-2xx status code is an error. Response
159422// headers are in either
159423// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
159424// (if a response was returned at all) in
159425// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
159426// whether the returned error was because http.StatusNotModified was
159427// returned.
159428func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
159429	gensupport.SetOptions(c.urlParams_, opts...)
159430	res, err := c.doRequest("json")
159431	if res != nil && res.StatusCode == http.StatusNotModified {
159432		if res.Body != nil {
159433			res.Body.Close()
159434		}
159435		return nil, &googleapi.Error{
159436			Code:   res.StatusCode,
159437			Header: res.Header,
159438		}
159439	}
159440	if err != nil {
159441		return nil, err
159442	}
159443	defer googleapi.CloseBody(res)
159444	if err := googleapi.CheckResponse(res); err != nil {
159445		return nil, err
159446	}
159447	ret := &SslPoliciesListAvailableFeaturesResponse{
159448		ServerResponse: googleapi.ServerResponse{
159449			Header:         res.Header,
159450			HTTPStatusCode: res.StatusCode,
159451		},
159452	}
159453	target := &ret
159454	if err := gensupport.DecodeResponse(target, res); err != nil {
159455		return nil, err
159456	}
159457	return ret, nil
159458	// {
159459	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
159460	//   "httpMethod": "GET",
159461	//   "id": "compute.sslPolicies.listAvailableFeatures",
159462	//   "parameterOrder": [
159463	//     "project"
159464	//   ],
159465	//   "parameters": {
159466	//     "filter": {
159467	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
159468	//       "location": "query",
159469	//       "type": "string"
159470	//     },
159471	//     "maxResults": {
159472	//       "default": "500",
159473	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159474	//       "format": "uint32",
159475	//       "location": "query",
159476	//       "minimum": "0",
159477	//       "type": "integer"
159478	//     },
159479	//     "orderBy": {
159480	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
159481	//       "location": "query",
159482	//       "type": "string"
159483	//     },
159484	//     "pageToken": {
159485	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159486	//       "location": "query",
159487	//       "type": "string"
159488	//     },
159489	//     "project": {
159490	//       "description": "Project ID for this request.",
159491	//       "location": "path",
159492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159493	//       "required": true,
159494	//       "type": "string"
159495	//     },
159496	//     "returnPartialSuccess": {
159497	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
159498	//       "location": "query",
159499	//       "type": "boolean"
159500	//     }
159501	//   },
159502	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
159503	//   "response": {
159504	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
159505	//   },
159506	//   "scopes": [
159507	//     "https://www.googleapis.com/auth/cloud-platform",
159508	//     "https://www.googleapis.com/auth/compute",
159509	//     "https://www.googleapis.com/auth/compute.readonly"
159510	//   ]
159511	// }
159512
159513}
159514
159515// method id "compute.sslPolicies.patch":
159516
159517type SslPoliciesPatchCall struct {
159518	s          *Service
159519	project    string
159520	sslPolicy  string
159521	sslpolicy  *SslPolicy
159522	urlParams_ gensupport.URLParams
159523	ctx_       context.Context
159524	header_    http.Header
159525}
159526
159527// Patch: Patches the specified SSL policy with the data included in the
159528// request.
159529func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
159530	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159531	c.project = project
159532	c.sslPolicy = sslPolicy
159533	c.sslpolicy = sslpolicy
159534	return c
159535}
159536
159537// RequestId sets the optional parameter "requestId": An optional
159538// request ID to identify requests. Specify a unique request ID so that
159539// if you must retry your request, the server will know to ignore the
159540// request if it has already been completed.
159541//
159542// For example, consider a situation where you make an initial request
159543// and the request times out. If you make the request again with the
159544// same request ID, the server can check if original operation with the
159545// same request ID was received, and if so, will ignore the second
159546// request. This prevents clients from accidentally creating duplicate
159547// commitments.
159548//
159549// The request ID must be a valid UUID with the exception that zero UUID
159550// is not supported (00000000-0000-0000-0000-000000000000).
159551func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
159552	c.urlParams_.Set("requestId", requestId)
159553	return c
159554}
159555
159556// Fields allows partial responses to be retrieved. See
159557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159558// for more information.
159559func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
159560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159561	return c
159562}
159563
159564// Context sets the context to be used in this call's Do method. Any
159565// pending HTTP request will be aborted if the provided context is
159566// canceled.
159567func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
159568	c.ctx_ = ctx
159569	return c
159570}
159571
159572// Header returns an http.Header that can be modified by the caller to
159573// add HTTP headers to the request.
159574func (c *SslPoliciesPatchCall) Header() http.Header {
159575	if c.header_ == nil {
159576		c.header_ = make(http.Header)
159577	}
159578	return c.header_
159579}
159580
159581func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
159582	reqHeaders := make(http.Header)
159583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
159584	for k, v := range c.header_ {
159585		reqHeaders[k] = v
159586	}
159587	reqHeaders.Set("User-Agent", c.s.userAgent())
159588	var body io.Reader = nil
159589	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
159590	if err != nil {
159591		return nil, err
159592	}
159593	reqHeaders.Set("Content-Type", "application/json")
159594	c.urlParams_.Set("alt", alt)
159595	c.urlParams_.Set("prettyPrint", "false")
159596	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
159597	urls += "?" + c.urlParams_.Encode()
159598	req, err := http.NewRequest("PATCH", urls, body)
159599	if err != nil {
159600		return nil, err
159601	}
159602	req.Header = reqHeaders
159603	googleapi.Expand(req.URL, map[string]string{
159604		"project":   c.project,
159605		"sslPolicy": c.sslPolicy,
159606	})
159607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159608}
159609
159610// Do executes the "compute.sslPolicies.patch" call.
159611// Exactly one of *Operation or error will be non-nil. Any non-2xx
159612// status code is an error. Response headers are in either
159613// *Operation.ServerResponse.Header or (if a response was returned at
159614// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159615// to check whether the returned error was because
159616// http.StatusNotModified was returned.
159617func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159618	gensupport.SetOptions(c.urlParams_, opts...)
159619	res, err := c.doRequest("json")
159620	if res != nil && res.StatusCode == http.StatusNotModified {
159621		if res.Body != nil {
159622			res.Body.Close()
159623		}
159624		return nil, &googleapi.Error{
159625			Code:   res.StatusCode,
159626			Header: res.Header,
159627		}
159628	}
159629	if err != nil {
159630		return nil, err
159631	}
159632	defer googleapi.CloseBody(res)
159633	if err := googleapi.CheckResponse(res); err != nil {
159634		return nil, err
159635	}
159636	ret := &Operation{
159637		ServerResponse: googleapi.ServerResponse{
159638			Header:         res.Header,
159639			HTTPStatusCode: res.StatusCode,
159640		},
159641	}
159642	target := &ret
159643	if err := gensupport.DecodeResponse(target, res); err != nil {
159644		return nil, err
159645	}
159646	return ret, nil
159647	// {
159648	//   "description": "Patches the specified SSL policy with the data included in the request.",
159649	//   "httpMethod": "PATCH",
159650	//   "id": "compute.sslPolicies.patch",
159651	//   "parameterOrder": [
159652	//     "project",
159653	//     "sslPolicy"
159654	//   ],
159655	//   "parameters": {
159656	//     "project": {
159657	//       "description": "Project ID for this request.",
159658	//       "location": "path",
159659	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159660	//       "required": true,
159661	//       "type": "string"
159662	//     },
159663	//     "requestId": {
159664	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159665	//       "location": "query",
159666	//       "type": "string"
159667	//     },
159668	//     "sslPolicy": {
159669	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
159670	//       "location": "path",
159671	//       "required": true,
159672	//       "type": "string"
159673	//     }
159674	//   },
159675	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
159676	//   "request": {
159677	//     "$ref": "SslPolicy"
159678	//   },
159679	//   "response": {
159680	//     "$ref": "Operation"
159681	//   },
159682	//   "scopes": [
159683	//     "https://www.googleapis.com/auth/cloud-platform",
159684	//     "https://www.googleapis.com/auth/compute"
159685	//   ]
159686	// }
159687
159688}
159689
159690// method id "compute.sslPolicies.testIamPermissions":
159691
159692type SslPoliciesTestIamPermissionsCall struct {
159693	s                      *Service
159694	project                string
159695	resource               string
159696	testpermissionsrequest *TestPermissionsRequest
159697	urlParams_             gensupport.URLParams
159698	ctx_                   context.Context
159699	header_                http.Header
159700}
159701
159702// TestIamPermissions: Returns permissions that a caller has on the
159703// specified resource.
159704func (r *SslPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslPoliciesTestIamPermissionsCall {
159705	c := &SslPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159706	c.project = project
159707	c.resource = resource
159708	c.testpermissionsrequest = testpermissionsrequest
159709	return c
159710}
159711
159712// Fields allows partial responses to be retrieved. See
159713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159714// for more information.
159715func (c *SslPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslPoliciesTestIamPermissionsCall {
159716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159717	return c
159718}
159719
159720// Context sets the context to be used in this call's Do method. Any
159721// pending HTTP request will be aborted if the provided context is
159722// canceled.
159723func (c *SslPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SslPoliciesTestIamPermissionsCall {
159724	c.ctx_ = ctx
159725	return c
159726}
159727
159728// Header returns an http.Header that can be modified by the caller to
159729// add HTTP headers to the request.
159730func (c *SslPoliciesTestIamPermissionsCall) Header() http.Header {
159731	if c.header_ == nil {
159732		c.header_ = make(http.Header)
159733	}
159734	return c.header_
159735}
159736
159737func (c *SslPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
159738	reqHeaders := make(http.Header)
159739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
159740	for k, v := range c.header_ {
159741		reqHeaders[k] = v
159742	}
159743	reqHeaders.Set("User-Agent", c.s.userAgent())
159744	var body io.Reader = nil
159745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
159746	if err != nil {
159747		return nil, err
159748	}
159749	reqHeaders.Set("Content-Type", "application/json")
159750	c.urlParams_.Set("alt", alt)
159751	c.urlParams_.Set("prettyPrint", "false")
159752	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{resource}/testIamPermissions")
159753	urls += "?" + c.urlParams_.Encode()
159754	req, err := http.NewRequest("POST", urls, body)
159755	if err != nil {
159756		return nil, err
159757	}
159758	req.Header = reqHeaders
159759	googleapi.Expand(req.URL, map[string]string{
159760		"project":  c.project,
159761		"resource": c.resource,
159762	})
159763	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159764}
159765
159766// Do executes the "compute.sslPolicies.testIamPermissions" call.
159767// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
159768// non-2xx status code is an error. Response headers are in either
159769// *TestPermissionsResponse.ServerResponse.Header or (if a response was
159770// returned at all) in error.(*googleapi.Error).Header. Use
159771// googleapi.IsNotModified to check whether the returned error was
159772// because http.StatusNotModified was returned.
159773func (c *SslPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
159774	gensupport.SetOptions(c.urlParams_, opts...)
159775	res, err := c.doRequest("json")
159776	if res != nil && res.StatusCode == http.StatusNotModified {
159777		if res.Body != nil {
159778			res.Body.Close()
159779		}
159780		return nil, &googleapi.Error{
159781			Code:   res.StatusCode,
159782			Header: res.Header,
159783		}
159784	}
159785	if err != nil {
159786		return nil, err
159787	}
159788	defer googleapi.CloseBody(res)
159789	if err := googleapi.CheckResponse(res); err != nil {
159790		return nil, err
159791	}
159792	ret := &TestPermissionsResponse{
159793		ServerResponse: googleapi.ServerResponse{
159794			Header:         res.Header,
159795			HTTPStatusCode: res.StatusCode,
159796		},
159797	}
159798	target := &ret
159799	if err := gensupport.DecodeResponse(target, res); err != nil {
159800		return nil, err
159801	}
159802	return ret, nil
159803	// {
159804	//   "description": "Returns permissions that a caller has on the specified resource.",
159805	//   "httpMethod": "POST",
159806	//   "id": "compute.sslPolicies.testIamPermissions",
159807	//   "parameterOrder": [
159808	//     "project",
159809	//     "resource"
159810	//   ],
159811	//   "parameters": {
159812	//     "project": {
159813	//       "description": "Project ID for this request.",
159814	//       "location": "path",
159815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159816	//       "required": true,
159817	//       "type": "string"
159818	//     },
159819	//     "resource": {
159820	//       "description": "Name or id of the resource for this request.",
159821	//       "location": "path",
159822	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159823	//       "required": true,
159824	//       "type": "string"
159825	//     }
159826	//   },
159827	//   "path": "{project}/global/sslPolicies/{resource}/testIamPermissions",
159828	//   "request": {
159829	//     "$ref": "TestPermissionsRequest"
159830	//   },
159831	//   "response": {
159832	//     "$ref": "TestPermissionsResponse"
159833	//   },
159834	//   "scopes": [
159835	//     "https://www.googleapis.com/auth/cloud-platform",
159836	//     "https://www.googleapis.com/auth/compute",
159837	//     "https://www.googleapis.com/auth/compute.readonly"
159838	//   ]
159839	// }
159840
159841}
159842
159843// method id "compute.subnetworks.aggregatedList":
159844
159845type SubnetworksAggregatedListCall struct {
159846	s            *Service
159847	project      string
159848	urlParams_   gensupport.URLParams
159849	ifNoneMatch_ string
159850	ctx_         context.Context
159851	header_      http.Header
159852}
159853
159854// AggregatedList: Retrieves an aggregated list of subnetworks.
159855func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
159856	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159857	c.project = project
159858	return c
159859}
159860
159861// Filter sets the optional parameter "filter": A filter expression that
159862// filters resources listed in the response. The expression must specify
159863// the field name, a comparison operator, and the value that you want to
159864// use for filtering. The value must be a string, a number, or a
159865// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159866// `<`.
159867//
159868// For example, if you are filtering Compute Engine instances, you can
159869// exclude instances named `example-instance` by specifying `name !=
159870// example-instance`.
159871//
159872// You can also filter nested fields. For example, you could specify
159873// `scheduling.automaticRestart = false` to include instances only if
159874// they are not scheduled for automatic restarts. You can use filtering
159875// on nested fields to filter based on resource labels.
159876//
159877// To filter on multiple expressions, provide each separate expression
159878// within parentheses. For example: ``` (scheduling.automaticRestart =
159879// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159880// is an `AND` expression. However, you can include `AND` and `OR`
159881// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159882// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159883// (scheduling.automaticRestart = true) ```
159884func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
159885	c.urlParams_.Set("filter", filter)
159886	return c
159887}
159888
159889// IncludeAllScopes sets the optional parameter "includeAllScopes":
159890// Indicates whether every visible scope for each scope type (zone,
159891// region, global) should be included in the response. For new resource
159892// types added after this field, the flag has no effect as new resource
159893// types will always include every visible scope for each scope type in
159894// response. For resource types which predate this field, if this flag
159895// is omitted or false, only scopes of the scope types where the
159896// resource type is expected to be found will be included.
159897func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
159898	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
159899	return c
159900}
159901
159902// MaxResults sets the optional parameter "maxResults": The maximum
159903// number of results per page that should be returned. If the number of
159904// available results is larger than `maxResults`, Compute Engine returns
159905// a `nextPageToken` that can be used to get the next page of results in
159906// subsequent list requests. Acceptable values are `0` to `500`,
159907// inclusive. (Default: `500`)
159908func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
159909	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159910	return c
159911}
159912
159913// OrderBy sets the optional parameter "orderBy": Sorts list results by
159914// a certain order. By default, results are returned in alphanumerical
159915// order based on the resource name.
159916//
159917// You can also sort results in descending order based on the creation
159918// timestamp using `orderBy="creationTimestamp desc". This sorts
159919// results based on the `creationTimestamp` field in reverse
159920// chronological order (newest result first). Use this to sort resources
159921// like operations so that the newest operation is returned
159922// first.
159923//
159924// Currently, only sorting by `name` or `creationTimestamp desc` is
159925// supported.
159926func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
159927	c.urlParams_.Set("orderBy", orderBy)
159928	return c
159929}
159930
159931// PageToken sets the optional parameter "pageToken": Specifies a page
159932// token to use. Set `pageToken` to the `nextPageToken` returned by a
159933// previous list request to get the next page of results.
159934func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
159935	c.urlParams_.Set("pageToken", pageToken)
159936	return c
159937}
159938
159939// ReturnPartialSuccess sets the optional parameter
159940// "returnPartialSuccess": Opt-in for partial success behavior which
159941// provides partial results in case of failure. The default value is
159942// false and the logic is the same as today.
159943func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall {
159944	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159945	return c
159946}
159947
159948// Fields allows partial responses to be retrieved. See
159949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159950// for more information.
159951func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
159952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159953	return c
159954}
159955
159956// IfNoneMatch sets the optional parameter which makes the operation
159957// fail if the object's ETag matches the given value. This is useful for
159958// getting updates only after the object has changed since the last
159959// request. Use googleapi.IsNotModified to check whether the response
159960// error from Do is the result of In-None-Match.
159961func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
159962	c.ifNoneMatch_ = entityTag
159963	return c
159964}
159965
159966// Context sets the context to be used in this call's Do method. Any
159967// pending HTTP request will be aborted if the provided context is
159968// canceled.
159969func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
159970	c.ctx_ = ctx
159971	return c
159972}
159973
159974// Header returns an http.Header that can be modified by the caller to
159975// add HTTP headers to the request.
159976func (c *SubnetworksAggregatedListCall) Header() http.Header {
159977	if c.header_ == nil {
159978		c.header_ = make(http.Header)
159979	}
159980	return c.header_
159981}
159982
159983func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
159984	reqHeaders := make(http.Header)
159985	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
159986	for k, v := range c.header_ {
159987		reqHeaders[k] = v
159988	}
159989	reqHeaders.Set("User-Agent", c.s.userAgent())
159990	if c.ifNoneMatch_ != "" {
159991		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159992	}
159993	var body io.Reader = nil
159994	c.urlParams_.Set("alt", alt)
159995	c.urlParams_.Set("prettyPrint", "false")
159996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
159997	urls += "?" + c.urlParams_.Encode()
159998	req, err := http.NewRequest("GET", urls, body)
159999	if err != nil {
160000		return nil, err
160001	}
160002	req.Header = reqHeaders
160003	googleapi.Expand(req.URL, map[string]string{
160004		"project": c.project,
160005	})
160006	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160007}
160008
160009// Do executes the "compute.subnetworks.aggregatedList" call.
160010// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
160011// Any non-2xx status code is an error. Response headers are in either
160012// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
160013// returned at all) in error.(*googleapi.Error).Header. Use
160014// googleapi.IsNotModified to check whether the returned error was
160015// because http.StatusNotModified was returned.
160016func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
160017	gensupport.SetOptions(c.urlParams_, opts...)
160018	res, err := c.doRequest("json")
160019	if res != nil && res.StatusCode == http.StatusNotModified {
160020		if res.Body != nil {
160021			res.Body.Close()
160022		}
160023		return nil, &googleapi.Error{
160024			Code:   res.StatusCode,
160025			Header: res.Header,
160026		}
160027	}
160028	if err != nil {
160029		return nil, err
160030	}
160031	defer googleapi.CloseBody(res)
160032	if err := googleapi.CheckResponse(res); err != nil {
160033		return nil, err
160034	}
160035	ret := &SubnetworkAggregatedList{
160036		ServerResponse: googleapi.ServerResponse{
160037			Header:         res.Header,
160038			HTTPStatusCode: res.StatusCode,
160039		},
160040	}
160041	target := &ret
160042	if err := gensupport.DecodeResponse(target, res); err != nil {
160043		return nil, err
160044	}
160045	return ret, nil
160046	// {
160047	//   "description": "Retrieves an aggregated list of subnetworks.",
160048	//   "httpMethod": "GET",
160049	//   "id": "compute.subnetworks.aggregatedList",
160050	//   "parameterOrder": [
160051	//     "project"
160052	//   ],
160053	//   "parameters": {
160054	//     "filter": {
160055	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
160056	//       "location": "query",
160057	//       "type": "string"
160058	//     },
160059	//     "includeAllScopes": {
160060	//       "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.",
160061	//       "location": "query",
160062	//       "type": "boolean"
160063	//     },
160064	//     "maxResults": {
160065	//       "default": "500",
160066	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
160067	//       "format": "uint32",
160068	//       "location": "query",
160069	//       "minimum": "0",
160070	//       "type": "integer"
160071	//     },
160072	//     "orderBy": {
160073	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
160074	//       "location": "query",
160075	//       "type": "string"
160076	//     },
160077	//     "pageToken": {
160078	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
160079	//       "location": "query",
160080	//       "type": "string"
160081	//     },
160082	//     "project": {
160083	//       "description": "Project ID for this request.",
160084	//       "location": "path",
160085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160086	//       "required": true,
160087	//       "type": "string"
160088	//     },
160089	//     "returnPartialSuccess": {
160090	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
160091	//       "location": "query",
160092	//       "type": "boolean"
160093	//     }
160094	//   },
160095	//   "path": "{project}/aggregated/subnetworks",
160096	//   "response": {
160097	//     "$ref": "SubnetworkAggregatedList"
160098	//   },
160099	//   "scopes": [
160100	//     "https://www.googleapis.com/auth/cloud-platform",
160101	//     "https://www.googleapis.com/auth/compute",
160102	//     "https://www.googleapis.com/auth/compute.readonly"
160103	//   ]
160104	// }
160105
160106}
160107
160108// Pages invokes f for each page of results.
160109// A non-nil error returned from f will halt the iteration.
160110// The provided context supersedes any context provided to the Context method.
160111func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
160112	c.ctx_ = ctx
160113	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160114	for {
160115		x, err := c.Do()
160116		if err != nil {
160117			return err
160118		}
160119		if err := f(x); err != nil {
160120			return err
160121		}
160122		if x.NextPageToken == "" {
160123			return nil
160124		}
160125		c.PageToken(x.NextPageToken)
160126	}
160127}
160128
160129// method id "compute.subnetworks.delete":
160130
160131type SubnetworksDeleteCall struct {
160132	s          *Service
160133	project    string
160134	region     string
160135	subnetwork string
160136	urlParams_ gensupport.URLParams
160137	ctx_       context.Context
160138	header_    http.Header
160139}
160140
160141// Delete: Deletes the specified subnetwork.
160142func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
160143	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160144	c.project = project
160145	c.region = region
160146	c.subnetwork = subnetwork
160147	return c
160148}
160149
160150// RequestId sets the optional parameter "requestId": An optional
160151// request ID to identify requests. Specify a unique request ID so that
160152// if you must retry your request, the server will know to ignore the
160153// request if it has already been completed.
160154//
160155// For example, consider a situation where you make an initial request
160156// and the request times out. If you make the request again with the
160157// same request ID, the server can check if original operation with the
160158// same request ID was received, and if so, will ignore the second
160159// request. This prevents clients from accidentally creating duplicate
160160// commitments.
160161//
160162// The request ID must be a valid UUID with the exception that zero UUID
160163// is not supported (00000000-0000-0000-0000-000000000000).
160164func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
160165	c.urlParams_.Set("requestId", requestId)
160166	return c
160167}
160168
160169// Fields allows partial responses to be retrieved. See
160170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160171// for more information.
160172func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
160173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160174	return c
160175}
160176
160177// Context sets the context to be used in this call's Do method. Any
160178// pending HTTP request will be aborted if the provided context is
160179// canceled.
160180func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
160181	c.ctx_ = ctx
160182	return c
160183}
160184
160185// Header returns an http.Header that can be modified by the caller to
160186// add HTTP headers to the request.
160187func (c *SubnetworksDeleteCall) Header() http.Header {
160188	if c.header_ == nil {
160189		c.header_ = make(http.Header)
160190	}
160191	return c.header_
160192}
160193
160194func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
160195	reqHeaders := make(http.Header)
160196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
160197	for k, v := range c.header_ {
160198		reqHeaders[k] = v
160199	}
160200	reqHeaders.Set("User-Agent", c.s.userAgent())
160201	var body io.Reader = nil
160202	c.urlParams_.Set("alt", alt)
160203	c.urlParams_.Set("prettyPrint", "false")
160204	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
160205	urls += "?" + c.urlParams_.Encode()
160206	req, err := http.NewRequest("DELETE", urls, body)
160207	if err != nil {
160208		return nil, err
160209	}
160210	req.Header = reqHeaders
160211	googleapi.Expand(req.URL, map[string]string{
160212		"project":    c.project,
160213		"region":     c.region,
160214		"subnetwork": c.subnetwork,
160215	})
160216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160217}
160218
160219// Do executes the "compute.subnetworks.delete" call.
160220// Exactly one of *Operation or error will be non-nil. Any non-2xx
160221// status code is an error. Response headers are in either
160222// *Operation.ServerResponse.Header or (if a response was returned at
160223// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160224// to check whether the returned error was because
160225// http.StatusNotModified was returned.
160226func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160227	gensupport.SetOptions(c.urlParams_, opts...)
160228	res, err := c.doRequest("json")
160229	if res != nil && res.StatusCode == http.StatusNotModified {
160230		if res.Body != nil {
160231			res.Body.Close()
160232		}
160233		return nil, &googleapi.Error{
160234			Code:   res.StatusCode,
160235			Header: res.Header,
160236		}
160237	}
160238	if err != nil {
160239		return nil, err
160240	}
160241	defer googleapi.CloseBody(res)
160242	if err := googleapi.CheckResponse(res); err != nil {
160243		return nil, err
160244	}
160245	ret := &Operation{
160246		ServerResponse: googleapi.ServerResponse{
160247			Header:         res.Header,
160248			HTTPStatusCode: res.StatusCode,
160249		},
160250	}
160251	target := &ret
160252	if err := gensupport.DecodeResponse(target, res); err != nil {
160253		return nil, err
160254	}
160255	return ret, nil
160256	// {
160257	//   "description": "Deletes the specified subnetwork.",
160258	//   "httpMethod": "DELETE",
160259	//   "id": "compute.subnetworks.delete",
160260	//   "parameterOrder": [
160261	//     "project",
160262	//     "region",
160263	//     "subnetwork"
160264	//   ],
160265	//   "parameters": {
160266	//     "project": {
160267	//       "description": "Project ID for this request.",
160268	//       "location": "path",
160269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160270	//       "required": true,
160271	//       "type": "string"
160272	//     },
160273	//     "region": {
160274	//       "description": "Name of the region scoping this request.",
160275	//       "location": "path",
160276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160277	//       "required": true,
160278	//       "type": "string"
160279	//     },
160280	//     "requestId": {
160281	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160282	//       "location": "query",
160283	//       "type": "string"
160284	//     },
160285	//     "subnetwork": {
160286	//       "description": "Name of the Subnetwork resource to delete.",
160287	//       "location": "path",
160288	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160289	//       "required": true,
160290	//       "type": "string"
160291	//     }
160292	//   },
160293	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
160294	//   "response": {
160295	//     "$ref": "Operation"
160296	//   },
160297	//   "scopes": [
160298	//     "https://www.googleapis.com/auth/cloud-platform",
160299	//     "https://www.googleapis.com/auth/compute"
160300	//   ]
160301	// }
160302
160303}
160304
160305// method id "compute.subnetworks.expandIpCidrRange":
160306
160307type SubnetworksExpandIpCidrRangeCall struct {
160308	s                                   *Service
160309	project                             string
160310	region                              string
160311	subnetwork                          string
160312	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
160313	urlParams_                          gensupport.URLParams
160314	ctx_                                context.Context
160315	header_                             http.Header
160316}
160317
160318// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
160319// specified value.
160320func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
160321	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160322	c.project = project
160323	c.region = region
160324	c.subnetwork = subnetwork
160325	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
160326	return c
160327}
160328
160329// RequestId sets the optional parameter "requestId": An optional
160330// request ID to identify requests. Specify a unique request ID so that
160331// if you must retry your request, the server will know to ignore the
160332// request if it has already been completed.
160333//
160334// For example, consider a situation where you make an initial request
160335// and the request times out. If you make the request again with the
160336// same request ID, the server can check if original operation with the
160337// same request ID was received, and if so, will ignore the second
160338// request. This prevents clients from accidentally creating duplicate
160339// commitments.
160340//
160341// The request ID must be a valid UUID with the exception that zero UUID
160342// is not supported (00000000-0000-0000-0000-000000000000).
160343func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
160344	c.urlParams_.Set("requestId", requestId)
160345	return c
160346}
160347
160348// Fields allows partial responses to be retrieved. See
160349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160350// for more information.
160351func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
160352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160353	return c
160354}
160355
160356// Context sets the context to be used in this call's Do method. Any
160357// pending HTTP request will be aborted if the provided context is
160358// canceled.
160359func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
160360	c.ctx_ = ctx
160361	return c
160362}
160363
160364// Header returns an http.Header that can be modified by the caller to
160365// add HTTP headers to the request.
160366func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
160367	if c.header_ == nil {
160368		c.header_ = make(http.Header)
160369	}
160370	return c.header_
160371}
160372
160373func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
160374	reqHeaders := make(http.Header)
160375	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
160376	for k, v := range c.header_ {
160377		reqHeaders[k] = v
160378	}
160379	reqHeaders.Set("User-Agent", c.s.userAgent())
160380	var body io.Reader = nil
160381	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
160382	if err != nil {
160383		return nil, err
160384	}
160385	reqHeaders.Set("Content-Type", "application/json")
160386	c.urlParams_.Set("alt", alt)
160387	c.urlParams_.Set("prettyPrint", "false")
160388	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
160389	urls += "?" + c.urlParams_.Encode()
160390	req, err := http.NewRequest("POST", urls, body)
160391	if err != nil {
160392		return nil, err
160393	}
160394	req.Header = reqHeaders
160395	googleapi.Expand(req.URL, map[string]string{
160396		"project":    c.project,
160397		"region":     c.region,
160398		"subnetwork": c.subnetwork,
160399	})
160400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160401}
160402
160403// Do executes the "compute.subnetworks.expandIpCidrRange" call.
160404// Exactly one of *Operation or error will be non-nil. Any non-2xx
160405// status code is an error. Response headers are in either
160406// *Operation.ServerResponse.Header or (if a response was returned at
160407// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160408// to check whether the returned error was because
160409// http.StatusNotModified was returned.
160410func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160411	gensupport.SetOptions(c.urlParams_, opts...)
160412	res, err := c.doRequest("json")
160413	if res != nil && res.StatusCode == http.StatusNotModified {
160414		if res.Body != nil {
160415			res.Body.Close()
160416		}
160417		return nil, &googleapi.Error{
160418			Code:   res.StatusCode,
160419			Header: res.Header,
160420		}
160421	}
160422	if err != nil {
160423		return nil, err
160424	}
160425	defer googleapi.CloseBody(res)
160426	if err := googleapi.CheckResponse(res); err != nil {
160427		return nil, err
160428	}
160429	ret := &Operation{
160430		ServerResponse: googleapi.ServerResponse{
160431			Header:         res.Header,
160432			HTTPStatusCode: res.StatusCode,
160433		},
160434	}
160435	target := &ret
160436	if err := gensupport.DecodeResponse(target, res); err != nil {
160437		return nil, err
160438	}
160439	return ret, nil
160440	// {
160441	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
160442	//   "httpMethod": "POST",
160443	//   "id": "compute.subnetworks.expandIpCidrRange",
160444	//   "parameterOrder": [
160445	//     "project",
160446	//     "region",
160447	//     "subnetwork"
160448	//   ],
160449	//   "parameters": {
160450	//     "project": {
160451	//       "description": "Project ID for this request.",
160452	//       "location": "path",
160453	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160454	//       "required": true,
160455	//       "type": "string"
160456	//     },
160457	//     "region": {
160458	//       "description": "Name of the region scoping this request.",
160459	//       "location": "path",
160460	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160461	//       "required": true,
160462	//       "type": "string"
160463	//     },
160464	//     "requestId": {
160465	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160466	//       "location": "query",
160467	//       "type": "string"
160468	//     },
160469	//     "subnetwork": {
160470	//       "description": "Name of the Subnetwork resource to update.",
160471	//       "location": "path",
160472	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160473	//       "required": true,
160474	//       "type": "string"
160475	//     }
160476	//   },
160477	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
160478	//   "request": {
160479	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
160480	//   },
160481	//   "response": {
160482	//     "$ref": "Operation"
160483	//   },
160484	//   "scopes": [
160485	//     "https://www.googleapis.com/auth/cloud-platform",
160486	//     "https://www.googleapis.com/auth/compute"
160487	//   ]
160488	// }
160489
160490}
160491
160492// method id "compute.subnetworks.get":
160493
160494type SubnetworksGetCall struct {
160495	s            *Service
160496	project      string
160497	region       string
160498	subnetwork   string
160499	urlParams_   gensupport.URLParams
160500	ifNoneMatch_ string
160501	ctx_         context.Context
160502	header_      http.Header
160503}
160504
160505// Get: Returns the specified subnetwork. Gets a list of available
160506// subnetworks list() request.
160507func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
160508	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160509	c.project = project
160510	c.region = region
160511	c.subnetwork = subnetwork
160512	return c
160513}
160514
160515// Fields allows partial responses to be retrieved. See
160516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160517// for more information.
160518func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
160519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160520	return c
160521}
160522
160523// IfNoneMatch sets the optional parameter which makes the operation
160524// fail if the object's ETag matches the given value. This is useful for
160525// getting updates only after the object has changed since the last
160526// request. Use googleapi.IsNotModified to check whether the response
160527// error from Do is the result of In-None-Match.
160528func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
160529	c.ifNoneMatch_ = entityTag
160530	return c
160531}
160532
160533// Context sets the context to be used in this call's Do method. Any
160534// pending HTTP request will be aborted if the provided context is
160535// canceled.
160536func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
160537	c.ctx_ = ctx
160538	return c
160539}
160540
160541// Header returns an http.Header that can be modified by the caller to
160542// add HTTP headers to the request.
160543func (c *SubnetworksGetCall) Header() http.Header {
160544	if c.header_ == nil {
160545		c.header_ = make(http.Header)
160546	}
160547	return c.header_
160548}
160549
160550func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
160551	reqHeaders := make(http.Header)
160552	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
160553	for k, v := range c.header_ {
160554		reqHeaders[k] = v
160555	}
160556	reqHeaders.Set("User-Agent", c.s.userAgent())
160557	if c.ifNoneMatch_ != "" {
160558		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160559	}
160560	var body io.Reader = nil
160561	c.urlParams_.Set("alt", alt)
160562	c.urlParams_.Set("prettyPrint", "false")
160563	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
160564	urls += "?" + c.urlParams_.Encode()
160565	req, err := http.NewRequest("GET", urls, body)
160566	if err != nil {
160567		return nil, err
160568	}
160569	req.Header = reqHeaders
160570	googleapi.Expand(req.URL, map[string]string{
160571		"project":    c.project,
160572		"region":     c.region,
160573		"subnetwork": c.subnetwork,
160574	})
160575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160576}
160577
160578// Do executes the "compute.subnetworks.get" call.
160579// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
160580// status code is an error. Response headers are in either
160581// *Subnetwork.ServerResponse.Header or (if a response was returned at
160582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160583// to check whether the returned error was because
160584// http.StatusNotModified was returned.
160585func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
160586	gensupport.SetOptions(c.urlParams_, opts...)
160587	res, err := c.doRequest("json")
160588	if res != nil && res.StatusCode == http.StatusNotModified {
160589		if res.Body != nil {
160590			res.Body.Close()
160591		}
160592		return nil, &googleapi.Error{
160593			Code:   res.StatusCode,
160594			Header: res.Header,
160595		}
160596	}
160597	if err != nil {
160598		return nil, err
160599	}
160600	defer googleapi.CloseBody(res)
160601	if err := googleapi.CheckResponse(res); err != nil {
160602		return nil, err
160603	}
160604	ret := &Subnetwork{
160605		ServerResponse: googleapi.ServerResponse{
160606			Header:         res.Header,
160607			HTTPStatusCode: res.StatusCode,
160608		},
160609	}
160610	target := &ret
160611	if err := gensupport.DecodeResponse(target, res); err != nil {
160612		return nil, err
160613	}
160614	return ret, nil
160615	// {
160616	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
160617	//   "httpMethod": "GET",
160618	//   "id": "compute.subnetworks.get",
160619	//   "parameterOrder": [
160620	//     "project",
160621	//     "region",
160622	//     "subnetwork"
160623	//   ],
160624	//   "parameters": {
160625	//     "project": {
160626	//       "description": "Project ID for this request.",
160627	//       "location": "path",
160628	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160629	//       "required": true,
160630	//       "type": "string"
160631	//     },
160632	//     "region": {
160633	//       "description": "Name of the region scoping this request.",
160634	//       "location": "path",
160635	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160636	//       "required": true,
160637	//       "type": "string"
160638	//     },
160639	//     "subnetwork": {
160640	//       "description": "Name of the Subnetwork resource to return.",
160641	//       "location": "path",
160642	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160643	//       "required": true,
160644	//       "type": "string"
160645	//     }
160646	//   },
160647	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
160648	//   "response": {
160649	//     "$ref": "Subnetwork"
160650	//   },
160651	//   "scopes": [
160652	//     "https://www.googleapis.com/auth/cloud-platform",
160653	//     "https://www.googleapis.com/auth/compute",
160654	//     "https://www.googleapis.com/auth/compute.readonly"
160655	//   ]
160656	// }
160657
160658}
160659
160660// method id "compute.subnetworks.getIamPolicy":
160661
160662type SubnetworksGetIamPolicyCall struct {
160663	s            *Service
160664	project      string
160665	region       string
160666	resource     string
160667	urlParams_   gensupport.URLParams
160668	ifNoneMatch_ string
160669	ctx_         context.Context
160670	header_      http.Header
160671}
160672
160673// GetIamPolicy: Gets the access control policy for a resource. May be
160674// empty if no such policy or resource exists.
160675func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
160676	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160677	c.project = project
160678	c.region = region
160679	c.resource = resource
160680	return c
160681}
160682
160683// OptionsRequestedPolicyVersion sets the optional parameter
160684// "optionsRequestedPolicyVersion": Requested IAM Policy version.
160685func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
160686	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
160687	return c
160688}
160689
160690// Fields allows partial responses to be retrieved. See
160691// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160692// for more information.
160693func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
160694	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160695	return c
160696}
160697
160698// IfNoneMatch sets the optional parameter which makes the operation
160699// fail if the object's ETag matches the given value. This is useful for
160700// getting updates only after the object has changed since the last
160701// request. Use googleapi.IsNotModified to check whether the response
160702// error from Do is the result of In-None-Match.
160703func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
160704	c.ifNoneMatch_ = entityTag
160705	return c
160706}
160707
160708// Context sets the context to be used in this call's Do method. Any
160709// pending HTTP request will be aborted if the provided context is
160710// canceled.
160711func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
160712	c.ctx_ = ctx
160713	return c
160714}
160715
160716// Header returns an http.Header that can be modified by the caller to
160717// add HTTP headers to the request.
160718func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
160719	if c.header_ == nil {
160720		c.header_ = make(http.Header)
160721	}
160722	return c.header_
160723}
160724
160725func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
160726	reqHeaders := make(http.Header)
160727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
160728	for k, v := range c.header_ {
160729		reqHeaders[k] = v
160730	}
160731	reqHeaders.Set("User-Agent", c.s.userAgent())
160732	if c.ifNoneMatch_ != "" {
160733		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160734	}
160735	var body io.Reader = nil
160736	c.urlParams_.Set("alt", alt)
160737	c.urlParams_.Set("prettyPrint", "false")
160738	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
160739	urls += "?" + c.urlParams_.Encode()
160740	req, err := http.NewRequest("GET", urls, body)
160741	if err != nil {
160742		return nil, err
160743	}
160744	req.Header = reqHeaders
160745	googleapi.Expand(req.URL, map[string]string{
160746		"project":  c.project,
160747		"region":   c.region,
160748		"resource": c.resource,
160749	})
160750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160751}
160752
160753// Do executes the "compute.subnetworks.getIamPolicy" call.
160754// Exactly one of *Policy or error will be non-nil. Any non-2xx status
160755// code is an error. Response headers are in either
160756// *Policy.ServerResponse.Header or (if a response was returned at all)
160757// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
160758// check whether the returned error was because http.StatusNotModified
160759// was returned.
160760func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
160761	gensupport.SetOptions(c.urlParams_, opts...)
160762	res, err := c.doRequest("json")
160763	if res != nil && res.StatusCode == http.StatusNotModified {
160764		if res.Body != nil {
160765			res.Body.Close()
160766		}
160767		return nil, &googleapi.Error{
160768			Code:   res.StatusCode,
160769			Header: res.Header,
160770		}
160771	}
160772	if err != nil {
160773		return nil, err
160774	}
160775	defer googleapi.CloseBody(res)
160776	if err := googleapi.CheckResponse(res); err != nil {
160777		return nil, err
160778	}
160779	ret := &Policy{
160780		ServerResponse: googleapi.ServerResponse{
160781			Header:         res.Header,
160782			HTTPStatusCode: res.StatusCode,
160783		},
160784	}
160785	target := &ret
160786	if err := gensupport.DecodeResponse(target, res); err != nil {
160787		return nil, err
160788	}
160789	return ret, nil
160790	// {
160791	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
160792	//   "httpMethod": "GET",
160793	//   "id": "compute.subnetworks.getIamPolicy",
160794	//   "parameterOrder": [
160795	//     "project",
160796	//     "region",
160797	//     "resource"
160798	//   ],
160799	//   "parameters": {
160800	//     "optionsRequestedPolicyVersion": {
160801	//       "description": "Requested IAM Policy version.",
160802	//       "format": "int32",
160803	//       "location": "query",
160804	//       "type": "integer"
160805	//     },
160806	//     "project": {
160807	//       "description": "Project ID for this request.",
160808	//       "location": "path",
160809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160810	//       "required": true,
160811	//       "type": "string"
160812	//     },
160813	//     "region": {
160814	//       "description": "The name of the region for this request.",
160815	//       "location": "path",
160816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160817	//       "required": true,
160818	//       "type": "string"
160819	//     },
160820	//     "resource": {
160821	//       "description": "Name or id of the resource for this request.",
160822	//       "location": "path",
160823	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160824	//       "required": true,
160825	//       "type": "string"
160826	//     }
160827	//   },
160828	//   "path": "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
160829	//   "response": {
160830	//     "$ref": "Policy"
160831	//   },
160832	//   "scopes": [
160833	//     "https://www.googleapis.com/auth/cloud-platform",
160834	//     "https://www.googleapis.com/auth/compute",
160835	//     "https://www.googleapis.com/auth/compute.readonly"
160836	//   ]
160837	// }
160838
160839}
160840
160841// method id "compute.subnetworks.insert":
160842
160843type SubnetworksInsertCall struct {
160844	s          *Service
160845	project    string
160846	region     string
160847	subnetwork *Subnetwork
160848	urlParams_ gensupport.URLParams
160849	ctx_       context.Context
160850	header_    http.Header
160851}
160852
160853// Insert: Creates a subnetwork in the specified project using the data
160854// included in the request.
160855func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
160856	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160857	c.project = project
160858	c.region = region
160859	c.subnetwork = subnetwork
160860	return c
160861}
160862
160863// RequestId sets the optional parameter "requestId": An optional
160864// request ID to identify requests. Specify a unique request ID so that
160865// if you must retry your request, the server will know to ignore the
160866// request if it has already been completed.
160867//
160868// For example, consider a situation where you make an initial request
160869// and the request times out. If you make the request again with the
160870// same request ID, the server can check if original operation with the
160871// same request ID was received, and if so, will ignore the second
160872// request. This prevents clients from accidentally creating duplicate
160873// commitments.
160874//
160875// The request ID must be a valid UUID with the exception that zero UUID
160876// is not supported (00000000-0000-0000-0000-000000000000).
160877func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
160878	c.urlParams_.Set("requestId", requestId)
160879	return c
160880}
160881
160882// Fields allows partial responses to be retrieved. See
160883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160884// for more information.
160885func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
160886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160887	return c
160888}
160889
160890// Context sets the context to be used in this call's Do method. Any
160891// pending HTTP request will be aborted if the provided context is
160892// canceled.
160893func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
160894	c.ctx_ = ctx
160895	return c
160896}
160897
160898// Header returns an http.Header that can be modified by the caller to
160899// add HTTP headers to the request.
160900func (c *SubnetworksInsertCall) Header() http.Header {
160901	if c.header_ == nil {
160902		c.header_ = make(http.Header)
160903	}
160904	return c.header_
160905}
160906
160907func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
160908	reqHeaders := make(http.Header)
160909	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
160910	for k, v := range c.header_ {
160911		reqHeaders[k] = v
160912	}
160913	reqHeaders.Set("User-Agent", c.s.userAgent())
160914	var body io.Reader = nil
160915	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
160916	if err != nil {
160917		return nil, err
160918	}
160919	reqHeaders.Set("Content-Type", "application/json")
160920	c.urlParams_.Set("alt", alt)
160921	c.urlParams_.Set("prettyPrint", "false")
160922	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
160923	urls += "?" + c.urlParams_.Encode()
160924	req, err := http.NewRequest("POST", urls, body)
160925	if err != nil {
160926		return nil, err
160927	}
160928	req.Header = reqHeaders
160929	googleapi.Expand(req.URL, map[string]string{
160930		"project": c.project,
160931		"region":  c.region,
160932	})
160933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160934}
160935
160936// Do executes the "compute.subnetworks.insert" call.
160937// Exactly one of *Operation or error will be non-nil. Any non-2xx
160938// status code is an error. Response headers are in either
160939// *Operation.ServerResponse.Header or (if a response was returned at
160940// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160941// to check whether the returned error was because
160942// http.StatusNotModified was returned.
160943func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160944	gensupport.SetOptions(c.urlParams_, opts...)
160945	res, err := c.doRequest("json")
160946	if res != nil && res.StatusCode == http.StatusNotModified {
160947		if res.Body != nil {
160948			res.Body.Close()
160949		}
160950		return nil, &googleapi.Error{
160951			Code:   res.StatusCode,
160952			Header: res.Header,
160953		}
160954	}
160955	if err != nil {
160956		return nil, err
160957	}
160958	defer googleapi.CloseBody(res)
160959	if err := googleapi.CheckResponse(res); err != nil {
160960		return nil, err
160961	}
160962	ret := &Operation{
160963		ServerResponse: googleapi.ServerResponse{
160964			Header:         res.Header,
160965			HTTPStatusCode: res.StatusCode,
160966		},
160967	}
160968	target := &ret
160969	if err := gensupport.DecodeResponse(target, res); err != nil {
160970		return nil, err
160971	}
160972	return ret, nil
160973	// {
160974	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
160975	//   "httpMethod": "POST",
160976	//   "id": "compute.subnetworks.insert",
160977	//   "parameterOrder": [
160978	//     "project",
160979	//     "region"
160980	//   ],
160981	//   "parameters": {
160982	//     "project": {
160983	//       "description": "Project ID for this request.",
160984	//       "location": "path",
160985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160986	//       "required": true,
160987	//       "type": "string"
160988	//     },
160989	//     "region": {
160990	//       "description": "Name of the region scoping this request.",
160991	//       "location": "path",
160992	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160993	//       "required": true,
160994	//       "type": "string"
160995	//     },
160996	//     "requestId": {
160997	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160998	//       "location": "query",
160999	//       "type": "string"
161000	//     }
161001	//   },
161002	//   "path": "{project}/regions/{region}/subnetworks",
161003	//   "request": {
161004	//     "$ref": "Subnetwork"
161005	//   },
161006	//   "response": {
161007	//     "$ref": "Operation"
161008	//   },
161009	//   "scopes": [
161010	//     "https://www.googleapis.com/auth/cloud-platform",
161011	//     "https://www.googleapis.com/auth/compute"
161012	//   ]
161013	// }
161014
161015}
161016
161017// method id "compute.subnetworks.list":
161018
161019type SubnetworksListCall struct {
161020	s            *Service
161021	project      string
161022	region       string
161023	urlParams_   gensupport.URLParams
161024	ifNoneMatch_ string
161025	ctx_         context.Context
161026	header_      http.Header
161027}
161028
161029// List: Retrieves a list of subnetworks available to the specified
161030// project.
161031func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
161032	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161033	c.project = project
161034	c.region = region
161035	return c
161036}
161037
161038// Filter sets the optional parameter "filter": A filter expression that
161039// filters resources listed in the response. The expression must specify
161040// the field name, a comparison operator, and the value that you want to
161041// use for filtering. The value must be a string, a number, or a
161042// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161043// `<`.
161044//
161045// For example, if you are filtering Compute Engine instances, you can
161046// exclude instances named `example-instance` by specifying `name !=
161047// example-instance`.
161048//
161049// You can also filter nested fields. For example, you could specify
161050// `scheduling.automaticRestart = false` to include instances only if
161051// they are not scheduled for automatic restarts. You can use filtering
161052// on nested fields to filter based on resource labels.
161053//
161054// To filter on multiple expressions, provide each separate expression
161055// within parentheses. For example: ``` (scheduling.automaticRestart =
161056// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161057// is an `AND` expression. However, you can include `AND` and `OR`
161058// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161059// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161060// (scheduling.automaticRestart = true) ```
161061func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
161062	c.urlParams_.Set("filter", filter)
161063	return c
161064}
161065
161066// MaxResults sets the optional parameter "maxResults": The maximum
161067// number of results per page that should be returned. If the number of
161068// available results is larger than `maxResults`, Compute Engine returns
161069// a `nextPageToken` that can be used to get the next page of results in
161070// subsequent list requests. Acceptable values are `0` to `500`,
161071// inclusive. (Default: `500`)
161072func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
161073	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161074	return c
161075}
161076
161077// OrderBy sets the optional parameter "orderBy": Sorts list results by
161078// a certain order. By default, results are returned in alphanumerical
161079// order based on the resource name.
161080//
161081// You can also sort results in descending order based on the creation
161082// timestamp using `orderBy="creationTimestamp desc". This sorts
161083// results based on the `creationTimestamp` field in reverse
161084// chronological order (newest result first). Use this to sort resources
161085// like operations so that the newest operation is returned
161086// first.
161087//
161088// Currently, only sorting by `name` or `creationTimestamp desc` is
161089// supported.
161090func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
161091	c.urlParams_.Set("orderBy", orderBy)
161092	return c
161093}
161094
161095// PageToken sets the optional parameter "pageToken": Specifies a page
161096// token to use. Set `pageToken` to the `nextPageToken` returned by a
161097// previous list request to get the next page of results.
161098func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
161099	c.urlParams_.Set("pageToken", pageToken)
161100	return c
161101}
161102
161103// ReturnPartialSuccess sets the optional parameter
161104// "returnPartialSuccess": Opt-in for partial success behavior which
161105// provides partial results in case of failure. The default value is
161106// false and the logic is the same as today.
161107func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall {
161108	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161109	return c
161110}
161111
161112// Fields allows partial responses to be retrieved. See
161113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161114// for more information.
161115func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
161116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161117	return c
161118}
161119
161120// IfNoneMatch sets the optional parameter which makes the operation
161121// fail if the object's ETag matches the given value. This is useful for
161122// getting updates only after the object has changed since the last
161123// request. Use googleapi.IsNotModified to check whether the response
161124// error from Do is the result of In-None-Match.
161125func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
161126	c.ifNoneMatch_ = entityTag
161127	return c
161128}
161129
161130// Context sets the context to be used in this call's Do method. Any
161131// pending HTTP request will be aborted if the provided context is
161132// canceled.
161133func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
161134	c.ctx_ = ctx
161135	return c
161136}
161137
161138// Header returns an http.Header that can be modified by the caller to
161139// add HTTP headers to the request.
161140func (c *SubnetworksListCall) Header() http.Header {
161141	if c.header_ == nil {
161142		c.header_ = make(http.Header)
161143	}
161144	return c.header_
161145}
161146
161147func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
161148	reqHeaders := make(http.Header)
161149	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
161150	for k, v := range c.header_ {
161151		reqHeaders[k] = v
161152	}
161153	reqHeaders.Set("User-Agent", c.s.userAgent())
161154	if c.ifNoneMatch_ != "" {
161155		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161156	}
161157	var body io.Reader = nil
161158	c.urlParams_.Set("alt", alt)
161159	c.urlParams_.Set("prettyPrint", "false")
161160	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
161161	urls += "?" + c.urlParams_.Encode()
161162	req, err := http.NewRequest("GET", urls, body)
161163	if err != nil {
161164		return nil, err
161165	}
161166	req.Header = reqHeaders
161167	googleapi.Expand(req.URL, map[string]string{
161168		"project": c.project,
161169		"region":  c.region,
161170	})
161171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161172}
161173
161174// Do executes the "compute.subnetworks.list" call.
161175// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
161176// status code is an error. Response headers are in either
161177// *SubnetworkList.ServerResponse.Header or (if a response was returned
161178// at all) in error.(*googleapi.Error).Header. Use
161179// googleapi.IsNotModified to check whether the returned error was
161180// because http.StatusNotModified was returned.
161181func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
161182	gensupport.SetOptions(c.urlParams_, opts...)
161183	res, err := c.doRequest("json")
161184	if res != nil && res.StatusCode == http.StatusNotModified {
161185		if res.Body != nil {
161186			res.Body.Close()
161187		}
161188		return nil, &googleapi.Error{
161189			Code:   res.StatusCode,
161190			Header: res.Header,
161191		}
161192	}
161193	if err != nil {
161194		return nil, err
161195	}
161196	defer googleapi.CloseBody(res)
161197	if err := googleapi.CheckResponse(res); err != nil {
161198		return nil, err
161199	}
161200	ret := &SubnetworkList{
161201		ServerResponse: googleapi.ServerResponse{
161202			Header:         res.Header,
161203			HTTPStatusCode: res.StatusCode,
161204		},
161205	}
161206	target := &ret
161207	if err := gensupport.DecodeResponse(target, res); err != nil {
161208		return nil, err
161209	}
161210	return ret, nil
161211	// {
161212	//   "description": "Retrieves a list of subnetworks available to the specified project.",
161213	//   "httpMethod": "GET",
161214	//   "id": "compute.subnetworks.list",
161215	//   "parameterOrder": [
161216	//     "project",
161217	//     "region"
161218	//   ],
161219	//   "parameters": {
161220	//     "filter": {
161221	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161222	//       "location": "query",
161223	//       "type": "string"
161224	//     },
161225	//     "maxResults": {
161226	//       "default": "500",
161227	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161228	//       "format": "uint32",
161229	//       "location": "query",
161230	//       "minimum": "0",
161231	//       "type": "integer"
161232	//     },
161233	//     "orderBy": {
161234	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
161235	//       "location": "query",
161236	//       "type": "string"
161237	//     },
161238	//     "pageToken": {
161239	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161240	//       "location": "query",
161241	//       "type": "string"
161242	//     },
161243	//     "project": {
161244	//       "description": "Project ID for this request.",
161245	//       "location": "path",
161246	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161247	//       "required": true,
161248	//       "type": "string"
161249	//     },
161250	//     "region": {
161251	//       "description": "Name of the region scoping this request.",
161252	//       "location": "path",
161253	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161254	//       "required": true,
161255	//       "type": "string"
161256	//     },
161257	//     "returnPartialSuccess": {
161258	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
161259	//       "location": "query",
161260	//       "type": "boolean"
161261	//     }
161262	//   },
161263	//   "path": "{project}/regions/{region}/subnetworks",
161264	//   "response": {
161265	//     "$ref": "SubnetworkList"
161266	//   },
161267	//   "scopes": [
161268	//     "https://www.googleapis.com/auth/cloud-platform",
161269	//     "https://www.googleapis.com/auth/compute",
161270	//     "https://www.googleapis.com/auth/compute.readonly"
161271	//   ]
161272	// }
161273
161274}
161275
161276// Pages invokes f for each page of results.
161277// A non-nil error returned from f will halt the iteration.
161278// The provided context supersedes any context provided to the Context method.
161279func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
161280	c.ctx_ = ctx
161281	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161282	for {
161283		x, err := c.Do()
161284		if err != nil {
161285			return err
161286		}
161287		if err := f(x); err != nil {
161288			return err
161289		}
161290		if x.NextPageToken == "" {
161291			return nil
161292		}
161293		c.PageToken(x.NextPageToken)
161294	}
161295}
161296
161297// method id "compute.subnetworks.listUsable":
161298
161299type SubnetworksListUsableCall struct {
161300	s            *Service
161301	project      string
161302	urlParams_   gensupport.URLParams
161303	ifNoneMatch_ string
161304	ctx_         context.Context
161305	header_      http.Header
161306}
161307
161308// ListUsable: Retrieves an aggregated list of all usable subnetworks in
161309// the project. The list contains all of the subnetworks in the project
161310// and the subnetworks that were shared by a Shared VPC host project.
161311func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
161312	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161313	c.project = project
161314	return c
161315}
161316
161317// Filter sets the optional parameter "filter": A filter expression that
161318// filters resources listed in the response. The expression must specify
161319// the field name, a comparison operator, and the value that you want to
161320// use for filtering. The value must be a string, a number, or a
161321// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161322// `<`.
161323//
161324// For example, if you are filtering Compute Engine instances, you can
161325// exclude instances named `example-instance` by specifying `name !=
161326// example-instance`.
161327//
161328// You can also filter nested fields. For example, you could specify
161329// `scheduling.automaticRestart = false` to include instances only if
161330// they are not scheduled for automatic restarts. You can use filtering
161331// on nested fields to filter based on resource labels.
161332//
161333// To filter on multiple expressions, provide each separate expression
161334// within parentheses. For example: ``` (scheduling.automaticRestart =
161335// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161336// is an `AND` expression. However, you can include `AND` and `OR`
161337// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161338// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161339// (scheduling.automaticRestart = true) ```
161340func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
161341	c.urlParams_.Set("filter", filter)
161342	return c
161343}
161344
161345// MaxResults sets the optional parameter "maxResults": The maximum
161346// number of results per page that should be returned. If the number of
161347// available results is larger than `maxResults`, Compute Engine returns
161348// a `nextPageToken` that can be used to get the next page of results in
161349// subsequent list requests. Acceptable values are `0` to `500`,
161350// inclusive. (Default: `500`)
161351func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
161352	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161353	return c
161354}
161355
161356// OrderBy sets the optional parameter "orderBy": Sorts list results by
161357// a certain order. By default, results are returned in alphanumerical
161358// order based on the resource name.
161359//
161360// You can also sort results in descending order based on the creation
161361// timestamp using `orderBy="creationTimestamp desc". This sorts
161362// results based on the `creationTimestamp` field in reverse
161363// chronological order (newest result first). Use this to sort resources
161364// like operations so that the newest operation is returned
161365// first.
161366//
161367// Currently, only sorting by `name` or `creationTimestamp desc` is
161368// supported.
161369func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
161370	c.urlParams_.Set("orderBy", orderBy)
161371	return c
161372}
161373
161374// PageToken sets the optional parameter "pageToken": Specifies a page
161375// token to use. Set `pageToken` to the `nextPageToken` returned by a
161376// previous list request to get the next page of results.
161377func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
161378	c.urlParams_.Set("pageToken", pageToken)
161379	return c
161380}
161381
161382// ReturnPartialSuccess sets the optional parameter
161383// "returnPartialSuccess": Opt-in for partial success behavior which
161384// provides partial results in case of failure. The default value is
161385// false and the logic is the same as today.
161386func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall {
161387	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161388	return c
161389}
161390
161391// Fields allows partial responses to be retrieved. See
161392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161393// for more information.
161394func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
161395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161396	return c
161397}
161398
161399// IfNoneMatch sets the optional parameter which makes the operation
161400// fail if the object's ETag matches the given value. This is useful for
161401// getting updates only after the object has changed since the last
161402// request. Use googleapi.IsNotModified to check whether the response
161403// error from Do is the result of In-None-Match.
161404func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
161405	c.ifNoneMatch_ = entityTag
161406	return c
161407}
161408
161409// Context sets the context to be used in this call's Do method. Any
161410// pending HTTP request will be aborted if the provided context is
161411// canceled.
161412func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
161413	c.ctx_ = ctx
161414	return c
161415}
161416
161417// Header returns an http.Header that can be modified by the caller to
161418// add HTTP headers to the request.
161419func (c *SubnetworksListUsableCall) Header() http.Header {
161420	if c.header_ == nil {
161421		c.header_ = make(http.Header)
161422	}
161423	return c.header_
161424}
161425
161426func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
161427	reqHeaders := make(http.Header)
161428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
161429	for k, v := range c.header_ {
161430		reqHeaders[k] = v
161431	}
161432	reqHeaders.Set("User-Agent", c.s.userAgent())
161433	if c.ifNoneMatch_ != "" {
161434		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161435	}
161436	var body io.Reader = nil
161437	c.urlParams_.Set("alt", alt)
161438	c.urlParams_.Set("prettyPrint", "false")
161439	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks/listUsable")
161440	urls += "?" + c.urlParams_.Encode()
161441	req, err := http.NewRequest("GET", urls, body)
161442	if err != nil {
161443		return nil, err
161444	}
161445	req.Header = reqHeaders
161446	googleapi.Expand(req.URL, map[string]string{
161447		"project": c.project,
161448	})
161449	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161450}
161451
161452// Do executes the "compute.subnetworks.listUsable" call.
161453// Exactly one of *UsableSubnetworksAggregatedList or error will be
161454// non-nil. Any non-2xx status code is an error. Response headers are in
161455// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
161456// a response was returned at all) in error.(*googleapi.Error).Header.
161457// Use googleapi.IsNotModified to check whether the returned error was
161458// because http.StatusNotModified was returned.
161459func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
161460	gensupport.SetOptions(c.urlParams_, opts...)
161461	res, err := c.doRequest("json")
161462	if res != nil && res.StatusCode == http.StatusNotModified {
161463		if res.Body != nil {
161464			res.Body.Close()
161465		}
161466		return nil, &googleapi.Error{
161467			Code:   res.StatusCode,
161468			Header: res.Header,
161469		}
161470	}
161471	if err != nil {
161472		return nil, err
161473	}
161474	defer googleapi.CloseBody(res)
161475	if err := googleapi.CheckResponse(res); err != nil {
161476		return nil, err
161477	}
161478	ret := &UsableSubnetworksAggregatedList{
161479		ServerResponse: googleapi.ServerResponse{
161480			Header:         res.Header,
161481			HTTPStatusCode: res.StatusCode,
161482		},
161483	}
161484	target := &ret
161485	if err := gensupport.DecodeResponse(target, res); err != nil {
161486		return nil, err
161487	}
161488	return ret, nil
161489	// {
161490	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project. The list contains all of the subnetworks in the project and the subnetworks that were shared by a Shared VPC host project.",
161491	//   "httpMethod": "GET",
161492	//   "id": "compute.subnetworks.listUsable",
161493	//   "parameterOrder": [
161494	//     "project"
161495	//   ],
161496	//   "parameters": {
161497	//     "filter": {
161498	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161499	//       "location": "query",
161500	//       "type": "string"
161501	//     },
161502	//     "maxResults": {
161503	//       "default": "500",
161504	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161505	//       "format": "uint32",
161506	//       "location": "query",
161507	//       "minimum": "0",
161508	//       "type": "integer"
161509	//     },
161510	//     "orderBy": {
161511	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
161512	//       "location": "query",
161513	//       "type": "string"
161514	//     },
161515	//     "pageToken": {
161516	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161517	//       "location": "query",
161518	//       "type": "string"
161519	//     },
161520	//     "project": {
161521	//       "description": "Project ID for this request.",
161522	//       "location": "path",
161523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161524	//       "required": true,
161525	//       "type": "string"
161526	//     },
161527	//     "returnPartialSuccess": {
161528	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
161529	//       "location": "query",
161530	//       "type": "boolean"
161531	//     }
161532	//   },
161533	//   "path": "{project}/aggregated/subnetworks/listUsable",
161534	//   "response": {
161535	//     "$ref": "UsableSubnetworksAggregatedList"
161536	//   },
161537	//   "scopes": [
161538	//     "https://www.googleapis.com/auth/cloud-platform",
161539	//     "https://www.googleapis.com/auth/compute",
161540	//     "https://www.googleapis.com/auth/compute.readonly"
161541	//   ]
161542	// }
161543
161544}
161545
161546// Pages invokes f for each page of results.
161547// A non-nil error returned from f will halt the iteration.
161548// The provided context supersedes any context provided to the Context method.
161549func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
161550	c.ctx_ = ctx
161551	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161552	for {
161553		x, err := c.Do()
161554		if err != nil {
161555			return err
161556		}
161557		if err := f(x); err != nil {
161558			return err
161559		}
161560		if x.NextPageToken == "" {
161561			return nil
161562		}
161563		c.PageToken(x.NextPageToken)
161564	}
161565}
161566
161567// method id "compute.subnetworks.patch":
161568
161569type SubnetworksPatchCall struct {
161570	s           *Service
161571	project     string
161572	region      string
161573	subnetwork  string
161574	subnetwork2 *Subnetwork
161575	urlParams_  gensupport.URLParams
161576	ctx_        context.Context
161577	header_     http.Header
161578}
161579
161580// Patch: Patches the specified subnetwork with the data included in the
161581// request. Only certain fields can up updated with a patch request as
161582// indicated in the field descriptions. You must specify the current
161583// fingerprint of the subnetwork resource being patched.
161584func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
161585	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161586	c.project = project
161587	c.region = region
161588	c.subnetwork = subnetwork
161589	c.subnetwork2 = subnetwork2
161590	return c
161591}
161592
161593// DrainTimeoutSeconds sets the optional parameter
161594// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
161595// seconds on the amount of time allowed to drain connections from the
161596// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
161597// timeout is only applicable when the following conditions are true: -
161598// the subnetwork being patched has purpose =
161599// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
161600// = BACKUP - the patch request is setting the role to ACTIVE. Note that
161601// after this patch operation the roles of the ACTIVE and BACKUP
161602// subnetworks will be swapped.
161603func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
161604	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
161605	return c
161606}
161607
161608// RequestId sets the optional parameter "requestId": An optional
161609// request ID to identify requests. Specify a unique request ID so that
161610// if you must retry your request, the server will know to ignore the
161611// request if it has already been completed.
161612//
161613// For example, consider a situation where you make an initial request
161614// and the request times out. If you make the request again with the
161615// same request ID, the server can check if original operation with the
161616// same request ID was received, and if so, will ignore the second
161617// request. This prevents clients from accidentally creating duplicate
161618// commitments.
161619//
161620// The request ID must be a valid UUID with the exception that zero UUID
161621// is not supported (00000000-0000-0000-0000-000000000000).
161622func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
161623	c.urlParams_.Set("requestId", requestId)
161624	return c
161625}
161626
161627// Fields allows partial responses to be retrieved. See
161628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161629// for more information.
161630func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
161631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161632	return c
161633}
161634
161635// Context sets the context to be used in this call's Do method. Any
161636// pending HTTP request will be aborted if the provided context is
161637// canceled.
161638func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
161639	c.ctx_ = ctx
161640	return c
161641}
161642
161643// Header returns an http.Header that can be modified by the caller to
161644// add HTTP headers to the request.
161645func (c *SubnetworksPatchCall) Header() http.Header {
161646	if c.header_ == nil {
161647		c.header_ = make(http.Header)
161648	}
161649	return c.header_
161650}
161651
161652func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
161653	reqHeaders := make(http.Header)
161654	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
161655	for k, v := range c.header_ {
161656		reqHeaders[k] = v
161657	}
161658	reqHeaders.Set("User-Agent", c.s.userAgent())
161659	var body io.Reader = nil
161660	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
161661	if err != nil {
161662		return nil, err
161663	}
161664	reqHeaders.Set("Content-Type", "application/json")
161665	c.urlParams_.Set("alt", alt)
161666	c.urlParams_.Set("prettyPrint", "false")
161667	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
161668	urls += "?" + c.urlParams_.Encode()
161669	req, err := http.NewRequest("PATCH", urls, body)
161670	if err != nil {
161671		return nil, err
161672	}
161673	req.Header = reqHeaders
161674	googleapi.Expand(req.URL, map[string]string{
161675		"project":    c.project,
161676		"region":     c.region,
161677		"subnetwork": c.subnetwork,
161678	})
161679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161680}
161681
161682// Do executes the "compute.subnetworks.patch" call.
161683// Exactly one of *Operation or error will be non-nil. Any non-2xx
161684// status code is an error. Response headers are in either
161685// *Operation.ServerResponse.Header or (if a response was returned at
161686// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161687// to check whether the returned error was because
161688// http.StatusNotModified was returned.
161689func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161690	gensupport.SetOptions(c.urlParams_, opts...)
161691	res, err := c.doRequest("json")
161692	if res != nil && res.StatusCode == http.StatusNotModified {
161693		if res.Body != nil {
161694			res.Body.Close()
161695		}
161696		return nil, &googleapi.Error{
161697			Code:   res.StatusCode,
161698			Header: res.Header,
161699		}
161700	}
161701	if err != nil {
161702		return nil, err
161703	}
161704	defer googleapi.CloseBody(res)
161705	if err := googleapi.CheckResponse(res); err != nil {
161706		return nil, err
161707	}
161708	ret := &Operation{
161709		ServerResponse: googleapi.ServerResponse{
161710			Header:         res.Header,
161711			HTTPStatusCode: res.StatusCode,
161712		},
161713	}
161714	target := &ret
161715	if err := gensupport.DecodeResponse(target, res); err != nil {
161716		return nil, err
161717	}
161718	return ret, nil
161719	// {
161720	//   "description": "Patches the specified subnetwork with the data included in the request. Only certain fields can up updated with a patch request as indicated in the field descriptions. You must specify the current fingerprint of the subnetwork resource being patched.",
161721	//   "httpMethod": "PATCH",
161722	//   "id": "compute.subnetworks.patch",
161723	//   "parameterOrder": [
161724	//     "project",
161725	//     "region",
161726	//     "subnetwork"
161727	//   ],
161728	//   "parameters": {
161729	//     "drainTimeoutSeconds": {
161730	//       "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.",
161731	//       "format": "int32",
161732	//       "location": "query",
161733	//       "type": "integer"
161734	//     },
161735	//     "project": {
161736	//       "description": "Project ID for this request.",
161737	//       "location": "path",
161738	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161739	//       "required": true,
161740	//       "type": "string"
161741	//     },
161742	//     "region": {
161743	//       "description": "Name of the region scoping this request.",
161744	//       "location": "path",
161745	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161746	//       "required": true,
161747	//       "type": "string"
161748	//     },
161749	//     "requestId": {
161750	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161751	//       "location": "query",
161752	//       "type": "string"
161753	//     },
161754	//     "subnetwork": {
161755	//       "description": "Name of the Subnetwork resource to patch.",
161756	//       "location": "path",
161757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161758	//       "required": true,
161759	//       "type": "string"
161760	//     }
161761	//   },
161762	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
161763	//   "request": {
161764	//     "$ref": "Subnetwork"
161765	//   },
161766	//   "response": {
161767	//     "$ref": "Operation"
161768	//   },
161769	//   "scopes": [
161770	//     "https://www.googleapis.com/auth/cloud-platform",
161771	//     "https://www.googleapis.com/auth/compute"
161772	//   ]
161773	// }
161774
161775}
161776
161777// method id "compute.subnetworks.setIamPolicy":
161778
161779type SubnetworksSetIamPolicyCall struct {
161780	s                      *Service
161781	project                string
161782	region                 string
161783	resource               string
161784	regionsetpolicyrequest *RegionSetPolicyRequest
161785	urlParams_             gensupport.URLParams
161786	ctx_                   context.Context
161787	header_                http.Header
161788}
161789
161790// SetIamPolicy: Sets the access control policy on the specified
161791// resource. Replaces any existing policy.
161792func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
161793	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161794	c.project = project
161795	c.region = region
161796	c.resource = resource
161797	c.regionsetpolicyrequest = regionsetpolicyrequest
161798	return c
161799}
161800
161801// Fields allows partial responses to be retrieved. See
161802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161803// for more information.
161804func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
161805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161806	return c
161807}
161808
161809// Context sets the context to be used in this call's Do method. Any
161810// pending HTTP request will be aborted if the provided context is
161811// canceled.
161812func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
161813	c.ctx_ = ctx
161814	return c
161815}
161816
161817// Header returns an http.Header that can be modified by the caller to
161818// add HTTP headers to the request.
161819func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
161820	if c.header_ == nil {
161821		c.header_ = make(http.Header)
161822	}
161823	return c.header_
161824}
161825
161826func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
161827	reqHeaders := make(http.Header)
161828	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
161829	for k, v := range c.header_ {
161830		reqHeaders[k] = v
161831	}
161832	reqHeaders.Set("User-Agent", c.s.userAgent())
161833	var body io.Reader = nil
161834	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
161835	if err != nil {
161836		return nil, err
161837	}
161838	reqHeaders.Set("Content-Type", "application/json")
161839	c.urlParams_.Set("alt", alt)
161840	c.urlParams_.Set("prettyPrint", "false")
161841	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
161842	urls += "?" + c.urlParams_.Encode()
161843	req, err := http.NewRequest("POST", urls, body)
161844	if err != nil {
161845		return nil, err
161846	}
161847	req.Header = reqHeaders
161848	googleapi.Expand(req.URL, map[string]string{
161849		"project":  c.project,
161850		"region":   c.region,
161851		"resource": c.resource,
161852	})
161853	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161854}
161855
161856// Do executes the "compute.subnetworks.setIamPolicy" call.
161857// Exactly one of *Policy or error will be non-nil. Any non-2xx status
161858// code is an error. Response headers are in either
161859// *Policy.ServerResponse.Header or (if a response was returned at all)
161860// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
161861// check whether the returned error was because http.StatusNotModified
161862// was returned.
161863func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
161864	gensupport.SetOptions(c.urlParams_, opts...)
161865	res, err := c.doRequest("json")
161866	if res != nil && res.StatusCode == http.StatusNotModified {
161867		if res.Body != nil {
161868			res.Body.Close()
161869		}
161870		return nil, &googleapi.Error{
161871			Code:   res.StatusCode,
161872			Header: res.Header,
161873		}
161874	}
161875	if err != nil {
161876		return nil, err
161877	}
161878	defer googleapi.CloseBody(res)
161879	if err := googleapi.CheckResponse(res); err != nil {
161880		return nil, err
161881	}
161882	ret := &Policy{
161883		ServerResponse: googleapi.ServerResponse{
161884			Header:         res.Header,
161885			HTTPStatusCode: res.StatusCode,
161886		},
161887	}
161888	target := &ret
161889	if err := gensupport.DecodeResponse(target, res); err != nil {
161890		return nil, err
161891	}
161892	return ret, nil
161893	// {
161894	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
161895	//   "httpMethod": "POST",
161896	//   "id": "compute.subnetworks.setIamPolicy",
161897	//   "parameterOrder": [
161898	//     "project",
161899	//     "region",
161900	//     "resource"
161901	//   ],
161902	//   "parameters": {
161903	//     "project": {
161904	//       "description": "Project ID for this request.",
161905	//       "location": "path",
161906	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161907	//       "required": true,
161908	//       "type": "string"
161909	//     },
161910	//     "region": {
161911	//       "description": "The name of the region for this request.",
161912	//       "location": "path",
161913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161914	//       "required": true,
161915	//       "type": "string"
161916	//     },
161917	//     "resource": {
161918	//       "description": "Name or id of the resource for this request.",
161919	//       "location": "path",
161920	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161921	//       "required": true,
161922	//       "type": "string"
161923	//     }
161924	//   },
161925	//   "path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
161926	//   "request": {
161927	//     "$ref": "RegionSetPolicyRequest"
161928	//   },
161929	//   "response": {
161930	//     "$ref": "Policy"
161931	//   },
161932	//   "scopes": [
161933	//     "https://www.googleapis.com/auth/cloud-platform",
161934	//     "https://www.googleapis.com/auth/compute"
161935	//   ]
161936	// }
161937
161938}
161939
161940// method id "compute.subnetworks.setPrivateIpGoogleAccess":
161941
161942type SubnetworksSetPrivateIpGoogleAccessCall struct {
161943	s                                          *Service
161944	project                                    string
161945	region                                     string
161946	subnetwork                                 string
161947	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
161948	urlParams_                                 gensupport.URLParams
161949	ctx_                                       context.Context
161950	header_                                    http.Header
161951}
161952
161953// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
161954// Google services without assigning external IP addresses through
161955// Private Google Access.
161956func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
161957	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161958	c.project = project
161959	c.region = region
161960	c.subnetwork = subnetwork
161961	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
161962	return c
161963}
161964
161965// RequestId sets the optional parameter "requestId": An optional
161966// request ID to identify requests. Specify a unique request ID so that
161967// if you must retry your request, the server will know to ignore the
161968// request if it has already been completed.
161969//
161970// For example, consider a situation where you make an initial request
161971// and the request times out. If you make the request again with the
161972// same request ID, the server can check if original operation with the
161973// same request ID was received, and if so, will ignore the second
161974// request. This prevents clients from accidentally creating duplicate
161975// commitments.
161976//
161977// The request ID must be a valid UUID with the exception that zero UUID
161978// is not supported (00000000-0000-0000-0000-000000000000).
161979func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
161980	c.urlParams_.Set("requestId", requestId)
161981	return c
161982}
161983
161984// Fields allows partial responses to be retrieved. See
161985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161986// for more information.
161987func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
161988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161989	return c
161990}
161991
161992// Context sets the context to be used in this call's Do method. Any
161993// pending HTTP request will be aborted if the provided context is
161994// canceled.
161995func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
161996	c.ctx_ = ctx
161997	return c
161998}
161999
162000// Header returns an http.Header that can be modified by the caller to
162001// add HTTP headers to the request.
162002func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
162003	if c.header_ == nil {
162004		c.header_ = make(http.Header)
162005	}
162006	return c.header_
162007}
162008
162009func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
162010	reqHeaders := make(http.Header)
162011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
162012	for k, v := range c.header_ {
162013		reqHeaders[k] = v
162014	}
162015	reqHeaders.Set("User-Agent", c.s.userAgent())
162016	var body io.Reader = nil
162017	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
162018	if err != nil {
162019		return nil, err
162020	}
162021	reqHeaders.Set("Content-Type", "application/json")
162022	c.urlParams_.Set("alt", alt)
162023	c.urlParams_.Set("prettyPrint", "false")
162024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
162025	urls += "?" + c.urlParams_.Encode()
162026	req, err := http.NewRequest("POST", urls, body)
162027	if err != nil {
162028		return nil, err
162029	}
162030	req.Header = reqHeaders
162031	googleapi.Expand(req.URL, map[string]string{
162032		"project":    c.project,
162033		"region":     c.region,
162034		"subnetwork": c.subnetwork,
162035	})
162036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162037}
162038
162039// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
162040// Exactly one of *Operation or error will be non-nil. Any non-2xx
162041// status code is an error. Response headers are in either
162042// *Operation.ServerResponse.Header or (if a response was returned at
162043// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162044// to check whether the returned error was because
162045// http.StatusNotModified was returned.
162046func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162047	gensupport.SetOptions(c.urlParams_, opts...)
162048	res, err := c.doRequest("json")
162049	if res != nil && res.StatusCode == http.StatusNotModified {
162050		if res.Body != nil {
162051			res.Body.Close()
162052		}
162053		return nil, &googleapi.Error{
162054			Code:   res.StatusCode,
162055			Header: res.Header,
162056		}
162057	}
162058	if err != nil {
162059		return nil, err
162060	}
162061	defer googleapi.CloseBody(res)
162062	if err := googleapi.CheckResponse(res); err != nil {
162063		return nil, err
162064	}
162065	ret := &Operation{
162066		ServerResponse: googleapi.ServerResponse{
162067			Header:         res.Header,
162068			HTTPStatusCode: res.StatusCode,
162069		},
162070	}
162071	target := &ret
162072	if err := gensupport.DecodeResponse(target, res); err != nil {
162073		return nil, err
162074	}
162075	return ret, nil
162076	// {
162077	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
162078	//   "httpMethod": "POST",
162079	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
162080	//   "parameterOrder": [
162081	//     "project",
162082	//     "region",
162083	//     "subnetwork"
162084	//   ],
162085	//   "parameters": {
162086	//     "project": {
162087	//       "description": "Project ID for this request.",
162088	//       "location": "path",
162089	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162090	//       "required": true,
162091	//       "type": "string"
162092	//     },
162093	//     "region": {
162094	//       "description": "Name of the region scoping this request.",
162095	//       "location": "path",
162096	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162097	//       "required": true,
162098	//       "type": "string"
162099	//     },
162100	//     "requestId": {
162101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162102	//       "location": "query",
162103	//       "type": "string"
162104	//     },
162105	//     "subnetwork": {
162106	//       "description": "Name of the Subnetwork resource.",
162107	//       "location": "path",
162108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162109	//       "required": true,
162110	//       "type": "string"
162111	//     }
162112	//   },
162113	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
162114	//   "request": {
162115	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
162116	//   },
162117	//   "response": {
162118	//     "$ref": "Operation"
162119	//   },
162120	//   "scopes": [
162121	//     "https://www.googleapis.com/auth/cloud-platform",
162122	//     "https://www.googleapis.com/auth/compute"
162123	//   ]
162124	// }
162125
162126}
162127
162128// method id "compute.subnetworks.testIamPermissions":
162129
162130type SubnetworksTestIamPermissionsCall struct {
162131	s                      *Service
162132	project                string
162133	region                 string
162134	resource               string
162135	testpermissionsrequest *TestPermissionsRequest
162136	urlParams_             gensupport.URLParams
162137	ctx_                   context.Context
162138	header_                http.Header
162139}
162140
162141// TestIamPermissions: Returns permissions that a caller has on the
162142// specified resource.
162143func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
162144	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162145	c.project = project
162146	c.region = region
162147	c.resource = resource
162148	c.testpermissionsrequest = testpermissionsrequest
162149	return c
162150}
162151
162152// Fields allows partial responses to be retrieved. See
162153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162154// for more information.
162155func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
162156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162157	return c
162158}
162159
162160// Context sets the context to be used in this call's Do method. Any
162161// pending HTTP request will be aborted if the provided context is
162162// canceled.
162163func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
162164	c.ctx_ = ctx
162165	return c
162166}
162167
162168// Header returns an http.Header that can be modified by the caller to
162169// add HTTP headers to the request.
162170func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
162171	if c.header_ == nil {
162172		c.header_ = make(http.Header)
162173	}
162174	return c.header_
162175}
162176
162177func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
162178	reqHeaders := make(http.Header)
162179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
162180	for k, v := range c.header_ {
162181		reqHeaders[k] = v
162182	}
162183	reqHeaders.Set("User-Agent", c.s.userAgent())
162184	var body io.Reader = nil
162185	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
162186	if err != nil {
162187		return nil, err
162188	}
162189	reqHeaders.Set("Content-Type", "application/json")
162190	c.urlParams_.Set("alt", alt)
162191	c.urlParams_.Set("prettyPrint", "false")
162192	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
162193	urls += "?" + c.urlParams_.Encode()
162194	req, err := http.NewRequest("POST", urls, body)
162195	if err != nil {
162196		return nil, err
162197	}
162198	req.Header = reqHeaders
162199	googleapi.Expand(req.URL, map[string]string{
162200		"project":  c.project,
162201		"region":   c.region,
162202		"resource": c.resource,
162203	})
162204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162205}
162206
162207// Do executes the "compute.subnetworks.testIamPermissions" call.
162208// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
162209// non-2xx status code is an error. Response headers are in either
162210// *TestPermissionsResponse.ServerResponse.Header or (if a response was
162211// returned at all) in error.(*googleapi.Error).Header. Use
162212// googleapi.IsNotModified to check whether the returned error was
162213// because http.StatusNotModified was returned.
162214func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
162215	gensupport.SetOptions(c.urlParams_, opts...)
162216	res, err := c.doRequest("json")
162217	if res != nil && res.StatusCode == http.StatusNotModified {
162218		if res.Body != nil {
162219			res.Body.Close()
162220		}
162221		return nil, &googleapi.Error{
162222			Code:   res.StatusCode,
162223			Header: res.Header,
162224		}
162225	}
162226	if err != nil {
162227		return nil, err
162228	}
162229	defer googleapi.CloseBody(res)
162230	if err := googleapi.CheckResponse(res); err != nil {
162231		return nil, err
162232	}
162233	ret := &TestPermissionsResponse{
162234		ServerResponse: googleapi.ServerResponse{
162235			Header:         res.Header,
162236			HTTPStatusCode: res.StatusCode,
162237		},
162238	}
162239	target := &ret
162240	if err := gensupport.DecodeResponse(target, res); err != nil {
162241		return nil, err
162242	}
162243	return ret, nil
162244	// {
162245	//   "description": "Returns permissions that a caller has on the specified resource.",
162246	//   "httpMethod": "POST",
162247	//   "id": "compute.subnetworks.testIamPermissions",
162248	//   "parameterOrder": [
162249	//     "project",
162250	//     "region",
162251	//     "resource"
162252	//   ],
162253	//   "parameters": {
162254	//     "project": {
162255	//       "description": "Project ID for this request.",
162256	//       "location": "path",
162257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162258	//       "required": true,
162259	//       "type": "string"
162260	//     },
162261	//     "region": {
162262	//       "description": "The name of the region for this request.",
162263	//       "location": "path",
162264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162265	//       "required": true,
162266	//       "type": "string"
162267	//     },
162268	//     "resource": {
162269	//       "description": "Name or id of the resource for this request.",
162270	//       "location": "path",
162271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162272	//       "required": true,
162273	//       "type": "string"
162274	//     }
162275	//   },
162276	//   "path": "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
162277	//   "request": {
162278	//     "$ref": "TestPermissionsRequest"
162279	//   },
162280	//   "response": {
162281	//     "$ref": "TestPermissionsResponse"
162282	//   },
162283	//   "scopes": [
162284	//     "https://www.googleapis.com/auth/cloud-platform",
162285	//     "https://www.googleapis.com/auth/compute",
162286	//     "https://www.googleapis.com/auth/compute.readonly"
162287	//   ]
162288	// }
162289
162290}
162291
162292// method id "compute.targetGrpcProxies.delete":
162293
162294type TargetGrpcProxiesDeleteCall struct {
162295	s               *Service
162296	project         string
162297	targetGrpcProxy string
162298	urlParams_      gensupport.URLParams
162299	ctx_            context.Context
162300	header_         http.Header
162301}
162302
162303// Delete: Deletes the specified TargetGrpcProxy in the given scope
162304func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall {
162305	c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162306	c.project = project
162307	c.targetGrpcProxy = targetGrpcProxy
162308	return c
162309}
162310
162311// RequestId sets the optional parameter "requestId": An optional
162312// request ID to identify requests. Specify a unique request ID so that
162313// if you must retry your request, the server will know to ignore the
162314// request if it has already been completed.
162315//
162316// For example, consider a situation where you make an initial request
162317// and the request times out. If you make the request again with the
162318// same request ID, the server can check if original operation with the
162319// same request ID was received, and if so, will ignore the second
162320// request. This prevents clients from accidentally creating duplicate
162321// commitments.
162322//
162323// The request ID must be a valid UUID with the exception that zero UUID
162324// is not supported (00000000-0000-0000-0000-000000000000).
162325func (c *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall {
162326	c.urlParams_.Set("requestId", requestId)
162327	return c
162328}
162329
162330// Fields allows partial responses to be retrieved. See
162331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162332// for more information.
162333func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall {
162334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162335	return c
162336}
162337
162338// Context sets the context to be used in this call's Do method. Any
162339// pending HTTP request will be aborted if the provided context is
162340// canceled.
162341func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall {
162342	c.ctx_ = ctx
162343	return c
162344}
162345
162346// Header returns an http.Header that can be modified by the caller to
162347// add HTTP headers to the request.
162348func (c *TargetGrpcProxiesDeleteCall) Header() http.Header {
162349	if c.header_ == nil {
162350		c.header_ = make(http.Header)
162351	}
162352	return c.header_
162353}
162354
162355func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
162356	reqHeaders := make(http.Header)
162357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
162358	for k, v := range c.header_ {
162359		reqHeaders[k] = v
162360	}
162361	reqHeaders.Set("User-Agent", c.s.userAgent())
162362	var body io.Reader = nil
162363	c.urlParams_.Set("alt", alt)
162364	c.urlParams_.Set("prettyPrint", "false")
162365	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetGrpcProxies/{targetGrpcProxy}")
162366	urls += "?" + c.urlParams_.Encode()
162367	req, err := http.NewRequest("DELETE", urls, body)
162368	if err != nil {
162369		return nil, err
162370	}
162371	req.Header = reqHeaders
162372	googleapi.Expand(req.URL, map[string]string{
162373		"project":         c.project,
162374		"targetGrpcProxy": c.targetGrpcProxy,
162375	})
162376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162377}
162378
162379// Do executes the "compute.targetGrpcProxies.delete" call.
162380// Exactly one of *Operation or error will be non-nil. Any non-2xx
162381// status code is an error. Response headers are in either
162382// *Operation.ServerResponse.Header or (if a response was returned at
162383// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162384// to check whether the returned error was because
162385// http.StatusNotModified was returned.
162386func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162387	gensupport.SetOptions(c.urlParams_, opts...)
162388	res, err := c.doRequest("json")
162389	if res != nil && res.StatusCode == http.StatusNotModified {
162390		if res.Body != nil {
162391			res.Body.Close()
162392		}
162393		return nil, &googleapi.Error{
162394			Code:   res.StatusCode,
162395			Header: res.Header,
162396		}
162397	}
162398	if err != nil {
162399		return nil, err
162400	}
162401	defer googleapi.CloseBody(res)
162402	if err := googleapi.CheckResponse(res); err != nil {
162403		return nil, err
162404	}
162405	ret := &Operation{
162406		ServerResponse: googleapi.ServerResponse{
162407			Header:         res.Header,
162408			HTTPStatusCode: res.StatusCode,
162409		},
162410	}
162411	target := &ret
162412	if err := gensupport.DecodeResponse(target, res); err != nil {
162413		return nil, err
162414	}
162415	return ret, nil
162416	// {
162417	//   "description": "Deletes the specified TargetGrpcProxy in the given scope",
162418	//   "httpMethod": "DELETE",
162419	//   "id": "compute.targetGrpcProxies.delete",
162420	//   "parameterOrder": [
162421	//     "project",
162422	//     "targetGrpcProxy"
162423	//   ],
162424	//   "parameters": {
162425	//     "project": {
162426	//       "description": "Project ID for this request.",
162427	//       "location": "path",
162428	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162429	//       "required": true,
162430	//       "type": "string"
162431	//     },
162432	//     "requestId": {
162433	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162434	//       "location": "query",
162435	//       "type": "string"
162436	//     },
162437	//     "targetGrpcProxy": {
162438	//       "description": "Name of the TargetGrpcProxy resource to delete.",
162439	//       "location": "path",
162440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162441	//       "required": true,
162442	//       "type": "string"
162443	//     }
162444	//   },
162445	//   "path": "{project}/global/targetGrpcProxies/{targetGrpcProxy}",
162446	//   "response": {
162447	//     "$ref": "Operation"
162448	//   },
162449	//   "scopes": [
162450	//     "https://www.googleapis.com/auth/cloud-platform",
162451	//     "https://www.googleapis.com/auth/compute"
162452	//   ]
162453	// }
162454
162455}
162456
162457// method id "compute.targetGrpcProxies.get":
162458
162459type TargetGrpcProxiesGetCall struct {
162460	s               *Service
162461	project         string
162462	targetGrpcProxy string
162463	urlParams_      gensupport.URLParams
162464	ifNoneMatch_    string
162465	ctx_            context.Context
162466	header_         http.Header
162467}
162468
162469// Get: Returns the specified TargetGrpcProxy resource in the given
162470// scope.
162471func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall {
162472	c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162473	c.project = project
162474	c.targetGrpcProxy = targetGrpcProxy
162475	return c
162476}
162477
162478// Fields allows partial responses to be retrieved. See
162479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162480// for more information.
162481func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall {
162482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162483	return c
162484}
162485
162486// IfNoneMatch sets the optional parameter which makes the operation
162487// fail if the object's ETag matches the given value. This is useful for
162488// getting updates only after the object has changed since the last
162489// request. Use googleapi.IsNotModified to check whether the response
162490// error from Do is the result of In-None-Match.
162491func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall {
162492	c.ifNoneMatch_ = entityTag
162493	return c
162494}
162495
162496// Context sets the context to be used in this call's Do method. Any
162497// pending HTTP request will be aborted if the provided context is
162498// canceled.
162499func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall {
162500	c.ctx_ = ctx
162501	return c
162502}
162503
162504// Header returns an http.Header that can be modified by the caller to
162505// add HTTP headers to the request.
162506func (c *TargetGrpcProxiesGetCall) Header() http.Header {
162507	if c.header_ == nil {
162508		c.header_ = make(http.Header)
162509	}
162510	return c.header_
162511}
162512
162513func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) {
162514	reqHeaders := make(http.Header)
162515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
162516	for k, v := range c.header_ {
162517		reqHeaders[k] = v
162518	}
162519	reqHeaders.Set("User-Agent", c.s.userAgent())
162520	if c.ifNoneMatch_ != "" {
162521		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162522	}
162523	var body io.Reader = nil
162524	c.urlParams_.Set("alt", alt)
162525	c.urlParams_.Set("prettyPrint", "false")
162526	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetGrpcProxies/{targetGrpcProxy}")
162527	urls += "?" + c.urlParams_.Encode()
162528	req, err := http.NewRequest("GET", urls, body)
162529	if err != nil {
162530		return nil, err
162531	}
162532	req.Header = reqHeaders
162533	googleapi.Expand(req.URL, map[string]string{
162534		"project":         c.project,
162535		"targetGrpcProxy": c.targetGrpcProxy,
162536	})
162537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162538}
162539
162540// Do executes the "compute.targetGrpcProxies.get" call.
162541// Exactly one of *TargetGrpcProxy or error will be non-nil. Any non-2xx
162542// status code is an error. Response headers are in either
162543// *TargetGrpcProxy.ServerResponse.Header or (if a response was returned
162544// at all) in error.(*googleapi.Error).Header. Use
162545// googleapi.IsNotModified to check whether the returned error was
162546// because http.StatusNotModified was returned.
162547func (c *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) {
162548	gensupport.SetOptions(c.urlParams_, opts...)
162549	res, err := c.doRequest("json")
162550	if res != nil && res.StatusCode == http.StatusNotModified {
162551		if res.Body != nil {
162552			res.Body.Close()
162553		}
162554		return nil, &googleapi.Error{
162555			Code:   res.StatusCode,
162556			Header: res.Header,
162557		}
162558	}
162559	if err != nil {
162560		return nil, err
162561	}
162562	defer googleapi.CloseBody(res)
162563	if err := googleapi.CheckResponse(res); err != nil {
162564		return nil, err
162565	}
162566	ret := &TargetGrpcProxy{
162567		ServerResponse: googleapi.ServerResponse{
162568			Header:         res.Header,
162569			HTTPStatusCode: res.StatusCode,
162570		},
162571	}
162572	target := &ret
162573	if err := gensupport.DecodeResponse(target, res); err != nil {
162574		return nil, err
162575	}
162576	return ret, nil
162577	// {
162578	//   "description": "Returns the specified TargetGrpcProxy resource in the given scope.",
162579	//   "httpMethod": "GET",
162580	//   "id": "compute.targetGrpcProxies.get",
162581	//   "parameterOrder": [
162582	//     "project",
162583	//     "targetGrpcProxy"
162584	//   ],
162585	//   "parameters": {
162586	//     "project": {
162587	//       "description": "Project ID for this request.",
162588	//       "location": "path",
162589	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162590	//       "required": true,
162591	//       "type": "string"
162592	//     },
162593	//     "targetGrpcProxy": {
162594	//       "description": "Name of the TargetGrpcProxy resource to return.",
162595	//       "location": "path",
162596	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162597	//       "required": true,
162598	//       "type": "string"
162599	//     }
162600	//   },
162601	//   "path": "{project}/global/targetGrpcProxies/{targetGrpcProxy}",
162602	//   "response": {
162603	//     "$ref": "TargetGrpcProxy"
162604	//   },
162605	//   "scopes": [
162606	//     "https://www.googleapis.com/auth/cloud-platform",
162607	//     "https://www.googleapis.com/auth/compute",
162608	//     "https://www.googleapis.com/auth/compute.readonly"
162609	//   ]
162610	// }
162611
162612}
162613
162614// method id "compute.targetGrpcProxies.insert":
162615
162616type TargetGrpcProxiesInsertCall struct {
162617	s               *Service
162618	project         string
162619	targetgrpcproxy *TargetGrpcProxy
162620	urlParams_      gensupport.URLParams
162621	ctx_            context.Context
162622	header_         http.Header
162623}
162624
162625// Insert: Creates a TargetGrpcProxy in the specified project in the
162626// given scope using the parameters that are included in the request.
162627func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall {
162628	c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162629	c.project = project
162630	c.targetgrpcproxy = targetgrpcproxy
162631	return c
162632}
162633
162634// RequestId sets the optional parameter "requestId": An optional
162635// request ID to identify requests. Specify a unique request ID so that
162636// if you must retry your request, the server will know to ignore the
162637// request if it has already been completed.
162638//
162639// For example, consider a situation where you make an initial request
162640// and the request times out. If you make the request again with the
162641// same request ID, the server can check if original operation with the
162642// same request ID was received, and if so, will ignore the second
162643// request. This prevents clients from accidentally creating duplicate
162644// commitments.
162645//
162646// The request ID must be a valid UUID with the exception that zero UUID
162647// is not supported (00000000-0000-0000-0000-000000000000).
162648func (c *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall {
162649	c.urlParams_.Set("requestId", requestId)
162650	return c
162651}
162652
162653// Fields allows partial responses to be retrieved. See
162654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162655// for more information.
162656func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall {
162657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162658	return c
162659}
162660
162661// Context sets the context to be used in this call's Do method. Any
162662// pending HTTP request will be aborted if the provided context is
162663// canceled.
162664func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall {
162665	c.ctx_ = ctx
162666	return c
162667}
162668
162669// Header returns an http.Header that can be modified by the caller to
162670// add HTTP headers to the request.
162671func (c *TargetGrpcProxiesInsertCall) Header() http.Header {
162672	if c.header_ == nil {
162673		c.header_ = make(http.Header)
162674	}
162675	return c.header_
162676}
162677
162678func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
162679	reqHeaders := make(http.Header)
162680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
162681	for k, v := range c.header_ {
162682		reqHeaders[k] = v
162683	}
162684	reqHeaders.Set("User-Agent", c.s.userAgent())
162685	var body io.Reader = nil
162686	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
162687	if err != nil {
162688		return nil, err
162689	}
162690	reqHeaders.Set("Content-Type", "application/json")
162691	c.urlParams_.Set("alt", alt)
162692	c.urlParams_.Set("prettyPrint", "false")
162693	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetGrpcProxies")
162694	urls += "?" + c.urlParams_.Encode()
162695	req, err := http.NewRequest("POST", urls, body)
162696	if err != nil {
162697		return nil, err
162698	}
162699	req.Header = reqHeaders
162700	googleapi.Expand(req.URL, map[string]string{
162701		"project": c.project,
162702	})
162703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162704}
162705
162706// Do executes the "compute.targetGrpcProxies.insert" call.
162707// Exactly one of *Operation or error will be non-nil. Any non-2xx
162708// status code is an error. Response headers are in either
162709// *Operation.ServerResponse.Header or (if a response was returned at
162710// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162711// to check whether the returned error was because
162712// http.StatusNotModified was returned.
162713func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162714	gensupport.SetOptions(c.urlParams_, opts...)
162715	res, err := c.doRequest("json")
162716	if res != nil && res.StatusCode == http.StatusNotModified {
162717		if res.Body != nil {
162718			res.Body.Close()
162719		}
162720		return nil, &googleapi.Error{
162721			Code:   res.StatusCode,
162722			Header: res.Header,
162723		}
162724	}
162725	if err != nil {
162726		return nil, err
162727	}
162728	defer googleapi.CloseBody(res)
162729	if err := googleapi.CheckResponse(res); err != nil {
162730		return nil, err
162731	}
162732	ret := &Operation{
162733		ServerResponse: googleapi.ServerResponse{
162734			Header:         res.Header,
162735			HTTPStatusCode: res.StatusCode,
162736		},
162737	}
162738	target := &ret
162739	if err := gensupport.DecodeResponse(target, res); err != nil {
162740		return nil, err
162741	}
162742	return ret, nil
162743	// {
162744	//   "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.",
162745	//   "httpMethod": "POST",
162746	//   "id": "compute.targetGrpcProxies.insert",
162747	//   "parameterOrder": [
162748	//     "project"
162749	//   ],
162750	//   "parameters": {
162751	//     "project": {
162752	//       "description": "Project ID for this request.",
162753	//       "location": "path",
162754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162755	//       "required": true,
162756	//       "type": "string"
162757	//     },
162758	//     "requestId": {
162759	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162760	//       "location": "query",
162761	//       "type": "string"
162762	//     }
162763	//   },
162764	//   "path": "{project}/global/targetGrpcProxies",
162765	//   "request": {
162766	//     "$ref": "TargetGrpcProxy"
162767	//   },
162768	//   "response": {
162769	//     "$ref": "Operation"
162770	//   },
162771	//   "scopes": [
162772	//     "https://www.googleapis.com/auth/cloud-platform",
162773	//     "https://www.googleapis.com/auth/compute"
162774	//   ]
162775	// }
162776
162777}
162778
162779// method id "compute.targetGrpcProxies.list":
162780
162781type TargetGrpcProxiesListCall struct {
162782	s            *Service
162783	project      string
162784	urlParams_   gensupport.URLParams
162785	ifNoneMatch_ string
162786	ctx_         context.Context
162787	header_      http.Header
162788}
162789
162790// List: Lists the TargetGrpcProxies for a project in the given scope.
162791func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall {
162792	c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162793	c.project = project
162794	return c
162795}
162796
162797// Filter sets the optional parameter "filter": A filter expression that
162798// filters resources listed in the response. The expression must specify
162799// the field name, a comparison operator, and the value that you want to
162800// use for filtering. The value must be a string, a number, or a
162801// boolean. The comparison operator must be either `=`, `!=`, `>`, or
162802// `<`.
162803//
162804// For example, if you are filtering Compute Engine instances, you can
162805// exclude instances named `example-instance` by specifying `name !=
162806// example-instance`.
162807//
162808// You can also filter nested fields. For example, you could specify
162809// `scheduling.automaticRestart = false` to include instances only if
162810// they are not scheduled for automatic restarts. You can use filtering
162811// on nested fields to filter based on resource labels.
162812//
162813// To filter on multiple expressions, provide each separate expression
162814// within parentheses. For example: ``` (scheduling.automaticRestart =
162815// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
162816// is an `AND` expression. However, you can include `AND` and `OR`
162817// expressions explicitly. For example: ``` (cpuPlatform = "Intel
162818// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
162819// (scheduling.automaticRestart = true) ```
162820func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall {
162821	c.urlParams_.Set("filter", filter)
162822	return c
162823}
162824
162825// MaxResults sets the optional parameter "maxResults": The maximum
162826// number of results per page that should be returned. If the number of
162827// available results is larger than `maxResults`, Compute Engine returns
162828// a `nextPageToken` that can be used to get the next page of results in
162829// subsequent list requests. Acceptable values are `0` to `500`,
162830// inclusive. (Default: `500`)
162831func (c *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall {
162832	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162833	return c
162834}
162835
162836// OrderBy sets the optional parameter "orderBy": Sorts list results by
162837// a certain order. By default, results are returned in alphanumerical
162838// order based on the resource name.
162839//
162840// You can also sort results in descending order based on the creation
162841// timestamp using `orderBy="creationTimestamp desc". This sorts
162842// results based on the `creationTimestamp` field in reverse
162843// chronological order (newest result first). Use this to sort resources
162844// like operations so that the newest operation is returned
162845// first.
162846//
162847// Currently, only sorting by `name` or `creationTimestamp desc` is
162848// supported.
162849func (c *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall {
162850	c.urlParams_.Set("orderBy", orderBy)
162851	return c
162852}
162853
162854// PageToken sets the optional parameter "pageToken": Specifies a page
162855// token to use. Set `pageToken` to the `nextPageToken` returned by a
162856// previous list request to get the next page of results.
162857func (c *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall {
162858	c.urlParams_.Set("pageToken", pageToken)
162859	return c
162860}
162861
162862// ReturnPartialSuccess sets the optional parameter
162863// "returnPartialSuccess": Opt-in for partial success behavior which
162864// provides partial results in case of failure. The default value is
162865// false and the logic is the same as today.
162866func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall {
162867	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
162868	return c
162869}
162870
162871// Fields allows partial responses to be retrieved. See
162872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162873// for more information.
162874func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall {
162875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162876	return c
162877}
162878
162879// IfNoneMatch sets the optional parameter which makes the operation
162880// fail if the object's ETag matches the given value. This is useful for
162881// getting updates only after the object has changed since the last
162882// request. Use googleapi.IsNotModified to check whether the response
162883// error from Do is the result of In-None-Match.
162884func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall {
162885	c.ifNoneMatch_ = entityTag
162886	return c
162887}
162888
162889// Context sets the context to be used in this call's Do method. Any
162890// pending HTTP request will be aborted if the provided context is
162891// canceled.
162892func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall {
162893	c.ctx_ = ctx
162894	return c
162895}
162896
162897// Header returns an http.Header that can be modified by the caller to
162898// add HTTP headers to the request.
162899func (c *TargetGrpcProxiesListCall) Header() http.Header {
162900	if c.header_ == nil {
162901		c.header_ = make(http.Header)
162902	}
162903	return c.header_
162904}
162905
162906func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) {
162907	reqHeaders := make(http.Header)
162908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
162909	for k, v := range c.header_ {
162910		reqHeaders[k] = v
162911	}
162912	reqHeaders.Set("User-Agent", c.s.userAgent())
162913	if c.ifNoneMatch_ != "" {
162914		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162915	}
162916	var body io.Reader = nil
162917	c.urlParams_.Set("alt", alt)
162918	c.urlParams_.Set("prettyPrint", "false")
162919	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetGrpcProxies")
162920	urls += "?" + c.urlParams_.Encode()
162921	req, err := http.NewRequest("GET", urls, body)
162922	if err != nil {
162923		return nil, err
162924	}
162925	req.Header = reqHeaders
162926	googleapi.Expand(req.URL, map[string]string{
162927		"project": c.project,
162928	})
162929	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162930}
162931
162932// Do executes the "compute.targetGrpcProxies.list" call.
162933// Exactly one of *TargetGrpcProxyList or error will be non-nil. Any
162934// non-2xx status code is an error. Response headers are in either
162935// *TargetGrpcProxyList.ServerResponse.Header or (if a response was
162936// returned at all) in error.(*googleapi.Error).Header. Use
162937// googleapi.IsNotModified to check whether the returned error was
162938// because http.StatusNotModified was returned.
162939func (c *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) {
162940	gensupport.SetOptions(c.urlParams_, opts...)
162941	res, err := c.doRequest("json")
162942	if res != nil && res.StatusCode == http.StatusNotModified {
162943		if res.Body != nil {
162944			res.Body.Close()
162945		}
162946		return nil, &googleapi.Error{
162947			Code:   res.StatusCode,
162948			Header: res.Header,
162949		}
162950	}
162951	if err != nil {
162952		return nil, err
162953	}
162954	defer googleapi.CloseBody(res)
162955	if err := googleapi.CheckResponse(res); err != nil {
162956		return nil, err
162957	}
162958	ret := &TargetGrpcProxyList{
162959		ServerResponse: googleapi.ServerResponse{
162960			Header:         res.Header,
162961			HTTPStatusCode: res.StatusCode,
162962		},
162963	}
162964	target := &ret
162965	if err := gensupport.DecodeResponse(target, res); err != nil {
162966		return nil, err
162967	}
162968	return ret, nil
162969	// {
162970	//   "description": "Lists the TargetGrpcProxies for a project in the given scope.",
162971	//   "httpMethod": "GET",
162972	//   "id": "compute.targetGrpcProxies.list",
162973	//   "parameterOrder": [
162974	//     "project"
162975	//   ],
162976	//   "parameters": {
162977	//     "filter": {
162978	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
162979	//       "location": "query",
162980	//       "type": "string"
162981	//     },
162982	//     "maxResults": {
162983	//       "default": "500",
162984	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
162985	//       "format": "uint32",
162986	//       "location": "query",
162987	//       "minimum": "0",
162988	//       "type": "integer"
162989	//     },
162990	//     "orderBy": {
162991	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
162992	//       "location": "query",
162993	//       "type": "string"
162994	//     },
162995	//     "pageToken": {
162996	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
162997	//       "location": "query",
162998	//       "type": "string"
162999	//     },
163000	//     "project": {
163001	//       "description": "Project ID for this request.",
163002	//       "location": "path",
163003	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163004	//       "required": true,
163005	//       "type": "string"
163006	//     },
163007	//     "returnPartialSuccess": {
163008	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
163009	//       "location": "query",
163010	//       "type": "boolean"
163011	//     }
163012	//   },
163013	//   "path": "{project}/global/targetGrpcProxies",
163014	//   "response": {
163015	//     "$ref": "TargetGrpcProxyList"
163016	//   },
163017	//   "scopes": [
163018	//     "https://www.googleapis.com/auth/cloud-platform",
163019	//     "https://www.googleapis.com/auth/compute",
163020	//     "https://www.googleapis.com/auth/compute.readonly"
163021	//   ]
163022	// }
163023
163024}
163025
163026// Pages invokes f for each page of results.
163027// A non-nil error returned from f will halt the iteration.
163028// The provided context supersedes any context provided to the Context method.
163029func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error {
163030	c.ctx_ = ctx
163031	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163032	for {
163033		x, err := c.Do()
163034		if err != nil {
163035			return err
163036		}
163037		if err := f(x); err != nil {
163038			return err
163039		}
163040		if x.NextPageToken == "" {
163041			return nil
163042		}
163043		c.PageToken(x.NextPageToken)
163044	}
163045}
163046
163047// method id "compute.targetGrpcProxies.testIamPermissions":
163048
163049type TargetGrpcProxiesTestIamPermissionsCall struct {
163050	s                      *Service
163051	project                string
163052	resource               string
163053	testpermissionsrequest *TestPermissionsRequest
163054	urlParams_             gensupport.URLParams
163055	ctx_                   context.Context
163056	header_                http.Header
163057}
163058
163059// TestIamPermissions: Returns permissions that a caller has on the
163060// specified resource.
163061func (r *TargetGrpcProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetGrpcProxiesTestIamPermissionsCall {
163062	c := &TargetGrpcProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163063	c.project = project
163064	c.resource = resource
163065	c.testpermissionsrequest = testpermissionsrequest
163066	return c
163067}
163068
163069// Fields allows partial responses to be retrieved. See
163070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163071// for more information.
163072func (c *TargetGrpcProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesTestIamPermissionsCall {
163073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163074	return c
163075}
163076
163077// Context sets the context to be used in this call's Do method. Any
163078// pending HTTP request will be aborted if the provided context is
163079// canceled.
163080func (c *TargetGrpcProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetGrpcProxiesTestIamPermissionsCall {
163081	c.ctx_ = ctx
163082	return c
163083}
163084
163085// Header returns an http.Header that can be modified by the caller to
163086// add HTTP headers to the request.
163087func (c *TargetGrpcProxiesTestIamPermissionsCall) Header() http.Header {
163088	if c.header_ == nil {
163089		c.header_ = make(http.Header)
163090	}
163091	return c.header_
163092}
163093
163094func (c *TargetGrpcProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
163095	reqHeaders := make(http.Header)
163096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
163097	for k, v := range c.header_ {
163098		reqHeaders[k] = v
163099	}
163100	reqHeaders.Set("User-Agent", c.s.userAgent())
163101	var body io.Reader = nil
163102	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
163103	if err != nil {
163104		return nil, err
163105	}
163106	reqHeaders.Set("Content-Type", "application/json")
163107	c.urlParams_.Set("alt", alt)
163108	c.urlParams_.Set("prettyPrint", "false")
163109	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetGrpcProxies/{resource}/testIamPermissions")
163110	urls += "?" + c.urlParams_.Encode()
163111	req, err := http.NewRequest("POST", urls, body)
163112	if err != nil {
163113		return nil, err
163114	}
163115	req.Header = reqHeaders
163116	googleapi.Expand(req.URL, map[string]string{
163117		"project":  c.project,
163118		"resource": c.resource,
163119	})
163120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163121}
163122
163123// Do executes the "compute.targetGrpcProxies.testIamPermissions" call.
163124// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
163125// non-2xx status code is an error. Response headers are in either
163126// *TestPermissionsResponse.ServerResponse.Header or (if a response was
163127// returned at all) in error.(*googleapi.Error).Header. Use
163128// googleapi.IsNotModified to check whether the returned error was
163129// because http.StatusNotModified was returned.
163130func (c *TargetGrpcProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
163131	gensupport.SetOptions(c.urlParams_, opts...)
163132	res, err := c.doRequest("json")
163133	if res != nil && res.StatusCode == http.StatusNotModified {
163134		if res.Body != nil {
163135			res.Body.Close()
163136		}
163137		return nil, &googleapi.Error{
163138			Code:   res.StatusCode,
163139			Header: res.Header,
163140		}
163141	}
163142	if err != nil {
163143		return nil, err
163144	}
163145	defer googleapi.CloseBody(res)
163146	if err := googleapi.CheckResponse(res); err != nil {
163147		return nil, err
163148	}
163149	ret := &TestPermissionsResponse{
163150		ServerResponse: googleapi.ServerResponse{
163151			Header:         res.Header,
163152			HTTPStatusCode: res.StatusCode,
163153		},
163154	}
163155	target := &ret
163156	if err := gensupport.DecodeResponse(target, res); err != nil {
163157		return nil, err
163158	}
163159	return ret, nil
163160	// {
163161	//   "description": "Returns permissions that a caller has on the specified resource.",
163162	//   "httpMethod": "POST",
163163	//   "id": "compute.targetGrpcProxies.testIamPermissions",
163164	//   "parameterOrder": [
163165	//     "project",
163166	//     "resource"
163167	//   ],
163168	//   "parameters": {
163169	//     "project": {
163170	//       "description": "Project ID for this request.",
163171	//       "location": "path",
163172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163173	//       "required": true,
163174	//       "type": "string"
163175	//     },
163176	//     "resource": {
163177	//       "description": "Name or id of the resource for this request.",
163178	//       "location": "path",
163179	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163180	//       "required": true,
163181	//       "type": "string"
163182	//     }
163183	//   },
163184	//   "path": "{project}/global/targetGrpcProxies/{resource}/testIamPermissions",
163185	//   "request": {
163186	//     "$ref": "TestPermissionsRequest"
163187	//   },
163188	//   "response": {
163189	//     "$ref": "TestPermissionsResponse"
163190	//   },
163191	//   "scopes": [
163192	//     "https://www.googleapis.com/auth/cloud-platform",
163193	//     "https://www.googleapis.com/auth/compute",
163194	//     "https://www.googleapis.com/auth/compute.readonly"
163195	//   ]
163196	// }
163197
163198}
163199
163200// method id "compute.targetHttpProxies.aggregatedList":
163201
163202type TargetHttpProxiesAggregatedListCall struct {
163203	s            *Service
163204	project      string
163205	urlParams_   gensupport.URLParams
163206	ifNoneMatch_ string
163207	ctx_         context.Context
163208	header_      http.Header
163209}
163210
163211// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
163212// regional and global, available to the specified project.
163213func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
163214	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163215	c.project = project
163216	return c
163217}
163218
163219// Filter sets the optional parameter "filter": A filter expression that
163220// filters resources listed in the response. The expression must specify
163221// the field name, a comparison operator, and the value that you want to
163222// use for filtering. The value must be a string, a number, or a
163223// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163224// `<`.
163225//
163226// For example, if you are filtering Compute Engine instances, you can
163227// exclude instances named `example-instance` by specifying `name !=
163228// example-instance`.
163229//
163230// You can also filter nested fields. For example, you could specify
163231// `scheduling.automaticRestart = false` to include instances only if
163232// they are not scheduled for automatic restarts. You can use filtering
163233// on nested fields to filter based on resource labels.
163234//
163235// To filter on multiple expressions, provide each separate expression
163236// within parentheses. For example: ``` (scheduling.automaticRestart =
163237// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
163238// is an `AND` expression. However, you can include `AND` and `OR`
163239// expressions explicitly. For example: ``` (cpuPlatform = "Intel
163240// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
163241// (scheduling.automaticRestart = true) ```
163242func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
163243	c.urlParams_.Set("filter", filter)
163244	return c
163245}
163246
163247// IncludeAllScopes sets the optional parameter "includeAllScopes":
163248// Indicates whether every visible scope for each scope type (zone,
163249// region, global) should be included in the response. For new resource
163250// types added after this field, the flag has no effect as new resource
163251// types will always include every visible scope for each scope type in
163252// response. For resource types which predate this field, if this flag
163253// is omitted or false, only scopes of the scope types where the
163254// resource type is expected to be found will be included.
163255func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
163256	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
163257	return c
163258}
163259
163260// MaxResults sets the optional parameter "maxResults": The maximum
163261// number of results per page that should be returned. If the number of
163262// available results is larger than `maxResults`, Compute Engine returns
163263// a `nextPageToken` that can be used to get the next page of results in
163264// subsequent list requests. Acceptable values are `0` to `500`,
163265// inclusive. (Default: `500`)
163266func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
163267	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163268	return c
163269}
163270
163271// OrderBy sets the optional parameter "orderBy": Sorts list results by
163272// a certain order. By default, results are returned in alphanumerical
163273// order based on the resource name.
163274//
163275// You can also sort results in descending order based on the creation
163276// timestamp using `orderBy="creationTimestamp desc". This sorts
163277// results based on the `creationTimestamp` field in reverse
163278// chronological order (newest result first). Use this to sort resources
163279// like operations so that the newest operation is returned
163280// first.
163281//
163282// Currently, only sorting by `name` or `creationTimestamp desc` is
163283// supported.
163284func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
163285	c.urlParams_.Set("orderBy", orderBy)
163286	return c
163287}
163288
163289// PageToken sets the optional parameter "pageToken": Specifies a page
163290// token to use. Set `pageToken` to the `nextPageToken` returned by a
163291// previous list request to get the next page of results.
163292func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
163293	c.urlParams_.Set("pageToken", pageToken)
163294	return c
163295}
163296
163297// ReturnPartialSuccess sets the optional parameter
163298// "returnPartialSuccess": Opt-in for partial success behavior which
163299// provides partial results in case of failure. The default value is
163300// false and the logic is the same as today.
163301func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall {
163302	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163303	return c
163304}
163305
163306// Fields allows partial responses to be retrieved. See
163307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163308// for more information.
163309func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
163310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163311	return c
163312}
163313
163314// IfNoneMatch sets the optional parameter which makes the operation
163315// fail if the object's ETag matches the given value. This is useful for
163316// getting updates only after the object has changed since the last
163317// request. Use googleapi.IsNotModified to check whether the response
163318// error from Do is the result of In-None-Match.
163319func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
163320	c.ifNoneMatch_ = entityTag
163321	return c
163322}
163323
163324// Context sets the context to be used in this call's Do method. Any
163325// pending HTTP request will be aborted if the provided context is
163326// canceled.
163327func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
163328	c.ctx_ = ctx
163329	return c
163330}
163331
163332// Header returns an http.Header that can be modified by the caller to
163333// add HTTP headers to the request.
163334func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
163335	if c.header_ == nil {
163336		c.header_ = make(http.Header)
163337	}
163338	return c.header_
163339}
163340
163341func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
163342	reqHeaders := make(http.Header)
163343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
163344	for k, v := range c.header_ {
163345		reqHeaders[k] = v
163346	}
163347	reqHeaders.Set("User-Agent", c.s.userAgent())
163348	if c.ifNoneMatch_ != "" {
163349		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163350	}
163351	var body io.Reader = nil
163352	c.urlParams_.Set("alt", alt)
163353	c.urlParams_.Set("prettyPrint", "false")
163354	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpProxies")
163355	urls += "?" + c.urlParams_.Encode()
163356	req, err := http.NewRequest("GET", urls, body)
163357	if err != nil {
163358		return nil, err
163359	}
163360	req.Header = reqHeaders
163361	googleapi.Expand(req.URL, map[string]string{
163362		"project": c.project,
163363	})
163364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163365}
163366
163367// Do executes the "compute.targetHttpProxies.aggregatedList" call.
163368// Exactly one of *TargetHttpProxyAggregatedList or error will be
163369// non-nil. Any non-2xx status code is an error. Response headers are in
163370// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
163371// response was returned at all) in error.(*googleapi.Error).Header. Use
163372// googleapi.IsNotModified to check whether the returned error was
163373// because http.StatusNotModified was returned.
163374func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
163375	gensupport.SetOptions(c.urlParams_, opts...)
163376	res, err := c.doRequest("json")
163377	if res != nil && res.StatusCode == http.StatusNotModified {
163378		if res.Body != nil {
163379			res.Body.Close()
163380		}
163381		return nil, &googleapi.Error{
163382			Code:   res.StatusCode,
163383			Header: res.Header,
163384		}
163385	}
163386	if err != nil {
163387		return nil, err
163388	}
163389	defer googleapi.CloseBody(res)
163390	if err := googleapi.CheckResponse(res); err != nil {
163391		return nil, err
163392	}
163393	ret := &TargetHttpProxyAggregatedList{
163394		ServerResponse: googleapi.ServerResponse{
163395			Header:         res.Header,
163396			HTTPStatusCode: res.StatusCode,
163397		},
163398	}
163399	target := &ret
163400	if err := gensupport.DecodeResponse(target, res); err != nil {
163401		return nil, err
163402	}
163403	return ret, nil
163404	// {
163405	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
163406	//   "httpMethod": "GET",
163407	//   "id": "compute.targetHttpProxies.aggregatedList",
163408	//   "parameterOrder": [
163409	//     "project"
163410	//   ],
163411	//   "parameters": {
163412	//     "filter": {
163413	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
163414	//       "location": "query",
163415	//       "type": "string"
163416	//     },
163417	//     "includeAllScopes": {
163418	//       "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.",
163419	//       "location": "query",
163420	//       "type": "boolean"
163421	//     },
163422	//     "maxResults": {
163423	//       "default": "500",
163424	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163425	//       "format": "uint32",
163426	//       "location": "query",
163427	//       "minimum": "0",
163428	//       "type": "integer"
163429	//     },
163430	//     "orderBy": {
163431	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
163432	//       "location": "query",
163433	//       "type": "string"
163434	//     },
163435	//     "pageToken": {
163436	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163437	//       "location": "query",
163438	//       "type": "string"
163439	//     },
163440	//     "project": {
163441	//       "description": "Name of the project scoping this request.",
163442	//       "location": "path",
163443	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163444	//       "required": true,
163445	//       "type": "string"
163446	//     },
163447	//     "returnPartialSuccess": {
163448	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
163449	//       "location": "query",
163450	//       "type": "boolean"
163451	//     }
163452	//   },
163453	//   "path": "{project}/aggregated/targetHttpProxies",
163454	//   "response": {
163455	//     "$ref": "TargetHttpProxyAggregatedList"
163456	//   },
163457	//   "scopes": [
163458	//     "https://www.googleapis.com/auth/cloud-platform",
163459	//     "https://www.googleapis.com/auth/compute",
163460	//     "https://www.googleapis.com/auth/compute.readonly"
163461	//   ]
163462	// }
163463
163464}
163465
163466// Pages invokes f for each page of results.
163467// A non-nil error returned from f will halt the iteration.
163468// The provided context supersedes any context provided to the Context method.
163469func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
163470	c.ctx_ = ctx
163471	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163472	for {
163473		x, err := c.Do()
163474		if err != nil {
163475			return err
163476		}
163477		if err := f(x); err != nil {
163478			return err
163479		}
163480		if x.NextPageToken == "" {
163481			return nil
163482		}
163483		c.PageToken(x.NextPageToken)
163484	}
163485}
163486
163487// method id "compute.targetHttpProxies.delete":
163488
163489type TargetHttpProxiesDeleteCall struct {
163490	s               *Service
163491	project         string
163492	targetHttpProxy string
163493	urlParams_      gensupport.URLParams
163494	ctx_            context.Context
163495	header_         http.Header
163496}
163497
163498// Delete: Deletes the specified TargetHttpProxy resource.
163499// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
163500func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
163501	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163502	c.project = project
163503	c.targetHttpProxy = targetHttpProxy
163504	return c
163505}
163506
163507// RequestId sets the optional parameter "requestId": An optional
163508// request ID to identify requests. Specify a unique request ID so that
163509// if you must retry your request, the server will know to ignore the
163510// request if it has already been completed.
163511//
163512// For example, consider a situation where you make an initial request
163513// and the request times out. If you make the request again with the
163514// same request ID, the server can check if original operation with the
163515// same request ID was received, and if so, will ignore the second
163516// request. This prevents clients from accidentally creating duplicate
163517// commitments.
163518//
163519// The request ID must be a valid UUID with the exception that zero UUID
163520// is not supported (00000000-0000-0000-0000-000000000000).
163521func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
163522	c.urlParams_.Set("requestId", requestId)
163523	return c
163524}
163525
163526// Fields allows partial responses to be retrieved. See
163527// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163528// for more information.
163529func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
163530	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163531	return c
163532}
163533
163534// Context sets the context to be used in this call's Do method. Any
163535// pending HTTP request will be aborted if the provided context is
163536// canceled.
163537func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
163538	c.ctx_ = ctx
163539	return c
163540}
163541
163542// Header returns an http.Header that can be modified by the caller to
163543// add HTTP headers to the request.
163544func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
163545	if c.header_ == nil {
163546		c.header_ = make(http.Header)
163547	}
163548	return c.header_
163549}
163550
163551func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
163552	reqHeaders := make(http.Header)
163553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
163554	for k, v := range c.header_ {
163555		reqHeaders[k] = v
163556	}
163557	reqHeaders.Set("User-Agent", c.s.userAgent())
163558	var body io.Reader = nil
163559	c.urlParams_.Set("alt", alt)
163560	c.urlParams_.Set("prettyPrint", "false")
163561	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
163562	urls += "?" + c.urlParams_.Encode()
163563	req, err := http.NewRequest("DELETE", urls, body)
163564	if err != nil {
163565		return nil, err
163566	}
163567	req.Header = reqHeaders
163568	googleapi.Expand(req.URL, map[string]string{
163569		"project":         c.project,
163570		"targetHttpProxy": c.targetHttpProxy,
163571	})
163572	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163573}
163574
163575// Do executes the "compute.targetHttpProxies.delete" call.
163576// Exactly one of *Operation or error will be non-nil. Any non-2xx
163577// status code is an error. Response headers are in either
163578// *Operation.ServerResponse.Header or (if a response was returned at
163579// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163580// to check whether the returned error was because
163581// http.StatusNotModified was returned.
163582func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163583	gensupport.SetOptions(c.urlParams_, opts...)
163584	res, err := c.doRequest("json")
163585	if res != nil && res.StatusCode == http.StatusNotModified {
163586		if res.Body != nil {
163587			res.Body.Close()
163588		}
163589		return nil, &googleapi.Error{
163590			Code:   res.StatusCode,
163591			Header: res.Header,
163592		}
163593	}
163594	if err != nil {
163595		return nil, err
163596	}
163597	defer googleapi.CloseBody(res)
163598	if err := googleapi.CheckResponse(res); err != nil {
163599		return nil, err
163600	}
163601	ret := &Operation{
163602		ServerResponse: googleapi.ServerResponse{
163603			Header:         res.Header,
163604			HTTPStatusCode: res.StatusCode,
163605		},
163606	}
163607	target := &ret
163608	if err := gensupport.DecodeResponse(target, res); err != nil {
163609		return nil, err
163610	}
163611	return ret, nil
163612	// {
163613	//   "description": "Deletes the specified TargetHttpProxy resource.",
163614	//   "httpMethod": "DELETE",
163615	//   "id": "compute.targetHttpProxies.delete",
163616	//   "parameterOrder": [
163617	//     "project",
163618	//     "targetHttpProxy"
163619	//   ],
163620	//   "parameters": {
163621	//     "project": {
163622	//       "description": "Project ID for this request.",
163623	//       "location": "path",
163624	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163625	//       "required": true,
163626	//       "type": "string"
163627	//     },
163628	//     "requestId": {
163629	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163630	//       "location": "query",
163631	//       "type": "string"
163632	//     },
163633	//     "targetHttpProxy": {
163634	//       "description": "Name of the TargetHttpProxy resource to delete.",
163635	//       "location": "path",
163636	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163637	//       "required": true,
163638	//       "type": "string"
163639	//     }
163640	//   },
163641	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
163642	//   "response": {
163643	//     "$ref": "Operation"
163644	//   },
163645	//   "scopes": [
163646	//     "https://www.googleapis.com/auth/cloud-platform",
163647	//     "https://www.googleapis.com/auth/compute"
163648	//   ]
163649	// }
163650
163651}
163652
163653// method id "compute.targetHttpProxies.get":
163654
163655type TargetHttpProxiesGetCall struct {
163656	s               *Service
163657	project         string
163658	targetHttpProxy string
163659	urlParams_      gensupport.URLParams
163660	ifNoneMatch_    string
163661	ctx_            context.Context
163662	header_         http.Header
163663}
163664
163665// Get: Returns the specified TargetHttpProxy resource. Gets a list of
163666// available target HTTP proxies by making a list() request.
163667// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
163668func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
163669	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163670	c.project = project
163671	c.targetHttpProxy = targetHttpProxy
163672	return c
163673}
163674
163675// Fields allows partial responses to be retrieved. See
163676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163677// for more information.
163678func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
163679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163680	return c
163681}
163682
163683// IfNoneMatch sets the optional parameter which makes the operation
163684// fail if the object's ETag matches the given value. This is useful for
163685// getting updates only after the object has changed since the last
163686// request. Use googleapi.IsNotModified to check whether the response
163687// error from Do is the result of In-None-Match.
163688func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
163689	c.ifNoneMatch_ = entityTag
163690	return c
163691}
163692
163693// Context sets the context to be used in this call's Do method. Any
163694// pending HTTP request will be aborted if the provided context is
163695// canceled.
163696func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
163697	c.ctx_ = ctx
163698	return c
163699}
163700
163701// Header returns an http.Header that can be modified by the caller to
163702// add HTTP headers to the request.
163703func (c *TargetHttpProxiesGetCall) Header() http.Header {
163704	if c.header_ == nil {
163705		c.header_ = make(http.Header)
163706	}
163707	return c.header_
163708}
163709
163710func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
163711	reqHeaders := make(http.Header)
163712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
163713	for k, v := range c.header_ {
163714		reqHeaders[k] = v
163715	}
163716	reqHeaders.Set("User-Agent", c.s.userAgent())
163717	if c.ifNoneMatch_ != "" {
163718		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163719	}
163720	var body io.Reader = nil
163721	c.urlParams_.Set("alt", alt)
163722	c.urlParams_.Set("prettyPrint", "false")
163723	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
163724	urls += "?" + c.urlParams_.Encode()
163725	req, err := http.NewRequest("GET", urls, body)
163726	if err != nil {
163727		return nil, err
163728	}
163729	req.Header = reqHeaders
163730	googleapi.Expand(req.URL, map[string]string{
163731		"project":         c.project,
163732		"targetHttpProxy": c.targetHttpProxy,
163733	})
163734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163735}
163736
163737// Do executes the "compute.targetHttpProxies.get" call.
163738// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
163739// status code is an error. Response headers are in either
163740// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
163741// at all) in error.(*googleapi.Error).Header. Use
163742// googleapi.IsNotModified to check whether the returned error was
163743// because http.StatusNotModified was returned.
163744func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
163745	gensupport.SetOptions(c.urlParams_, opts...)
163746	res, err := c.doRequest("json")
163747	if res != nil && res.StatusCode == http.StatusNotModified {
163748		if res.Body != nil {
163749			res.Body.Close()
163750		}
163751		return nil, &googleapi.Error{
163752			Code:   res.StatusCode,
163753			Header: res.Header,
163754		}
163755	}
163756	if err != nil {
163757		return nil, err
163758	}
163759	defer googleapi.CloseBody(res)
163760	if err := googleapi.CheckResponse(res); err != nil {
163761		return nil, err
163762	}
163763	ret := &TargetHttpProxy{
163764		ServerResponse: googleapi.ServerResponse{
163765			Header:         res.Header,
163766			HTTPStatusCode: res.StatusCode,
163767		},
163768	}
163769	target := &ret
163770	if err := gensupport.DecodeResponse(target, res); err != nil {
163771		return nil, err
163772	}
163773	return ret, nil
163774	// {
163775	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
163776	//   "httpMethod": "GET",
163777	//   "id": "compute.targetHttpProxies.get",
163778	//   "parameterOrder": [
163779	//     "project",
163780	//     "targetHttpProxy"
163781	//   ],
163782	//   "parameters": {
163783	//     "project": {
163784	//       "description": "Project ID for this request.",
163785	//       "location": "path",
163786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163787	//       "required": true,
163788	//       "type": "string"
163789	//     },
163790	//     "targetHttpProxy": {
163791	//       "description": "Name of the TargetHttpProxy resource to return.",
163792	//       "location": "path",
163793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163794	//       "required": true,
163795	//       "type": "string"
163796	//     }
163797	//   },
163798	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
163799	//   "response": {
163800	//     "$ref": "TargetHttpProxy"
163801	//   },
163802	//   "scopes": [
163803	//     "https://www.googleapis.com/auth/cloud-platform",
163804	//     "https://www.googleapis.com/auth/compute",
163805	//     "https://www.googleapis.com/auth/compute.readonly"
163806	//   ]
163807	// }
163808
163809}
163810
163811// method id "compute.targetHttpProxies.insert":
163812
163813type TargetHttpProxiesInsertCall struct {
163814	s               *Service
163815	project         string
163816	targethttpproxy *TargetHttpProxy
163817	urlParams_      gensupport.URLParams
163818	ctx_            context.Context
163819	header_         http.Header
163820}
163821
163822// Insert: Creates a TargetHttpProxy resource in the specified project
163823// using the data included in the request.
163824// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
163825func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
163826	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163827	c.project = project
163828	c.targethttpproxy = targethttpproxy
163829	return c
163830}
163831
163832// RequestId sets the optional parameter "requestId": An optional
163833// request ID to identify requests. Specify a unique request ID so that
163834// if you must retry your request, the server will know to ignore the
163835// request if it has already been completed.
163836//
163837// For example, consider a situation where you make an initial request
163838// and the request times out. If you make the request again with the
163839// same request ID, the server can check if original operation with the
163840// same request ID was received, and if so, will ignore the second
163841// request. This prevents clients from accidentally creating duplicate
163842// commitments.
163843//
163844// The request ID must be a valid UUID with the exception that zero UUID
163845// is not supported (00000000-0000-0000-0000-000000000000).
163846func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
163847	c.urlParams_.Set("requestId", requestId)
163848	return c
163849}
163850
163851// Fields allows partial responses to be retrieved. See
163852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163853// for more information.
163854func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
163855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163856	return c
163857}
163858
163859// Context sets the context to be used in this call's Do method. Any
163860// pending HTTP request will be aborted if the provided context is
163861// canceled.
163862func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
163863	c.ctx_ = ctx
163864	return c
163865}
163866
163867// Header returns an http.Header that can be modified by the caller to
163868// add HTTP headers to the request.
163869func (c *TargetHttpProxiesInsertCall) Header() http.Header {
163870	if c.header_ == nil {
163871		c.header_ = make(http.Header)
163872	}
163873	return c.header_
163874}
163875
163876func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
163877	reqHeaders := make(http.Header)
163878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
163879	for k, v := range c.header_ {
163880		reqHeaders[k] = v
163881	}
163882	reqHeaders.Set("User-Agent", c.s.userAgent())
163883	var body io.Reader = nil
163884	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
163885	if err != nil {
163886		return nil, err
163887	}
163888	reqHeaders.Set("Content-Type", "application/json")
163889	c.urlParams_.Set("alt", alt)
163890	c.urlParams_.Set("prettyPrint", "false")
163891	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
163892	urls += "?" + c.urlParams_.Encode()
163893	req, err := http.NewRequest("POST", urls, body)
163894	if err != nil {
163895		return nil, err
163896	}
163897	req.Header = reqHeaders
163898	googleapi.Expand(req.URL, map[string]string{
163899		"project": c.project,
163900	})
163901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163902}
163903
163904// Do executes the "compute.targetHttpProxies.insert" call.
163905// Exactly one of *Operation or error will be non-nil. Any non-2xx
163906// status code is an error. Response headers are in either
163907// *Operation.ServerResponse.Header or (if a response was returned at
163908// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163909// to check whether the returned error was because
163910// http.StatusNotModified was returned.
163911func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163912	gensupport.SetOptions(c.urlParams_, opts...)
163913	res, err := c.doRequest("json")
163914	if res != nil && res.StatusCode == http.StatusNotModified {
163915		if res.Body != nil {
163916			res.Body.Close()
163917		}
163918		return nil, &googleapi.Error{
163919			Code:   res.StatusCode,
163920			Header: res.Header,
163921		}
163922	}
163923	if err != nil {
163924		return nil, err
163925	}
163926	defer googleapi.CloseBody(res)
163927	if err := googleapi.CheckResponse(res); err != nil {
163928		return nil, err
163929	}
163930	ret := &Operation{
163931		ServerResponse: googleapi.ServerResponse{
163932			Header:         res.Header,
163933			HTTPStatusCode: res.StatusCode,
163934		},
163935	}
163936	target := &ret
163937	if err := gensupport.DecodeResponse(target, res); err != nil {
163938		return nil, err
163939	}
163940	return ret, nil
163941	// {
163942	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
163943	//   "httpMethod": "POST",
163944	//   "id": "compute.targetHttpProxies.insert",
163945	//   "parameterOrder": [
163946	//     "project"
163947	//   ],
163948	//   "parameters": {
163949	//     "project": {
163950	//       "description": "Project ID for this request.",
163951	//       "location": "path",
163952	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163953	//       "required": true,
163954	//       "type": "string"
163955	//     },
163956	//     "requestId": {
163957	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163958	//       "location": "query",
163959	//       "type": "string"
163960	//     }
163961	//   },
163962	//   "path": "{project}/global/targetHttpProxies",
163963	//   "request": {
163964	//     "$ref": "TargetHttpProxy"
163965	//   },
163966	//   "response": {
163967	//     "$ref": "Operation"
163968	//   },
163969	//   "scopes": [
163970	//     "https://www.googleapis.com/auth/cloud-platform",
163971	//     "https://www.googleapis.com/auth/compute"
163972	//   ]
163973	// }
163974
163975}
163976
163977// method id "compute.targetHttpProxies.list":
163978
163979type TargetHttpProxiesListCall struct {
163980	s            *Service
163981	project      string
163982	urlParams_   gensupport.URLParams
163983	ifNoneMatch_ string
163984	ctx_         context.Context
163985	header_      http.Header
163986}
163987
163988// List: Retrieves the list of TargetHttpProxy resources available to
163989// the specified project.
163990// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
163991func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
163992	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163993	c.project = project
163994	return c
163995}
163996
163997// Filter sets the optional parameter "filter": A filter expression that
163998// filters resources listed in the response. The expression must specify
163999// the field name, a comparison operator, and the value that you want to
164000// use for filtering. The value must be a string, a number, or a
164001// boolean. The comparison operator must be either `=`, `!=`, `>`, or
164002// `<`.
164003//
164004// For example, if you are filtering Compute Engine instances, you can
164005// exclude instances named `example-instance` by specifying `name !=
164006// example-instance`.
164007//
164008// You can also filter nested fields. For example, you could specify
164009// `scheduling.automaticRestart = false` to include instances only if
164010// they are not scheduled for automatic restarts. You can use filtering
164011// on nested fields to filter based on resource labels.
164012//
164013// To filter on multiple expressions, provide each separate expression
164014// within parentheses. For example: ``` (scheduling.automaticRestart =
164015// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
164016// is an `AND` expression. However, you can include `AND` and `OR`
164017// expressions explicitly. For example: ``` (cpuPlatform = "Intel
164018// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
164019// (scheduling.automaticRestart = true) ```
164020func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
164021	c.urlParams_.Set("filter", filter)
164022	return c
164023}
164024
164025// MaxResults sets the optional parameter "maxResults": The maximum
164026// number of results per page that should be returned. If the number of
164027// available results is larger than `maxResults`, Compute Engine returns
164028// a `nextPageToken` that can be used to get the next page of results in
164029// subsequent list requests. Acceptable values are `0` to `500`,
164030// inclusive. (Default: `500`)
164031func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
164032	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164033	return c
164034}
164035
164036// OrderBy sets the optional parameter "orderBy": Sorts list results by
164037// a certain order. By default, results are returned in alphanumerical
164038// order based on the resource name.
164039//
164040// You can also sort results in descending order based on the creation
164041// timestamp using `orderBy="creationTimestamp desc". This sorts
164042// results based on the `creationTimestamp` field in reverse
164043// chronological order (newest result first). Use this to sort resources
164044// like operations so that the newest operation is returned
164045// first.
164046//
164047// Currently, only sorting by `name` or `creationTimestamp desc` is
164048// supported.
164049func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
164050	c.urlParams_.Set("orderBy", orderBy)
164051	return c
164052}
164053
164054// PageToken sets the optional parameter "pageToken": Specifies a page
164055// token to use. Set `pageToken` to the `nextPageToken` returned by a
164056// previous list request to get the next page of results.
164057func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
164058	c.urlParams_.Set("pageToken", pageToken)
164059	return c
164060}
164061
164062// ReturnPartialSuccess sets the optional parameter
164063// "returnPartialSuccess": Opt-in for partial success behavior which
164064// provides partial results in case of failure. The default value is
164065// false and the logic is the same as today.
164066func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall {
164067	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
164068	return c
164069}
164070
164071// Fields allows partial responses to be retrieved. See
164072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164073// for more information.
164074func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
164075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164076	return c
164077}
164078
164079// IfNoneMatch sets the optional parameter which makes the operation
164080// fail if the object's ETag matches the given value. This is useful for
164081// getting updates only after the object has changed since the last
164082// request. Use googleapi.IsNotModified to check whether the response
164083// error from Do is the result of In-None-Match.
164084func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
164085	c.ifNoneMatch_ = entityTag
164086	return c
164087}
164088
164089// Context sets the context to be used in this call's Do method. Any
164090// pending HTTP request will be aborted if the provided context is
164091// canceled.
164092func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
164093	c.ctx_ = ctx
164094	return c
164095}
164096
164097// Header returns an http.Header that can be modified by the caller to
164098// add HTTP headers to the request.
164099func (c *TargetHttpProxiesListCall) Header() http.Header {
164100	if c.header_ == nil {
164101		c.header_ = make(http.Header)
164102	}
164103	return c.header_
164104}
164105
164106func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
164107	reqHeaders := make(http.Header)
164108	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
164109	for k, v := range c.header_ {
164110		reqHeaders[k] = v
164111	}
164112	reqHeaders.Set("User-Agent", c.s.userAgent())
164113	if c.ifNoneMatch_ != "" {
164114		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164115	}
164116	var body io.Reader = nil
164117	c.urlParams_.Set("alt", alt)
164118	c.urlParams_.Set("prettyPrint", "false")
164119	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
164120	urls += "?" + c.urlParams_.Encode()
164121	req, err := http.NewRequest("GET", urls, body)
164122	if err != nil {
164123		return nil, err
164124	}
164125	req.Header = reqHeaders
164126	googleapi.Expand(req.URL, map[string]string{
164127		"project": c.project,
164128	})
164129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164130}
164131
164132// Do executes the "compute.targetHttpProxies.list" call.
164133// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
164134// non-2xx status code is an error. Response headers are in either
164135// *TargetHttpProxyList.ServerResponse.Header or (if a response was
164136// returned at all) in error.(*googleapi.Error).Header. Use
164137// googleapi.IsNotModified to check whether the returned error was
164138// because http.StatusNotModified was returned.
164139func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
164140	gensupport.SetOptions(c.urlParams_, opts...)
164141	res, err := c.doRequest("json")
164142	if res != nil && res.StatusCode == http.StatusNotModified {
164143		if res.Body != nil {
164144			res.Body.Close()
164145		}
164146		return nil, &googleapi.Error{
164147			Code:   res.StatusCode,
164148			Header: res.Header,
164149		}
164150	}
164151	if err != nil {
164152		return nil, err
164153	}
164154	defer googleapi.CloseBody(res)
164155	if err := googleapi.CheckResponse(res); err != nil {
164156		return nil, err
164157	}
164158	ret := &TargetHttpProxyList{
164159		ServerResponse: googleapi.ServerResponse{
164160			Header:         res.Header,
164161			HTTPStatusCode: res.StatusCode,
164162		},
164163	}
164164	target := &ret
164165	if err := gensupport.DecodeResponse(target, res); err != nil {
164166		return nil, err
164167	}
164168	return ret, nil
164169	// {
164170	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
164171	//   "httpMethod": "GET",
164172	//   "id": "compute.targetHttpProxies.list",
164173	//   "parameterOrder": [
164174	//     "project"
164175	//   ],
164176	//   "parameters": {
164177	//     "filter": {
164178	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
164179	//       "location": "query",
164180	//       "type": "string"
164181	//     },
164182	//     "maxResults": {
164183	//       "default": "500",
164184	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
164185	//       "format": "uint32",
164186	//       "location": "query",
164187	//       "minimum": "0",
164188	//       "type": "integer"
164189	//     },
164190	//     "orderBy": {
164191	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
164192	//       "location": "query",
164193	//       "type": "string"
164194	//     },
164195	//     "pageToken": {
164196	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
164197	//       "location": "query",
164198	//       "type": "string"
164199	//     },
164200	//     "project": {
164201	//       "description": "Project ID for this request.",
164202	//       "location": "path",
164203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164204	//       "required": true,
164205	//       "type": "string"
164206	//     },
164207	//     "returnPartialSuccess": {
164208	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
164209	//       "location": "query",
164210	//       "type": "boolean"
164211	//     }
164212	//   },
164213	//   "path": "{project}/global/targetHttpProxies",
164214	//   "response": {
164215	//     "$ref": "TargetHttpProxyList"
164216	//   },
164217	//   "scopes": [
164218	//     "https://www.googleapis.com/auth/cloud-platform",
164219	//     "https://www.googleapis.com/auth/compute",
164220	//     "https://www.googleapis.com/auth/compute.readonly"
164221	//   ]
164222	// }
164223
164224}
164225
164226// Pages invokes f for each page of results.
164227// A non-nil error returned from f will halt the iteration.
164228// The provided context supersedes any context provided to the Context method.
164229func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
164230	c.ctx_ = ctx
164231	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164232	for {
164233		x, err := c.Do()
164234		if err != nil {
164235			return err
164236		}
164237		if err := f(x); err != nil {
164238			return err
164239		}
164240		if x.NextPageToken == "" {
164241			return nil
164242		}
164243		c.PageToken(x.NextPageToken)
164244	}
164245}
164246
164247// method id "compute.targetHttpProxies.setUrlMap":
164248
164249type TargetHttpProxiesSetUrlMapCall struct {
164250	s               *Service
164251	project         string
164252	targetHttpProxy string
164253	urlmapreference *UrlMapReference
164254	urlParams_      gensupport.URLParams
164255	ctx_            context.Context
164256	header_         http.Header
164257}
164258
164259// SetUrlMap: Changes the URL map for TargetHttpProxy.
164260// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
164261func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
164262	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164263	c.project = project
164264	c.targetHttpProxy = targetHttpProxy
164265	c.urlmapreference = urlmapreference
164266	return c
164267}
164268
164269// RequestId sets the optional parameter "requestId": An optional
164270// request ID to identify requests. Specify a unique request ID so that
164271// if you must retry your request, the server will know to ignore the
164272// request if it has already been completed.
164273//
164274// For example, consider a situation where you make an initial request
164275// and the request times out. If you make the request again with the
164276// same request ID, the server can check if original operation with the
164277// same request ID was received, and if so, will ignore the second
164278// request. This prevents clients from accidentally creating duplicate
164279// commitments.
164280//
164281// The request ID must be a valid UUID with the exception that zero UUID
164282// is not supported (00000000-0000-0000-0000-000000000000).
164283func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
164284	c.urlParams_.Set("requestId", requestId)
164285	return c
164286}
164287
164288// Fields allows partial responses to be retrieved. See
164289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164290// for more information.
164291func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
164292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164293	return c
164294}
164295
164296// Context sets the context to be used in this call's Do method. Any
164297// pending HTTP request will be aborted if the provided context is
164298// canceled.
164299func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
164300	c.ctx_ = ctx
164301	return c
164302}
164303
164304// Header returns an http.Header that can be modified by the caller to
164305// add HTTP headers to the request.
164306func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
164307	if c.header_ == nil {
164308		c.header_ = make(http.Header)
164309	}
164310	return c.header_
164311}
164312
164313func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
164314	reqHeaders := make(http.Header)
164315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
164316	for k, v := range c.header_ {
164317		reqHeaders[k] = v
164318	}
164319	reqHeaders.Set("User-Agent", c.s.userAgent())
164320	var body io.Reader = nil
164321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
164322	if err != nil {
164323		return nil, err
164324	}
164325	reqHeaders.Set("Content-Type", "application/json")
164326	c.urlParams_.Set("alt", alt)
164327	c.urlParams_.Set("prettyPrint", "false")
164328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
164329	urls += "?" + c.urlParams_.Encode()
164330	req, err := http.NewRequest("POST", urls, body)
164331	if err != nil {
164332		return nil, err
164333	}
164334	req.Header = reqHeaders
164335	googleapi.Expand(req.URL, map[string]string{
164336		"project":         c.project,
164337		"targetHttpProxy": c.targetHttpProxy,
164338	})
164339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164340}
164341
164342// Do executes the "compute.targetHttpProxies.setUrlMap" call.
164343// Exactly one of *Operation or error will be non-nil. Any non-2xx
164344// status code is an error. Response headers are in either
164345// *Operation.ServerResponse.Header or (if a response was returned at
164346// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164347// to check whether the returned error was because
164348// http.StatusNotModified was returned.
164349func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164350	gensupport.SetOptions(c.urlParams_, opts...)
164351	res, err := c.doRequest("json")
164352	if res != nil && res.StatusCode == http.StatusNotModified {
164353		if res.Body != nil {
164354			res.Body.Close()
164355		}
164356		return nil, &googleapi.Error{
164357			Code:   res.StatusCode,
164358			Header: res.Header,
164359		}
164360	}
164361	if err != nil {
164362		return nil, err
164363	}
164364	defer googleapi.CloseBody(res)
164365	if err := googleapi.CheckResponse(res); err != nil {
164366		return nil, err
164367	}
164368	ret := &Operation{
164369		ServerResponse: googleapi.ServerResponse{
164370			Header:         res.Header,
164371			HTTPStatusCode: res.StatusCode,
164372		},
164373	}
164374	target := &ret
164375	if err := gensupport.DecodeResponse(target, res); err != nil {
164376		return nil, err
164377	}
164378	return ret, nil
164379	// {
164380	//   "description": "Changes the URL map for TargetHttpProxy.",
164381	//   "httpMethod": "POST",
164382	//   "id": "compute.targetHttpProxies.setUrlMap",
164383	//   "parameterOrder": [
164384	//     "project",
164385	//     "targetHttpProxy"
164386	//   ],
164387	//   "parameters": {
164388	//     "project": {
164389	//       "description": "Project ID for this request.",
164390	//       "location": "path",
164391	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164392	//       "required": true,
164393	//       "type": "string"
164394	//     },
164395	//     "requestId": {
164396	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164397	//       "location": "query",
164398	//       "type": "string"
164399	//     },
164400	//     "targetHttpProxy": {
164401	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
164402	//       "location": "path",
164403	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164404	//       "required": true,
164405	//       "type": "string"
164406	//     }
164407	//   },
164408	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
164409	//   "request": {
164410	//     "$ref": "UrlMapReference"
164411	//   },
164412	//   "response": {
164413	//     "$ref": "Operation"
164414	//   },
164415	//   "scopes": [
164416	//     "https://www.googleapis.com/auth/cloud-platform",
164417	//     "https://www.googleapis.com/auth/compute"
164418	//   ]
164419	// }
164420
164421}
164422
164423// method id "compute.targetHttpProxies.testIamPermissions":
164424
164425type TargetHttpProxiesTestIamPermissionsCall struct {
164426	s                      *Service
164427	project                string
164428	resource               string
164429	testpermissionsrequest *TestPermissionsRequest
164430	urlParams_             gensupport.URLParams
164431	ctx_                   context.Context
164432	header_                http.Header
164433}
164434
164435// TestIamPermissions: Returns permissions that a caller has on the
164436// specified resource.
164437func (r *TargetHttpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpProxiesTestIamPermissionsCall {
164438	c := &TargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164439	c.project = project
164440	c.resource = resource
164441	c.testpermissionsrequest = testpermissionsrequest
164442	return c
164443}
164444
164445// Fields allows partial responses to be retrieved. See
164446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164447// for more information.
164448func (c *TargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpProxiesTestIamPermissionsCall {
164449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164450	return c
164451}
164452
164453// Context sets the context to be used in this call's Do method. Any
164454// pending HTTP request will be aborted if the provided context is
164455// canceled.
164456func (c *TargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpProxiesTestIamPermissionsCall {
164457	c.ctx_ = ctx
164458	return c
164459}
164460
164461// Header returns an http.Header that can be modified by the caller to
164462// add HTTP headers to the request.
164463func (c *TargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
164464	if c.header_ == nil {
164465		c.header_ = make(http.Header)
164466	}
164467	return c.header_
164468}
164469
164470func (c *TargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
164471	reqHeaders := make(http.Header)
164472	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
164473	for k, v := range c.header_ {
164474		reqHeaders[k] = v
164475	}
164476	reqHeaders.Set("User-Agent", c.s.userAgent())
164477	var body io.Reader = nil
164478	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
164479	if err != nil {
164480		return nil, err
164481	}
164482	reqHeaders.Set("Content-Type", "application/json")
164483	c.urlParams_.Set("alt", alt)
164484	c.urlParams_.Set("prettyPrint", "false")
164485	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{resource}/testIamPermissions")
164486	urls += "?" + c.urlParams_.Encode()
164487	req, err := http.NewRequest("POST", urls, body)
164488	if err != nil {
164489		return nil, err
164490	}
164491	req.Header = reqHeaders
164492	googleapi.Expand(req.URL, map[string]string{
164493		"project":  c.project,
164494		"resource": c.resource,
164495	})
164496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164497}
164498
164499// Do executes the "compute.targetHttpProxies.testIamPermissions" call.
164500// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
164501// non-2xx status code is an error. Response headers are in either
164502// *TestPermissionsResponse.ServerResponse.Header or (if a response was
164503// returned at all) in error.(*googleapi.Error).Header. Use
164504// googleapi.IsNotModified to check whether the returned error was
164505// because http.StatusNotModified was returned.
164506func (c *TargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
164507	gensupport.SetOptions(c.urlParams_, opts...)
164508	res, err := c.doRequest("json")
164509	if res != nil && res.StatusCode == http.StatusNotModified {
164510		if res.Body != nil {
164511			res.Body.Close()
164512		}
164513		return nil, &googleapi.Error{
164514			Code:   res.StatusCode,
164515			Header: res.Header,
164516		}
164517	}
164518	if err != nil {
164519		return nil, err
164520	}
164521	defer googleapi.CloseBody(res)
164522	if err := googleapi.CheckResponse(res); err != nil {
164523		return nil, err
164524	}
164525	ret := &TestPermissionsResponse{
164526		ServerResponse: googleapi.ServerResponse{
164527			Header:         res.Header,
164528			HTTPStatusCode: res.StatusCode,
164529		},
164530	}
164531	target := &ret
164532	if err := gensupport.DecodeResponse(target, res); err != nil {
164533		return nil, err
164534	}
164535	return ret, nil
164536	// {
164537	//   "description": "Returns permissions that a caller has on the specified resource.",
164538	//   "httpMethod": "POST",
164539	//   "id": "compute.targetHttpProxies.testIamPermissions",
164540	//   "parameterOrder": [
164541	//     "project",
164542	//     "resource"
164543	//   ],
164544	//   "parameters": {
164545	//     "project": {
164546	//       "description": "Project ID for this request.",
164547	//       "location": "path",
164548	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164549	//       "required": true,
164550	//       "type": "string"
164551	//     },
164552	//     "resource": {
164553	//       "description": "Name or id of the resource for this request.",
164554	//       "location": "path",
164555	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164556	//       "required": true,
164557	//       "type": "string"
164558	//     }
164559	//   },
164560	//   "path": "{project}/global/targetHttpProxies/{resource}/testIamPermissions",
164561	//   "request": {
164562	//     "$ref": "TestPermissionsRequest"
164563	//   },
164564	//   "response": {
164565	//     "$ref": "TestPermissionsResponse"
164566	//   },
164567	//   "scopes": [
164568	//     "https://www.googleapis.com/auth/cloud-platform",
164569	//     "https://www.googleapis.com/auth/compute",
164570	//     "https://www.googleapis.com/auth/compute.readonly"
164571	//   ]
164572	// }
164573
164574}
164575
164576// method id "compute.targetHttpsProxies.aggregatedList":
164577
164578type TargetHttpsProxiesAggregatedListCall struct {
164579	s            *Service
164580	project      string
164581	urlParams_   gensupport.URLParams
164582	ifNoneMatch_ string
164583	ctx_         context.Context
164584	header_      http.Header
164585}
164586
164587// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
164588// regional and global, available to the specified project.
164589func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
164590	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164591	c.project = project
164592	return c
164593}
164594
164595// Filter sets the optional parameter "filter": A filter expression that
164596// filters resources listed in the response. The expression must specify
164597// the field name, a comparison operator, and the value that you want to
164598// use for filtering. The value must be a string, a number, or a
164599// boolean. The comparison operator must be either `=`, `!=`, `>`, or
164600// `<`.
164601//
164602// For example, if you are filtering Compute Engine instances, you can
164603// exclude instances named `example-instance` by specifying `name !=
164604// example-instance`.
164605//
164606// You can also filter nested fields. For example, you could specify
164607// `scheduling.automaticRestart = false` to include instances only if
164608// they are not scheduled for automatic restarts. You can use filtering
164609// on nested fields to filter based on resource labels.
164610//
164611// To filter on multiple expressions, provide each separate expression
164612// within parentheses. For example: ``` (scheduling.automaticRestart =
164613// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
164614// is an `AND` expression. However, you can include `AND` and `OR`
164615// expressions explicitly. For example: ``` (cpuPlatform = "Intel
164616// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
164617// (scheduling.automaticRestart = true) ```
164618func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
164619	c.urlParams_.Set("filter", filter)
164620	return c
164621}
164622
164623// IncludeAllScopes sets the optional parameter "includeAllScopes":
164624// Indicates whether every visible scope for each scope type (zone,
164625// region, global) should be included in the response. For new resource
164626// types added after this field, the flag has no effect as new resource
164627// types will always include every visible scope for each scope type in
164628// response. For resource types which predate this field, if this flag
164629// is omitted or false, only scopes of the scope types where the
164630// resource type is expected to be found will be included.
164631func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
164632	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
164633	return c
164634}
164635
164636// MaxResults sets the optional parameter "maxResults": The maximum
164637// number of results per page that should be returned. If the number of
164638// available results is larger than `maxResults`, Compute Engine returns
164639// a `nextPageToken` that can be used to get the next page of results in
164640// subsequent list requests. Acceptable values are `0` to `500`,
164641// inclusive. (Default: `500`)
164642func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
164643	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164644	return c
164645}
164646
164647// OrderBy sets the optional parameter "orderBy": Sorts list results by
164648// a certain order. By default, results are returned in alphanumerical
164649// order based on the resource name.
164650//
164651// You can also sort results in descending order based on the creation
164652// timestamp using `orderBy="creationTimestamp desc". This sorts
164653// results based on the `creationTimestamp` field in reverse
164654// chronological order (newest result first). Use this to sort resources
164655// like operations so that the newest operation is returned
164656// first.
164657//
164658// Currently, only sorting by `name` or `creationTimestamp desc` is
164659// supported.
164660func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
164661	c.urlParams_.Set("orderBy", orderBy)
164662	return c
164663}
164664
164665// PageToken sets the optional parameter "pageToken": Specifies a page
164666// token to use. Set `pageToken` to the `nextPageToken` returned by a
164667// previous list request to get the next page of results.
164668func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
164669	c.urlParams_.Set("pageToken", pageToken)
164670	return c
164671}
164672
164673// ReturnPartialSuccess sets the optional parameter
164674// "returnPartialSuccess": Opt-in for partial success behavior which
164675// provides partial results in case of failure. The default value is
164676// false and the logic is the same as today.
164677func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall {
164678	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
164679	return c
164680}
164681
164682// Fields allows partial responses to be retrieved. See
164683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164684// for more information.
164685func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
164686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164687	return c
164688}
164689
164690// IfNoneMatch sets the optional parameter which makes the operation
164691// fail if the object's ETag matches the given value. This is useful for
164692// getting updates only after the object has changed since the last
164693// request. Use googleapi.IsNotModified to check whether the response
164694// error from Do is the result of In-None-Match.
164695func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
164696	c.ifNoneMatch_ = entityTag
164697	return c
164698}
164699
164700// Context sets the context to be used in this call's Do method. Any
164701// pending HTTP request will be aborted if the provided context is
164702// canceled.
164703func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
164704	c.ctx_ = ctx
164705	return c
164706}
164707
164708// Header returns an http.Header that can be modified by the caller to
164709// add HTTP headers to the request.
164710func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
164711	if c.header_ == nil {
164712		c.header_ = make(http.Header)
164713	}
164714	return c.header_
164715}
164716
164717func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
164718	reqHeaders := make(http.Header)
164719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
164720	for k, v := range c.header_ {
164721		reqHeaders[k] = v
164722	}
164723	reqHeaders.Set("User-Agent", c.s.userAgent())
164724	if c.ifNoneMatch_ != "" {
164725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164726	}
164727	var body io.Reader = nil
164728	c.urlParams_.Set("alt", alt)
164729	c.urlParams_.Set("prettyPrint", "false")
164730	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpsProxies")
164731	urls += "?" + c.urlParams_.Encode()
164732	req, err := http.NewRequest("GET", urls, body)
164733	if err != nil {
164734		return nil, err
164735	}
164736	req.Header = reqHeaders
164737	googleapi.Expand(req.URL, map[string]string{
164738		"project": c.project,
164739	})
164740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164741}
164742
164743// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
164744// Exactly one of *TargetHttpsProxyAggregatedList or error will be
164745// non-nil. Any non-2xx status code is an error. Response headers are in
164746// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
164747// response was returned at all) in error.(*googleapi.Error).Header. Use
164748// googleapi.IsNotModified to check whether the returned error was
164749// because http.StatusNotModified was returned.
164750func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
164751	gensupport.SetOptions(c.urlParams_, opts...)
164752	res, err := c.doRequest("json")
164753	if res != nil && res.StatusCode == http.StatusNotModified {
164754		if res.Body != nil {
164755			res.Body.Close()
164756		}
164757		return nil, &googleapi.Error{
164758			Code:   res.StatusCode,
164759			Header: res.Header,
164760		}
164761	}
164762	if err != nil {
164763		return nil, err
164764	}
164765	defer googleapi.CloseBody(res)
164766	if err := googleapi.CheckResponse(res); err != nil {
164767		return nil, err
164768	}
164769	ret := &TargetHttpsProxyAggregatedList{
164770		ServerResponse: googleapi.ServerResponse{
164771			Header:         res.Header,
164772			HTTPStatusCode: res.StatusCode,
164773		},
164774	}
164775	target := &ret
164776	if err := gensupport.DecodeResponse(target, res); err != nil {
164777		return nil, err
164778	}
164779	return ret, nil
164780	// {
164781	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
164782	//   "httpMethod": "GET",
164783	//   "id": "compute.targetHttpsProxies.aggregatedList",
164784	//   "parameterOrder": [
164785	//     "project"
164786	//   ],
164787	//   "parameters": {
164788	//     "filter": {
164789	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
164790	//       "location": "query",
164791	//       "type": "string"
164792	//     },
164793	//     "includeAllScopes": {
164794	//       "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.",
164795	//       "location": "query",
164796	//       "type": "boolean"
164797	//     },
164798	//     "maxResults": {
164799	//       "default": "500",
164800	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
164801	//       "format": "uint32",
164802	//       "location": "query",
164803	//       "minimum": "0",
164804	//       "type": "integer"
164805	//     },
164806	//     "orderBy": {
164807	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
164808	//       "location": "query",
164809	//       "type": "string"
164810	//     },
164811	//     "pageToken": {
164812	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
164813	//       "location": "query",
164814	//       "type": "string"
164815	//     },
164816	//     "project": {
164817	//       "description": "Name of the project scoping this request.",
164818	//       "location": "path",
164819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164820	//       "required": true,
164821	//       "type": "string"
164822	//     },
164823	//     "returnPartialSuccess": {
164824	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
164825	//       "location": "query",
164826	//       "type": "boolean"
164827	//     }
164828	//   },
164829	//   "path": "{project}/aggregated/targetHttpsProxies",
164830	//   "response": {
164831	//     "$ref": "TargetHttpsProxyAggregatedList"
164832	//   },
164833	//   "scopes": [
164834	//     "https://www.googleapis.com/auth/cloud-platform",
164835	//     "https://www.googleapis.com/auth/compute",
164836	//     "https://www.googleapis.com/auth/compute.readonly"
164837	//   ]
164838	// }
164839
164840}
164841
164842// Pages invokes f for each page of results.
164843// A non-nil error returned from f will halt the iteration.
164844// The provided context supersedes any context provided to the Context method.
164845func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
164846	c.ctx_ = ctx
164847	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164848	for {
164849		x, err := c.Do()
164850		if err != nil {
164851			return err
164852		}
164853		if err := f(x); err != nil {
164854			return err
164855		}
164856		if x.NextPageToken == "" {
164857			return nil
164858		}
164859		c.PageToken(x.NextPageToken)
164860	}
164861}
164862
164863// method id "compute.targetHttpsProxies.delete":
164864
164865type TargetHttpsProxiesDeleteCall struct {
164866	s                *Service
164867	project          string
164868	targetHttpsProxy string
164869	urlParams_       gensupport.URLParams
164870	ctx_             context.Context
164871	header_          http.Header
164872}
164873
164874// Delete: Deletes the specified TargetHttpsProxy resource.
164875func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
164876	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164877	c.project = project
164878	c.targetHttpsProxy = targetHttpsProxy
164879	return c
164880}
164881
164882// RequestId sets the optional parameter "requestId": An optional
164883// request ID to identify requests. Specify a unique request ID so that
164884// if you must retry your request, the server will know to ignore the
164885// request if it has already been completed.
164886//
164887// For example, consider a situation where you make an initial request
164888// and the request times out. If you make the request again with the
164889// same request ID, the server can check if original operation with the
164890// same request ID was received, and if so, will ignore the second
164891// request. This prevents clients from accidentally creating duplicate
164892// commitments.
164893//
164894// The request ID must be a valid UUID with the exception that zero UUID
164895// is not supported (00000000-0000-0000-0000-000000000000).
164896func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
164897	c.urlParams_.Set("requestId", requestId)
164898	return c
164899}
164900
164901// Fields allows partial responses to be retrieved. See
164902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164903// for more information.
164904func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
164905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164906	return c
164907}
164908
164909// Context sets the context to be used in this call's Do method. Any
164910// pending HTTP request will be aborted if the provided context is
164911// canceled.
164912func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
164913	c.ctx_ = ctx
164914	return c
164915}
164916
164917// Header returns an http.Header that can be modified by the caller to
164918// add HTTP headers to the request.
164919func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
164920	if c.header_ == nil {
164921		c.header_ = make(http.Header)
164922	}
164923	return c.header_
164924}
164925
164926func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
164927	reqHeaders := make(http.Header)
164928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
164929	for k, v := range c.header_ {
164930		reqHeaders[k] = v
164931	}
164932	reqHeaders.Set("User-Agent", c.s.userAgent())
164933	var body io.Reader = nil
164934	c.urlParams_.Set("alt", alt)
164935	c.urlParams_.Set("prettyPrint", "false")
164936	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
164937	urls += "?" + c.urlParams_.Encode()
164938	req, err := http.NewRequest("DELETE", urls, body)
164939	if err != nil {
164940		return nil, err
164941	}
164942	req.Header = reqHeaders
164943	googleapi.Expand(req.URL, map[string]string{
164944		"project":          c.project,
164945		"targetHttpsProxy": c.targetHttpsProxy,
164946	})
164947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164948}
164949
164950// Do executes the "compute.targetHttpsProxies.delete" call.
164951// Exactly one of *Operation or error will be non-nil. Any non-2xx
164952// status code is an error. Response headers are in either
164953// *Operation.ServerResponse.Header or (if a response was returned at
164954// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164955// to check whether the returned error was because
164956// http.StatusNotModified was returned.
164957func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164958	gensupport.SetOptions(c.urlParams_, opts...)
164959	res, err := c.doRequest("json")
164960	if res != nil && res.StatusCode == http.StatusNotModified {
164961		if res.Body != nil {
164962			res.Body.Close()
164963		}
164964		return nil, &googleapi.Error{
164965			Code:   res.StatusCode,
164966			Header: res.Header,
164967		}
164968	}
164969	if err != nil {
164970		return nil, err
164971	}
164972	defer googleapi.CloseBody(res)
164973	if err := googleapi.CheckResponse(res); err != nil {
164974		return nil, err
164975	}
164976	ret := &Operation{
164977		ServerResponse: googleapi.ServerResponse{
164978			Header:         res.Header,
164979			HTTPStatusCode: res.StatusCode,
164980		},
164981	}
164982	target := &ret
164983	if err := gensupport.DecodeResponse(target, res); err != nil {
164984		return nil, err
164985	}
164986	return ret, nil
164987	// {
164988	//   "description": "Deletes the specified TargetHttpsProxy resource.",
164989	//   "httpMethod": "DELETE",
164990	//   "id": "compute.targetHttpsProxies.delete",
164991	//   "parameterOrder": [
164992	//     "project",
164993	//     "targetHttpsProxy"
164994	//   ],
164995	//   "parameters": {
164996	//     "project": {
164997	//       "description": "Project ID for this request.",
164998	//       "location": "path",
164999	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165000	//       "required": true,
165001	//       "type": "string"
165002	//     },
165003	//     "requestId": {
165004	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165005	//       "location": "query",
165006	//       "type": "string"
165007	//     },
165008	//     "targetHttpsProxy": {
165009	//       "description": "Name of the TargetHttpsProxy resource to delete.",
165010	//       "location": "path",
165011	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165012	//       "required": true,
165013	//       "type": "string"
165014	//     }
165015	//   },
165016	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
165017	//   "response": {
165018	//     "$ref": "Operation"
165019	//   },
165020	//   "scopes": [
165021	//     "https://www.googleapis.com/auth/cloud-platform",
165022	//     "https://www.googleapis.com/auth/compute"
165023	//   ]
165024	// }
165025
165026}
165027
165028// method id "compute.targetHttpsProxies.get":
165029
165030type TargetHttpsProxiesGetCall struct {
165031	s                *Service
165032	project          string
165033	targetHttpsProxy string
165034	urlParams_       gensupport.URLParams
165035	ifNoneMatch_     string
165036	ctx_             context.Context
165037	header_          http.Header
165038}
165039
165040// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
165041// available target HTTPS proxies by making a list() request.
165042func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
165043	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165044	c.project = project
165045	c.targetHttpsProxy = targetHttpsProxy
165046	return c
165047}
165048
165049// Fields allows partial responses to be retrieved. See
165050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165051// for more information.
165052func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
165053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165054	return c
165055}
165056
165057// IfNoneMatch sets the optional parameter which makes the operation
165058// fail if the object's ETag matches the given value. This is useful for
165059// getting updates only after the object has changed since the last
165060// request. Use googleapi.IsNotModified to check whether the response
165061// error from Do is the result of In-None-Match.
165062func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
165063	c.ifNoneMatch_ = entityTag
165064	return c
165065}
165066
165067// Context sets the context to be used in this call's Do method. Any
165068// pending HTTP request will be aborted if the provided context is
165069// canceled.
165070func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
165071	c.ctx_ = ctx
165072	return c
165073}
165074
165075// Header returns an http.Header that can be modified by the caller to
165076// add HTTP headers to the request.
165077func (c *TargetHttpsProxiesGetCall) Header() http.Header {
165078	if c.header_ == nil {
165079		c.header_ = make(http.Header)
165080	}
165081	return c.header_
165082}
165083
165084func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
165085	reqHeaders := make(http.Header)
165086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
165087	for k, v := range c.header_ {
165088		reqHeaders[k] = v
165089	}
165090	reqHeaders.Set("User-Agent", c.s.userAgent())
165091	if c.ifNoneMatch_ != "" {
165092		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165093	}
165094	var body io.Reader = nil
165095	c.urlParams_.Set("alt", alt)
165096	c.urlParams_.Set("prettyPrint", "false")
165097	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
165098	urls += "?" + c.urlParams_.Encode()
165099	req, err := http.NewRequest("GET", urls, body)
165100	if err != nil {
165101		return nil, err
165102	}
165103	req.Header = reqHeaders
165104	googleapi.Expand(req.URL, map[string]string{
165105		"project":          c.project,
165106		"targetHttpsProxy": c.targetHttpsProxy,
165107	})
165108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165109}
165110
165111// Do executes the "compute.targetHttpsProxies.get" call.
165112// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
165113// non-2xx status code is an error. Response headers are in either
165114// *TargetHttpsProxy.ServerResponse.Header or (if a response was
165115// returned at all) in error.(*googleapi.Error).Header. Use
165116// googleapi.IsNotModified to check whether the returned error was
165117// because http.StatusNotModified was returned.
165118func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
165119	gensupport.SetOptions(c.urlParams_, opts...)
165120	res, err := c.doRequest("json")
165121	if res != nil && res.StatusCode == http.StatusNotModified {
165122		if res.Body != nil {
165123			res.Body.Close()
165124		}
165125		return nil, &googleapi.Error{
165126			Code:   res.StatusCode,
165127			Header: res.Header,
165128		}
165129	}
165130	if err != nil {
165131		return nil, err
165132	}
165133	defer googleapi.CloseBody(res)
165134	if err := googleapi.CheckResponse(res); err != nil {
165135		return nil, err
165136	}
165137	ret := &TargetHttpsProxy{
165138		ServerResponse: googleapi.ServerResponse{
165139			Header:         res.Header,
165140			HTTPStatusCode: res.StatusCode,
165141		},
165142	}
165143	target := &ret
165144	if err := gensupport.DecodeResponse(target, res); err != nil {
165145		return nil, err
165146	}
165147	return ret, nil
165148	// {
165149	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
165150	//   "httpMethod": "GET",
165151	//   "id": "compute.targetHttpsProxies.get",
165152	//   "parameterOrder": [
165153	//     "project",
165154	//     "targetHttpsProxy"
165155	//   ],
165156	//   "parameters": {
165157	//     "project": {
165158	//       "description": "Project ID for this request.",
165159	//       "location": "path",
165160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165161	//       "required": true,
165162	//       "type": "string"
165163	//     },
165164	//     "targetHttpsProxy": {
165165	//       "description": "Name of the TargetHttpsProxy resource to return.",
165166	//       "location": "path",
165167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165168	//       "required": true,
165169	//       "type": "string"
165170	//     }
165171	//   },
165172	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
165173	//   "response": {
165174	//     "$ref": "TargetHttpsProxy"
165175	//   },
165176	//   "scopes": [
165177	//     "https://www.googleapis.com/auth/cloud-platform",
165178	//     "https://www.googleapis.com/auth/compute",
165179	//     "https://www.googleapis.com/auth/compute.readonly"
165180	//   ]
165181	// }
165182
165183}
165184
165185// method id "compute.targetHttpsProxies.insert":
165186
165187type TargetHttpsProxiesInsertCall struct {
165188	s                *Service
165189	project          string
165190	targethttpsproxy *TargetHttpsProxy
165191	urlParams_       gensupport.URLParams
165192	ctx_             context.Context
165193	header_          http.Header
165194}
165195
165196// Insert: Creates a TargetHttpsProxy resource in the specified project
165197// using the data included in the request.
165198func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
165199	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165200	c.project = project
165201	c.targethttpsproxy = targethttpsproxy
165202	return c
165203}
165204
165205// RequestId sets the optional parameter "requestId": An optional
165206// request ID to identify requests. Specify a unique request ID so that
165207// if you must retry your request, the server will know to ignore the
165208// request if it has already been completed.
165209//
165210// For example, consider a situation where you make an initial request
165211// and the request times out. If you make the request again with the
165212// same request ID, the server can check if original operation with the
165213// same request ID was received, and if so, will ignore the second
165214// request. This prevents clients from accidentally creating duplicate
165215// commitments.
165216//
165217// The request ID must be a valid UUID with the exception that zero UUID
165218// is not supported (00000000-0000-0000-0000-000000000000).
165219func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
165220	c.urlParams_.Set("requestId", requestId)
165221	return c
165222}
165223
165224// Fields allows partial responses to be retrieved. See
165225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165226// for more information.
165227func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
165228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165229	return c
165230}
165231
165232// Context sets the context to be used in this call's Do method. Any
165233// pending HTTP request will be aborted if the provided context is
165234// canceled.
165235func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
165236	c.ctx_ = ctx
165237	return c
165238}
165239
165240// Header returns an http.Header that can be modified by the caller to
165241// add HTTP headers to the request.
165242func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
165243	if c.header_ == nil {
165244		c.header_ = make(http.Header)
165245	}
165246	return c.header_
165247}
165248
165249func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
165250	reqHeaders := make(http.Header)
165251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
165252	for k, v := range c.header_ {
165253		reqHeaders[k] = v
165254	}
165255	reqHeaders.Set("User-Agent", c.s.userAgent())
165256	var body io.Reader = nil
165257	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
165258	if err != nil {
165259		return nil, err
165260	}
165261	reqHeaders.Set("Content-Type", "application/json")
165262	c.urlParams_.Set("alt", alt)
165263	c.urlParams_.Set("prettyPrint", "false")
165264	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
165265	urls += "?" + c.urlParams_.Encode()
165266	req, err := http.NewRequest("POST", urls, body)
165267	if err != nil {
165268		return nil, err
165269	}
165270	req.Header = reqHeaders
165271	googleapi.Expand(req.URL, map[string]string{
165272		"project": c.project,
165273	})
165274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165275}
165276
165277// Do executes the "compute.targetHttpsProxies.insert" call.
165278// Exactly one of *Operation or error will be non-nil. Any non-2xx
165279// status code is an error. Response headers are in either
165280// *Operation.ServerResponse.Header or (if a response was returned at
165281// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165282// to check whether the returned error was because
165283// http.StatusNotModified was returned.
165284func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165285	gensupport.SetOptions(c.urlParams_, opts...)
165286	res, err := c.doRequest("json")
165287	if res != nil && res.StatusCode == http.StatusNotModified {
165288		if res.Body != nil {
165289			res.Body.Close()
165290		}
165291		return nil, &googleapi.Error{
165292			Code:   res.StatusCode,
165293			Header: res.Header,
165294		}
165295	}
165296	if err != nil {
165297		return nil, err
165298	}
165299	defer googleapi.CloseBody(res)
165300	if err := googleapi.CheckResponse(res); err != nil {
165301		return nil, err
165302	}
165303	ret := &Operation{
165304		ServerResponse: googleapi.ServerResponse{
165305			Header:         res.Header,
165306			HTTPStatusCode: res.StatusCode,
165307		},
165308	}
165309	target := &ret
165310	if err := gensupport.DecodeResponse(target, res); err != nil {
165311		return nil, err
165312	}
165313	return ret, nil
165314	// {
165315	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
165316	//   "httpMethod": "POST",
165317	//   "id": "compute.targetHttpsProxies.insert",
165318	//   "parameterOrder": [
165319	//     "project"
165320	//   ],
165321	//   "parameters": {
165322	//     "project": {
165323	//       "description": "Project ID for this request.",
165324	//       "location": "path",
165325	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165326	//       "required": true,
165327	//       "type": "string"
165328	//     },
165329	//     "requestId": {
165330	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165331	//       "location": "query",
165332	//       "type": "string"
165333	//     }
165334	//   },
165335	//   "path": "{project}/global/targetHttpsProxies",
165336	//   "request": {
165337	//     "$ref": "TargetHttpsProxy"
165338	//   },
165339	//   "response": {
165340	//     "$ref": "Operation"
165341	//   },
165342	//   "scopes": [
165343	//     "https://www.googleapis.com/auth/cloud-platform",
165344	//     "https://www.googleapis.com/auth/compute"
165345	//   ]
165346	// }
165347
165348}
165349
165350// method id "compute.targetHttpsProxies.list":
165351
165352type TargetHttpsProxiesListCall struct {
165353	s            *Service
165354	project      string
165355	urlParams_   gensupport.URLParams
165356	ifNoneMatch_ string
165357	ctx_         context.Context
165358	header_      http.Header
165359}
165360
165361// List: Retrieves the list of TargetHttpsProxy resources available to
165362// the specified project.
165363func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
165364	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165365	c.project = project
165366	return c
165367}
165368
165369// Filter sets the optional parameter "filter": A filter expression that
165370// filters resources listed in the response. The expression must specify
165371// the field name, a comparison operator, and the value that you want to
165372// use for filtering. The value must be a string, a number, or a
165373// boolean. The comparison operator must be either `=`, `!=`, `>`, or
165374// `<`.
165375//
165376// For example, if you are filtering Compute Engine instances, you can
165377// exclude instances named `example-instance` by specifying `name !=
165378// example-instance`.
165379//
165380// You can also filter nested fields. For example, you could specify
165381// `scheduling.automaticRestart = false` to include instances only if
165382// they are not scheduled for automatic restarts. You can use filtering
165383// on nested fields to filter based on resource labels.
165384//
165385// To filter on multiple expressions, provide each separate expression
165386// within parentheses. For example: ``` (scheduling.automaticRestart =
165387// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
165388// is an `AND` expression. However, you can include `AND` and `OR`
165389// expressions explicitly. For example: ``` (cpuPlatform = "Intel
165390// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
165391// (scheduling.automaticRestart = true) ```
165392func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
165393	c.urlParams_.Set("filter", filter)
165394	return c
165395}
165396
165397// MaxResults sets the optional parameter "maxResults": The maximum
165398// number of results per page that should be returned. If the number of
165399// available results is larger than `maxResults`, Compute Engine returns
165400// a `nextPageToken` that can be used to get the next page of results in
165401// subsequent list requests. Acceptable values are `0` to `500`,
165402// inclusive. (Default: `500`)
165403func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
165404	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165405	return c
165406}
165407
165408// OrderBy sets the optional parameter "orderBy": Sorts list results by
165409// a certain order. By default, results are returned in alphanumerical
165410// order based on the resource name.
165411//
165412// You can also sort results in descending order based on the creation
165413// timestamp using `orderBy="creationTimestamp desc". This sorts
165414// results based on the `creationTimestamp` field in reverse
165415// chronological order (newest result first). Use this to sort resources
165416// like operations so that the newest operation is returned
165417// first.
165418//
165419// Currently, only sorting by `name` or `creationTimestamp desc` is
165420// supported.
165421func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
165422	c.urlParams_.Set("orderBy", orderBy)
165423	return c
165424}
165425
165426// PageToken sets the optional parameter "pageToken": Specifies a page
165427// token to use. Set `pageToken` to the `nextPageToken` returned by a
165428// previous list request to get the next page of results.
165429func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
165430	c.urlParams_.Set("pageToken", pageToken)
165431	return c
165432}
165433
165434// ReturnPartialSuccess sets the optional parameter
165435// "returnPartialSuccess": Opt-in for partial success behavior which
165436// provides partial results in case of failure. The default value is
165437// false and the logic is the same as today.
165438func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall {
165439	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
165440	return c
165441}
165442
165443// Fields allows partial responses to be retrieved. See
165444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165445// for more information.
165446func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
165447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165448	return c
165449}
165450
165451// IfNoneMatch sets the optional parameter which makes the operation
165452// fail if the object's ETag matches the given value. This is useful for
165453// getting updates only after the object has changed since the last
165454// request. Use googleapi.IsNotModified to check whether the response
165455// error from Do is the result of In-None-Match.
165456func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
165457	c.ifNoneMatch_ = entityTag
165458	return c
165459}
165460
165461// Context sets the context to be used in this call's Do method. Any
165462// pending HTTP request will be aborted if the provided context is
165463// canceled.
165464func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
165465	c.ctx_ = ctx
165466	return c
165467}
165468
165469// Header returns an http.Header that can be modified by the caller to
165470// add HTTP headers to the request.
165471func (c *TargetHttpsProxiesListCall) Header() http.Header {
165472	if c.header_ == nil {
165473		c.header_ = make(http.Header)
165474	}
165475	return c.header_
165476}
165477
165478func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
165479	reqHeaders := make(http.Header)
165480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
165481	for k, v := range c.header_ {
165482		reqHeaders[k] = v
165483	}
165484	reqHeaders.Set("User-Agent", c.s.userAgent())
165485	if c.ifNoneMatch_ != "" {
165486		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165487	}
165488	var body io.Reader = nil
165489	c.urlParams_.Set("alt", alt)
165490	c.urlParams_.Set("prettyPrint", "false")
165491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
165492	urls += "?" + c.urlParams_.Encode()
165493	req, err := http.NewRequest("GET", urls, body)
165494	if err != nil {
165495		return nil, err
165496	}
165497	req.Header = reqHeaders
165498	googleapi.Expand(req.URL, map[string]string{
165499		"project": c.project,
165500	})
165501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165502}
165503
165504// Do executes the "compute.targetHttpsProxies.list" call.
165505// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
165506// non-2xx status code is an error. Response headers are in either
165507// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
165508// returned at all) in error.(*googleapi.Error).Header. Use
165509// googleapi.IsNotModified to check whether the returned error was
165510// because http.StatusNotModified was returned.
165511func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
165512	gensupport.SetOptions(c.urlParams_, opts...)
165513	res, err := c.doRequest("json")
165514	if res != nil && res.StatusCode == http.StatusNotModified {
165515		if res.Body != nil {
165516			res.Body.Close()
165517		}
165518		return nil, &googleapi.Error{
165519			Code:   res.StatusCode,
165520			Header: res.Header,
165521		}
165522	}
165523	if err != nil {
165524		return nil, err
165525	}
165526	defer googleapi.CloseBody(res)
165527	if err := googleapi.CheckResponse(res); err != nil {
165528		return nil, err
165529	}
165530	ret := &TargetHttpsProxyList{
165531		ServerResponse: googleapi.ServerResponse{
165532			Header:         res.Header,
165533			HTTPStatusCode: res.StatusCode,
165534		},
165535	}
165536	target := &ret
165537	if err := gensupport.DecodeResponse(target, res); err != nil {
165538		return nil, err
165539	}
165540	return ret, nil
165541	// {
165542	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
165543	//   "httpMethod": "GET",
165544	//   "id": "compute.targetHttpsProxies.list",
165545	//   "parameterOrder": [
165546	//     "project"
165547	//   ],
165548	//   "parameters": {
165549	//     "filter": {
165550	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
165551	//       "location": "query",
165552	//       "type": "string"
165553	//     },
165554	//     "maxResults": {
165555	//       "default": "500",
165556	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
165557	//       "format": "uint32",
165558	//       "location": "query",
165559	//       "minimum": "0",
165560	//       "type": "integer"
165561	//     },
165562	//     "orderBy": {
165563	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
165564	//       "location": "query",
165565	//       "type": "string"
165566	//     },
165567	//     "pageToken": {
165568	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
165569	//       "location": "query",
165570	//       "type": "string"
165571	//     },
165572	//     "project": {
165573	//       "description": "Project ID for this request.",
165574	//       "location": "path",
165575	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165576	//       "required": true,
165577	//       "type": "string"
165578	//     },
165579	//     "returnPartialSuccess": {
165580	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
165581	//       "location": "query",
165582	//       "type": "boolean"
165583	//     }
165584	//   },
165585	//   "path": "{project}/global/targetHttpsProxies",
165586	//   "response": {
165587	//     "$ref": "TargetHttpsProxyList"
165588	//   },
165589	//   "scopes": [
165590	//     "https://www.googleapis.com/auth/cloud-platform",
165591	//     "https://www.googleapis.com/auth/compute",
165592	//     "https://www.googleapis.com/auth/compute.readonly"
165593	//   ]
165594	// }
165595
165596}
165597
165598// Pages invokes f for each page of results.
165599// A non-nil error returned from f will halt the iteration.
165600// The provided context supersedes any context provided to the Context method.
165601func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
165602	c.ctx_ = ctx
165603	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165604	for {
165605		x, err := c.Do()
165606		if err != nil {
165607			return err
165608		}
165609		if err := f(x); err != nil {
165610			return err
165611		}
165612		if x.NextPageToken == "" {
165613			return nil
165614		}
165615		c.PageToken(x.NextPageToken)
165616	}
165617}
165618
165619// method id "compute.targetHttpsProxies.setQuicOverride":
165620
165621type TargetHttpsProxiesSetQuicOverrideCall struct {
165622	s                                        *Service
165623	project                                  string
165624	targetHttpsProxy                         string
165625	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
165626	urlParams_                               gensupport.URLParams
165627	ctx_                                     context.Context
165628	header_                                  http.Header
165629}
165630
165631// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
165632func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
165633	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165634	c.project = project
165635	c.targetHttpsProxy = targetHttpsProxy
165636	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
165637	return c
165638}
165639
165640// RequestId sets the optional parameter "requestId": An optional
165641// request ID to identify requests. Specify a unique request ID so that
165642// if you must retry your request, the server will know to ignore the
165643// request if it has already been completed.
165644//
165645// For example, consider a situation where you make an initial request
165646// and the request times out. If you make the request again with the
165647// same request ID, the server can check if original operation with the
165648// same request ID was received, and if so, will ignore the second
165649// request. This prevents clients from accidentally creating duplicate
165650// commitments.
165651//
165652// The request ID must be a valid UUID with the exception that zero UUID
165653// is not supported (00000000-0000-0000-0000-000000000000).
165654func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
165655	c.urlParams_.Set("requestId", requestId)
165656	return c
165657}
165658
165659// Fields allows partial responses to be retrieved. See
165660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165661// for more information.
165662func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
165663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165664	return c
165665}
165666
165667// Context sets the context to be used in this call's Do method. Any
165668// pending HTTP request will be aborted if the provided context is
165669// canceled.
165670func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
165671	c.ctx_ = ctx
165672	return c
165673}
165674
165675// Header returns an http.Header that can be modified by the caller to
165676// add HTTP headers to the request.
165677func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
165678	if c.header_ == nil {
165679		c.header_ = make(http.Header)
165680	}
165681	return c.header_
165682}
165683
165684func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
165685	reqHeaders := make(http.Header)
165686	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
165687	for k, v := range c.header_ {
165688		reqHeaders[k] = v
165689	}
165690	reqHeaders.Set("User-Agent", c.s.userAgent())
165691	var body io.Reader = nil
165692	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
165693	if err != nil {
165694		return nil, err
165695	}
165696	reqHeaders.Set("Content-Type", "application/json")
165697	c.urlParams_.Set("alt", alt)
165698	c.urlParams_.Set("prettyPrint", "false")
165699	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
165700	urls += "?" + c.urlParams_.Encode()
165701	req, err := http.NewRequest("POST", urls, body)
165702	if err != nil {
165703		return nil, err
165704	}
165705	req.Header = reqHeaders
165706	googleapi.Expand(req.URL, map[string]string{
165707		"project":          c.project,
165708		"targetHttpsProxy": c.targetHttpsProxy,
165709	})
165710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165711}
165712
165713// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
165714// Exactly one of *Operation or error will be non-nil. Any non-2xx
165715// status code is an error. Response headers are in either
165716// *Operation.ServerResponse.Header or (if a response was returned at
165717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165718// to check whether the returned error was because
165719// http.StatusNotModified was returned.
165720func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165721	gensupport.SetOptions(c.urlParams_, opts...)
165722	res, err := c.doRequest("json")
165723	if res != nil && res.StatusCode == http.StatusNotModified {
165724		if res.Body != nil {
165725			res.Body.Close()
165726		}
165727		return nil, &googleapi.Error{
165728			Code:   res.StatusCode,
165729			Header: res.Header,
165730		}
165731	}
165732	if err != nil {
165733		return nil, err
165734	}
165735	defer googleapi.CloseBody(res)
165736	if err := googleapi.CheckResponse(res); err != nil {
165737		return nil, err
165738	}
165739	ret := &Operation{
165740		ServerResponse: googleapi.ServerResponse{
165741			Header:         res.Header,
165742			HTTPStatusCode: res.StatusCode,
165743		},
165744	}
165745	target := &ret
165746	if err := gensupport.DecodeResponse(target, res); err != nil {
165747		return nil, err
165748	}
165749	return ret, nil
165750	// {
165751	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
165752	//   "httpMethod": "POST",
165753	//   "id": "compute.targetHttpsProxies.setQuicOverride",
165754	//   "parameterOrder": [
165755	//     "project",
165756	//     "targetHttpsProxy"
165757	//   ],
165758	//   "parameters": {
165759	//     "project": {
165760	//       "description": "Project ID for this request.",
165761	//       "location": "path",
165762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165763	//       "required": true,
165764	//       "type": "string"
165765	//     },
165766	//     "requestId": {
165767	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165768	//       "location": "query",
165769	//       "type": "string"
165770	//     },
165771	//     "targetHttpsProxy": {
165772	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
165773	//       "location": "path",
165774	//       "required": true,
165775	//       "type": "string"
165776	//     }
165777	//   },
165778	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
165779	//   "request": {
165780	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
165781	//   },
165782	//   "response": {
165783	//     "$ref": "Operation"
165784	//   },
165785	//   "scopes": [
165786	//     "https://www.googleapis.com/auth/cloud-platform",
165787	//     "https://www.googleapis.com/auth/compute"
165788	//   ]
165789	// }
165790
165791}
165792
165793// method id "compute.targetHttpsProxies.setSslCertificates":
165794
165795type TargetHttpsProxiesSetSslCertificatesCall struct {
165796	s                                           *Service
165797	project                                     string
165798	targetHttpsProxy                            string
165799	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
165800	urlParams_                                  gensupport.URLParams
165801	ctx_                                        context.Context
165802	header_                                     http.Header
165803}
165804
165805// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
165806func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
165807	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165808	c.project = project
165809	c.targetHttpsProxy = targetHttpsProxy
165810	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
165811	return c
165812}
165813
165814// RequestId sets the optional parameter "requestId": An optional
165815// request ID to identify requests. Specify a unique request ID so that
165816// if you must retry your request, the server will know to ignore the
165817// request if it has already been completed.
165818//
165819// For example, consider a situation where you make an initial request
165820// and the request times out. If you make the request again with the
165821// same request ID, the server can check if original operation with the
165822// same request ID was received, and if so, will ignore the second
165823// request. This prevents clients from accidentally creating duplicate
165824// commitments.
165825//
165826// The request ID must be a valid UUID with the exception that zero UUID
165827// is not supported (00000000-0000-0000-0000-000000000000).
165828func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
165829	c.urlParams_.Set("requestId", requestId)
165830	return c
165831}
165832
165833// Fields allows partial responses to be retrieved. See
165834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165835// for more information.
165836func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
165837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165838	return c
165839}
165840
165841// Context sets the context to be used in this call's Do method. Any
165842// pending HTTP request will be aborted if the provided context is
165843// canceled.
165844func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
165845	c.ctx_ = ctx
165846	return c
165847}
165848
165849// Header returns an http.Header that can be modified by the caller to
165850// add HTTP headers to the request.
165851func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
165852	if c.header_ == nil {
165853		c.header_ = make(http.Header)
165854	}
165855	return c.header_
165856}
165857
165858func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
165859	reqHeaders := make(http.Header)
165860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
165861	for k, v := range c.header_ {
165862		reqHeaders[k] = v
165863	}
165864	reqHeaders.Set("User-Agent", c.s.userAgent())
165865	var body io.Reader = nil
165866	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
165867	if err != nil {
165868		return nil, err
165869	}
165870	reqHeaders.Set("Content-Type", "application/json")
165871	c.urlParams_.Set("alt", alt)
165872	c.urlParams_.Set("prettyPrint", "false")
165873	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
165874	urls += "?" + c.urlParams_.Encode()
165875	req, err := http.NewRequest("POST", urls, body)
165876	if err != nil {
165877		return nil, err
165878	}
165879	req.Header = reqHeaders
165880	googleapi.Expand(req.URL, map[string]string{
165881		"project":          c.project,
165882		"targetHttpsProxy": c.targetHttpsProxy,
165883	})
165884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165885}
165886
165887// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
165888// Exactly one of *Operation or error will be non-nil. Any non-2xx
165889// status code is an error. Response headers are in either
165890// *Operation.ServerResponse.Header or (if a response was returned at
165891// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165892// to check whether the returned error was because
165893// http.StatusNotModified was returned.
165894func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165895	gensupport.SetOptions(c.urlParams_, opts...)
165896	res, err := c.doRequest("json")
165897	if res != nil && res.StatusCode == http.StatusNotModified {
165898		if res.Body != nil {
165899			res.Body.Close()
165900		}
165901		return nil, &googleapi.Error{
165902			Code:   res.StatusCode,
165903			Header: res.Header,
165904		}
165905	}
165906	if err != nil {
165907		return nil, err
165908	}
165909	defer googleapi.CloseBody(res)
165910	if err := googleapi.CheckResponse(res); err != nil {
165911		return nil, err
165912	}
165913	ret := &Operation{
165914		ServerResponse: googleapi.ServerResponse{
165915			Header:         res.Header,
165916			HTTPStatusCode: res.StatusCode,
165917		},
165918	}
165919	target := &ret
165920	if err := gensupport.DecodeResponse(target, res); err != nil {
165921		return nil, err
165922	}
165923	return ret, nil
165924	// {
165925	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
165926	//   "httpMethod": "POST",
165927	//   "id": "compute.targetHttpsProxies.setSslCertificates",
165928	//   "parameterOrder": [
165929	//     "project",
165930	//     "targetHttpsProxy"
165931	//   ],
165932	//   "parameters": {
165933	//     "project": {
165934	//       "description": "Project ID for this request.",
165935	//       "location": "path",
165936	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165937	//       "required": true,
165938	//       "type": "string"
165939	//     },
165940	//     "requestId": {
165941	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165942	//       "location": "query",
165943	//       "type": "string"
165944	//     },
165945	//     "targetHttpsProxy": {
165946	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
165947	//       "location": "path",
165948	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165949	//       "required": true,
165950	//       "type": "string"
165951	//     }
165952	//   },
165953	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
165954	//   "request": {
165955	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
165956	//   },
165957	//   "response": {
165958	//     "$ref": "Operation"
165959	//   },
165960	//   "scopes": [
165961	//     "https://www.googleapis.com/auth/cloud-platform",
165962	//     "https://www.googleapis.com/auth/compute"
165963	//   ]
165964	// }
165965
165966}
165967
165968// method id "compute.targetHttpsProxies.setSslPolicy":
165969
165970type TargetHttpsProxiesSetSslPolicyCall struct {
165971	s                  *Service
165972	project            string
165973	targetHttpsProxy   string
165974	sslpolicyreference *SslPolicyReference
165975	urlParams_         gensupport.URLParams
165976	ctx_               context.Context
165977	header_            http.Header
165978}
165979
165980// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
165981// policy specifies the server-side support for SSL features. This
165982// affects connections between clients and the HTTPS proxy load
165983// balancer. They do not affect the connection between the load balancer
165984// and the backends.
165985func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
165986	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165987	c.project = project
165988	c.targetHttpsProxy = targetHttpsProxy
165989	c.sslpolicyreference = sslpolicyreference
165990	return c
165991}
165992
165993// RequestId sets the optional parameter "requestId": An optional
165994// request ID to identify requests. Specify a unique request ID so that
165995// if you must retry your request, the server will know to ignore the
165996// request if it has already been completed.
165997//
165998// For example, consider a situation where you make an initial request
165999// and the request times out. If you make the request again with the
166000// same request ID, the server can check if original operation with the
166001// same request ID was received, and if so, will ignore the second
166002// request. This prevents clients from accidentally creating duplicate
166003// commitments.
166004//
166005// The request ID must be a valid UUID with the exception that zero UUID
166006// is not supported (00000000-0000-0000-0000-000000000000).
166007func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
166008	c.urlParams_.Set("requestId", requestId)
166009	return c
166010}
166011
166012// Fields allows partial responses to be retrieved. See
166013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166014// for more information.
166015func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
166016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166017	return c
166018}
166019
166020// Context sets the context to be used in this call's Do method. Any
166021// pending HTTP request will be aborted if the provided context is
166022// canceled.
166023func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
166024	c.ctx_ = ctx
166025	return c
166026}
166027
166028// Header returns an http.Header that can be modified by the caller to
166029// add HTTP headers to the request.
166030func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
166031	if c.header_ == nil {
166032		c.header_ = make(http.Header)
166033	}
166034	return c.header_
166035}
166036
166037func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
166038	reqHeaders := make(http.Header)
166039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
166040	for k, v := range c.header_ {
166041		reqHeaders[k] = v
166042	}
166043	reqHeaders.Set("User-Agent", c.s.userAgent())
166044	var body io.Reader = nil
166045	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
166046	if err != nil {
166047		return nil, err
166048	}
166049	reqHeaders.Set("Content-Type", "application/json")
166050	c.urlParams_.Set("alt", alt)
166051	c.urlParams_.Set("prettyPrint", "false")
166052	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
166053	urls += "?" + c.urlParams_.Encode()
166054	req, err := http.NewRequest("POST", urls, body)
166055	if err != nil {
166056		return nil, err
166057	}
166058	req.Header = reqHeaders
166059	googleapi.Expand(req.URL, map[string]string{
166060		"project":          c.project,
166061		"targetHttpsProxy": c.targetHttpsProxy,
166062	})
166063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166064}
166065
166066// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
166067// Exactly one of *Operation or error will be non-nil. Any non-2xx
166068// status code is an error. Response headers are in either
166069// *Operation.ServerResponse.Header or (if a response was returned at
166070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166071// to check whether the returned error was because
166072// http.StatusNotModified was returned.
166073func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166074	gensupport.SetOptions(c.urlParams_, opts...)
166075	res, err := c.doRequest("json")
166076	if res != nil && res.StatusCode == http.StatusNotModified {
166077		if res.Body != nil {
166078			res.Body.Close()
166079		}
166080		return nil, &googleapi.Error{
166081			Code:   res.StatusCode,
166082			Header: res.Header,
166083		}
166084	}
166085	if err != nil {
166086		return nil, err
166087	}
166088	defer googleapi.CloseBody(res)
166089	if err := googleapi.CheckResponse(res); err != nil {
166090		return nil, err
166091	}
166092	ret := &Operation{
166093		ServerResponse: googleapi.ServerResponse{
166094			Header:         res.Header,
166095			HTTPStatusCode: res.StatusCode,
166096		},
166097	}
166098	target := &ret
166099	if err := gensupport.DecodeResponse(target, res); err != nil {
166100		return nil, err
166101	}
166102	return ret, nil
166103	// {
166104	//   "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.",
166105	//   "httpMethod": "POST",
166106	//   "id": "compute.targetHttpsProxies.setSslPolicy",
166107	//   "parameterOrder": [
166108	//     "project",
166109	//     "targetHttpsProxy"
166110	//   ],
166111	//   "parameters": {
166112	//     "project": {
166113	//       "description": "Project ID for this request.",
166114	//       "location": "path",
166115	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166116	//       "required": true,
166117	//       "type": "string"
166118	//     },
166119	//     "requestId": {
166120	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166121	//       "location": "query",
166122	//       "type": "string"
166123	//     },
166124	//     "targetHttpsProxy": {
166125	//       "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.",
166126	//       "location": "path",
166127	//       "required": true,
166128	//       "type": "string"
166129	//     }
166130	//   },
166131	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
166132	//   "request": {
166133	//     "$ref": "SslPolicyReference"
166134	//   },
166135	//   "response": {
166136	//     "$ref": "Operation"
166137	//   },
166138	//   "scopes": [
166139	//     "https://www.googleapis.com/auth/cloud-platform",
166140	//     "https://www.googleapis.com/auth/compute"
166141	//   ]
166142	// }
166143
166144}
166145
166146// method id "compute.targetHttpsProxies.setUrlMap":
166147
166148type TargetHttpsProxiesSetUrlMapCall struct {
166149	s                *Service
166150	project          string
166151	targetHttpsProxy string
166152	urlmapreference  *UrlMapReference
166153	urlParams_       gensupport.URLParams
166154	ctx_             context.Context
166155	header_          http.Header
166156}
166157
166158// SetUrlMap: Changes the URL map for TargetHttpsProxy.
166159func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
166160	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166161	c.project = project
166162	c.targetHttpsProxy = targetHttpsProxy
166163	c.urlmapreference = urlmapreference
166164	return c
166165}
166166
166167// RequestId sets the optional parameter "requestId": An optional
166168// request ID to identify requests. Specify a unique request ID so that
166169// if you must retry your request, the server will know to ignore the
166170// request if it has already been completed.
166171//
166172// For example, consider a situation where you make an initial request
166173// and the request times out. If you make the request again with the
166174// same request ID, the server can check if original operation with the
166175// same request ID was received, and if so, will ignore the second
166176// request. This prevents clients from accidentally creating duplicate
166177// commitments.
166178//
166179// The request ID must be a valid UUID with the exception that zero UUID
166180// is not supported (00000000-0000-0000-0000-000000000000).
166181func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
166182	c.urlParams_.Set("requestId", requestId)
166183	return c
166184}
166185
166186// Fields allows partial responses to be retrieved. See
166187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166188// for more information.
166189func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
166190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166191	return c
166192}
166193
166194// Context sets the context to be used in this call's Do method. Any
166195// pending HTTP request will be aborted if the provided context is
166196// canceled.
166197func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
166198	c.ctx_ = ctx
166199	return c
166200}
166201
166202// Header returns an http.Header that can be modified by the caller to
166203// add HTTP headers to the request.
166204func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
166205	if c.header_ == nil {
166206		c.header_ = make(http.Header)
166207	}
166208	return c.header_
166209}
166210
166211func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
166212	reqHeaders := make(http.Header)
166213	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
166214	for k, v := range c.header_ {
166215		reqHeaders[k] = v
166216	}
166217	reqHeaders.Set("User-Agent", c.s.userAgent())
166218	var body io.Reader = nil
166219	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
166220	if err != nil {
166221		return nil, err
166222	}
166223	reqHeaders.Set("Content-Type", "application/json")
166224	c.urlParams_.Set("alt", alt)
166225	c.urlParams_.Set("prettyPrint", "false")
166226	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
166227	urls += "?" + c.urlParams_.Encode()
166228	req, err := http.NewRequest("POST", urls, body)
166229	if err != nil {
166230		return nil, err
166231	}
166232	req.Header = reqHeaders
166233	googleapi.Expand(req.URL, map[string]string{
166234		"project":          c.project,
166235		"targetHttpsProxy": c.targetHttpsProxy,
166236	})
166237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166238}
166239
166240// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
166241// Exactly one of *Operation or error will be non-nil. Any non-2xx
166242// status code is an error. Response headers are in either
166243// *Operation.ServerResponse.Header or (if a response was returned at
166244// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166245// to check whether the returned error was because
166246// http.StatusNotModified was returned.
166247func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166248	gensupport.SetOptions(c.urlParams_, opts...)
166249	res, err := c.doRequest("json")
166250	if res != nil && res.StatusCode == http.StatusNotModified {
166251		if res.Body != nil {
166252			res.Body.Close()
166253		}
166254		return nil, &googleapi.Error{
166255			Code:   res.StatusCode,
166256			Header: res.Header,
166257		}
166258	}
166259	if err != nil {
166260		return nil, err
166261	}
166262	defer googleapi.CloseBody(res)
166263	if err := googleapi.CheckResponse(res); err != nil {
166264		return nil, err
166265	}
166266	ret := &Operation{
166267		ServerResponse: googleapi.ServerResponse{
166268			Header:         res.Header,
166269			HTTPStatusCode: res.StatusCode,
166270		},
166271	}
166272	target := &ret
166273	if err := gensupport.DecodeResponse(target, res); err != nil {
166274		return nil, err
166275	}
166276	return ret, nil
166277	// {
166278	//   "description": "Changes the URL map for TargetHttpsProxy.",
166279	//   "httpMethod": "POST",
166280	//   "id": "compute.targetHttpsProxies.setUrlMap",
166281	//   "parameterOrder": [
166282	//     "project",
166283	//     "targetHttpsProxy"
166284	//   ],
166285	//   "parameters": {
166286	//     "project": {
166287	//       "description": "Project ID for this request.",
166288	//       "location": "path",
166289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166290	//       "required": true,
166291	//       "type": "string"
166292	//     },
166293	//     "requestId": {
166294	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166295	//       "location": "query",
166296	//       "type": "string"
166297	//     },
166298	//     "targetHttpsProxy": {
166299	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
166300	//       "location": "path",
166301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166302	//       "required": true,
166303	//       "type": "string"
166304	//     }
166305	//   },
166306	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
166307	//   "request": {
166308	//     "$ref": "UrlMapReference"
166309	//   },
166310	//   "response": {
166311	//     "$ref": "Operation"
166312	//   },
166313	//   "scopes": [
166314	//     "https://www.googleapis.com/auth/cloud-platform",
166315	//     "https://www.googleapis.com/auth/compute"
166316	//   ]
166317	// }
166318
166319}
166320
166321// method id "compute.targetHttpsProxies.testIamPermissions":
166322
166323type TargetHttpsProxiesTestIamPermissionsCall struct {
166324	s                      *Service
166325	project                string
166326	resource               string
166327	testpermissionsrequest *TestPermissionsRequest
166328	urlParams_             gensupport.URLParams
166329	ctx_                   context.Context
166330	header_                http.Header
166331}
166332
166333// TestIamPermissions: Returns permissions that a caller has on the
166334// specified resource.
166335func (r *TargetHttpsProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpsProxiesTestIamPermissionsCall {
166336	c := &TargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166337	c.project = project
166338	c.resource = resource
166339	c.testpermissionsrequest = testpermissionsrequest
166340	return c
166341}
166342
166343// Fields allows partial responses to be retrieved. See
166344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166345// for more information.
166346func (c *TargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesTestIamPermissionsCall {
166347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166348	return c
166349}
166350
166351// Context sets the context to be used in this call's Do method. Any
166352// pending HTTP request will be aborted if the provided context is
166353// canceled.
166354func (c *TargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpsProxiesTestIamPermissionsCall {
166355	c.ctx_ = ctx
166356	return c
166357}
166358
166359// Header returns an http.Header that can be modified by the caller to
166360// add HTTP headers to the request.
166361func (c *TargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
166362	if c.header_ == nil {
166363		c.header_ = make(http.Header)
166364	}
166365	return c.header_
166366}
166367
166368func (c *TargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
166369	reqHeaders := make(http.Header)
166370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
166371	for k, v := range c.header_ {
166372		reqHeaders[k] = v
166373	}
166374	reqHeaders.Set("User-Agent", c.s.userAgent())
166375	var body io.Reader = nil
166376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
166377	if err != nil {
166378		return nil, err
166379	}
166380	reqHeaders.Set("Content-Type", "application/json")
166381	c.urlParams_.Set("alt", alt)
166382	c.urlParams_.Set("prettyPrint", "false")
166383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{resource}/testIamPermissions")
166384	urls += "?" + c.urlParams_.Encode()
166385	req, err := http.NewRequest("POST", urls, body)
166386	if err != nil {
166387		return nil, err
166388	}
166389	req.Header = reqHeaders
166390	googleapi.Expand(req.URL, map[string]string{
166391		"project":  c.project,
166392		"resource": c.resource,
166393	})
166394	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166395}
166396
166397// Do executes the "compute.targetHttpsProxies.testIamPermissions" call.
166398// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
166399// non-2xx status code is an error. Response headers are in either
166400// *TestPermissionsResponse.ServerResponse.Header or (if a response was
166401// returned at all) in error.(*googleapi.Error).Header. Use
166402// googleapi.IsNotModified to check whether the returned error was
166403// because http.StatusNotModified was returned.
166404func (c *TargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
166405	gensupport.SetOptions(c.urlParams_, opts...)
166406	res, err := c.doRequest("json")
166407	if res != nil && res.StatusCode == http.StatusNotModified {
166408		if res.Body != nil {
166409			res.Body.Close()
166410		}
166411		return nil, &googleapi.Error{
166412			Code:   res.StatusCode,
166413			Header: res.Header,
166414		}
166415	}
166416	if err != nil {
166417		return nil, err
166418	}
166419	defer googleapi.CloseBody(res)
166420	if err := googleapi.CheckResponse(res); err != nil {
166421		return nil, err
166422	}
166423	ret := &TestPermissionsResponse{
166424		ServerResponse: googleapi.ServerResponse{
166425			Header:         res.Header,
166426			HTTPStatusCode: res.StatusCode,
166427		},
166428	}
166429	target := &ret
166430	if err := gensupport.DecodeResponse(target, res); err != nil {
166431		return nil, err
166432	}
166433	return ret, nil
166434	// {
166435	//   "description": "Returns permissions that a caller has on the specified resource.",
166436	//   "httpMethod": "POST",
166437	//   "id": "compute.targetHttpsProxies.testIamPermissions",
166438	//   "parameterOrder": [
166439	//     "project",
166440	//     "resource"
166441	//   ],
166442	//   "parameters": {
166443	//     "project": {
166444	//       "description": "Project ID for this request.",
166445	//       "location": "path",
166446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166447	//       "required": true,
166448	//       "type": "string"
166449	//     },
166450	//     "resource": {
166451	//       "description": "Name or id of the resource for this request.",
166452	//       "location": "path",
166453	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166454	//       "required": true,
166455	//       "type": "string"
166456	//     }
166457	//   },
166458	//   "path": "{project}/global/targetHttpsProxies/{resource}/testIamPermissions",
166459	//   "request": {
166460	//     "$ref": "TestPermissionsRequest"
166461	//   },
166462	//   "response": {
166463	//     "$ref": "TestPermissionsResponse"
166464	//   },
166465	//   "scopes": [
166466	//     "https://www.googleapis.com/auth/cloud-platform",
166467	//     "https://www.googleapis.com/auth/compute",
166468	//     "https://www.googleapis.com/auth/compute.readonly"
166469	//   ]
166470	// }
166471
166472}
166473
166474// method id "compute.targetInstances.aggregatedList":
166475
166476type TargetInstancesAggregatedListCall struct {
166477	s            *Service
166478	project      string
166479	urlParams_   gensupport.URLParams
166480	ifNoneMatch_ string
166481	ctx_         context.Context
166482	header_      http.Header
166483}
166484
166485// AggregatedList: Retrieves an aggregated list of target instances.
166486// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
166487func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
166488	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166489	c.project = project
166490	return c
166491}
166492
166493// Filter sets the optional parameter "filter": A filter expression that
166494// filters resources listed in the response. The expression must specify
166495// the field name, a comparison operator, and the value that you want to
166496// use for filtering. The value must be a string, a number, or a
166497// boolean. The comparison operator must be either `=`, `!=`, `>`, or
166498// `<`.
166499//
166500// For example, if you are filtering Compute Engine instances, you can
166501// exclude instances named `example-instance` by specifying `name !=
166502// example-instance`.
166503//
166504// You can also filter nested fields. For example, you could specify
166505// `scheduling.automaticRestart = false` to include instances only if
166506// they are not scheduled for automatic restarts. You can use filtering
166507// on nested fields to filter based on resource labels.
166508//
166509// To filter on multiple expressions, provide each separate expression
166510// within parentheses. For example: ``` (scheduling.automaticRestart =
166511// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
166512// is an `AND` expression. However, you can include `AND` and `OR`
166513// expressions explicitly. For example: ``` (cpuPlatform = "Intel
166514// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
166515// (scheduling.automaticRestart = true) ```
166516func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
166517	c.urlParams_.Set("filter", filter)
166518	return c
166519}
166520
166521// IncludeAllScopes sets the optional parameter "includeAllScopes":
166522// Indicates whether every visible scope for each scope type (zone,
166523// region, global) should be included in the response. For new resource
166524// types added after this field, the flag has no effect as new resource
166525// types will always include every visible scope for each scope type in
166526// response. For resource types which predate this field, if this flag
166527// is omitted or false, only scopes of the scope types where the
166528// resource type is expected to be found will be included.
166529func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
166530	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
166531	return c
166532}
166533
166534// MaxResults sets the optional parameter "maxResults": The maximum
166535// number of results per page that should be returned. If the number of
166536// available results is larger than `maxResults`, Compute Engine returns
166537// a `nextPageToken` that can be used to get the next page of results in
166538// subsequent list requests. Acceptable values are `0` to `500`,
166539// inclusive. (Default: `500`)
166540func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
166541	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166542	return c
166543}
166544
166545// OrderBy sets the optional parameter "orderBy": Sorts list results by
166546// a certain order. By default, results are returned in alphanumerical
166547// order based on the resource name.
166548//
166549// You can also sort results in descending order based on the creation
166550// timestamp using `orderBy="creationTimestamp desc". This sorts
166551// results based on the `creationTimestamp` field in reverse
166552// chronological order (newest result first). Use this to sort resources
166553// like operations so that the newest operation is returned
166554// first.
166555//
166556// Currently, only sorting by `name` or `creationTimestamp desc` is
166557// supported.
166558func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
166559	c.urlParams_.Set("orderBy", orderBy)
166560	return c
166561}
166562
166563// PageToken sets the optional parameter "pageToken": Specifies a page
166564// token to use. Set `pageToken` to the `nextPageToken` returned by a
166565// previous list request to get the next page of results.
166566func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
166567	c.urlParams_.Set("pageToken", pageToken)
166568	return c
166569}
166570
166571// ReturnPartialSuccess sets the optional parameter
166572// "returnPartialSuccess": Opt-in for partial success behavior which
166573// provides partial results in case of failure. The default value is
166574// false and the logic is the same as today.
166575func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall {
166576	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
166577	return c
166578}
166579
166580// Fields allows partial responses to be retrieved. See
166581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166582// for more information.
166583func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
166584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166585	return c
166586}
166587
166588// IfNoneMatch sets the optional parameter which makes the operation
166589// fail if the object's ETag matches the given value. This is useful for
166590// getting updates only after the object has changed since the last
166591// request. Use googleapi.IsNotModified to check whether the response
166592// error from Do is the result of In-None-Match.
166593func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
166594	c.ifNoneMatch_ = entityTag
166595	return c
166596}
166597
166598// Context sets the context to be used in this call's Do method. Any
166599// pending HTTP request will be aborted if the provided context is
166600// canceled.
166601func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
166602	c.ctx_ = ctx
166603	return c
166604}
166605
166606// Header returns an http.Header that can be modified by the caller to
166607// add HTTP headers to the request.
166608func (c *TargetInstancesAggregatedListCall) Header() http.Header {
166609	if c.header_ == nil {
166610		c.header_ = make(http.Header)
166611	}
166612	return c.header_
166613}
166614
166615func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
166616	reqHeaders := make(http.Header)
166617	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
166618	for k, v := range c.header_ {
166619		reqHeaders[k] = v
166620	}
166621	reqHeaders.Set("User-Agent", c.s.userAgent())
166622	if c.ifNoneMatch_ != "" {
166623		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166624	}
166625	var body io.Reader = nil
166626	c.urlParams_.Set("alt", alt)
166627	c.urlParams_.Set("prettyPrint", "false")
166628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
166629	urls += "?" + c.urlParams_.Encode()
166630	req, err := http.NewRequest("GET", urls, body)
166631	if err != nil {
166632		return nil, err
166633	}
166634	req.Header = reqHeaders
166635	googleapi.Expand(req.URL, map[string]string{
166636		"project": c.project,
166637	})
166638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166639}
166640
166641// Do executes the "compute.targetInstances.aggregatedList" call.
166642// Exactly one of *TargetInstanceAggregatedList or error will be
166643// non-nil. Any non-2xx status code is an error. Response headers are in
166644// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
166645// response was returned at all) in error.(*googleapi.Error).Header. Use
166646// googleapi.IsNotModified to check whether the returned error was
166647// because http.StatusNotModified was returned.
166648func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
166649	gensupport.SetOptions(c.urlParams_, opts...)
166650	res, err := c.doRequest("json")
166651	if res != nil && res.StatusCode == http.StatusNotModified {
166652		if res.Body != nil {
166653			res.Body.Close()
166654		}
166655		return nil, &googleapi.Error{
166656			Code:   res.StatusCode,
166657			Header: res.Header,
166658		}
166659	}
166660	if err != nil {
166661		return nil, err
166662	}
166663	defer googleapi.CloseBody(res)
166664	if err := googleapi.CheckResponse(res); err != nil {
166665		return nil, err
166666	}
166667	ret := &TargetInstanceAggregatedList{
166668		ServerResponse: googleapi.ServerResponse{
166669			Header:         res.Header,
166670			HTTPStatusCode: res.StatusCode,
166671		},
166672	}
166673	target := &ret
166674	if err := gensupport.DecodeResponse(target, res); err != nil {
166675		return nil, err
166676	}
166677	return ret, nil
166678	// {
166679	//   "description": "Retrieves an aggregated list of target instances.",
166680	//   "httpMethod": "GET",
166681	//   "id": "compute.targetInstances.aggregatedList",
166682	//   "parameterOrder": [
166683	//     "project"
166684	//   ],
166685	//   "parameters": {
166686	//     "filter": {
166687	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
166688	//       "location": "query",
166689	//       "type": "string"
166690	//     },
166691	//     "includeAllScopes": {
166692	//       "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.",
166693	//       "location": "query",
166694	//       "type": "boolean"
166695	//     },
166696	//     "maxResults": {
166697	//       "default": "500",
166698	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
166699	//       "format": "uint32",
166700	//       "location": "query",
166701	//       "minimum": "0",
166702	//       "type": "integer"
166703	//     },
166704	//     "orderBy": {
166705	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
166706	//       "location": "query",
166707	//       "type": "string"
166708	//     },
166709	//     "pageToken": {
166710	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
166711	//       "location": "query",
166712	//       "type": "string"
166713	//     },
166714	//     "project": {
166715	//       "description": "Project ID for this request.",
166716	//       "location": "path",
166717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166718	//       "required": true,
166719	//       "type": "string"
166720	//     },
166721	//     "returnPartialSuccess": {
166722	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
166723	//       "location": "query",
166724	//       "type": "boolean"
166725	//     }
166726	//   },
166727	//   "path": "{project}/aggregated/targetInstances",
166728	//   "response": {
166729	//     "$ref": "TargetInstanceAggregatedList"
166730	//   },
166731	//   "scopes": [
166732	//     "https://www.googleapis.com/auth/cloud-platform",
166733	//     "https://www.googleapis.com/auth/compute",
166734	//     "https://www.googleapis.com/auth/compute.readonly"
166735	//   ]
166736	// }
166737
166738}
166739
166740// Pages invokes f for each page of results.
166741// A non-nil error returned from f will halt the iteration.
166742// The provided context supersedes any context provided to the Context method.
166743func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
166744	c.ctx_ = ctx
166745	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
166746	for {
166747		x, err := c.Do()
166748		if err != nil {
166749			return err
166750		}
166751		if err := f(x); err != nil {
166752			return err
166753		}
166754		if x.NextPageToken == "" {
166755			return nil
166756		}
166757		c.PageToken(x.NextPageToken)
166758	}
166759}
166760
166761// method id "compute.targetInstances.delete":
166762
166763type TargetInstancesDeleteCall struct {
166764	s              *Service
166765	project        string
166766	zone           string
166767	targetInstance string
166768	urlParams_     gensupport.URLParams
166769	ctx_           context.Context
166770	header_        http.Header
166771}
166772
166773// Delete: Deletes the specified TargetInstance resource.
166774// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
166775func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
166776	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166777	c.project = project
166778	c.zone = zone
166779	c.targetInstance = targetInstance
166780	return c
166781}
166782
166783// RequestId sets the optional parameter "requestId": An optional
166784// request ID to identify requests. Specify a unique request ID so that
166785// if you must retry your request, the server will know to ignore the
166786// request if it has already been completed.
166787//
166788// For example, consider a situation where you make an initial request
166789// and the request times out. If you make the request again with the
166790// same request ID, the server can check if original operation with the
166791// same request ID was received, and if so, will ignore the second
166792// request. This prevents clients from accidentally creating duplicate
166793// commitments.
166794//
166795// The request ID must be a valid UUID with the exception that zero UUID
166796// is not supported (00000000-0000-0000-0000-000000000000).
166797func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
166798	c.urlParams_.Set("requestId", requestId)
166799	return c
166800}
166801
166802// Fields allows partial responses to be retrieved. See
166803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166804// for more information.
166805func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
166806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166807	return c
166808}
166809
166810// Context sets the context to be used in this call's Do method. Any
166811// pending HTTP request will be aborted if the provided context is
166812// canceled.
166813func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
166814	c.ctx_ = ctx
166815	return c
166816}
166817
166818// Header returns an http.Header that can be modified by the caller to
166819// add HTTP headers to the request.
166820func (c *TargetInstancesDeleteCall) Header() http.Header {
166821	if c.header_ == nil {
166822		c.header_ = make(http.Header)
166823	}
166824	return c.header_
166825}
166826
166827func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
166828	reqHeaders := make(http.Header)
166829	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
166830	for k, v := range c.header_ {
166831		reqHeaders[k] = v
166832	}
166833	reqHeaders.Set("User-Agent", c.s.userAgent())
166834	var body io.Reader = nil
166835	c.urlParams_.Set("alt", alt)
166836	c.urlParams_.Set("prettyPrint", "false")
166837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
166838	urls += "?" + c.urlParams_.Encode()
166839	req, err := http.NewRequest("DELETE", urls, body)
166840	if err != nil {
166841		return nil, err
166842	}
166843	req.Header = reqHeaders
166844	googleapi.Expand(req.URL, map[string]string{
166845		"project":        c.project,
166846		"zone":           c.zone,
166847		"targetInstance": c.targetInstance,
166848	})
166849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166850}
166851
166852// Do executes the "compute.targetInstances.delete" call.
166853// Exactly one of *Operation or error will be non-nil. Any non-2xx
166854// status code is an error. Response headers are in either
166855// *Operation.ServerResponse.Header or (if a response was returned at
166856// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166857// to check whether the returned error was because
166858// http.StatusNotModified was returned.
166859func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166860	gensupport.SetOptions(c.urlParams_, opts...)
166861	res, err := c.doRequest("json")
166862	if res != nil && res.StatusCode == http.StatusNotModified {
166863		if res.Body != nil {
166864			res.Body.Close()
166865		}
166866		return nil, &googleapi.Error{
166867			Code:   res.StatusCode,
166868			Header: res.Header,
166869		}
166870	}
166871	if err != nil {
166872		return nil, err
166873	}
166874	defer googleapi.CloseBody(res)
166875	if err := googleapi.CheckResponse(res); err != nil {
166876		return nil, err
166877	}
166878	ret := &Operation{
166879		ServerResponse: googleapi.ServerResponse{
166880			Header:         res.Header,
166881			HTTPStatusCode: res.StatusCode,
166882		},
166883	}
166884	target := &ret
166885	if err := gensupport.DecodeResponse(target, res); err != nil {
166886		return nil, err
166887	}
166888	return ret, nil
166889	// {
166890	//   "description": "Deletes the specified TargetInstance resource.",
166891	//   "httpMethod": "DELETE",
166892	//   "id": "compute.targetInstances.delete",
166893	//   "parameterOrder": [
166894	//     "project",
166895	//     "zone",
166896	//     "targetInstance"
166897	//   ],
166898	//   "parameters": {
166899	//     "project": {
166900	//       "description": "Project ID for this request.",
166901	//       "location": "path",
166902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166903	//       "required": true,
166904	//       "type": "string"
166905	//     },
166906	//     "requestId": {
166907	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166908	//       "location": "query",
166909	//       "type": "string"
166910	//     },
166911	//     "targetInstance": {
166912	//       "description": "Name of the TargetInstance resource to delete.",
166913	//       "location": "path",
166914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166915	//       "required": true,
166916	//       "type": "string"
166917	//     },
166918	//     "zone": {
166919	//       "description": "Name of the zone scoping this request.",
166920	//       "location": "path",
166921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166922	//       "required": true,
166923	//       "type": "string"
166924	//     }
166925	//   },
166926	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
166927	//   "response": {
166928	//     "$ref": "Operation"
166929	//   },
166930	//   "scopes": [
166931	//     "https://www.googleapis.com/auth/cloud-platform",
166932	//     "https://www.googleapis.com/auth/compute"
166933	//   ]
166934	// }
166935
166936}
166937
166938// method id "compute.targetInstances.get":
166939
166940type TargetInstancesGetCall struct {
166941	s              *Service
166942	project        string
166943	zone           string
166944	targetInstance string
166945	urlParams_     gensupport.URLParams
166946	ifNoneMatch_   string
166947	ctx_           context.Context
166948	header_        http.Header
166949}
166950
166951// Get: Returns the specified TargetInstance resource. Gets a list of
166952// available target instances by making a list() request.
166953// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
166954func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
166955	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166956	c.project = project
166957	c.zone = zone
166958	c.targetInstance = targetInstance
166959	return c
166960}
166961
166962// Fields allows partial responses to be retrieved. See
166963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166964// for more information.
166965func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
166966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166967	return c
166968}
166969
166970// IfNoneMatch sets the optional parameter which makes the operation
166971// fail if the object's ETag matches the given value. This is useful for
166972// getting updates only after the object has changed since the last
166973// request. Use googleapi.IsNotModified to check whether the response
166974// error from Do is the result of In-None-Match.
166975func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
166976	c.ifNoneMatch_ = entityTag
166977	return c
166978}
166979
166980// Context sets the context to be used in this call's Do method. Any
166981// pending HTTP request will be aborted if the provided context is
166982// canceled.
166983func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
166984	c.ctx_ = ctx
166985	return c
166986}
166987
166988// Header returns an http.Header that can be modified by the caller to
166989// add HTTP headers to the request.
166990func (c *TargetInstancesGetCall) Header() http.Header {
166991	if c.header_ == nil {
166992		c.header_ = make(http.Header)
166993	}
166994	return c.header_
166995}
166996
166997func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
166998	reqHeaders := make(http.Header)
166999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
167000	for k, v := range c.header_ {
167001		reqHeaders[k] = v
167002	}
167003	reqHeaders.Set("User-Agent", c.s.userAgent())
167004	if c.ifNoneMatch_ != "" {
167005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167006	}
167007	var body io.Reader = nil
167008	c.urlParams_.Set("alt", alt)
167009	c.urlParams_.Set("prettyPrint", "false")
167010	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
167011	urls += "?" + c.urlParams_.Encode()
167012	req, err := http.NewRequest("GET", urls, body)
167013	if err != nil {
167014		return nil, err
167015	}
167016	req.Header = reqHeaders
167017	googleapi.Expand(req.URL, map[string]string{
167018		"project":        c.project,
167019		"zone":           c.zone,
167020		"targetInstance": c.targetInstance,
167021	})
167022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167023}
167024
167025// Do executes the "compute.targetInstances.get" call.
167026// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
167027// status code is an error. Response headers are in either
167028// *TargetInstance.ServerResponse.Header or (if a response was returned
167029// at all) in error.(*googleapi.Error).Header. Use
167030// googleapi.IsNotModified to check whether the returned error was
167031// because http.StatusNotModified was returned.
167032func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
167033	gensupport.SetOptions(c.urlParams_, opts...)
167034	res, err := c.doRequest("json")
167035	if res != nil && res.StatusCode == http.StatusNotModified {
167036		if res.Body != nil {
167037			res.Body.Close()
167038		}
167039		return nil, &googleapi.Error{
167040			Code:   res.StatusCode,
167041			Header: res.Header,
167042		}
167043	}
167044	if err != nil {
167045		return nil, err
167046	}
167047	defer googleapi.CloseBody(res)
167048	if err := googleapi.CheckResponse(res); err != nil {
167049		return nil, err
167050	}
167051	ret := &TargetInstance{
167052		ServerResponse: googleapi.ServerResponse{
167053			Header:         res.Header,
167054			HTTPStatusCode: res.StatusCode,
167055		},
167056	}
167057	target := &ret
167058	if err := gensupport.DecodeResponse(target, res); err != nil {
167059		return nil, err
167060	}
167061	return ret, nil
167062	// {
167063	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
167064	//   "httpMethod": "GET",
167065	//   "id": "compute.targetInstances.get",
167066	//   "parameterOrder": [
167067	//     "project",
167068	//     "zone",
167069	//     "targetInstance"
167070	//   ],
167071	//   "parameters": {
167072	//     "project": {
167073	//       "description": "Project ID for this request.",
167074	//       "location": "path",
167075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167076	//       "required": true,
167077	//       "type": "string"
167078	//     },
167079	//     "targetInstance": {
167080	//       "description": "Name of the TargetInstance resource to return.",
167081	//       "location": "path",
167082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167083	//       "required": true,
167084	//       "type": "string"
167085	//     },
167086	//     "zone": {
167087	//       "description": "Name of the zone scoping this request.",
167088	//       "location": "path",
167089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167090	//       "required": true,
167091	//       "type": "string"
167092	//     }
167093	//   },
167094	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
167095	//   "response": {
167096	//     "$ref": "TargetInstance"
167097	//   },
167098	//   "scopes": [
167099	//     "https://www.googleapis.com/auth/cloud-platform",
167100	//     "https://www.googleapis.com/auth/compute",
167101	//     "https://www.googleapis.com/auth/compute.readonly"
167102	//   ]
167103	// }
167104
167105}
167106
167107// method id "compute.targetInstances.insert":
167108
167109type TargetInstancesInsertCall struct {
167110	s              *Service
167111	project        string
167112	zone           string
167113	targetinstance *TargetInstance
167114	urlParams_     gensupport.URLParams
167115	ctx_           context.Context
167116	header_        http.Header
167117}
167118
167119// Insert: Creates a TargetInstance resource in the specified project
167120// and zone using the data included in the request.
167121// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
167122func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
167123	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167124	c.project = project
167125	c.zone = zone
167126	c.targetinstance = targetinstance
167127	return c
167128}
167129
167130// RequestId sets the optional parameter "requestId": An optional
167131// request ID to identify requests. Specify a unique request ID so that
167132// if you must retry your request, the server will know to ignore the
167133// request if it has already been completed.
167134//
167135// For example, consider a situation where you make an initial request
167136// and the request times out. If you make the request again with the
167137// same request ID, the server can check if original operation with the
167138// same request ID was received, and if so, will ignore the second
167139// request. This prevents clients from accidentally creating duplicate
167140// commitments.
167141//
167142// The request ID must be a valid UUID with the exception that zero UUID
167143// is not supported (00000000-0000-0000-0000-000000000000).
167144func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
167145	c.urlParams_.Set("requestId", requestId)
167146	return c
167147}
167148
167149// Fields allows partial responses to be retrieved. See
167150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167151// for more information.
167152func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
167153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167154	return c
167155}
167156
167157// Context sets the context to be used in this call's Do method. Any
167158// pending HTTP request will be aborted if the provided context is
167159// canceled.
167160func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
167161	c.ctx_ = ctx
167162	return c
167163}
167164
167165// Header returns an http.Header that can be modified by the caller to
167166// add HTTP headers to the request.
167167func (c *TargetInstancesInsertCall) Header() http.Header {
167168	if c.header_ == nil {
167169		c.header_ = make(http.Header)
167170	}
167171	return c.header_
167172}
167173
167174func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
167175	reqHeaders := make(http.Header)
167176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
167177	for k, v := range c.header_ {
167178		reqHeaders[k] = v
167179	}
167180	reqHeaders.Set("User-Agent", c.s.userAgent())
167181	var body io.Reader = nil
167182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
167183	if err != nil {
167184		return nil, err
167185	}
167186	reqHeaders.Set("Content-Type", "application/json")
167187	c.urlParams_.Set("alt", alt)
167188	c.urlParams_.Set("prettyPrint", "false")
167189	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
167190	urls += "?" + c.urlParams_.Encode()
167191	req, err := http.NewRequest("POST", urls, body)
167192	if err != nil {
167193		return nil, err
167194	}
167195	req.Header = reqHeaders
167196	googleapi.Expand(req.URL, map[string]string{
167197		"project": c.project,
167198		"zone":    c.zone,
167199	})
167200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167201}
167202
167203// Do executes the "compute.targetInstances.insert" call.
167204// Exactly one of *Operation or error will be non-nil. Any non-2xx
167205// status code is an error. Response headers are in either
167206// *Operation.ServerResponse.Header or (if a response was returned at
167207// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167208// to check whether the returned error was because
167209// http.StatusNotModified was returned.
167210func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167211	gensupport.SetOptions(c.urlParams_, opts...)
167212	res, err := c.doRequest("json")
167213	if res != nil && res.StatusCode == http.StatusNotModified {
167214		if res.Body != nil {
167215			res.Body.Close()
167216		}
167217		return nil, &googleapi.Error{
167218			Code:   res.StatusCode,
167219			Header: res.Header,
167220		}
167221	}
167222	if err != nil {
167223		return nil, err
167224	}
167225	defer googleapi.CloseBody(res)
167226	if err := googleapi.CheckResponse(res); err != nil {
167227		return nil, err
167228	}
167229	ret := &Operation{
167230		ServerResponse: googleapi.ServerResponse{
167231			Header:         res.Header,
167232			HTTPStatusCode: res.StatusCode,
167233		},
167234	}
167235	target := &ret
167236	if err := gensupport.DecodeResponse(target, res); err != nil {
167237		return nil, err
167238	}
167239	return ret, nil
167240	// {
167241	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
167242	//   "httpMethod": "POST",
167243	//   "id": "compute.targetInstances.insert",
167244	//   "parameterOrder": [
167245	//     "project",
167246	//     "zone"
167247	//   ],
167248	//   "parameters": {
167249	//     "project": {
167250	//       "description": "Project ID for this request.",
167251	//       "location": "path",
167252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167253	//       "required": true,
167254	//       "type": "string"
167255	//     },
167256	//     "requestId": {
167257	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167258	//       "location": "query",
167259	//       "type": "string"
167260	//     },
167261	//     "zone": {
167262	//       "description": "Name of the zone scoping this request.",
167263	//       "location": "path",
167264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167265	//       "required": true,
167266	//       "type": "string"
167267	//     }
167268	//   },
167269	//   "path": "{project}/zones/{zone}/targetInstances",
167270	//   "request": {
167271	//     "$ref": "TargetInstance"
167272	//   },
167273	//   "response": {
167274	//     "$ref": "Operation"
167275	//   },
167276	//   "scopes": [
167277	//     "https://www.googleapis.com/auth/cloud-platform",
167278	//     "https://www.googleapis.com/auth/compute"
167279	//   ]
167280	// }
167281
167282}
167283
167284// method id "compute.targetInstances.list":
167285
167286type TargetInstancesListCall struct {
167287	s            *Service
167288	project      string
167289	zone         string
167290	urlParams_   gensupport.URLParams
167291	ifNoneMatch_ string
167292	ctx_         context.Context
167293	header_      http.Header
167294}
167295
167296// List: Retrieves a list of TargetInstance resources available to the
167297// specified project and zone.
167298// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
167299func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
167300	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167301	c.project = project
167302	c.zone = zone
167303	return c
167304}
167305
167306// Filter sets the optional parameter "filter": A filter expression that
167307// filters resources listed in the response. The expression must specify
167308// the field name, a comparison operator, and the value that you want to
167309// use for filtering. The value must be a string, a number, or a
167310// boolean. The comparison operator must be either `=`, `!=`, `>`, or
167311// `<`.
167312//
167313// For example, if you are filtering Compute Engine instances, you can
167314// exclude instances named `example-instance` by specifying `name !=
167315// example-instance`.
167316//
167317// You can also filter nested fields. For example, you could specify
167318// `scheduling.automaticRestart = false` to include instances only if
167319// they are not scheduled for automatic restarts. You can use filtering
167320// on nested fields to filter based on resource labels.
167321//
167322// To filter on multiple expressions, provide each separate expression
167323// within parentheses. For example: ``` (scheduling.automaticRestart =
167324// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
167325// is an `AND` expression. However, you can include `AND` and `OR`
167326// expressions explicitly. For example: ``` (cpuPlatform = "Intel
167327// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
167328// (scheduling.automaticRestart = true) ```
167329func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
167330	c.urlParams_.Set("filter", filter)
167331	return c
167332}
167333
167334// MaxResults sets the optional parameter "maxResults": The maximum
167335// number of results per page that should be returned. If the number of
167336// available results is larger than `maxResults`, Compute Engine returns
167337// a `nextPageToken` that can be used to get the next page of results in
167338// subsequent list requests. Acceptable values are `0` to `500`,
167339// inclusive. (Default: `500`)
167340func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
167341	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167342	return c
167343}
167344
167345// OrderBy sets the optional parameter "orderBy": Sorts list results by
167346// a certain order. By default, results are returned in alphanumerical
167347// order based on the resource name.
167348//
167349// You can also sort results in descending order based on the creation
167350// timestamp using `orderBy="creationTimestamp desc". This sorts
167351// results based on the `creationTimestamp` field in reverse
167352// chronological order (newest result first). Use this to sort resources
167353// like operations so that the newest operation is returned
167354// first.
167355//
167356// Currently, only sorting by `name` or `creationTimestamp desc` is
167357// supported.
167358func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
167359	c.urlParams_.Set("orderBy", orderBy)
167360	return c
167361}
167362
167363// PageToken sets the optional parameter "pageToken": Specifies a page
167364// token to use. Set `pageToken` to the `nextPageToken` returned by a
167365// previous list request to get the next page of results.
167366func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
167367	c.urlParams_.Set("pageToken", pageToken)
167368	return c
167369}
167370
167371// ReturnPartialSuccess sets the optional parameter
167372// "returnPartialSuccess": Opt-in for partial success behavior which
167373// provides partial results in case of failure. The default value is
167374// false and the logic is the same as today.
167375func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall {
167376	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
167377	return c
167378}
167379
167380// Fields allows partial responses to be retrieved. See
167381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167382// for more information.
167383func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
167384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167385	return c
167386}
167387
167388// IfNoneMatch sets the optional parameter which makes the operation
167389// fail if the object's ETag matches the given value. This is useful for
167390// getting updates only after the object has changed since the last
167391// request. Use googleapi.IsNotModified to check whether the response
167392// error from Do is the result of In-None-Match.
167393func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
167394	c.ifNoneMatch_ = entityTag
167395	return c
167396}
167397
167398// Context sets the context to be used in this call's Do method. Any
167399// pending HTTP request will be aborted if the provided context is
167400// canceled.
167401func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
167402	c.ctx_ = ctx
167403	return c
167404}
167405
167406// Header returns an http.Header that can be modified by the caller to
167407// add HTTP headers to the request.
167408func (c *TargetInstancesListCall) Header() http.Header {
167409	if c.header_ == nil {
167410		c.header_ = make(http.Header)
167411	}
167412	return c.header_
167413}
167414
167415func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
167416	reqHeaders := make(http.Header)
167417	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
167418	for k, v := range c.header_ {
167419		reqHeaders[k] = v
167420	}
167421	reqHeaders.Set("User-Agent", c.s.userAgent())
167422	if c.ifNoneMatch_ != "" {
167423		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167424	}
167425	var body io.Reader = nil
167426	c.urlParams_.Set("alt", alt)
167427	c.urlParams_.Set("prettyPrint", "false")
167428	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
167429	urls += "?" + c.urlParams_.Encode()
167430	req, err := http.NewRequest("GET", urls, body)
167431	if err != nil {
167432		return nil, err
167433	}
167434	req.Header = reqHeaders
167435	googleapi.Expand(req.URL, map[string]string{
167436		"project": c.project,
167437		"zone":    c.zone,
167438	})
167439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167440}
167441
167442// Do executes the "compute.targetInstances.list" call.
167443// Exactly one of *TargetInstanceList or error will be non-nil. Any
167444// non-2xx status code is an error. Response headers are in either
167445// *TargetInstanceList.ServerResponse.Header or (if a response was
167446// returned at all) in error.(*googleapi.Error).Header. Use
167447// googleapi.IsNotModified to check whether the returned error was
167448// because http.StatusNotModified was returned.
167449func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
167450	gensupport.SetOptions(c.urlParams_, opts...)
167451	res, err := c.doRequest("json")
167452	if res != nil && res.StatusCode == http.StatusNotModified {
167453		if res.Body != nil {
167454			res.Body.Close()
167455		}
167456		return nil, &googleapi.Error{
167457			Code:   res.StatusCode,
167458			Header: res.Header,
167459		}
167460	}
167461	if err != nil {
167462		return nil, err
167463	}
167464	defer googleapi.CloseBody(res)
167465	if err := googleapi.CheckResponse(res); err != nil {
167466		return nil, err
167467	}
167468	ret := &TargetInstanceList{
167469		ServerResponse: googleapi.ServerResponse{
167470			Header:         res.Header,
167471			HTTPStatusCode: res.StatusCode,
167472		},
167473	}
167474	target := &ret
167475	if err := gensupport.DecodeResponse(target, res); err != nil {
167476		return nil, err
167477	}
167478	return ret, nil
167479	// {
167480	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
167481	//   "httpMethod": "GET",
167482	//   "id": "compute.targetInstances.list",
167483	//   "parameterOrder": [
167484	//     "project",
167485	//     "zone"
167486	//   ],
167487	//   "parameters": {
167488	//     "filter": {
167489	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
167490	//       "location": "query",
167491	//       "type": "string"
167492	//     },
167493	//     "maxResults": {
167494	//       "default": "500",
167495	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
167496	//       "format": "uint32",
167497	//       "location": "query",
167498	//       "minimum": "0",
167499	//       "type": "integer"
167500	//     },
167501	//     "orderBy": {
167502	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
167503	//       "location": "query",
167504	//       "type": "string"
167505	//     },
167506	//     "pageToken": {
167507	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
167508	//       "location": "query",
167509	//       "type": "string"
167510	//     },
167511	//     "project": {
167512	//       "description": "Project ID for this request.",
167513	//       "location": "path",
167514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167515	//       "required": true,
167516	//       "type": "string"
167517	//     },
167518	//     "returnPartialSuccess": {
167519	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
167520	//       "location": "query",
167521	//       "type": "boolean"
167522	//     },
167523	//     "zone": {
167524	//       "description": "Name of the zone scoping this request.",
167525	//       "location": "path",
167526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167527	//       "required": true,
167528	//       "type": "string"
167529	//     }
167530	//   },
167531	//   "path": "{project}/zones/{zone}/targetInstances",
167532	//   "response": {
167533	//     "$ref": "TargetInstanceList"
167534	//   },
167535	//   "scopes": [
167536	//     "https://www.googleapis.com/auth/cloud-platform",
167537	//     "https://www.googleapis.com/auth/compute",
167538	//     "https://www.googleapis.com/auth/compute.readonly"
167539	//   ]
167540	// }
167541
167542}
167543
167544// Pages invokes f for each page of results.
167545// A non-nil error returned from f will halt the iteration.
167546// The provided context supersedes any context provided to the Context method.
167547func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
167548	c.ctx_ = ctx
167549	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167550	for {
167551		x, err := c.Do()
167552		if err != nil {
167553			return err
167554		}
167555		if err := f(x); err != nil {
167556			return err
167557		}
167558		if x.NextPageToken == "" {
167559			return nil
167560		}
167561		c.PageToken(x.NextPageToken)
167562	}
167563}
167564
167565// method id "compute.targetInstances.testIamPermissions":
167566
167567type TargetInstancesTestIamPermissionsCall struct {
167568	s                      *Service
167569	project                string
167570	zone                   string
167571	resource               string
167572	testpermissionsrequest *TestPermissionsRequest
167573	urlParams_             gensupport.URLParams
167574	ctx_                   context.Context
167575	header_                http.Header
167576}
167577
167578// TestIamPermissions: Returns permissions that a caller has on the
167579// specified resource.
167580func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall {
167581	c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167582	c.project = project
167583	c.zone = zone
167584	c.resource = resource
167585	c.testpermissionsrequest = testpermissionsrequest
167586	return c
167587}
167588
167589// Fields allows partial responses to be retrieved. See
167590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167591// for more information.
167592func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall {
167593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167594	return c
167595}
167596
167597// Context sets the context to be used in this call's Do method. Any
167598// pending HTTP request will be aborted if the provided context is
167599// canceled.
167600func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall {
167601	c.ctx_ = ctx
167602	return c
167603}
167604
167605// Header returns an http.Header that can be modified by the caller to
167606// add HTTP headers to the request.
167607func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header {
167608	if c.header_ == nil {
167609		c.header_ = make(http.Header)
167610	}
167611	return c.header_
167612}
167613
167614func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
167615	reqHeaders := make(http.Header)
167616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
167617	for k, v := range c.header_ {
167618		reqHeaders[k] = v
167619	}
167620	reqHeaders.Set("User-Agent", c.s.userAgent())
167621	var body io.Reader = nil
167622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
167623	if err != nil {
167624		return nil, err
167625	}
167626	reqHeaders.Set("Content-Type", "application/json")
167627	c.urlParams_.Set("alt", alt)
167628	c.urlParams_.Set("prettyPrint", "false")
167629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions")
167630	urls += "?" + c.urlParams_.Encode()
167631	req, err := http.NewRequest("POST", urls, body)
167632	if err != nil {
167633		return nil, err
167634	}
167635	req.Header = reqHeaders
167636	googleapi.Expand(req.URL, map[string]string{
167637		"project":  c.project,
167638		"zone":     c.zone,
167639		"resource": c.resource,
167640	})
167641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167642}
167643
167644// Do executes the "compute.targetInstances.testIamPermissions" call.
167645// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
167646// non-2xx status code is an error. Response headers are in either
167647// *TestPermissionsResponse.ServerResponse.Header or (if a response was
167648// returned at all) in error.(*googleapi.Error).Header. Use
167649// googleapi.IsNotModified to check whether the returned error was
167650// because http.StatusNotModified was returned.
167651func (c *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
167652	gensupport.SetOptions(c.urlParams_, opts...)
167653	res, err := c.doRequest("json")
167654	if res != nil && res.StatusCode == http.StatusNotModified {
167655		if res.Body != nil {
167656			res.Body.Close()
167657		}
167658		return nil, &googleapi.Error{
167659			Code:   res.StatusCode,
167660			Header: res.Header,
167661		}
167662	}
167663	if err != nil {
167664		return nil, err
167665	}
167666	defer googleapi.CloseBody(res)
167667	if err := googleapi.CheckResponse(res); err != nil {
167668		return nil, err
167669	}
167670	ret := &TestPermissionsResponse{
167671		ServerResponse: googleapi.ServerResponse{
167672			Header:         res.Header,
167673			HTTPStatusCode: res.StatusCode,
167674		},
167675	}
167676	target := &ret
167677	if err := gensupport.DecodeResponse(target, res); err != nil {
167678		return nil, err
167679	}
167680	return ret, nil
167681	// {
167682	//   "description": "Returns permissions that a caller has on the specified resource.",
167683	//   "httpMethod": "POST",
167684	//   "id": "compute.targetInstances.testIamPermissions",
167685	//   "parameterOrder": [
167686	//     "project",
167687	//     "zone",
167688	//     "resource"
167689	//   ],
167690	//   "parameters": {
167691	//     "project": {
167692	//       "description": "Project ID for this request.",
167693	//       "location": "path",
167694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167695	//       "required": true,
167696	//       "type": "string"
167697	//     },
167698	//     "resource": {
167699	//       "description": "Name or id of the resource for this request.",
167700	//       "location": "path",
167701	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167702	//       "required": true,
167703	//       "type": "string"
167704	//     },
167705	//     "zone": {
167706	//       "description": "The name of the zone for this request.",
167707	//       "location": "path",
167708	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167709	//       "required": true,
167710	//       "type": "string"
167711	//     }
167712	//   },
167713	//   "path": "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
167714	//   "request": {
167715	//     "$ref": "TestPermissionsRequest"
167716	//   },
167717	//   "response": {
167718	//     "$ref": "TestPermissionsResponse"
167719	//   },
167720	//   "scopes": [
167721	//     "https://www.googleapis.com/auth/cloud-platform",
167722	//     "https://www.googleapis.com/auth/compute",
167723	//     "https://www.googleapis.com/auth/compute.readonly"
167724	//   ]
167725	// }
167726
167727}
167728
167729// method id "compute.targetPools.addHealthCheck":
167730
167731type TargetPoolsAddHealthCheckCall struct {
167732	s                                *Service
167733	project                          string
167734	region                           string
167735	targetPool                       string
167736	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
167737	urlParams_                       gensupport.URLParams
167738	ctx_                             context.Context
167739	header_                          http.Header
167740}
167741
167742// AddHealthCheck: Adds health check URLs to a target pool.
167743// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
167744func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
167745	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167746	c.project = project
167747	c.region = region
167748	c.targetPool = targetPool
167749	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
167750	return c
167751}
167752
167753// RequestId sets the optional parameter "requestId": An optional
167754// request ID to identify requests. Specify a unique request ID so that
167755// if you must retry your request, the server will know to ignore the
167756// request if it has already been completed.
167757//
167758// For example, consider a situation where you make an initial request
167759// and the request times out. If you make the request again with the
167760// same request ID, the server can check if original operation with the
167761// same request ID was received, and if so, will ignore the second
167762// request. This prevents clients from accidentally creating duplicate
167763// commitments.
167764//
167765// The request ID must be a valid UUID with the exception that zero UUID
167766// is not supported (00000000-0000-0000-0000-000000000000).
167767func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
167768	c.urlParams_.Set("requestId", requestId)
167769	return c
167770}
167771
167772// Fields allows partial responses to be retrieved. See
167773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167774// for more information.
167775func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
167776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167777	return c
167778}
167779
167780// Context sets the context to be used in this call's Do method. Any
167781// pending HTTP request will be aborted if the provided context is
167782// canceled.
167783func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
167784	c.ctx_ = ctx
167785	return c
167786}
167787
167788// Header returns an http.Header that can be modified by the caller to
167789// add HTTP headers to the request.
167790func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
167791	if c.header_ == nil {
167792		c.header_ = make(http.Header)
167793	}
167794	return c.header_
167795}
167796
167797func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
167798	reqHeaders := make(http.Header)
167799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
167800	for k, v := range c.header_ {
167801		reqHeaders[k] = v
167802	}
167803	reqHeaders.Set("User-Agent", c.s.userAgent())
167804	var body io.Reader = nil
167805	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
167806	if err != nil {
167807		return nil, err
167808	}
167809	reqHeaders.Set("Content-Type", "application/json")
167810	c.urlParams_.Set("alt", alt)
167811	c.urlParams_.Set("prettyPrint", "false")
167812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
167813	urls += "?" + c.urlParams_.Encode()
167814	req, err := http.NewRequest("POST", urls, body)
167815	if err != nil {
167816		return nil, err
167817	}
167818	req.Header = reqHeaders
167819	googleapi.Expand(req.URL, map[string]string{
167820		"project":    c.project,
167821		"region":     c.region,
167822		"targetPool": c.targetPool,
167823	})
167824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167825}
167826
167827// Do executes the "compute.targetPools.addHealthCheck" call.
167828// Exactly one of *Operation or error will be non-nil. Any non-2xx
167829// status code is an error. Response headers are in either
167830// *Operation.ServerResponse.Header or (if a response was returned at
167831// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167832// to check whether the returned error was because
167833// http.StatusNotModified was returned.
167834func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167835	gensupport.SetOptions(c.urlParams_, opts...)
167836	res, err := c.doRequest("json")
167837	if res != nil && res.StatusCode == http.StatusNotModified {
167838		if res.Body != nil {
167839			res.Body.Close()
167840		}
167841		return nil, &googleapi.Error{
167842			Code:   res.StatusCode,
167843			Header: res.Header,
167844		}
167845	}
167846	if err != nil {
167847		return nil, err
167848	}
167849	defer googleapi.CloseBody(res)
167850	if err := googleapi.CheckResponse(res); err != nil {
167851		return nil, err
167852	}
167853	ret := &Operation{
167854		ServerResponse: googleapi.ServerResponse{
167855			Header:         res.Header,
167856			HTTPStatusCode: res.StatusCode,
167857		},
167858	}
167859	target := &ret
167860	if err := gensupport.DecodeResponse(target, res); err != nil {
167861		return nil, err
167862	}
167863	return ret, nil
167864	// {
167865	//   "description": "Adds health check URLs to a target pool.",
167866	//   "httpMethod": "POST",
167867	//   "id": "compute.targetPools.addHealthCheck",
167868	//   "parameterOrder": [
167869	//     "project",
167870	//     "region",
167871	//     "targetPool"
167872	//   ],
167873	//   "parameters": {
167874	//     "project": {
167875	//       "description": "Project ID for this request.",
167876	//       "location": "path",
167877	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167878	//       "required": true,
167879	//       "type": "string"
167880	//     },
167881	//     "region": {
167882	//       "description": "Name of the region scoping this request.",
167883	//       "location": "path",
167884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167885	//       "required": true,
167886	//       "type": "string"
167887	//     },
167888	//     "requestId": {
167889	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167890	//       "location": "query",
167891	//       "type": "string"
167892	//     },
167893	//     "targetPool": {
167894	//       "description": "Name of the target pool to add a health check to.",
167895	//       "location": "path",
167896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167897	//       "required": true,
167898	//       "type": "string"
167899	//     }
167900	//   },
167901	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
167902	//   "request": {
167903	//     "$ref": "TargetPoolsAddHealthCheckRequest"
167904	//   },
167905	//   "response": {
167906	//     "$ref": "Operation"
167907	//   },
167908	//   "scopes": [
167909	//     "https://www.googleapis.com/auth/cloud-platform",
167910	//     "https://www.googleapis.com/auth/compute"
167911	//   ]
167912	// }
167913
167914}
167915
167916// method id "compute.targetPools.addInstance":
167917
167918type TargetPoolsAddInstanceCall struct {
167919	s                             *Service
167920	project                       string
167921	region                        string
167922	targetPool                    string
167923	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
167924	urlParams_                    gensupport.URLParams
167925	ctx_                          context.Context
167926	header_                       http.Header
167927}
167928
167929// AddInstance: Adds an instance to a target pool.
167930// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
167931func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
167932	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167933	c.project = project
167934	c.region = region
167935	c.targetPool = targetPool
167936	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
167937	return c
167938}
167939
167940// RequestId sets the optional parameter "requestId": An optional
167941// request ID to identify requests. Specify a unique request ID so that
167942// if you must retry your request, the server will know to ignore the
167943// request if it has already been completed.
167944//
167945// For example, consider a situation where you make an initial request
167946// and the request times out. If you make the request again with the
167947// same request ID, the server can check if original operation with the
167948// same request ID was received, and if so, will ignore the second
167949// request. This prevents clients from accidentally creating duplicate
167950// commitments.
167951//
167952// The request ID must be a valid UUID with the exception that zero UUID
167953// is not supported (00000000-0000-0000-0000-000000000000).
167954func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
167955	c.urlParams_.Set("requestId", requestId)
167956	return c
167957}
167958
167959// Fields allows partial responses to be retrieved. See
167960// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167961// for more information.
167962func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
167963	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167964	return c
167965}
167966
167967// Context sets the context to be used in this call's Do method. Any
167968// pending HTTP request will be aborted if the provided context is
167969// canceled.
167970func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
167971	c.ctx_ = ctx
167972	return c
167973}
167974
167975// Header returns an http.Header that can be modified by the caller to
167976// add HTTP headers to the request.
167977func (c *TargetPoolsAddInstanceCall) Header() http.Header {
167978	if c.header_ == nil {
167979		c.header_ = make(http.Header)
167980	}
167981	return c.header_
167982}
167983
167984func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
167985	reqHeaders := make(http.Header)
167986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
167987	for k, v := range c.header_ {
167988		reqHeaders[k] = v
167989	}
167990	reqHeaders.Set("User-Agent", c.s.userAgent())
167991	var body io.Reader = nil
167992	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
167993	if err != nil {
167994		return nil, err
167995	}
167996	reqHeaders.Set("Content-Type", "application/json")
167997	c.urlParams_.Set("alt", alt)
167998	c.urlParams_.Set("prettyPrint", "false")
167999	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
168000	urls += "?" + c.urlParams_.Encode()
168001	req, err := http.NewRequest("POST", urls, body)
168002	if err != nil {
168003		return nil, err
168004	}
168005	req.Header = reqHeaders
168006	googleapi.Expand(req.URL, map[string]string{
168007		"project":    c.project,
168008		"region":     c.region,
168009		"targetPool": c.targetPool,
168010	})
168011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168012}
168013
168014// Do executes the "compute.targetPools.addInstance" call.
168015// Exactly one of *Operation or error will be non-nil. Any non-2xx
168016// status code is an error. Response headers are in either
168017// *Operation.ServerResponse.Header or (if a response was returned at
168018// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168019// to check whether the returned error was because
168020// http.StatusNotModified was returned.
168021func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168022	gensupport.SetOptions(c.urlParams_, opts...)
168023	res, err := c.doRequest("json")
168024	if res != nil && res.StatusCode == http.StatusNotModified {
168025		if res.Body != nil {
168026			res.Body.Close()
168027		}
168028		return nil, &googleapi.Error{
168029			Code:   res.StatusCode,
168030			Header: res.Header,
168031		}
168032	}
168033	if err != nil {
168034		return nil, err
168035	}
168036	defer googleapi.CloseBody(res)
168037	if err := googleapi.CheckResponse(res); err != nil {
168038		return nil, err
168039	}
168040	ret := &Operation{
168041		ServerResponse: googleapi.ServerResponse{
168042			Header:         res.Header,
168043			HTTPStatusCode: res.StatusCode,
168044		},
168045	}
168046	target := &ret
168047	if err := gensupport.DecodeResponse(target, res); err != nil {
168048		return nil, err
168049	}
168050	return ret, nil
168051	// {
168052	//   "description": "Adds an instance to a target pool.",
168053	//   "httpMethod": "POST",
168054	//   "id": "compute.targetPools.addInstance",
168055	//   "parameterOrder": [
168056	//     "project",
168057	//     "region",
168058	//     "targetPool"
168059	//   ],
168060	//   "parameters": {
168061	//     "project": {
168062	//       "description": "Project ID for this request.",
168063	//       "location": "path",
168064	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168065	//       "required": true,
168066	//       "type": "string"
168067	//     },
168068	//     "region": {
168069	//       "description": "Name of the region scoping this request.",
168070	//       "location": "path",
168071	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168072	//       "required": true,
168073	//       "type": "string"
168074	//     },
168075	//     "requestId": {
168076	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168077	//       "location": "query",
168078	//       "type": "string"
168079	//     },
168080	//     "targetPool": {
168081	//       "description": "Name of the TargetPool resource to add instances to.",
168082	//       "location": "path",
168083	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168084	//       "required": true,
168085	//       "type": "string"
168086	//     }
168087	//   },
168088	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
168089	//   "request": {
168090	//     "$ref": "TargetPoolsAddInstanceRequest"
168091	//   },
168092	//   "response": {
168093	//     "$ref": "Operation"
168094	//   },
168095	//   "scopes": [
168096	//     "https://www.googleapis.com/auth/cloud-platform",
168097	//     "https://www.googleapis.com/auth/compute"
168098	//   ]
168099	// }
168100
168101}
168102
168103// method id "compute.targetPools.aggregatedList":
168104
168105type TargetPoolsAggregatedListCall struct {
168106	s            *Service
168107	project      string
168108	urlParams_   gensupport.URLParams
168109	ifNoneMatch_ string
168110	ctx_         context.Context
168111	header_      http.Header
168112}
168113
168114// AggregatedList: Retrieves an aggregated list of target pools.
168115// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
168116func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
168117	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168118	c.project = project
168119	return c
168120}
168121
168122// Filter sets the optional parameter "filter": A filter expression that
168123// filters resources listed in the response. The expression must specify
168124// the field name, a comparison operator, and the value that you want to
168125// use for filtering. The value must be a string, a number, or a
168126// boolean. The comparison operator must be either `=`, `!=`, `>`, or
168127// `<`.
168128//
168129// For example, if you are filtering Compute Engine instances, you can
168130// exclude instances named `example-instance` by specifying `name !=
168131// example-instance`.
168132//
168133// You can also filter nested fields. For example, you could specify
168134// `scheduling.automaticRestart = false` to include instances only if
168135// they are not scheduled for automatic restarts. You can use filtering
168136// on nested fields to filter based on resource labels.
168137//
168138// To filter on multiple expressions, provide each separate expression
168139// within parentheses. For example: ``` (scheduling.automaticRestart =
168140// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
168141// is an `AND` expression. However, you can include `AND` and `OR`
168142// expressions explicitly. For example: ``` (cpuPlatform = "Intel
168143// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
168144// (scheduling.automaticRestart = true) ```
168145func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
168146	c.urlParams_.Set("filter", filter)
168147	return c
168148}
168149
168150// IncludeAllScopes sets the optional parameter "includeAllScopes":
168151// Indicates whether every visible scope for each scope type (zone,
168152// region, global) should be included in the response. For new resource
168153// types added after this field, the flag has no effect as new resource
168154// types will always include every visible scope for each scope type in
168155// response. For resource types which predate this field, if this flag
168156// is omitted or false, only scopes of the scope types where the
168157// resource type is expected to be found will be included.
168158func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
168159	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
168160	return c
168161}
168162
168163// MaxResults sets the optional parameter "maxResults": The maximum
168164// number of results per page that should be returned. If the number of
168165// available results is larger than `maxResults`, Compute Engine returns
168166// a `nextPageToken` that can be used to get the next page of results in
168167// subsequent list requests. Acceptable values are `0` to `500`,
168168// inclusive. (Default: `500`)
168169func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
168170	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168171	return c
168172}
168173
168174// OrderBy sets the optional parameter "orderBy": Sorts list results by
168175// a certain order. By default, results are returned in alphanumerical
168176// order based on the resource name.
168177//
168178// You can also sort results in descending order based on the creation
168179// timestamp using `orderBy="creationTimestamp desc". This sorts
168180// results based on the `creationTimestamp` field in reverse
168181// chronological order (newest result first). Use this to sort resources
168182// like operations so that the newest operation is returned
168183// first.
168184//
168185// Currently, only sorting by `name` or `creationTimestamp desc` is
168186// supported.
168187func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
168188	c.urlParams_.Set("orderBy", orderBy)
168189	return c
168190}
168191
168192// PageToken sets the optional parameter "pageToken": Specifies a page
168193// token to use. Set `pageToken` to the `nextPageToken` returned by a
168194// previous list request to get the next page of results.
168195func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
168196	c.urlParams_.Set("pageToken", pageToken)
168197	return c
168198}
168199
168200// ReturnPartialSuccess sets the optional parameter
168201// "returnPartialSuccess": Opt-in for partial success behavior which
168202// provides partial results in case of failure. The default value is
168203// false and the logic is the same as today.
168204func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall {
168205	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
168206	return c
168207}
168208
168209// Fields allows partial responses to be retrieved. See
168210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168211// for more information.
168212func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
168213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168214	return c
168215}
168216
168217// IfNoneMatch sets the optional parameter which makes the operation
168218// fail if the object's ETag matches the given value. This is useful for
168219// getting updates only after the object has changed since the last
168220// request. Use googleapi.IsNotModified to check whether the response
168221// error from Do is the result of In-None-Match.
168222func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
168223	c.ifNoneMatch_ = entityTag
168224	return c
168225}
168226
168227// Context sets the context to be used in this call's Do method. Any
168228// pending HTTP request will be aborted if the provided context is
168229// canceled.
168230func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
168231	c.ctx_ = ctx
168232	return c
168233}
168234
168235// Header returns an http.Header that can be modified by the caller to
168236// add HTTP headers to the request.
168237func (c *TargetPoolsAggregatedListCall) Header() http.Header {
168238	if c.header_ == nil {
168239		c.header_ = make(http.Header)
168240	}
168241	return c.header_
168242}
168243
168244func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
168245	reqHeaders := make(http.Header)
168246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
168247	for k, v := range c.header_ {
168248		reqHeaders[k] = v
168249	}
168250	reqHeaders.Set("User-Agent", c.s.userAgent())
168251	if c.ifNoneMatch_ != "" {
168252		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168253	}
168254	var body io.Reader = nil
168255	c.urlParams_.Set("alt", alt)
168256	c.urlParams_.Set("prettyPrint", "false")
168257	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
168258	urls += "?" + c.urlParams_.Encode()
168259	req, err := http.NewRequest("GET", urls, body)
168260	if err != nil {
168261		return nil, err
168262	}
168263	req.Header = reqHeaders
168264	googleapi.Expand(req.URL, map[string]string{
168265		"project": c.project,
168266	})
168267	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168268}
168269
168270// Do executes the "compute.targetPools.aggregatedList" call.
168271// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
168272// Any non-2xx status code is an error. Response headers are in either
168273// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
168274// returned at all) in error.(*googleapi.Error).Header. Use
168275// googleapi.IsNotModified to check whether the returned error was
168276// because http.StatusNotModified was returned.
168277func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
168278	gensupport.SetOptions(c.urlParams_, opts...)
168279	res, err := c.doRequest("json")
168280	if res != nil && res.StatusCode == http.StatusNotModified {
168281		if res.Body != nil {
168282			res.Body.Close()
168283		}
168284		return nil, &googleapi.Error{
168285			Code:   res.StatusCode,
168286			Header: res.Header,
168287		}
168288	}
168289	if err != nil {
168290		return nil, err
168291	}
168292	defer googleapi.CloseBody(res)
168293	if err := googleapi.CheckResponse(res); err != nil {
168294		return nil, err
168295	}
168296	ret := &TargetPoolAggregatedList{
168297		ServerResponse: googleapi.ServerResponse{
168298			Header:         res.Header,
168299			HTTPStatusCode: res.StatusCode,
168300		},
168301	}
168302	target := &ret
168303	if err := gensupport.DecodeResponse(target, res); err != nil {
168304		return nil, err
168305	}
168306	return ret, nil
168307	// {
168308	//   "description": "Retrieves an aggregated list of target pools.",
168309	//   "httpMethod": "GET",
168310	//   "id": "compute.targetPools.aggregatedList",
168311	//   "parameterOrder": [
168312	//     "project"
168313	//   ],
168314	//   "parameters": {
168315	//     "filter": {
168316	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
168317	//       "location": "query",
168318	//       "type": "string"
168319	//     },
168320	//     "includeAllScopes": {
168321	//       "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.",
168322	//       "location": "query",
168323	//       "type": "boolean"
168324	//     },
168325	//     "maxResults": {
168326	//       "default": "500",
168327	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
168328	//       "format": "uint32",
168329	//       "location": "query",
168330	//       "minimum": "0",
168331	//       "type": "integer"
168332	//     },
168333	//     "orderBy": {
168334	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
168335	//       "location": "query",
168336	//       "type": "string"
168337	//     },
168338	//     "pageToken": {
168339	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
168340	//       "location": "query",
168341	//       "type": "string"
168342	//     },
168343	//     "project": {
168344	//       "description": "Project ID for this request.",
168345	//       "location": "path",
168346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168347	//       "required": true,
168348	//       "type": "string"
168349	//     },
168350	//     "returnPartialSuccess": {
168351	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
168352	//       "location": "query",
168353	//       "type": "boolean"
168354	//     }
168355	//   },
168356	//   "path": "{project}/aggregated/targetPools",
168357	//   "response": {
168358	//     "$ref": "TargetPoolAggregatedList"
168359	//   },
168360	//   "scopes": [
168361	//     "https://www.googleapis.com/auth/cloud-platform",
168362	//     "https://www.googleapis.com/auth/compute",
168363	//     "https://www.googleapis.com/auth/compute.readonly"
168364	//   ]
168365	// }
168366
168367}
168368
168369// Pages invokes f for each page of results.
168370// A non-nil error returned from f will halt the iteration.
168371// The provided context supersedes any context provided to the Context method.
168372func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
168373	c.ctx_ = ctx
168374	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168375	for {
168376		x, err := c.Do()
168377		if err != nil {
168378			return err
168379		}
168380		if err := f(x); err != nil {
168381			return err
168382		}
168383		if x.NextPageToken == "" {
168384			return nil
168385		}
168386		c.PageToken(x.NextPageToken)
168387	}
168388}
168389
168390// method id "compute.targetPools.delete":
168391
168392type TargetPoolsDeleteCall struct {
168393	s          *Service
168394	project    string
168395	region     string
168396	targetPool string
168397	urlParams_ gensupport.URLParams
168398	ctx_       context.Context
168399	header_    http.Header
168400}
168401
168402// Delete: Deletes the specified target pool.
168403// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
168404func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
168405	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168406	c.project = project
168407	c.region = region
168408	c.targetPool = targetPool
168409	return c
168410}
168411
168412// RequestId sets the optional parameter "requestId": An optional
168413// request ID to identify requests. Specify a unique request ID so that
168414// if you must retry your request, the server will know to ignore the
168415// request if it has already been completed.
168416//
168417// For example, consider a situation where you make an initial request
168418// and the request times out. If you make the request again with the
168419// same request ID, the server can check if original operation with the
168420// same request ID was received, and if so, will ignore the second
168421// request. This prevents clients from accidentally creating duplicate
168422// commitments.
168423//
168424// The request ID must be a valid UUID with the exception that zero UUID
168425// is not supported (00000000-0000-0000-0000-000000000000).
168426func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
168427	c.urlParams_.Set("requestId", requestId)
168428	return c
168429}
168430
168431// Fields allows partial responses to be retrieved. See
168432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168433// for more information.
168434func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
168435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168436	return c
168437}
168438
168439// Context sets the context to be used in this call's Do method. Any
168440// pending HTTP request will be aborted if the provided context is
168441// canceled.
168442func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
168443	c.ctx_ = ctx
168444	return c
168445}
168446
168447// Header returns an http.Header that can be modified by the caller to
168448// add HTTP headers to the request.
168449func (c *TargetPoolsDeleteCall) Header() http.Header {
168450	if c.header_ == nil {
168451		c.header_ = make(http.Header)
168452	}
168453	return c.header_
168454}
168455
168456func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
168457	reqHeaders := make(http.Header)
168458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
168459	for k, v := range c.header_ {
168460		reqHeaders[k] = v
168461	}
168462	reqHeaders.Set("User-Agent", c.s.userAgent())
168463	var body io.Reader = nil
168464	c.urlParams_.Set("alt", alt)
168465	c.urlParams_.Set("prettyPrint", "false")
168466	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
168467	urls += "?" + c.urlParams_.Encode()
168468	req, err := http.NewRequest("DELETE", urls, body)
168469	if err != nil {
168470		return nil, err
168471	}
168472	req.Header = reqHeaders
168473	googleapi.Expand(req.URL, map[string]string{
168474		"project":    c.project,
168475		"region":     c.region,
168476		"targetPool": c.targetPool,
168477	})
168478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168479}
168480
168481// Do executes the "compute.targetPools.delete" call.
168482// Exactly one of *Operation or error will be non-nil. Any non-2xx
168483// status code is an error. Response headers are in either
168484// *Operation.ServerResponse.Header or (if a response was returned at
168485// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168486// to check whether the returned error was because
168487// http.StatusNotModified was returned.
168488func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168489	gensupport.SetOptions(c.urlParams_, opts...)
168490	res, err := c.doRequest("json")
168491	if res != nil && res.StatusCode == http.StatusNotModified {
168492		if res.Body != nil {
168493			res.Body.Close()
168494		}
168495		return nil, &googleapi.Error{
168496			Code:   res.StatusCode,
168497			Header: res.Header,
168498		}
168499	}
168500	if err != nil {
168501		return nil, err
168502	}
168503	defer googleapi.CloseBody(res)
168504	if err := googleapi.CheckResponse(res); err != nil {
168505		return nil, err
168506	}
168507	ret := &Operation{
168508		ServerResponse: googleapi.ServerResponse{
168509			Header:         res.Header,
168510			HTTPStatusCode: res.StatusCode,
168511		},
168512	}
168513	target := &ret
168514	if err := gensupport.DecodeResponse(target, res); err != nil {
168515		return nil, err
168516	}
168517	return ret, nil
168518	// {
168519	//   "description": "Deletes the specified target pool.",
168520	//   "httpMethod": "DELETE",
168521	//   "id": "compute.targetPools.delete",
168522	//   "parameterOrder": [
168523	//     "project",
168524	//     "region",
168525	//     "targetPool"
168526	//   ],
168527	//   "parameters": {
168528	//     "project": {
168529	//       "description": "Project ID for this request.",
168530	//       "location": "path",
168531	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168532	//       "required": true,
168533	//       "type": "string"
168534	//     },
168535	//     "region": {
168536	//       "description": "Name of the region scoping this request.",
168537	//       "location": "path",
168538	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168539	//       "required": true,
168540	//       "type": "string"
168541	//     },
168542	//     "requestId": {
168543	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168544	//       "location": "query",
168545	//       "type": "string"
168546	//     },
168547	//     "targetPool": {
168548	//       "description": "Name of the TargetPool resource to delete.",
168549	//       "location": "path",
168550	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168551	//       "required": true,
168552	//       "type": "string"
168553	//     }
168554	//   },
168555	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
168556	//   "response": {
168557	//     "$ref": "Operation"
168558	//   },
168559	//   "scopes": [
168560	//     "https://www.googleapis.com/auth/cloud-platform",
168561	//     "https://www.googleapis.com/auth/compute"
168562	//   ]
168563	// }
168564
168565}
168566
168567// method id "compute.targetPools.get":
168568
168569type TargetPoolsGetCall struct {
168570	s            *Service
168571	project      string
168572	region       string
168573	targetPool   string
168574	urlParams_   gensupport.URLParams
168575	ifNoneMatch_ string
168576	ctx_         context.Context
168577	header_      http.Header
168578}
168579
168580// Get: Returns the specified target pool. Gets a list of available
168581// target pools by making a list() request.
168582// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
168583func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
168584	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168585	c.project = project
168586	c.region = region
168587	c.targetPool = targetPool
168588	return c
168589}
168590
168591// Fields allows partial responses to be retrieved. See
168592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168593// for more information.
168594func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
168595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168596	return c
168597}
168598
168599// IfNoneMatch sets the optional parameter which makes the operation
168600// fail if the object's ETag matches the given value. This is useful for
168601// getting updates only after the object has changed since the last
168602// request. Use googleapi.IsNotModified to check whether the response
168603// error from Do is the result of In-None-Match.
168604func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
168605	c.ifNoneMatch_ = entityTag
168606	return c
168607}
168608
168609// Context sets the context to be used in this call's Do method. Any
168610// pending HTTP request will be aborted if the provided context is
168611// canceled.
168612func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
168613	c.ctx_ = ctx
168614	return c
168615}
168616
168617// Header returns an http.Header that can be modified by the caller to
168618// add HTTP headers to the request.
168619func (c *TargetPoolsGetCall) Header() http.Header {
168620	if c.header_ == nil {
168621		c.header_ = make(http.Header)
168622	}
168623	return c.header_
168624}
168625
168626func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
168627	reqHeaders := make(http.Header)
168628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
168629	for k, v := range c.header_ {
168630		reqHeaders[k] = v
168631	}
168632	reqHeaders.Set("User-Agent", c.s.userAgent())
168633	if c.ifNoneMatch_ != "" {
168634		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168635	}
168636	var body io.Reader = nil
168637	c.urlParams_.Set("alt", alt)
168638	c.urlParams_.Set("prettyPrint", "false")
168639	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
168640	urls += "?" + c.urlParams_.Encode()
168641	req, err := http.NewRequest("GET", urls, body)
168642	if err != nil {
168643		return nil, err
168644	}
168645	req.Header = reqHeaders
168646	googleapi.Expand(req.URL, map[string]string{
168647		"project":    c.project,
168648		"region":     c.region,
168649		"targetPool": c.targetPool,
168650	})
168651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168652}
168653
168654// Do executes the "compute.targetPools.get" call.
168655// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
168656// status code is an error. Response headers are in either
168657// *TargetPool.ServerResponse.Header or (if a response was returned at
168658// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168659// to check whether the returned error was because
168660// http.StatusNotModified was returned.
168661func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
168662	gensupport.SetOptions(c.urlParams_, opts...)
168663	res, err := c.doRequest("json")
168664	if res != nil && res.StatusCode == http.StatusNotModified {
168665		if res.Body != nil {
168666			res.Body.Close()
168667		}
168668		return nil, &googleapi.Error{
168669			Code:   res.StatusCode,
168670			Header: res.Header,
168671		}
168672	}
168673	if err != nil {
168674		return nil, err
168675	}
168676	defer googleapi.CloseBody(res)
168677	if err := googleapi.CheckResponse(res); err != nil {
168678		return nil, err
168679	}
168680	ret := &TargetPool{
168681		ServerResponse: googleapi.ServerResponse{
168682			Header:         res.Header,
168683			HTTPStatusCode: res.StatusCode,
168684		},
168685	}
168686	target := &ret
168687	if err := gensupport.DecodeResponse(target, res); err != nil {
168688		return nil, err
168689	}
168690	return ret, nil
168691	// {
168692	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
168693	//   "httpMethod": "GET",
168694	//   "id": "compute.targetPools.get",
168695	//   "parameterOrder": [
168696	//     "project",
168697	//     "region",
168698	//     "targetPool"
168699	//   ],
168700	//   "parameters": {
168701	//     "project": {
168702	//       "description": "Project ID for this request.",
168703	//       "location": "path",
168704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168705	//       "required": true,
168706	//       "type": "string"
168707	//     },
168708	//     "region": {
168709	//       "description": "Name of the region scoping this request.",
168710	//       "location": "path",
168711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168712	//       "required": true,
168713	//       "type": "string"
168714	//     },
168715	//     "targetPool": {
168716	//       "description": "Name of the TargetPool resource to return.",
168717	//       "location": "path",
168718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168719	//       "required": true,
168720	//       "type": "string"
168721	//     }
168722	//   },
168723	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
168724	//   "response": {
168725	//     "$ref": "TargetPool"
168726	//   },
168727	//   "scopes": [
168728	//     "https://www.googleapis.com/auth/cloud-platform",
168729	//     "https://www.googleapis.com/auth/compute",
168730	//     "https://www.googleapis.com/auth/compute.readonly"
168731	//   ]
168732	// }
168733
168734}
168735
168736// method id "compute.targetPools.getHealth":
168737
168738type TargetPoolsGetHealthCall struct {
168739	s                 *Service
168740	project           string
168741	region            string
168742	targetPool        string
168743	instancereference *InstanceReference
168744	urlParams_        gensupport.URLParams
168745	ctx_              context.Context
168746	header_           http.Header
168747}
168748
168749// GetHealth: Gets the most recent health check results for each IP for
168750// the instance that is referenced by the given target pool.
168751// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
168752func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
168753	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168754	c.project = project
168755	c.region = region
168756	c.targetPool = targetPool
168757	c.instancereference = instancereference
168758	return c
168759}
168760
168761// Fields allows partial responses to be retrieved. See
168762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168763// for more information.
168764func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
168765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168766	return c
168767}
168768
168769// Context sets the context to be used in this call's Do method. Any
168770// pending HTTP request will be aborted if the provided context is
168771// canceled.
168772func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
168773	c.ctx_ = ctx
168774	return c
168775}
168776
168777// Header returns an http.Header that can be modified by the caller to
168778// add HTTP headers to the request.
168779func (c *TargetPoolsGetHealthCall) Header() http.Header {
168780	if c.header_ == nil {
168781		c.header_ = make(http.Header)
168782	}
168783	return c.header_
168784}
168785
168786func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
168787	reqHeaders := make(http.Header)
168788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
168789	for k, v := range c.header_ {
168790		reqHeaders[k] = v
168791	}
168792	reqHeaders.Set("User-Agent", c.s.userAgent())
168793	var body io.Reader = nil
168794	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
168795	if err != nil {
168796		return nil, err
168797	}
168798	reqHeaders.Set("Content-Type", "application/json")
168799	c.urlParams_.Set("alt", alt)
168800	c.urlParams_.Set("prettyPrint", "false")
168801	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
168802	urls += "?" + c.urlParams_.Encode()
168803	req, err := http.NewRequest("POST", urls, body)
168804	if err != nil {
168805		return nil, err
168806	}
168807	req.Header = reqHeaders
168808	googleapi.Expand(req.URL, map[string]string{
168809		"project":    c.project,
168810		"region":     c.region,
168811		"targetPool": c.targetPool,
168812	})
168813	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168814}
168815
168816// Do executes the "compute.targetPools.getHealth" call.
168817// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
168818// Any non-2xx status code is an error. Response headers are in either
168819// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
168820// returned at all) in error.(*googleapi.Error).Header. Use
168821// googleapi.IsNotModified to check whether the returned error was
168822// because http.StatusNotModified was returned.
168823func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
168824	gensupport.SetOptions(c.urlParams_, opts...)
168825	res, err := c.doRequest("json")
168826	if res != nil && res.StatusCode == http.StatusNotModified {
168827		if res.Body != nil {
168828			res.Body.Close()
168829		}
168830		return nil, &googleapi.Error{
168831			Code:   res.StatusCode,
168832			Header: res.Header,
168833		}
168834	}
168835	if err != nil {
168836		return nil, err
168837	}
168838	defer googleapi.CloseBody(res)
168839	if err := googleapi.CheckResponse(res); err != nil {
168840		return nil, err
168841	}
168842	ret := &TargetPoolInstanceHealth{
168843		ServerResponse: googleapi.ServerResponse{
168844			Header:         res.Header,
168845			HTTPStatusCode: res.StatusCode,
168846		},
168847	}
168848	target := &ret
168849	if err := gensupport.DecodeResponse(target, res); err != nil {
168850		return nil, err
168851	}
168852	return ret, nil
168853	// {
168854	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
168855	//   "httpMethod": "POST",
168856	//   "id": "compute.targetPools.getHealth",
168857	//   "parameterOrder": [
168858	//     "project",
168859	//     "region",
168860	//     "targetPool"
168861	//   ],
168862	//   "parameters": {
168863	//     "project": {
168864	//       "description": "Project ID for this request.",
168865	//       "location": "path",
168866	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168867	//       "required": true,
168868	//       "type": "string"
168869	//     },
168870	//     "region": {
168871	//       "description": "Name of the region scoping this request.",
168872	//       "location": "path",
168873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168874	//       "required": true,
168875	//       "type": "string"
168876	//     },
168877	//     "targetPool": {
168878	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
168879	//       "location": "path",
168880	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168881	//       "required": true,
168882	//       "type": "string"
168883	//     }
168884	//   },
168885	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
168886	//   "request": {
168887	//     "$ref": "InstanceReference"
168888	//   },
168889	//   "response": {
168890	//     "$ref": "TargetPoolInstanceHealth"
168891	//   },
168892	//   "scopes": [
168893	//     "https://www.googleapis.com/auth/cloud-platform",
168894	//     "https://www.googleapis.com/auth/compute",
168895	//     "https://www.googleapis.com/auth/compute.readonly"
168896	//   ]
168897	// }
168898
168899}
168900
168901// method id "compute.targetPools.insert":
168902
168903type TargetPoolsInsertCall struct {
168904	s          *Service
168905	project    string
168906	region     string
168907	targetpool *TargetPool
168908	urlParams_ gensupport.URLParams
168909	ctx_       context.Context
168910	header_    http.Header
168911}
168912
168913// Insert: Creates a target pool in the specified project and region
168914// using the data included in the request.
168915// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
168916func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
168917	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168918	c.project = project
168919	c.region = region
168920	c.targetpool = targetpool
168921	return c
168922}
168923
168924// RequestId sets the optional parameter "requestId": An optional
168925// request ID to identify requests. Specify a unique request ID so that
168926// if you must retry your request, the server will know to ignore the
168927// request if it has already been completed.
168928//
168929// For example, consider a situation where you make an initial request
168930// and the request times out. If you make the request again with the
168931// same request ID, the server can check if original operation with the
168932// same request ID was received, and if so, will ignore the second
168933// request. This prevents clients from accidentally creating duplicate
168934// commitments.
168935//
168936// The request ID must be a valid UUID with the exception that zero UUID
168937// is not supported (00000000-0000-0000-0000-000000000000).
168938func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
168939	c.urlParams_.Set("requestId", requestId)
168940	return c
168941}
168942
168943// Fields allows partial responses to be retrieved. See
168944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168945// for more information.
168946func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
168947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168948	return c
168949}
168950
168951// Context sets the context to be used in this call's Do method. Any
168952// pending HTTP request will be aborted if the provided context is
168953// canceled.
168954func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
168955	c.ctx_ = ctx
168956	return c
168957}
168958
168959// Header returns an http.Header that can be modified by the caller to
168960// add HTTP headers to the request.
168961func (c *TargetPoolsInsertCall) Header() http.Header {
168962	if c.header_ == nil {
168963		c.header_ = make(http.Header)
168964	}
168965	return c.header_
168966}
168967
168968func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
168969	reqHeaders := make(http.Header)
168970	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
168971	for k, v := range c.header_ {
168972		reqHeaders[k] = v
168973	}
168974	reqHeaders.Set("User-Agent", c.s.userAgent())
168975	var body io.Reader = nil
168976	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
168977	if err != nil {
168978		return nil, err
168979	}
168980	reqHeaders.Set("Content-Type", "application/json")
168981	c.urlParams_.Set("alt", alt)
168982	c.urlParams_.Set("prettyPrint", "false")
168983	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
168984	urls += "?" + c.urlParams_.Encode()
168985	req, err := http.NewRequest("POST", urls, body)
168986	if err != nil {
168987		return nil, err
168988	}
168989	req.Header = reqHeaders
168990	googleapi.Expand(req.URL, map[string]string{
168991		"project": c.project,
168992		"region":  c.region,
168993	})
168994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168995}
168996
168997// Do executes the "compute.targetPools.insert" call.
168998// Exactly one of *Operation or error will be non-nil. Any non-2xx
168999// status code is an error. Response headers are in either
169000// *Operation.ServerResponse.Header or (if a response was returned at
169001// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169002// to check whether the returned error was because
169003// http.StatusNotModified was returned.
169004func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169005	gensupport.SetOptions(c.urlParams_, opts...)
169006	res, err := c.doRequest("json")
169007	if res != nil && res.StatusCode == http.StatusNotModified {
169008		if res.Body != nil {
169009			res.Body.Close()
169010		}
169011		return nil, &googleapi.Error{
169012			Code:   res.StatusCode,
169013			Header: res.Header,
169014		}
169015	}
169016	if err != nil {
169017		return nil, err
169018	}
169019	defer googleapi.CloseBody(res)
169020	if err := googleapi.CheckResponse(res); err != nil {
169021		return nil, err
169022	}
169023	ret := &Operation{
169024		ServerResponse: googleapi.ServerResponse{
169025			Header:         res.Header,
169026			HTTPStatusCode: res.StatusCode,
169027		},
169028	}
169029	target := &ret
169030	if err := gensupport.DecodeResponse(target, res); err != nil {
169031		return nil, err
169032	}
169033	return ret, nil
169034	// {
169035	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
169036	//   "httpMethod": "POST",
169037	//   "id": "compute.targetPools.insert",
169038	//   "parameterOrder": [
169039	//     "project",
169040	//     "region"
169041	//   ],
169042	//   "parameters": {
169043	//     "project": {
169044	//       "description": "Project ID for this request.",
169045	//       "location": "path",
169046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169047	//       "required": true,
169048	//       "type": "string"
169049	//     },
169050	//     "region": {
169051	//       "description": "Name of the region scoping this request.",
169052	//       "location": "path",
169053	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169054	//       "required": true,
169055	//       "type": "string"
169056	//     },
169057	//     "requestId": {
169058	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169059	//       "location": "query",
169060	//       "type": "string"
169061	//     }
169062	//   },
169063	//   "path": "{project}/regions/{region}/targetPools",
169064	//   "request": {
169065	//     "$ref": "TargetPool"
169066	//   },
169067	//   "response": {
169068	//     "$ref": "Operation"
169069	//   },
169070	//   "scopes": [
169071	//     "https://www.googleapis.com/auth/cloud-platform",
169072	//     "https://www.googleapis.com/auth/compute"
169073	//   ]
169074	// }
169075
169076}
169077
169078// method id "compute.targetPools.list":
169079
169080type TargetPoolsListCall struct {
169081	s            *Service
169082	project      string
169083	region       string
169084	urlParams_   gensupport.URLParams
169085	ifNoneMatch_ string
169086	ctx_         context.Context
169087	header_      http.Header
169088}
169089
169090// List: Retrieves a list of target pools available to the specified
169091// project and region.
169092// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
169093func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
169094	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169095	c.project = project
169096	c.region = region
169097	return c
169098}
169099
169100// Filter sets the optional parameter "filter": A filter expression that
169101// filters resources listed in the response. The expression must specify
169102// the field name, a comparison operator, and the value that you want to
169103// use for filtering. The value must be a string, a number, or a
169104// boolean. The comparison operator must be either `=`, `!=`, `>`, or
169105// `<`.
169106//
169107// For example, if you are filtering Compute Engine instances, you can
169108// exclude instances named `example-instance` by specifying `name !=
169109// example-instance`.
169110//
169111// You can also filter nested fields. For example, you could specify
169112// `scheduling.automaticRestart = false` to include instances only if
169113// they are not scheduled for automatic restarts. You can use filtering
169114// on nested fields to filter based on resource labels.
169115//
169116// To filter on multiple expressions, provide each separate expression
169117// within parentheses. For example: ``` (scheduling.automaticRestart =
169118// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
169119// is an `AND` expression. However, you can include `AND` and `OR`
169120// expressions explicitly. For example: ``` (cpuPlatform = "Intel
169121// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
169122// (scheduling.automaticRestart = true) ```
169123func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
169124	c.urlParams_.Set("filter", filter)
169125	return c
169126}
169127
169128// MaxResults sets the optional parameter "maxResults": The maximum
169129// number of results per page that should be returned. If the number of
169130// available results is larger than `maxResults`, Compute Engine returns
169131// a `nextPageToken` that can be used to get the next page of results in
169132// subsequent list requests. Acceptable values are `0` to `500`,
169133// inclusive. (Default: `500`)
169134func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
169135	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
169136	return c
169137}
169138
169139// OrderBy sets the optional parameter "orderBy": Sorts list results by
169140// a certain order. By default, results are returned in alphanumerical
169141// order based on the resource name.
169142//
169143// You can also sort results in descending order based on the creation
169144// timestamp using `orderBy="creationTimestamp desc". This sorts
169145// results based on the `creationTimestamp` field in reverse
169146// chronological order (newest result first). Use this to sort resources
169147// like operations so that the newest operation is returned
169148// first.
169149//
169150// Currently, only sorting by `name` or `creationTimestamp desc` is
169151// supported.
169152func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
169153	c.urlParams_.Set("orderBy", orderBy)
169154	return c
169155}
169156
169157// PageToken sets the optional parameter "pageToken": Specifies a page
169158// token to use. Set `pageToken` to the `nextPageToken` returned by a
169159// previous list request to get the next page of results.
169160func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
169161	c.urlParams_.Set("pageToken", pageToken)
169162	return c
169163}
169164
169165// ReturnPartialSuccess sets the optional parameter
169166// "returnPartialSuccess": Opt-in for partial success behavior which
169167// provides partial results in case of failure. The default value is
169168// false and the logic is the same as today.
169169func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall {
169170	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
169171	return c
169172}
169173
169174// Fields allows partial responses to be retrieved. See
169175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169176// for more information.
169177func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
169178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169179	return c
169180}
169181
169182// IfNoneMatch sets the optional parameter which makes the operation
169183// fail if the object's ETag matches the given value. This is useful for
169184// getting updates only after the object has changed since the last
169185// request. Use googleapi.IsNotModified to check whether the response
169186// error from Do is the result of In-None-Match.
169187func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
169188	c.ifNoneMatch_ = entityTag
169189	return c
169190}
169191
169192// Context sets the context to be used in this call's Do method. Any
169193// pending HTTP request will be aborted if the provided context is
169194// canceled.
169195func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
169196	c.ctx_ = ctx
169197	return c
169198}
169199
169200// Header returns an http.Header that can be modified by the caller to
169201// add HTTP headers to the request.
169202func (c *TargetPoolsListCall) Header() http.Header {
169203	if c.header_ == nil {
169204		c.header_ = make(http.Header)
169205	}
169206	return c.header_
169207}
169208
169209func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
169210	reqHeaders := make(http.Header)
169211	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
169212	for k, v := range c.header_ {
169213		reqHeaders[k] = v
169214	}
169215	reqHeaders.Set("User-Agent", c.s.userAgent())
169216	if c.ifNoneMatch_ != "" {
169217		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169218	}
169219	var body io.Reader = nil
169220	c.urlParams_.Set("alt", alt)
169221	c.urlParams_.Set("prettyPrint", "false")
169222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
169223	urls += "?" + c.urlParams_.Encode()
169224	req, err := http.NewRequest("GET", urls, body)
169225	if err != nil {
169226		return nil, err
169227	}
169228	req.Header = reqHeaders
169229	googleapi.Expand(req.URL, map[string]string{
169230		"project": c.project,
169231		"region":  c.region,
169232	})
169233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169234}
169235
169236// Do executes the "compute.targetPools.list" call.
169237// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
169238// status code is an error. Response headers are in either
169239// *TargetPoolList.ServerResponse.Header or (if a response was returned
169240// at all) in error.(*googleapi.Error).Header. Use
169241// googleapi.IsNotModified to check whether the returned error was
169242// because http.StatusNotModified was returned.
169243func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
169244	gensupport.SetOptions(c.urlParams_, opts...)
169245	res, err := c.doRequest("json")
169246	if res != nil && res.StatusCode == http.StatusNotModified {
169247		if res.Body != nil {
169248			res.Body.Close()
169249		}
169250		return nil, &googleapi.Error{
169251			Code:   res.StatusCode,
169252			Header: res.Header,
169253		}
169254	}
169255	if err != nil {
169256		return nil, err
169257	}
169258	defer googleapi.CloseBody(res)
169259	if err := googleapi.CheckResponse(res); err != nil {
169260		return nil, err
169261	}
169262	ret := &TargetPoolList{
169263		ServerResponse: googleapi.ServerResponse{
169264			Header:         res.Header,
169265			HTTPStatusCode: res.StatusCode,
169266		},
169267	}
169268	target := &ret
169269	if err := gensupport.DecodeResponse(target, res); err != nil {
169270		return nil, err
169271	}
169272	return ret, nil
169273	// {
169274	//   "description": "Retrieves a list of target pools available to the specified project and region.",
169275	//   "httpMethod": "GET",
169276	//   "id": "compute.targetPools.list",
169277	//   "parameterOrder": [
169278	//     "project",
169279	//     "region"
169280	//   ],
169281	//   "parameters": {
169282	//     "filter": {
169283	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
169284	//       "location": "query",
169285	//       "type": "string"
169286	//     },
169287	//     "maxResults": {
169288	//       "default": "500",
169289	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
169290	//       "format": "uint32",
169291	//       "location": "query",
169292	//       "minimum": "0",
169293	//       "type": "integer"
169294	//     },
169295	//     "orderBy": {
169296	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
169297	//       "location": "query",
169298	//       "type": "string"
169299	//     },
169300	//     "pageToken": {
169301	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
169302	//       "location": "query",
169303	//       "type": "string"
169304	//     },
169305	//     "project": {
169306	//       "description": "Project ID for this request.",
169307	//       "location": "path",
169308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169309	//       "required": true,
169310	//       "type": "string"
169311	//     },
169312	//     "region": {
169313	//       "description": "Name of the region scoping this request.",
169314	//       "location": "path",
169315	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169316	//       "required": true,
169317	//       "type": "string"
169318	//     },
169319	//     "returnPartialSuccess": {
169320	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
169321	//       "location": "query",
169322	//       "type": "boolean"
169323	//     }
169324	//   },
169325	//   "path": "{project}/regions/{region}/targetPools",
169326	//   "response": {
169327	//     "$ref": "TargetPoolList"
169328	//   },
169329	//   "scopes": [
169330	//     "https://www.googleapis.com/auth/cloud-platform",
169331	//     "https://www.googleapis.com/auth/compute",
169332	//     "https://www.googleapis.com/auth/compute.readonly"
169333	//   ]
169334	// }
169335
169336}
169337
169338// Pages invokes f for each page of results.
169339// A non-nil error returned from f will halt the iteration.
169340// The provided context supersedes any context provided to the Context method.
169341func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
169342	c.ctx_ = ctx
169343	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
169344	for {
169345		x, err := c.Do()
169346		if err != nil {
169347			return err
169348		}
169349		if err := f(x); err != nil {
169350			return err
169351		}
169352		if x.NextPageToken == "" {
169353			return nil
169354		}
169355		c.PageToken(x.NextPageToken)
169356	}
169357}
169358
169359// method id "compute.targetPools.removeHealthCheck":
169360
169361type TargetPoolsRemoveHealthCheckCall struct {
169362	s                                   *Service
169363	project                             string
169364	region                              string
169365	targetPool                          string
169366	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
169367	urlParams_                          gensupport.URLParams
169368	ctx_                                context.Context
169369	header_                             http.Header
169370}
169371
169372// RemoveHealthCheck: Removes health check URL from a target pool.
169373// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
169374func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
169375	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169376	c.project = project
169377	c.region = region
169378	c.targetPool = targetPool
169379	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
169380	return c
169381}
169382
169383// RequestId sets the optional parameter "requestId": An optional
169384// request ID to identify requests. Specify a unique request ID so that
169385// if you must retry your request, the server will know to ignore the
169386// request if it has already been completed.
169387//
169388// For example, consider a situation where you make an initial request
169389// and the request times out. If you make the request again with the
169390// same request ID, the server can check if original operation with the
169391// same request ID was received, and if so, will ignore the second
169392// request. This prevents clients from accidentally creating duplicate
169393// commitments.
169394//
169395// The request ID must be a valid UUID with the exception that zero UUID
169396// is not supported (00000000-0000-0000-0000-000000000000).
169397func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
169398	c.urlParams_.Set("requestId", requestId)
169399	return c
169400}
169401
169402// Fields allows partial responses to be retrieved. See
169403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169404// for more information.
169405func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
169406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169407	return c
169408}
169409
169410// Context sets the context to be used in this call's Do method. Any
169411// pending HTTP request will be aborted if the provided context is
169412// canceled.
169413func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
169414	c.ctx_ = ctx
169415	return c
169416}
169417
169418// Header returns an http.Header that can be modified by the caller to
169419// add HTTP headers to the request.
169420func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
169421	if c.header_ == nil {
169422		c.header_ = make(http.Header)
169423	}
169424	return c.header_
169425}
169426
169427func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
169428	reqHeaders := make(http.Header)
169429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
169430	for k, v := range c.header_ {
169431		reqHeaders[k] = v
169432	}
169433	reqHeaders.Set("User-Agent", c.s.userAgent())
169434	var body io.Reader = nil
169435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
169436	if err != nil {
169437		return nil, err
169438	}
169439	reqHeaders.Set("Content-Type", "application/json")
169440	c.urlParams_.Set("alt", alt)
169441	c.urlParams_.Set("prettyPrint", "false")
169442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
169443	urls += "?" + c.urlParams_.Encode()
169444	req, err := http.NewRequest("POST", urls, body)
169445	if err != nil {
169446		return nil, err
169447	}
169448	req.Header = reqHeaders
169449	googleapi.Expand(req.URL, map[string]string{
169450		"project":    c.project,
169451		"region":     c.region,
169452		"targetPool": c.targetPool,
169453	})
169454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169455}
169456
169457// Do executes the "compute.targetPools.removeHealthCheck" call.
169458// Exactly one of *Operation or error will be non-nil. Any non-2xx
169459// status code is an error. Response headers are in either
169460// *Operation.ServerResponse.Header or (if a response was returned at
169461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169462// to check whether the returned error was because
169463// http.StatusNotModified was returned.
169464func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169465	gensupport.SetOptions(c.urlParams_, opts...)
169466	res, err := c.doRequest("json")
169467	if res != nil && res.StatusCode == http.StatusNotModified {
169468		if res.Body != nil {
169469			res.Body.Close()
169470		}
169471		return nil, &googleapi.Error{
169472			Code:   res.StatusCode,
169473			Header: res.Header,
169474		}
169475	}
169476	if err != nil {
169477		return nil, err
169478	}
169479	defer googleapi.CloseBody(res)
169480	if err := googleapi.CheckResponse(res); err != nil {
169481		return nil, err
169482	}
169483	ret := &Operation{
169484		ServerResponse: googleapi.ServerResponse{
169485			Header:         res.Header,
169486			HTTPStatusCode: res.StatusCode,
169487		},
169488	}
169489	target := &ret
169490	if err := gensupport.DecodeResponse(target, res); err != nil {
169491		return nil, err
169492	}
169493	return ret, nil
169494	// {
169495	//   "description": "Removes health check URL from a target pool.",
169496	//   "httpMethod": "POST",
169497	//   "id": "compute.targetPools.removeHealthCheck",
169498	//   "parameterOrder": [
169499	//     "project",
169500	//     "region",
169501	//     "targetPool"
169502	//   ],
169503	//   "parameters": {
169504	//     "project": {
169505	//       "description": "Project ID for this request.",
169506	//       "location": "path",
169507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169508	//       "required": true,
169509	//       "type": "string"
169510	//     },
169511	//     "region": {
169512	//       "description": "Name of the region for this request.",
169513	//       "location": "path",
169514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169515	//       "required": true,
169516	//       "type": "string"
169517	//     },
169518	//     "requestId": {
169519	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169520	//       "location": "query",
169521	//       "type": "string"
169522	//     },
169523	//     "targetPool": {
169524	//       "description": "Name of the target pool to remove health checks from.",
169525	//       "location": "path",
169526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169527	//       "required": true,
169528	//       "type": "string"
169529	//     }
169530	//   },
169531	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
169532	//   "request": {
169533	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
169534	//   },
169535	//   "response": {
169536	//     "$ref": "Operation"
169537	//   },
169538	//   "scopes": [
169539	//     "https://www.googleapis.com/auth/cloud-platform",
169540	//     "https://www.googleapis.com/auth/compute"
169541	//   ]
169542	// }
169543
169544}
169545
169546// method id "compute.targetPools.removeInstance":
169547
169548type TargetPoolsRemoveInstanceCall struct {
169549	s                                *Service
169550	project                          string
169551	region                           string
169552	targetPool                       string
169553	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
169554	urlParams_                       gensupport.URLParams
169555	ctx_                             context.Context
169556	header_                          http.Header
169557}
169558
169559// RemoveInstance: Removes instance URL from a target pool.
169560// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
169561func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
169562	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169563	c.project = project
169564	c.region = region
169565	c.targetPool = targetPool
169566	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
169567	return c
169568}
169569
169570// RequestId sets the optional parameter "requestId": An optional
169571// request ID to identify requests. Specify a unique request ID so that
169572// if you must retry your request, the server will know to ignore the
169573// request if it has already been completed.
169574//
169575// For example, consider a situation where you make an initial request
169576// and the request times out. If you make the request again with the
169577// same request ID, the server can check if original operation with the
169578// same request ID was received, and if so, will ignore the second
169579// request. This prevents clients from accidentally creating duplicate
169580// commitments.
169581//
169582// The request ID must be a valid UUID with the exception that zero UUID
169583// is not supported (00000000-0000-0000-0000-000000000000).
169584func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
169585	c.urlParams_.Set("requestId", requestId)
169586	return c
169587}
169588
169589// Fields allows partial responses to be retrieved. See
169590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169591// for more information.
169592func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
169593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169594	return c
169595}
169596
169597// Context sets the context to be used in this call's Do method. Any
169598// pending HTTP request will be aborted if the provided context is
169599// canceled.
169600func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
169601	c.ctx_ = ctx
169602	return c
169603}
169604
169605// Header returns an http.Header that can be modified by the caller to
169606// add HTTP headers to the request.
169607func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
169608	if c.header_ == nil {
169609		c.header_ = make(http.Header)
169610	}
169611	return c.header_
169612}
169613
169614func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
169615	reqHeaders := make(http.Header)
169616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
169617	for k, v := range c.header_ {
169618		reqHeaders[k] = v
169619	}
169620	reqHeaders.Set("User-Agent", c.s.userAgent())
169621	var body io.Reader = nil
169622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
169623	if err != nil {
169624		return nil, err
169625	}
169626	reqHeaders.Set("Content-Type", "application/json")
169627	c.urlParams_.Set("alt", alt)
169628	c.urlParams_.Set("prettyPrint", "false")
169629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
169630	urls += "?" + c.urlParams_.Encode()
169631	req, err := http.NewRequest("POST", urls, body)
169632	if err != nil {
169633		return nil, err
169634	}
169635	req.Header = reqHeaders
169636	googleapi.Expand(req.URL, map[string]string{
169637		"project":    c.project,
169638		"region":     c.region,
169639		"targetPool": c.targetPool,
169640	})
169641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169642}
169643
169644// Do executes the "compute.targetPools.removeInstance" call.
169645// Exactly one of *Operation or error will be non-nil. Any non-2xx
169646// status code is an error. Response headers are in either
169647// *Operation.ServerResponse.Header or (if a response was returned at
169648// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169649// to check whether the returned error was because
169650// http.StatusNotModified was returned.
169651func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169652	gensupport.SetOptions(c.urlParams_, opts...)
169653	res, err := c.doRequest("json")
169654	if res != nil && res.StatusCode == http.StatusNotModified {
169655		if res.Body != nil {
169656			res.Body.Close()
169657		}
169658		return nil, &googleapi.Error{
169659			Code:   res.StatusCode,
169660			Header: res.Header,
169661		}
169662	}
169663	if err != nil {
169664		return nil, err
169665	}
169666	defer googleapi.CloseBody(res)
169667	if err := googleapi.CheckResponse(res); err != nil {
169668		return nil, err
169669	}
169670	ret := &Operation{
169671		ServerResponse: googleapi.ServerResponse{
169672			Header:         res.Header,
169673			HTTPStatusCode: res.StatusCode,
169674		},
169675	}
169676	target := &ret
169677	if err := gensupport.DecodeResponse(target, res); err != nil {
169678		return nil, err
169679	}
169680	return ret, nil
169681	// {
169682	//   "description": "Removes instance URL from a target pool.",
169683	//   "httpMethod": "POST",
169684	//   "id": "compute.targetPools.removeInstance",
169685	//   "parameterOrder": [
169686	//     "project",
169687	//     "region",
169688	//     "targetPool"
169689	//   ],
169690	//   "parameters": {
169691	//     "project": {
169692	//       "description": "Project ID for this request.",
169693	//       "location": "path",
169694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169695	//       "required": true,
169696	//       "type": "string"
169697	//     },
169698	//     "region": {
169699	//       "description": "Name of the region scoping this request.",
169700	//       "location": "path",
169701	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169702	//       "required": true,
169703	//       "type": "string"
169704	//     },
169705	//     "requestId": {
169706	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169707	//       "location": "query",
169708	//       "type": "string"
169709	//     },
169710	//     "targetPool": {
169711	//       "description": "Name of the TargetPool resource to remove instances from.",
169712	//       "location": "path",
169713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169714	//       "required": true,
169715	//       "type": "string"
169716	//     }
169717	//   },
169718	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
169719	//   "request": {
169720	//     "$ref": "TargetPoolsRemoveInstanceRequest"
169721	//   },
169722	//   "response": {
169723	//     "$ref": "Operation"
169724	//   },
169725	//   "scopes": [
169726	//     "https://www.googleapis.com/auth/cloud-platform",
169727	//     "https://www.googleapis.com/auth/compute"
169728	//   ]
169729	// }
169730
169731}
169732
169733// method id "compute.targetPools.setBackup":
169734
169735type TargetPoolsSetBackupCall struct {
169736	s               *Service
169737	project         string
169738	region          string
169739	targetPool      string
169740	targetreference *TargetReference
169741	urlParams_      gensupport.URLParams
169742	ctx_            context.Context
169743	header_         http.Header
169744}
169745
169746// SetBackup: Changes a backup target pool's configurations.
169747// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
169748func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
169749	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169750	c.project = project
169751	c.region = region
169752	c.targetPool = targetPool
169753	c.targetreference = targetreference
169754	return c
169755}
169756
169757// FailoverRatio sets the optional parameter "failoverRatio": New
169758// failoverRatio value for the target pool.
169759func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
169760	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
169761	return c
169762}
169763
169764// RequestId sets the optional parameter "requestId": An optional
169765// request ID to identify requests. Specify a unique request ID so that
169766// if you must retry your request, the server will know to ignore the
169767// request if it has already been completed.
169768//
169769// For example, consider a situation where you make an initial request
169770// and the request times out. If you make the request again with the
169771// same request ID, the server can check if original operation with the
169772// same request ID was received, and if so, will ignore the second
169773// request. This prevents clients from accidentally creating duplicate
169774// commitments.
169775//
169776// The request ID must be a valid UUID with the exception that zero UUID
169777// is not supported (00000000-0000-0000-0000-000000000000).
169778func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
169779	c.urlParams_.Set("requestId", requestId)
169780	return c
169781}
169782
169783// Fields allows partial responses to be retrieved. See
169784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169785// for more information.
169786func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
169787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169788	return c
169789}
169790
169791// Context sets the context to be used in this call's Do method. Any
169792// pending HTTP request will be aborted if the provided context is
169793// canceled.
169794func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
169795	c.ctx_ = ctx
169796	return c
169797}
169798
169799// Header returns an http.Header that can be modified by the caller to
169800// add HTTP headers to the request.
169801func (c *TargetPoolsSetBackupCall) Header() http.Header {
169802	if c.header_ == nil {
169803		c.header_ = make(http.Header)
169804	}
169805	return c.header_
169806}
169807
169808func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
169809	reqHeaders := make(http.Header)
169810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
169811	for k, v := range c.header_ {
169812		reqHeaders[k] = v
169813	}
169814	reqHeaders.Set("User-Agent", c.s.userAgent())
169815	var body io.Reader = nil
169816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
169817	if err != nil {
169818		return nil, err
169819	}
169820	reqHeaders.Set("Content-Type", "application/json")
169821	c.urlParams_.Set("alt", alt)
169822	c.urlParams_.Set("prettyPrint", "false")
169823	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
169824	urls += "?" + c.urlParams_.Encode()
169825	req, err := http.NewRequest("POST", urls, body)
169826	if err != nil {
169827		return nil, err
169828	}
169829	req.Header = reqHeaders
169830	googleapi.Expand(req.URL, map[string]string{
169831		"project":    c.project,
169832		"region":     c.region,
169833		"targetPool": c.targetPool,
169834	})
169835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169836}
169837
169838// Do executes the "compute.targetPools.setBackup" call.
169839// Exactly one of *Operation or error will be non-nil. Any non-2xx
169840// status code is an error. Response headers are in either
169841// *Operation.ServerResponse.Header or (if a response was returned at
169842// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169843// to check whether the returned error was because
169844// http.StatusNotModified was returned.
169845func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169846	gensupport.SetOptions(c.urlParams_, opts...)
169847	res, err := c.doRequest("json")
169848	if res != nil && res.StatusCode == http.StatusNotModified {
169849		if res.Body != nil {
169850			res.Body.Close()
169851		}
169852		return nil, &googleapi.Error{
169853			Code:   res.StatusCode,
169854			Header: res.Header,
169855		}
169856	}
169857	if err != nil {
169858		return nil, err
169859	}
169860	defer googleapi.CloseBody(res)
169861	if err := googleapi.CheckResponse(res); err != nil {
169862		return nil, err
169863	}
169864	ret := &Operation{
169865		ServerResponse: googleapi.ServerResponse{
169866			Header:         res.Header,
169867			HTTPStatusCode: res.StatusCode,
169868		},
169869	}
169870	target := &ret
169871	if err := gensupport.DecodeResponse(target, res); err != nil {
169872		return nil, err
169873	}
169874	return ret, nil
169875	// {
169876	//   "description": "Changes a backup target pool's configurations.",
169877	//   "httpMethod": "POST",
169878	//   "id": "compute.targetPools.setBackup",
169879	//   "parameterOrder": [
169880	//     "project",
169881	//     "region",
169882	//     "targetPool"
169883	//   ],
169884	//   "parameters": {
169885	//     "failoverRatio": {
169886	//       "description": "New failoverRatio value for the target pool.",
169887	//       "format": "float",
169888	//       "location": "query",
169889	//       "type": "number"
169890	//     },
169891	//     "project": {
169892	//       "description": "Project ID for this request.",
169893	//       "location": "path",
169894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169895	//       "required": true,
169896	//       "type": "string"
169897	//     },
169898	//     "region": {
169899	//       "description": "Name of the region scoping this request.",
169900	//       "location": "path",
169901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169902	//       "required": true,
169903	//       "type": "string"
169904	//     },
169905	//     "requestId": {
169906	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169907	//       "location": "query",
169908	//       "type": "string"
169909	//     },
169910	//     "targetPool": {
169911	//       "description": "Name of the TargetPool resource to set a backup pool for.",
169912	//       "location": "path",
169913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169914	//       "required": true,
169915	//       "type": "string"
169916	//     }
169917	//   },
169918	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
169919	//   "request": {
169920	//     "$ref": "TargetReference"
169921	//   },
169922	//   "response": {
169923	//     "$ref": "Operation"
169924	//   },
169925	//   "scopes": [
169926	//     "https://www.googleapis.com/auth/cloud-platform",
169927	//     "https://www.googleapis.com/auth/compute"
169928	//   ]
169929	// }
169930
169931}
169932
169933// method id "compute.targetPools.testIamPermissions":
169934
169935type TargetPoolsTestIamPermissionsCall struct {
169936	s                      *Service
169937	project                string
169938	region                 string
169939	resource               string
169940	testpermissionsrequest *TestPermissionsRequest
169941	urlParams_             gensupport.URLParams
169942	ctx_                   context.Context
169943	header_                http.Header
169944}
169945
169946// TestIamPermissions: Returns permissions that a caller has on the
169947// specified resource.
169948func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall {
169949	c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169950	c.project = project
169951	c.region = region
169952	c.resource = resource
169953	c.testpermissionsrequest = testpermissionsrequest
169954	return c
169955}
169956
169957// Fields allows partial responses to be retrieved. See
169958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169959// for more information.
169960func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall {
169961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169962	return c
169963}
169964
169965// Context sets the context to be used in this call's Do method. Any
169966// pending HTTP request will be aborted if the provided context is
169967// canceled.
169968func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall {
169969	c.ctx_ = ctx
169970	return c
169971}
169972
169973// Header returns an http.Header that can be modified by the caller to
169974// add HTTP headers to the request.
169975func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header {
169976	if c.header_ == nil {
169977		c.header_ = make(http.Header)
169978	}
169979	return c.header_
169980}
169981
169982func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
169983	reqHeaders := make(http.Header)
169984	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
169985	for k, v := range c.header_ {
169986		reqHeaders[k] = v
169987	}
169988	reqHeaders.Set("User-Agent", c.s.userAgent())
169989	var body io.Reader = nil
169990	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
169991	if err != nil {
169992		return nil, err
169993	}
169994	reqHeaders.Set("Content-Type", "application/json")
169995	c.urlParams_.Set("alt", alt)
169996	c.urlParams_.Set("prettyPrint", "false")
169997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{resource}/testIamPermissions")
169998	urls += "?" + c.urlParams_.Encode()
169999	req, err := http.NewRequest("POST", urls, body)
170000	if err != nil {
170001		return nil, err
170002	}
170003	req.Header = reqHeaders
170004	googleapi.Expand(req.URL, map[string]string{
170005		"project":  c.project,
170006		"region":   c.region,
170007		"resource": c.resource,
170008	})
170009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170010}
170011
170012// Do executes the "compute.targetPools.testIamPermissions" call.
170013// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
170014// non-2xx status code is an error. Response headers are in either
170015// *TestPermissionsResponse.ServerResponse.Header or (if a response was
170016// returned at all) in error.(*googleapi.Error).Header. Use
170017// googleapi.IsNotModified to check whether the returned error was
170018// because http.StatusNotModified was returned.
170019func (c *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
170020	gensupport.SetOptions(c.urlParams_, opts...)
170021	res, err := c.doRequest("json")
170022	if res != nil && res.StatusCode == http.StatusNotModified {
170023		if res.Body != nil {
170024			res.Body.Close()
170025		}
170026		return nil, &googleapi.Error{
170027			Code:   res.StatusCode,
170028			Header: res.Header,
170029		}
170030	}
170031	if err != nil {
170032		return nil, err
170033	}
170034	defer googleapi.CloseBody(res)
170035	if err := googleapi.CheckResponse(res); err != nil {
170036		return nil, err
170037	}
170038	ret := &TestPermissionsResponse{
170039		ServerResponse: googleapi.ServerResponse{
170040			Header:         res.Header,
170041			HTTPStatusCode: res.StatusCode,
170042		},
170043	}
170044	target := &ret
170045	if err := gensupport.DecodeResponse(target, res); err != nil {
170046		return nil, err
170047	}
170048	return ret, nil
170049	// {
170050	//   "description": "Returns permissions that a caller has on the specified resource.",
170051	//   "httpMethod": "POST",
170052	//   "id": "compute.targetPools.testIamPermissions",
170053	//   "parameterOrder": [
170054	//     "project",
170055	//     "region",
170056	//     "resource"
170057	//   ],
170058	//   "parameters": {
170059	//     "project": {
170060	//       "description": "Project ID for this request.",
170061	//       "location": "path",
170062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170063	//       "required": true,
170064	//       "type": "string"
170065	//     },
170066	//     "region": {
170067	//       "description": "The name of the region for this request.",
170068	//       "location": "path",
170069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170070	//       "required": true,
170071	//       "type": "string"
170072	//     },
170073	//     "resource": {
170074	//       "description": "Name or id of the resource for this request.",
170075	//       "location": "path",
170076	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170077	//       "required": true,
170078	//       "type": "string"
170079	//     }
170080	//   },
170081	//   "path": "{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
170082	//   "request": {
170083	//     "$ref": "TestPermissionsRequest"
170084	//   },
170085	//   "response": {
170086	//     "$ref": "TestPermissionsResponse"
170087	//   },
170088	//   "scopes": [
170089	//     "https://www.googleapis.com/auth/cloud-platform",
170090	//     "https://www.googleapis.com/auth/compute",
170091	//     "https://www.googleapis.com/auth/compute.readonly"
170092	//   ]
170093	// }
170094
170095}
170096
170097// method id "compute.targetSslProxies.delete":
170098
170099type TargetSslProxiesDeleteCall struct {
170100	s              *Service
170101	project        string
170102	targetSslProxy string
170103	urlParams_     gensupport.URLParams
170104	ctx_           context.Context
170105	header_        http.Header
170106}
170107
170108// Delete: Deletes the specified TargetSslProxy resource.
170109func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
170110	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170111	c.project = project
170112	c.targetSslProxy = targetSslProxy
170113	return c
170114}
170115
170116// RequestId sets the optional parameter "requestId": An optional
170117// request ID to identify requests. Specify a unique request ID so that
170118// if you must retry your request, the server will know to ignore the
170119// request if it has already been completed.
170120//
170121// For example, consider a situation where you make an initial request
170122// and the request times out. If you make the request again with the
170123// same request ID, the server can check if original operation with the
170124// same request ID was received, and if so, will ignore the second
170125// request. This prevents clients from accidentally creating duplicate
170126// commitments.
170127//
170128// The request ID must be a valid UUID with the exception that zero UUID
170129// is not supported (00000000-0000-0000-0000-000000000000).
170130func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
170131	c.urlParams_.Set("requestId", requestId)
170132	return c
170133}
170134
170135// Fields allows partial responses to be retrieved. See
170136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170137// for more information.
170138func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
170139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170140	return c
170141}
170142
170143// Context sets the context to be used in this call's Do method. Any
170144// pending HTTP request will be aborted if the provided context is
170145// canceled.
170146func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
170147	c.ctx_ = ctx
170148	return c
170149}
170150
170151// Header returns an http.Header that can be modified by the caller to
170152// add HTTP headers to the request.
170153func (c *TargetSslProxiesDeleteCall) Header() http.Header {
170154	if c.header_ == nil {
170155		c.header_ = make(http.Header)
170156	}
170157	return c.header_
170158}
170159
170160func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
170161	reqHeaders := make(http.Header)
170162	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
170163	for k, v := range c.header_ {
170164		reqHeaders[k] = v
170165	}
170166	reqHeaders.Set("User-Agent", c.s.userAgent())
170167	var body io.Reader = nil
170168	c.urlParams_.Set("alt", alt)
170169	c.urlParams_.Set("prettyPrint", "false")
170170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
170171	urls += "?" + c.urlParams_.Encode()
170172	req, err := http.NewRequest("DELETE", urls, body)
170173	if err != nil {
170174		return nil, err
170175	}
170176	req.Header = reqHeaders
170177	googleapi.Expand(req.URL, map[string]string{
170178		"project":        c.project,
170179		"targetSslProxy": c.targetSslProxy,
170180	})
170181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170182}
170183
170184// Do executes the "compute.targetSslProxies.delete" call.
170185// Exactly one of *Operation or error will be non-nil. Any non-2xx
170186// status code is an error. Response headers are in either
170187// *Operation.ServerResponse.Header or (if a response was returned at
170188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170189// to check whether the returned error was because
170190// http.StatusNotModified was returned.
170191func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170192	gensupport.SetOptions(c.urlParams_, opts...)
170193	res, err := c.doRequest("json")
170194	if res != nil && res.StatusCode == http.StatusNotModified {
170195		if res.Body != nil {
170196			res.Body.Close()
170197		}
170198		return nil, &googleapi.Error{
170199			Code:   res.StatusCode,
170200			Header: res.Header,
170201		}
170202	}
170203	if err != nil {
170204		return nil, err
170205	}
170206	defer googleapi.CloseBody(res)
170207	if err := googleapi.CheckResponse(res); err != nil {
170208		return nil, err
170209	}
170210	ret := &Operation{
170211		ServerResponse: googleapi.ServerResponse{
170212			Header:         res.Header,
170213			HTTPStatusCode: res.StatusCode,
170214		},
170215	}
170216	target := &ret
170217	if err := gensupport.DecodeResponse(target, res); err != nil {
170218		return nil, err
170219	}
170220	return ret, nil
170221	// {
170222	//   "description": "Deletes the specified TargetSslProxy resource.",
170223	//   "httpMethod": "DELETE",
170224	//   "id": "compute.targetSslProxies.delete",
170225	//   "parameterOrder": [
170226	//     "project",
170227	//     "targetSslProxy"
170228	//   ],
170229	//   "parameters": {
170230	//     "project": {
170231	//       "description": "Project ID for this request.",
170232	//       "location": "path",
170233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170234	//       "required": true,
170235	//       "type": "string"
170236	//     },
170237	//     "requestId": {
170238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170239	//       "location": "query",
170240	//       "type": "string"
170241	//     },
170242	//     "targetSslProxy": {
170243	//       "description": "Name of the TargetSslProxy resource to delete.",
170244	//       "location": "path",
170245	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170246	//       "required": true,
170247	//       "type": "string"
170248	//     }
170249	//   },
170250	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
170251	//   "response": {
170252	//     "$ref": "Operation"
170253	//   },
170254	//   "scopes": [
170255	//     "https://www.googleapis.com/auth/cloud-platform",
170256	//     "https://www.googleapis.com/auth/compute"
170257	//   ]
170258	// }
170259
170260}
170261
170262// method id "compute.targetSslProxies.get":
170263
170264type TargetSslProxiesGetCall struct {
170265	s              *Service
170266	project        string
170267	targetSslProxy string
170268	urlParams_     gensupport.URLParams
170269	ifNoneMatch_   string
170270	ctx_           context.Context
170271	header_        http.Header
170272}
170273
170274// Get: Returns the specified TargetSslProxy resource. Gets a list of
170275// available target SSL proxies by making a list() request.
170276func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
170277	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170278	c.project = project
170279	c.targetSslProxy = targetSslProxy
170280	return c
170281}
170282
170283// Fields allows partial responses to be retrieved. See
170284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170285// for more information.
170286func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
170287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170288	return c
170289}
170290
170291// IfNoneMatch sets the optional parameter which makes the operation
170292// fail if the object's ETag matches the given value. This is useful for
170293// getting updates only after the object has changed since the last
170294// request. Use googleapi.IsNotModified to check whether the response
170295// error from Do is the result of In-None-Match.
170296func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
170297	c.ifNoneMatch_ = entityTag
170298	return c
170299}
170300
170301// Context sets the context to be used in this call's Do method. Any
170302// pending HTTP request will be aborted if the provided context is
170303// canceled.
170304func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
170305	c.ctx_ = ctx
170306	return c
170307}
170308
170309// Header returns an http.Header that can be modified by the caller to
170310// add HTTP headers to the request.
170311func (c *TargetSslProxiesGetCall) Header() http.Header {
170312	if c.header_ == nil {
170313		c.header_ = make(http.Header)
170314	}
170315	return c.header_
170316}
170317
170318func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
170319	reqHeaders := make(http.Header)
170320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
170321	for k, v := range c.header_ {
170322		reqHeaders[k] = v
170323	}
170324	reqHeaders.Set("User-Agent", c.s.userAgent())
170325	if c.ifNoneMatch_ != "" {
170326		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170327	}
170328	var body io.Reader = nil
170329	c.urlParams_.Set("alt", alt)
170330	c.urlParams_.Set("prettyPrint", "false")
170331	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
170332	urls += "?" + c.urlParams_.Encode()
170333	req, err := http.NewRequest("GET", urls, body)
170334	if err != nil {
170335		return nil, err
170336	}
170337	req.Header = reqHeaders
170338	googleapi.Expand(req.URL, map[string]string{
170339		"project":        c.project,
170340		"targetSslProxy": c.targetSslProxy,
170341	})
170342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170343}
170344
170345// Do executes the "compute.targetSslProxies.get" call.
170346// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
170347// status code is an error. Response headers are in either
170348// *TargetSslProxy.ServerResponse.Header or (if a response was returned
170349// at all) in error.(*googleapi.Error).Header. Use
170350// googleapi.IsNotModified to check whether the returned error was
170351// because http.StatusNotModified was returned.
170352func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
170353	gensupport.SetOptions(c.urlParams_, opts...)
170354	res, err := c.doRequest("json")
170355	if res != nil && res.StatusCode == http.StatusNotModified {
170356		if res.Body != nil {
170357			res.Body.Close()
170358		}
170359		return nil, &googleapi.Error{
170360			Code:   res.StatusCode,
170361			Header: res.Header,
170362		}
170363	}
170364	if err != nil {
170365		return nil, err
170366	}
170367	defer googleapi.CloseBody(res)
170368	if err := googleapi.CheckResponse(res); err != nil {
170369		return nil, err
170370	}
170371	ret := &TargetSslProxy{
170372		ServerResponse: googleapi.ServerResponse{
170373			Header:         res.Header,
170374			HTTPStatusCode: res.StatusCode,
170375		},
170376	}
170377	target := &ret
170378	if err := gensupport.DecodeResponse(target, res); err != nil {
170379		return nil, err
170380	}
170381	return ret, nil
170382	// {
170383	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
170384	//   "httpMethod": "GET",
170385	//   "id": "compute.targetSslProxies.get",
170386	//   "parameterOrder": [
170387	//     "project",
170388	//     "targetSslProxy"
170389	//   ],
170390	//   "parameters": {
170391	//     "project": {
170392	//       "description": "Project ID for this request.",
170393	//       "location": "path",
170394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170395	//       "required": true,
170396	//       "type": "string"
170397	//     },
170398	//     "targetSslProxy": {
170399	//       "description": "Name of the TargetSslProxy resource to return.",
170400	//       "location": "path",
170401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170402	//       "required": true,
170403	//       "type": "string"
170404	//     }
170405	//   },
170406	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
170407	//   "response": {
170408	//     "$ref": "TargetSslProxy"
170409	//   },
170410	//   "scopes": [
170411	//     "https://www.googleapis.com/auth/cloud-platform",
170412	//     "https://www.googleapis.com/auth/compute",
170413	//     "https://www.googleapis.com/auth/compute.readonly"
170414	//   ]
170415	// }
170416
170417}
170418
170419// method id "compute.targetSslProxies.insert":
170420
170421type TargetSslProxiesInsertCall struct {
170422	s              *Service
170423	project        string
170424	targetsslproxy *TargetSslProxy
170425	urlParams_     gensupport.URLParams
170426	ctx_           context.Context
170427	header_        http.Header
170428}
170429
170430// Insert: Creates a TargetSslProxy resource in the specified project
170431// using the data included in the request.
170432func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
170433	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170434	c.project = project
170435	c.targetsslproxy = targetsslproxy
170436	return c
170437}
170438
170439// RequestId sets the optional parameter "requestId": An optional
170440// request ID to identify requests. Specify a unique request ID so that
170441// if you must retry your request, the server will know to ignore the
170442// request if it has already been completed.
170443//
170444// For example, consider a situation where you make an initial request
170445// and the request times out. If you make the request again with the
170446// same request ID, the server can check if original operation with the
170447// same request ID was received, and if so, will ignore the second
170448// request. This prevents clients from accidentally creating duplicate
170449// commitments.
170450//
170451// The request ID must be a valid UUID with the exception that zero UUID
170452// is not supported (00000000-0000-0000-0000-000000000000).
170453func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
170454	c.urlParams_.Set("requestId", requestId)
170455	return c
170456}
170457
170458// Fields allows partial responses to be retrieved. See
170459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170460// for more information.
170461func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
170462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170463	return c
170464}
170465
170466// Context sets the context to be used in this call's Do method. Any
170467// pending HTTP request will be aborted if the provided context is
170468// canceled.
170469func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
170470	c.ctx_ = ctx
170471	return c
170472}
170473
170474// Header returns an http.Header that can be modified by the caller to
170475// add HTTP headers to the request.
170476func (c *TargetSslProxiesInsertCall) Header() http.Header {
170477	if c.header_ == nil {
170478		c.header_ = make(http.Header)
170479	}
170480	return c.header_
170481}
170482
170483func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
170484	reqHeaders := make(http.Header)
170485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
170486	for k, v := range c.header_ {
170487		reqHeaders[k] = v
170488	}
170489	reqHeaders.Set("User-Agent", c.s.userAgent())
170490	var body io.Reader = nil
170491	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
170492	if err != nil {
170493		return nil, err
170494	}
170495	reqHeaders.Set("Content-Type", "application/json")
170496	c.urlParams_.Set("alt", alt)
170497	c.urlParams_.Set("prettyPrint", "false")
170498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
170499	urls += "?" + c.urlParams_.Encode()
170500	req, err := http.NewRequest("POST", urls, body)
170501	if err != nil {
170502		return nil, err
170503	}
170504	req.Header = reqHeaders
170505	googleapi.Expand(req.URL, map[string]string{
170506		"project": c.project,
170507	})
170508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170509}
170510
170511// Do executes the "compute.targetSslProxies.insert" call.
170512// Exactly one of *Operation or error will be non-nil. Any non-2xx
170513// status code is an error. Response headers are in either
170514// *Operation.ServerResponse.Header or (if a response was returned at
170515// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170516// to check whether the returned error was because
170517// http.StatusNotModified was returned.
170518func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170519	gensupport.SetOptions(c.urlParams_, opts...)
170520	res, err := c.doRequest("json")
170521	if res != nil && res.StatusCode == http.StatusNotModified {
170522		if res.Body != nil {
170523			res.Body.Close()
170524		}
170525		return nil, &googleapi.Error{
170526			Code:   res.StatusCode,
170527			Header: res.Header,
170528		}
170529	}
170530	if err != nil {
170531		return nil, err
170532	}
170533	defer googleapi.CloseBody(res)
170534	if err := googleapi.CheckResponse(res); err != nil {
170535		return nil, err
170536	}
170537	ret := &Operation{
170538		ServerResponse: googleapi.ServerResponse{
170539			Header:         res.Header,
170540			HTTPStatusCode: res.StatusCode,
170541		},
170542	}
170543	target := &ret
170544	if err := gensupport.DecodeResponse(target, res); err != nil {
170545		return nil, err
170546	}
170547	return ret, nil
170548	// {
170549	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
170550	//   "httpMethod": "POST",
170551	//   "id": "compute.targetSslProxies.insert",
170552	//   "parameterOrder": [
170553	//     "project"
170554	//   ],
170555	//   "parameters": {
170556	//     "project": {
170557	//       "description": "Project ID for this request.",
170558	//       "location": "path",
170559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170560	//       "required": true,
170561	//       "type": "string"
170562	//     },
170563	//     "requestId": {
170564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170565	//       "location": "query",
170566	//       "type": "string"
170567	//     }
170568	//   },
170569	//   "path": "{project}/global/targetSslProxies",
170570	//   "request": {
170571	//     "$ref": "TargetSslProxy"
170572	//   },
170573	//   "response": {
170574	//     "$ref": "Operation"
170575	//   },
170576	//   "scopes": [
170577	//     "https://www.googleapis.com/auth/cloud-platform",
170578	//     "https://www.googleapis.com/auth/compute"
170579	//   ]
170580	// }
170581
170582}
170583
170584// method id "compute.targetSslProxies.list":
170585
170586type TargetSslProxiesListCall struct {
170587	s            *Service
170588	project      string
170589	urlParams_   gensupport.URLParams
170590	ifNoneMatch_ string
170591	ctx_         context.Context
170592	header_      http.Header
170593}
170594
170595// List: Retrieves the list of TargetSslProxy resources available to the
170596// specified project.
170597func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
170598	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170599	c.project = project
170600	return c
170601}
170602
170603// Filter sets the optional parameter "filter": A filter expression that
170604// filters resources listed in the response. The expression must specify
170605// the field name, a comparison operator, and the value that you want to
170606// use for filtering. The value must be a string, a number, or a
170607// boolean. The comparison operator must be either `=`, `!=`, `>`, or
170608// `<`.
170609//
170610// For example, if you are filtering Compute Engine instances, you can
170611// exclude instances named `example-instance` by specifying `name !=
170612// example-instance`.
170613//
170614// You can also filter nested fields. For example, you could specify
170615// `scheduling.automaticRestart = false` to include instances only if
170616// they are not scheduled for automatic restarts. You can use filtering
170617// on nested fields to filter based on resource labels.
170618//
170619// To filter on multiple expressions, provide each separate expression
170620// within parentheses. For example: ``` (scheduling.automaticRestart =
170621// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
170622// is an `AND` expression. However, you can include `AND` and `OR`
170623// expressions explicitly. For example: ``` (cpuPlatform = "Intel
170624// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
170625// (scheduling.automaticRestart = true) ```
170626func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
170627	c.urlParams_.Set("filter", filter)
170628	return c
170629}
170630
170631// MaxResults sets the optional parameter "maxResults": The maximum
170632// number of results per page that should be returned. If the number of
170633// available results is larger than `maxResults`, Compute Engine returns
170634// a `nextPageToken` that can be used to get the next page of results in
170635// subsequent list requests. Acceptable values are `0` to `500`,
170636// inclusive. (Default: `500`)
170637func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
170638	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
170639	return c
170640}
170641
170642// OrderBy sets the optional parameter "orderBy": Sorts list results by
170643// a certain order. By default, results are returned in alphanumerical
170644// order based on the resource name.
170645//
170646// You can also sort results in descending order based on the creation
170647// timestamp using `orderBy="creationTimestamp desc". This sorts
170648// results based on the `creationTimestamp` field in reverse
170649// chronological order (newest result first). Use this to sort resources
170650// like operations so that the newest operation is returned
170651// first.
170652//
170653// Currently, only sorting by `name` or `creationTimestamp desc` is
170654// supported.
170655func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
170656	c.urlParams_.Set("orderBy", orderBy)
170657	return c
170658}
170659
170660// PageToken sets the optional parameter "pageToken": Specifies a page
170661// token to use. Set `pageToken` to the `nextPageToken` returned by a
170662// previous list request to get the next page of results.
170663func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
170664	c.urlParams_.Set("pageToken", pageToken)
170665	return c
170666}
170667
170668// ReturnPartialSuccess sets the optional parameter
170669// "returnPartialSuccess": Opt-in for partial success behavior which
170670// provides partial results in case of failure. The default value is
170671// false and the logic is the same as today.
170672func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall {
170673	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
170674	return c
170675}
170676
170677// Fields allows partial responses to be retrieved. See
170678// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170679// for more information.
170680func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
170681	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170682	return c
170683}
170684
170685// IfNoneMatch sets the optional parameter which makes the operation
170686// fail if the object's ETag matches the given value. This is useful for
170687// getting updates only after the object has changed since the last
170688// request. Use googleapi.IsNotModified to check whether the response
170689// error from Do is the result of In-None-Match.
170690func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
170691	c.ifNoneMatch_ = entityTag
170692	return c
170693}
170694
170695// Context sets the context to be used in this call's Do method. Any
170696// pending HTTP request will be aborted if the provided context is
170697// canceled.
170698func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
170699	c.ctx_ = ctx
170700	return c
170701}
170702
170703// Header returns an http.Header that can be modified by the caller to
170704// add HTTP headers to the request.
170705func (c *TargetSslProxiesListCall) Header() http.Header {
170706	if c.header_ == nil {
170707		c.header_ = make(http.Header)
170708	}
170709	return c.header_
170710}
170711
170712func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
170713	reqHeaders := make(http.Header)
170714	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
170715	for k, v := range c.header_ {
170716		reqHeaders[k] = v
170717	}
170718	reqHeaders.Set("User-Agent", c.s.userAgent())
170719	if c.ifNoneMatch_ != "" {
170720		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170721	}
170722	var body io.Reader = nil
170723	c.urlParams_.Set("alt", alt)
170724	c.urlParams_.Set("prettyPrint", "false")
170725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
170726	urls += "?" + c.urlParams_.Encode()
170727	req, err := http.NewRequest("GET", urls, body)
170728	if err != nil {
170729		return nil, err
170730	}
170731	req.Header = reqHeaders
170732	googleapi.Expand(req.URL, map[string]string{
170733		"project": c.project,
170734	})
170735	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170736}
170737
170738// Do executes the "compute.targetSslProxies.list" call.
170739// Exactly one of *TargetSslProxyList or error will be non-nil. Any
170740// non-2xx status code is an error. Response headers are in either
170741// *TargetSslProxyList.ServerResponse.Header or (if a response was
170742// returned at all) in error.(*googleapi.Error).Header. Use
170743// googleapi.IsNotModified to check whether the returned error was
170744// because http.StatusNotModified was returned.
170745func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
170746	gensupport.SetOptions(c.urlParams_, opts...)
170747	res, err := c.doRequest("json")
170748	if res != nil && res.StatusCode == http.StatusNotModified {
170749		if res.Body != nil {
170750			res.Body.Close()
170751		}
170752		return nil, &googleapi.Error{
170753			Code:   res.StatusCode,
170754			Header: res.Header,
170755		}
170756	}
170757	if err != nil {
170758		return nil, err
170759	}
170760	defer googleapi.CloseBody(res)
170761	if err := googleapi.CheckResponse(res); err != nil {
170762		return nil, err
170763	}
170764	ret := &TargetSslProxyList{
170765		ServerResponse: googleapi.ServerResponse{
170766			Header:         res.Header,
170767			HTTPStatusCode: res.StatusCode,
170768		},
170769	}
170770	target := &ret
170771	if err := gensupport.DecodeResponse(target, res); err != nil {
170772		return nil, err
170773	}
170774	return ret, nil
170775	// {
170776	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
170777	//   "httpMethod": "GET",
170778	//   "id": "compute.targetSslProxies.list",
170779	//   "parameterOrder": [
170780	//     "project"
170781	//   ],
170782	//   "parameters": {
170783	//     "filter": {
170784	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
170785	//       "location": "query",
170786	//       "type": "string"
170787	//     },
170788	//     "maxResults": {
170789	//       "default": "500",
170790	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
170791	//       "format": "uint32",
170792	//       "location": "query",
170793	//       "minimum": "0",
170794	//       "type": "integer"
170795	//     },
170796	//     "orderBy": {
170797	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
170798	//       "location": "query",
170799	//       "type": "string"
170800	//     },
170801	//     "pageToken": {
170802	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
170803	//       "location": "query",
170804	//       "type": "string"
170805	//     },
170806	//     "project": {
170807	//       "description": "Project ID for this request.",
170808	//       "location": "path",
170809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170810	//       "required": true,
170811	//       "type": "string"
170812	//     },
170813	//     "returnPartialSuccess": {
170814	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
170815	//       "location": "query",
170816	//       "type": "boolean"
170817	//     }
170818	//   },
170819	//   "path": "{project}/global/targetSslProxies",
170820	//   "response": {
170821	//     "$ref": "TargetSslProxyList"
170822	//   },
170823	//   "scopes": [
170824	//     "https://www.googleapis.com/auth/cloud-platform",
170825	//     "https://www.googleapis.com/auth/compute",
170826	//     "https://www.googleapis.com/auth/compute.readonly"
170827	//   ]
170828	// }
170829
170830}
170831
170832// Pages invokes f for each page of results.
170833// A non-nil error returned from f will halt the iteration.
170834// The provided context supersedes any context provided to the Context method.
170835func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
170836	c.ctx_ = ctx
170837	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
170838	for {
170839		x, err := c.Do()
170840		if err != nil {
170841			return err
170842		}
170843		if err := f(x); err != nil {
170844			return err
170845		}
170846		if x.NextPageToken == "" {
170847			return nil
170848		}
170849		c.PageToken(x.NextPageToken)
170850	}
170851}
170852
170853// method id "compute.targetSslProxies.setBackendService":
170854
170855type TargetSslProxiesSetBackendServiceCall struct {
170856	s                                        *Service
170857	project                                  string
170858	targetSslProxy                           string
170859	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
170860	urlParams_                               gensupport.URLParams
170861	ctx_                                     context.Context
170862	header_                                  http.Header
170863}
170864
170865// SetBackendService: Changes the BackendService for TargetSslProxy.
170866func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
170867	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170868	c.project = project
170869	c.targetSslProxy = targetSslProxy
170870	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
170871	return c
170872}
170873
170874// RequestId sets the optional parameter "requestId": An optional
170875// request ID to identify requests. Specify a unique request ID so that
170876// if you must retry your request, the server will know to ignore the
170877// request if it has already been completed.
170878//
170879// For example, consider a situation where you make an initial request
170880// and the request times out. If you make the request again with the
170881// same request ID, the server can check if original operation with the
170882// same request ID was received, and if so, will ignore the second
170883// request. This prevents clients from accidentally creating duplicate
170884// commitments.
170885//
170886// The request ID must be a valid UUID with the exception that zero UUID
170887// is not supported (00000000-0000-0000-0000-000000000000).
170888func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
170889	c.urlParams_.Set("requestId", requestId)
170890	return c
170891}
170892
170893// Fields allows partial responses to be retrieved. See
170894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170895// for more information.
170896func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
170897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170898	return c
170899}
170900
170901// Context sets the context to be used in this call's Do method. Any
170902// pending HTTP request will be aborted if the provided context is
170903// canceled.
170904func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
170905	c.ctx_ = ctx
170906	return c
170907}
170908
170909// Header returns an http.Header that can be modified by the caller to
170910// add HTTP headers to the request.
170911func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
170912	if c.header_ == nil {
170913		c.header_ = make(http.Header)
170914	}
170915	return c.header_
170916}
170917
170918func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
170919	reqHeaders := make(http.Header)
170920	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
170921	for k, v := range c.header_ {
170922		reqHeaders[k] = v
170923	}
170924	reqHeaders.Set("User-Agent", c.s.userAgent())
170925	var body io.Reader = nil
170926	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
170927	if err != nil {
170928		return nil, err
170929	}
170930	reqHeaders.Set("Content-Type", "application/json")
170931	c.urlParams_.Set("alt", alt)
170932	c.urlParams_.Set("prettyPrint", "false")
170933	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
170934	urls += "?" + c.urlParams_.Encode()
170935	req, err := http.NewRequest("POST", urls, body)
170936	if err != nil {
170937		return nil, err
170938	}
170939	req.Header = reqHeaders
170940	googleapi.Expand(req.URL, map[string]string{
170941		"project":        c.project,
170942		"targetSslProxy": c.targetSslProxy,
170943	})
170944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170945}
170946
170947// Do executes the "compute.targetSslProxies.setBackendService" call.
170948// Exactly one of *Operation or error will be non-nil. Any non-2xx
170949// status code is an error. Response headers are in either
170950// *Operation.ServerResponse.Header or (if a response was returned at
170951// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170952// to check whether the returned error was because
170953// http.StatusNotModified was returned.
170954func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170955	gensupport.SetOptions(c.urlParams_, opts...)
170956	res, err := c.doRequest("json")
170957	if res != nil && res.StatusCode == http.StatusNotModified {
170958		if res.Body != nil {
170959			res.Body.Close()
170960		}
170961		return nil, &googleapi.Error{
170962			Code:   res.StatusCode,
170963			Header: res.Header,
170964		}
170965	}
170966	if err != nil {
170967		return nil, err
170968	}
170969	defer googleapi.CloseBody(res)
170970	if err := googleapi.CheckResponse(res); err != nil {
170971		return nil, err
170972	}
170973	ret := &Operation{
170974		ServerResponse: googleapi.ServerResponse{
170975			Header:         res.Header,
170976			HTTPStatusCode: res.StatusCode,
170977		},
170978	}
170979	target := &ret
170980	if err := gensupport.DecodeResponse(target, res); err != nil {
170981		return nil, err
170982	}
170983	return ret, nil
170984	// {
170985	//   "description": "Changes the BackendService for TargetSslProxy.",
170986	//   "httpMethod": "POST",
170987	//   "id": "compute.targetSslProxies.setBackendService",
170988	//   "parameterOrder": [
170989	//     "project",
170990	//     "targetSslProxy"
170991	//   ],
170992	//   "parameters": {
170993	//     "project": {
170994	//       "description": "Project ID for this request.",
170995	//       "location": "path",
170996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170997	//       "required": true,
170998	//       "type": "string"
170999	//     },
171000	//     "requestId": {
171001	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171002	//       "location": "query",
171003	//       "type": "string"
171004	//     },
171005	//     "targetSslProxy": {
171006	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
171007	//       "location": "path",
171008	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171009	//       "required": true,
171010	//       "type": "string"
171011	//     }
171012	//   },
171013	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
171014	//   "request": {
171015	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
171016	//   },
171017	//   "response": {
171018	//     "$ref": "Operation"
171019	//   },
171020	//   "scopes": [
171021	//     "https://www.googleapis.com/auth/cloud-platform",
171022	//     "https://www.googleapis.com/auth/compute"
171023	//   ]
171024	// }
171025
171026}
171027
171028// method id "compute.targetSslProxies.setProxyHeader":
171029
171030type TargetSslProxiesSetProxyHeaderCall struct {
171031	s                                     *Service
171032	project                               string
171033	targetSslProxy                        string
171034	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
171035	urlParams_                            gensupport.URLParams
171036	ctx_                                  context.Context
171037	header_                               http.Header
171038}
171039
171040// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
171041func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
171042	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171043	c.project = project
171044	c.targetSslProxy = targetSslProxy
171045	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
171046	return c
171047}
171048
171049// RequestId sets the optional parameter "requestId": An optional
171050// request ID to identify requests. Specify a unique request ID so that
171051// if you must retry your request, the server will know to ignore the
171052// request if it has already been completed.
171053//
171054// For example, consider a situation where you make an initial request
171055// and the request times out. If you make the request again with the
171056// same request ID, the server can check if original operation with the
171057// same request ID was received, and if so, will ignore the second
171058// request. This prevents clients from accidentally creating duplicate
171059// commitments.
171060//
171061// The request ID must be a valid UUID with the exception that zero UUID
171062// is not supported (00000000-0000-0000-0000-000000000000).
171063func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
171064	c.urlParams_.Set("requestId", requestId)
171065	return c
171066}
171067
171068// Fields allows partial responses to be retrieved. See
171069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171070// for more information.
171071func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
171072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171073	return c
171074}
171075
171076// Context sets the context to be used in this call's Do method. Any
171077// pending HTTP request will be aborted if the provided context is
171078// canceled.
171079func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
171080	c.ctx_ = ctx
171081	return c
171082}
171083
171084// Header returns an http.Header that can be modified by the caller to
171085// add HTTP headers to the request.
171086func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
171087	if c.header_ == nil {
171088		c.header_ = make(http.Header)
171089	}
171090	return c.header_
171091}
171092
171093func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
171094	reqHeaders := make(http.Header)
171095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
171096	for k, v := range c.header_ {
171097		reqHeaders[k] = v
171098	}
171099	reqHeaders.Set("User-Agent", c.s.userAgent())
171100	var body io.Reader = nil
171101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
171102	if err != nil {
171103		return nil, err
171104	}
171105	reqHeaders.Set("Content-Type", "application/json")
171106	c.urlParams_.Set("alt", alt)
171107	c.urlParams_.Set("prettyPrint", "false")
171108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
171109	urls += "?" + c.urlParams_.Encode()
171110	req, err := http.NewRequest("POST", urls, body)
171111	if err != nil {
171112		return nil, err
171113	}
171114	req.Header = reqHeaders
171115	googleapi.Expand(req.URL, map[string]string{
171116		"project":        c.project,
171117		"targetSslProxy": c.targetSslProxy,
171118	})
171119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171120}
171121
171122// Do executes the "compute.targetSslProxies.setProxyHeader" call.
171123// Exactly one of *Operation or error will be non-nil. Any non-2xx
171124// status code is an error. Response headers are in either
171125// *Operation.ServerResponse.Header or (if a response was returned at
171126// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171127// to check whether the returned error was because
171128// http.StatusNotModified was returned.
171129func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171130	gensupport.SetOptions(c.urlParams_, opts...)
171131	res, err := c.doRequest("json")
171132	if res != nil && res.StatusCode == http.StatusNotModified {
171133		if res.Body != nil {
171134			res.Body.Close()
171135		}
171136		return nil, &googleapi.Error{
171137			Code:   res.StatusCode,
171138			Header: res.Header,
171139		}
171140	}
171141	if err != nil {
171142		return nil, err
171143	}
171144	defer googleapi.CloseBody(res)
171145	if err := googleapi.CheckResponse(res); err != nil {
171146		return nil, err
171147	}
171148	ret := &Operation{
171149		ServerResponse: googleapi.ServerResponse{
171150			Header:         res.Header,
171151			HTTPStatusCode: res.StatusCode,
171152		},
171153	}
171154	target := &ret
171155	if err := gensupport.DecodeResponse(target, res); err != nil {
171156		return nil, err
171157	}
171158	return ret, nil
171159	// {
171160	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
171161	//   "httpMethod": "POST",
171162	//   "id": "compute.targetSslProxies.setProxyHeader",
171163	//   "parameterOrder": [
171164	//     "project",
171165	//     "targetSslProxy"
171166	//   ],
171167	//   "parameters": {
171168	//     "project": {
171169	//       "description": "Project ID for this request.",
171170	//       "location": "path",
171171	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171172	//       "required": true,
171173	//       "type": "string"
171174	//     },
171175	//     "requestId": {
171176	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171177	//       "location": "query",
171178	//       "type": "string"
171179	//     },
171180	//     "targetSslProxy": {
171181	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
171182	//       "location": "path",
171183	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171184	//       "required": true,
171185	//       "type": "string"
171186	//     }
171187	//   },
171188	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
171189	//   "request": {
171190	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
171191	//   },
171192	//   "response": {
171193	//     "$ref": "Operation"
171194	//   },
171195	//   "scopes": [
171196	//     "https://www.googleapis.com/auth/cloud-platform",
171197	//     "https://www.googleapis.com/auth/compute"
171198	//   ]
171199	// }
171200
171201}
171202
171203// method id "compute.targetSslProxies.setSslCertificates":
171204
171205type TargetSslProxiesSetSslCertificatesCall struct {
171206	s                                         *Service
171207	project                                   string
171208	targetSslProxy                            string
171209	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
171210	urlParams_                                gensupport.URLParams
171211	ctx_                                      context.Context
171212	header_                                   http.Header
171213}
171214
171215// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
171216func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
171217	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171218	c.project = project
171219	c.targetSslProxy = targetSslProxy
171220	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
171221	return c
171222}
171223
171224// RequestId sets the optional parameter "requestId": An optional
171225// request ID to identify requests. Specify a unique request ID so that
171226// if you must retry your request, the server will know to ignore the
171227// request if it has already been completed.
171228//
171229// For example, consider a situation where you make an initial request
171230// and the request times out. If you make the request again with the
171231// same request ID, the server can check if original operation with the
171232// same request ID was received, and if so, will ignore the second
171233// request. This prevents clients from accidentally creating duplicate
171234// commitments.
171235//
171236// The request ID must be a valid UUID with the exception that zero UUID
171237// is not supported (00000000-0000-0000-0000-000000000000).
171238func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
171239	c.urlParams_.Set("requestId", requestId)
171240	return c
171241}
171242
171243// Fields allows partial responses to be retrieved. See
171244// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171245// for more information.
171246func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
171247	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171248	return c
171249}
171250
171251// Context sets the context to be used in this call's Do method. Any
171252// pending HTTP request will be aborted if the provided context is
171253// canceled.
171254func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
171255	c.ctx_ = ctx
171256	return c
171257}
171258
171259// Header returns an http.Header that can be modified by the caller to
171260// add HTTP headers to the request.
171261func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
171262	if c.header_ == nil {
171263		c.header_ = make(http.Header)
171264	}
171265	return c.header_
171266}
171267
171268func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
171269	reqHeaders := make(http.Header)
171270	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
171271	for k, v := range c.header_ {
171272		reqHeaders[k] = v
171273	}
171274	reqHeaders.Set("User-Agent", c.s.userAgent())
171275	var body io.Reader = nil
171276	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
171277	if err != nil {
171278		return nil, err
171279	}
171280	reqHeaders.Set("Content-Type", "application/json")
171281	c.urlParams_.Set("alt", alt)
171282	c.urlParams_.Set("prettyPrint", "false")
171283	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
171284	urls += "?" + c.urlParams_.Encode()
171285	req, err := http.NewRequest("POST", urls, body)
171286	if err != nil {
171287		return nil, err
171288	}
171289	req.Header = reqHeaders
171290	googleapi.Expand(req.URL, map[string]string{
171291		"project":        c.project,
171292		"targetSslProxy": c.targetSslProxy,
171293	})
171294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171295}
171296
171297// Do executes the "compute.targetSslProxies.setSslCertificates" call.
171298// Exactly one of *Operation or error will be non-nil. Any non-2xx
171299// status code is an error. Response headers are in either
171300// *Operation.ServerResponse.Header or (if a response was returned at
171301// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171302// to check whether the returned error was because
171303// http.StatusNotModified was returned.
171304func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171305	gensupport.SetOptions(c.urlParams_, opts...)
171306	res, err := c.doRequest("json")
171307	if res != nil && res.StatusCode == http.StatusNotModified {
171308		if res.Body != nil {
171309			res.Body.Close()
171310		}
171311		return nil, &googleapi.Error{
171312			Code:   res.StatusCode,
171313			Header: res.Header,
171314		}
171315	}
171316	if err != nil {
171317		return nil, err
171318	}
171319	defer googleapi.CloseBody(res)
171320	if err := googleapi.CheckResponse(res); err != nil {
171321		return nil, err
171322	}
171323	ret := &Operation{
171324		ServerResponse: googleapi.ServerResponse{
171325			Header:         res.Header,
171326			HTTPStatusCode: res.StatusCode,
171327		},
171328	}
171329	target := &ret
171330	if err := gensupport.DecodeResponse(target, res); err != nil {
171331		return nil, err
171332	}
171333	return ret, nil
171334	// {
171335	//   "description": "Changes SslCertificates for TargetSslProxy.",
171336	//   "httpMethod": "POST",
171337	//   "id": "compute.targetSslProxies.setSslCertificates",
171338	//   "parameterOrder": [
171339	//     "project",
171340	//     "targetSslProxy"
171341	//   ],
171342	//   "parameters": {
171343	//     "project": {
171344	//       "description": "Project ID for this request.",
171345	//       "location": "path",
171346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171347	//       "required": true,
171348	//       "type": "string"
171349	//     },
171350	//     "requestId": {
171351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171352	//       "location": "query",
171353	//       "type": "string"
171354	//     },
171355	//     "targetSslProxy": {
171356	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
171357	//       "location": "path",
171358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171359	//       "required": true,
171360	//       "type": "string"
171361	//     }
171362	//   },
171363	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
171364	//   "request": {
171365	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
171366	//   },
171367	//   "response": {
171368	//     "$ref": "Operation"
171369	//   },
171370	//   "scopes": [
171371	//     "https://www.googleapis.com/auth/cloud-platform",
171372	//     "https://www.googleapis.com/auth/compute"
171373	//   ]
171374	// }
171375
171376}
171377
171378// method id "compute.targetSslProxies.setSslPolicy":
171379
171380type TargetSslProxiesSetSslPolicyCall struct {
171381	s                  *Service
171382	project            string
171383	targetSslProxy     string
171384	sslpolicyreference *SslPolicyReference
171385	urlParams_         gensupport.URLParams
171386	ctx_               context.Context
171387	header_            http.Header
171388}
171389
171390// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
171391// specifies the server-side support for SSL features. This affects
171392// connections between clients and the SSL proxy load balancer. They do
171393// not affect the connection between the load balancer and the backends.
171394func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
171395	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171396	c.project = project
171397	c.targetSslProxy = targetSslProxy
171398	c.sslpolicyreference = sslpolicyreference
171399	return c
171400}
171401
171402// RequestId sets the optional parameter "requestId": An optional
171403// request ID to identify requests. Specify a unique request ID so that
171404// if you must retry your request, the server will know to ignore the
171405// request if it has already been completed.
171406//
171407// For example, consider a situation where you make an initial request
171408// and the request times out. If you make the request again with the
171409// same request ID, the server can check if original operation with the
171410// same request ID was received, and if so, will ignore the second
171411// request. This prevents clients from accidentally creating duplicate
171412// commitments.
171413//
171414// The request ID must be a valid UUID with the exception that zero UUID
171415// is not supported (00000000-0000-0000-0000-000000000000).
171416func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
171417	c.urlParams_.Set("requestId", requestId)
171418	return c
171419}
171420
171421// Fields allows partial responses to be retrieved. See
171422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171423// for more information.
171424func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
171425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171426	return c
171427}
171428
171429// Context sets the context to be used in this call's Do method. Any
171430// pending HTTP request will be aborted if the provided context is
171431// canceled.
171432func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
171433	c.ctx_ = ctx
171434	return c
171435}
171436
171437// Header returns an http.Header that can be modified by the caller to
171438// add HTTP headers to the request.
171439func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
171440	if c.header_ == nil {
171441		c.header_ = make(http.Header)
171442	}
171443	return c.header_
171444}
171445
171446func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
171447	reqHeaders := make(http.Header)
171448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
171449	for k, v := range c.header_ {
171450		reqHeaders[k] = v
171451	}
171452	reqHeaders.Set("User-Agent", c.s.userAgent())
171453	var body io.Reader = nil
171454	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
171455	if err != nil {
171456		return nil, err
171457	}
171458	reqHeaders.Set("Content-Type", "application/json")
171459	c.urlParams_.Set("alt", alt)
171460	c.urlParams_.Set("prettyPrint", "false")
171461	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
171462	urls += "?" + c.urlParams_.Encode()
171463	req, err := http.NewRequest("POST", urls, body)
171464	if err != nil {
171465		return nil, err
171466	}
171467	req.Header = reqHeaders
171468	googleapi.Expand(req.URL, map[string]string{
171469		"project":        c.project,
171470		"targetSslProxy": c.targetSslProxy,
171471	})
171472	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171473}
171474
171475// Do executes the "compute.targetSslProxies.setSslPolicy" call.
171476// Exactly one of *Operation or error will be non-nil. Any non-2xx
171477// status code is an error. Response headers are in either
171478// *Operation.ServerResponse.Header or (if a response was returned at
171479// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171480// to check whether the returned error was because
171481// http.StatusNotModified was returned.
171482func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171483	gensupport.SetOptions(c.urlParams_, opts...)
171484	res, err := c.doRequest("json")
171485	if res != nil && res.StatusCode == http.StatusNotModified {
171486		if res.Body != nil {
171487			res.Body.Close()
171488		}
171489		return nil, &googleapi.Error{
171490			Code:   res.StatusCode,
171491			Header: res.Header,
171492		}
171493	}
171494	if err != nil {
171495		return nil, err
171496	}
171497	defer googleapi.CloseBody(res)
171498	if err := googleapi.CheckResponse(res); err != nil {
171499		return nil, err
171500	}
171501	ret := &Operation{
171502		ServerResponse: googleapi.ServerResponse{
171503			Header:         res.Header,
171504			HTTPStatusCode: res.StatusCode,
171505		},
171506	}
171507	target := &ret
171508	if err := gensupport.DecodeResponse(target, res); err != nil {
171509		return nil, err
171510	}
171511	return ret, nil
171512	// {
171513	//   "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.",
171514	//   "httpMethod": "POST",
171515	//   "id": "compute.targetSslProxies.setSslPolicy",
171516	//   "parameterOrder": [
171517	//     "project",
171518	//     "targetSslProxy"
171519	//   ],
171520	//   "parameters": {
171521	//     "project": {
171522	//       "description": "Project ID for this request.",
171523	//       "location": "path",
171524	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171525	//       "required": true,
171526	//       "type": "string"
171527	//     },
171528	//     "requestId": {
171529	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171530	//       "location": "query",
171531	//       "type": "string"
171532	//     },
171533	//     "targetSslProxy": {
171534	//       "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.",
171535	//       "location": "path",
171536	//       "required": true,
171537	//       "type": "string"
171538	//     }
171539	//   },
171540	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
171541	//   "request": {
171542	//     "$ref": "SslPolicyReference"
171543	//   },
171544	//   "response": {
171545	//     "$ref": "Operation"
171546	//   },
171547	//   "scopes": [
171548	//     "https://www.googleapis.com/auth/cloud-platform",
171549	//     "https://www.googleapis.com/auth/compute"
171550	//   ]
171551	// }
171552
171553}
171554
171555// method id "compute.targetSslProxies.testIamPermissions":
171556
171557type TargetSslProxiesTestIamPermissionsCall struct {
171558	s                      *Service
171559	project                string
171560	resource               string
171561	testpermissionsrequest *TestPermissionsRequest
171562	urlParams_             gensupport.URLParams
171563	ctx_                   context.Context
171564	header_                http.Header
171565}
171566
171567// TestIamPermissions: Returns permissions that a caller has on the
171568// specified resource.
171569func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall {
171570	c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171571	c.project = project
171572	c.resource = resource
171573	c.testpermissionsrequest = testpermissionsrequest
171574	return c
171575}
171576
171577// Fields allows partial responses to be retrieved. See
171578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171579// for more information.
171580func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall {
171581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171582	return c
171583}
171584
171585// Context sets the context to be used in this call's Do method. Any
171586// pending HTTP request will be aborted if the provided context is
171587// canceled.
171588func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall {
171589	c.ctx_ = ctx
171590	return c
171591}
171592
171593// Header returns an http.Header that can be modified by the caller to
171594// add HTTP headers to the request.
171595func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header {
171596	if c.header_ == nil {
171597		c.header_ = make(http.Header)
171598	}
171599	return c.header_
171600}
171601
171602func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
171603	reqHeaders := make(http.Header)
171604	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
171605	for k, v := range c.header_ {
171606		reqHeaders[k] = v
171607	}
171608	reqHeaders.Set("User-Agent", c.s.userAgent())
171609	var body io.Reader = nil
171610	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
171611	if err != nil {
171612		return nil, err
171613	}
171614	reqHeaders.Set("Content-Type", "application/json")
171615	c.urlParams_.Set("alt", alt)
171616	c.urlParams_.Set("prettyPrint", "false")
171617	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{resource}/testIamPermissions")
171618	urls += "?" + c.urlParams_.Encode()
171619	req, err := http.NewRequest("POST", urls, body)
171620	if err != nil {
171621		return nil, err
171622	}
171623	req.Header = reqHeaders
171624	googleapi.Expand(req.URL, map[string]string{
171625		"project":  c.project,
171626		"resource": c.resource,
171627	})
171628	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171629}
171630
171631// Do executes the "compute.targetSslProxies.testIamPermissions" call.
171632// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
171633// non-2xx status code is an error. Response headers are in either
171634// *TestPermissionsResponse.ServerResponse.Header or (if a response was
171635// returned at all) in error.(*googleapi.Error).Header. Use
171636// googleapi.IsNotModified to check whether the returned error was
171637// because http.StatusNotModified was returned.
171638func (c *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
171639	gensupport.SetOptions(c.urlParams_, opts...)
171640	res, err := c.doRequest("json")
171641	if res != nil && res.StatusCode == http.StatusNotModified {
171642		if res.Body != nil {
171643			res.Body.Close()
171644		}
171645		return nil, &googleapi.Error{
171646			Code:   res.StatusCode,
171647			Header: res.Header,
171648		}
171649	}
171650	if err != nil {
171651		return nil, err
171652	}
171653	defer googleapi.CloseBody(res)
171654	if err := googleapi.CheckResponse(res); err != nil {
171655		return nil, err
171656	}
171657	ret := &TestPermissionsResponse{
171658		ServerResponse: googleapi.ServerResponse{
171659			Header:         res.Header,
171660			HTTPStatusCode: res.StatusCode,
171661		},
171662	}
171663	target := &ret
171664	if err := gensupport.DecodeResponse(target, res); err != nil {
171665		return nil, err
171666	}
171667	return ret, nil
171668	// {
171669	//   "description": "Returns permissions that a caller has on the specified resource.",
171670	//   "httpMethod": "POST",
171671	//   "id": "compute.targetSslProxies.testIamPermissions",
171672	//   "parameterOrder": [
171673	//     "project",
171674	//     "resource"
171675	//   ],
171676	//   "parameters": {
171677	//     "project": {
171678	//       "description": "Project ID for this request.",
171679	//       "location": "path",
171680	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171681	//       "required": true,
171682	//       "type": "string"
171683	//     },
171684	//     "resource": {
171685	//       "description": "Name or id of the resource for this request.",
171686	//       "location": "path",
171687	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171688	//       "required": true,
171689	//       "type": "string"
171690	//     }
171691	//   },
171692	//   "path": "{project}/global/targetSslProxies/{resource}/testIamPermissions",
171693	//   "request": {
171694	//     "$ref": "TestPermissionsRequest"
171695	//   },
171696	//   "response": {
171697	//     "$ref": "TestPermissionsResponse"
171698	//   },
171699	//   "scopes": [
171700	//     "https://www.googleapis.com/auth/cloud-platform",
171701	//     "https://www.googleapis.com/auth/compute",
171702	//     "https://www.googleapis.com/auth/compute.readonly"
171703	//   ]
171704	// }
171705
171706}
171707
171708// method id "compute.targetTcpProxies.delete":
171709
171710type TargetTcpProxiesDeleteCall struct {
171711	s              *Service
171712	project        string
171713	targetTcpProxy string
171714	urlParams_     gensupport.URLParams
171715	ctx_           context.Context
171716	header_        http.Header
171717}
171718
171719// Delete: Deletes the specified TargetTcpProxy resource.
171720func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
171721	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171722	c.project = project
171723	c.targetTcpProxy = targetTcpProxy
171724	return c
171725}
171726
171727// RequestId sets the optional parameter "requestId": An optional
171728// request ID to identify requests. Specify a unique request ID so that
171729// if you must retry your request, the server will know to ignore the
171730// request if it has already been completed.
171731//
171732// For example, consider a situation where you make an initial request
171733// and the request times out. If you make the request again with the
171734// same request ID, the server can check if original operation with the
171735// same request ID was received, and if so, will ignore the second
171736// request. This prevents clients from accidentally creating duplicate
171737// commitments.
171738//
171739// The request ID must be a valid UUID with the exception that zero UUID
171740// is not supported (00000000-0000-0000-0000-000000000000).
171741func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
171742	c.urlParams_.Set("requestId", requestId)
171743	return c
171744}
171745
171746// Fields allows partial responses to be retrieved. See
171747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171748// for more information.
171749func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
171750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171751	return c
171752}
171753
171754// Context sets the context to be used in this call's Do method. Any
171755// pending HTTP request will be aborted if the provided context is
171756// canceled.
171757func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
171758	c.ctx_ = ctx
171759	return c
171760}
171761
171762// Header returns an http.Header that can be modified by the caller to
171763// add HTTP headers to the request.
171764func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
171765	if c.header_ == nil {
171766		c.header_ = make(http.Header)
171767	}
171768	return c.header_
171769}
171770
171771func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
171772	reqHeaders := make(http.Header)
171773	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
171774	for k, v := range c.header_ {
171775		reqHeaders[k] = v
171776	}
171777	reqHeaders.Set("User-Agent", c.s.userAgent())
171778	var body io.Reader = nil
171779	c.urlParams_.Set("alt", alt)
171780	c.urlParams_.Set("prettyPrint", "false")
171781	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
171782	urls += "?" + c.urlParams_.Encode()
171783	req, err := http.NewRequest("DELETE", urls, body)
171784	if err != nil {
171785		return nil, err
171786	}
171787	req.Header = reqHeaders
171788	googleapi.Expand(req.URL, map[string]string{
171789		"project":        c.project,
171790		"targetTcpProxy": c.targetTcpProxy,
171791	})
171792	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171793}
171794
171795// Do executes the "compute.targetTcpProxies.delete" call.
171796// Exactly one of *Operation or error will be non-nil. Any non-2xx
171797// status code is an error. Response headers are in either
171798// *Operation.ServerResponse.Header or (if a response was returned at
171799// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171800// to check whether the returned error was because
171801// http.StatusNotModified was returned.
171802func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171803	gensupport.SetOptions(c.urlParams_, opts...)
171804	res, err := c.doRequest("json")
171805	if res != nil && res.StatusCode == http.StatusNotModified {
171806		if res.Body != nil {
171807			res.Body.Close()
171808		}
171809		return nil, &googleapi.Error{
171810			Code:   res.StatusCode,
171811			Header: res.Header,
171812		}
171813	}
171814	if err != nil {
171815		return nil, err
171816	}
171817	defer googleapi.CloseBody(res)
171818	if err := googleapi.CheckResponse(res); err != nil {
171819		return nil, err
171820	}
171821	ret := &Operation{
171822		ServerResponse: googleapi.ServerResponse{
171823			Header:         res.Header,
171824			HTTPStatusCode: res.StatusCode,
171825		},
171826	}
171827	target := &ret
171828	if err := gensupport.DecodeResponse(target, res); err != nil {
171829		return nil, err
171830	}
171831	return ret, nil
171832	// {
171833	//   "description": "Deletes the specified TargetTcpProxy resource.",
171834	//   "httpMethod": "DELETE",
171835	//   "id": "compute.targetTcpProxies.delete",
171836	//   "parameterOrder": [
171837	//     "project",
171838	//     "targetTcpProxy"
171839	//   ],
171840	//   "parameters": {
171841	//     "project": {
171842	//       "description": "Project ID for this request.",
171843	//       "location": "path",
171844	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171845	//       "required": true,
171846	//       "type": "string"
171847	//     },
171848	//     "requestId": {
171849	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171850	//       "location": "query",
171851	//       "type": "string"
171852	//     },
171853	//     "targetTcpProxy": {
171854	//       "description": "Name of the TargetTcpProxy resource to delete.",
171855	//       "location": "path",
171856	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171857	//       "required": true,
171858	//       "type": "string"
171859	//     }
171860	//   },
171861	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
171862	//   "response": {
171863	//     "$ref": "Operation"
171864	//   },
171865	//   "scopes": [
171866	//     "https://www.googleapis.com/auth/cloud-platform",
171867	//     "https://www.googleapis.com/auth/compute"
171868	//   ]
171869	// }
171870
171871}
171872
171873// method id "compute.targetTcpProxies.get":
171874
171875type TargetTcpProxiesGetCall struct {
171876	s              *Service
171877	project        string
171878	targetTcpProxy string
171879	urlParams_     gensupport.URLParams
171880	ifNoneMatch_   string
171881	ctx_           context.Context
171882	header_        http.Header
171883}
171884
171885// Get: Returns the specified TargetTcpProxy resource. Gets a list of
171886// available target TCP proxies by making a list() request.
171887func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
171888	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171889	c.project = project
171890	c.targetTcpProxy = targetTcpProxy
171891	return c
171892}
171893
171894// Fields allows partial responses to be retrieved. See
171895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171896// for more information.
171897func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
171898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171899	return c
171900}
171901
171902// IfNoneMatch sets the optional parameter which makes the operation
171903// fail if the object's ETag matches the given value. This is useful for
171904// getting updates only after the object has changed since the last
171905// request. Use googleapi.IsNotModified to check whether the response
171906// error from Do is the result of In-None-Match.
171907func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
171908	c.ifNoneMatch_ = entityTag
171909	return c
171910}
171911
171912// Context sets the context to be used in this call's Do method. Any
171913// pending HTTP request will be aborted if the provided context is
171914// canceled.
171915func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
171916	c.ctx_ = ctx
171917	return c
171918}
171919
171920// Header returns an http.Header that can be modified by the caller to
171921// add HTTP headers to the request.
171922func (c *TargetTcpProxiesGetCall) Header() http.Header {
171923	if c.header_ == nil {
171924		c.header_ = make(http.Header)
171925	}
171926	return c.header_
171927}
171928
171929func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
171930	reqHeaders := make(http.Header)
171931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
171932	for k, v := range c.header_ {
171933		reqHeaders[k] = v
171934	}
171935	reqHeaders.Set("User-Agent", c.s.userAgent())
171936	if c.ifNoneMatch_ != "" {
171937		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171938	}
171939	var body io.Reader = nil
171940	c.urlParams_.Set("alt", alt)
171941	c.urlParams_.Set("prettyPrint", "false")
171942	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
171943	urls += "?" + c.urlParams_.Encode()
171944	req, err := http.NewRequest("GET", urls, body)
171945	if err != nil {
171946		return nil, err
171947	}
171948	req.Header = reqHeaders
171949	googleapi.Expand(req.URL, map[string]string{
171950		"project":        c.project,
171951		"targetTcpProxy": c.targetTcpProxy,
171952	})
171953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171954}
171955
171956// Do executes the "compute.targetTcpProxies.get" call.
171957// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
171958// status code is an error. Response headers are in either
171959// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
171960// at all) in error.(*googleapi.Error).Header. Use
171961// googleapi.IsNotModified to check whether the returned error was
171962// because http.StatusNotModified was returned.
171963func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
171964	gensupport.SetOptions(c.urlParams_, opts...)
171965	res, err := c.doRequest("json")
171966	if res != nil && res.StatusCode == http.StatusNotModified {
171967		if res.Body != nil {
171968			res.Body.Close()
171969		}
171970		return nil, &googleapi.Error{
171971			Code:   res.StatusCode,
171972			Header: res.Header,
171973		}
171974	}
171975	if err != nil {
171976		return nil, err
171977	}
171978	defer googleapi.CloseBody(res)
171979	if err := googleapi.CheckResponse(res); err != nil {
171980		return nil, err
171981	}
171982	ret := &TargetTcpProxy{
171983		ServerResponse: googleapi.ServerResponse{
171984			Header:         res.Header,
171985			HTTPStatusCode: res.StatusCode,
171986		},
171987	}
171988	target := &ret
171989	if err := gensupport.DecodeResponse(target, res); err != nil {
171990		return nil, err
171991	}
171992	return ret, nil
171993	// {
171994	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
171995	//   "httpMethod": "GET",
171996	//   "id": "compute.targetTcpProxies.get",
171997	//   "parameterOrder": [
171998	//     "project",
171999	//     "targetTcpProxy"
172000	//   ],
172001	//   "parameters": {
172002	//     "project": {
172003	//       "description": "Project ID for this request.",
172004	//       "location": "path",
172005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172006	//       "required": true,
172007	//       "type": "string"
172008	//     },
172009	//     "targetTcpProxy": {
172010	//       "description": "Name of the TargetTcpProxy resource to return.",
172011	//       "location": "path",
172012	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172013	//       "required": true,
172014	//       "type": "string"
172015	//     }
172016	//   },
172017	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
172018	//   "response": {
172019	//     "$ref": "TargetTcpProxy"
172020	//   },
172021	//   "scopes": [
172022	//     "https://www.googleapis.com/auth/cloud-platform",
172023	//     "https://www.googleapis.com/auth/compute",
172024	//     "https://www.googleapis.com/auth/compute.readonly"
172025	//   ]
172026	// }
172027
172028}
172029
172030// method id "compute.targetTcpProxies.insert":
172031
172032type TargetTcpProxiesInsertCall struct {
172033	s              *Service
172034	project        string
172035	targettcpproxy *TargetTcpProxy
172036	urlParams_     gensupport.URLParams
172037	ctx_           context.Context
172038	header_        http.Header
172039}
172040
172041// Insert: Creates a TargetTcpProxy resource in the specified project
172042// using the data included in the request.
172043func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
172044	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172045	c.project = project
172046	c.targettcpproxy = targettcpproxy
172047	return c
172048}
172049
172050// RequestId sets the optional parameter "requestId": An optional
172051// request ID to identify requests. Specify a unique request ID so that
172052// if you must retry your request, the server will know to ignore the
172053// request if it has already been completed.
172054//
172055// For example, consider a situation where you make an initial request
172056// and the request times out. If you make the request again with the
172057// same request ID, the server can check if original operation with the
172058// same request ID was received, and if so, will ignore the second
172059// request. This prevents clients from accidentally creating duplicate
172060// commitments.
172061//
172062// The request ID must be a valid UUID with the exception that zero UUID
172063// is not supported (00000000-0000-0000-0000-000000000000).
172064func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
172065	c.urlParams_.Set("requestId", requestId)
172066	return c
172067}
172068
172069// Fields allows partial responses to be retrieved. See
172070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172071// for more information.
172072func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
172073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172074	return c
172075}
172076
172077// Context sets the context to be used in this call's Do method. Any
172078// pending HTTP request will be aborted if the provided context is
172079// canceled.
172080func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
172081	c.ctx_ = ctx
172082	return c
172083}
172084
172085// Header returns an http.Header that can be modified by the caller to
172086// add HTTP headers to the request.
172087func (c *TargetTcpProxiesInsertCall) Header() http.Header {
172088	if c.header_ == nil {
172089		c.header_ = make(http.Header)
172090	}
172091	return c.header_
172092}
172093
172094func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
172095	reqHeaders := make(http.Header)
172096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
172097	for k, v := range c.header_ {
172098		reqHeaders[k] = v
172099	}
172100	reqHeaders.Set("User-Agent", c.s.userAgent())
172101	var body io.Reader = nil
172102	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
172103	if err != nil {
172104		return nil, err
172105	}
172106	reqHeaders.Set("Content-Type", "application/json")
172107	c.urlParams_.Set("alt", alt)
172108	c.urlParams_.Set("prettyPrint", "false")
172109	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
172110	urls += "?" + c.urlParams_.Encode()
172111	req, err := http.NewRequest("POST", urls, body)
172112	if err != nil {
172113		return nil, err
172114	}
172115	req.Header = reqHeaders
172116	googleapi.Expand(req.URL, map[string]string{
172117		"project": c.project,
172118	})
172119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172120}
172121
172122// Do executes the "compute.targetTcpProxies.insert" call.
172123// Exactly one of *Operation or error will be non-nil. Any non-2xx
172124// status code is an error. Response headers are in either
172125// *Operation.ServerResponse.Header or (if a response was returned at
172126// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172127// to check whether the returned error was because
172128// http.StatusNotModified was returned.
172129func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172130	gensupport.SetOptions(c.urlParams_, opts...)
172131	res, err := c.doRequest("json")
172132	if res != nil && res.StatusCode == http.StatusNotModified {
172133		if res.Body != nil {
172134			res.Body.Close()
172135		}
172136		return nil, &googleapi.Error{
172137			Code:   res.StatusCode,
172138			Header: res.Header,
172139		}
172140	}
172141	if err != nil {
172142		return nil, err
172143	}
172144	defer googleapi.CloseBody(res)
172145	if err := googleapi.CheckResponse(res); err != nil {
172146		return nil, err
172147	}
172148	ret := &Operation{
172149		ServerResponse: googleapi.ServerResponse{
172150			Header:         res.Header,
172151			HTTPStatusCode: res.StatusCode,
172152		},
172153	}
172154	target := &ret
172155	if err := gensupport.DecodeResponse(target, res); err != nil {
172156		return nil, err
172157	}
172158	return ret, nil
172159	// {
172160	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
172161	//   "httpMethod": "POST",
172162	//   "id": "compute.targetTcpProxies.insert",
172163	//   "parameterOrder": [
172164	//     "project"
172165	//   ],
172166	//   "parameters": {
172167	//     "project": {
172168	//       "description": "Project ID for this request.",
172169	//       "location": "path",
172170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172171	//       "required": true,
172172	//       "type": "string"
172173	//     },
172174	//     "requestId": {
172175	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172176	//       "location": "query",
172177	//       "type": "string"
172178	//     }
172179	//   },
172180	//   "path": "{project}/global/targetTcpProxies",
172181	//   "request": {
172182	//     "$ref": "TargetTcpProxy"
172183	//   },
172184	//   "response": {
172185	//     "$ref": "Operation"
172186	//   },
172187	//   "scopes": [
172188	//     "https://www.googleapis.com/auth/cloud-platform",
172189	//     "https://www.googleapis.com/auth/compute"
172190	//   ]
172191	// }
172192
172193}
172194
172195// method id "compute.targetTcpProxies.list":
172196
172197type TargetTcpProxiesListCall struct {
172198	s            *Service
172199	project      string
172200	urlParams_   gensupport.URLParams
172201	ifNoneMatch_ string
172202	ctx_         context.Context
172203	header_      http.Header
172204}
172205
172206// List: Retrieves the list of TargetTcpProxy resources available to the
172207// specified project.
172208func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
172209	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172210	c.project = project
172211	return c
172212}
172213
172214// Filter sets the optional parameter "filter": A filter expression that
172215// filters resources listed in the response. The expression must specify
172216// the field name, a comparison operator, and the value that you want to
172217// use for filtering. The value must be a string, a number, or a
172218// boolean. The comparison operator must be either `=`, `!=`, `>`, or
172219// `<`.
172220//
172221// For example, if you are filtering Compute Engine instances, you can
172222// exclude instances named `example-instance` by specifying `name !=
172223// example-instance`.
172224//
172225// You can also filter nested fields. For example, you could specify
172226// `scheduling.automaticRestart = false` to include instances only if
172227// they are not scheduled for automatic restarts. You can use filtering
172228// on nested fields to filter based on resource labels.
172229//
172230// To filter on multiple expressions, provide each separate expression
172231// within parentheses. For example: ``` (scheduling.automaticRestart =
172232// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
172233// is an `AND` expression. However, you can include `AND` and `OR`
172234// expressions explicitly. For example: ``` (cpuPlatform = "Intel
172235// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
172236// (scheduling.automaticRestart = true) ```
172237func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
172238	c.urlParams_.Set("filter", filter)
172239	return c
172240}
172241
172242// MaxResults sets the optional parameter "maxResults": The maximum
172243// number of results per page that should be returned. If the number of
172244// available results is larger than `maxResults`, Compute Engine returns
172245// a `nextPageToken` that can be used to get the next page of results in
172246// subsequent list requests. Acceptable values are `0` to `500`,
172247// inclusive. (Default: `500`)
172248func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
172249	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
172250	return c
172251}
172252
172253// OrderBy sets the optional parameter "orderBy": Sorts list results by
172254// a certain order. By default, results are returned in alphanumerical
172255// order based on the resource name.
172256//
172257// You can also sort results in descending order based on the creation
172258// timestamp using `orderBy="creationTimestamp desc". This sorts
172259// results based on the `creationTimestamp` field in reverse
172260// chronological order (newest result first). Use this to sort resources
172261// like operations so that the newest operation is returned
172262// first.
172263//
172264// Currently, only sorting by `name` or `creationTimestamp desc` is
172265// supported.
172266func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
172267	c.urlParams_.Set("orderBy", orderBy)
172268	return c
172269}
172270
172271// PageToken sets the optional parameter "pageToken": Specifies a page
172272// token to use. Set `pageToken` to the `nextPageToken` returned by a
172273// previous list request to get the next page of results.
172274func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
172275	c.urlParams_.Set("pageToken", pageToken)
172276	return c
172277}
172278
172279// ReturnPartialSuccess sets the optional parameter
172280// "returnPartialSuccess": Opt-in for partial success behavior which
172281// provides partial results in case of failure. The default value is
172282// false and the logic is the same as today.
172283func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall {
172284	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
172285	return c
172286}
172287
172288// Fields allows partial responses to be retrieved. See
172289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172290// for more information.
172291func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
172292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172293	return c
172294}
172295
172296// IfNoneMatch sets the optional parameter which makes the operation
172297// fail if the object's ETag matches the given value. This is useful for
172298// getting updates only after the object has changed since the last
172299// request. Use googleapi.IsNotModified to check whether the response
172300// error from Do is the result of In-None-Match.
172301func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
172302	c.ifNoneMatch_ = entityTag
172303	return c
172304}
172305
172306// Context sets the context to be used in this call's Do method. Any
172307// pending HTTP request will be aborted if the provided context is
172308// canceled.
172309func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
172310	c.ctx_ = ctx
172311	return c
172312}
172313
172314// Header returns an http.Header that can be modified by the caller to
172315// add HTTP headers to the request.
172316func (c *TargetTcpProxiesListCall) Header() http.Header {
172317	if c.header_ == nil {
172318		c.header_ = make(http.Header)
172319	}
172320	return c.header_
172321}
172322
172323func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
172324	reqHeaders := make(http.Header)
172325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
172326	for k, v := range c.header_ {
172327		reqHeaders[k] = v
172328	}
172329	reqHeaders.Set("User-Agent", c.s.userAgent())
172330	if c.ifNoneMatch_ != "" {
172331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
172332	}
172333	var body io.Reader = nil
172334	c.urlParams_.Set("alt", alt)
172335	c.urlParams_.Set("prettyPrint", "false")
172336	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
172337	urls += "?" + c.urlParams_.Encode()
172338	req, err := http.NewRequest("GET", urls, body)
172339	if err != nil {
172340		return nil, err
172341	}
172342	req.Header = reqHeaders
172343	googleapi.Expand(req.URL, map[string]string{
172344		"project": c.project,
172345	})
172346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172347}
172348
172349// Do executes the "compute.targetTcpProxies.list" call.
172350// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
172351// non-2xx status code is an error. Response headers are in either
172352// *TargetTcpProxyList.ServerResponse.Header or (if a response was
172353// returned at all) in error.(*googleapi.Error).Header. Use
172354// googleapi.IsNotModified to check whether the returned error was
172355// because http.StatusNotModified was returned.
172356func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
172357	gensupport.SetOptions(c.urlParams_, opts...)
172358	res, err := c.doRequest("json")
172359	if res != nil && res.StatusCode == http.StatusNotModified {
172360		if res.Body != nil {
172361			res.Body.Close()
172362		}
172363		return nil, &googleapi.Error{
172364			Code:   res.StatusCode,
172365			Header: res.Header,
172366		}
172367	}
172368	if err != nil {
172369		return nil, err
172370	}
172371	defer googleapi.CloseBody(res)
172372	if err := googleapi.CheckResponse(res); err != nil {
172373		return nil, err
172374	}
172375	ret := &TargetTcpProxyList{
172376		ServerResponse: googleapi.ServerResponse{
172377			Header:         res.Header,
172378			HTTPStatusCode: res.StatusCode,
172379		},
172380	}
172381	target := &ret
172382	if err := gensupport.DecodeResponse(target, res); err != nil {
172383		return nil, err
172384	}
172385	return ret, nil
172386	// {
172387	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
172388	//   "httpMethod": "GET",
172389	//   "id": "compute.targetTcpProxies.list",
172390	//   "parameterOrder": [
172391	//     "project"
172392	//   ],
172393	//   "parameters": {
172394	//     "filter": {
172395	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
172396	//       "location": "query",
172397	//       "type": "string"
172398	//     },
172399	//     "maxResults": {
172400	//       "default": "500",
172401	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
172402	//       "format": "uint32",
172403	//       "location": "query",
172404	//       "minimum": "0",
172405	//       "type": "integer"
172406	//     },
172407	//     "orderBy": {
172408	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
172409	//       "location": "query",
172410	//       "type": "string"
172411	//     },
172412	//     "pageToken": {
172413	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
172414	//       "location": "query",
172415	//       "type": "string"
172416	//     },
172417	//     "project": {
172418	//       "description": "Project ID for this request.",
172419	//       "location": "path",
172420	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172421	//       "required": true,
172422	//       "type": "string"
172423	//     },
172424	//     "returnPartialSuccess": {
172425	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
172426	//       "location": "query",
172427	//       "type": "boolean"
172428	//     }
172429	//   },
172430	//   "path": "{project}/global/targetTcpProxies",
172431	//   "response": {
172432	//     "$ref": "TargetTcpProxyList"
172433	//   },
172434	//   "scopes": [
172435	//     "https://www.googleapis.com/auth/cloud-platform",
172436	//     "https://www.googleapis.com/auth/compute",
172437	//     "https://www.googleapis.com/auth/compute.readonly"
172438	//   ]
172439	// }
172440
172441}
172442
172443// Pages invokes f for each page of results.
172444// A non-nil error returned from f will halt the iteration.
172445// The provided context supersedes any context provided to the Context method.
172446func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
172447	c.ctx_ = ctx
172448	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
172449	for {
172450		x, err := c.Do()
172451		if err != nil {
172452			return err
172453		}
172454		if err := f(x); err != nil {
172455			return err
172456		}
172457		if x.NextPageToken == "" {
172458			return nil
172459		}
172460		c.PageToken(x.NextPageToken)
172461	}
172462}
172463
172464// method id "compute.targetTcpProxies.setBackendService":
172465
172466type TargetTcpProxiesSetBackendServiceCall struct {
172467	s                                        *Service
172468	project                                  string
172469	targetTcpProxy                           string
172470	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
172471	urlParams_                               gensupport.URLParams
172472	ctx_                                     context.Context
172473	header_                                  http.Header
172474}
172475
172476// SetBackendService: Changes the BackendService for TargetTcpProxy.
172477func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
172478	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172479	c.project = project
172480	c.targetTcpProxy = targetTcpProxy
172481	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
172482	return c
172483}
172484
172485// RequestId sets the optional parameter "requestId": An optional
172486// request ID to identify requests. Specify a unique request ID so that
172487// if you must retry your request, the server will know to ignore the
172488// request if it has already been completed.
172489//
172490// For example, consider a situation where you make an initial request
172491// and the request times out. If you make the request again with the
172492// same request ID, the server can check if original operation with the
172493// same request ID was received, and if so, will ignore the second
172494// request. This prevents clients from accidentally creating duplicate
172495// commitments.
172496//
172497// The request ID must be a valid UUID with the exception that zero UUID
172498// is not supported (00000000-0000-0000-0000-000000000000).
172499func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
172500	c.urlParams_.Set("requestId", requestId)
172501	return c
172502}
172503
172504// Fields allows partial responses to be retrieved. See
172505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172506// for more information.
172507func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
172508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172509	return c
172510}
172511
172512// Context sets the context to be used in this call's Do method. Any
172513// pending HTTP request will be aborted if the provided context is
172514// canceled.
172515func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
172516	c.ctx_ = ctx
172517	return c
172518}
172519
172520// Header returns an http.Header that can be modified by the caller to
172521// add HTTP headers to the request.
172522func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
172523	if c.header_ == nil {
172524		c.header_ = make(http.Header)
172525	}
172526	return c.header_
172527}
172528
172529func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
172530	reqHeaders := make(http.Header)
172531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
172532	for k, v := range c.header_ {
172533		reqHeaders[k] = v
172534	}
172535	reqHeaders.Set("User-Agent", c.s.userAgent())
172536	var body io.Reader = nil
172537	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
172538	if err != nil {
172539		return nil, err
172540	}
172541	reqHeaders.Set("Content-Type", "application/json")
172542	c.urlParams_.Set("alt", alt)
172543	c.urlParams_.Set("prettyPrint", "false")
172544	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
172545	urls += "?" + c.urlParams_.Encode()
172546	req, err := http.NewRequest("POST", urls, body)
172547	if err != nil {
172548		return nil, err
172549	}
172550	req.Header = reqHeaders
172551	googleapi.Expand(req.URL, map[string]string{
172552		"project":        c.project,
172553		"targetTcpProxy": c.targetTcpProxy,
172554	})
172555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172556}
172557
172558// Do executes the "compute.targetTcpProxies.setBackendService" call.
172559// Exactly one of *Operation or error will be non-nil. Any non-2xx
172560// status code is an error. Response headers are in either
172561// *Operation.ServerResponse.Header or (if a response was returned at
172562// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172563// to check whether the returned error was because
172564// http.StatusNotModified was returned.
172565func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172566	gensupport.SetOptions(c.urlParams_, opts...)
172567	res, err := c.doRequest("json")
172568	if res != nil && res.StatusCode == http.StatusNotModified {
172569		if res.Body != nil {
172570			res.Body.Close()
172571		}
172572		return nil, &googleapi.Error{
172573			Code:   res.StatusCode,
172574			Header: res.Header,
172575		}
172576	}
172577	if err != nil {
172578		return nil, err
172579	}
172580	defer googleapi.CloseBody(res)
172581	if err := googleapi.CheckResponse(res); err != nil {
172582		return nil, err
172583	}
172584	ret := &Operation{
172585		ServerResponse: googleapi.ServerResponse{
172586			Header:         res.Header,
172587			HTTPStatusCode: res.StatusCode,
172588		},
172589	}
172590	target := &ret
172591	if err := gensupport.DecodeResponse(target, res); err != nil {
172592		return nil, err
172593	}
172594	return ret, nil
172595	// {
172596	//   "description": "Changes the BackendService for TargetTcpProxy.",
172597	//   "httpMethod": "POST",
172598	//   "id": "compute.targetTcpProxies.setBackendService",
172599	//   "parameterOrder": [
172600	//     "project",
172601	//     "targetTcpProxy"
172602	//   ],
172603	//   "parameters": {
172604	//     "project": {
172605	//       "description": "Project ID for this request.",
172606	//       "location": "path",
172607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172608	//       "required": true,
172609	//       "type": "string"
172610	//     },
172611	//     "requestId": {
172612	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172613	//       "location": "query",
172614	//       "type": "string"
172615	//     },
172616	//     "targetTcpProxy": {
172617	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
172618	//       "location": "path",
172619	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172620	//       "required": true,
172621	//       "type": "string"
172622	//     }
172623	//   },
172624	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
172625	//   "request": {
172626	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
172627	//   },
172628	//   "response": {
172629	//     "$ref": "Operation"
172630	//   },
172631	//   "scopes": [
172632	//     "https://www.googleapis.com/auth/cloud-platform",
172633	//     "https://www.googleapis.com/auth/compute"
172634	//   ]
172635	// }
172636
172637}
172638
172639// method id "compute.targetTcpProxies.setProxyHeader":
172640
172641type TargetTcpProxiesSetProxyHeaderCall struct {
172642	s                                     *Service
172643	project                               string
172644	targetTcpProxy                        string
172645	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
172646	urlParams_                            gensupport.URLParams
172647	ctx_                                  context.Context
172648	header_                               http.Header
172649}
172650
172651// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
172652func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
172653	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172654	c.project = project
172655	c.targetTcpProxy = targetTcpProxy
172656	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
172657	return c
172658}
172659
172660// RequestId sets the optional parameter "requestId": An optional
172661// request ID to identify requests. Specify a unique request ID so that
172662// if you must retry your request, the server will know to ignore the
172663// request if it has already been completed.
172664//
172665// For example, consider a situation where you make an initial request
172666// and the request times out. If you make the request again with the
172667// same request ID, the server can check if original operation with the
172668// same request ID was received, and if so, will ignore the second
172669// request. This prevents clients from accidentally creating duplicate
172670// commitments.
172671//
172672// The request ID must be a valid UUID with the exception that zero UUID
172673// is not supported (00000000-0000-0000-0000-000000000000).
172674func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
172675	c.urlParams_.Set("requestId", requestId)
172676	return c
172677}
172678
172679// Fields allows partial responses to be retrieved. See
172680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172681// for more information.
172682func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
172683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172684	return c
172685}
172686
172687// Context sets the context to be used in this call's Do method. Any
172688// pending HTTP request will be aborted if the provided context is
172689// canceled.
172690func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
172691	c.ctx_ = ctx
172692	return c
172693}
172694
172695// Header returns an http.Header that can be modified by the caller to
172696// add HTTP headers to the request.
172697func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
172698	if c.header_ == nil {
172699		c.header_ = make(http.Header)
172700	}
172701	return c.header_
172702}
172703
172704func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
172705	reqHeaders := make(http.Header)
172706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
172707	for k, v := range c.header_ {
172708		reqHeaders[k] = v
172709	}
172710	reqHeaders.Set("User-Agent", c.s.userAgent())
172711	var body io.Reader = nil
172712	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
172713	if err != nil {
172714		return nil, err
172715	}
172716	reqHeaders.Set("Content-Type", "application/json")
172717	c.urlParams_.Set("alt", alt)
172718	c.urlParams_.Set("prettyPrint", "false")
172719	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
172720	urls += "?" + c.urlParams_.Encode()
172721	req, err := http.NewRequest("POST", urls, body)
172722	if err != nil {
172723		return nil, err
172724	}
172725	req.Header = reqHeaders
172726	googleapi.Expand(req.URL, map[string]string{
172727		"project":        c.project,
172728		"targetTcpProxy": c.targetTcpProxy,
172729	})
172730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172731}
172732
172733// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
172734// Exactly one of *Operation or error will be non-nil. Any non-2xx
172735// status code is an error. Response headers are in either
172736// *Operation.ServerResponse.Header or (if a response was returned at
172737// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172738// to check whether the returned error was because
172739// http.StatusNotModified was returned.
172740func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172741	gensupport.SetOptions(c.urlParams_, opts...)
172742	res, err := c.doRequest("json")
172743	if res != nil && res.StatusCode == http.StatusNotModified {
172744		if res.Body != nil {
172745			res.Body.Close()
172746		}
172747		return nil, &googleapi.Error{
172748			Code:   res.StatusCode,
172749			Header: res.Header,
172750		}
172751	}
172752	if err != nil {
172753		return nil, err
172754	}
172755	defer googleapi.CloseBody(res)
172756	if err := googleapi.CheckResponse(res); err != nil {
172757		return nil, err
172758	}
172759	ret := &Operation{
172760		ServerResponse: googleapi.ServerResponse{
172761			Header:         res.Header,
172762			HTTPStatusCode: res.StatusCode,
172763		},
172764	}
172765	target := &ret
172766	if err := gensupport.DecodeResponse(target, res); err != nil {
172767		return nil, err
172768	}
172769	return ret, nil
172770	// {
172771	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
172772	//   "httpMethod": "POST",
172773	//   "id": "compute.targetTcpProxies.setProxyHeader",
172774	//   "parameterOrder": [
172775	//     "project",
172776	//     "targetTcpProxy"
172777	//   ],
172778	//   "parameters": {
172779	//     "project": {
172780	//       "description": "Project ID for this request.",
172781	//       "location": "path",
172782	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172783	//       "required": true,
172784	//       "type": "string"
172785	//     },
172786	//     "requestId": {
172787	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172788	//       "location": "query",
172789	//       "type": "string"
172790	//     },
172791	//     "targetTcpProxy": {
172792	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
172793	//       "location": "path",
172794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172795	//       "required": true,
172796	//       "type": "string"
172797	//     }
172798	//   },
172799	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
172800	//   "request": {
172801	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
172802	//   },
172803	//   "response": {
172804	//     "$ref": "Operation"
172805	//   },
172806	//   "scopes": [
172807	//     "https://www.googleapis.com/auth/cloud-platform",
172808	//     "https://www.googleapis.com/auth/compute"
172809	//   ]
172810	// }
172811
172812}
172813
172814// method id "compute.targetTcpProxies.testIamPermissions":
172815
172816type TargetTcpProxiesTestIamPermissionsCall struct {
172817	s                      *Service
172818	project                string
172819	resource               string
172820	testpermissionsrequest *TestPermissionsRequest
172821	urlParams_             gensupport.URLParams
172822	ctx_                   context.Context
172823	header_                http.Header
172824}
172825
172826// TestIamPermissions: Returns permissions that a caller has on the
172827// specified resource.
172828func (r *TargetTcpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetTcpProxiesTestIamPermissionsCall {
172829	c := &TargetTcpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172830	c.project = project
172831	c.resource = resource
172832	c.testpermissionsrequest = testpermissionsrequest
172833	return c
172834}
172835
172836// Fields allows partial responses to be retrieved. See
172837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172838// for more information.
172839func (c *TargetTcpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetTcpProxiesTestIamPermissionsCall {
172840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172841	return c
172842}
172843
172844// Context sets the context to be used in this call's Do method. Any
172845// pending HTTP request will be aborted if the provided context is
172846// canceled.
172847func (c *TargetTcpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetTcpProxiesTestIamPermissionsCall {
172848	c.ctx_ = ctx
172849	return c
172850}
172851
172852// Header returns an http.Header that can be modified by the caller to
172853// add HTTP headers to the request.
172854func (c *TargetTcpProxiesTestIamPermissionsCall) Header() http.Header {
172855	if c.header_ == nil {
172856		c.header_ = make(http.Header)
172857	}
172858	return c.header_
172859}
172860
172861func (c *TargetTcpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
172862	reqHeaders := make(http.Header)
172863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
172864	for k, v := range c.header_ {
172865		reqHeaders[k] = v
172866	}
172867	reqHeaders.Set("User-Agent", c.s.userAgent())
172868	var body io.Reader = nil
172869	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
172870	if err != nil {
172871		return nil, err
172872	}
172873	reqHeaders.Set("Content-Type", "application/json")
172874	c.urlParams_.Set("alt", alt)
172875	c.urlParams_.Set("prettyPrint", "false")
172876	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{resource}/testIamPermissions")
172877	urls += "?" + c.urlParams_.Encode()
172878	req, err := http.NewRequest("POST", urls, body)
172879	if err != nil {
172880		return nil, err
172881	}
172882	req.Header = reqHeaders
172883	googleapi.Expand(req.URL, map[string]string{
172884		"project":  c.project,
172885		"resource": c.resource,
172886	})
172887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172888}
172889
172890// Do executes the "compute.targetTcpProxies.testIamPermissions" call.
172891// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
172892// non-2xx status code is an error. Response headers are in either
172893// *TestPermissionsResponse.ServerResponse.Header or (if a response was
172894// returned at all) in error.(*googleapi.Error).Header. Use
172895// googleapi.IsNotModified to check whether the returned error was
172896// because http.StatusNotModified was returned.
172897func (c *TargetTcpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
172898	gensupport.SetOptions(c.urlParams_, opts...)
172899	res, err := c.doRequest("json")
172900	if res != nil && res.StatusCode == http.StatusNotModified {
172901		if res.Body != nil {
172902			res.Body.Close()
172903		}
172904		return nil, &googleapi.Error{
172905			Code:   res.StatusCode,
172906			Header: res.Header,
172907		}
172908	}
172909	if err != nil {
172910		return nil, err
172911	}
172912	defer googleapi.CloseBody(res)
172913	if err := googleapi.CheckResponse(res); err != nil {
172914		return nil, err
172915	}
172916	ret := &TestPermissionsResponse{
172917		ServerResponse: googleapi.ServerResponse{
172918			Header:         res.Header,
172919			HTTPStatusCode: res.StatusCode,
172920		},
172921	}
172922	target := &ret
172923	if err := gensupport.DecodeResponse(target, res); err != nil {
172924		return nil, err
172925	}
172926	return ret, nil
172927	// {
172928	//   "description": "Returns permissions that a caller has on the specified resource.",
172929	//   "httpMethod": "POST",
172930	//   "id": "compute.targetTcpProxies.testIamPermissions",
172931	//   "parameterOrder": [
172932	//     "project",
172933	//     "resource"
172934	//   ],
172935	//   "parameters": {
172936	//     "project": {
172937	//       "description": "Project ID for this request.",
172938	//       "location": "path",
172939	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172940	//       "required": true,
172941	//       "type": "string"
172942	//     },
172943	//     "resource": {
172944	//       "description": "Name or id of the resource for this request.",
172945	//       "location": "path",
172946	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172947	//       "required": true,
172948	//       "type": "string"
172949	//     }
172950	//   },
172951	//   "path": "{project}/global/targetTcpProxies/{resource}/testIamPermissions",
172952	//   "request": {
172953	//     "$ref": "TestPermissionsRequest"
172954	//   },
172955	//   "response": {
172956	//     "$ref": "TestPermissionsResponse"
172957	//   },
172958	//   "scopes": [
172959	//     "https://www.googleapis.com/auth/cloud-platform",
172960	//     "https://www.googleapis.com/auth/compute",
172961	//     "https://www.googleapis.com/auth/compute.readonly"
172962	//   ]
172963	// }
172964
172965}
172966
172967// method id "compute.targetVpnGateways.aggregatedList":
172968
172969type TargetVpnGatewaysAggregatedListCall struct {
172970	s            *Service
172971	project      string
172972	urlParams_   gensupport.URLParams
172973	ifNoneMatch_ string
172974	ctx_         context.Context
172975	header_      http.Header
172976}
172977
172978// AggregatedList: Retrieves an aggregated list of target VPN gateways.
172979func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
172980	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172981	c.project = project
172982	return c
172983}
172984
172985// Filter sets the optional parameter "filter": A filter expression that
172986// filters resources listed in the response. The expression must specify
172987// the field name, a comparison operator, and the value that you want to
172988// use for filtering. The value must be a string, a number, or a
172989// boolean. The comparison operator must be either `=`, `!=`, `>`, or
172990// `<`.
172991//
172992// For example, if you are filtering Compute Engine instances, you can
172993// exclude instances named `example-instance` by specifying `name !=
172994// example-instance`.
172995//
172996// You can also filter nested fields. For example, you could specify
172997// `scheduling.automaticRestart = false` to include instances only if
172998// they are not scheduled for automatic restarts. You can use filtering
172999// on nested fields to filter based on resource labels.
173000//
173001// To filter on multiple expressions, provide each separate expression
173002// within parentheses. For example: ``` (scheduling.automaticRestart =
173003// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
173004// is an `AND` expression. However, you can include `AND` and `OR`
173005// expressions explicitly. For example: ``` (cpuPlatform = "Intel
173006// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
173007// (scheduling.automaticRestart = true) ```
173008func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
173009	c.urlParams_.Set("filter", filter)
173010	return c
173011}
173012
173013// IncludeAllScopes sets the optional parameter "includeAllScopes":
173014// Indicates whether every visible scope for each scope type (zone,
173015// region, global) should be included in the response. For new resource
173016// types added after this field, the flag has no effect as new resource
173017// types will always include every visible scope for each scope type in
173018// response. For resource types which predate this field, if this flag
173019// is omitted or false, only scopes of the scope types where the
173020// resource type is expected to be found will be included.
173021func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
173022	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
173023	return c
173024}
173025
173026// MaxResults sets the optional parameter "maxResults": The maximum
173027// number of results per page that should be returned. If the number of
173028// available results is larger than `maxResults`, Compute Engine returns
173029// a `nextPageToken` that can be used to get the next page of results in
173030// subsequent list requests. Acceptable values are `0` to `500`,
173031// inclusive. (Default: `500`)
173032func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
173033	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
173034	return c
173035}
173036
173037// OrderBy sets the optional parameter "orderBy": Sorts list results by
173038// a certain order. By default, results are returned in alphanumerical
173039// order based on the resource name.
173040//
173041// You can also sort results in descending order based on the creation
173042// timestamp using `orderBy="creationTimestamp desc". This sorts
173043// results based on the `creationTimestamp` field in reverse
173044// chronological order (newest result first). Use this to sort resources
173045// like operations so that the newest operation is returned
173046// first.
173047//
173048// Currently, only sorting by `name` or `creationTimestamp desc` is
173049// supported.
173050func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
173051	c.urlParams_.Set("orderBy", orderBy)
173052	return c
173053}
173054
173055// PageToken sets the optional parameter "pageToken": Specifies a page
173056// token to use. Set `pageToken` to the `nextPageToken` returned by a
173057// previous list request to get the next page of results.
173058func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
173059	c.urlParams_.Set("pageToken", pageToken)
173060	return c
173061}
173062
173063// ReturnPartialSuccess sets the optional parameter
173064// "returnPartialSuccess": Opt-in for partial success behavior which
173065// provides partial results in case of failure. The default value is
173066// false and the logic is the same as today.
173067func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall {
173068	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
173069	return c
173070}
173071
173072// Fields allows partial responses to be retrieved. See
173073// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173074// for more information.
173075func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
173076	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173077	return c
173078}
173079
173080// IfNoneMatch sets the optional parameter which makes the operation
173081// fail if the object's ETag matches the given value. This is useful for
173082// getting updates only after the object has changed since the last
173083// request. Use googleapi.IsNotModified to check whether the response
173084// error from Do is the result of In-None-Match.
173085func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
173086	c.ifNoneMatch_ = entityTag
173087	return c
173088}
173089
173090// Context sets the context to be used in this call's Do method. Any
173091// pending HTTP request will be aborted if the provided context is
173092// canceled.
173093func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
173094	c.ctx_ = ctx
173095	return c
173096}
173097
173098// Header returns an http.Header that can be modified by the caller to
173099// add HTTP headers to the request.
173100func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
173101	if c.header_ == nil {
173102		c.header_ = make(http.Header)
173103	}
173104	return c.header_
173105}
173106
173107func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
173108	reqHeaders := make(http.Header)
173109	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
173110	for k, v := range c.header_ {
173111		reqHeaders[k] = v
173112	}
173113	reqHeaders.Set("User-Agent", c.s.userAgent())
173114	if c.ifNoneMatch_ != "" {
173115		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
173116	}
173117	var body io.Reader = nil
173118	c.urlParams_.Set("alt", alt)
173119	c.urlParams_.Set("prettyPrint", "false")
173120	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
173121	urls += "?" + c.urlParams_.Encode()
173122	req, err := http.NewRequest("GET", urls, body)
173123	if err != nil {
173124		return nil, err
173125	}
173126	req.Header = reqHeaders
173127	googleapi.Expand(req.URL, map[string]string{
173128		"project": c.project,
173129	})
173130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173131}
173132
173133// Do executes the "compute.targetVpnGateways.aggregatedList" call.
173134// Exactly one of *TargetVpnGatewayAggregatedList or error will be
173135// non-nil. Any non-2xx status code is an error. Response headers are in
173136// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
173137// response was returned at all) in error.(*googleapi.Error).Header. Use
173138// googleapi.IsNotModified to check whether the returned error was
173139// because http.StatusNotModified was returned.
173140func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
173141	gensupport.SetOptions(c.urlParams_, opts...)
173142	res, err := c.doRequest("json")
173143	if res != nil && res.StatusCode == http.StatusNotModified {
173144		if res.Body != nil {
173145			res.Body.Close()
173146		}
173147		return nil, &googleapi.Error{
173148			Code:   res.StatusCode,
173149			Header: res.Header,
173150		}
173151	}
173152	if err != nil {
173153		return nil, err
173154	}
173155	defer googleapi.CloseBody(res)
173156	if err := googleapi.CheckResponse(res); err != nil {
173157		return nil, err
173158	}
173159	ret := &TargetVpnGatewayAggregatedList{
173160		ServerResponse: googleapi.ServerResponse{
173161			Header:         res.Header,
173162			HTTPStatusCode: res.StatusCode,
173163		},
173164	}
173165	target := &ret
173166	if err := gensupport.DecodeResponse(target, res); err != nil {
173167		return nil, err
173168	}
173169	return ret, nil
173170	// {
173171	//   "description": "Retrieves an aggregated list of target VPN gateways.",
173172	//   "httpMethod": "GET",
173173	//   "id": "compute.targetVpnGateways.aggregatedList",
173174	//   "parameterOrder": [
173175	//     "project"
173176	//   ],
173177	//   "parameters": {
173178	//     "filter": {
173179	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
173180	//       "location": "query",
173181	//       "type": "string"
173182	//     },
173183	//     "includeAllScopes": {
173184	//       "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.",
173185	//       "location": "query",
173186	//       "type": "boolean"
173187	//     },
173188	//     "maxResults": {
173189	//       "default": "500",
173190	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
173191	//       "format": "uint32",
173192	//       "location": "query",
173193	//       "minimum": "0",
173194	//       "type": "integer"
173195	//     },
173196	//     "orderBy": {
173197	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
173198	//       "location": "query",
173199	//       "type": "string"
173200	//     },
173201	//     "pageToken": {
173202	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
173203	//       "location": "query",
173204	//       "type": "string"
173205	//     },
173206	//     "project": {
173207	//       "description": "Project ID for this request.",
173208	//       "location": "path",
173209	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173210	//       "required": true,
173211	//       "type": "string"
173212	//     },
173213	//     "returnPartialSuccess": {
173214	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
173215	//       "location": "query",
173216	//       "type": "boolean"
173217	//     }
173218	//   },
173219	//   "path": "{project}/aggregated/targetVpnGateways",
173220	//   "response": {
173221	//     "$ref": "TargetVpnGatewayAggregatedList"
173222	//   },
173223	//   "scopes": [
173224	//     "https://www.googleapis.com/auth/cloud-platform",
173225	//     "https://www.googleapis.com/auth/compute",
173226	//     "https://www.googleapis.com/auth/compute.readonly"
173227	//   ]
173228	// }
173229
173230}
173231
173232// Pages invokes f for each page of results.
173233// A non-nil error returned from f will halt the iteration.
173234// The provided context supersedes any context provided to the Context method.
173235func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
173236	c.ctx_ = ctx
173237	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
173238	for {
173239		x, err := c.Do()
173240		if err != nil {
173241			return err
173242		}
173243		if err := f(x); err != nil {
173244			return err
173245		}
173246		if x.NextPageToken == "" {
173247			return nil
173248		}
173249		c.PageToken(x.NextPageToken)
173250	}
173251}
173252
173253// method id "compute.targetVpnGateways.delete":
173254
173255type TargetVpnGatewaysDeleteCall struct {
173256	s                *Service
173257	project          string
173258	region           string
173259	targetVpnGateway string
173260	urlParams_       gensupport.URLParams
173261	ctx_             context.Context
173262	header_          http.Header
173263}
173264
173265// Delete: Deletes the specified target VPN gateway.
173266func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
173267	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173268	c.project = project
173269	c.region = region
173270	c.targetVpnGateway = targetVpnGateway
173271	return c
173272}
173273
173274// RequestId sets the optional parameter "requestId": An optional
173275// request ID to identify requests. Specify a unique request ID so that
173276// if you must retry your request, the server will know to ignore the
173277// request if it has already been completed.
173278//
173279// For example, consider a situation where you make an initial request
173280// and the request times out. If you make the request again with the
173281// same request ID, the server can check if original operation with the
173282// same request ID was received, and if so, will ignore the second
173283// request. This prevents clients from accidentally creating duplicate
173284// commitments.
173285//
173286// The request ID must be a valid UUID with the exception that zero UUID
173287// is not supported (00000000-0000-0000-0000-000000000000).
173288func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
173289	c.urlParams_.Set("requestId", requestId)
173290	return c
173291}
173292
173293// Fields allows partial responses to be retrieved. See
173294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173295// for more information.
173296func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
173297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173298	return c
173299}
173300
173301// Context sets the context to be used in this call's Do method. Any
173302// pending HTTP request will be aborted if the provided context is
173303// canceled.
173304func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
173305	c.ctx_ = ctx
173306	return c
173307}
173308
173309// Header returns an http.Header that can be modified by the caller to
173310// add HTTP headers to the request.
173311func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
173312	if c.header_ == nil {
173313		c.header_ = make(http.Header)
173314	}
173315	return c.header_
173316}
173317
173318func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
173319	reqHeaders := make(http.Header)
173320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
173321	for k, v := range c.header_ {
173322		reqHeaders[k] = v
173323	}
173324	reqHeaders.Set("User-Agent", c.s.userAgent())
173325	var body io.Reader = nil
173326	c.urlParams_.Set("alt", alt)
173327	c.urlParams_.Set("prettyPrint", "false")
173328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
173329	urls += "?" + c.urlParams_.Encode()
173330	req, err := http.NewRequest("DELETE", urls, body)
173331	if err != nil {
173332		return nil, err
173333	}
173334	req.Header = reqHeaders
173335	googleapi.Expand(req.URL, map[string]string{
173336		"project":          c.project,
173337		"region":           c.region,
173338		"targetVpnGateway": c.targetVpnGateway,
173339	})
173340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173341}
173342
173343// Do executes the "compute.targetVpnGateways.delete" call.
173344// Exactly one of *Operation or error will be non-nil. Any non-2xx
173345// status code is an error. Response headers are in either
173346// *Operation.ServerResponse.Header or (if a response was returned at
173347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
173348// to check whether the returned error was because
173349// http.StatusNotModified was returned.
173350func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
173351	gensupport.SetOptions(c.urlParams_, opts...)
173352	res, err := c.doRequest("json")
173353	if res != nil && res.StatusCode == http.StatusNotModified {
173354		if res.Body != nil {
173355			res.Body.Close()
173356		}
173357		return nil, &googleapi.Error{
173358			Code:   res.StatusCode,
173359			Header: res.Header,
173360		}
173361	}
173362	if err != nil {
173363		return nil, err
173364	}
173365	defer googleapi.CloseBody(res)
173366	if err := googleapi.CheckResponse(res); err != nil {
173367		return nil, err
173368	}
173369	ret := &Operation{
173370		ServerResponse: googleapi.ServerResponse{
173371			Header:         res.Header,
173372			HTTPStatusCode: res.StatusCode,
173373		},
173374	}
173375	target := &ret
173376	if err := gensupport.DecodeResponse(target, res); err != nil {
173377		return nil, err
173378	}
173379	return ret, nil
173380	// {
173381	//   "description": "Deletes the specified target VPN gateway.",
173382	//   "httpMethod": "DELETE",
173383	//   "id": "compute.targetVpnGateways.delete",
173384	//   "parameterOrder": [
173385	//     "project",
173386	//     "region",
173387	//     "targetVpnGateway"
173388	//   ],
173389	//   "parameters": {
173390	//     "project": {
173391	//       "description": "Project ID for this request.",
173392	//       "location": "path",
173393	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173394	//       "required": true,
173395	//       "type": "string"
173396	//     },
173397	//     "region": {
173398	//       "description": "Name of the region for this request.",
173399	//       "location": "path",
173400	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
173401	//       "required": true,
173402	//       "type": "string"
173403	//     },
173404	//     "requestId": {
173405	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
173406	//       "location": "query",
173407	//       "type": "string"
173408	//     },
173409	//     "targetVpnGateway": {
173410	//       "description": "Name of the target VPN gateway to delete.",
173411	//       "location": "path",
173412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173413	//       "required": true,
173414	//       "type": "string"
173415	//     }
173416	//   },
173417	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
173418	//   "response": {
173419	//     "$ref": "Operation"
173420	//   },
173421	//   "scopes": [
173422	//     "https://www.googleapis.com/auth/cloud-platform",
173423	//     "https://www.googleapis.com/auth/compute"
173424	//   ]
173425	// }
173426
173427}
173428
173429// method id "compute.targetVpnGateways.get":
173430
173431type TargetVpnGatewaysGetCall struct {
173432	s                *Service
173433	project          string
173434	region           string
173435	targetVpnGateway string
173436	urlParams_       gensupport.URLParams
173437	ifNoneMatch_     string
173438	ctx_             context.Context
173439	header_          http.Header
173440}
173441
173442// Get: Returns the specified target VPN gateway. Gets a list of
173443// available target VPN gateways by making a list() request.
173444func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
173445	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173446	c.project = project
173447	c.region = region
173448	c.targetVpnGateway = targetVpnGateway
173449	return c
173450}
173451
173452// Fields allows partial responses to be retrieved. See
173453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173454// for more information.
173455func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
173456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173457	return c
173458}
173459
173460// IfNoneMatch sets the optional parameter which makes the operation
173461// fail if the object's ETag matches the given value. This is useful for
173462// getting updates only after the object has changed since the last
173463// request. Use googleapi.IsNotModified to check whether the response
173464// error from Do is the result of In-None-Match.
173465func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
173466	c.ifNoneMatch_ = entityTag
173467	return c
173468}
173469
173470// Context sets the context to be used in this call's Do method. Any
173471// pending HTTP request will be aborted if the provided context is
173472// canceled.
173473func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
173474	c.ctx_ = ctx
173475	return c
173476}
173477
173478// Header returns an http.Header that can be modified by the caller to
173479// add HTTP headers to the request.
173480func (c *TargetVpnGatewaysGetCall) Header() http.Header {
173481	if c.header_ == nil {
173482		c.header_ = make(http.Header)
173483	}
173484	return c.header_
173485}
173486
173487func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
173488	reqHeaders := make(http.Header)
173489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
173490	for k, v := range c.header_ {
173491		reqHeaders[k] = v
173492	}
173493	reqHeaders.Set("User-Agent", c.s.userAgent())
173494	if c.ifNoneMatch_ != "" {
173495		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
173496	}
173497	var body io.Reader = nil
173498	c.urlParams_.Set("alt", alt)
173499	c.urlParams_.Set("prettyPrint", "false")
173500	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
173501	urls += "?" + c.urlParams_.Encode()
173502	req, err := http.NewRequest("GET", urls, body)
173503	if err != nil {
173504		return nil, err
173505	}
173506	req.Header = reqHeaders
173507	googleapi.Expand(req.URL, map[string]string{
173508		"project":          c.project,
173509		"region":           c.region,
173510		"targetVpnGateway": c.targetVpnGateway,
173511	})
173512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173513}
173514
173515// Do executes the "compute.targetVpnGateways.get" call.
173516// Exactly one of *TargetVpnGateway or error will be non-nil. Any
173517// non-2xx status code is an error. Response headers are in either
173518// *TargetVpnGateway.ServerResponse.Header or (if a response was
173519// returned at all) in error.(*googleapi.Error).Header. Use
173520// googleapi.IsNotModified to check whether the returned error was
173521// because http.StatusNotModified was returned.
173522func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
173523	gensupport.SetOptions(c.urlParams_, opts...)
173524	res, err := c.doRequest("json")
173525	if res != nil && res.StatusCode == http.StatusNotModified {
173526		if res.Body != nil {
173527			res.Body.Close()
173528		}
173529		return nil, &googleapi.Error{
173530			Code:   res.StatusCode,
173531			Header: res.Header,
173532		}
173533	}
173534	if err != nil {
173535		return nil, err
173536	}
173537	defer googleapi.CloseBody(res)
173538	if err := googleapi.CheckResponse(res); err != nil {
173539		return nil, err
173540	}
173541	ret := &TargetVpnGateway{
173542		ServerResponse: googleapi.ServerResponse{
173543			Header:         res.Header,
173544			HTTPStatusCode: res.StatusCode,
173545		},
173546	}
173547	target := &ret
173548	if err := gensupport.DecodeResponse(target, res); err != nil {
173549		return nil, err
173550	}
173551	return ret, nil
173552	// {
173553	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
173554	//   "httpMethod": "GET",
173555	//   "id": "compute.targetVpnGateways.get",
173556	//   "parameterOrder": [
173557	//     "project",
173558	//     "region",
173559	//     "targetVpnGateway"
173560	//   ],
173561	//   "parameters": {
173562	//     "project": {
173563	//       "description": "Project ID for this request.",
173564	//       "location": "path",
173565	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173566	//       "required": true,
173567	//       "type": "string"
173568	//     },
173569	//     "region": {
173570	//       "description": "Name of the region for this request.",
173571	//       "location": "path",
173572	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
173573	//       "required": true,
173574	//       "type": "string"
173575	//     },
173576	//     "targetVpnGateway": {
173577	//       "description": "Name of the target VPN gateway to return.",
173578	//       "location": "path",
173579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173580	//       "required": true,
173581	//       "type": "string"
173582	//     }
173583	//   },
173584	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
173585	//   "response": {
173586	//     "$ref": "TargetVpnGateway"
173587	//   },
173588	//   "scopes": [
173589	//     "https://www.googleapis.com/auth/cloud-platform",
173590	//     "https://www.googleapis.com/auth/compute",
173591	//     "https://www.googleapis.com/auth/compute.readonly"
173592	//   ]
173593	// }
173594
173595}
173596
173597// method id "compute.targetVpnGateways.insert":
173598
173599type TargetVpnGatewaysInsertCall struct {
173600	s                *Service
173601	project          string
173602	region           string
173603	targetvpngateway *TargetVpnGateway
173604	urlParams_       gensupport.URLParams
173605	ctx_             context.Context
173606	header_          http.Header
173607}
173608
173609// Insert: Creates a target VPN gateway in the specified project and
173610// region using the data included in the request.
173611func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
173612	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173613	c.project = project
173614	c.region = region
173615	c.targetvpngateway = targetvpngateway
173616	return c
173617}
173618
173619// RequestId sets the optional parameter "requestId": An optional
173620// request ID to identify requests. Specify a unique request ID so that
173621// if you must retry your request, the server will know to ignore the
173622// request if it has already been completed.
173623//
173624// For example, consider a situation where you make an initial request
173625// and the request times out. If you make the request again with the
173626// same request ID, the server can check if original operation with the
173627// same request ID was received, and if so, will ignore the second
173628// request. This prevents clients from accidentally creating duplicate
173629// commitments.
173630//
173631// The request ID must be a valid UUID with the exception that zero UUID
173632// is not supported (00000000-0000-0000-0000-000000000000).
173633func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
173634	c.urlParams_.Set("requestId", requestId)
173635	return c
173636}
173637
173638// Fields allows partial responses to be retrieved. See
173639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173640// for more information.
173641func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
173642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173643	return c
173644}
173645
173646// Context sets the context to be used in this call's Do method. Any
173647// pending HTTP request will be aborted if the provided context is
173648// canceled.
173649func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
173650	c.ctx_ = ctx
173651	return c
173652}
173653
173654// Header returns an http.Header that can be modified by the caller to
173655// add HTTP headers to the request.
173656func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
173657	if c.header_ == nil {
173658		c.header_ = make(http.Header)
173659	}
173660	return c.header_
173661}
173662
173663func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
173664	reqHeaders := make(http.Header)
173665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
173666	for k, v := range c.header_ {
173667		reqHeaders[k] = v
173668	}
173669	reqHeaders.Set("User-Agent", c.s.userAgent())
173670	var body io.Reader = nil
173671	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
173672	if err != nil {
173673		return nil, err
173674	}
173675	reqHeaders.Set("Content-Type", "application/json")
173676	c.urlParams_.Set("alt", alt)
173677	c.urlParams_.Set("prettyPrint", "false")
173678	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
173679	urls += "?" + c.urlParams_.Encode()
173680	req, err := http.NewRequest("POST", urls, body)
173681	if err != nil {
173682		return nil, err
173683	}
173684	req.Header = reqHeaders
173685	googleapi.Expand(req.URL, map[string]string{
173686		"project": c.project,
173687		"region":  c.region,
173688	})
173689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173690}
173691
173692// Do executes the "compute.targetVpnGateways.insert" call.
173693// Exactly one of *Operation or error will be non-nil. Any non-2xx
173694// status code is an error. Response headers are in either
173695// *Operation.ServerResponse.Header or (if a response was returned at
173696// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
173697// to check whether the returned error was because
173698// http.StatusNotModified was returned.
173699func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
173700	gensupport.SetOptions(c.urlParams_, opts...)
173701	res, err := c.doRequest("json")
173702	if res != nil && res.StatusCode == http.StatusNotModified {
173703		if res.Body != nil {
173704			res.Body.Close()
173705		}
173706		return nil, &googleapi.Error{
173707			Code:   res.StatusCode,
173708			Header: res.Header,
173709		}
173710	}
173711	if err != nil {
173712		return nil, err
173713	}
173714	defer googleapi.CloseBody(res)
173715	if err := googleapi.CheckResponse(res); err != nil {
173716		return nil, err
173717	}
173718	ret := &Operation{
173719		ServerResponse: googleapi.ServerResponse{
173720			Header:         res.Header,
173721			HTTPStatusCode: res.StatusCode,
173722		},
173723	}
173724	target := &ret
173725	if err := gensupport.DecodeResponse(target, res); err != nil {
173726		return nil, err
173727	}
173728	return ret, nil
173729	// {
173730	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
173731	//   "httpMethod": "POST",
173732	//   "id": "compute.targetVpnGateways.insert",
173733	//   "parameterOrder": [
173734	//     "project",
173735	//     "region"
173736	//   ],
173737	//   "parameters": {
173738	//     "project": {
173739	//       "description": "Project ID for this request.",
173740	//       "location": "path",
173741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173742	//       "required": true,
173743	//       "type": "string"
173744	//     },
173745	//     "region": {
173746	//       "description": "Name of the region for this request.",
173747	//       "location": "path",
173748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
173749	//       "required": true,
173750	//       "type": "string"
173751	//     },
173752	//     "requestId": {
173753	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
173754	//       "location": "query",
173755	//       "type": "string"
173756	//     }
173757	//   },
173758	//   "path": "{project}/regions/{region}/targetVpnGateways",
173759	//   "request": {
173760	//     "$ref": "TargetVpnGateway"
173761	//   },
173762	//   "response": {
173763	//     "$ref": "Operation"
173764	//   },
173765	//   "scopes": [
173766	//     "https://www.googleapis.com/auth/cloud-platform",
173767	//     "https://www.googleapis.com/auth/compute"
173768	//   ]
173769	// }
173770
173771}
173772
173773// method id "compute.targetVpnGateways.list":
173774
173775type TargetVpnGatewaysListCall struct {
173776	s            *Service
173777	project      string
173778	region       string
173779	urlParams_   gensupport.URLParams
173780	ifNoneMatch_ string
173781	ctx_         context.Context
173782	header_      http.Header
173783}
173784
173785// List: Retrieves a list of target VPN gateways available to the
173786// specified project and region.
173787func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
173788	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173789	c.project = project
173790	c.region = region
173791	return c
173792}
173793
173794// Filter sets the optional parameter "filter": A filter expression that
173795// filters resources listed in the response. The expression must specify
173796// the field name, a comparison operator, and the value that you want to
173797// use for filtering. The value must be a string, a number, or a
173798// boolean. The comparison operator must be either `=`, `!=`, `>`, or
173799// `<`.
173800//
173801// For example, if you are filtering Compute Engine instances, you can
173802// exclude instances named `example-instance` by specifying `name !=
173803// example-instance`.
173804//
173805// You can also filter nested fields. For example, you could specify
173806// `scheduling.automaticRestart = false` to include instances only if
173807// they are not scheduled for automatic restarts. You can use filtering
173808// on nested fields to filter based on resource labels.
173809//
173810// To filter on multiple expressions, provide each separate expression
173811// within parentheses. For example: ``` (scheduling.automaticRestart =
173812// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
173813// is an `AND` expression. However, you can include `AND` and `OR`
173814// expressions explicitly. For example: ``` (cpuPlatform = "Intel
173815// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
173816// (scheduling.automaticRestart = true) ```
173817func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
173818	c.urlParams_.Set("filter", filter)
173819	return c
173820}
173821
173822// MaxResults sets the optional parameter "maxResults": The maximum
173823// number of results per page that should be returned. If the number of
173824// available results is larger than `maxResults`, Compute Engine returns
173825// a `nextPageToken` that can be used to get the next page of results in
173826// subsequent list requests. Acceptable values are `0` to `500`,
173827// inclusive. (Default: `500`)
173828func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
173829	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
173830	return c
173831}
173832
173833// OrderBy sets the optional parameter "orderBy": Sorts list results by
173834// a certain order. By default, results are returned in alphanumerical
173835// order based on the resource name.
173836//
173837// You can also sort results in descending order based on the creation
173838// timestamp using `orderBy="creationTimestamp desc". This sorts
173839// results based on the `creationTimestamp` field in reverse
173840// chronological order (newest result first). Use this to sort resources
173841// like operations so that the newest operation is returned
173842// first.
173843//
173844// Currently, only sorting by `name` or `creationTimestamp desc` is
173845// supported.
173846func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
173847	c.urlParams_.Set("orderBy", orderBy)
173848	return c
173849}
173850
173851// PageToken sets the optional parameter "pageToken": Specifies a page
173852// token to use. Set `pageToken` to the `nextPageToken` returned by a
173853// previous list request to get the next page of results.
173854func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
173855	c.urlParams_.Set("pageToken", pageToken)
173856	return c
173857}
173858
173859// ReturnPartialSuccess sets the optional parameter
173860// "returnPartialSuccess": Opt-in for partial success behavior which
173861// provides partial results in case of failure. The default value is
173862// false and the logic is the same as today.
173863func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall {
173864	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
173865	return c
173866}
173867
173868// Fields allows partial responses to be retrieved. See
173869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173870// for more information.
173871func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
173872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173873	return c
173874}
173875
173876// IfNoneMatch sets the optional parameter which makes the operation
173877// fail if the object's ETag matches the given value. This is useful for
173878// getting updates only after the object has changed since the last
173879// request. Use googleapi.IsNotModified to check whether the response
173880// error from Do is the result of In-None-Match.
173881func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
173882	c.ifNoneMatch_ = entityTag
173883	return c
173884}
173885
173886// Context sets the context to be used in this call's Do method. Any
173887// pending HTTP request will be aborted if the provided context is
173888// canceled.
173889func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
173890	c.ctx_ = ctx
173891	return c
173892}
173893
173894// Header returns an http.Header that can be modified by the caller to
173895// add HTTP headers to the request.
173896func (c *TargetVpnGatewaysListCall) Header() http.Header {
173897	if c.header_ == nil {
173898		c.header_ = make(http.Header)
173899	}
173900	return c.header_
173901}
173902
173903func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
173904	reqHeaders := make(http.Header)
173905	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
173906	for k, v := range c.header_ {
173907		reqHeaders[k] = v
173908	}
173909	reqHeaders.Set("User-Agent", c.s.userAgent())
173910	if c.ifNoneMatch_ != "" {
173911		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
173912	}
173913	var body io.Reader = nil
173914	c.urlParams_.Set("alt", alt)
173915	c.urlParams_.Set("prettyPrint", "false")
173916	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
173917	urls += "?" + c.urlParams_.Encode()
173918	req, err := http.NewRequest("GET", urls, body)
173919	if err != nil {
173920		return nil, err
173921	}
173922	req.Header = reqHeaders
173923	googleapi.Expand(req.URL, map[string]string{
173924		"project": c.project,
173925		"region":  c.region,
173926	})
173927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173928}
173929
173930// Do executes the "compute.targetVpnGateways.list" call.
173931// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
173932// non-2xx status code is an error. Response headers are in either
173933// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
173934// returned at all) in error.(*googleapi.Error).Header. Use
173935// googleapi.IsNotModified to check whether the returned error was
173936// because http.StatusNotModified was returned.
173937func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
173938	gensupport.SetOptions(c.urlParams_, opts...)
173939	res, err := c.doRequest("json")
173940	if res != nil && res.StatusCode == http.StatusNotModified {
173941		if res.Body != nil {
173942			res.Body.Close()
173943		}
173944		return nil, &googleapi.Error{
173945			Code:   res.StatusCode,
173946			Header: res.Header,
173947		}
173948	}
173949	if err != nil {
173950		return nil, err
173951	}
173952	defer googleapi.CloseBody(res)
173953	if err := googleapi.CheckResponse(res); err != nil {
173954		return nil, err
173955	}
173956	ret := &TargetVpnGatewayList{
173957		ServerResponse: googleapi.ServerResponse{
173958			Header:         res.Header,
173959			HTTPStatusCode: res.StatusCode,
173960		},
173961	}
173962	target := &ret
173963	if err := gensupport.DecodeResponse(target, res); err != nil {
173964		return nil, err
173965	}
173966	return ret, nil
173967	// {
173968	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
173969	//   "httpMethod": "GET",
173970	//   "id": "compute.targetVpnGateways.list",
173971	//   "parameterOrder": [
173972	//     "project",
173973	//     "region"
173974	//   ],
173975	//   "parameters": {
173976	//     "filter": {
173977	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
173978	//       "location": "query",
173979	//       "type": "string"
173980	//     },
173981	//     "maxResults": {
173982	//       "default": "500",
173983	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
173984	//       "format": "uint32",
173985	//       "location": "query",
173986	//       "minimum": "0",
173987	//       "type": "integer"
173988	//     },
173989	//     "orderBy": {
173990	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
173991	//       "location": "query",
173992	//       "type": "string"
173993	//     },
173994	//     "pageToken": {
173995	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
173996	//       "location": "query",
173997	//       "type": "string"
173998	//     },
173999	//     "project": {
174000	//       "description": "Project ID for this request.",
174001	//       "location": "path",
174002	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174003	//       "required": true,
174004	//       "type": "string"
174005	//     },
174006	//     "region": {
174007	//       "description": "Name of the region for this request.",
174008	//       "location": "path",
174009	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174010	//       "required": true,
174011	//       "type": "string"
174012	//     },
174013	//     "returnPartialSuccess": {
174014	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
174015	//       "location": "query",
174016	//       "type": "boolean"
174017	//     }
174018	//   },
174019	//   "path": "{project}/regions/{region}/targetVpnGateways",
174020	//   "response": {
174021	//     "$ref": "TargetVpnGatewayList"
174022	//   },
174023	//   "scopes": [
174024	//     "https://www.googleapis.com/auth/cloud-platform",
174025	//     "https://www.googleapis.com/auth/compute",
174026	//     "https://www.googleapis.com/auth/compute.readonly"
174027	//   ]
174028	// }
174029
174030}
174031
174032// Pages invokes f for each page of results.
174033// A non-nil error returned from f will halt the iteration.
174034// The provided context supersedes any context provided to the Context method.
174035func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
174036	c.ctx_ = ctx
174037	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
174038	for {
174039		x, err := c.Do()
174040		if err != nil {
174041			return err
174042		}
174043		if err := f(x); err != nil {
174044			return err
174045		}
174046		if x.NextPageToken == "" {
174047			return nil
174048		}
174049		c.PageToken(x.NextPageToken)
174050	}
174051}
174052
174053// method id "compute.targetVpnGateways.setLabels":
174054
174055type TargetVpnGatewaysSetLabelsCall struct {
174056	s                      *Service
174057	project                string
174058	region                 string
174059	resource               string
174060	regionsetlabelsrequest *RegionSetLabelsRequest
174061	urlParams_             gensupport.URLParams
174062	ctx_                   context.Context
174063	header_                http.Header
174064}
174065
174066// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about
174067// labels, read the Labeling Resources documentation.
174068func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall {
174069	c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174070	c.project = project
174071	c.region = region
174072	c.resource = resource
174073	c.regionsetlabelsrequest = regionsetlabelsrequest
174074	return c
174075}
174076
174077// RequestId sets the optional parameter "requestId": An optional
174078// request ID to identify requests. Specify a unique request ID so that
174079// if you must retry your request, the server will know to ignore the
174080// request if it has already been completed.
174081//
174082// For example, consider a situation where you make an initial request
174083// and the request times out. If you make the request again with the
174084// same request ID, the server can check if original operation with the
174085// same request ID was received, and if so, will ignore the second
174086// request. This prevents clients from accidentally creating duplicate
174087// commitments.
174088//
174089// The request ID must be a valid UUID with the exception that zero UUID
174090// is not supported (00000000-0000-0000-0000-000000000000).
174091func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall {
174092	c.urlParams_.Set("requestId", requestId)
174093	return c
174094}
174095
174096// Fields allows partial responses to be retrieved. See
174097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174098// for more information.
174099func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall {
174100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174101	return c
174102}
174103
174104// Context sets the context to be used in this call's Do method. Any
174105// pending HTTP request will be aborted if the provided context is
174106// canceled.
174107func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall {
174108	c.ctx_ = ctx
174109	return c
174110}
174111
174112// Header returns an http.Header that can be modified by the caller to
174113// add HTTP headers to the request.
174114func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header {
174115	if c.header_ == nil {
174116		c.header_ = make(http.Header)
174117	}
174118	return c.header_
174119}
174120
174121func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
174122	reqHeaders := make(http.Header)
174123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
174124	for k, v := range c.header_ {
174125		reqHeaders[k] = v
174126	}
174127	reqHeaders.Set("User-Agent", c.s.userAgent())
174128	var body io.Reader = nil
174129	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
174130	if err != nil {
174131		return nil, err
174132	}
174133	reqHeaders.Set("Content-Type", "application/json")
174134	c.urlParams_.Set("alt", alt)
174135	c.urlParams_.Set("prettyPrint", "false")
174136	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels")
174137	urls += "?" + c.urlParams_.Encode()
174138	req, err := http.NewRequest("POST", urls, body)
174139	if err != nil {
174140		return nil, err
174141	}
174142	req.Header = reqHeaders
174143	googleapi.Expand(req.URL, map[string]string{
174144		"project":  c.project,
174145		"region":   c.region,
174146		"resource": c.resource,
174147	})
174148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174149}
174150
174151// Do executes the "compute.targetVpnGateways.setLabels" call.
174152// Exactly one of *Operation or error will be non-nil. Any non-2xx
174153// status code is an error. Response headers are in either
174154// *Operation.ServerResponse.Header or (if a response was returned at
174155// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174156// to check whether the returned error was because
174157// http.StatusNotModified was returned.
174158func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174159	gensupport.SetOptions(c.urlParams_, opts...)
174160	res, err := c.doRequest("json")
174161	if res != nil && res.StatusCode == http.StatusNotModified {
174162		if res.Body != nil {
174163			res.Body.Close()
174164		}
174165		return nil, &googleapi.Error{
174166			Code:   res.StatusCode,
174167			Header: res.Header,
174168		}
174169	}
174170	if err != nil {
174171		return nil, err
174172	}
174173	defer googleapi.CloseBody(res)
174174	if err := googleapi.CheckResponse(res); err != nil {
174175		return nil, err
174176	}
174177	ret := &Operation{
174178		ServerResponse: googleapi.ServerResponse{
174179			Header:         res.Header,
174180			HTTPStatusCode: res.StatusCode,
174181		},
174182	}
174183	target := &ret
174184	if err := gensupport.DecodeResponse(target, res); err != nil {
174185		return nil, err
174186	}
174187	return ret, nil
174188	// {
174189	//   "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
174190	//   "httpMethod": "POST",
174191	//   "id": "compute.targetVpnGateways.setLabels",
174192	//   "parameterOrder": [
174193	//     "project",
174194	//     "region",
174195	//     "resource"
174196	//   ],
174197	//   "parameters": {
174198	//     "project": {
174199	//       "description": "Project ID for this request.",
174200	//       "location": "path",
174201	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174202	//       "required": true,
174203	//       "type": "string"
174204	//     },
174205	//     "region": {
174206	//       "description": "The region for this request.",
174207	//       "location": "path",
174208	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174209	//       "required": true,
174210	//       "type": "string"
174211	//     },
174212	//     "requestId": {
174213	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174214	//       "location": "query",
174215	//       "type": "string"
174216	//     },
174217	//     "resource": {
174218	//       "description": "Name or id of the resource for this request.",
174219	//       "location": "path",
174220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174221	//       "required": true,
174222	//       "type": "string"
174223	//     }
174224	//   },
174225	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
174226	//   "request": {
174227	//     "$ref": "RegionSetLabelsRequest"
174228	//   },
174229	//   "response": {
174230	//     "$ref": "Operation"
174231	//   },
174232	//   "scopes": [
174233	//     "https://www.googleapis.com/auth/cloud-platform",
174234	//     "https://www.googleapis.com/auth/compute"
174235	//   ]
174236	// }
174237
174238}
174239
174240// method id "compute.targetVpnGateways.testIamPermissions":
174241
174242type TargetVpnGatewaysTestIamPermissionsCall struct {
174243	s                      *Service
174244	project                string
174245	region                 string
174246	resource               string
174247	testpermissionsrequest *TestPermissionsRequest
174248	urlParams_             gensupport.URLParams
174249	ctx_                   context.Context
174250	header_                http.Header
174251}
174252
174253// TestIamPermissions: Returns permissions that a caller has on the
174254// specified resource.
174255func (r *TargetVpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetVpnGatewaysTestIamPermissionsCall {
174256	c := &TargetVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174257	c.project = project
174258	c.region = region
174259	c.resource = resource
174260	c.testpermissionsrequest = testpermissionsrequest
174261	return c
174262}
174263
174264// Fields allows partial responses to be retrieved. See
174265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174266// for more information.
174267func (c *TargetVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysTestIamPermissionsCall {
174268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174269	return c
174270}
174271
174272// Context sets the context to be used in this call's Do method. Any
174273// pending HTTP request will be aborted if the provided context is
174274// canceled.
174275func (c *TargetVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *TargetVpnGatewaysTestIamPermissionsCall {
174276	c.ctx_ = ctx
174277	return c
174278}
174279
174280// Header returns an http.Header that can be modified by the caller to
174281// add HTTP headers to the request.
174282func (c *TargetVpnGatewaysTestIamPermissionsCall) Header() http.Header {
174283	if c.header_ == nil {
174284		c.header_ = make(http.Header)
174285	}
174286	return c.header_
174287}
174288
174289func (c *TargetVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
174290	reqHeaders := make(http.Header)
174291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
174292	for k, v := range c.header_ {
174293		reqHeaders[k] = v
174294	}
174295	reqHeaders.Set("User-Agent", c.s.userAgent())
174296	var body io.Reader = nil
174297	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
174298	if err != nil {
174299		return nil, err
174300	}
174301	reqHeaders.Set("Content-Type", "application/json")
174302	c.urlParams_.Set("alt", alt)
174303	c.urlParams_.Set("prettyPrint", "false")
174304	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions")
174305	urls += "?" + c.urlParams_.Encode()
174306	req, err := http.NewRequest("POST", urls, body)
174307	if err != nil {
174308		return nil, err
174309	}
174310	req.Header = reqHeaders
174311	googleapi.Expand(req.URL, map[string]string{
174312		"project":  c.project,
174313		"region":   c.region,
174314		"resource": c.resource,
174315	})
174316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174317}
174318
174319// Do executes the "compute.targetVpnGateways.testIamPermissions" call.
174320// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
174321// non-2xx status code is an error. Response headers are in either
174322// *TestPermissionsResponse.ServerResponse.Header or (if a response was
174323// returned at all) in error.(*googleapi.Error).Header. Use
174324// googleapi.IsNotModified to check whether the returned error was
174325// because http.StatusNotModified was returned.
174326func (c *TargetVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
174327	gensupport.SetOptions(c.urlParams_, opts...)
174328	res, err := c.doRequest("json")
174329	if res != nil && res.StatusCode == http.StatusNotModified {
174330		if res.Body != nil {
174331			res.Body.Close()
174332		}
174333		return nil, &googleapi.Error{
174334			Code:   res.StatusCode,
174335			Header: res.Header,
174336		}
174337	}
174338	if err != nil {
174339		return nil, err
174340	}
174341	defer googleapi.CloseBody(res)
174342	if err := googleapi.CheckResponse(res); err != nil {
174343		return nil, err
174344	}
174345	ret := &TestPermissionsResponse{
174346		ServerResponse: googleapi.ServerResponse{
174347			Header:         res.Header,
174348			HTTPStatusCode: res.StatusCode,
174349		},
174350	}
174351	target := &ret
174352	if err := gensupport.DecodeResponse(target, res); err != nil {
174353		return nil, err
174354	}
174355	return ret, nil
174356	// {
174357	//   "description": "Returns permissions that a caller has on the specified resource.",
174358	//   "httpMethod": "POST",
174359	//   "id": "compute.targetVpnGateways.testIamPermissions",
174360	//   "parameterOrder": [
174361	//     "project",
174362	//     "region",
174363	//     "resource"
174364	//   ],
174365	//   "parameters": {
174366	//     "project": {
174367	//       "description": "Project ID for this request.",
174368	//       "location": "path",
174369	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174370	//       "required": true,
174371	//       "type": "string"
174372	//     },
174373	//     "region": {
174374	//       "description": "The name of the region for this request.",
174375	//       "location": "path",
174376	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174377	//       "required": true,
174378	//       "type": "string"
174379	//     },
174380	//     "resource": {
174381	//       "description": "Name or id of the resource for this request.",
174382	//       "location": "path",
174383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174384	//       "required": true,
174385	//       "type": "string"
174386	//     }
174387	//   },
174388	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions",
174389	//   "request": {
174390	//     "$ref": "TestPermissionsRequest"
174391	//   },
174392	//   "response": {
174393	//     "$ref": "TestPermissionsResponse"
174394	//   },
174395	//   "scopes": [
174396	//     "https://www.googleapis.com/auth/cloud-platform",
174397	//     "https://www.googleapis.com/auth/compute",
174398	//     "https://www.googleapis.com/auth/compute.readonly"
174399	//   ]
174400	// }
174401
174402}
174403
174404// method id "compute.urlMaps.aggregatedList":
174405
174406type UrlMapsAggregatedListCall struct {
174407	s            *Service
174408	project      string
174409	urlParams_   gensupport.URLParams
174410	ifNoneMatch_ string
174411	ctx_         context.Context
174412	header_      http.Header
174413}
174414
174415// AggregatedList: Retrieves the list of all UrlMap resources, regional
174416// and global, available to the specified project.
174417func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
174418	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174419	c.project = project
174420	return c
174421}
174422
174423// Filter sets the optional parameter "filter": A filter expression that
174424// filters resources listed in the response. The expression must specify
174425// the field name, a comparison operator, and the value that you want to
174426// use for filtering. The value must be a string, a number, or a
174427// boolean. The comparison operator must be either `=`, `!=`, `>`, or
174428// `<`.
174429//
174430// For example, if you are filtering Compute Engine instances, you can
174431// exclude instances named `example-instance` by specifying `name !=
174432// example-instance`.
174433//
174434// You can also filter nested fields. For example, you could specify
174435// `scheduling.automaticRestart = false` to include instances only if
174436// they are not scheduled for automatic restarts. You can use filtering
174437// on nested fields to filter based on resource labels.
174438//
174439// To filter on multiple expressions, provide each separate expression
174440// within parentheses. For example: ``` (scheduling.automaticRestart =
174441// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
174442// is an `AND` expression. However, you can include `AND` and `OR`
174443// expressions explicitly. For example: ``` (cpuPlatform = "Intel
174444// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
174445// (scheduling.automaticRestart = true) ```
174446func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
174447	c.urlParams_.Set("filter", filter)
174448	return c
174449}
174450
174451// IncludeAllScopes sets the optional parameter "includeAllScopes":
174452// Indicates whether every visible scope for each scope type (zone,
174453// region, global) should be included in the response. For new resource
174454// types added after this field, the flag has no effect as new resource
174455// types will always include every visible scope for each scope type in
174456// response. For resource types which predate this field, if this flag
174457// is omitted or false, only scopes of the scope types where the
174458// resource type is expected to be found will be included.
174459func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
174460	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
174461	return c
174462}
174463
174464// MaxResults sets the optional parameter "maxResults": The maximum
174465// number of results per page that should be returned. If the number of
174466// available results is larger than `maxResults`, Compute Engine returns
174467// a `nextPageToken` that can be used to get the next page of results in
174468// subsequent list requests. Acceptable values are `0` to `500`,
174469// inclusive. (Default: `500`)
174470func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
174471	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
174472	return c
174473}
174474
174475// OrderBy sets the optional parameter "orderBy": Sorts list results by
174476// a certain order. By default, results are returned in alphanumerical
174477// order based on the resource name.
174478//
174479// You can also sort results in descending order based on the creation
174480// timestamp using `orderBy="creationTimestamp desc". This sorts
174481// results based on the `creationTimestamp` field in reverse
174482// chronological order (newest result first). Use this to sort resources
174483// like operations so that the newest operation is returned
174484// first.
174485//
174486// Currently, only sorting by `name` or `creationTimestamp desc` is
174487// supported.
174488func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
174489	c.urlParams_.Set("orderBy", orderBy)
174490	return c
174491}
174492
174493// PageToken sets the optional parameter "pageToken": Specifies a page
174494// token to use. Set `pageToken` to the `nextPageToken` returned by a
174495// previous list request to get the next page of results.
174496func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
174497	c.urlParams_.Set("pageToken", pageToken)
174498	return c
174499}
174500
174501// ReturnPartialSuccess sets the optional parameter
174502// "returnPartialSuccess": Opt-in for partial success behavior which
174503// provides partial results in case of failure. The default value is
174504// false and the logic is the same as today.
174505func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall {
174506	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
174507	return c
174508}
174509
174510// Fields allows partial responses to be retrieved. See
174511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174512// for more information.
174513func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
174514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174515	return c
174516}
174517
174518// IfNoneMatch sets the optional parameter which makes the operation
174519// fail if the object's ETag matches the given value. This is useful for
174520// getting updates only after the object has changed since the last
174521// request. Use googleapi.IsNotModified to check whether the response
174522// error from Do is the result of In-None-Match.
174523func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
174524	c.ifNoneMatch_ = entityTag
174525	return c
174526}
174527
174528// Context sets the context to be used in this call's Do method. Any
174529// pending HTTP request will be aborted if the provided context is
174530// canceled.
174531func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
174532	c.ctx_ = ctx
174533	return c
174534}
174535
174536// Header returns an http.Header that can be modified by the caller to
174537// add HTTP headers to the request.
174538func (c *UrlMapsAggregatedListCall) Header() http.Header {
174539	if c.header_ == nil {
174540		c.header_ = make(http.Header)
174541	}
174542	return c.header_
174543}
174544
174545func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
174546	reqHeaders := make(http.Header)
174547	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
174548	for k, v := range c.header_ {
174549		reqHeaders[k] = v
174550	}
174551	reqHeaders.Set("User-Agent", c.s.userAgent())
174552	if c.ifNoneMatch_ != "" {
174553		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
174554	}
174555	var body io.Reader = nil
174556	c.urlParams_.Set("alt", alt)
174557	c.urlParams_.Set("prettyPrint", "false")
174558	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/urlMaps")
174559	urls += "?" + c.urlParams_.Encode()
174560	req, err := http.NewRequest("GET", urls, body)
174561	if err != nil {
174562		return nil, err
174563	}
174564	req.Header = reqHeaders
174565	googleapi.Expand(req.URL, map[string]string{
174566		"project": c.project,
174567	})
174568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174569}
174570
174571// Do executes the "compute.urlMaps.aggregatedList" call.
174572// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
174573// non-2xx status code is an error. Response headers are in either
174574// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
174575// returned at all) in error.(*googleapi.Error).Header. Use
174576// googleapi.IsNotModified to check whether the returned error was
174577// because http.StatusNotModified was returned.
174578func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
174579	gensupport.SetOptions(c.urlParams_, opts...)
174580	res, err := c.doRequest("json")
174581	if res != nil && res.StatusCode == http.StatusNotModified {
174582		if res.Body != nil {
174583			res.Body.Close()
174584		}
174585		return nil, &googleapi.Error{
174586			Code:   res.StatusCode,
174587			Header: res.Header,
174588		}
174589	}
174590	if err != nil {
174591		return nil, err
174592	}
174593	defer googleapi.CloseBody(res)
174594	if err := googleapi.CheckResponse(res); err != nil {
174595		return nil, err
174596	}
174597	ret := &UrlMapsAggregatedList{
174598		ServerResponse: googleapi.ServerResponse{
174599			Header:         res.Header,
174600			HTTPStatusCode: res.StatusCode,
174601		},
174602	}
174603	target := &ret
174604	if err := gensupport.DecodeResponse(target, res); err != nil {
174605		return nil, err
174606	}
174607	return ret, nil
174608	// {
174609	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
174610	//   "httpMethod": "GET",
174611	//   "id": "compute.urlMaps.aggregatedList",
174612	//   "parameterOrder": [
174613	//     "project"
174614	//   ],
174615	//   "parameters": {
174616	//     "filter": {
174617	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
174618	//       "location": "query",
174619	//       "type": "string"
174620	//     },
174621	//     "includeAllScopes": {
174622	//       "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.",
174623	//       "location": "query",
174624	//       "type": "boolean"
174625	//     },
174626	//     "maxResults": {
174627	//       "default": "500",
174628	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
174629	//       "format": "uint32",
174630	//       "location": "query",
174631	//       "minimum": "0",
174632	//       "type": "integer"
174633	//     },
174634	//     "orderBy": {
174635	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
174636	//       "location": "query",
174637	//       "type": "string"
174638	//     },
174639	//     "pageToken": {
174640	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
174641	//       "location": "query",
174642	//       "type": "string"
174643	//     },
174644	//     "project": {
174645	//       "description": "Name of the project scoping this request.",
174646	//       "location": "path",
174647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174648	//       "required": true,
174649	//       "type": "string"
174650	//     },
174651	//     "returnPartialSuccess": {
174652	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
174653	//       "location": "query",
174654	//       "type": "boolean"
174655	//     }
174656	//   },
174657	//   "path": "{project}/aggregated/urlMaps",
174658	//   "response": {
174659	//     "$ref": "UrlMapsAggregatedList"
174660	//   },
174661	//   "scopes": [
174662	//     "https://www.googleapis.com/auth/cloud-platform",
174663	//     "https://www.googleapis.com/auth/compute",
174664	//     "https://www.googleapis.com/auth/compute.readonly"
174665	//   ]
174666	// }
174667
174668}
174669
174670// Pages invokes f for each page of results.
174671// A non-nil error returned from f will halt the iteration.
174672// The provided context supersedes any context provided to the Context method.
174673func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
174674	c.ctx_ = ctx
174675	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
174676	for {
174677		x, err := c.Do()
174678		if err != nil {
174679			return err
174680		}
174681		if err := f(x); err != nil {
174682			return err
174683		}
174684		if x.NextPageToken == "" {
174685			return nil
174686		}
174687		c.PageToken(x.NextPageToken)
174688	}
174689}
174690
174691// method id "compute.urlMaps.delete":
174692
174693type UrlMapsDeleteCall struct {
174694	s          *Service
174695	project    string
174696	urlMap     string
174697	urlParams_ gensupport.URLParams
174698	ctx_       context.Context
174699	header_    http.Header
174700}
174701
174702// Delete: Deletes the specified UrlMap resource.
174703// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
174704func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
174705	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174706	c.project = project
174707	c.urlMap = urlMap
174708	return c
174709}
174710
174711// RequestId sets the optional parameter "requestId": An optional
174712// request ID to identify requests. Specify a unique request ID so that
174713// if you must retry your request, the server will know to ignore the
174714// request if it has already been completed.
174715//
174716// For example, consider a situation where you make an initial request
174717// and the request times out. If you make the request again with the
174718// same request ID, the server can check if original operation with the
174719// same request ID was received, and if so, will ignore the second
174720// request. This prevents clients from accidentally creating duplicate
174721// commitments.
174722//
174723// The request ID must be a valid UUID with the exception that zero UUID
174724// is not supported (00000000-0000-0000-0000-000000000000).
174725func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
174726	c.urlParams_.Set("requestId", requestId)
174727	return c
174728}
174729
174730// Fields allows partial responses to be retrieved. See
174731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174732// for more information.
174733func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
174734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174735	return c
174736}
174737
174738// Context sets the context to be used in this call's Do method. Any
174739// pending HTTP request will be aborted if the provided context is
174740// canceled.
174741func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
174742	c.ctx_ = ctx
174743	return c
174744}
174745
174746// Header returns an http.Header that can be modified by the caller to
174747// add HTTP headers to the request.
174748func (c *UrlMapsDeleteCall) Header() http.Header {
174749	if c.header_ == nil {
174750		c.header_ = make(http.Header)
174751	}
174752	return c.header_
174753}
174754
174755func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
174756	reqHeaders := make(http.Header)
174757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
174758	for k, v := range c.header_ {
174759		reqHeaders[k] = v
174760	}
174761	reqHeaders.Set("User-Agent", c.s.userAgent())
174762	var body io.Reader = nil
174763	c.urlParams_.Set("alt", alt)
174764	c.urlParams_.Set("prettyPrint", "false")
174765	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
174766	urls += "?" + c.urlParams_.Encode()
174767	req, err := http.NewRequest("DELETE", urls, body)
174768	if err != nil {
174769		return nil, err
174770	}
174771	req.Header = reqHeaders
174772	googleapi.Expand(req.URL, map[string]string{
174773		"project": c.project,
174774		"urlMap":  c.urlMap,
174775	})
174776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174777}
174778
174779// Do executes the "compute.urlMaps.delete" call.
174780// Exactly one of *Operation or error will be non-nil. Any non-2xx
174781// status code is an error. Response headers are in either
174782// *Operation.ServerResponse.Header or (if a response was returned at
174783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174784// to check whether the returned error was because
174785// http.StatusNotModified was returned.
174786func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174787	gensupport.SetOptions(c.urlParams_, opts...)
174788	res, err := c.doRequest("json")
174789	if res != nil && res.StatusCode == http.StatusNotModified {
174790		if res.Body != nil {
174791			res.Body.Close()
174792		}
174793		return nil, &googleapi.Error{
174794			Code:   res.StatusCode,
174795			Header: res.Header,
174796		}
174797	}
174798	if err != nil {
174799		return nil, err
174800	}
174801	defer googleapi.CloseBody(res)
174802	if err := googleapi.CheckResponse(res); err != nil {
174803		return nil, err
174804	}
174805	ret := &Operation{
174806		ServerResponse: googleapi.ServerResponse{
174807			Header:         res.Header,
174808			HTTPStatusCode: res.StatusCode,
174809		},
174810	}
174811	target := &ret
174812	if err := gensupport.DecodeResponse(target, res); err != nil {
174813		return nil, err
174814	}
174815	return ret, nil
174816	// {
174817	//   "description": "Deletes the specified UrlMap resource.",
174818	//   "httpMethod": "DELETE",
174819	//   "id": "compute.urlMaps.delete",
174820	//   "parameterOrder": [
174821	//     "project",
174822	//     "urlMap"
174823	//   ],
174824	//   "parameters": {
174825	//     "project": {
174826	//       "description": "Project ID for this request.",
174827	//       "location": "path",
174828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174829	//       "required": true,
174830	//       "type": "string"
174831	//     },
174832	//     "requestId": {
174833	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174834	//       "location": "query",
174835	//       "type": "string"
174836	//     },
174837	//     "urlMap": {
174838	//       "description": "Name of the UrlMap resource to delete.",
174839	//       "location": "path",
174840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174841	//       "required": true,
174842	//       "type": "string"
174843	//     }
174844	//   },
174845	//   "path": "{project}/global/urlMaps/{urlMap}",
174846	//   "response": {
174847	//     "$ref": "Operation"
174848	//   },
174849	//   "scopes": [
174850	//     "https://www.googleapis.com/auth/cloud-platform",
174851	//     "https://www.googleapis.com/auth/compute"
174852	//   ]
174853	// }
174854
174855}
174856
174857// method id "compute.urlMaps.get":
174858
174859type UrlMapsGetCall struct {
174860	s            *Service
174861	project      string
174862	urlMap       string
174863	urlParams_   gensupport.URLParams
174864	ifNoneMatch_ string
174865	ctx_         context.Context
174866	header_      http.Header
174867}
174868
174869// Get: Returns the specified UrlMap resource. Gets a list of available
174870// URL maps by making a list() request.
174871// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
174872func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
174873	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174874	c.project = project
174875	c.urlMap = urlMap
174876	return c
174877}
174878
174879// Fields allows partial responses to be retrieved. See
174880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174881// for more information.
174882func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
174883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174884	return c
174885}
174886
174887// IfNoneMatch sets the optional parameter which makes the operation
174888// fail if the object's ETag matches the given value. This is useful for
174889// getting updates only after the object has changed since the last
174890// request. Use googleapi.IsNotModified to check whether the response
174891// error from Do is the result of In-None-Match.
174892func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
174893	c.ifNoneMatch_ = entityTag
174894	return c
174895}
174896
174897// Context sets the context to be used in this call's Do method. Any
174898// pending HTTP request will be aborted if the provided context is
174899// canceled.
174900func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
174901	c.ctx_ = ctx
174902	return c
174903}
174904
174905// Header returns an http.Header that can be modified by the caller to
174906// add HTTP headers to the request.
174907func (c *UrlMapsGetCall) Header() http.Header {
174908	if c.header_ == nil {
174909		c.header_ = make(http.Header)
174910	}
174911	return c.header_
174912}
174913
174914func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
174915	reqHeaders := make(http.Header)
174916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
174917	for k, v := range c.header_ {
174918		reqHeaders[k] = v
174919	}
174920	reqHeaders.Set("User-Agent", c.s.userAgent())
174921	if c.ifNoneMatch_ != "" {
174922		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
174923	}
174924	var body io.Reader = nil
174925	c.urlParams_.Set("alt", alt)
174926	c.urlParams_.Set("prettyPrint", "false")
174927	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
174928	urls += "?" + c.urlParams_.Encode()
174929	req, err := http.NewRequest("GET", urls, body)
174930	if err != nil {
174931		return nil, err
174932	}
174933	req.Header = reqHeaders
174934	googleapi.Expand(req.URL, map[string]string{
174935		"project": c.project,
174936		"urlMap":  c.urlMap,
174937	})
174938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174939}
174940
174941// Do executes the "compute.urlMaps.get" call.
174942// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
174943// code is an error. Response headers are in either
174944// *UrlMap.ServerResponse.Header or (if a response was returned at all)
174945// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
174946// check whether the returned error was because http.StatusNotModified
174947// was returned.
174948func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
174949	gensupport.SetOptions(c.urlParams_, opts...)
174950	res, err := c.doRequest("json")
174951	if res != nil && res.StatusCode == http.StatusNotModified {
174952		if res.Body != nil {
174953			res.Body.Close()
174954		}
174955		return nil, &googleapi.Error{
174956			Code:   res.StatusCode,
174957			Header: res.Header,
174958		}
174959	}
174960	if err != nil {
174961		return nil, err
174962	}
174963	defer googleapi.CloseBody(res)
174964	if err := googleapi.CheckResponse(res); err != nil {
174965		return nil, err
174966	}
174967	ret := &UrlMap{
174968		ServerResponse: googleapi.ServerResponse{
174969			Header:         res.Header,
174970			HTTPStatusCode: res.StatusCode,
174971		},
174972	}
174973	target := &ret
174974	if err := gensupport.DecodeResponse(target, res); err != nil {
174975		return nil, err
174976	}
174977	return ret, nil
174978	// {
174979	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
174980	//   "httpMethod": "GET",
174981	//   "id": "compute.urlMaps.get",
174982	//   "parameterOrder": [
174983	//     "project",
174984	//     "urlMap"
174985	//   ],
174986	//   "parameters": {
174987	//     "project": {
174988	//       "description": "Project ID for this request.",
174989	//       "location": "path",
174990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174991	//       "required": true,
174992	//       "type": "string"
174993	//     },
174994	//     "urlMap": {
174995	//       "description": "Name of the UrlMap resource to return.",
174996	//       "location": "path",
174997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174998	//       "required": true,
174999	//       "type": "string"
175000	//     }
175001	//   },
175002	//   "path": "{project}/global/urlMaps/{urlMap}",
175003	//   "response": {
175004	//     "$ref": "UrlMap"
175005	//   },
175006	//   "scopes": [
175007	//     "https://www.googleapis.com/auth/cloud-platform",
175008	//     "https://www.googleapis.com/auth/compute",
175009	//     "https://www.googleapis.com/auth/compute.readonly"
175010	//   ]
175011	// }
175012
175013}
175014
175015// method id "compute.urlMaps.insert":
175016
175017type UrlMapsInsertCall struct {
175018	s          *Service
175019	project    string
175020	urlmap     *UrlMap
175021	urlParams_ gensupport.URLParams
175022	ctx_       context.Context
175023	header_    http.Header
175024}
175025
175026// Insert: Creates a UrlMap resource in the specified project using the
175027// data included in the request.
175028// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
175029func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
175030	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175031	c.project = project
175032	c.urlmap = urlmap
175033	return c
175034}
175035
175036// RequestId sets the optional parameter "requestId": An optional
175037// request ID to identify requests. Specify a unique request ID so that
175038// if you must retry your request, the server will know to ignore the
175039// request if it has already been completed.
175040//
175041// For example, consider a situation where you make an initial request
175042// and the request times out. If you make the request again with the
175043// same request ID, the server can check if original operation with the
175044// same request ID was received, and if so, will ignore the second
175045// request. This prevents clients from accidentally creating duplicate
175046// commitments.
175047//
175048// The request ID must be a valid UUID with the exception that zero UUID
175049// is not supported (00000000-0000-0000-0000-000000000000).
175050func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
175051	c.urlParams_.Set("requestId", requestId)
175052	return c
175053}
175054
175055// Fields allows partial responses to be retrieved. See
175056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175057// for more information.
175058func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
175059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175060	return c
175061}
175062
175063// Context sets the context to be used in this call's Do method. Any
175064// pending HTTP request will be aborted if the provided context is
175065// canceled.
175066func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
175067	c.ctx_ = ctx
175068	return c
175069}
175070
175071// Header returns an http.Header that can be modified by the caller to
175072// add HTTP headers to the request.
175073func (c *UrlMapsInsertCall) Header() http.Header {
175074	if c.header_ == nil {
175075		c.header_ = make(http.Header)
175076	}
175077	return c.header_
175078}
175079
175080func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
175081	reqHeaders := make(http.Header)
175082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
175083	for k, v := range c.header_ {
175084		reqHeaders[k] = v
175085	}
175086	reqHeaders.Set("User-Agent", c.s.userAgent())
175087	var body io.Reader = nil
175088	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
175089	if err != nil {
175090		return nil, err
175091	}
175092	reqHeaders.Set("Content-Type", "application/json")
175093	c.urlParams_.Set("alt", alt)
175094	c.urlParams_.Set("prettyPrint", "false")
175095	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
175096	urls += "?" + c.urlParams_.Encode()
175097	req, err := http.NewRequest("POST", urls, body)
175098	if err != nil {
175099		return nil, err
175100	}
175101	req.Header = reqHeaders
175102	googleapi.Expand(req.URL, map[string]string{
175103		"project": c.project,
175104	})
175105	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175106}
175107
175108// Do executes the "compute.urlMaps.insert" call.
175109// Exactly one of *Operation or error will be non-nil. Any non-2xx
175110// status code is an error. Response headers are in either
175111// *Operation.ServerResponse.Header or (if a response was returned at
175112// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175113// to check whether the returned error was because
175114// http.StatusNotModified was returned.
175115func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175116	gensupport.SetOptions(c.urlParams_, opts...)
175117	res, err := c.doRequest("json")
175118	if res != nil && res.StatusCode == http.StatusNotModified {
175119		if res.Body != nil {
175120			res.Body.Close()
175121		}
175122		return nil, &googleapi.Error{
175123			Code:   res.StatusCode,
175124			Header: res.Header,
175125		}
175126	}
175127	if err != nil {
175128		return nil, err
175129	}
175130	defer googleapi.CloseBody(res)
175131	if err := googleapi.CheckResponse(res); err != nil {
175132		return nil, err
175133	}
175134	ret := &Operation{
175135		ServerResponse: googleapi.ServerResponse{
175136			Header:         res.Header,
175137			HTTPStatusCode: res.StatusCode,
175138		},
175139	}
175140	target := &ret
175141	if err := gensupport.DecodeResponse(target, res); err != nil {
175142		return nil, err
175143	}
175144	return ret, nil
175145	// {
175146	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
175147	//   "httpMethod": "POST",
175148	//   "id": "compute.urlMaps.insert",
175149	//   "parameterOrder": [
175150	//     "project"
175151	//   ],
175152	//   "parameters": {
175153	//     "project": {
175154	//       "description": "Project ID for this request.",
175155	//       "location": "path",
175156	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175157	//       "required": true,
175158	//       "type": "string"
175159	//     },
175160	//     "requestId": {
175161	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175162	//       "location": "query",
175163	//       "type": "string"
175164	//     }
175165	//   },
175166	//   "path": "{project}/global/urlMaps",
175167	//   "request": {
175168	//     "$ref": "UrlMap"
175169	//   },
175170	//   "response": {
175171	//     "$ref": "Operation"
175172	//   },
175173	//   "scopes": [
175174	//     "https://www.googleapis.com/auth/cloud-platform",
175175	//     "https://www.googleapis.com/auth/compute"
175176	//   ]
175177	// }
175178
175179}
175180
175181// method id "compute.urlMaps.invalidateCache":
175182
175183type UrlMapsInvalidateCacheCall struct {
175184	s                     *Service
175185	project               string
175186	urlMap                string
175187	cacheinvalidationrule *CacheInvalidationRule
175188	urlParams_            gensupport.URLParams
175189	ctx_                  context.Context
175190	header_               http.Header
175191}
175192
175193// InvalidateCache: Initiates a cache invalidation operation,
175194// invalidating the specified path, scoped to the specified UrlMap.
175195func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
175196	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175197	c.project = project
175198	c.urlMap = urlMap
175199	c.cacheinvalidationrule = cacheinvalidationrule
175200	return c
175201}
175202
175203// RequestId sets the optional parameter "requestId": An optional
175204// request ID to identify requests. Specify a unique request ID so that
175205// if you must retry your request, the server will know to ignore the
175206// request if it has already been completed.
175207//
175208// For example, consider a situation where you make an initial request
175209// and the request times out. If you make the request again with the
175210// same request ID, the server can check if original operation with the
175211// same request ID was received, and if so, will ignore the second
175212// request. This prevents clients from accidentally creating duplicate
175213// commitments.
175214//
175215// The request ID must be a valid UUID with the exception that zero UUID
175216// is not supported (00000000-0000-0000-0000-000000000000).
175217func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
175218	c.urlParams_.Set("requestId", requestId)
175219	return c
175220}
175221
175222// Fields allows partial responses to be retrieved. See
175223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175224// for more information.
175225func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
175226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175227	return c
175228}
175229
175230// Context sets the context to be used in this call's Do method. Any
175231// pending HTTP request will be aborted if the provided context is
175232// canceled.
175233func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
175234	c.ctx_ = ctx
175235	return c
175236}
175237
175238// Header returns an http.Header that can be modified by the caller to
175239// add HTTP headers to the request.
175240func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
175241	if c.header_ == nil {
175242		c.header_ = make(http.Header)
175243	}
175244	return c.header_
175245}
175246
175247func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
175248	reqHeaders := make(http.Header)
175249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
175250	for k, v := range c.header_ {
175251		reqHeaders[k] = v
175252	}
175253	reqHeaders.Set("User-Agent", c.s.userAgent())
175254	var body io.Reader = nil
175255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
175256	if err != nil {
175257		return nil, err
175258	}
175259	reqHeaders.Set("Content-Type", "application/json")
175260	c.urlParams_.Set("alt", alt)
175261	c.urlParams_.Set("prettyPrint", "false")
175262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
175263	urls += "?" + c.urlParams_.Encode()
175264	req, err := http.NewRequest("POST", urls, body)
175265	if err != nil {
175266		return nil, err
175267	}
175268	req.Header = reqHeaders
175269	googleapi.Expand(req.URL, map[string]string{
175270		"project": c.project,
175271		"urlMap":  c.urlMap,
175272	})
175273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175274}
175275
175276// Do executes the "compute.urlMaps.invalidateCache" call.
175277// Exactly one of *Operation or error will be non-nil. Any non-2xx
175278// status code is an error. Response headers are in either
175279// *Operation.ServerResponse.Header or (if a response was returned at
175280// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175281// to check whether the returned error was because
175282// http.StatusNotModified was returned.
175283func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175284	gensupport.SetOptions(c.urlParams_, opts...)
175285	res, err := c.doRequest("json")
175286	if res != nil && res.StatusCode == http.StatusNotModified {
175287		if res.Body != nil {
175288			res.Body.Close()
175289		}
175290		return nil, &googleapi.Error{
175291			Code:   res.StatusCode,
175292			Header: res.Header,
175293		}
175294	}
175295	if err != nil {
175296		return nil, err
175297	}
175298	defer googleapi.CloseBody(res)
175299	if err := googleapi.CheckResponse(res); err != nil {
175300		return nil, err
175301	}
175302	ret := &Operation{
175303		ServerResponse: googleapi.ServerResponse{
175304			Header:         res.Header,
175305			HTTPStatusCode: res.StatusCode,
175306		},
175307	}
175308	target := &ret
175309	if err := gensupport.DecodeResponse(target, res); err != nil {
175310		return nil, err
175311	}
175312	return ret, nil
175313	// {
175314	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
175315	//   "httpMethod": "POST",
175316	//   "id": "compute.urlMaps.invalidateCache",
175317	//   "parameterOrder": [
175318	//     "project",
175319	//     "urlMap"
175320	//   ],
175321	//   "parameters": {
175322	//     "project": {
175323	//       "description": "Project ID for this request.",
175324	//       "location": "path",
175325	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175326	//       "required": true,
175327	//       "type": "string"
175328	//     },
175329	//     "requestId": {
175330	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175331	//       "location": "query",
175332	//       "type": "string"
175333	//     },
175334	//     "urlMap": {
175335	//       "description": "Name of the UrlMap scoping this request.",
175336	//       "location": "path",
175337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175338	//       "required": true,
175339	//       "type": "string"
175340	//     }
175341	//   },
175342	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
175343	//   "request": {
175344	//     "$ref": "CacheInvalidationRule"
175345	//   },
175346	//   "response": {
175347	//     "$ref": "Operation"
175348	//   },
175349	//   "scopes": [
175350	//     "https://www.googleapis.com/auth/cloud-platform",
175351	//     "https://www.googleapis.com/auth/compute"
175352	//   ]
175353	// }
175354
175355}
175356
175357// method id "compute.urlMaps.list":
175358
175359type UrlMapsListCall struct {
175360	s            *Service
175361	project      string
175362	urlParams_   gensupport.URLParams
175363	ifNoneMatch_ string
175364	ctx_         context.Context
175365	header_      http.Header
175366}
175367
175368// List: Retrieves the list of UrlMap resources available to the
175369// specified project.
175370// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
175371func (r *UrlMapsService) List(project string) *UrlMapsListCall {
175372	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175373	c.project = project
175374	return c
175375}
175376
175377// Filter sets the optional parameter "filter": A filter expression that
175378// filters resources listed in the response. The expression must specify
175379// the field name, a comparison operator, and the value that you want to
175380// use for filtering. The value must be a string, a number, or a
175381// boolean. The comparison operator must be either `=`, `!=`, `>`, or
175382// `<`.
175383//
175384// For example, if you are filtering Compute Engine instances, you can
175385// exclude instances named `example-instance` by specifying `name !=
175386// example-instance`.
175387//
175388// You can also filter nested fields. For example, you could specify
175389// `scheduling.automaticRestart = false` to include instances only if
175390// they are not scheduled for automatic restarts. You can use filtering
175391// on nested fields to filter based on resource labels.
175392//
175393// To filter on multiple expressions, provide each separate expression
175394// within parentheses. For example: ``` (scheduling.automaticRestart =
175395// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
175396// is an `AND` expression. However, you can include `AND` and `OR`
175397// expressions explicitly. For example: ``` (cpuPlatform = "Intel
175398// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
175399// (scheduling.automaticRestart = true) ```
175400func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
175401	c.urlParams_.Set("filter", filter)
175402	return c
175403}
175404
175405// MaxResults sets the optional parameter "maxResults": The maximum
175406// number of results per page that should be returned. If the number of
175407// available results is larger than `maxResults`, Compute Engine returns
175408// a `nextPageToken` that can be used to get the next page of results in
175409// subsequent list requests. Acceptable values are `0` to `500`,
175410// inclusive. (Default: `500`)
175411func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
175412	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
175413	return c
175414}
175415
175416// OrderBy sets the optional parameter "orderBy": Sorts list results by
175417// a certain order. By default, results are returned in alphanumerical
175418// order based on the resource name.
175419//
175420// You can also sort results in descending order based on the creation
175421// timestamp using `orderBy="creationTimestamp desc". This sorts
175422// results based on the `creationTimestamp` field in reverse
175423// chronological order (newest result first). Use this to sort resources
175424// like operations so that the newest operation is returned
175425// first.
175426//
175427// Currently, only sorting by `name` or `creationTimestamp desc` is
175428// supported.
175429func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
175430	c.urlParams_.Set("orderBy", orderBy)
175431	return c
175432}
175433
175434// PageToken sets the optional parameter "pageToken": Specifies a page
175435// token to use. Set `pageToken` to the `nextPageToken` returned by a
175436// previous list request to get the next page of results.
175437func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
175438	c.urlParams_.Set("pageToken", pageToken)
175439	return c
175440}
175441
175442// ReturnPartialSuccess sets the optional parameter
175443// "returnPartialSuccess": Opt-in for partial success behavior which
175444// provides partial results in case of failure. The default value is
175445// false and the logic is the same as today.
175446func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall {
175447	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
175448	return c
175449}
175450
175451// Fields allows partial responses to be retrieved. See
175452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175453// for more information.
175454func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
175455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175456	return c
175457}
175458
175459// IfNoneMatch sets the optional parameter which makes the operation
175460// fail if the object's ETag matches the given value. This is useful for
175461// getting updates only after the object has changed since the last
175462// request. Use googleapi.IsNotModified to check whether the response
175463// error from Do is the result of In-None-Match.
175464func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
175465	c.ifNoneMatch_ = entityTag
175466	return c
175467}
175468
175469// Context sets the context to be used in this call's Do method. Any
175470// pending HTTP request will be aborted if the provided context is
175471// canceled.
175472func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
175473	c.ctx_ = ctx
175474	return c
175475}
175476
175477// Header returns an http.Header that can be modified by the caller to
175478// add HTTP headers to the request.
175479func (c *UrlMapsListCall) Header() http.Header {
175480	if c.header_ == nil {
175481		c.header_ = make(http.Header)
175482	}
175483	return c.header_
175484}
175485
175486func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
175487	reqHeaders := make(http.Header)
175488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
175489	for k, v := range c.header_ {
175490		reqHeaders[k] = v
175491	}
175492	reqHeaders.Set("User-Agent", c.s.userAgent())
175493	if c.ifNoneMatch_ != "" {
175494		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
175495	}
175496	var body io.Reader = nil
175497	c.urlParams_.Set("alt", alt)
175498	c.urlParams_.Set("prettyPrint", "false")
175499	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
175500	urls += "?" + c.urlParams_.Encode()
175501	req, err := http.NewRequest("GET", urls, body)
175502	if err != nil {
175503		return nil, err
175504	}
175505	req.Header = reqHeaders
175506	googleapi.Expand(req.URL, map[string]string{
175507		"project": c.project,
175508	})
175509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175510}
175511
175512// Do executes the "compute.urlMaps.list" call.
175513// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
175514// status code is an error. Response headers are in either
175515// *UrlMapList.ServerResponse.Header or (if a response was returned at
175516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175517// to check whether the returned error was because
175518// http.StatusNotModified was returned.
175519func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
175520	gensupport.SetOptions(c.urlParams_, opts...)
175521	res, err := c.doRequest("json")
175522	if res != nil && res.StatusCode == http.StatusNotModified {
175523		if res.Body != nil {
175524			res.Body.Close()
175525		}
175526		return nil, &googleapi.Error{
175527			Code:   res.StatusCode,
175528			Header: res.Header,
175529		}
175530	}
175531	if err != nil {
175532		return nil, err
175533	}
175534	defer googleapi.CloseBody(res)
175535	if err := googleapi.CheckResponse(res); err != nil {
175536		return nil, err
175537	}
175538	ret := &UrlMapList{
175539		ServerResponse: googleapi.ServerResponse{
175540			Header:         res.Header,
175541			HTTPStatusCode: res.StatusCode,
175542		},
175543	}
175544	target := &ret
175545	if err := gensupport.DecodeResponse(target, res); err != nil {
175546		return nil, err
175547	}
175548	return ret, nil
175549	// {
175550	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
175551	//   "httpMethod": "GET",
175552	//   "id": "compute.urlMaps.list",
175553	//   "parameterOrder": [
175554	//     "project"
175555	//   ],
175556	//   "parameters": {
175557	//     "filter": {
175558	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
175559	//       "location": "query",
175560	//       "type": "string"
175561	//     },
175562	//     "maxResults": {
175563	//       "default": "500",
175564	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
175565	//       "format": "uint32",
175566	//       "location": "query",
175567	//       "minimum": "0",
175568	//       "type": "integer"
175569	//     },
175570	//     "orderBy": {
175571	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
175572	//       "location": "query",
175573	//       "type": "string"
175574	//     },
175575	//     "pageToken": {
175576	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
175577	//       "location": "query",
175578	//       "type": "string"
175579	//     },
175580	//     "project": {
175581	//       "description": "Project ID for this request.",
175582	//       "location": "path",
175583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175584	//       "required": true,
175585	//       "type": "string"
175586	//     },
175587	//     "returnPartialSuccess": {
175588	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
175589	//       "location": "query",
175590	//       "type": "boolean"
175591	//     }
175592	//   },
175593	//   "path": "{project}/global/urlMaps",
175594	//   "response": {
175595	//     "$ref": "UrlMapList"
175596	//   },
175597	//   "scopes": [
175598	//     "https://www.googleapis.com/auth/cloud-platform",
175599	//     "https://www.googleapis.com/auth/compute",
175600	//     "https://www.googleapis.com/auth/compute.readonly"
175601	//   ]
175602	// }
175603
175604}
175605
175606// Pages invokes f for each page of results.
175607// A non-nil error returned from f will halt the iteration.
175608// The provided context supersedes any context provided to the Context method.
175609func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
175610	c.ctx_ = ctx
175611	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
175612	for {
175613		x, err := c.Do()
175614		if err != nil {
175615			return err
175616		}
175617		if err := f(x); err != nil {
175618			return err
175619		}
175620		if x.NextPageToken == "" {
175621			return nil
175622		}
175623		c.PageToken(x.NextPageToken)
175624	}
175625}
175626
175627// method id "compute.urlMaps.patch":
175628
175629type UrlMapsPatchCall struct {
175630	s          *Service
175631	project    string
175632	urlMap     string
175633	urlmap     *UrlMap
175634	urlParams_ gensupport.URLParams
175635	ctx_       context.Context
175636	header_    http.Header
175637}
175638
175639// Patch: Patches the specified UrlMap resource with the data included
175640// in the request. This method supports PATCH semantics and uses the
175641// JSON merge patch format and processing rules.
175642// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
175643func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
175644	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175645	c.project = project
175646	c.urlMap = urlMap
175647	c.urlmap = urlmap
175648	return c
175649}
175650
175651// RequestId sets the optional parameter "requestId": An optional
175652// request ID to identify requests. Specify a unique request ID so that
175653// if you must retry your request, the server will know to ignore the
175654// request if it has already been completed.
175655//
175656// For example, consider a situation where you make an initial request
175657// and the request times out. If you make the request again with the
175658// same request ID, the server can check if original operation with the
175659// same request ID was received, and if so, will ignore the second
175660// request. This prevents clients from accidentally creating duplicate
175661// commitments.
175662//
175663// The request ID must be a valid UUID with the exception that zero UUID
175664// is not supported (00000000-0000-0000-0000-000000000000).
175665func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
175666	c.urlParams_.Set("requestId", requestId)
175667	return c
175668}
175669
175670// Fields allows partial responses to be retrieved. See
175671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175672// for more information.
175673func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
175674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175675	return c
175676}
175677
175678// Context sets the context to be used in this call's Do method. Any
175679// pending HTTP request will be aborted if the provided context is
175680// canceled.
175681func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
175682	c.ctx_ = ctx
175683	return c
175684}
175685
175686// Header returns an http.Header that can be modified by the caller to
175687// add HTTP headers to the request.
175688func (c *UrlMapsPatchCall) Header() http.Header {
175689	if c.header_ == nil {
175690		c.header_ = make(http.Header)
175691	}
175692	return c.header_
175693}
175694
175695func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
175696	reqHeaders := make(http.Header)
175697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
175698	for k, v := range c.header_ {
175699		reqHeaders[k] = v
175700	}
175701	reqHeaders.Set("User-Agent", c.s.userAgent())
175702	var body io.Reader = nil
175703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
175704	if err != nil {
175705		return nil, err
175706	}
175707	reqHeaders.Set("Content-Type", "application/json")
175708	c.urlParams_.Set("alt", alt)
175709	c.urlParams_.Set("prettyPrint", "false")
175710	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
175711	urls += "?" + c.urlParams_.Encode()
175712	req, err := http.NewRequest("PATCH", urls, body)
175713	if err != nil {
175714		return nil, err
175715	}
175716	req.Header = reqHeaders
175717	googleapi.Expand(req.URL, map[string]string{
175718		"project": c.project,
175719		"urlMap":  c.urlMap,
175720	})
175721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175722}
175723
175724// Do executes the "compute.urlMaps.patch" call.
175725// Exactly one of *Operation or error will be non-nil. Any non-2xx
175726// status code is an error. Response headers are in either
175727// *Operation.ServerResponse.Header or (if a response was returned at
175728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175729// to check whether the returned error was because
175730// http.StatusNotModified was returned.
175731func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175732	gensupport.SetOptions(c.urlParams_, opts...)
175733	res, err := c.doRequest("json")
175734	if res != nil && res.StatusCode == http.StatusNotModified {
175735		if res.Body != nil {
175736			res.Body.Close()
175737		}
175738		return nil, &googleapi.Error{
175739			Code:   res.StatusCode,
175740			Header: res.Header,
175741		}
175742	}
175743	if err != nil {
175744		return nil, err
175745	}
175746	defer googleapi.CloseBody(res)
175747	if err := googleapi.CheckResponse(res); err != nil {
175748		return nil, err
175749	}
175750	ret := &Operation{
175751		ServerResponse: googleapi.ServerResponse{
175752			Header:         res.Header,
175753			HTTPStatusCode: res.StatusCode,
175754		},
175755	}
175756	target := &ret
175757	if err := gensupport.DecodeResponse(target, res); err != nil {
175758		return nil, err
175759	}
175760	return ret, nil
175761	// {
175762	//   "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.",
175763	//   "httpMethod": "PATCH",
175764	//   "id": "compute.urlMaps.patch",
175765	//   "parameterOrder": [
175766	//     "project",
175767	//     "urlMap"
175768	//   ],
175769	//   "parameters": {
175770	//     "project": {
175771	//       "description": "Project ID for this request.",
175772	//       "location": "path",
175773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175774	//       "required": true,
175775	//       "type": "string"
175776	//     },
175777	//     "requestId": {
175778	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175779	//       "location": "query",
175780	//       "type": "string"
175781	//     },
175782	//     "urlMap": {
175783	//       "description": "Name of the UrlMap resource to patch.",
175784	//       "location": "path",
175785	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175786	//       "required": true,
175787	//       "type": "string"
175788	//     }
175789	//   },
175790	//   "path": "{project}/global/urlMaps/{urlMap}",
175791	//   "request": {
175792	//     "$ref": "UrlMap"
175793	//   },
175794	//   "response": {
175795	//     "$ref": "Operation"
175796	//   },
175797	//   "scopes": [
175798	//     "https://www.googleapis.com/auth/cloud-platform",
175799	//     "https://www.googleapis.com/auth/compute"
175800	//   ]
175801	// }
175802
175803}
175804
175805// method id "compute.urlMaps.testIamPermissions":
175806
175807type UrlMapsTestIamPermissionsCall struct {
175808	s                      *Service
175809	project                string
175810	resource               string
175811	testpermissionsrequest *TestPermissionsRequest
175812	urlParams_             gensupport.URLParams
175813	ctx_                   context.Context
175814	header_                http.Header
175815}
175816
175817// TestIamPermissions: Returns permissions that a caller has on the
175818// specified resource.
175819func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall {
175820	c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175821	c.project = project
175822	c.resource = resource
175823	c.testpermissionsrequest = testpermissionsrequest
175824	return c
175825}
175826
175827// Fields allows partial responses to be retrieved. See
175828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175829// for more information.
175830func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall {
175831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175832	return c
175833}
175834
175835// Context sets the context to be used in this call's Do method. Any
175836// pending HTTP request will be aborted if the provided context is
175837// canceled.
175838func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall {
175839	c.ctx_ = ctx
175840	return c
175841}
175842
175843// Header returns an http.Header that can be modified by the caller to
175844// add HTTP headers to the request.
175845func (c *UrlMapsTestIamPermissionsCall) Header() http.Header {
175846	if c.header_ == nil {
175847		c.header_ = make(http.Header)
175848	}
175849	return c.header_
175850}
175851
175852func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
175853	reqHeaders := make(http.Header)
175854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
175855	for k, v := range c.header_ {
175856		reqHeaders[k] = v
175857	}
175858	reqHeaders.Set("User-Agent", c.s.userAgent())
175859	var body io.Reader = nil
175860	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
175861	if err != nil {
175862		return nil, err
175863	}
175864	reqHeaders.Set("Content-Type", "application/json")
175865	c.urlParams_.Set("alt", alt)
175866	c.urlParams_.Set("prettyPrint", "false")
175867	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{resource}/testIamPermissions")
175868	urls += "?" + c.urlParams_.Encode()
175869	req, err := http.NewRequest("POST", urls, body)
175870	if err != nil {
175871		return nil, err
175872	}
175873	req.Header = reqHeaders
175874	googleapi.Expand(req.URL, map[string]string{
175875		"project":  c.project,
175876		"resource": c.resource,
175877	})
175878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175879}
175880
175881// Do executes the "compute.urlMaps.testIamPermissions" call.
175882// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
175883// non-2xx status code is an error. Response headers are in either
175884// *TestPermissionsResponse.ServerResponse.Header or (if a response was
175885// returned at all) in error.(*googleapi.Error).Header. Use
175886// googleapi.IsNotModified to check whether the returned error was
175887// because http.StatusNotModified was returned.
175888func (c *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
175889	gensupport.SetOptions(c.urlParams_, opts...)
175890	res, err := c.doRequest("json")
175891	if res != nil && res.StatusCode == http.StatusNotModified {
175892		if res.Body != nil {
175893			res.Body.Close()
175894		}
175895		return nil, &googleapi.Error{
175896			Code:   res.StatusCode,
175897			Header: res.Header,
175898		}
175899	}
175900	if err != nil {
175901		return nil, err
175902	}
175903	defer googleapi.CloseBody(res)
175904	if err := googleapi.CheckResponse(res); err != nil {
175905		return nil, err
175906	}
175907	ret := &TestPermissionsResponse{
175908		ServerResponse: googleapi.ServerResponse{
175909			Header:         res.Header,
175910			HTTPStatusCode: res.StatusCode,
175911		},
175912	}
175913	target := &ret
175914	if err := gensupport.DecodeResponse(target, res); err != nil {
175915		return nil, err
175916	}
175917	return ret, nil
175918	// {
175919	//   "description": "Returns permissions that a caller has on the specified resource.",
175920	//   "httpMethod": "POST",
175921	//   "id": "compute.urlMaps.testIamPermissions",
175922	//   "parameterOrder": [
175923	//     "project",
175924	//     "resource"
175925	//   ],
175926	//   "parameters": {
175927	//     "project": {
175928	//       "description": "Project ID for this request.",
175929	//       "location": "path",
175930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175931	//       "required": true,
175932	//       "type": "string"
175933	//     },
175934	//     "resource": {
175935	//       "description": "Name or id of the resource for this request.",
175936	//       "location": "path",
175937	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175938	//       "required": true,
175939	//       "type": "string"
175940	//     }
175941	//   },
175942	//   "path": "{project}/global/urlMaps/{resource}/testIamPermissions",
175943	//   "request": {
175944	//     "$ref": "TestPermissionsRequest"
175945	//   },
175946	//   "response": {
175947	//     "$ref": "TestPermissionsResponse"
175948	//   },
175949	//   "scopes": [
175950	//     "https://www.googleapis.com/auth/cloud-platform",
175951	//     "https://www.googleapis.com/auth/compute",
175952	//     "https://www.googleapis.com/auth/compute.readonly"
175953	//   ]
175954	// }
175955
175956}
175957
175958// method id "compute.urlMaps.update":
175959
175960type UrlMapsUpdateCall struct {
175961	s          *Service
175962	project    string
175963	urlMap     string
175964	urlmap     *UrlMap
175965	urlParams_ gensupport.URLParams
175966	ctx_       context.Context
175967	header_    http.Header
175968}
175969
175970// Update: Updates the specified UrlMap resource with the data included
175971// in the request.
175972// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
175973func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
175974	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175975	c.project = project
175976	c.urlMap = urlMap
175977	c.urlmap = urlmap
175978	return c
175979}
175980
175981// RequestId sets the optional parameter "requestId": An optional
175982// request ID to identify requests. Specify a unique request ID so that
175983// if you must retry your request, the server will know to ignore the
175984// request if it has already been completed.
175985//
175986// For example, consider a situation where you make an initial request
175987// and the request times out. If you make the request again with the
175988// same request ID, the server can check if original operation with the
175989// same request ID was received, and if so, will ignore the second
175990// request. This prevents clients from accidentally creating duplicate
175991// commitments.
175992//
175993// The request ID must be a valid UUID with the exception that zero UUID
175994// is not supported (00000000-0000-0000-0000-000000000000).
175995func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
175996	c.urlParams_.Set("requestId", requestId)
175997	return c
175998}
175999
176000// Fields allows partial responses to be retrieved. See
176001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176002// for more information.
176003func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
176004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176005	return c
176006}
176007
176008// Context sets the context to be used in this call's Do method. Any
176009// pending HTTP request will be aborted if the provided context is
176010// canceled.
176011func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
176012	c.ctx_ = ctx
176013	return c
176014}
176015
176016// Header returns an http.Header that can be modified by the caller to
176017// add HTTP headers to the request.
176018func (c *UrlMapsUpdateCall) Header() http.Header {
176019	if c.header_ == nil {
176020		c.header_ = make(http.Header)
176021	}
176022	return c.header_
176023}
176024
176025func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
176026	reqHeaders := make(http.Header)
176027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
176028	for k, v := range c.header_ {
176029		reqHeaders[k] = v
176030	}
176031	reqHeaders.Set("User-Agent", c.s.userAgent())
176032	var body io.Reader = nil
176033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
176034	if err != nil {
176035		return nil, err
176036	}
176037	reqHeaders.Set("Content-Type", "application/json")
176038	c.urlParams_.Set("alt", alt)
176039	c.urlParams_.Set("prettyPrint", "false")
176040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
176041	urls += "?" + c.urlParams_.Encode()
176042	req, err := http.NewRequest("PUT", urls, body)
176043	if err != nil {
176044		return nil, err
176045	}
176046	req.Header = reqHeaders
176047	googleapi.Expand(req.URL, map[string]string{
176048		"project": c.project,
176049		"urlMap":  c.urlMap,
176050	})
176051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176052}
176053
176054// Do executes the "compute.urlMaps.update" call.
176055// Exactly one of *Operation or error will be non-nil. Any non-2xx
176056// status code is an error. Response headers are in either
176057// *Operation.ServerResponse.Header or (if a response was returned at
176058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176059// to check whether the returned error was because
176060// http.StatusNotModified was returned.
176061func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176062	gensupport.SetOptions(c.urlParams_, opts...)
176063	res, err := c.doRequest("json")
176064	if res != nil && res.StatusCode == http.StatusNotModified {
176065		if res.Body != nil {
176066			res.Body.Close()
176067		}
176068		return nil, &googleapi.Error{
176069			Code:   res.StatusCode,
176070			Header: res.Header,
176071		}
176072	}
176073	if err != nil {
176074		return nil, err
176075	}
176076	defer googleapi.CloseBody(res)
176077	if err := googleapi.CheckResponse(res); err != nil {
176078		return nil, err
176079	}
176080	ret := &Operation{
176081		ServerResponse: googleapi.ServerResponse{
176082			Header:         res.Header,
176083			HTTPStatusCode: res.StatusCode,
176084		},
176085	}
176086	target := &ret
176087	if err := gensupport.DecodeResponse(target, res); err != nil {
176088		return nil, err
176089	}
176090	return ret, nil
176091	// {
176092	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
176093	//   "httpMethod": "PUT",
176094	//   "id": "compute.urlMaps.update",
176095	//   "parameterOrder": [
176096	//     "project",
176097	//     "urlMap"
176098	//   ],
176099	//   "parameters": {
176100	//     "project": {
176101	//       "description": "Project ID for this request.",
176102	//       "location": "path",
176103	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176104	//       "required": true,
176105	//       "type": "string"
176106	//     },
176107	//     "requestId": {
176108	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176109	//       "location": "query",
176110	//       "type": "string"
176111	//     },
176112	//     "urlMap": {
176113	//       "description": "Name of the UrlMap resource to update.",
176114	//       "location": "path",
176115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176116	//       "required": true,
176117	//       "type": "string"
176118	//     }
176119	//   },
176120	//   "path": "{project}/global/urlMaps/{urlMap}",
176121	//   "request": {
176122	//     "$ref": "UrlMap"
176123	//   },
176124	//   "response": {
176125	//     "$ref": "Operation"
176126	//   },
176127	//   "scopes": [
176128	//     "https://www.googleapis.com/auth/cloud-platform",
176129	//     "https://www.googleapis.com/auth/compute"
176130	//   ]
176131	// }
176132
176133}
176134
176135// method id "compute.urlMaps.validate":
176136
176137type UrlMapsValidateCall struct {
176138	s                      *Service
176139	project                string
176140	urlMap                 string
176141	urlmapsvalidaterequest *UrlMapsValidateRequest
176142	urlParams_             gensupport.URLParams
176143	ctx_                   context.Context
176144	header_                http.Header
176145}
176146
176147// Validate: Runs static validation for the UrlMap. In particular, the
176148// tests of the provided UrlMap will be run. Calling this method does
176149// NOT create the UrlMap.
176150// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
176151func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
176152	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176153	c.project = project
176154	c.urlMap = urlMap
176155	c.urlmapsvalidaterequest = urlmapsvalidaterequest
176156	return c
176157}
176158
176159// Fields allows partial responses to be retrieved. See
176160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176161// for more information.
176162func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
176163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176164	return c
176165}
176166
176167// Context sets the context to be used in this call's Do method. Any
176168// pending HTTP request will be aborted if the provided context is
176169// canceled.
176170func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
176171	c.ctx_ = ctx
176172	return c
176173}
176174
176175// Header returns an http.Header that can be modified by the caller to
176176// add HTTP headers to the request.
176177func (c *UrlMapsValidateCall) Header() http.Header {
176178	if c.header_ == nil {
176179		c.header_ = make(http.Header)
176180	}
176181	return c.header_
176182}
176183
176184func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
176185	reqHeaders := make(http.Header)
176186	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
176187	for k, v := range c.header_ {
176188		reqHeaders[k] = v
176189	}
176190	reqHeaders.Set("User-Agent", c.s.userAgent())
176191	var body io.Reader = nil
176192	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
176193	if err != nil {
176194		return nil, err
176195	}
176196	reqHeaders.Set("Content-Type", "application/json")
176197	c.urlParams_.Set("alt", alt)
176198	c.urlParams_.Set("prettyPrint", "false")
176199	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
176200	urls += "?" + c.urlParams_.Encode()
176201	req, err := http.NewRequest("POST", urls, body)
176202	if err != nil {
176203		return nil, err
176204	}
176205	req.Header = reqHeaders
176206	googleapi.Expand(req.URL, map[string]string{
176207		"project": c.project,
176208		"urlMap":  c.urlMap,
176209	})
176210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176211}
176212
176213// Do executes the "compute.urlMaps.validate" call.
176214// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
176215// non-2xx status code is an error. Response headers are in either
176216// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
176217// returned at all) in error.(*googleapi.Error).Header. Use
176218// googleapi.IsNotModified to check whether the returned error was
176219// because http.StatusNotModified was returned.
176220func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
176221	gensupport.SetOptions(c.urlParams_, opts...)
176222	res, err := c.doRequest("json")
176223	if res != nil && res.StatusCode == http.StatusNotModified {
176224		if res.Body != nil {
176225			res.Body.Close()
176226		}
176227		return nil, &googleapi.Error{
176228			Code:   res.StatusCode,
176229			Header: res.Header,
176230		}
176231	}
176232	if err != nil {
176233		return nil, err
176234	}
176235	defer googleapi.CloseBody(res)
176236	if err := googleapi.CheckResponse(res); err != nil {
176237		return nil, err
176238	}
176239	ret := &UrlMapsValidateResponse{
176240		ServerResponse: googleapi.ServerResponse{
176241			Header:         res.Header,
176242			HTTPStatusCode: res.StatusCode,
176243		},
176244	}
176245	target := &ret
176246	if err := gensupport.DecodeResponse(target, res); err != nil {
176247		return nil, err
176248	}
176249	return ret, nil
176250	// {
176251	//   "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.",
176252	//   "httpMethod": "POST",
176253	//   "id": "compute.urlMaps.validate",
176254	//   "parameterOrder": [
176255	//     "project",
176256	//     "urlMap"
176257	//   ],
176258	//   "parameters": {
176259	//     "project": {
176260	//       "description": "Project ID for this request.",
176261	//       "location": "path",
176262	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176263	//       "required": true,
176264	//       "type": "string"
176265	//     },
176266	//     "urlMap": {
176267	//       "description": "Name of the UrlMap resource to be validated as.",
176268	//       "location": "path",
176269	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176270	//       "required": true,
176271	//       "type": "string"
176272	//     }
176273	//   },
176274	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
176275	//   "request": {
176276	//     "$ref": "UrlMapsValidateRequest"
176277	//   },
176278	//   "response": {
176279	//     "$ref": "UrlMapsValidateResponse"
176280	//   },
176281	//   "scopes": [
176282	//     "https://www.googleapis.com/auth/cloud-platform",
176283	//     "https://www.googleapis.com/auth/compute"
176284	//   ]
176285	// }
176286
176287}
176288
176289// method id "compute.vpnGateways.aggregatedList":
176290
176291type VpnGatewaysAggregatedListCall struct {
176292	s            *Service
176293	project      string
176294	urlParams_   gensupport.URLParams
176295	ifNoneMatch_ string
176296	ctx_         context.Context
176297	header_      http.Header
176298}
176299
176300// AggregatedList: Retrieves an aggregated list of VPN gateways.
176301func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
176302	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176303	c.project = project
176304	return c
176305}
176306
176307// Filter sets the optional parameter "filter": A filter expression that
176308// filters resources listed in the response. The expression must specify
176309// the field name, a comparison operator, and the value that you want to
176310// use for filtering. The value must be a string, a number, or a
176311// boolean. The comparison operator must be either `=`, `!=`, `>`, or
176312// `<`.
176313//
176314// For example, if you are filtering Compute Engine instances, you can
176315// exclude instances named `example-instance` by specifying `name !=
176316// example-instance`.
176317//
176318// You can also filter nested fields. For example, you could specify
176319// `scheduling.automaticRestart = false` to include instances only if
176320// they are not scheduled for automatic restarts. You can use filtering
176321// on nested fields to filter based on resource labels.
176322//
176323// To filter on multiple expressions, provide each separate expression
176324// within parentheses. For example: ``` (scheduling.automaticRestart =
176325// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
176326// is an `AND` expression. However, you can include `AND` and `OR`
176327// expressions explicitly. For example: ``` (cpuPlatform = "Intel
176328// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
176329// (scheduling.automaticRestart = true) ```
176330func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
176331	c.urlParams_.Set("filter", filter)
176332	return c
176333}
176334
176335// IncludeAllScopes sets the optional parameter "includeAllScopes":
176336// Indicates whether every visible scope for each scope type (zone,
176337// region, global) should be included in the response. For new resource
176338// types added after this field, the flag has no effect as new resource
176339// types will always include every visible scope for each scope type in
176340// response. For resource types which predate this field, if this flag
176341// is omitted or false, only scopes of the scope types where the
176342// resource type is expected to be found will be included.
176343func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
176344	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
176345	return c
176346}
176347
176348// MaxResults sets the optional parameter "maxResults": The maximum
176349// number of results per page that should be returned. If the number of
176350// available results is larger than `maxResults`, Compute Engine returns
176351// a `nextPageToken` that can be used to get the next page of results in
176352// subsequent list requests. Acceptable values are `0` to `500`,
176353// inclusive. (Default: `500`)
176354func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
176355	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
176356	return c
176357}
176358
176359// OrderBy sets the optional parameter "orderBy": Sorts list results by
176360// a certain order. By default, results are returned in alphanumerical
176361// order based on the resource name.
176362//
176363// You can also sort results in descending order based on the creation
176364// timestamp using `orderBy="creationTimestamp desc". This sorts
176365// results based on the `creationTimestamp` field in reverse
176366// chronological order (newest result first). Use this to sort resources
176367// like operations so that the newest operation is returned
176368// first.
176369//
176370// Currently, only sorting by `name` or `creationTimestamp desc` is
176371// supported.
176372func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
176373	c.urlParams_.Set("orderBy", orderBy)
176374	return c
176375}
176376
176377// PageToken sets the optional parameter "pageToken": Specifies a page
176378// token to use. Set `pageToken` to the `nextPageToken` returned by a
176379// previous list request to get the next page of results.
176380func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
176381	c.urlParams_.Set("pageToken", pageToken)
176382	return c
176383}
176384
176385// ReturnPartialSuccess sets the optional parameter
176386// "returnPartialSuccess": Opt-in for partial success behavior which
176387// provides partial results in case of failure. The default value is
176388// false and the logic is the same as today.
176389func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall {
176390	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
176391	return c
176392}
176393
176394// Fields allows partial responses to be retrieved. See
176395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176396// for more information.
176397func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
176398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176399	return c
176400}
176401
176402// IfNoneMatch sets the optional parameter which makes the operation
176403// fail if the object's ETag matches the given value. This is useful for
176404// getting updates only after the object has changed since the last
176405// request. Use googleapi.IsNotModified to check whether the response
176406// error from Do is the result of In-None-Match.
176407func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
176408	c.ifNoneMatch_ = entityTag
176409	return c
176410}
176411
176412// Context sets the context to be used in this call's Do method. Any
176413// pending HTTP request will be aborted if the provided context is
176414// canceled.
176415func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
176416	c.ctx_ = ctx
176417	return c
176418}
176419
176420// Header returns an http.Header that can be modified by the caller to
176421// add HTTP headers to the request.
176422func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
176423	if c.header_ == nil {
176424		c.header_ = make(http.Header)
176425	}
176426	return c.header_
176427}
176428
176429func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
176430	reqHeaders := make(http.Header)
176431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
176432	for k, v := range c.header_ {
176433		reqHeaders[k] = v
176434	}
176435	reqHeaders.Set("User-Agent", c.s.userAgent())
176436	if c.ifNoneMatch_ != "" {
176437		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
176438	}
176439	var body io.Reader = nil
176440	c.urlParams_.Set("alt", alt)
176441	c.urlParams_.Set("prettyPrint", "false")
176442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnGateways")
176443	urls += "?" + c.urlParams_.Encode()
176444	req, err := http.NewRequest("GET", urls, body)
176445	if err != nil {
176446		return nil, err
176447	}
176448	req.Header = reqHeaders
176449	googleapi.Expand(req.URL, map[string]string{
176450		"project": c.project,
176451	})
176452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176453}
176454
176455// Do executes the "compute.vpnGateways.aggregatedList" call.
176456// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
176457// Any non-2xx status code is an error. Response headers are in either
176458// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
176459// returned at all) in error.(*googleapi.Error).Header. Use
176460// googleapi.IsNotModified to check whether the returned error was
176461// because http.StatusNotModified was returned.
176462func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
176463	gensupport.SetOptions(c.urlParams_, opts...)
176464	res, err := c.doRequest("json")
176465	if res != nil && res.StatusCode == http.StatusNotModified {
176466		if res.Body != nil {
176467			res.Body.Close()
176468		}
176469		return nil, &googleapi.Error{
176470			Code:   res.StatusCode,
176471			Header: res.Header,
176472		}
176473	}
176474	if err != nil {
176475		return nil, err
176476	}
176477	defer googleapi.CloseBody(res)
176478	if err := googleapi.CheckResponse(res); err != nil {
176479		return nil, err
176480	}
176481	ret := &VpnGatewayAggregatedList{
176482		ServerResponse: googleapi.ServerResponse{
176483			Header:         res.Header,
176484			HTTPStatusCode: res.StatusCode,
176485		},
176486	}
176487	target := &ret
176488	if err := gensupport.DecodeResponse(target, res); err != nil {
176489		return nil, err
176490	}
176491	return ret, nil
176492	// {
176493	//   "description": "Retrieves an aggregated list of VPN gateways.",
176494	//   "httpMethod": "GET",
176495	//   "id": "compute.vpnGateways.aggregatedList",
176496	//   "parameterOrder": [
176497	//     "project"
176498	//   ],
176499	//   "parameters": {
176500	//     "filter": {
176501	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
176502	//       "location": "query",
176503	//       "type": "string"
176504	//     },
176505	//     "includeAllScopes": {
176506	//       "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.",
176507	//       "location": "query",
176508	//       "type": "boolean"
176509	//     },
176510	//     "maxResults": {
176511	//       "default": "500",
176512	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
176513	//       "format": "uint32",
176514	//       "location": "query",
176515	//       "minimum": "0",
176516	//       "type": "integer"
176517	//     },
176518	//     "orderBy": {
176519	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
176520	//       "location": "query",
176521	//       "type": "string"
176522	//     },
176523	//     "pageToken": {
176524	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
176525	//       "location": "query",
176526	//       "type": "string"
176527	//     },
176528	//     "project": {
176529	//       "description": "Project ID for this request.",
176530	//       "location": "path",
176531	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176532	//       "required": true,
176533	//       "type": "string"
176534	//     },
176535	//     "returnPartialSuccess": {
176536	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
176537	//       "location": "query",
176538	//       "type": "boolean"
176539	//     }
176540	//   },
176541	//   "path": "{project}/aggregated/vpnGateways",
176542	//   "response": {
176543	//     "$ref": "VpnGatewayAggregatedList"
176544	//   },
176545	//   "scopes": [
176546	//     "https://www.googleapis.com/auth/cloud-platform",
176547	//     "https://www.googleapis.com/auth/compute",
176548	//     "https://www.googleapis.com/auth/compute.readonly"
176549	//   ]
176550	// }
176551
176552}
176553
176554// Pages invokes f for each page of results.
176555// A non-nil error returned from f will halt the iteration.
176556// The provided context supersedes any context provided to the Context method.
176557func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
176558	c.ctx_ = ctx
176559	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
176560	for {
176561		x, err := c.Do()
176562		if err != nil {
176563			return err
176564		}
176565		if err := f(x); err != nil {
176566			return err
176567		}
176568		if x.NextPageToken == "" {
176569			return nil
176570		}
176571		c.PageToken(x.NextPageToken)
176572	}
176573}
176574
176575// method id "compute.vpnGateways.delete":
176576
176577type VpnGatewaysDeleteCall struct {
176578	s          *Service
176579	project    string
176580	region     string
176581	vpnGateway string
176582	urlParams_ gensupport.URLParams
176583	ctx_       context.Context
176584	header_    http.Header
176585}
176586
176587// Delete: Deletes the specified VPN gateway.
176588func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
176589	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176590	c.project = project
176591	c.region = region
176592	c.vpnGateway = vpnGateway
176593	return c
176594}
176595
176596// RequestId sets the optional parameter "requestId": An optional
176597// request ID to identify requests. Specify a unique request ID so that
176598// if you must retry your request, the server will know to ignore the
176599// request if it has already been completed.
176600//
176601// For example, consider a situation where you make an initial request
176602// and the request times out. If you make the request again with the
176603// same request ID, the server can check if original operation with the
176604// same request ID was received, and if so, will ignore the second
176605// request. This prevents clients from accidentally creating duplicate
176606// commitments.
176607//
176608// The request ID must be a valid UUID with the exception that zero UUID
176609// is not supported (00000000-0000-0000-0000-000000000000).
176610func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
176611	c.urlParams_.Set("requestId", requestId)
176612	return c
176613}
176614
176615// Fields allows partial responses to be retrieved. See
176616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176617// for more information.
176618func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
176619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176620	return c
176621}
176622
176623// Context sets the context to be used in this call's Do method. Any
176624// pending HTTP request will be aborted if the provided context is
176625// canceled.
176626func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
176627	c.ctx_ = ctx
176628	return c
176629}
176630
176631// Header returns an http.Header that can be modified by the caller to
176632// add HTTP headers to the request.
176633func (c *VpnGatewaysDeleteCall) Header() http.Header {
176634	if c.header_ == nil {
176635		c.header_ = make(http.Header)
176636	}
176637	return c.header_
176638}
176639
176640func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
176641	reqHeaders := make(http.Header)
176642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
176643	for k, v := range c.header_ {
176644		reqHeaders[k] = v
176645	}
176646	reqHeaders.Set("User-Agent", c.s.userAgent())
176647	var body io.Reader = nil
176648	c.urlParams_.Set("alt", alt)
176649	c.urlParams_.Set("prettyPrint", "false")
176650	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
176651	urls += "?" + c.urlParams_.Encode()
176652	req, err := http.NewRequest("DELETE", urls, body)
176653	if err != nil {
176654		return nil, err
176655	}
176656	req.Header = reqHeaders
176657	googleapi.Expand(req.URL, map[string]string{
176658		"project":    c.project,
176659		"region":     c.region,
176660		"vpnGateway": c.vpnGateway,
176661	})
176662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176663}
176664
176665// Do executes the "compute.vpnGateways.delete" call.
176666// Exactly one of *Operation or error will be non-nil. Any non-2xx
176667// status code is an error. Response headers are in either
176668// *Operation.ServerResponse.Header or (if a response was returned at
176669// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176670// to check whether the returned error was because
176671// http.StatusNotModified was returned.
176672func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176673	gensupport.SetOptions(c.urlParams_, opts...)
176674	res, err := c.doRequest("json")
176675	if res != nil && res.StatusCode == http.StatusNotModified {
176676		if res.Body != nil {
176677			res.Body.Close()
176678		}
176679		return nil, &googleapi.Error{
176680			Code:   res.StatusCode,
176681			Header: res.Header,
176682		}
176683	}
176684	if err != nil {
176685		return nil, err
176686	}
176687	defer googleapi.CloseBody(res)
176688	if err := googleapi.CheckResponse(res); err != nil {
176689		return nil, err
176690	}
176691	ret := &Operation{
176692		ServerResponse: googleapi.ServerResponse{
176693			Header:         res.Header,
176694			HTTPStatusCode: res.StatusCode,
176695		},
176696	}
176697	target := &ret
176698	if err := gensupport.DecodeResponse(target, res); err != nil {
176699		return nil, err
176700	}
176701	return ret, nil
176702	// {
176703	//   "description": "Deletes the specified VPN gateway.",
176704	//   "httpMethod": "DELETE",
176705	//   "id": "compute.vpnGateways.delete",
176706	//   "parameterOrder": [
176707	//     "project",
176708	//     "region",
176709	//     "vpnGateway"
176710	//   ],
176711	//   "parameters": {
176712	//     "project": {
176713	//       "description": "Project ID for this request.",
176714	//       "location": "path",
176715	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176716	//       "required": true,
176717	//       "type": "string"
176718	//     },
176719	//     "region": {
176720	//       "description": "Name of the region for this request.",
176721	//       "location": "path",
176722	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
176723	//       "required": true,
176724	//       "type": "string"
176725	//     },
176726	//     "requestId": {
176727	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176728	//       "location": "query",
176729	//       "type": "string"
176730	//     },
176731	//     "vpnGateway": {
176732	//       "description": "Name of the VPN gateway to delete.",
176733	//       "location": "path",
176734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176735	//       "required": true,
176736	//       "type": "string"
176737	//     }
176738	//   },
176739	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
176740	//   "response": {
176741	//     "$ref": "Operation"
176742	//   },
176743	//   "scopes": [
176744	//     "https://www.googleapis.com/auth/cloud-platform",
176745	//     "https://www.googleapis.com/auth/compute"
176746	//   ]
176747	// }
176748
176749}
176750
176751// method id "compute.vpnGateways.get":
176752
176753type VpnGatewaysGetCall struct {
176754	s            *Service
176755	project      string
176756	region       string
176757	vpnGateway   string
176758	urlParams_   gensupport.URLParams
176759	ifNoneMatch_ string
176760	ctx_         context.Context
176761	header_      http.Header
176762}
176763
176764// Get: Returns the specified VPN gateway. Gets a list of available VPN
176765// gateways by making a list() request.
176766func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
176767	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176768	c.project = project
176769	c.region = region
176770	c.vpnGateway = vpnGateway
176771	return c
176772}
176773
176774// Fields allows partial responses to be retrieved. See
176775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176776// for more information.
176777func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
176778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176779	return c
176780}
176781
176782// IfNoneMatch sets the optional parameter which makes the operation
176783// fail if the object's ETag matches the given value. This is useful for
176784// getting updates only after the object has changed since the last
176785// request. Use googleapi.IsNotModified to check whether the response
176786// error from Do is the result of In-None-Match.
176787func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
176788	c.ifNoneMatch_ = entityTag
176789	return c
176790}
176791
176792// Context sets the context to be used in this call's Do method. Any
176793// pending HTTP request will be aborted if the provided context is
176794// canceled.
176795func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
176796	c.ctx_ = ctx
176797	return c
176798}
176799
176800// Header returns an http.Header that can be modified by the caller to
176801// add HTTP headers to the request.
176802func (c *VpnGatewaysGetCall) Header() http.Header {
176803	if c.header_ == nil {
176804		c.header_ = make(http.Header)
176805	}
176806	return c.header_
176807}
176808
176809func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
176810	reqHeaders := make(http.Header)
176811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
176812	for k, v := range c.header_ {
176813		reqHeaders[k] = v
176814	}
176815	reqHeaders.Set("User-Agent", c.s.userAgent())
176816	if c.ifNoneMatch_ != "" {
176817		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
176818	}
176819	var body io.Reader = nil
176820	c.urlParams_.Set("alt", alt)
176821	c.urlParams_.Set("prettyPrint", "false")
176822	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
176823	urls += "?" + c.urlParams_.Encode()
176824	req, err := http.NewRequest("GET", urls, body)
176825	if err != nil {
176826		return nil, err
176827	}
176828	req.Header = reqHeaders
176829	googleapi.Expand(req.URL, map[string]string{
176830		"project":    c.project,
176831		"region":     c.region,
176832		"vpnGateway": c.vpnGateway,
176833	})
176834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176835}
176836
176837// Do executes the "compute.vpnGateways.get" call.
176838// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
176839// status code is an error. Response headers are in either
176840// *VpnGateway.ServerResponse.Header or (if a response was returned at
176841// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176842// to check whether the returned error was because
176843// http.StatusNotModified was returned.
176844func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
176845	gensupport.SetOptions(c.urlParams_, opts...)
176846	res, err := c.doRequest("json")
176847	if res != nil && res.StatusCode == http.StatusNotModified {
176848		if res.Body != nil {
176849			res.Body.Close()
176850		}
176851		return nil, &googleapi.Error{
176852			Code:   res.StatusCode,
176853			Header: res.Header,
176854		}
176855	}
176856	if err != nil {
176857		return nil, err
176858	}
176859	defer googleapi.CloseBody(res)
176860	if err := googleapi.CheckResponse(res); err != nil {
176861		return nil, err
176862	}
176863	ret := &VpnGateway{
176864		ServerResponse: googleapi.ServerResponse{
176865			Header:         res.Header,
176866			HTTPStatusCode: res.StatusCode,
176867		},
176868	}
176869	target := &ret
176870	if err := gensupport.DecodeResponse(target, res); err != nil {
176871		return nil, err
176872	}
176873	return ret, nil
176874	// {
176875	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
176876	//   "httpMethod": "GET",
176877	//   "id": "compute.vpnGateways.get",
176878	//   "parameterOrder": [
176879	//     "project",
176880	//     "region",
176881	//     "vpnGateway"
176882	//   ],
176883	//   "parameters": {
176884	//     "project": {
176885	//       "description": "Project ID for this request.",
176886	//       "location": "path",
176887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176888	//       "required": true,
176889	//       "type": "string"
176890	//     },
176891	//     "region": {
176892	//       "description": "Name of the region for this request.",
176893	//       "location": "path",
176894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
176895	//       "required": true,
176896	//       "type": "string"
176897	//     },
176898	//     "vpnGateway": {
176899	//       "description": "Name of the VPN gateway to return.",
176900	//       "location": "path",
176901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176902	//       "required": true,
176903	//       "type": "string"
176904	//     }
176905	//   },
176906	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
176907	//   "response": {
176908	//     "$ref": "VpnGateway"
176909	//   },
176910	//   "scopes": [
176911	//     "https://www.googleapis.com/auth/cloud-platform",
176912	//     "https://www.googleapis.com/auth/compute",
176913	//     "https://www.googleapis.com/auth/compute.readonly"
176914	//   ]
176915	// }
176916
176917}
176918
176919// method id "compute.vpnGateways.getStatus":
176920
176921type VpnGatewaysGetStatusCall struct {
176922	s            *Service
176923	project      string
176924	region       string
176925	vpnGateway   string
176926	urlParams_   gensupport.URLParams
176927	ifNoneMatch_ string
176928	ctx_         context.Context
176929	header_      http.Header
176930}
176931
176932// GetStatus: Returns the status for the specified VPN gateway.
176933func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
176934	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176935	c.project = project
176936	c.region = region
176937	c.vpnGateway = vpnGateway
176938	return c
176939}
176940
176941// Fields allows partial responses to be retrieved. See
176942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176943// for more information.
176944func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
176945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176946	return c
176947}
176948
176949// IfNoneMatch sets the optional parameter which makes the operation
176950// fail if the object's ETag matches the given value. This is useful for
176951// getting updates only after the object has changed since the last
176952// request. Use googleapi.IsNotModified to check whether the response
176953// error from Do is the result of In-None-Match.
176954func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
176955	c.ifNoneMatch_ = entityTag
176956	return c
176957}
176958
176959// Context sets the context to be used in this call's Do method. Any
176960// pending HTTP request will be aborted if the provided context is
176961// canceled.
176962func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
176963	c.ctx_ = ctx
176964	return c
176965}
176966
176967// Header returns an http.Header that can be modified by the caller to
176968// add HTTP headers to the request.
176969func (c *VpnGatewaysGetStatusCall) Header() http.Header {
176970	if c.header_ == nil {
176971		c.header_ = make(http.Header)
176972	}
176973	return c.header_
176974}
176975
176976func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
176977	reqHeaders := make(http.Header)
176978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
176979	for k, v := range c.header_ {
176980		reqHeaders[k] = v
176981	}
176982	reqHeaders.Set("User-Agent", c.s.userAgent())
176983	if c.ifNoneMatch_ != "" {
176984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
176985	}
176986	var body io.Reader = nil
176987	c.urlParams_.Set("alt", alt)
176988	c.urlParams_.Set("prettyPrint", "false")
176989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
176990	urls += "?" + c.urlParams_.Encode()
176991	req, err := http.NewRequest("GET", urls, body)
176992	if err != nil {
176993		return nil, err
176994	}
176995	req.Header = reqHeaders
176996	googleapi.Expand(req.URL, map[string]string{
176997		"project":    c.project,
176998		"region":     c.region,
176999		"vpnGateway": c.vpnGateway,
177000	})
177001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177002}
177003
177004// Do executes the "compute.vpnGateways.getStatus" call.
177005// Exactly one of *VpnGatewaysGetStatusResponse or error will be
177006// non-nil. Any non-2xx status code is an error. Response headers are in
177007// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
177008// response was returned at all) in error.(*googleapi.Error).Header. Use
177009// googleapi.IsNotModified to check whether the returned error was
177010// because http.StatusNotModified was returned.
177011func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
177012	gensupport.SetOptions(c.urlParams_, opts...)
177013	res, err := c.doRequest("json")
177014	if res != nil && res.StatusCode == http.StatusNotModified {
177015		if res.Body != nil {
177016			res.Body.Close()
177017		}
177018		return nil, &googleapi.Error{
177019			Code:   res.StatusCode,
177020			Header: res.Header,
177021		}
177022	}
177023	if err != nil {
177024		return nil, err
177025	}
177026	defer googleapi.CloseBody(res)
177027	if err := googleapi.CheckResponse(res); err != nil {
177028		return nil, err
177029	}
177030	ret := &VpnGatewaysGetStatusResponse{
177031		ServerResponse: googleapi.ServerResponse{
177032			Header:         res.Header,
177033			HTTPStatusCode: res.StatusCode,
177034		},
177035	}
177036	target := &ret
177037	if err := gensupport.DecodeResponse(target, res); err != nil {
177038		return nil, err
177039	}
177040	return ret, nil
177041	// {
177042	//   "description": "Returns the status for the specified VPN gateway.",
177043	//   "httpMethod": "GET",
177044	//   "id": "compute.vpnGateways.getStatus",
177045	//   "parameterOrder": [
177046	//     "project",
177047	//     "region",
177048	//     "vpnGateway"
177049	//   ],
177050	//   "parameters": {
177051	//     "project": {
177052	//       "description": "Project ID for this request.",
177053	//       "location": "path",
177054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177055	//       "required": true,
177056	//       "type": "string"
177057	//     },
177058	//     "region": {
177059	//       "description": "Name of the region for this request.",
177060	//       "location": "path",
177061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177062	//       "required": true,
177063	//       "type": "string"
177064	//     },
177065	//     "vpnGateway": {
177066	//       "description": "Name of the VPN gateway to return.",
177067	//       "location": "path",
177068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177069	//       "required": true,
177070	//       "type": "string"
177071	//     }
177072	//   },
177073	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
177074	//   "response": {
177075	//     "$ref": "VpnGatewaysGetStatusResponse"
177076	//   },
177077	//   "scopes": [
177078	//     "https://www.googleapis.com/auth/cloud-platform",
177079	//     "https://www.googleapis.com/auth/compute",
177080	//     "https://www.googleapis.com/auth/compute.readonly"
177081	//   ]
177082	// }
177083
177084}
177085
177086// method id "compute.vpnGateways.insert":
177087
177088type VpnGatewaysInsertCall struct {
177089	s          *Service
177090	project    string
177091	region     string
177092	vpngateway *VpnGateway
177093	urlParams_ gensupport.URLParams
177094	ctx_       context.Context
177095	header_    http.Header
177096}
177097
177098// Insert: Creates a VPN gateway in the specified project and region
177099// using the data included in the request.
177100func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
177101	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177102	c.project = project
177103	c.region = region
177104	c.vpngateway = vpngateway
177105	return c
177106}
177107
177108// RequestId sets the optional parameter "requestId": An optional
177109// request ID to identify requests. Specify a unique request ID so that
177110// if you must retry your request, the server will know to ignore the
177111// request if it has already been completed.
177112//
177113// For example, consider a situation where you make an initial request
177114// and the request times out. If you make the request again with the
177115// same request ID, the server can check if original operation with the
177116// same request ID was received, and if so, will ignore the second
177117// request. This prevents clients from accidentally creating duplicate
177118// commitments.
177119//
177120// The request ID must be a valid UUID with the exception that zero UUID
177121// is not supported (00000000-0000-0000-0000-000000000000).
177122func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
177123	c.urlParams_.Set("requestId", requestId)
177124	return c
177125}
177126
177127// Fields allows partial responses to be retrieved. See
177128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177129// for more information.
177130func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
177131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177132	return c
177133}
177134
177135// Context sets the context to be used in this call's Do method. Any
177136// pending HTTP request will be aborted if the provided context is
177137// canceled.
177138func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
177139	c.ctx_ = ctx
177140	return c
177141}
177142
177143// Header returns an http.Header that can be modified by the caller to
177144// add HTTP headers to the request.
177145func (c *VpnGatewaysInsertCall) Header() http.Header {
177146	if c.header_ == nil {
177147		c.header_ = make(http.Header)
177148	}
177149	return c.header_
177150}
177151
177152func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
177153	reqHeaders := make(http.Header)
177154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
177155	for k, v := range c.header_ {
177156		reqHeaders[k] = v
177157	}
177158	reqHeaders.Set("User-Agent", c.s.userAgent())
177159	var body io.Reader = nil
177160	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
177161	if err != nil {
177162		return nil, err
177163	}
177164	reqHeaders.Set("Content-Type", "application/json")
177165	c.urlParams_.Set("alt", alt)
177166	c.urlParams_.Set("prettyPrint", "false")
177167	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
177168	urls += "?" + c.urlParams_.Encode()
177169	req, err := http.NewRequest("POST", urls, body)
177170	if err != nil {
177171		return nil, err
177172	}
177173	req.Header = reqHeaders
177174	googleapi.Expand(req.URL, map[string]string{
177175		"project": c.project,
177176		"region":  c.region,
177177	})
177178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177179}
177180
177181// Do executes the "compute.vpnGateways.insert" call.
177182// Exactly one of *Operation or error will be non-nil. Any non-2xx
177183// status code is an error. Response headers are in either
177184// *Operation.ServerResponse.Header or (if a response was returned at
177185// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
177186// to check whether the returned error was because
177187// http.StatusNotModified was returned.
177188func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
177189	gensupport.SetOptions(c.urlParams_, opts...)
177190	res, err := c.doRequest("json")
177191	if res != nil && res.StatusCode == http.StatusNotModified {
177192		if res.Body != nil {
177193			res.Body.Close()
177194		}
177195		return nil, &googleapi.Error{
177196			Code:   res.StatusCode,
177197			Header: res.Header,
177198		}
177199	}
177200	if err != nil {
177201		return nil, err
177202	}
177203	defer googleapi.CloseBody(res)
177204	if err := googleapi.CheckResponse(res); err != nil {
177205		return nil, err
177206	}
177207	ret := &Operation{
177208		ServerResponse: googleapi.ServerResponse{
177209			Header:         res.Header,
177210			HTTPStatusCode: res.StatusCode,
177211		},
177212	}
177213	target := &ret
177214	if err := gensupport.DecodeResponse(target, res); err != nil {
177215		return nil, err
177216	}
177217	return ret, nil
177218	// {
177219	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
177220	//   "httpMethod": "POST",
177221	//   "id": "compute.vpnGateways.insert",
177222	//   "parameterOrder": [
177223	//     "project",
177224	//     "region"
177225	//   ],
177226	//   "parameters": {
177227	//     "project": {
177228	//       "description": "Project ID for this request.",
177229	//       "location": "path",
177230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177231	//       "required": true,
177232	//       "type": "string"
177233	//     },
177234	//     "region": {
177235	//       "description": "Name of the region for this request.",
177236	//       "location": "path",
177237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177238	//       "required": true,
177239	//       "type": "string"
177240	//     },
177241	//     "requestId": {
177242	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
177243	//       "location": "query",
177244	//       "type": "string"
177245	//     }
177246	//   },
177247	//   "path": "{project}/regions/{region}/vpnGateways",
177248	//   "request": {
177249	//     "$ref": "VpnGateway"
177250	//   },
177251	//   "response": {
177252	//     "$ref": "Operation"
177253	//   },
177254	//   "scopes": [
177255	//     "https://www.googleapis.com/auth/cloud-platform",
177256	//     "https://www.googleapis.com/auth/compute"
177257	//   ]
177258	// }
177259
177260}
177261
177262// method id "compute.vpnGateways.list":
177263
177264type VpnGatewaysListCall struct {
177265	s            *Service
177266	project      string
177267	region       string
177268	urlParams_   gensupport.URLParams
177269	ifNoneMatch_ string
177270	ctx_         context.Context
177271	header_      http.Header
177272}
177273
177274// List: Retrieves a list of VPN gateways available to the specified
177275// project and region.
177276func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
177277	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177278	c.project = project
177279	c.region = region
177280	return c
177281}
177282
177283// Filter sets the optional parameter "filter": A filter expression that
177284// filters resources listed in the response. The expression must specify
177285// the field name, a comparison operator, and the value that you want to
177286// use for filtering. The value must be a string, a number, or a
177287// boolean. The comparison operator must be either `=`, `!=`, `>`, or
177288// `<`.
177289//
177290// For example, if you are filtering Compute Engine instances, you can
177291// exclude instances named `example-instance` by specifying `name !=
177292// example-instance`.
177293//
177294// You can also filter nested fields. For example, you could specify
177295// `scheduling.automaticRestart = false` to include instances only if
177296// they are not scheduled for automatic restarts. You can use filtering
177297// on nested fields to filter based on resource labels.
177298//
177299// To filter on multiple expressions, provide each separate expression
177300// within parentheses. For example: ``` (scheduling.automaticRestart =
177301// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
177302// is an `AND` expression. However, you can include `AND` and `OR`
177303// expressions explicitly. For example: ``` (cpuPlatform = "Intel
177304// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
177305// (scheduling.automaticRestart = true) ```
177306func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
177307	c.urlParams_.Set("filter", filter)
177308	return c
177309}
177310
177311// MaxResults sets the optional parameter "maxResults": The maximum
177312// number of results per page that should be returned. If the number of
177313// available results is larger than `maxResults`, Compute Engine returns
177314// a `nextPageToken` that can be used to get the next page of results in
177315// subsequent list requests. Acceptable values are `0` to `500`,
177316// inclusive. (Default: `500`)
177317func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
177318	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
177319	return c
177320}
177321
177322// OrderBy sets the optional parameter "orderBy": Sorts list results by
177323// a certain order. By default, results are returned in alphanumerical
177324// order based on the resource name.
177325//
177326// You can also sort results in descending order based on the creation
177327// timestamp using `orderBy="creationTimestamp desc". This sorts
177328// results based on the `creationTimestamp` field in reverse
177329// chronological order (newest result first). Use this to sort resources
177330// like operations so that the newest operation is returned
177331// first.
177332//
177333// Currently, only sorting by `name` or `creationTimestamp desc` is
177334// supported.
177335func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
177336	c.urlParams_.Set("orderBy", orderBy)
177337	return c
177338}
177339
177340// PageToken sets the optional parameter "pageToken": Specifies a page
177341// token to use. Set `pageToken` to the `nextPageToken` returned by a
177342// previous list request to get the next page of results.
177343func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
177344	c.urlParams_.Set("pageToken", pageToken)
177345	return c
177346}
177347
177348// ReturnPartialSuccess sets the optional parameter
177349// "returnPartialSuccess": Opt-in for partial success behavior which
177350// provides partial results in case of failure. The default value is
177351// false and the logic is the same as today.
177352func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall {
177353	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
177354	return c
177355}
177356
177357// Fields allows partial responses to be retrieved. See
177358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177359// for more information.
177360func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
177361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177362	return c
177363}
177364
177365// IfNoneMatch sets the optional parameter which makes the operation
177366// fail if the object's ETag matches the given value. This is useful for
177367// getting updates only after the object has changed since the last
177368// request. Use googleapi.IsNotModified to check whether the response
177369// error from Do is the result of In-None-Match.
177370func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
177371	c.ifNoneMatch_ = entityTag
177372	return c
177373}
177374
177375// Context sets the context to be used in this call's Do method. Any
177376// pending HTTP request will be aborted if the provided context is
177377// canceled.
177378func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
177379	c.ctx_ = ctx
177380	return c
177381}
177382
177383// Header returns an http.Header that can be modified by the caller to
177384// add HTTP headers to the request.
177385func (c *VpnGatewaysListCall) Header() http.Header {
177386	if c.header_ == nil {
177387		c.header_ = make(http.Header)
177388	}
177389	return c.header_
177390}
177391
177392func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
177393	reqHeaders := make(http.Header)
177394	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
177395	for k, v := range c.header_ {
177396		reqHeaders[k] = v
177397	}
177398	reqHeaders.Set("User-Agent", c.s.userAgent())
177399	if c.ifNoneMatch_ != "" {
177400		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
177401	}
177402	var body io.Reader = nil
177403	c.urlParams_.Set("alt", alt)
177404	c.urlParams_.Set("prettyPrint", "false")
177405	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
177406	urls += "?" + c.urlParams_.Encode()
177407	req, err := http.NewRequest("GET", urls, body)
177408	if err != nil {
177409		return nil, err
177410	}
177411	req.Header = reqHeaders
177412	googleapi.Expand(req.URL, map[string]string{
177413		"project": c.project,
177414		"region":  c.region,
177415	})
177416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177417}
177418
177419// Do executes the "compute.vpnGateways.list" call.
177420// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
177421// status code is an error. Response headers are in either
177422// *VpnGatewayList.ServerResponse.Header or (if a response was returned
177423// at all) in error.(*googleapi.Error).Header. Use
177424// googleapi.IsNotModified to check whether the returned error was
177425// because http.StatusNotModified was returned.
177426func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
177427	gensupport.SetOptions(c.urlParams_, opts...)
177428	res, err := c.doRequest("json")
177429	if res != nil && res.StatusCode == http.StatusNotModified {
177430		if res.Body != nil {
177431			res.Body.Close()
177432		}
177433		return nil, &googleapi.Error{
177434			Code:   res.StatusCode,
177435			Header: res.Header,
177436		}
177437	}
177438	if err != nil {
177439		return nil, err
177440	}
177441	defer googleapi.CloseBody(res)
177442	if err := googleapi.CheckResponse(res); err != nil {
177443		return nil, err
177444	}
177445	ret := &VpnGatewayList{
177446		ServerResponse: googleapi.ServerResponse{
177447			Header:         res.Header,
177448			HTTPStatusCode: res.StatusCode,
177449		},
177450	}
177451	target := &ret
177452	if err := gensupport.DecodeResponse(target, res); err != nil {
177453		return nil, err
177454	}
177455	return ret, nil
177456	// {
177457	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
177458	//   "httpMethod": "GET",
177459	//   "id": "compute.vpnGateways.list",
177460	//   "parameterOrder": [
177461	//     "project",
177462	//     "region"
177463	//   ],
177464	//   "parameters": {
177465	//     "filter": {
177466	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
177467	//       "location": "query",
177468	//       "type": "string"
177469	//     },
177470	//     "maxResults": {
177471	//       "default": "500",
177472	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
177473	//       "format": "uint32",
177474	//       "location": "query",
177475	//       "minimum": "0",
177476	//       "type": "integer"
177477	//     },
177478	//     "orderBy": {
177479	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
177480	//       "location": "query",
177481	//       "type": "string"
177482	//     },
177483	//     "pageToken": {
177484	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
177485	//       "location": "query",
177486	//       "type": "string"
177487	//     },
177488	//     "project": {
177489	//       "description": "Project ID for this request.",
177490	//       "location": "path",
177491	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177492	//       "required": true,
177493	//       "type": "string"
177494	//     },
177495	//     "region": {
177496	//       "description": "Name of the region for this request.",
177497	//       "location": "path",
177498	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177499	//       "required": true,
177500	//       "type": "string"
177501	//     },
177502	//     "returnPartialSuccess": {
177503	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
177504	//       "location": "query",
177505	//       "type": "boolean"
177506	//     }
177507	//   },
177508	//   "path": "{project}/regions/{region}/vpnGateways",
177509	//   "response": {
177510	//     "$ref": "VpnGatewayList"
177511	//   },
177512	//   "scopes": [
177513	//     "https://www.googleapis.com/auth/cloud-platform",
177514	//     "https://www.googleapis.com/auth/compute",
177515	//     "https://www.googleapis.com/auth/compute.readonly"
177516	//   ]
177517	// }
177518
177519}
177520
177521// Pages invokes f for each page of results.
177522// A non-nil error returned from f will halt the iteration.
177523// The provided context supersedes any context provided to the Context method.
177524func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
177525	c.ctx_ = ctx
177526	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
177527	for {
177528		x, err := c.Do()
177529		if err != nil {
177530			return err
177531		}
177532		if err := f(x); err != nil {
177533			return err
177534		}
177535		if x.NextPageToken == "" {
177536			return nil
177537		}
177538		c.PageToken(x.NextPageToken)
177539	}
177540}
177541
177542// method id "compute.vpnGateways.setLabels":
177543
177544type VpnGatewaysSetLabelsCall struct {
177545	s                      *Service
177546	project                string
177547	region                 string
177548	resource               string
177549	regionsetlabelsrequest *RegionSetLabelsRequest
177550	urlParams_             gensupport.URLParams
177551	ctx_                   context.Context
177552	header_                http.Header
177553}
177554
177555// SetLabels: Sets the labels on a VpnGateway. To learn more about
177556// labels, read the Labeling Resources documentation.
177557func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
177558	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177559	c.project = project
177560	c.region = region
177561	c.resource = resource
177562	c.regionsetlabelsrequest = regionsetlabelsrequest
177563	return c
177564}
177565
177566// RequestId sets the optional parameter "requestId": An optional
177567// request ID to identify requests. Specify a unique request ID so that
177568// if you must retry your request, the server will know to ignore the
177569// request if it has already been completed.
177570//
177571// For example, consider a situation where you make an initial request
177572// and the request times out. If you make the request again with the
177573// same request ID, the server can check if original operation with the
177574// same request ID was received, and if so, will ignore the second
177575// request. This prevents clients from accidentally creating duplicate
177576// commitments.
177577//
177578// The request ID must be a valid UUID with the exception that zero UUID
177579// is not supported (00000000-0000-0000-0000-000000000000).
177580func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
177581	c.urlParams_.Set("requestId", requestId)
177582	return c
177583}
177584
177585// Fields allows partial responses to be retrieved. See
177586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177587// for more information.
177588func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
177589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177590	return c
177591}
177592
177593// Context sets the context to be used in this call's Do method. Any
177594// pending HTTP request will be aborted if the provided context is
177595// canceled.
177596func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
177597	c.ctx_ = ctx
177598	return c
177599}
177600
177601// Header returns an http.Header that can be modified by the caller to
177602// add HTTP headers to the request.
177603func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
177604	if c.header_ == nil {
177605		c.header_ = make(http.Header)
177606	}
177607	return c.header_
177608}
177609
177610func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
177611	reqHeaders := make(http.Header)
177612	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
177613	for k, v := range c.header_ {
177614		reqHeaders[k] = v
177615	}
177616	reqHeaders.Set("User-Agent", c.s.userAgent())
177617	var body io.Reader = nil
177618	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
177619	if err != nil {
177620		return nil, err
177621	}
177622	reqHeaders.Set("Content-Type", "application/json")
177623	c.urlParams_.Set("alt", alt)
177624	c.urlParams_.Set("prettyPrint", "false")
177625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/setLabels")
177626	urls += "?" + c.urlParams_.Encode()
177627	req, err := http.NewRequest("POST", urls, body)
177628	if err != nil {
177629		return nil, err
177630	}
177631	req.Header = reqHeaders
177632	googleapi.Expand(req.URL, map[string]string{
177633		"project":  c.project,
177634		"region":   c.region,
177635		"resource": c.resource,
177636	})
177637	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177638}
177639
177640// Do executes the "compute.vpnGateways.setLabels" call.
177641// Exactly one of *Operation or error will be non-nil. Any non-2xx
177642// status code is an error. Response headers are in either
177643// *Operation.ServerResponse.Header or (if a response was returned at
177644// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
177645// to check whether the returned error was because
177646// http.StatusNotModified was returned.
177647func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
177648	gensupport.SetOptions(c.urlParams_, opts...)
177649	res, err := c.doRequest("json")
177650	if res != nil && res.StatusCode == http.StatusNotModified {
177651		if res.Body != nil {
177652			res.Body.Close()
177653		}
177654		return nil, &googleapi.Error{
177655			Code:   res.StatusCode,
177656			Header: res.Header,
177657		}
177658	}
177659	if err != nil {
177660		return nil, err
177661	}
177662	defer googleapi.CloseBody(res)
177663	if err := googleapi.CheckResponse(res); err != nil {
177664		return nil, err
177665	}
177666	ret := &Operation{
177667		ServerResponse: googleapi.ServerResponse{
177668			Header:         res.Header,
177669			HTTPStatusCode: res.StatusCode,
177670		},
177671	}
177672	target := &ret
177673	if err := gensupport.DecodeResponse(target, res); err != nil {
177674		return nil, err
177675	}
177676	return ret, nil
177677	// {
177678	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
177679	//   "httpMethod": "POST",
177680	//   "id": "compute.vpnGateways.setLabels",
177681	//   "parameterOrder": [
177682	//     "project",
177683	//     "region",
177684	//     "resource"
177685	//   ],
177686	//   "parameters": {
177687	//     "project": {
177688	//       "description": "Project ID for this request.",
177689	//       "location": "path",
177690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177691	//       "required": true,
177692	//       "type": "string"
177693	//     },
177694	//     "region": {
177695	//       "description": "The region for this request.",
177696	//       "location": "path",
177697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177698	//       "required": true,
177699	//       "type": "string"
177700	//     },
177701	//     "requestId": {
177702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
177703	//       "location": "query",
177704	//       "type": "string"
177705	//     },
177706	//     "resource": {
177707	//       "description": "Name or id of the resource for this request.",
177708	//       "location": "path",
177709	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177710	//       "required": true,
177711	//       "type": "string"
177712	//     }
177713	//   },
177714	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/setLabels",
177715	//   "request": {
177716	//     "$ref": "RegionSetLabelsRequest"
177717	//   },
177718	//   "response": {
177719	//     "$ref": "Operation"
177720	//   },
177721	//   "scopes": [
177722	//     "https://www.googleapis.com/auth/cloud-platform",
177723	//     "https://www.googleapis.com/auth/compute"
177724	//   ]
177725	// }
177726
177727}
177728
177729// method id "compute.vpnGateways.testIamPermissions":
177730
177731type VpnGatewaysTestIamPermissionsCall struct {
177732	s                      *Service
177733	project                string
177734	region                 string
177735	resource               string
177736	testpermissionsrequest *TestPermissionsRequest
177737	urlParams_             gensupport.URLParams
177738	ctx_                   context.Context
177739	header_                http.Header
177740}
177741
177742// TestIamPermissions: Returns permissions that a caller has on the
177743// specified resource.
177744func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
177745	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177746	c.project = project
177747	c.region = region
177748	c.resource = resource
177749	c.testpermissionsrequest = testpermissionsrequest
177750	return c
177751}
177752
177753// Fields allows partial responses to be retrieved. See
177754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177755// for more information.
177756func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
177757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177758	return c
177759}
177760
177761// Context sets the context to be used in this call's Do method. Any
177762// pending HTTP request will be aborted if the provided context is
177763// canceled.
177764func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
177765	c.ctx_ = ctx
177766	return c
177767}
177768
177769// Header returns an http.Header that can be modified by the caller to
177770// add HTTP headers to the request.
177771func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
177772	if c.header_ == nil {
177773		c.header_ = make(http.Header)
177774	}
177775	return c.header_
177776}
177777
177778func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
177779	reqHeaders := make(http.Header)
177780	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
177781	for k, v := range c.header_ {
177782		reqHeaders[k] = v
177783	}
177784	reqHeaders.Set("User-Agent", c.s.userAgent())
177785	var body io.Reader = nil
177786	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
177787	if err != nil {
177788		return nil, err
177789	}
177790	reqHeaders.Set("Content-Type", "application/json")
177791	c.urlParams_.Set("alt", alt)
177792	c.urlParams_.Set("prettyPrint", "false")
177793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
177794	urls += "?" + c.urlParams_.Encode()
177795	req, err := http.NewRequest("POST", urls, body)
177796	if err != nil {
177797		return nil, err
177798	}
177799	req.Header = reqHeaders
177800	googleapi.Expand(req.URL, map[string]string{
177801		"project":  c.project,
177802		"region":   c.region,
177803		"resource": c.resource,
177804	})
177805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177806}
177807
177808// Do executes the "compute.vpnGateways.testIamPermissions" call.
177809// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
177810// non-2xx status code is an error. Response headers are in either
177811// *TestPermissionsResponse.ServerResponse.Header or (if a response was
177812// returned at all) in error.(*googleapi.Error).Header. Use
177813// googleapi.IsNotModified to check whether the returned error was
177814// because http.StatusNotModified was returned.
177815func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
177816	gensupport.SetOptions(c.urlParams_, opts...)
177817	res, err := c.doRequest("json")
177818	if res != nil && res.StatusCode == http.StatusNotModified {
177819		if res.Body != nil {
177820			res.Body.Close()
177821		}
177822		return nil, &googleapi.Error{
177823			Code:   res.StatusCode,
177824			Header: res.Header,
177825		}
177826	}
177827	if err != nil {
177828		return nil, err
177829	}
177830	defer googleapi.CloseBody(res)
177831	if err := googleapi.CheckResponse(res); err != nil {
177832		return nil, err
177833	}
177834	ret := &TestPermissionsResponse{
177835		ServerResponse: googleapi.ServerResponse{
177836			Header:         res.Header,
177837			HTTPStatusCode: res.StatusCode,
177838		},
177839	}
177840	target := &ret
177841	if err := gensupport.DecodeResponse(target, res); err != nil {
177842		return nil, err
177843	}
177844	return ret, nil
177845	// {
177846	//   "description": "Returns permissions that a caller has on the specified resource.",
177847	//   "httpMethod": "POST",
177848	//   "id": "compute.vpnGateways.testIamPermissions",
177849	//   "parameterOrder": [
177850	//     "project",
177851	//     "region",
177852	//     "resource"
177853	//   ],
177854	//   "parameters": {
177855	//     "project": {
177856	//       "description": "Project ID for this request.",
177857	//       "location": "path",
177858	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177859	//       "required": true,
177860	//       "type": "string"
177861	//     },
177862	//     "region": {
177863	//       "description": "The name of the region for this request.",
177864	//       "location": "path",
177865	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177866	//       "required": true,
177867	//       "type": "string"
177868	//     },
177869	//     "resource": {
177870	//       "description": "Name or id of the resource for this request.",
177871	//       "location": "path",
177872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177873	//       "required": true,
177874	//       "type": "string"
177875	//     }
177876	//   },
177877	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
177878	//   "request": {
177879	//     "$ref": "TestPermissionsRequest"
177880	//   },
177881	//   "response": {
177882	//     "$ref": "TestPermissionsResponse"
177883	//   },
177884	//   "scopes": [
177885	//     "https://www.googleapis.com/auth/cloud-platform",
177886	//     "https://www.googleapis.com/auth/compute",
177887	//     "https://www.googleapis.com/auth/compute.readonly"
177888	//   ]
177889	// }
177890
177891}
177892
177893// method id "compute.vpnTunnels.aggregatedList":
177894
177895type VpnTunnelsAggregatedListCall struct {
177896	s            *Service
177897	project      string
177898	urlParams_   gensupport.URLParams
177899	ifNoneMatch_ string
177900	ctx_         context.Context
177901	header_      http.Header
177902}
177903
177904// AggregatedList: Retrieves an aggregated list of VPN tunnels.
177905func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
177906	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177907	c.project = project
177908	return c
177909}
177910
177911// Filter sets the optional parameter "filter": A filter expression that
177912// filters resources listed in the response. The expression must specify
177913// the field name, a comparison operator, and the value that you want to
177914// use for filtering. The value must be a string, a number, or a
177915// boolean. The comparison operator must be either `=`, `!=`, `>`, or
177916// `<`.
177917//
177918// For example, if you are filtering Compute Engine instances, you can
177919// exclude instances named `example-instance` by specifying `name !=
177920// example-instance`.
177921//
177922// You can also filter nested fields. For example, you could specify
177923// `scheduling.automaticRestart = false` to include instances only if
177924// they are not scheduled for automatic restarts. You can use filtering
177925// on nested fields to filter based on resource labels.
177926//
177927// To filter on multiple expressions, provide each separate expression
177928// within parentheses. For example: ``` (scheduling.automaticRestart =
177929// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
177930// is an `AND` expression. However, you can include `AND` and `OR`
177931// expressions explicitly. For example: ``` (cpuPlatform = "Intel
177932// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
177933// (scheduling.automaticRestart = true) ```
177934func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
177935	c.urlParams_.Set("filter", filter)
177936	return c
177937}
177938
177939// IncludeAllScopes sets the optional parameter "includeAllScopes":
177940// Indicates whether every visible scope for each scope type (zone,
177941// region, global) should be included in the response. For new resource
177942// types added after this field, the flag has no effect as new resource
177943// types will always include every visible scope for each scope type in
177944// response. For resource types which predate this field, if this flag
177945// is omitted or false, only scopes of the scope types where the
177946// resource type is expected to be found will be included.
177947func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
177948	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
177949	return c
177950}
177951
177952// MaxResults sets the optional parameter "maxResults": The maximum
177953// number of results per page that should be returned. If the number of
177954// available results is larger than `maxResults`, Compute Engine returns
177955// a `nextPageToken` that can be used to get the next page of results in
177956// subsequent list requests. Acceptable values are `0` to `500`,
177957// inclusive. (Default: `500`)
177958func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
177959	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
177960	return c
177961}
177962
177963// OrderBy sets the optional parameter "orderBy": Sorts list results by
177964// a certain order. By default, results are returned in alphanumerical
177965// order based on the resource name.
177966//
177967// You can also sort results in descending order based on the creation
177968// timestamp using `orderBy="creationTimestamp desc". This sorts
177969// results based on the `creationTimestamp` field in reverse
177970// chronological order (newest result first). Use this to sort resources
177971// like operations so that the newest operation is returned
177972// first.
177973//
177974// Currently, only sorting by `name` or `creationTimestamp desc` is
177975// supported.
177976func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
177977	c.urlParams_.Set("orderBy", orderBy)
177978	return c
177979}
177980
177981// PageToken sets the optional parameter "pageToken": Specifies a page
177982// token to use. Set `pageToken` to the `nextPageToken` returned by a
177983// previous list request to get the next page of results.
177984func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
177985	c.urlParams_.Set("pageToken", pageToken)
177986	return c
177987}
177988
177989// ReturnPartialSuccess sets the optional parameter
177990// "returnPartialSuccess": Opt-in for partial success behavior which
177991// provides partial results in case of failure. The default value is
177992// false and the logic is the same as today.
177993func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall {
177994	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
177995	return c
177996}
177997
177998// Fields allows partial responses to be retrieved. See
177999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178000// for more information.
178001func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
178002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178003	return c
178004}
178005
178006// IfNoneMatch sets the optional parameter which makes the operation
178007// fail if the object's ETag matches the given value. This is useful for
178008// getting updates only after the object has changed since the last
178009// request. Use googleapi.IsNotModified to check whether the response
178010// error from Do is the result of In-None-Match.
178011func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
178012	c.ifNoneMatch_ = entityTag
178013	return c
178014}
178015
178016// Context sets the context to be used in this call's Do method. Any
178017// pending HTTP request will be aborted if the provided context is
178018// canceled.
178019func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
178020	c.ctx_ = ctx
178021	return c
178022}
178023
178024// Header returns an http.Header that can be modified by the caller to
178025// add HTTP headers to the request.
178026func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
178027	if c.header_ == nil {
178028		c.header_ = make(http.Header)
178029	}
178030	return c.header_
178031}
178032
178033func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
178034	reqHeaders := make(http.Header)
178035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
178036	for k, v := range c.header_ {
178037		reqHeaders[k] = v
178038	}
178039	reqHeaders.Set("User-Agent", c.s.userAgent())
178040	if c.ifNoneMatch_ != "" {
178041		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
178042	}
178043	var body io.Reader = nil
178044	c.urlParams_.Set("alt", alt)
178045	c.urlParams_.Set("prettyPrint", "false")
178046	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
178047	urls += "?" + c.urlParams_.Encode()
178048	req, err := http.NewRequest("GET", urls, body)
178049	if err != nil {
178050		return nil, err
178051	}
178052	req.Header = reqHeaders
178053	googleapi.Expand(req.URL, map[string]string{
178054		"project": c.project,
178055	})
178056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178057}
178058
178059// Do executes the "compute.vpnTunnels.aggregatedList" call.
178060// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
178061// non-2xx status code is an error. Response headers are in either
178062// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
178063// returned at all) in error.(*googleapi.Error).Header. Use
178064// googleapi.IsNotModified to check whether the returned error was
178065// because http.StatusNotModified was returned.
178066func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
178067	gensupport.SetOptions(c.urlParams_, opts...)
178068	res, err := c.doRequest("json")
178069	if res != nil && res.StatusCode == http.StatusNotModified {
178070		if res.Body != nil {
178071			res.Body.Close()
178072		}
178073		return nil, &googleapi.Error{
178074			Code:   res.StatusCode,
178075			Header: res.Header,
178076		}
178077	}
178078	if err != nil {
178079		return nil, err
178080	}
178081	defer googleapi.CloseBody(res)
178082	if err := googleapi.CheckResponse(res); err != nil {
178083		return nil, err
178084	}
178085	ret := &VpnTunnelAggregatedList{
178086		ServerResponse: googleapi.ServerResponse{
178087			Header:         res.Header,
178088			HTTPStatusCode: res.StatusCode,
178089		},
178090	}
178091	target := &ret
178092	if err := gensupport.DecodeResponse(target, res); err != nil {
178093		return nil, err
178094	}
178095	return ret, nil
178096	// {
178097	//   "description": "Retrieves an aggregated list of VPN tunnels.",
178098	//   "httpMethod": "GET",
178099	//   "id": "compute.vpnTunnels.aggregatedList",
178100	//   "parameterOrder": [
178101	//     "project"
178102	//   ],
178103	//   "parameters": {
178104	//     "filter": {
178105	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
178106	//       "location": "query",
178107	//       "type": "string"
178108	//     },
178109	//     "includeAllScopes": {
178110	//       "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.",
178111	//       "location": "query",
178112	//       "type": "boolean"
178113	//     },
178114	//     "maxResults": {
178115	//       "default": "500",
178116	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
178117	//       "format": "uint32",
178118	//       "location": "query",
178119	//       "minimum": "0",
178120	//       "type": "integer"
178121	//     },
178122	//     "orderBy": {
178123	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
178124	//       "location": "query",
178125	//       "type": "string"
178126	//     },
178127	//     "pageToken": {
178128	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
178129	//       "location": "query",
178130	//       "type": "string"
178131	//     },
178132	//     "project": {
178133	//       "description": "Project ID for this request.",
178134	//       "location": "path",
178135	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178136	//       "required": true,
178137	//       "type": "string"
178138	//     },
178139	//     "returnPartialSuccess": {
178140	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
178141	//       "location": "query",
178142	//       "type": "boolean"
178143	//     }
178144	//   },
178145	//   "path": "{project}/aggregated/vpnTunnels",
178146	//   "response": {
178147	//     "$ref": "VpnTunnelAggregatedList"
178148	//   },
178149	//   "scopes": [
178150	//     "https://www.googleapis.com/auth/cloud-platform",
178151	//     "https://www.googleapis.com/auth/compute",
178152	//     "https://www.googleapis.com/auth/compute.readonly"
178153	//   ]
178154	// }
178155
178156}
178157
178158// Pages invokes f for each page of results.
178159// A non-nil error returned from f will halt the iteration.
178160// The provided context supersedes any context provided to the Context method.
178161func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
178162	c.ctx_ = ctx
178163	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
178164	for {
178165		x, err := c.Do()
178166		if err != nil {
178167			return err
178168		}
178169		if err := f(x); err != nil {
178170			return err
178171		}
178172		if x.NextPageToken == "" {
178173			return nil
178174		}
178175		c.PageToken(x.NextPageToken)
178176	}
178177}
178178
178179// method id "compute.vpnTunnels.delete":
178180
178181type VpnTunnelsDeleteCall struct {
178182	s          *Service
178183	project    string
178184	region     string
178185	vpnTunnel  string
178186	urlParams_ gensupport.URLParams
178187	ctx_       context.Context
178188	header_    http.Header
178189}
178190
178191// Delete: Deletes the specified VpnTunnel resource.
178192func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
178193	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178194	c.project = project
178195	c.region = region
178196	c.vpnTunnel = vpnTunnel
178197	return c
178198}
178199
178200// RequestId sets the optional parameter "requestId": An optional
178201// request ID to identify requests. Specify a unique request ID so that
178202// if you must retry your request, the server will know to ignore the
178203// request if it has already been completed.
178204//
178205// For example, consider a situation where you make an initial request
178206// and the request times out. If you make the request again with the
178207// same request ID, the server can check if original operation with the
178208// same request ID was received, and if so, will ignore the second
178209// request. This prevents clients from accidentally creating duplicate
178210// commitments.
178211//
178212// The request ID must be a valid UUID with the exception that zero UUID
178213// is not supported (00000000-0000-0000-0000-000000000000).
178214func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
178215	c.urlParams_.Set("requestId", requestId)
178216	return c
178217}
178218
178219// Fields allows partial responses to be retrieved. See
178220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178221// for more information.
178222func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
178223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178224	return c
178225}
178226
178227// Context sets the context to be used in this call's Do method. Any
178228// pending HTTP request will be aborted if the provided context is
178229// canceled.
178230func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
178231	c.ctx_ = ctx
178232	return c
178233}
178234
178235// Header returns an http.Header that can be modified by the caller to
178236// add HTTP headers to the request.
178237func (c *VpnTunnelsDeleteCall) Header() http.Header {
178238	if c.header_ == nil {
178239		c.header_ = make(http.Header)
178240	}
178241	return c.header_
178242}
178243
178244func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
178245	reqHeaders := make(http.Header)
178246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
178247	for k, v := range c.header_ {
178248		reqHeaders[k] = v
178249	}
178250	reqHeaders.Set("User-Agent", c.s.userAgent())
178251	var body io.Reader = nil
178252	c.urlParams_.Set("alt", alt)
178253	c.urlParams_.Set("prettyPrint", "false")
178254	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
178255	urls += "?" + c.urlParams_.Encode()
178256	req, err := http.NewRequest("DELETE", urls, body)
178257	if err != nil {
178258		return nil, err
178259	}
178260	req.Header = reqHeaders
178261	googleapi.Expand(req.URL, map[string]string{
178262		"project":   c.project,
178263		"region":    c.region,
178264		"vpnTunnel": c.vpnTunnel,
178265	})
178266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178267}
178268
178269// Do executes the "compute.vpnTunnels.delete" call.
178270// Exactly one of *Operation or error will be non-nil. Any non-2xx
178271// status code is an error. Response headers are in either
178272// *Operation.ServerResponse.Header or (if a response was returned at
178273// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178274// to check whether the returned error was because
178275// http.StatusNotModified was returned.
178276func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
178277	gensupport.SetOptions(c.urlParams_, opts...)
178278	res, err := c.doRequest("json")
178279	if res != nil && res.StatusCode == http.StatusNotModified {
178280		if res.Body != nil {
178281			res.Body.Close()
178282		}
178283		return nil, &googleapi.Error{
178284			Code:   res.StatusCode,
178285			Header: res.Header,
178286		}
178287	}
178288	if err != nil {
178289		return nil, err
178290	}
178291	defer googleapi.CloseBody(res)
178292	if err := googleapi.CheckResponse(res); err != nil {
178293		return nil, err
178294	}
178295	ret := &Operation{
178296		ServerResponse: googleapi.ServerResponse{
178297			Header:         res.Header,
178298			HTTPStatusCode: res.StatusCode,
178299		},
178300	}
178301	target := &ret
178302	if err := gensupport.DecodeResponse(target, res); err != nil {
178303		return nil, err
178304	}
178305	return ret, nil
178306	// {
178307	//   "description": "Deletes the specified VpnTunnel resource.",
178308	//   "httpMethod": "DELETE",
178309	//   "id": "compute.vpnTunnels.delete",
178310	//   "parameterOrder": [
178311	//     "project",
178312	//     "region",
178313	//     "vpnTunnel"
178314	//   ],
178315	//   "parameters": {
178316	//     "project": {
178317	//       "description": "Project ID for this request.",
178318	//       "location": "path",
178319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178320	//       "required": true,
178321	//       "type": "string"
178322	//     },
178323	//     "region": {
178324	//       "description": "Name of the region for this request.",
178325	//       "location": "path",
178326	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178327	//       "required": true,
178328	//       "type": "string"
178329	//     },
178330	//     "requestId": {
178331	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
178332	//       "location": "query",
178333	//       "type": "string"
178334	//     },
178335	//     "vpnTunnel": {
178336	//       "description": "Name of the VpnTunnel resource to delete.",
178337	//       "location": "path",
178338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
178339	//       "required": true,
178340	//       "type": "string"
178341	//     }
178342	//   },
178343	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
178344	//   "response": {
178345	//     "$ref": "Operation"
178346	//   },
178347	//   "scopes": [
178348	//     "https://www.googleapis.com/auth/cloud-platform",
178349	//     "https://www.googleapis.com/auth/compute"
178350	//   ]
178351	// }
178352
178353}
178354
178355// method id "compute.vpnTunnels.get":
178356
178357type VpnTunnelsGetCall struct {
178358	s            *Service
178359	project      string
178360	region       string
178361	vpnTunnel    string
178362	urlParams_   gensupport.URLParams
178363	ifNoneMatch_ string
178364	ctx_         context.Context
178365	header_      http.Header
178366}
178367
178368// Get: Returns the specified VpnTunnel resource. Gets a list of
178369// available VPN tunnels by making a list() request.
178370func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
178371	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178372	c.project = project
178373	c.region = region
178374	c.vpnTunnel = vpnTunnel
178375	return c
178376}
178377
178378// Fields allows partial responses to be retrieved. See
178379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178380// for more information.
178381func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
178382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178383	return c
178384}
178385
178386// IfNoneMatch sets the optional parameter which makes the operation
178387// fail if the object's ETag matches the given value. This is useful for
178388// getting updates only after the object has changed since the last
178389// request. Use googleapi.IsNotModified to check whether the response
178390// error from Do is the result of In-None-Match.
178391func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
178392	c.ifNoneMatch_ = entityTag
178393	return c
178394}
178395
178396// Context sets the context to be used in this call's Do method. Any
178397// pending HTTP request will be aborted if the provided context is
178398// canceled.
178399func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
178400	c.ctx_ = ctx
178401	return c
178402}
178403
178404// Header returns an http.Header that can be modified by the caller to
178405// add HTTP headers to the request.
178406func (c *VpnTunnelsGetCall) Header() http.Header {
178407	if c.header_ == nil {
178408		c.header_ = make(http.Header)
178409	}
178410	return c.header_
178411}
178412
178413func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
178414	reqHeaders := make(http.Header)
178415	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
178416	for k, v := range c.header_ {
178417		reqHeaders[k] = v
178418	}
178419	reqHeaders.Set("User-Agent", c.s.userAgent())
178420	if c.ifNoneMatch_ != "" {
178421		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
178422	}
178423	var body io.Reader = nil
178424	c.urlParams_.Set("alt", alt)
178425	c.urlParams_.Set("prettyPrint", "false")
178426	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
178427	urls += "?" + c.urlParams_.Encode()
178428	req, err := http.NewRequest("GET", urls, body)
178429	if err != nil {
178430		return nil, err
178431	}
178432	req.Header = reqHeaders
178433	googleapi.Expand(req.URL, map[string]string{
178434		"project":   c.project,
178435		"region":    c.region,
178436		"vpnTunnel": c.vpnTunnel,
178437	})
178438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178439}
178440
178441// Do executes the "compute.vpnTunnels.get" call.
178442// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
178443// status code is an error. Response headers are in either
178444// *VpnTunnel.ServerResponse.Header or (if a response was returned at
178445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178446// to check whether the returned error was because
178447// http.StatusNotModified was returned.
178448func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
178449	gensupport.SetOptions(c.urlParams_, opts...)
178450	res, err := c.doRequest("json")
178451	if res != nil && res.StatusCode == http.StatusNotModified {
178452		if res.Body != nil {
178453			res.Body.Close()
178454		}
178455		return nil, &googleapi.Error{
178456			Code:   res.StatusCode,
178457			Header: res.Header,
178458		}
178459	}
178460	if err != nil {
178461		return nil, err
178462	}
178463	defer googleapi.CloseBody(res)
178464	if err := googleapi.CheckResponse(res); err != nil {
178465		return nil, err
178466	}
178467	ret := &VpnTunnel{
178468		ServerResponse: googleapi.ServerResponse{
178469			Header:         res.Header,
178470			HTTPStatusCode: res.StatusCode,
178471		},
178472	}
178473	target := &ret
178474	if err := gensupport.DecodeResponse(target, res); err != nil {
178475		return nil, err
178476	}
178477	return ret, nil
178478	// {
178479	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
178480	//   "httpMethod": "GET",
178481	//   "id": "compute.vpnTunnels.get",
178482	//   "parameterOrder": [
178483	//     "project",
178484	//     "region",
178485	//     "vpnTunnel"
178486	//   ],
178487	//   "parameters": {
178488	//     "project": {
178489	//       "description": "Project ID for this request.",
178490	//       "location": "path",
178491	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178492	//       "required": true,
178493	//       "type": "string"
178494	//     },
178495	//     "region": {
178496	//       "description": "Name of the region for this request.",
178497	//       "location": "path",
178498	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178499	//       "required": true,
178500	//       "type": "string"
178501	//     },
178502	//     "vpnTunnel": {
178503	//       "description": "Name of the VpnTunnel resource to return.",
178504	//       "location": "path",
178505	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
178506	//       "required": true,
178507	//       "type": "string"
178508	//     }
178509	//   },
178510	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
178511	//   "response": {
178512	//     "$ref": "VpnTunnel"
178513	//   },
178514	//   "scopes": [
178515	//     "https://www.googleapis.com/auth/cloud-platform",
178516	//     "https://www.googleapis.com/auth/compute",
178517	//     "https://www.googleapis.com/auth/compute.readonly"
178518	//   ]
178519	// }
178520
178521}
178522
178523// method id "compute.vpnTunnels.insert":
178524
178525type VpnTunnelsInsertCall struct {
178526	s          *Service
178527	project    string
178528	region     string
178529	vpntunnel  *VpnTunnel
178530	urlParams_ gensupport.URLParams
178531	ctx_       context.Context
178532	header_    http.Header
178533}
178534
178535// Insert: Creates a VpnTunnel resource in the specified project and
178536// region using the data included in the request.
178537func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
178538	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178539	c.project = project
178540	c.region = region
178541	c.vpntunnel = vpntunnel
178542	return c
178543}
178544
178545// RequestId sets the optional parameter "requestId": An optional
178546// request ID to identify requests. Specify a unique request ID so that
178547// if you must retry your request, the server will know to ignore the
178548// request if it has already been completed.
178549//
178550// For example, consider a situation where you make an initial request
178551// and the request times out. If you make the request again with the
178552// same request ID, the server can check if original operation with the
178553// same request ID was received, and if so, will ignore the second
178554// request. This prevents clients from accidentally creating duplicate
178555// commitments.
178556//
178557// The request ID must be a valid UUID with the exception that zero UUID
178558// is not supported (00000000-0000-0000-0000-000000000000).
178559func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
178560	c.urlParams_.Set("requestId", requestId)
178561	return c
178562}
178563
178564// Fields allows partial responses to be retrieved. See
178565// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178566// for more information.
178567func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
178568	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178569	return c
178570}
178571
178572// Context sets the context to be used in this call's Do method. Any
178573// pending HTTP request will be aborted if the provided context is
178574// canceled.
178575func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
178576	c.ctx_ = ctx
178577	return c
178578}
178579
178580// Header returns an http.Header that can be modified by the caller to
178581// add HTTP headers to the request.
178582func (c *VpnTunnelsInsertCall) Header() http.Header {
178583	if c.header_ == nil {
178584		c.header_ = make(http.Header)
178585	}
178586	return c.header_
178587}
178588
178589func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
178590	reqHeaders := make(http.Header)
178591	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
178592	for k, v := range c.header_ {
178593		reqHeaders[k] = v
178594	}
178595	reqHeaders.Set("User-Agent", c.s.userAgent())
178596	var body io.Reader = nil
178597	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
178598	if err != nil {
178599		return nil, err
178600	}
178601	reqHeaders.Set("Content-Type", "application/json")
178602	c.urlParams_.Set("alt", alt)
178603	c.urlParams_.Set("prettyPrint", "false")
178604	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
178605	urls += "?" + c.urlParams_.Encode()
178606	req, err := http.NewRequest("POST", urls, body)
178607	if err != nil {
178608		return nil, err
178609	}
178610	req.Header = reqHeaders
178611	googleapi.Expand(req.URL, map[string]string{
178612		"project": c.project,
178613		"region":  c.region,
178614	})
178615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178616}
178617
178618// Do executes the "compute.vpnTunnels.insert" call.
178619// Exactly one of *Operation or error will be non-nil. Any non-2xx
178620// status code is an error. Response headers are in either
178621// *Operation.ServerResponse.Header or (if a response was returned at
178622// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178623// to check whether the returned error was because
178624// http.StatusNotModified was returned.
178625func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
178626	gensupport.SetOptions(c.urlParams_, opts...)
178627	res, err := c.doRequest("json")
178628	if res != nil && res.StatusCode == http.StatusNotModified {
178629		if res.Body != nil {
178630			res.Body.Close()
178631		}
178632		return nil, &googleapi.Error{
178633			Code:   res.StatusCode,
178634			Header: res.Header,
178635		}
178636	}
178637	if err != nil {
178638		return nil, err
178639	}
178640	defer googleapi.CloseBody(res)
178641	if err := googleapi.CheckResponse(res); err != nil {
178642		return nil, err
178643	}
178644	ret := &Operation{
178645		ServerResponse: googleapi.ServerResponse{
178646			Header:         res.Header,
178647			HTTPStatusCode: res.StatusCode,
178648		},
178649	}
178650	target := &ret
178651	if err := gensupport.DecodeResponse(target, res); err != nil {
178652		return nil, err
178653	}
178654	return ret, nil
178655	// {
178656	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
178657	//   "httpMethod": "POST",
178658	//   "id": "compute.vpnTunnels.insert",
178659	//   "parameterOrder": [
178660	//     "project",
178661	//     "region"
178662	//   ],
178663	//   "parameters": {
178664	//     "project": {
178665	//       "description": "Project ID for this request.",
178666	//       "location": "path",
178667	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178668	//       "required": true,
178669	//       "type": "string"
178670	//     },
178671	//     "region": {
178672	//       "description": "Name of the region for this request.",
178673	//       "location": "path",
178674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178675	//       "required": true,
178676	//       "type": "string"
178677	//     },
178678	//     "requestId": {
178679	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
178680	//       "location": "query",
178681	//       "type": "string"
178682	//     }
178683	//   },
178684	//   "path": "{project}/regions/{region}/vpnTunnels",
178685	//   "request": {
178686	//     "$ref": "VpnTunnel"
178687	//   },
178688	//   "response": {
178689	//     "$ref": "Operation"
178690	//   },
178691	//   "scopes": [
178692	//     "https://www.googleapis.com/auth/cloud-platform",
178693	//     "https://www.googleapis.com/auth/compute"
178694	//   ]
178695	// }
178696
178697}
178698
178699// method id "compute.vpnTunnels.list":
178700
178701type VpnTunnelsListCall struct {
178702	s            *Service
178703	project      string
178704	region       string
178705	urlParams_   gensupport.URLParams
178706	ifNoneMatch_ string
178707	ctx_         context.Context
178708	header_      http.Header
178709}
178710
178711// List: Retrieves a list of VpnTunnel resources contained in the
178712// specified project and region.
178713func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
178714	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178715	c.project = project
178716	c.region = region
178717	return c
178718}
178719
178720// Filter sets the optional parameter "filter": A filter expression that
178721// filters resources listed in the response. The expression must specify
178722// the field name, a comparison operator, and the value that you want to
178723// use for filtering. The value must be a string, a number, or a
178724// boolean. The comparison operator must be either `=`, `!=`, `>`, or
178725// `<`.
178726//
178727// For example, if you are filtering Compute Engine instances, you can
178728// exclude instances named `example-instance` by specifying `name !=
178729// example-instance`.
178730//
178731// You can also filter nested fields. For example, you could specify
178732// `scheduling.automaticRestart = false` to include instances only if
178733// they are not scheduled for automatic restarts. You can use filtering
178734// on nested fields to filter based on resource labels.
178735//
178736// To filter on multiple expressions, provide each separate expression
178737// within parentheses. For example: ``` (scheduling.automaticRestart =
178738// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
178739// is an `AND` expression. However, you can include `AND` and `OR`
178740// expressions explicitly. For example: ``` (cpuPlatform = "Intel
178741// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
178742// (scheduling.automaticRestart = true) ```
178743func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
178744	c.urlParams_.Set("filter", filter)
178745	return c
178746}
178747
178748// MaxResults sets the optional parameter "maxResults": The maximum
178749// number of results per page that should be returned. If the number of
178750// available results is larger than `maxResults`, Compute Engine returns
178751// a `nextPageToken` that can be used to get the next page of results in
178752// subsequent list requests. Acceptable values are `0` to `500`,
178753// inclusive. (Default: `500`)
178754func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
178755	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
178756	return c
178757}
178758
178759// OrderBy sets the optional parameter "orderBy": Sorts list results by
178760// a certain order. By default, results are returned in alphanumerical
178761// order based on the resource name.
178762//
178763// You can also sort results in descending order based on the creation
178764// timestamp using `orderBy="creationTimestamp desc". This sorts
178765// results based on the `creationTimestamp` field in reverse
178766// chronological order (newest result first). Use this to sort resources
178767// like operations so that the newest operation is returned
178768// first.
178769//
178770// Currently, only sorting by `name` or `creationTimestamp desc` is
178771// supported.
178772func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
178773	c.urlParams_.Set("orderBy", orderBy)
178774	return c
178775}
178776
178777// PageToken sets the optional parameter "pageToken": Specifies a page
178778// token to use. Set `pageToken` to the `nextPageToken` returned by a
178779// previous list request to get the next page of results.
178780func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
178781	c.urlParams_.Set("pageToken", pageToken)
178782	return c
178783}
178784
178785// ReturnPartialSuccess sets the optional parameter
178786// "returnPartialSuccess": Opt-in for partial success behavior which
178787// provides partial results in case of failure. The default value is
178788// false and the logic is the same as today.
178789func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall {
178790	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
178791	return c
178792}
178793
178794// Fields allows partial responses to be retrieved. See
178795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178796// for more information.
178797func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
178798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178799	return c
178800}
178801
178802// IfNoneMatch sets the optional parameter which makes the operation
178803// fail if the object's ETag matches the given value. This is useful for
178804// getting updates only after the object has changed since the last
178805// request. Use googleapi.IsNotModified to check whether the response
178806// error from Do is the result of In-None-Match.
178807func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
178808	c.ifNoneMatch_ = entityTag
178809	return c
178810}
178811
178812// Context sets the context to be used in this call's Do method. Any
178813// pending HTTP request will be aborted if the provided context is
178814// canceled.
178815func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
178816	c.ctx_ = ctx
178817	return c
178818}
178819
178820// Header returns an http.Header that can be modified by the caller to
178821// add HTTP headers to the request.
178822func (c *VpnTunnelsListCall) Header() http.Header {
178823	if c.header_ == nil {
178824		c.header_ = make(http.Header)
178825	}
178826	return c.header_
178827}
178828
178829func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
178830	reqHeaders := make(http.Header)
178831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
178832	for k, v := range c.header_ {
178833		reqHeaders[k] = v
178834	}
178835	reqHeaders.Set("User-Agent", c.s.userAgent())
178836	if c.ifNoneMatch_ != "" {
178837		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
178838	}
178839	var body io.Reader = nil
178840	c.urlParams_.Set("alt", alt)
178841	c.urlParams_.Set("prettyPrint", "false")
178842	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
178843	urls += "?" + c.urlParams_.Encode()
178844	req, err := http.NewRequest("GET", urls, body)
178845	if err != nil {
178846		return nil, err
178847	}
178848	req.Header = reqHeaders
178849	googleapi.Expand(req.URL, map[string]string{
178850		"project": c.project,
178851		"region":  c.region,
178852	})
178853	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178854}
178855
178856// Do executes the "compute.vpnTunnels.list" call.
178857// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
178858// status code is an error. Response headers are in either
178859// *VpnTunnelList.ServerResponse.Header or (if a response was returned
178860// at all) in error.(*googleapi.Error).Header. Use
178861// googleapi.IsNotModified to check whether the returned error was
178862// because http.StatusNotModified was returned.
178863func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
178864	gensupport.SetOptions(c.urlParams_, opts...)
178865	res, err := c.doRequest("json")
178866	if res != nil && res.StatusCode == http.StatusNotModified {
178867		if res.Body != nil {
178868			res.Body.Close()
178869		}
178870		return nil, &googleapi.Error{
178871			Code:   res.StatusCode,
178872			Header: res.Header,
178873		}
178874	}
178875	if err != nil {
178876		return nil, err
178877	}
178878	defer googleapi.CloseBody(res)
178879	if err := googleapi.CheckResponse(res); err != nil {
178880		return nil, err
178881	}
178882	ret := &VpnTunnelList{
178883		ServerResponse: googleapi.ServerResponse{
178884			Header:         res.Header,
178885			HTTPStatusCode: res.StatusCode,
178886		},
178887	}
178888	target := &ret
178889	if err := gensupport.DecodeResponse(target, res); err != nil {
178890		return nil, err
178891	}
178892	return ret, nil
178893	// {
178894	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
178895	//   "httpMethod": "GET",
178896	//   "id": "compute.vpnTunnels.list",
178897	//   "parameterOrder": [
178898	//     "project",
178899	//     "region"
178900	//   ],
178901	//   "parameters": {
178902	//     "filter": {
178903	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
178904	//       "location": "query",
178905	//       "type": "string"
178906	//     },
178907	//     "maxResults": {
178908	//       "default": "500",
178909	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
178910	//       "format": "uint32",
178911	//       "location": "query",
178912	//       "minimum": "0",
178913	//       "type": "integer"
178914	//     },
178915	//     "orderBy": {
178916	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
178917	//       "location": "query",
178918	//       "type": "string"
178919	//     },
178920	//     "pageToken": {
178921	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
178922	//       "location": "query",
178923	//       "type": "string"
178924	//     },
178925	//     "project": {
178926	//       "description": "Project ID for this request.",
178927	//       "location": "path",
178928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178929	//       "required": true,
178930	//       "type": "string"
178931	//     },
178932	//     "region": {
178933	//       "description": "Name of the region for this request.",
178934	//       "location": "path",
178935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178936	//       "required": true,
178937	//       "type": "string"
178938	//     },
178939	//     "returnPartialSuccess": {
178940	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
178941	//       "location": "query",
178942	//       "type": "boolean"
178943	//     }
178944	//   },
178945	//   "path": "{project}/regions/{region}/vpnTunnels",
178946	//   "response": {
178947	//     "$ref": "VpnTunnelList"
178948	//   },
178949	//   "scopes": [
178950	//     "https://www.googleapis.com/auth/cloud-platform",
178951	//     "https://www.googleapis.com/auth/compute",
178952	//     "https://www.googleapis.com/auth/compute.readonly"
178953	//   ]
178954	// }
178955
178956}
178957
178958// Pages invokes f for each page of results.
178959// A non-nil error returned from f will halt the iteration.
178960// The provided context supersedes any context provided to the Context method.
178961func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
178962	c.ctx_ = ctx
178963	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
178964	for {
178965		x, err := c.Do()
178966		if err != nil {
178967			return err
178968		}
178969		if err := f(x); err != nil {
178970			return err
178971		}
178972		if x.NextPageToken == "" {
178973			return nil
178974		}
178975		c.PageToken(x.NextPageToken)
178976	}
178977}
178978
178979// method id "compute.vpnTunnels.setLabels":
178980
178981type VpnTunnelsSetLabelsCall struct {
178982	s                      *Service
178983	project                string
178984	region                 string
178985	resource               string
178986	regionsetlabelsrequest *RegionSetLabelsRequest
178987	urlParams_             gensupport.URLParams
178988	ctx_                   context.Context
178989	header_                http.Header
178990}
178991
178992// SetLabels: Sets the labels on a VpnTunnel. To learn more about
178993// labels, read the Labeling Resources documentation.
178994func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall {
178995	c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178996	c.project = project
178997	c.region = region
178998	c.resource = resource
178999	c.regionsetlabelsrequest = regionsetlabelsrequest
179000	return c
179001}
179002
179003// RequestId sets the optional parameter "requestId": An optional
179004// request ID to identify requests. Specify a unique request ID so that
179005// if you must retry your request, the server will know to ignore the
179006// request if it has already been completed.
179007//
179008// For example, consider a situation where you make an initial request
179009// and the request times out. If you make the request again with the
179010// same request ID, the server can check if original operation with the
179011// same request ID was received, and if so, will ignore the second
179012// request. This prevents clients from accidentally creating duplicate
179013// commitments.
179014//
179015// The request ID must be a valid UUID with the exception that zero UUID
179016// is not supported (00000000-0000-0000-0000-000000000000).
179017func (c *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall {
179018	c.urlParams_.Set("requestId", requestId)
179019	return c
179020}
179021
179022// Fields allows partial responses to be retrieved. See
179023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179024// for more information.
179025func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall {
179026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179027	return c
179028}
179029
179030// Context sets the context to be used in this call's Do method. Any
179031// pending HTTP request will be aborted if the provided context is
179032// canceled.
179033func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall {
179034	c.ctx_ = ctx
179035	return c
179036}
179037
179038// Header returns an http.Header that can be modified by the caller to
179039// add HTTP headers to the request.
179040func (c *VpnTunnelsSetLabelsCall) Header() http.Header {
179041	if c.header_ == nil {
179042		c.header_ = make(http.Header)
179043	}
179044	return c.header_
179045}
179046
179047func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
179048	reqHeaders := make(http.Header)
179049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
179050	for k, v := range c.header_ {
179051		reqHeaders[k] = v
179052	}
179053	reqHeaders.Set("User-Agent", c.s.userAgent())
179054	var body io.Reader = nil
179055	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
179056	if err != nil {
179057		return nil, err
179058	}
179059	reqHeaders.Set("Content-Type", "application/json")
179060	c.urlParams_.Set("alt", alt)
179061	c.urlParams_.Set("prettyPrint", "false")
179062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/setLabels")
179063	urls += "?" + c.urlParams_.Encode()
179064	req, err := http.NewRequest("POST", urls, body)
179065	if err != nil {
179066		return nil, err
179067	}
179068	req.Header = reqHeaders
179069	googleapi.Expand(req.URL, map[string]string{
179070		"project":  c.project,
179071		"region":   c.region,
179072		"resource": c.resource,
179073	})
179074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179075}
179076
179077// Do executes the "compute.vpnTunnels.setLabels" call.
179078// Exactly one of *Operation or error will be non-nil. Any non-2xx
179079// status code is an error. Response headers are in either
179080// *Operation.ServerResponse.Header or (if a response was returned at
179081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179082// to check whether the returned error was because
179083// http.StatusNotModified was returned.
179084func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
179085	gensupport.SetOptions(c.urlParams_, opts...)
179086	res, err := c.doRequest("json")
179087	if res != nil && res.StatusCode == http.StatusNotModified {
179088		if res.Body != nil {
179089			res.Body.Close()
179090		}
179091		return nil, &googleapi.Error{
179092			Code:   res.StatusCode,
179093			Header: res.Header,
179094		}
179095	}
179096	if err != nil {
179097		return nil, err
179098	}
179099	defer googleapi.CloseBody(res)
179100	if err := googleapi.CheckResponse(res); err != nil {
179101		return nil, err
179102	}
179103	ret := &Operation{
179104		ServerResponse: googleapi.ServerResponse{
179105			Header:         res.Header,
179106			HTTPStatusCode: res.StatusCode,
179107		},
179108	}
179109	target := &ret
179110	if err := gensupport.DecodeResponse(target, res); err != nil {
179111		return nil, err
179112	}
179113	return ret, nil
179114	// {
179115	//   "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.",
179116	//   "httpMethod": "POST",
179117	//   "id": "compute.vpnTunnels.setLabels",
179118	//   "parameterOrder": [
179119	//     "project",
179120	//     "region",
179121	//     "resource"
179122	//   ],
179123	//   "parameters": {
179124	//     "project": {
179125	//       "description": "Project ID for this request.",
179126	//       "location": "path",
179127	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179128	//       "required": true,
179129	//       "type": "string"
179130	//     },
179131	//     "region": {
179132	//       "description": "The region for this request.",
179133	//       "location": "path",
179134	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179135	//       "required": true,
179136	//       "type": "string"
179137	//     },
179138	//     "requestId": {
179139	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179140	//       "location": "query",
179141	//       "type": "string"
179142	//     },
179143	//     "resource": {
179144	//       "description": "Name or id of the resource for this request.",
179145	//       "location": "path",
179146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179147	//       "required": true,
179148	//       "type": "string"
179149	//     }
179150	//   },
179151	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
179152	//   "request": {
179153	//     "$ref": "RegionSetLabelsRequest"
179154	//   },
179155	//   "response": {
179156	//     "$ref": "Operation"
179157	//   },
179158	//   "scopes": [
179159	//     "https://www.googleapis.com/auth/cloud-platform",
179160	//     "https://www.googleapis.com/auth/compute"
179161	//   ]
179162	// }
179163
179164}
179165
179166// method id "compute.vpnTunnels.testIamPermissions":
179167
179168type VpnTunnelsTestIamPermissionsCall struct {
179169	s                      *Service
179170	project                string
179171	region                 string
179172	resource               string
179173	testpermissionsrequest *TestPermissionsRequest
179174	urlParams_             gensupport.URLParams
179175	ctx_                   context.Context
179176	header_                http.Header
179177}
179178
179179// TestIamPermissions: Returns permissions that a caller has on the
179180// specified resource.
179181func (r *VpnTunnelsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnTunnelsTestIamPermissionsCall {
179182	c := &VpnTunnelsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179183	c.project = project
179184	c.region = region
179185	c.resource = resource
179186	c.testpermissionsrequest = testpermissionsrequest
179187	return c
179188}
179189
179190// Fields allows partial responses to be retrieved. See
179191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179192// for more information.
179193func (c *VpnTunnelsTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnTunnelsTestIamPermissionsCall {
179194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179195	return c
179196}
179197
179198// Context sets the context to be used in this call's Do method. Any
179199// pending HTTP request will be aborted if the provided context is
179200// canceled.
179201func (c *VpnTunnelsTestIamPermissionsCall) Context(ctx context.Context) *VpnTunnelsTestIamPermissionsCall {
179202	c.ctx_ = ctx
179203	return c
179204}
179205
179206// Header returns an http.Header that can be modified by the caller to
179207// add HTTP headers to the request.
179208func (c *VpnTunnelsTestIamPermissionsCall) Header() http.Header {
179209	if c.header_ == nil {
179210		c.header_ = make(http.Header)
179211	}
179212	return c.header_
179213}
179214
179215func (c *VpnTunnelsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
179216	reqHeaders := make(http.Header)
179217	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
179218	for k, v := range c.header_ {
179219		reqHeaders[k] = v
179220	}
179221	reqHeaders.Set("User-Agent", c.s.userAgent())
179222	var body io.Reader = nil
179223	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
179224	if err != nil {
179225		return nil, err
179226	}
179227	reqHeaders.Set("Content-Type", "application/json")
179228	c.urlParams_.Set("alt", alt)
179229	c.urlParams_.Set("prettyPrint", "false")
179230	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions")
179231	urls += "?" + c.urlParams_.Encode()
179232	req, err := http.NewRequest("POST", urls, body)
179233	if err != nil {
179234		return nil, err
179235	}
179236	req.Header = reqHeaders
179237	googleapi.Expand(req.URL, map[string]string{
179238		"project":  c.project,
179239		"region":   c.region,
179240		"resource": c.resource,
179241	})
179242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179243}
179244
179245// Do executes the "compute.vpnTunnels.testIamPermissions" call.
179246// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
179247// non-2xx status code is an error. Response headers are in either
179248// *TestPermissionsResponse.ServerResponse.Header or (if a response was
179249// returned at all) in error.(*googleapi.Error).Header. Use
179250// googleapi.IsNotModified to check whether the returned error was
179251// because http.StatusNotModified was returned.
179252func (c *VpnTunnelsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
179253	gensupport.SetOptions(c.urlParams_, opts...)
179254	res, err := c.doRequest("json")
179255	if res != nil && res.StatusCode == http.StatusNotModified {
179256		if res.Body != nil {
179257			res.Body.Close()
179258		}
179259		return nil, &googleapi.Error{
179260			Code:   res.StatusCode,
179261			Header: res.Header,
179262		}
179263	}
179264	if err != nil {
179265		return nil, err
179266	}
179267	defer googleapi.CloseBody(res)
179268	if err := googleapi.CheckResponse(res); err != nil {
179269		return nil, err
179270	}
179271	ret := &TestPermissionsResponse{
179272		ServerResponse: googleapi.ServerResponse{
179273			Header:         res.Header,
179274			HTTPStatusCode: res.StatusCode,
179275		},
179276	}
179277	target := &ret
179278	if err := gensupport.DecodeResponse(target, res); err != nil {
179279		return nil, err
179280	}
179281	return ret, nil
179282	// {
179283	//   "description": "Returns permissions that a caller has on the specified resource.",
179284	//   "httpMethod": "POST",
179285	//   "id": "compute.vpnTunnels.testIamPermissions",
179286	//   "parameterOrder": [
179287	//     "project",
179288	//     "region",
179289	//     "resource"
179290	//   ],
179291	//   "parameters": {
179292	//     "project": {
179293	//       "description": "Project ID for this request.",
179294	//       "location": "path",
179295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179296	//       "required": true,
179297	//       "type": "string"
179298	//     },
179299	//     "region": {
179300	//       "description": "The name of the region for this request.",
179301	//       "location": "path",
179302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179303	//       "required": true,
179304	//       "type": "string"
179305	//     },
179306	//     "resource": {
179307	//       "description": "Name or id of the resource for this request.",
179308	//       "location": "path",
179309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179310	//       "required": true,
179311	//       "type": "string"
179312	//     }
179313	//   },
179314	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions",
179315	//   "request": {
179316	//     "$ref": "TestPermissionsRequest"
179317	//   },
179318	//   "response": {
179319	//     "$ref": "TestPermissionsResponse"
179320	//   },
179321	//   "scopes": [
179322	//     "https://www.googleapis.com/auth/cloud-platform",
179323	//     "https://www.googleapis.com/auth/compute",
179324	//     "https://www.googleapis.com/auth/compute.readonly"
179325	//   ]
179326	// }
179327
179328}
179329
179330// method id "compute.zoneInPlaceSnapshots.delete":
179331
179332type ZoneInPlaceSnapshotsDeleteCall struct {
179333	s               *Service
179334	project         string
179335	zone            string
179336	inPlaceSnapshot string
179337	urlParams_      gensupport.URLParams
179338	ctx_            context.Context
179339	header_         http.Header
179340}
179341
179342// Delete: Deletes the specified InPlaceSnapshot resource. Keep in mind
179343// that deleting a single inPlaceSnapshot might not necessarily delete
179344// all the data on that inPlaceSnapshot. If any data on the
179345// inPlaceSnapshot that is marked for deletion is needed for subsequent
179346// inPlaceSnapshots, the data will be moved to the next corresponding
179347// inPlaceSnapshot.
179348//
179349// For more information, see Deleting inPlaceSnapshots.
179350func (r *ZoneInPlaceSnapshotsService) Delete(project string, zone string, inPlaceSnapshot string) *ZoneInPlaceSnapshotsDeleteCall {
179351	c := &ZoneInPlaceSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179352	c.project = project
179353	c.zone = zone
179354	c.inPlaceSnapshot = inPlaceSnapshot
179355	return c
179356}
179357
179358// RequestId sets the optional parameter "requestId": An optional
179359// request ID to identify requests. Specify a unique request ID so that
179360// if you must retry your request, the server will know to ignore the
179361// request if it has already been completed.
179362//
179363// For example, consider a situation where you make an initial request
179364// and the request times out. If you make the request again with the
179365// same request ID, the server can check if original operation with the
179366// same request ID was received, and if so, will ignore the second
179367// request. This prevents clients from accidentally creating duplicate
179368// commitments.
179369//
179370// The request ID must be a valid UUID with the exception that zero UUID
179371// is not supported (00000000-0000-0000-0000-000000000000).
179372func (c *ZoneInPlaceSnapshotsDeleteCall) RequestId(requestId string) *ZoneInPlaceSnapshotsDeleteCall {
179373	c.urlParams_.Set("requestId", requestId)
179374	return c
179375}
179376
179377// Fields allows partial responses to be retrieved. See
179378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179379// for more information.
179380func (c *ZoneInPlaceSnapshotsDeleteCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsDeleteCall {
179381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179382	return c
179383}
179384
179385// Context sets the context to be used in this call's Do method. Any
179386// pending HTTP request will be aborted if the provided context is
179387// canceled.
179388func (c *ZoneInPlaceSnapshotsDeleteCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsDeleteCall {
179389	c.ctx_ = ctx
179390	return c
179391}
179392
179393// Header returns an http.Header that can be modified by the caller to
179394// add HTTP headers to the request.
179395func (c *ZoneInPlaceSnapshotsDeleteCall) Header() http.Header {
179396	if c.header_ == nil {
179397		c.header_ = make(http.Header)
179398	}
179399	return c.header_
179400}
179401
179402func (c *ZoneInPlaceSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
179403	reqHeaders := make(http.Header)
179404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
179405	for k, v := range c.header_ {
179406		reqHeaders[k] = v
179407	}
179408	reqHeaders.Set("User-Agent", c.s.userAgent())
179409	var body io.Reader = nil
179410	c.urlParams_.Set("alt", alt)
179411	c.urlParams_.Set("prettyPrint", "false")
179412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots/{inPlaceSnapshot}")
179413	urls += "?" + c.urlParams_.Encode()
179414	req, err := http.NewRequest("DELETE", urls, body)
179415	if err != nil {
179416		return nil, err
179417	}
179418	req.Header = reqHeaders
179419	googleapi.Expand(req.URL, map[string]string{
179420		"project":         c.project,
179421		"zone":            c.zone,
179422		"inPlaceSnapshot": c.inPlaceSnapshot,
179423	})
179424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179425}
179426
179427// Do executes the "compute.zoneInPlaceSnapshots.delete" call.
179428// Exactly one of *Operation or error will be non-nil. Any non-2xx
179429// status code is an error. Response headers are in either
179430// *Operation.ServerResponse.Header or (if a response was returned at
179431// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179432// to check whether the returned error was because
179433// http.StatusNotModified was returned.
179434func (c *ZoneInPlaceSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
179435	gensupport.SetOptions(c.urlParams_, opts...)
179436	res, err := c.doRequest("json")
179437	if res != nil && res.StatusCode == http.StatusNotModified {
179438		if res.Body != nil {
179439			res.Body.Close()
179440		}
179441		return nil, &googleapi.Error{
179442			Code:   res.StatusCode,
179443			Header: res.Header,
179444		}
179445	}
179446	if err != nil {
179447		return nil, err
179448	}
179449	defer googleapi.CloseBody(res)
179450	if err := googleapi.CheckResponse(res); err != nil {
179451		return nil, err
179452	}
179453	ret := &Operation{
179454		ServerResponse: googleapi.ServerResponse{
179455			Header:         res.Header,
179456			HTTPStatusCode: res.StatusCode,
179457		},
179458	}
179459	target := &ret
179460	if err := gensupport.DecodeResponse(target, res); err != nil {
179461		return nil, err
179462	}
179463	return ret, nil
179464	// {
179465	//   "description": "Deletes the specified InPlaceSnapshot resource. Keep in mind that deleting a single inPlaceSnapshot might not necessarily delete all the data on that inPlaceSnapshot. If any data on the inPlaceSnapshot that is marked for deletion is needed for subsequent inPlaceSnapshots, the data will be moved to the next corresponding inPlaceSnapshot.\n\nFor more information, see Deleting inPlaceSnapshots.",
179466	//   "httpMethod": "DELETE",
179467	//   "id": "compute.zoneInPlaceSnapshots.delete",
179468	//   "parameterOrder": [
179469	//     "project",
179470	//     "zone",
179471	//     "inPlaceSnapshot"
179472	//   ],
179473	//   "parameters": {
179474	//     "inPlaceSnapshot": {
179475	//       "description": "Name of the InPlaceSnapshot resource to delete.",
179476	//       "location": "path",
179477	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179478	//       "required": true,
179479	//       "type": "string"
179480	//     },
179481	//     "project": {
179482	//       "description": "Project ID for this request.",
179483	//       "location": "path",
179484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179485	//       "required": true,
179486	//       "type": "string"
179487	//     },
179488	//     "requestId": {
179489	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179490	//       "location": "query",
179491	//       "type": "string"
179492	//     },
179493	//     "zone": {
179494	//       "description": "The name of the zone for this request.",
179495	//       "location": "path",
179496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179497	//       "required": true,
179498	//       "type": "string"
179499	//     }
179500	//   },
179501	//   "path": "{project}/zones/{zone}/inPlaceSnapshots/{inPlaceSnapshot}",
179502	//   "response": {
179503	//     "$ref": "Operation"
179504	//   },
179505	//   "scopes": [
179506	//     "https://www.googleapis.com/auth/cloud-platform",
179507	//     "https://www.googleapis.com/auth/compute"
179508	//   ]
179509	// }
179510
179511}
179512
179513// method id "compute.zoneInPlaceSnapshots.get":
179514
179515type ZoneInPlaceSnapshotsGetCall struct {
179516	s               *Service
179517	project         string
179518	zone            string
179519	inPlaceSnapshot string
179520	urlParams_      gensupport.URLParams
179521	ifNoneMatch_    string
179522	ctx_            context.Context
179523	header_         http.Header
179524}
179525
179526// Get: Returns the specified InPlaceSnapshot resource in the specified
179527// zone.
179528func (r *ZoneInPlaceSnapshotsService) Get(project string, zone string, inPlaceSnapshot string) *ZoneInPlaceSnapshotsGetCall {
179529	c := &ZoneInPlaceSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179530	c.project = project
179531	c.zone = zone
179532	c.inPlaceSnapshot = inPlaceSnapshot
179533	return c
179534}
179535
179536// Fields allows partial responses to be retrieved. See
179537// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179538// for more information.
179539func (c *ZoneInPlaceSnapshotsGetCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsGetCall {
179540	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179541	return c
179542}
179543
179544// IfNoneMatch sets the optional parameter which makes the operation
179545// fail if the object's ETag matches the given value. This is useful for
179546// getting updates only after the object has changed since the last
179547// request. Use googleapi.IsNotModified to check whether the response
179548// error from Do is the result of In-None-Match.
179549func (c *ZoneInPlaceSnapshotsGetCall) IfNoneMatch(entityTag string) *ZoneInPlaceSnapshotsGetCall {
179550	c.ifNoneMatch_ = entityTag
179551	return c
179552}
179553
179554// Context sets the context to be used in this call's Do method. Any
179555// pending HTTP request will be aborted if the provided context is
179556// canceled.
179557func (c *ZoneInPlaceSnapshotsGetCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsGetCall {
179558	c.ctx_ = ctx
179559	return c
179560}
179561
179562// Header returns an http.Header that can be modified by the caller to
179563// add HTTP headers to the request.
179564func (c *ZoneInPlaceSnapshotsGetCall) Header() http.Header {
179565	if c.header_ == nil {
179566		c.header_ = make(http.Header)
179567	}
179568	return c.header_
179569}
179570
179571func (c *ZoneInPlaceSnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
179572	reqHeaders := make(http.Header)
179573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
179574	for k, v := range c.header_ {
179575		reqHeaders[k] = v
179576	}
179577	reqHeaders.Set("User-Agent", c.s.userAgent())
179578	if c.ifNoneMatch_ != "" {
179579		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
179580	}
179581	var body io.Reader = nil
179582	c.urlParams_.Set("alt", alt)
179583	c.urlParams_.Set("prettyPrint", "false")
179584	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots/{inPlaceSnapshot}")
179585	urls += "?" + c.urlParams_.Encode()
179586	req, err := http.NewRequest("GET", urls, body)
179587	if err != nil {
179588		return nil, err
179589	}
179590	req.Header = reqHeaders
179591	googleapi.Expand(req.URL, map[string]string{
179592		"project":         c.project,
179593		"zone":            c.zone,
179594		"inPlaceSnapshot": c.inPlaceSnapshot,
179595	})
179596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179597}
179598
179599// Do executes the "compute.zoneInPlaceSnapshots.get" call.
179600// Exactly one of *InPlaceSnapshot or error will be non-nil. Any non-2xx
179601// status code is an error. Response headers are in either
179602// *InPlaceSnapshot.ServerResponse.Header or (if a response was returned
179603// at all) in error.(*googleapi.Error).Header. Use
179604// googleapi.IsNotModified to check whether the returned error was
179605// because http.StatusNotModified was returned.
179606func (c *ZoneInPlaceSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*InPlaceSnapshot, error) {
179607	gensupport.SetOptions(c.urlParams_, opts...)
179608	res, err := c.doRequest("json")
179609	if res != nil && res.StatusCode == http.StatusNotModified {
179610		if res.Body != nil {
179611			res.Body.Close()
179612		}
179613		return nil, &googleapi.Error{
179614			Code:   res.StatusCode,
179615			Header: res.Header,
179616		}
179617	}
179618	if err != nil {
179619		return nil, err
179620	}
179621	defer googleapi.CloseBody(res)
179622	if err := googleapi.CheckResponse(res); err != nil {
179623		return nil, err
179624	}
179625	ret := &InPlaceSnapshot{
179626		ServerResponse: googleapi.ServerResponse{
179627			Header:         res.Header,
179628			HTTPStatusCode: res.StatusCode,
179629		},
179630	}
179631	target := &ret
179632	if err := gensupport.DecodeResponse(target, res); err != nil {
179633		return nil, err
179634	}
179635	return ret, nil
179636	// {
179637	//   "description": "Returns the specified InPlaceSnapshot resource in the specified zone.",
179638	//   "httpMethod": "GET",
179639	//   "id": "compute.zoneInPlaceSnapshots.get",
179640	//   "parameterOrder": [
179641	//     "project",
179642	//     "zone",
179643	//     "inPlaceSnapshot"
179644	//   ],
179645	//   "parameters": {
179646	//     "inPlaceSnapshot": {
179647	//       "description": "Name of the InPlaceSnapshot resource to return.",
179648	//       "location": "path",
179649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179650	//       "required": true,
179651	//       "type": "string"
179652	//     },
179653	//     "project": {
179654	//       "description": "Project ID for this request.",
179655	//       "location": "path",
179656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179657	//       "required": true,
179658	//       "type": "string"
179659	//     },
179660	//     "zone": {
179661	//       "description": "The name of the zone for this request.",
179662	//       "location": "path",
179663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179664	//       "required": true,
179665	//       "type": "string"
179666	//     }
179667	//   },
179668	//   "path": "{project}/zones/{zone}/inPlaceSnapshots/{inPlaceSnapshot}",
179669	//   "response": {
179670	//     "$ref": "InPlaceSnapshot"
179671	//   },
179672	//   "scopes": [
179673	//     "https://www.googleapis.com/auth/cloud-platform",
179674	//     "https://www.googleapis.com/auth/compute",
179675	//     "https://www.googleapis.com/auth/compute.readonly"
179676	//   ]
179677	// }
179678
179679}
179680
179681// method id "compute.zoneInPlaceSnapshots.getIamPolicy":
179682
179683type ZoneInPlaceSnapshotsGetIamPolicyCall struct {
179684	s            *Service
179685	project      string
179686	zone         string
179687	resource     string
179688	urlParams_   gensupport.URLParams
179689	ifNoneMatch_ string
179690	ctx_         context.Context
179691	header_      http.Header
179692}
179693
179694// GetIamPolicy: Gets the access control policy for a resource. May be
179695// empty if no such policy or resource exists.
179696func (r *ZoneInPlaceSnapshotsService) GetIamPolicy(project string, zone string, resource string) *ZoneInPlaceSnapshotsGetIamPolicyCall {
179697	c := &ZoneInPlaceSnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179698	c.project = project
179699	c.zone = zone
179700	c.resource = resource
179701	return c
179702}
179703
179704// OptionsRequestedPolicyVersion sets the optional parameter
179705// "optionsRequestedPolicyVersion": Requested IAM Policy version.
179706func (c *ZoneInPlaceSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ZoneInPlaceSnapshotsGetIamPolicyCall {
179707	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
179708	return c
179709}
179710
179711// Fields allows partial responses to be retrieved. See
179712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179713// for more information.
179714func (c *ZoneInPlaceSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsGetIamPolicyCall {
179715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179716	return c
179717}
179718
179719// IfNoneMatch sets the optional parameter which makes the operation
179720// fail if the object's ETag matches the given value. This is useful for
179721// getting updates only after the object has changed since the last
179722// request. Use googleapi.IsNotModified to check whether the response
179723// error from Do is the result of In-None-Match.
179724func (c *ZoneInPlaceSnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *ZoneInPlaceSnapshotsGetIamPolicyCall {
179725	c.ifNoneMatch_ = entityTag
179726	return c
179727}
179728
179729// Context sets the context to be used in this call's Do method. Any
179730// pending HTTP request will be aborted if the provided context is
179731// canceled.
179732func (c *ZoneInPlaceSnapshotsGetIamPolicyCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsGetIamPolicyCall {
179733	c.ctx_ = ctx
179734	return c
179735}
179736
179737// Header returns an http.Header that can be modified by the caller to
179738// add HTTP headers to the request.
179739func (c *ZoneInPlaceSnapshotsGetIamPolicyCall) Header() http.Header {
179740	if c.header_ == nil {
179741		c.header_ = make(http.Header)
179742	}
179743	return c.header_
179744}
179745
179746func (c *ZoneInPlaceSnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
179747	reqHeaders := make(http.Header)
179748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
179749	for k, v := range c.header_ {
179750		reqHeaders[k] = v
179751	}
179752	reqHeaders.Set("User-Agent", c.s.userAgent())
179753	if c.ifNoneMatch_ != "" {
179754		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
179755	}
179756	var body io.Reader = nil
179757	c.urlParams_.Set("alt", alt)
179758	c.urlParams_.Set("prettyPrint", "false")
179759	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots/{resource}/getIamPolicy")
179760	urls += "?" + c.urlParams_.Encode()
179761	req, err := http.NewRequest("GET", urls, body)
179762	if err != nil {
179763		return nil, err
179764	}
179765	req.Header = reqHeaders
179766	googleapi.Expand(req.URL, map[string]string{
179767		"project":  c.project,
179768		"zone":     c.zone,
179769		"resource": c.resource,
179770	})
179771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179772}
179773
179774// Do executes the "compute.zoneInPlaceSnapshots.getIamPolicy" call.
179775// Exactly one of *Policy or error will be non-nil. Any non-2xx status
179776// code is an error. Response headers are in either
179777// *Policy.ServerResponse.Header or (if a response was returned at all)
179778// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
179779// check whether the returned error was because http.StatusNotModified
179780// was returned.
179781func (c *ZoneInPlaceSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
179782	gensupport.SetOptions(c.urlParams_, opts...)
179783	res, err := c.doRequest("json")
179784	if res != nil && res.StatusCode == http.StatusNotModified {
179785		if res.Body != nil {
179786			res.Body.Close()
179787		}
179788		return nil, &googleapi.Error{
179789			Code:   res.StatusCode,
179790			Header: res.Header,
179791		}
179792	}
179793	if err != nil {
179794		return nil, err
179795	}
179796	defer googleapi.CloseBody(res)
179797	if err := googleapi.CheckResponse(res); err != nil {
179798		return nil, err
179799	}
179800	ret := &Policy{
179801		ServerResponse: googleapi.ServerResponse{
179802			Header:         res.Header,
179803			HTTPStatusCode: res.StatusCode,
179804		},
179805	}
179806	target := &ret
179807	if err := gensupport.DecodeResponse(target, res); err != nil {
179808		return nil, err
179809	}
179810	return ret, nil
179811	// {
179812	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
179813	//   "httpMethod": "GET",
179814	//   "id": "compute.zoneInPlaceSnapshots.getIamPolicy",
179815	//   "parameterOrder": [
179816	//     "project",
179817	//     "zone",
179818	//     "resource"
179819	//   ],
179820	//   "parameters": {
179821	//     "optionsRequestedPolicyVersion": {
179822	//       "description": "Requested IAM Policy version.",
179823	//       "format": "int32",
179824	//       "location": "query",
179825	//       "type": "integer"
179826	//     },
179827	//     "project": {
179828	//       "description": "Project ID for this request.",
179829	//       "location": "path",
179830	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179831	//       "required": true,
179832	//       "type": "string"
179833	//     },
179834	//     "resource": {
179835	//       "description": "Name or id of the resource for this request.",
179836	//       "location": "path",
179837	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179838	//       "required": true,
179839	//       "type": "string"
179840	//     },
179841	//     "zone": {
179842	//       "description": "The name of the zone for this request.",
179843	//       "location": "path",
179844	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179845	//       "required": true,
179846	//       "type": "string"
179847	//     }
179848	//   },
179849	//   "path": "{project}/zones/{zone}/inPlaceSnapshots/{resource}/getIamPolicy",
179850	//   "response": {
179851	//     "$ref": "Policy"
179852	//   },
179853	//   "scopes": [
179854	//     "https://www.googleapis.com/auth/cloud-platform",
179855	//     "https://www.googleapis.com/auth/compute",
179856	//     "https://www.googleapis.com/auth/compute.readonly"
179857	//   ]
179858	// }
179859
179860}
179861
179862// method id "compute.zoneInPlaceSnapshots.insert":
179863
179864type ZoneInPlaceSnapshotsInsertCall struct {
179865	s               *Service
179866	project         string
179867	zone            string
179868	inplacesnapshot *InPlaceSnapshot
179869	urlParams_      gensupport.URLParams
179870	ctx_            context.Context
179871	header_         http.Header
179872}
179873
179874// Insert: Creates an in-place snapshot in the specified zone.
179875func (r *ZoneInPlaceSnapshotsService) Insert(project string, zone string, inplacesnapshot *InPlaceSnapshot) *ZoneInPlaceSnapshotsInsertCall {
179876	c := &ZoneInPlaceSnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179877	c.project = project
179878	c.zone = zone
179879	c.inplacesnapshot = inplacesnapshot
179880	return c
179881}
179882
179883// RequestId sets the optional parameter "requestId": An optional
179884// request ID to identify requests. Specify a unique request ID so that
179885// if you must retry your request, the server will know to ignore the
179886// request if it has already been completed.
179887//
179888// For example, consider a situation where you make an initial request
179889// and the request times out. If you make the request again with the
179890// same request ID, the server can check if original operation with the
179891// same request ID was received, and if so, will ignore the second
179892// request. This prevents clients from accidentally creating duplicate
179893// commitments.
179894//
179895// The request ID must be a valid UUID with the exception that zero UUID
179896// is not supported (00000000-0000-0000-0000-000000000000).
179897func (c *ZoneInPlaceSnapshotsInsertCall) RequestId(requestId string) *ZoneInPlaceSnapshotsInsertCall {
179898	c.urlParams_.Set("requestId", requestId)
179899	return c
179900}
179901
179902// Fields allows partial responses to be retrieved. See
179903// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179904// for more information.
179905func (c *ZoneInPlaceSnapshotsInsertCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsInsertCall {
179906	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179907	return c
179908}
179909
179910// Context sets the context to be used in this call's Do method. Any
179911// pending HTTP request will be aborted if the provided context is
179912// canceled.
179913func (c *ZoneInPlaceSnapshotsInsertCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsInsertCall {
179914	c.ctx_ = ctx
179915	return c
179916}
179917
179918// Header returns an http.Header that can be modified by the caller to
179919// add HTTP headers to the request.
179920func (c *ZoneInPlaceSnapshotsInsertCall) Header() http.Header {
179921	if c.header_ == nil {
179922		c.header_ = make(http.Header)
179923	}
179924	return c.header_
179925}
179926
179927func (c *ZoneInPlaceSnapshotsInsertCall) doRequest(alt string) (*http.Response, error) {
179928	reqHeaders := make(http.Header)
179929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
179930	for k, v := range c.header_ {
179931		reqHeaders[k] = v
179932	}
179933	reqHeaders.Set("User-Agent", c.s.userAgent())
179934	var body io.Reader = nil
179935	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inplacesnapshot)
179936	if err != nil {
179937		return nil, err
179938	}
179939	reqHeaders.Set("Content-Type", "application/json")
179940	c.urlParams_.Set("alt", alt)
179941	c.urlParams_.Set("prettyPrint", "false")
179942	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots")
179943	urls += "?" + c.urlParams_.Encode()
179944	req, err := http.NewRequest("POST", urls, body)
179945	if err != nil {
179946		return nil, err
179947	}
179948	req.Header = reqHeaders
179949	googleapi.Expand(req.URL, map[string]string{
179950		"project": c.project,
179951		"zone":    c.zone,
179952	})
179953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179954}
179955
179956// Do executes the "compute.zoneInPlaceSnapshots.insert" call.
179957// Exactly one of *Operation or error will be non-nil. Any non-2xx
179958// status code is an error. Response headers are in either
179959// *Operation.ServerResponse.Header or (if a response was returned at
179960// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179961// to check whether the returned error was because
179962// http.StatusNotModified was returned.
179963func (c *ZoneInPlaceSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
179964	gensupport.SetOptions(c.urlParams_, opts...)
179965	res, err := c.doRequest("json")
179966	if res != nil && res.StatusCode == http.StatusNotModified {
179967		if res.Body != nil {
179968			res.Body.Close()
179969		}
179970		return nil, &googleapi.Error{
179971			Code:   res.StatusCode,
179972			Header: res.Header,
179973		}
179974	}
179975	if err != nil {
179976		return nil, err
179977	}
179978	defer googleapi.CloseBody(res)
179979	if err := googleapi.CheckResponse(res); err != nil {
179980		return nil, err
179981	}
179982	ret := &Operation{
179983		ServerResponse: googleapi.ServerResponse{
179984			Header:         res.Header,
179985			HTTPStatusCode: res.StatusCode,
179986		},
179987	}
179988	target := &ret
179989	if err := gensupport.DecodeResponse(target, res); err != nil {
179990		return nil, err
179991	}
179992	return ret, nil
179993	// {
179994	//   "description": "Creates an in-place snapshot in the specified zone.",
179995	//   "httpMethod": "POST",
179996	//   "id": "compute.zoneInPlaceSnapshots.insert",
179997	//   "parameterOrder": [
179998	//     "project",
179999	//     "zone"
180000	//   ],
180001	//   "parameters": {
180002	//     "project": {
180003	//       "description": "Project ID for this request.",
180004	//       "location": "path",
180005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180006	//       "required": true,
180007	//       "type": "string"
180008	//     },
180009	//     "requestId": {
180010	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
180011	//       "location": "query",
180012	//       "type": "string"
180013	//     },
180014	//     "zone": {
180015	//       "description": "Name of the zone for this request.",
180016	//       "location": "path",
180017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180018	//       "required": true,
180019	//       "type": "string"
180020	//     }
180021	//   },
180022	//   "path": "{project}/zones/{zone}/inPlaceSnapshots",
180023	//   "request": {
180024	//     "$ref": "InPlaceSnapshot"
180025	//   },
180026	//   "response": {
180027	//     "$ref": "Operation"
180028	//   },
180029	//   "scopes": [
180030	//     "https://www.googleapis.com/auth/cloud-platform",
180031	//     "https://www.googleapis.com/auth/compute"
180032	//   ]
180033	// }
180034
180035}
180036
180037// method id "compute.zoneInPlaceSnapshots.list":
180038
180039type ZoneInPlaceSnapshotsListCall struct {
180040	s            *Service
180041	project      string
180042	zone         string
180043	urlParams_   gensupport.URLParams
180044	ifNoneMatch_ string
180045	ctx_         context.Context
180046	header_      http.Header
180047}
180048
180049// List: Retrieves the list of InPlaceSnapshot resources contained
180050// within the specified zone.
180051func (r *ZoneInPlaceSnapshotsService) List(project string, zone string) *ZoneInPlaceSnapshotsListCall {
180052	c := &ZoneInPlaceSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180053	c.project = project
180054	c.zone = zone
180055	return c
180056}
180057
180058// Filter sets the optional parameter "filter": A filter expression that
180059// filters resources listed in the response. The expression must specify
180060// the field name, a comparison operator, and the value that you want to
180061// use for filtering. The value must be a string, a number, or a
180062// boolean. The comparison operator must be either `=`, `!=`, `>`, or
180063// `<`.
180064//
180065// For example, if you are filtering Compute Engine instances, you can
180066// exclude instances named `example-instance` by specifying `name !=
180067// example-instance`.
180068//
180069// You can also filter nested fields. For example, you could specify
180070// `scheduling.automaticRestart = false` to include instances only if
180071// they are not scheduled for automatic restarts. You can use filtering
180072// on nested fields to filter based on resource labels.
180073//
180074// To filter on multiple expressions, provide each separate expression
180075// within parentheses. For example: ``` (scheduling.automaticRestart =
180076// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
180077// is an `AND` expression. However, you can include `AND` and `OR`
180078// expressions explicitly. For example: ``` (cpuPlatform = "Intel
180079// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
180080// (scheduling.automaticRestart = true) ```
180081func (c *ZoneInPlaceSnapshotsListCall) Filter(filter string) *ZoneInPlaceSnapshotsListCall {
180082	c.urlParams_.Set("filter", filter)
180083	return c
180084}
180085
180086// MaxResults sets the optional parameter "maxResults": The maximum
180087// number of results per page that should be returned. If the number of
180088// available results is larger than `maxResults`, Compute Engine returns
180089// a `nextPageToken` that can be used to get the next page of results in
180090// subsequent list requests. Acceptable values are `0` to `500`,
180091// inclusive. (Default: `500`)
180092func (c *ZoneInPlaceSnapshotsListCall) MaxResults(maxResults int64) *ZoneInPlaceSnapshotsListCall {
180093	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
180094	return c
180095}
180096
180097// OrderBy sets the optional parameter "orderBy": Sorts list results by
180098// a certain order. By default, results are returned in alphanumerical
180099// order based on the resource name.
180100//
180101// You can also sort results in descending order based on the creation
180102// timestamp using `orderBy="creationTimestamp desc". This sorts
180103// results based on the `creationTimestamp` field in reverse
180104// chronological order (newest result first). Use this to sort resources
180105// like operations so that the newest operation is returned
180106// first.
180107//
180108// Currently, only sorting by `name` or `creationTimestamp desc` is
180109// supported.
180110func (c *ZoneInPlaceSnapshotsListCall) OrderBy(orderBy string) *ZoneInPlaceSnapshotsListCall {
180111	c.urlParams_.Set("orderBy", orderBy)
180112	return c
180113}
180114
180115// PageToken sets the optional parameter "pageToken": Specifies a page
180116// token to use. Set `pageToken` to the `nextPageToken` returned by a
180117// previous list request to get the next page of results.
180118func (c *ZoneInPlaceSnapshotsListCall) PageToken(pageToken string) *ZoneInPlaceSnapshotsListCall {
180119	c.urlParams_.Set("pageToken", pageToken)
180120	return c
180121}
180122
180123// ReturnPartialSuccess sets the optional parameter
180124// "returnPartialSuccess": Opt-in for partial success behavior which
180125// provides partial results in case of failure. The default value is
180126// false and the logic is the same as today.
180127func (c *ZoneInPlaceSnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneInPlaceSnapshotsListCall {
180128	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
180129	return c
180130}
180131
180132// Fields allows partial responses to be retrieved. See
180133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180134// for more information.
180135func (c *ZoneInPlaceSnapshotsListCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsListCall {
180136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180137	return c
180138}
180139
180140// IfNoneMatch sets the optional parameter which makes the operation
180141// fail if the object's ETag matches the given value. This is useful for
180142// getting updates only after the object has changed since the last
180143// request. Use googleapi.IsNotModified to check whether the response
180144// error from Do is the result of In-None-Match.
180145func (c *ZoneInPlaceSnapshotsListCall) IfNoneMatch(entityTag string) *ZoneInPlaceSnapshotsListCall {
180146	c.ifNoneMatch_ = entityTag
180147	return c
180148}
180149
180150// Context sets the context to be used in this call's Do method. Any
180151// pending HTTP request will be aborted if the provided context is
180152// canceled.
180153func (c *ZoneInPlaceSnapshotsListCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsListCall {
180154	c.ctx_ = ctx
180155	return c
180156}
180157
180158// Header returns an http.Header that can be modified by the caller to
180159// add HTTP headers to the request.
180160func (c *ZoneInPlaceSnapshotsListCall) Header() http.Header {
180161	if c.header_ == nil {
180162		c.header_ = make(http.Header)
180163	}
180164	return c.header_
180165}
180166
180167func (c *ZoneInPlaceSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
180168	reqHeaders := make(http.Header)
180169	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
180170	for k, v := range c.header_ {
180171		reqHeaders[k] = v
180172	}
180173	reqHeaders.Set("User-Agent", c.s.userAgent())
180174	if c.ifNoneMatch_ != "" {
180175		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
180176	}
180177	var body io.Reader = nil
180178	c.urlParams_.Set("alt", alt)
180179	c.urlParams_.Set("prettyPrint", "false")
180180	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots")
180181	urls += "?" + c.urlParams_.Encode()
180182	req, err := http.NewRequest("GET", urls, body)
180183	if err != nil {
180184		return nil, err
180185	}
180186	req.Header = reqHeaders
180187	googleapi.Expand(req.URL, map[string]string{
180188		"project": c.project,
180189		"zone":    c.zone,
180190	})
180191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180192}
180193
180194// Do executes the "compute.zoneInPlaceSnapshots.list" call.
180195// Exactly one of *InPlaceSnapshotList or error will be non-nil. Any
180196// non-2xx status code is an error. Response headers are in either
180197// *InPlaceSnapshotList.ServerResponse.Header or (if a response was
180198// returned at all) in error.(*googleapi.Error).Header. Use
180199// googleapi.IsNotModified to check whether the returned error was
180200// because http.StatusNotModified was returned.
180201func (c *ZoneInPlaceSnapshotsListCall) Do(opts ...googleapi.CallOption) (*InPlaceSnapshotList, error) {
180202	gensupport.SetOptions(c.urlParams_, opts...)
180203	res, err := c.doRequest("json")
180204	if res != nil && res.StatusCode == http.StatusNotModified {
180205		if res.Body != nil {
180206			res.Body.Close()
180207		}
180208		return nil, &googleapi.Error{
180209			Code:   res.StatusCode,
180210			Header: res.Header,
180211		}
180212	}
180213	if err != nil {
180214		return nil, err
180215	}
180216	defer googleapi.CloseBody(res)
180217	if err := googleapi.CheckResponse(res); err != nil {
180218		return nil, err
180219	}
180220	ret := &InPlaceSnapshotList{
180221		ServerResponse: googleapi.ServerResponse{
180222			Header:         res.Header,
180223			HTTPStatusCode: res.StatusCode,
180224		},
180225	}
180226	target := &ret
180227	if err := gensupport.DecodeResponse(target, res); err != nil {
180228		return nil, err
180229	}
180230	return ret, nil
180231	// {
180232	//   "description": "Retrieves the list of InPlaceSnapshot resources contained within the specified zone.",
180233	//   "httpMethod": "GET",
180234	//   "id": "compute.zoneInPlaceSnapshots.list",
180235	//   "parameterOrder": [
180236	//     "project",
180237	//     "zone"
180238	//   ],
180239	//   "parameters": {
180240	//     "filter": {
180241	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
180242	//       "location": "query",
180243	//       "type": "string"
180244	//     },
180245	//     "maxResults": {
180246	//       "default": "500",
180247	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
180248	//       "format": "uint32",
180249	//       "location": "query",
180250	//       "minimum": "0",
180251	//       "type": "integer"
180252	//     },
180253	//     "orderBy": {
180254	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
180255	//       "location": "query",
180256	//       "type": "string"
180257	//     },
180258	//     "pageToken": {
180259	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
180260	//       "location": "query",
180261	//       "type": "string"
180262	//     },
180263	//     "project": {
180264	//       "description": "Project ID for this request.",
180265	//       "location": "path",
180266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180267	//       "required": true,
180268	//       "type": "string"
180269	//     },
180270	//     "returnPartialSuccess": {
180271	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
180272	//       "location": "query",
180273	//       "type": "boolean"
180274	//     },
180275	//     "zone": {
180276	//       "description": "The name of the zone for this request.",
180277	//       "location": "path",
180278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180279	//       "required": true,
180280	//       "type": "string"
180281	//     }
180282	//   },
180283	//   "path": "{project}/zones/{zone}/inPlaceSnapshots",
180284	//   "response": {
180285	//     "$ref": "InPlaceSnapshotList"
180286	//   },
180287	//   "scopes": [
180288	//     "https://www.googleapis.com/auth/cloud-platform",
180289	//     "https://www.googleapis.com/auth/compute",
180290	//     "https://www.googleapis.com/auth/compute.readonly"
180291	//   ]
180292	// }
180293
180294}
180295
180296// Pages invokes f for each page of results.
180297// A non-nil error returned from f will halt the iteration.
180298// The provided context supersedes any context provided to the Context method.
180299func (c *ZoneInPlaceSnapshotsListCall) Pages(ctx context.Context, f func(*InPlaceSnapshotList) error) error {
180300	c.ctx_ = ctx
180301	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
180302	for {
180303		x, err := c.Do()
180304		if err != nil {
180305			return err
180306		}
180307		if err := f(x); err != nil {
180308			return err
180309		}
180310		if x.NextPageToken == "" {
180311			return nil
180312		}
180313		c.PageToken(x.NextPageToken)
180314	}
180315}
180316
180317// method id "compute.zoneInPlaceSnapshots.setIamPolicy":
180318
180319type ZoneInPlaceSnapshotsSetIamPolicyCall struct {
180320	s                    *Service
180321	project              string
180322	zone                 string
180323	resource             string
180324	zonesetpolicyrequest *ZoneSetPolicyRequest
180325	urlParams_           gensupport.URLParams
180326	ctx_                 context.Context
180327	header_              http.Header
180328}
180329
180330// SetIamPolicy: Sets the access control policy on the specified
180331// resource. Replaces any existing policy.
180332func (r *ZoneInPlaceSnapshotsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ZoneInPlaceSnapshotsSetIamPolicyCall {
180333	c := &ZoneInPlaceSnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180334	c.project = project
180335	c.zone = zone
180336	c.resource = resource
180337	c.zonesetpolicyrequest = zonesetpolicyrequest
180338	return c
180339}
180340
180341// Fields allows partial responses to be retrieved. See
180342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180343// for more information.
180344func (c *ZoneInPlaceSnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsSetIamPolicyCall {
180345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180346	return c
180347}
180348
180349// Context sets the context to be used in this call's Do method. Any
180350// pending HTTP request will be aborted if the provided context is
180351// canceled.
180352func (c *ZoneInPlaceSnapshotsSetIamPolicyCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsSetIamPolicyCall {
180353	c.ctx_ = ctx
180354	return c
180355}
180356
180357// Header returns an http.Header that can be modified by the caller to
180358// add HTTP headers to the request.
180359func (c *ZoneInPlaceSnapshotsSetIamPolicyCall) Header() http.Header {
180360	if c.header_ == nil {
180361		c.header_ = make(http.Header)
180362	}
180363	return c.header_
180364}
180365
180366func (c *ZoneInPlaceSnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
180367	reqHeaders := make(http.Header)
180368	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
180369	for k, v := range c.header_ {
180370		reqHeaders[k] = v
180371	}
180372	reqHeaders.Set("User-Agent", c.s.userAgent())
180373	var body io.Reader = nil
180374	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
180375	if err != nil {
180376		return nil, err
180377	}
180378	reqHeaders.Set("Content-Type", "application/json")
180379	c.urlParams_.Set("alt", alt)
180380	c.urlParams_.Set("prettyPrint", "false")
180381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots/{resource}/setIamPolicy")
180382	urls += "?" + c.urlParams_.Encode()
180383	req, err := http.NewRequest("POST", urls, body)
180384	if err != nil {
180385		return nil, err
180386	}
180387	req.Header = reqHeaders
180388	googleapi.Expand(req.URL, map[string]string{
180389		"project":  c.project,
180390		"zone":     c.zone,
180391		"resource": c.resource,
180392	})
180393	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180394}
180395
180396// Do executes the "compute.zoneInPlaceSnapshots.setIamPolicy" call.
180397// Exactly one of *Policy or error will be non-nil. Any non-2xx status
180398// code is an error. Response headers are in either
180399// *Policy.ServerResponse.Header or (if a response was returned at all)
180400// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
180401// check whether the returned error was because http.StatusNotModified
180402// was returned.
180403func (c *ZoneInPlaceSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
180404	gensupport.SetOptions(c.urlParams_, opts...)
180405	res, err := c.doRequest("json")
180406	if res != nil && res.StatusCode == http.StatusNotModified {
180407		if res.Body != nil {
180408			res.Body.Close()
180409		}
180410		return nil, &googleapi.Error{
180411			Code:   res.StatusCode,
180412			Header: res.Header,
180413		}
180414	}
180415	if err != nil {
180416		return nil, err
180417	}
180418	defer googleapi.CloseBody(res)
180419	if err := googleapi.CheckResponse(res); err != nil {
180420		return nil, err
180421	}
180422	ret := &Policy{
180423		ServerResponse: googleapi.ServerResponse{
180424			Header:         res.Header,
180425			HTTPStatusCode: res.StatusCode,
180426		},
180427	}
180428	target := &ret
180429	if err := gensupport.DecodeResponse(target, res); err != nil {
180430		return nil, err
180431	}
180432	return ret, nil
180433	// {
180434	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
180435	//   "httpMethod": "POST",
180436	//   "id": "compute.zoneInPlaceSnapshots.setIamPolicy",
180437	//   "parameterOrder": [
180438	//     "project",
180439	//     "zone",
180440	//     "resource"
180441	//   ],
180442	//   "parameters": {
180443	//     "project": {
180444	//       "description": "Project ID for this request.",
180445	//       "location": "path",
180446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180447	//       "required": true,
180448	//       "type": "string"
180449	//     },
180450	//     "resource": {
180451	//       "description": "Name or id of the resource for this request.",
180452	//       "location": "path",
180453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180454	//       "required": true,
180455	//       "type": "string"
180456	//     },
180457	//     "zone": {
180458	//       "description": "The name of the zone for this request.",
180459	//       "location": "path",
180460	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180461	//       "required": true,
180462	//       "type": "string"
180463	//     }
180464	//   },
180465	//   "path": "{project}/zones/{zone}/inPlaceSnapshots/{resource}/setIamPolicy",
180466	//   "request": {
180467	//     "$ref": "ZoneSetPolicyRequest"
180468	//   },
180469	//   "response": {
180470	//     "$ref": "Policy"
180471	//   },
180472	//   "scopes": [
180473	//     "https://www.googleapis.com/auth/cloud-platform",
180474	//     "https://www.googleapis.com/auth/compute"
180475	//   ]
180476	// }
180477
180478}
180479
180480// method id "compute.zoneInPlaceSnapshots.setLabels":
180481
180482type ZoneInPlaceSnapshotsSetLabelsCall struct {
180483	s                    *Service
180484	project              string
180485	zone                 string
180486	resource             string
180487	zonesetlabelsrequest *ZoneSetLabelsRequest
180488	urlParams_           gensupport.URLParams
180489	ctx_                 context.Context
180490	header_              http.Header
180491}
180492
180493// SetLabels: Sets the labels on a inPlaceSnapshot in the given zone. To
180494// learn more about labels, read the Labeling Resources documentation.
180495func (r *ZoneInPlaceSnapshotsService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *ZoneInPlaceSnapshotsSetLabelsCall {
180496	c := &ZoneInPlaceSnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180497	c.project = project
180498	c.zone = zone
180499	c.resource = resource
180500	c.zonesetlabelsrequest = zonesetlabelsrequest
180501	return c
180502}
180503
180504// RequestId sets the optional parameter "requestId": An optional
180505// request ID to identify requests. Specify a unique request ID so that
180506// if you must retry your request, the server will know to ignore the
180507// request if it has already been completed.
180508//
180509// For example, consider a situation where you make an initial request
180510// and the request times out. If you make the request again with the
180511// same request ID, the server can check if original operation with the
180512// same request ID was received, and if so, will ignore the second
180513// request. This prevents clients from accidentally creating duplicate
180514// commitments.
180515//
180516// The request ID must be a valid UUID with the exception that zero UUID
180517// is not supported (00000000-0000-0000-0000-000000000000).
180518func (c *ZoneInPlaceSnapshotsSetLabelsCall) RequestId(requestId string) *ZoneInPlaceSnapshotsSetLabelsCall {
180519	c.urlParams_.Set("requestId", requestId)
180520	return c
180521}
180522
180523// Fields allows partial responses to be retrieved. See
180524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180525// for more information.
180526func (c *ZoneInPlaceSnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsSetLabelsCall {
180527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180528	return c
180529}
180530
180531// Context sets the context to be used in this call's Do method. Any
180532// pending HTTP request will be aborted if the provided context is
180533// canceled.
180534func (c *ZoneInPlaceSnapshotsSetLabelsCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsSetLabelsCall {
180535	c.ctx_ = ctx
180536	return c
180537}
180538
180539// Header returns an http.Header that can be modified by the caller to
180540// add HTTP headers to the request.
180541func (c *ZoneInPlaceSnapshotsSetLabelsCall) Header() http.Header {
180542	if c.header_ == nil {
180543		c.header_ = make(http.Header)
180544	}
180545	return c.header_
180546}
180547
180548func (c *ZoneInPlaceSnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
180549	reqHeaders := make(http.Header)
180550	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
180551	for k, v := range c.header_ {
180552		reqHeaders[k] = v
180553	}
180554	reqHeaders.Set("User-Agent", c.s.userAgent())
180555	var body io.Reader = nil
180556	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
180557	if err != nil {
180558		return nil, err
180559	}
180560	reqHeaders.Set("Content-Type", "application/json")
180561	c.urlParams_.Set("alt", alt)
180562	c.urlParams_.Set("prettyPrint", "false")
180563	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots/{resource}/setLabels")
180564	urls += "?" + c.urlParams_.Encode()
180565	req, err := http.NewRequest("POST", urls, body)
180566	if err != nil {
180567		return nil, err
180568	}
180569	req.Header = reqHeaders
180570	googleapi.Expand(req.URL, map[string]string{
180571		"project":  c.project,
180572		"zone":     c.zone,
180573		"resource": c.resource,
180574	})
180575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180576}
180577
180578// Do executes the "compute.zoneInPlaceSnapshots.setLabels" call.
180579// Exactly one of *Operation or error will be non-nil. Any non-2xx
180580// status code is an error. Response headers are in either
180581// *Operation.ServerResponse.Header or (if a response was returned at
180582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
180583// to check whether the returned error was because
180584// http.StatusNotModified was returned.
180585func (c *ZoneInPlaceSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
180586	gensupport.SetOptions(c.urlParams_, opts...)
180587	res, err := c.doRequest("json")
180588	if res != nil && res.StatusCode == http.StatusNotModified {
180589		if res.Body != nil {
180590			res.Body.Close()
180591		}
180592		return nil, &googleapi.Error{
180593			Code:   res.StatusCode,
180594			Header: res.Header,
180595		}
180596	}
180597	if err != nil {
180598		return nil, err
180599	}
180600	defer googleapi.CloseBody(res)
180601	if err := googleapi.CheckResponse(res); err != nil {
180602		return nil, err
180603	}
180604	ret := &Operation{
180605		ServerResponse: googleapi.ServerResponse{
180606			Header:         res.Header,
180607			HTTPStatusCode: res.StatusCode,
180608		},
180609	}
180610	target := &ret
180611	if err := gensupport.DecodeResponse(target, res); err != nil {
180612		return nil, err
180613	}
180614	return ret, nil
180615	// {
180616	//   "description": "Sets the labels on a inPlaceSnapshot in the given zone. To learn more about labels, read the Labeling Resources documentation.",
180617	//   "httpMethod": "POST",
180618	//   "id": "compute.zoneInPlaceSnapshots.setLabels",
180619	//   "parameterOrder": [
180620	//     "project",
180621	//     "zone",
180622	//     "resource"
180623	//   ],
180624	//   "parameters": {
180625	//     "project": {
180626	//       "description": "Project ID for this request.",
180627	//       "location": "path",
180628	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180629	//       "required": true,
180630	//       "type": "string"
180631	//     },
180632	//     "requestId": {
180633	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
180634	//       "location": "query",
180635	//       "type": "string"
180636	//     },
180637	//     "resource": {
180638	//       "description": "Name or id of the resource for this request.",
180639	//       "location": "path",
180640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180641	//       "required": true,
180642	//       "type": "string"
180643	//     },
180644	//     "zone": {
180645	//       "description": "The name of the zone for this request.",
180646	//       "location": "path",
180647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180648	//       "required": true,
180649	//       "type": "string"
180650	//     }
180651	//   },
180652	//   "path": "{project}/zones/{zone}/inPlaceSnapshots/{resource}/setLabels",
180653	//   "request": {
180654	//     "$ref": "ZoneSetLabelsRequest"
180655	//   },
180656	//   "response": {
180657	//     "$ref": "Operation"
180658	//   },
180659	//   "scopes": [
180660	//     "https://www.googleapis.com/auth/cloud-platform",
180661	//     "https://www.googleapis.com/auth/compute"
180662	//   ]
180663	// }
180664
180665}
180666
180667// method id "compute.zoneInPlaceSnapshots.testIamPermissions":
180668
180669type ZoneInPlaceSnapshotsTestIamPermissionsCall struct {
180670	s                      *Service
180671	project                string
180672	zone                   string
180673	resource               string
180674	testpermissionsrequest *TestPermissionsRequest
180675	urlParams_             gensupport.URLParams
180676	ctx_                   context.Context
180677	header_                http.Header
180678}
180679
180680// TestIamPermissions: Returns permissions that a caller has on the
180681// specified resource.
180682func (r *ZoneInPlaceSnapshotsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ZoneInPlaceSnapshotsTestIamPermissionsCall {
180683	c := &ZoneInPlaceSnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180684	c.project = project
180685	c.zone = zone
180686	c.resource = resource
180687	c.testpermissionsrequest = testpermissionsrequest
180688	return c
180689}
180690
180691// Fields allows partial responses to be retrieved. See
180692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180693// for more information.
180694func (c *ZoneInPlaceSnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ZoneInPlaceSnapshotsTestIamPermissionsCall {
180695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180696	return c
180697}
180698
180699// Context sets the context to be used in this call's Do method. Any
180700// pending HTTP request will be aborted if the provided context is
180701// canceled.
180702func (c *ZoneInPlaceSnapshotsTestIamPermissionsCall) Context(ctx context.Context) *ZoneInPlaceSnapshotsTestIamPermissionsCall {
180703	c.ctx_ = ctx
180704	return c
180705}
180706
180707// Header returns an http.Header that can be modified by the caller to
180708// add HTTP headers to the request.
180709func (c *ZoneInPlaceSnapshotsTestIamPermissionsCall) Header() http.Header {
180710	if c.header_ == nil {
180711		c.header_ = make(http.Header)
180712	}
180713	return c.header_
180714}
180715
180716func (c *ZoneInPlaceSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
180717	reqHeaders := make(http.Header)
180718	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
180719	for k, v := range c.header_ {
180720		reqHeaders[k] = v
180721	}
180722	reqHeaders.Set("User-Agent", c.s.userAgent())
180723	var body io.Reader = nil
180724	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
180725	if err != nil {
180726		return nil, err
180727	}
180728	reqHeaders.Set("Content-Type", "application/json")
180729	c.urlParams_.Set("alt", alt)
180730	c.urlParams_.Set("prettyPrint", "false")
180731	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/inPlaceSnapshots/{resource}/testIamPermissions")
180732	urls += "?" + c.urlParams_.Encode()
180733	req, err := http.NewRequest("POST", urls, body)
180734	if err != nil {
180735		return nil, err
180736	}
180737	req.Header = reqHeaders
180738	googleapi.Expand(req.URL, map[string]string{
180739		"project":  c.project,
180740		"zone":     c.zone,
180741		"resource": c.resource,
180742	})
180743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180744}
180745
180746// Do executes the "compute.zoneInPlaceSnapshots.testIamPermissions" call.
180747// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
180748// non-2xx status code is an error. Response headers are in either
180749// *TestPermissionsResponse.ServerResponse.Header or (if a response was
180750// returned at all) in error.(*googleapi.Error).Header. Use
180751// googleapi.IsNotModified to check whether the returned error was
180752// because http.StatusNotModified was returned.
180753func (c *ZoneInPlaceSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
180754	gensupport.SetOptions(c.urlParams_, opts...)
180755	res, err := c.doRequest("json")
180756	if res != nil && res.StatusCode == http.StatusNotModified {
180757		if res.Body != nil {
180758			res.Body.Close()
180759		}
180760		return nil, &googleapi.Error{
180761			Code:   res.StatusCode,
180762			Header: res.Header,
180763		}
180764	}
180765	if err != nil {
180766		return nil, err
180767	}
180768	defer googleapi.CloseBody(res)
180769	if err := googleapi.CheckResponse(res); err != nil {
180770		return nil, err
180771	}
180772	ret := &TestPermissionsResponse{
180773		ServerResponse: googleapi.ServerResponse{
180774			Header:         res.Header,
180775			HTTPStatusCode: res.StatusCode,
180776		},
180777	}
180778	target := &ret
180779	if err := gensupport.DecodeResponse(target, res); err != nil {
180780		return nil, err
180781	}
180782	return ret, nil
180783	// {
180784	//   "description": "Returns permissions that a caller has on the specified resource.",
180785	//   "httpMethod": "POST",
180786	//   "id": "compute.zoneInPlaceSnapshots.testIamPermissions",
180787	//   "parameterOrder": [
180788	//     "project",
180789	//     "zone",
180790	//     "resource"
180791	//   ],
180792	//   "parameters": {
180793	//     "project": {
180794	//       "description": "Project ID for this request.",
180795	//       "location": "path",
180796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180797	//       "required": true,
180798	//       "type": "string"
180799	//     },
180800	//     "resource": {
180801	//       "description": "Name or id of the resource for this request.",
180802	//       "location": "path",
180803	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180804	//       "required": true,
180805	//       "type": "string"
180806	//     },
180807	//     "zone": {
180808	//       "description": "The name of the zone for this request.",
180809	//       "location": "path",
180810	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180811	//       "required": true,
180812	//       "type": "string"
180813	//     }
180814	//   },
180815	//   "path": "{project}/zones/{zone}/inPlaceSnapshots/{resource}/testIamPermissions",
180816	//   "request": {
180817	//     "$ref": "TestPermissionsRequest"
180818	//   },
180819	//   "response": {
180820	//     "$ref": "TestPermissionsResponse"
180821	//   },
180822	//   "scopes": [
180823	//     "https://www.googleapis.com/auth/cloud-platform",
180824	//     "https://www.googleapis.com/auth/compute",
180825	//     "https://www.googleapis.com/auth/compute.readonly"
180826	//   ]
180827	// }
180828
180829}
180830
180831// method id "compute.zoneOperations.delete":
180832
180833type ZoneOperationsDeleteCall struct {
180834	s          *Service
180835	project    string
180836	zone       string
180837	operation  string
180838	urlParams_ gensupport.URLParams
180839	ctx_       context.Context
180840	header_    http.Header
180841}
180842
180843// Delete: Deletes the specified zone-specific Operations resource.
180844// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
180845func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
180846	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180847	c.project = project
180848	c.zone = zone
180849	c.operation = operation
180850	return c
180851}
180852
180853// Fields allows partial responses to be retrieved. See
180854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180855// for more information.
180856func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
180857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180858	return c
180859}
180860
180861// Context sets the context to be used in this call's Do method. Any
180862// pending HTTP request will be aborted if the provided context is
180863// canceled.
180864func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
180865	c.ctx_ = ctx
180866	return c
180867}
180868
180869// Header returns an http.Header that can be modified by the caller to
180870// add HTTP headers to the request.
180871func (c *ZoneOperationsDeleteCall) Header() http.Header {
180872	if c.header_ == nil {
180873		c.header_ = make(http.Header)
180874	}
180875	return c.header_
180876}
180877
180878func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
180879	reqHeaders := make(http.Header)
180880	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
180881	for k, v := range c.header_ {
180882		reqHeaders[k] = v
180883	}
180884	reqHeaders.Set("User-Agent", c.s.userAgent())
180885	var body io.Reader = nil
180886	c.urlParams_.Set("alt", alt)
180887	c.urlParams_.Set("prettyPrint", "false")
180888	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
180889	urls += "?" + c.urlParams_.Encode()
180890	req, err := http.NewRequest("DELETE", urls, body)
180891	if err != nil {
180892		return nil, err
180893	}
180894	req.Header = reqHeaders
180895	googleapi.Expand(req.URL, map[string]string{
180896		"project":   c.project,
180897		"zone":      c.zone,
180898		"operation": c.operation,
180899	})
180900	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180901}
180902
180903// Do executes the "compute.zoneOperations.delete" call.
180904func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
180905	gensupport.SetOptions(c.urlParams_, opts...)
180906	res, err := c.doRequest("json")
180907	if err != nil {
180908		return err
180909	}
180910	defer googleapi.CloseBody(res)
180911	if err := googleapi.CheckResponse(res); err != nil {
180912		return err
180913	}
180914	return nil
180915	// {
180916	//   "description": "Deletes the specified zone-specific Operations resource.",
180917	//   "httpMethod": "DELETE",
180918	//   "id": "compute.zoneOperations.delete",
180919	//   "parameterOrder": [
180920	//     "project",
180921	//     "zone",
180922	//     "operation"
180923	//   ],
180924	//   "parameters": {
180925	//     "operation": {
180926	//       "description": "Name of the Operations resource to delete.",
180927	//       "location": "path",
180928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180929	//       "required": true,
180930	//       "type": "string"
180931	//     },
180932	//     "project": {
180933	//       "description": "Project ID for this request.",
180934	//       "location": "path",
180935	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180936	//       "required": true,
180937	//       "type": "string"
180938	//     },
180939	//     "zone": {
180940	//       "description": "Name of the zone for this request.",
180941	//       "location": "path",
180942	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180943	//       "required": true,
180944	//       "type": "string"
180945	//     }
180946	//   },
180947	//   "path": "{project}/zones/{zone}/operations/{operation}",
180948	//   "scopes": [
180949	//     "https://www.googleapis.com/auth/cloud-platform",
180950	//     "https://www.googleapis.com/auth/compute"
180951	//   ]
180952	// }
180953
180954}
180955
180956// method id "compute.zoneOperations.get":
180957
180958type ZoneOperationsGetCall struct {
180959	s            *Service
180960	project      string
180961	zone         string
180962	operation    string
180963	urlParams_   gensupport.URLParams
180964	ifNoneMatch_ string
180965	ctx_         context.Context
180966	header_      http.Header
180967}
180968
180969// Get: Retrieves the specified zone-specific Operations resource.
180970// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
180971func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
180972	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180973	c.project = project
180974	c.zone = zone
180975	c.operation = operation
180976	return c
180977}
180978
180979// Fields allows partial responses to be retrieved. See
180980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180981// for more information.
180982func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
180983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180984	return c
180985}
180986
180987// IfNoneMatch sets the optional parameter which makes the operation
180988// fail if the object's ETag matches the given value. This is useful for
180989// getting updates only after the object has changed since the last
180990// request. Use googleapi.IsNotModified to check whether the response
180991// error from Do is the result of In-None-Match.
180992func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
180993	c.ifNoneMatch_ = entityTag
180994	return c
180995}
180996
180997// Context sets the context to be used in this call's Do method. Any
180998// pending HTTP request will be aborted if the provided context is
180999// canceled.
181000func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
181001	c.ctx_ = ctx
181002	return c
181003}
181004
181005// Header returns an http.Header that can be modified by the caller to
181006// add HTTP headers to the request.
181007func (c *ZoneOperationsGetCall) Header() http.Header {
181008	if c.header_ == nil {
181009		c.header_ = make(http.Header)
181010	}
181011	return c.header_
181012}
181013
181014func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
181015	reqHeaders := make(http.Header)
181016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
181017	for k, v := range c.header_ {
181018		reqHeaders[k] = v
181019	}
181020	reqHeaders.Set("User-Agent", c.s.userAgent())
181021	if c.ifNoneMatch_ != "" {
181022		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181023	}
181024	var body io.Reader = nil
181025	c.urlParams_.Set("alt", alt)
181026	c.urlParams_.Set("prettyPrint", "false")
181027	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
181028	urls += "?" + c.urlParams_.Encode()
181029	req, err := http.NewRequest("GET", urls, body)
181030	if err != nil {
181031		return nil, err
181032	}
181033	req.Header = reqHeaders
181034	googleapi.Expand(req.URL, map[string]string{
181035		"project":   c.project,
181036		"zone":      c.zone,
181037		"operation": c.operation,
181038	})
181039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181040}
181041
181042// Do executes the "compute.zoneOperations.get" call.
181043// Exactly one of *Operation or error will be non-nil. Any non-2xx
181044// status code is an error. Response headers are in either
181045// *Operation.ServerResponse.Header or (if a response was returned at
181046// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
181047// to check whether the returned error was because
181048// http.StatusNotModified was returned.
181049func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
181050	gensupport.SetOptions(c.urlParams_, opts...)
181051	res, err := c.doRequest("json")
181052	if res != nil && res.StatusCode == http.StatusNotModified {
181053		if res.Body != nil {
181054			res.Body.Close()
181055		}
181056		return nil, &googleapi.Error{
181057			Code:   res.StatusCode,
181058			Header: res.Header,
181059		}
181060	}
181061	if err != nil {
181062		return nil, err
181063	}
181064	defer googleapi.CloseBody(res)
181065	if err := googleapi.CheckResponse(res); err != nil {
181066		return nil, err
181067	}
181068	ret := &Operation{
181069		ServerResponse: googleapi.ServerResponse{
181070			Header:         res.Header,
181071			HTTPStatusCode: res.StatusCode,
181072		},
181073	}
181074	target := &ret
181075	if err := gensupport.DecodeResponse(target, res); err != nil {
181076		return nil, err
181077	}
181078	return ret, nil
181079	// {
181080	//   "description": "Retrieves the specified zone-specific Operations resource.",
181081	//   "httpMethod": "GET",
181082	//   "id": "compute.zoneOperations.get",
181083	//   "parameterOrder": [
181084	//     "project",
181085	//     "zone",
181086	//     "operation"
181087	//   ],
181088	//   "parameters": {
181089	//     "operation": {
181090	//       "description": "Name of the Operations resource to return.",
181091	//       "location": "path",
181092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
181093	//       "required": true,
181094	//       "type": "string"
181095	//     },
181096	//     "project": {
181097	//       "description": "Project ID for this request.",
181098	//       "location": "path",
181099	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181100	//       "required": true,
181101	//       "type": "string"
181102	//     },
181103	//     "zone": {
181104	//       "description": "Name of the zone for this request.",
181105	//       "location": "path",
181106	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
181107	//       "required": true,
181108	//       "type": "string"
181109	//     }
181110	//   },
181111	//   "path": "{project}/zones/{zone}/operations/{operation}",
181112	//   "response": {
181113	//     "$ref": "Operation"
181114	//   },
181115	//   "scopes": [
181116	//     "https://www.googleapis.com/auth/cloud-platform",
181117	//     "https://www.googleapis.com/auth/compute",
181118	//     "https://www.googleapis.com/auth/compute.readonly"
181119	//   ]
181120	// }
181121
181122}
181123
181124// method id "compute.zoneOperations.list":
181125
181126type ZoneOperationsListCall struct {
181127	s            *Service
181128	project      string
181129	zone         string
181130	urlParams_   gensupport.URLParams
181131	ifNoneMatch_ string
181132	ctx_         context.Context
181133	header_      http.Header
181134}
181135
181136// List: Retrieves a list of Operation resources contained within the
181137// specified zone.
181138// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
181139func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
181140	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181141	c.project = project
181142	c.zone = zone
181143	return c
181144}
181145
181146// Filter sets the optional parameter "filter": A filter expression that
181147// filters resources listed in the response. The expression must specify
181148// the field name, a comparison operator, and the value that you want to
181149// use for filtering. The value must be a string, a number, or a
181150// boolean. The comparison operator must be either `=`, `!=`, `>`, or
181151// `<`.
181152//
181153// For example, if you are filtering Compute Engine instances, you can
181154// exclude instances named `example-instance` by specifying `name !=
181155// example-instance`.
181156//
181157// You can also filter nested fields. For example, you could specify
181158// `scheduling.automaticRestart = false` to include instances only if
181159// they are not scheduled for automatic restarts. You can use filtering
181160// on nested fields to filter based on resource labels.
181161//
181162// To filter on multiple expressions, provide each separate expression
181163// within parentheses. For example: ``` (scheduling.automaticRestart =
181164// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
181165// is an `AND` expression. However, you can include `AND` and `OR`
181166// expressions explicitly. For example: ``` (cpuPlatform = "Intel
181167// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
181168// (scheduling.automaticRestart = true) ```
181169func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
181170	c.urlParams_.Set("filter", filter)
181171	return c
181172}
181173
181174// MaxResults sets the optional parameter "maxResults": The maximum
181175// number of results per page that should be returned. If the number of
181176// available results is larger than `maxResults`, Compute Engine returns
181177// a `nextPageToken` that can be used to get the next page of results in
181178// subsequent list requests. Acceptable values are `0` to `500`,
181179// inclusive. (Default: `500`)
181180func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
181181	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
181182	return c
181183}
181184
181185// OrderBy sets the optional parameter "orderBy": Sorts list results by
181186// a certain order. By default, results are returned in alphanumerical
181187// order based on the resource name.
181188//
181189// You can also sort results in descending order based on the creation
181190// timestamp using `orderBy="creationTimestamp desc". This sorts
181191// results based on the `creationTimestamp` field in reverse
181192// chronological order (newest result first). Use this to sort resources
181193// like operations so that the newest operation is returned
181194// first.
181195//
181196// Currently, only sorting by `name` or `creationTimestamp desc` is
181197// supported.
181198func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
181199	c.urlParams_.Set("orderBy", orderBy)
181200	return c
181201}
181202
181203// PageToken sets the optional parameter "pageToken": Specifies a page
181204// token to use. Set `pageToken` to the `nextPageToken` returned by a
181205// previous list request to get the next page of results.
181206func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
181207	c.urlParams_.Set("pageToken", pageToken)
181208	return c
181209}
181210
181211// ReturnPartialSuccess sets the optional parameter
181212// "returnPartialSuccess": Opt-in for partial success behavior which
181213// provides partial results in case of failure. The default value is
181214// false and the logic is the same as today.
181215func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall {
181216	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
181217	return c
181218}
181219
181220// Fields allows partial responses to be retrieved. See
181221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181222// for more information.
181223func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
181224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181225	return c
181226}
181227
181228// IfNoneMatch sets the optional parameter which makes the operation
181229// fail if the object's ETag matches the given value. This is useful for
181230// getting updates only after the object has changed since the last
181231// request. Use googleapi.IsNotModified to check whether the response
181232// error from Do is the result of In-None-Match.
181233func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
181234	c.ifNoneMatch_ = entityTag
181235	return c
181236}
181237
181238// Context sets the context to be used in this call's Do method. Any
181239// pending HTTP request will be aborted if the provided context is
181240// canceled.
181241func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
181242	c.ctx_ = ctx
181243	return c
181244}
181245
181246// Header returns an http.Header that can be modified by the caller to
181247// add HTTP headers to the request.
181248func (c *ZoneOperationsListCall) Header() http.Header {
181249	if c.header_ == nil {
181250		c.header_ = make(http.Header)
181251	}
181252	return c.header_
181253}
181254
181255func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
181256	reqHeaders := make(http.Header)
181257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
181258	for k, v := range c.header_ {
181259		reqHeaders[k] = v
181260	}
181261	reqHeaders.Set("User-Agent", c.s.userAgent())
181262	if c.ifNoneMatch_ != "" {
181263		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181264	}
181265	var body io.Reader = nil
181266	c.urlParams_.Set("alt", alt)
181267	c.urlParams_.Set("prettyPrint", "false")
181268	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
181269	urls += "?" + c.urlParams_.Encode()
181270	req, err := http.NewRequest("GET", urls, body)
181271	if err != nil {
181272		return nil, err
181273	}
181274	req.Header = reqHeaders
181275	googleapi.Expand(req.URL, map[string]string{
181276		"project": c.project,
181277		"zone":    c.zone,
181278	})
181279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181280}
181281
181282// Do executes the "compute.zoneOperations.list" call.
181283// Exactly one of *OperationList or error will be non-nil. Any non-2xx
181284// status code is an error. Response headers are in either
181285// *OperationList.ServerResponse.Header or (if a response was returned
181286// at all) in error.(*googleapi.Error).Header. Use
181287// googleapi.IsNotModified to check whether the returned error was
181288// because http.StatusNotModified was returned.
181289func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
181290	gensupport.SetOptions(c.urlParams_, opts...)
181291	res, err := c.doRequest("json")
181292	if res != nil && res.StatusCode == http.StatusNotModified {
181293		if res.Body != nil {
181294			res.Body.Close()
181295		}
181296		return nil, &googleapi.Error{
181297			Code:   res.StatusCode,
181298			Header: res.Header,
181299		}
181300	}
181301	if err != nil {
181302		return nil, err
181303	}
181304	defer googleapi.CloseBody(res)
181305	if err := googleapi.CheckResponse(res); err != nil {
181306		return nil, err
181307	}
181308	ret := &OperationList{
181309		ServerResponse: googleapi.ServerResponse{
181310			Header:         res.Header,
181311			HTTPStatusCode: res.StatusCode,
181312		},
181313	}
181314	target := &ret
181315	if err := gensupport.DecodeResponse(target, res); err != nil {
181316		return nil, err
181317	}
181318	return ret, nil
181319	// {
181320	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
181321	//   "httpMethod": "GET",
181322	//   "id": "compute.zoneOperations.list",
181323	//   "parameterOrder": [
181324	//     "project",
181325	//     "zone"
181326	//   ],
181327	//   "parameters": {
181328	//     "filter": {
181329	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
181330	//       "location": "query",
181331	//       "type": "string"
181332	//     },
181333	//     "maxResults": {
181334	//       "default": "500",
181335	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
181336	//       "format": "uint32",
181337	//       "location": "query",
181338	//       "minimum": "0",
181339	//       "type": "integer"
181340	//     },
181341	//     "orderBy": {
181342	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
181343	//       "location": "query",
181344	//       "type": "string"
181345	//     },
181346	//     "pageToken": {
181347	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
181348	//       "location": "query",
181349	//       "type": "string"
181350	//     },
181351	//     "project": {
181352	//       "description": "Project ID for this request.",
181353	//       "location": "path",
181354	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181355	//       "required": true,
181356	//       "type": "string"
181357	//     },
181358	//     "returnPartialSuccess": {
181359	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
181360	//       "location": "query",
181361	//       "type": "boolean"
181362	//     },
181363	//     "zone": {
181364	//       "description": "Name of the zone for request.",
181365	//       "location": "path",
181366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
181367	//       "required": true,
181368	//       "type": "string"
181369	//     }
181370	//   },
181371	//   "path": "{project}/zones/{zone}/operations",
181372	//   "response": {
181373	//     "$ref": "OperationList"
181374	//   },
181375	//   "scopes": [
181376	//     "https://www.googleapis.com/auth/cloud-platform",
181377	//     "https://www.googleapis.com/auth/compute",
181378	//     "https://www.googleapis.com/auth/compute.readonly"
181379	//   ]
181380	// }
181381
181382}
181383
181384// Pages invokes f for each page of results.
181385// A non-nil error returned from f will halt the iteration.
181386// The provided context supersedes any context provided to the Context method.
181387func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
181388	c.ctx_ = ctx
181389	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
181390	for {
181391		x, err := c.Do()
181392		if err != nil {
181393			return err
181394		}
181395		if err := f(x); err != nil {
181396			return err
181397		}
181398		if x.NextPageToken == "" {
181399			return nil
181400		}
181401		c.PageToken(x.NextPageToken)
181402	}
181403}
181404
181405// method id "compute.zoneOperations.wait":
181406
181407type ZoneOperationsWaitCall struct {
181408	s          *Service
181409	project    string
181410	zone       string
181411	operation  string
181412	urlParams_ gensupport.URLParams
181413	ctx_       context.Context
181414	header_    http.Header
181415}
181416
181417// Wait: Waits for the specified Operation resource to return as `DONE`
181418// or for the request to approach the 2 minute deadline, and retrieves
181419// the specified Operation resource. This method differs from the `GET`
181420// method in that it waits for no more than the default deadline (2
181421// minutes) and then returns the current state of the operation, which
181422// might be `DONE` or still in progress.
181423//
181424// This method is called on a best-effort basis. Specifically:
181425// - In uncommon cases, when the server is overloaded, the request might
181426// return before the default deadline is reached, or might return after
181427// zero seconds.
181428// - If the default deadline is reached, there is no guarantee that the
181429// operation is actually done when the method returns. Be prepared to
181430// retry if the operation is not `DONE`.
181431func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
181432	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181433	c.project = project
181434	c.zone = zone
181435	c.operation = operation
181436	return c
181437}
181438
181439// Fields allows partial responses to be retrieved. See
181440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181441// for more information.
181442func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
181443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181444	return c
181445}
181446
181447// Context sets the context to be used in this call's Do method. Any
181448// pending HTTP request will be aborted if the provided context is
181449// canceled.
181450func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
181451	c.ctx_ = ctx
181452	return c
181453}
181454
181455// Header returns an http.Header that can be modified by the caller to
181456// add HTTP headers to the request.
181457func (c *ZoneOperationsWaitCall) Header() http.Header {
181458	if c.header_ == nil {
181459		c.header_ = make(http.Header)
181460	}
181461	return c.header_
181462}
181463
181464func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
181465	reqHeaders := make(http.Header)
181466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
181467	for k, v := range c.header_ {
181468		reqHeaders[k] = v
181469	}
181470	reqHeaders.Set("User-Agent", c.s.userAgent())
181471	var body io.Reader = nil
181472	c.urlParams_.Set("alt", alt)
181473	c.urlParams_.Set("prettyPrint", "false")
181474	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}/wait")
181475	urls += "?" + c.urlParams_.Encode()
181476	req, err := http.NewRequest("POST", urls, body)
181477	if err != nil {
181478		return nil, err
181479	}
181480	req.Header = reqHeaders
181481	googleapi.Expand(req.URL, map[string]string{
181482		"project":   c.project,
181483		"zone":      c.zone,
181484		"operation": c.operation,
181485	})
181486	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181487}
181488
181489// Do executes the "compute.zoneOperations.wait" call.
181490// Exactly one of *Operation or error will be non-nil. Any non-2xx
181491// status code is an error. Response headers are in either
181492// *Operation.ServerResponse.Header or (if a response was returned at
181493// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
181494// to check whether the returned error was because
181495// http.StatusNotModified was returned.
181496func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
181497	gensupport.SetOptions(c.urlParams_, opts...)
181498	res, err := c.doRequest("json")
181499	if res != nil && res.StatusCode == http.StatusNotModified {
181500		if res.Body != nil {
181501			res.Body.Close()
181502		}
181503		return nil, &googleapi.Error{
181504			Code:   res.StatusCode,
181505			Header: res.Header,
181506		}
181507	}
181508	if err != nil {
181509		return nil, err
181510	}
181511	defer googleapi.CloseBody(res)
181512	if err := googleapi.CheckResponse(res); err != nil {
181513		return nil, err
181514	}
181515	ret := &Operation{
181516		ServerResponse: googleapi.ServerResponse{
181517			Header:         res.Header,
181518			HTTPStatusCode: res.StatusCode,
181519		},
181520	}
181521	target := &ret
181522	if err := gensupport.DecodeResponse(target, res); err != nil {
181523		return nil, err
181524	}
181525	return ret, nil
181526	// {
181527	//   "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:  \n- In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. \n- If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`.",
181528	//   "httpMethod": "POST",
181529	//   "id": "compute.zoneOperations.wait",
181530	//   "parameterOrder": [
181531	//     "project",
181532	//     "zone",
181533	//     "operation"
181534	//   ],
181535	//   "parameters": {
181536	//     "operation": {
181537	//       "description": "Name of the Operations resource to return.",
181538	//       "location": "path",
181539	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
181540	//       "required": true,
181541	//       "type": "string"
181542	//     },
181543	//     "project": {
181544	//       "description": "Project ID for this request.",
181545	//       "location": "path",
181546	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181547	//       "required": true,
181548	//       "type": "string"
181549	//     },
181550	//     "zone": {
181551	//       "description": "Name of the zone for this request.",
181552	//       "location": "path",
181553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
181554	//       "required": true,
181555	//       "type": "string"
181556	//     }
181557	//   },
181558	//   "path": "{project}/zones/{zone}/operations/{operation}/wait",
181559	//   "response": {
181560	//     "$ref": "Operation"
181561	//   },
181562	//   "scopes": [
181563	//     "https://www.googleapis.com/auth/cloud-platform",
181564	//     "https://www.googleapis.com/auth/compute",
181565	//     "https://www.googleapis.com/auth/compute.readonly"
181566	//   ]
181567	// }
181568
181569}
181570
181571// method id "compute.zones.get":
181572
181573type ZonesGetCall struct {
181574	s            *Service
181575	project      string
181576	zone         string
181577	urlParams_   gensupport.URLParams
181578	ifNoneMatch_ string
181579	ctx_         context.Context
181580	header_      http.Header
181581}
181582
181583// Get: Returns the specified Zone resource. Gets a list of available
181584// zones by making a list() request.
181585// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
181586func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
181587	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181588	c.project = project
181589	c.zone = zone
181590	return c
181591}
181592
181593// Fields allows partial responses to be retrieved. See
181594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181595// for more information.
181596func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
181597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181598	return c
181599}
181600
181601// IfNoneMatch sets the optional parameter which makes the operation
181602// fail if the object's ETag matches the given value. This is useful for
181603// getting updates only after the object has changed since the last
181604// request. Use googleapi.IsNotModified to check whether the response
181605// error from Do is the result of In-None-Match.
181606func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
181607	c.ifNoneMatch_ = entityTag
181608	return c
181609}
181610
181611// Context sets the context to be used in this call's Do method. Any
181612// pending HTTP request will be aborted if the provided context is
181613// canceled.
181614func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
181615	c.ctx_ = ctx
181616	return c
181617}
181618
181619// Header returns an http.Header that can be modified by the caller to
181620// add HTTP headers to the request.
181621func (c *ZonesGetCall) Header() http.Header {
181622	if c.header_ == nil {
181623		c.header_ = make(http.Header)
181624	}
181625	return c.header_
181626}
181627
181628func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
181629	reqHeaders := make(http.Header)
181630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
181631	for k, v := range c.header_ {
181632		reqHeaders[k] = v
181633	}
181634	reqHeaders.Set("User-Agent", c.s.userAgent())
181635	if c.ifNoneMatch_ != "" {
181636		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181637	}
181638	var body io.Reader = nil
181639	c.urlParams_.Set("alt", alt)
181640	c.urlParams_.Set("prettyPrint", "false")
181641	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
181642	urls += "?" + c.urlParams_.Encode()
181643	req, err := http.NewRequest("GET", urls, body)
181644	if err != nil {
181645		return nil, err
181646	}
181647	req.Header = reqHeaders
181648	googleapi.Expand(req.URL, map[string]string{
181649		"project": c.project,
181650		"zone":    c.zone,
181651	})
181652	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181653}
181654
181655// Do executes the "compute.zones.get" call.
181656// Exactly one of *Zone or error will be non-nil. Any non-2xx status
181657// code is an error. Response headers are in either
181658// *Zone.ServerResponse.Header or (if a response was returned at all) in
181659// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
181660// whether the returned error was because http.StatusNotModified was
181661// returned.
181662func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
181663	gensupport.SetOptions(c.urlParams_, opts...)
181664	res, err := c.doRequest("json")
181665	if res != nil && res.StatusCode == http.StatusNotModified {
181666		if res.Body != nil {
181667			res.Body.Close()
181668		}
181669		return nil, &googleapi.Error{
181670			Code:   res.StatusCode,
181671			Header: res.Header,
181672		}
181673	}
181674	if err != nil {
181675		return nil, err
181676	}
181677	defer googleapi.CloseBody(res)
181678	if err := googleapi.CheckResponse(res); err != nil {
181679		return nil, err
181680	}
181681	ret := &Zone{
181682		ServerResponse: googleapi.ServerResponse{
181683			Header:         res.Header,
181684			HTTPStatusCode: res.StatusCode,
181685		},
181686	}
181687	target := &ret
181688	if err := gensupport.DecodeResponse(target, res); err != nil {
181689		return nil, err
181690	}
181691	return ret, nil
181692	// {
181693	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
181694	//   "httpMethod": "GET",
181695	//   "id": "compute.zones.get",
181696	//   "parameterOrder": [
181697	//     "project",
181698	//     "zone"
181699	//   ],
181700	//   "parameters": {
181701	//     "project": {
181702	//       "description": "Project ID for this request.",
181703	//       "location": "path",
181704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181705	//       "required": true,
181706	//       "type": "string"
181707	//     },
181708	//     "zone": {
181709	//       "description": "Name of the zone resource to return.",
181710	//       "location": "path",
181711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
181712	//       "required": true,
181713	//       "type": "string"
181714	//     }
181715	//   },
181716	//   "path": "{project}/zones/{zone}",
181717	//   "response": {
181718	//     "$ref": "Zone"
181719	//   },
181720	//   "scopes": [
181721	//     "https://www.googleapis.com/auth/cloud-platform",
181722	//     "https://www.googleapis.com/auth/compute",
181723	//     "https://www.googleapis.com/auth/compute.readonly"
181724	//   ]
181725	// }
181726
181727}
181728
181729// method id "compute.zones.list":
181730
181731type ZonesListCall struct {
181732	s            *Service
181733	project      string
181734	urlParams_   gensupport.URLParams
181735	ifNoneMatch_ string
181736	ctx_         context.Context
181737	header_      http.Header
181738}
181739
181740// List: Retrieves the list of Zone resources available to the specified
181741// project.
181742// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
181743func (r *ZonesService) List(project string) *ZonesListCall {
181744	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
181745	c.project = project
181746	return c
181747}
181748
181749// Filter sets the optional parameter "filter": A filter expression that
181750// filters resources listed in the response. The expression must specify
181751// the field name, a comparison operator, and the value that you want to
181752// use for filtering. The value must be a string, a number, or a
181753// boolean. The comparison operator must be either `=`, `!=`, `>`, or
181754// `<`.
181755//
181756// For example, if you are filtering Compute Engine instances, you can
181757// exclude instances named `example-instance` by specifying `name !=
181758// example-instance`.
181759//
181760// You can also filter nested fields. For example, you could specify
181761// `scheduling.automaticRestart = false` to include instances only if
181762// they are not scheduled for automatic restarts. You can use filtering
181763// on nested fields to filter based on resource labels.
181764//
181765// To filter on multiple expressions, provide each separate expression
181766// within parentheses. For example: ``` (scheduling.automaticRestart =
181767// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
181768// is an `AND` expression. However, you can include `AND` and `OR`
181769// expressions explicitly. For example: ``` (cpuPlatform = "Intel
181770// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
181771// (scheduling.automaticRestart = true) ```
181772func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
181773	c.urlParams_.Set("filter", filter)
181774	return c
181775}
181776
181777// MaxResults sets the optional parameter "maxResults": The maximum
181778// number of results per page that should be returned. If the number of
181779// available results is larger than `maxResults`, Compute Engine returns
181780// a `nextPageToken` that can be used to get the next page of results in
181781// subsequent list requests. Acceptable values are `0` to `500`,
181782// inclusive. (Default: `500`)
181783func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
181784	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
181785	return c
181786}
181787
181788// OrderBy sets the optional parameter "orderBy": Sorts list results by
181789// a certain order. By default, results are returned in alphanumerical
181790// order based on the resource name.
181791//
181792// You can also sort results in descending order based on the creation
181793// timestamp using `orderBy="creationTimestamp desc". This sorts
181794// results based on the `creationTimestamp` field in reverse
181795// chronological order (newest result first). Use this to sort resources
181796// like operations so that the newest operation is returned
181797// first.
181798//
181799// Currently, only sorting by `name` or `creationTimestamp desc` is
181800// supported.
181801func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
181802	c.urlParams_.Set("orderBy", orderBy)
181803	return c
181804}
181805
181806// PageToken sets the optional parameter "pageToken": Specifies a page
181807// token to use. Set `pageToken` to the `nextPageToken` returned by a
181808// previous list request to get the next page of results.
181809func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
181810	c.urlParams_.Set("pageToken", pageToken)
181811	return c
181812}
181813
181814// ReturnPartialSuccess sets the optional parameter
181815// "returnPartialSuccess": Opt-in for partial success behavior which
181816// provides partial results in case of failure. The default value is
181817// false and the logic is the same as today.
181818func (c *ZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZonesListCall {
181819	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
181820	return c
181821}
181822
181823// Fields allows partial responses to be retrieved. See
181824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181825// for more information.
181826func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
181827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181828	return c
181829}
181830
181831// IfNoneMatch sets the optional parameter which makes the operation
181832// fail if the object's ETag matches the given value. This is useful for
181833// getting updates only after the object has changed since the last
181834// request. Use googleapi.IsNotModified to check whether the response
181835// error from Do is the result of In-None-Match.
181836func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
181837	c.ifNoneMatch_ = entityTag
181838	return c
181839}
181840
181841// Context sets the context to be used in this call's Do method. Any
181842// pending HTTP request will be aborted if the provided context is
181843// canceled.
181844func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
181845	c.ctx_ = ctx
181846	return c
181847}
181848
181849// Header returns an http.Header that can be modified by the caller to
181850// add HTTP headers to the request.
181851func (c *ZonesListCall) Header() http.Header {
181852	if c.header_ == nil {
181853		c.header_ = make(http.Header)
181854	}
181855	return c.header_
181856}
181857
181858func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
181859	reqHeaders := make(http.Header)
181860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
181861	for k, v := range c.header_ {
181862		reqHeaders[k] = v
181863	}
181864	reqHeaders.Set("User-Agent", c.s.userAgent())
181865	if c.ifNoneMatch_ != "" {
181866		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181867	}
181868	var body io.Reader = nil
181869	c.urlParams_.Set("alt", alt)
181870	c.urlParams_.Set("prettyPrint", "false")
181871	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
181872	urls += "?" + c.urlParams_.Encode()
181873	req, err := http.NewRequest("GET", urls, body)
181874	if err != nil {
181875		return nil, err
181876	}
181877	req.Header = reqHeaders
181878	googleapi.Expand(req.URL, map[string]string{
181879		"project": c.project,
181880	})
181881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181882}
181883
181884// Do executes the "compute.zones.list" call.
181885// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
181886// code is an error. Response headers are in either
181887// *ZoneList.ServerResponse.Header or (if a response was returned at
181888// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
181889// to check whether the returned error was because
181890// http.StatusNotModified was returned.
181891func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
181892	gensupport.SetOptions(c.urlParams_, opts...)
181893	res, err := c.doRequest("json")
181894	if res != nil && res.StatusCode == http.StatusNotModified {
181895		if res.Body != nil {
181896			res.Body.Close()
181897		}
181898		return nil, &googleapi.Error{
181899			Code:   res.StatusCode,
181900			Header: res.Header,
181901		}
181902	}
181903	if err != nil {
181904		return nil, err
181905	}
181906	defer googleapi.CloseBody(res)
181907	if err := googleapi.CheckResponse(res); err != nil {
181908		return nil, err
181909	}
181910	ret := &ZoneList{
181911		ServerResponse: googleapi.ServerResponse{
181912			Header:         res.Header,
181913			HTTPStatusCode: res.StatusCode,
181914		},
181915	}
181916	target := &ret
181917	if err := gensupport.DecodeResponse(target, res); err != nil {
181918		return nil, err
181919	}
181920	return ret, nil
181921	// {
181922	//   "description": "Retrieves the list of Zone resources available to the specified project.",
181923	//   "httpMethod": "GET",
181924	//   "id": "compute.zones.list",
181925	//   "parameterOrder": [
181926	//     "project"
181927	//   ],
181928	//   "parameters": {
181929	//     "filter": {
181930	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
181931	//       "location": "query",
181932	//       "type": "string"
181933	//     },
181934	//     "maxResults": {
181935	//       "default": "500",
181936	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
181937	//       "format": "uint32",
181938	//       "location": "query",
181939	//       "minimum": "0",
181940	//       "type": "integer"
181941	//     },
181942	//     "orderBy": {
181943	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
181944	//       "location": "query",
181945	//       "type": "string"
181946	//     },
181947	//     "pageToken": {
181948	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
181949	//       "location": "query",
181950	//       "type": "string"
181951	//     },
181952	//     "project": {
181953	//       "description": "Project ID for this request.",
181954	//       "location": "path",
181955	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181956	//       "required": true,
181957	//       "type": "string"
181958	//     },
181959	//     "returnPartialSuccess": {
181960	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.",
181961	//       "location": "query",
181962	//       "type": "boolean"
181963	//     }
181964	//   },
181965	//   "path": "{project}/zones",
181966	//   "response": {
181967	//     "$ref": "ZoneList"
181968	//   },
181969	//   "scopes": [
181970	//     "https://www.googleapis.com/auth/cloud-platform",
181971	//     "https://www.googleapis.com/auth/compute",
181972	//     "https://www.googleapis.com/auth/compute.readonly"
181973	//   ]
181974	// }
181975
181976}
181977
181978// Pages invokes f for each page of results.
181979// A non-nil error returned from f will halt the iteration.
181980// The provided context supersedes any context provided to the Context method.
181981func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
181982	c.ctx_ = ctx
181983	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
181984	for {
181985		x, err := c.Do()
181986		if err != nil {
181987			return err
181988		}
181989		if err := f(x); err != nil {
181990			return err
181991		}
181992		if x.NextPageToken == "" {
181993			return nil
181994		}
181995		c.PageToken(x.NextPageToken)
181996	}
181997}
181998